[PATCH 2/2] gdiplus: Caps are added at end of subpath.
Jeff Smith
whydoubt at gmail.com
Wed Mar 4 11:54:29 CST 2020
Signed-off-by: Jeff Smith <whydoubt at gmail.com>
---
dlls/gdiplus/graphicspath.c | 18 ++++++++++--------
dlls/gdiplus/tests/graphicspath.c | 16 ++++++++--------
2 files changed, 18 insertions(+), 16 deletions(-)
diff --git a/dlls/gdiplus/graphicspath.c b/dlls/gdiplus/graphicspath.c
index 0e62d7db7d..a7faec0f86 100644
--- a/dlls/gdiplus/graphicspath.c
+++ b/dlls/gdiplus/graphicspath.c
@@ -2130,14 +2130,6 @@ static void widen_open_figure(const GpPointF *points, GpPen *pen, int start, int
prev_point->next->type = PathPointTypeStart;
(*last_point)->type |= PathPointTypeCloseSubpath;
-
- if (start_cap & LineCapAnchorMask)
- add_anchor(&points[start], &points[start+1],
- pen, start_cap, start_custom, last_point);
-
- if (end_cap & LineCapAnchorMask)
- add_anchor(&points[end], &points[end-1],
- pen, end_cap, end_custom, last_point);
}
static void widen_closed_figure(GpPath *path, GpPen *pen, int start, int end,
@@ -2385,6 +2377,16 @@ GpStatus WINGDIPAPI GdipWidenPath(GpPath *path, GpPen *pen, GpMatrix *matrix,
widen_dashed_figure(flat_path, pen, subpath_start, i, 0, &last_point);
else
widen_open_figure(flat_path->pathdata.Points, pen, subpath_start, i, pen->startcap, pen->customstart, pen->endcap, pen->customend, &last_point);
+
+ if (pen->startcap & LineCapAnchorMask)
+ add_anchor(&flat_path->pathdata.Points[subpath_start],
+ &flat_path->pathdata.Points[subpath_start+1],
+ pen, pen->startcap, pen->customstart, &last_point);
+
+ if (pen->endcap & LineCapAnchorMask)
+ add_anchor(&flat_path->pathdata.Points[i],
+ &flat_path->pathdata.Points[i-1],
+ pen, pen->endcap, pen->customend, &last_point);
}
}
diff --git a/dlls/gdiplus/tests/graphicspath.c b/dlls/gdiplus/tests/graphicspath.c
index eb59a5eb7d..78a9c442a4 100644
--- a/dlls/gdiplus/tests/graphicspath.c
+++ b/dlls/gdiplus/tests/graphicspath.c
@@ -1380,14 +1380,14 @@ static path_test_t widenline_capsquareanchor_dashed_path[] = {
{35.0, 5.0, PathPointTypeLine, 0, 0}, /*1*/
{35.0, 15.0, PathPointTypeLine, 0, 0}, /*2*/
{5.0, 15.0, PathPointTypeLine|PathPointTypeCloseSubpath, 0, 0}, /*3*/
- {45.0, 5.0, PathPointTypeStart, 0, 1}, /*4*/
- {50.0, 5.0, PathPointTypeLine, 0, 1}, /*5*/
- {50.0, 15.0, PathPointTypeLine, 0, 1}, /*6*/
- {45.0, 15.0, PathPointTypeLine|PathPointTypeCloseSubpath, 0, 1}, /*7*/
- {12.071068, 2.928932, PathPointTypeStart, 0, 1}, /*8*/
- {12.071068, 17.071066, PathPointTypeLine, 0, 1}, /*9*/
- {-2.071068, 17.071066, PathPointTypeLine, 0, 1}, /*10*/
- {-2.071068, 2.928932, PathPointTypeLine|PathPointTypeCloseSubpath, 0, 1}, /*11*/
+ {45.0, 5.0, PathPointTypeStart, 0, 0}, /*4*/
+ {50.0, 5.0, PathPointTypeLine, 0, 0}, /*5*/
+ {50.0, 15.0, PathPointTypeLine, 0, 0}, /*6*/
+ {45.0, 15.0, PathPointTypeLine|PathPointTypeCloseSubpath, 0, 0}, /*7*/
+ {12.071068, 2.928932, PathPointTypeStart, 0, 0}, /*8*/
+ {12.071068, 17.071066, PathPointTypeLine, 0, 0}, /*9*/
+ {-2.071068, 17.071066, PathPointTypeLine, 0, 0}, /*10*/
+ {-2.071068, 2.928932, PathPointTypeLine|PathPointTypeCloseSubpath, 0, 0}, /*11*/
{42.928928, 17.071068, PathPointTypeStart, 0, 0}, /*12*/
{42.928928, 2.928932, PathPointTypeLine, 0, 0}, /*13*/
{57.071068, 2.928932, PathPointTypeLine, 0, 0}, /*14*/
--
2.23.0
More information about the wine-devel
mailing list