gdiplus: Improve performance of DrawImagePointsRect by avoid TransformMatrixPoints.
Using TransformMatrixPoints is not needed and all values could
be taken from transformation matrix:
- ShearX from m11, m12
- ShearY from m21, m22
- Translation mdx, mdy
The result could be calculated by taking destination points values:
{{0.0, 0.0}, {1.0, 0.0}, {0.0, 1.0}}
and calculating it with GdipTransformMatrixPoints function:
dst_to_src_points[0].X = dst_to_src.matrix[4];
dst_to_src_points[0].Y = dst_to_src.matrix[5];
dst_to_src_points[1].X = dst_to_src.matrix[0] + dst_to_src.matrix[4];
dst_to_src_points[1].Y = dst_to_src.matrix[1] + dst_to_src.matrix[5];
dst_to_src_points[2].X = dst_to_src.matrix[2] + dst_to_src.matrix[4];
dst_to_src_points[2].Y = dst_to_src.matrix[3] + dst_to_src.matrix[5];
Showing
Please
register
or
sign in
to comment