[PATCH 2/6] gdiplus: Fix LineCapRound path-widening.
Jeff Smith
whydoubt at gmail.com
Tue Feb 18 23:51:57 CST 2020
Signed-off-by: Jeff Smith <whydoubt at gmail.com>
---
dlls/gdiplus/graphicspath.c | 2 ++
dlls/gdiplus/tests/graphicspath.c | 6 +++---
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/dlls/gdiplus/graphicspath.c b/dlls/gdiplus/graphicspath.c
index 7ec6061cb4..5ea82f4d0e 100644
--- a/dlls/gdiplus/graphicspath.c
+++ b/dlls/gdiplus/graphicspath.c
@@ -1955,6 +1955,8 @@ static void widen_cap(const GpPointF *endpoint, const GpPointF *nextpoint,
*last_point = add_path_list_node(*last_point, endpoint->X - dy,
endpoint->Y + dx, PathPointTypeBezier);
}
+ else if (add_last_point)
+ add_bevel_point(endpoint, nextpoint, pen, 0, last_point);
break;
}
case LineCapTriangle:
diff --git a/dlls/gdiplus/tests/graphicspath.c b/dlls/gdiplus/tests/graphicspath.c
index e12d9e2c49..91b83166ad 100644
--- a/dlls/gdiplus/tests/graphicspath.c
+++ b/dlls/gdiplus/tests/graphicspath.c
@@ -1260,8 +1260,8 @@ static path_test_t widenline_capsquare_path[] = {
};
static path_test_t widenline_capround_path[] = {
- {5.0, 5.0, PathPointTypeStart, 0, 2}, /*0*/
- {50.0, 5.0, PathPointTypeLine, 0, 1}, /*1*/
+ {5.0, 5.0, PathPointTypeStart, 0, 0}, /*0*/
+ {50.0, 5.0, PathPointTypeLine, 0, 0}, /*1*/
{52.761421, 5.0, PathPointTypeBezier, 0, 0}, /*2*/
{55.0, 7.238576, PathPointTypeBezier, 0, 0}, /*3*/
{55.0, 10.0, PathPointTypeBezier, 0, 0}, /*4*/
@@ -1379,7 +1379,7 @@ static void test_widen_cap(void)
{ LineCapSquare, widenline_capsquare_path,
ARRAY_SIZE(widenline_capsquare_path) },
{ LineCapRound, widenline_capround_path,
- ARRAY_SIZE(widenline_capround_path), TRUE },
+ ARRAY_SIZE(widenline_capround_path) },
{ LineCapTriangle, widenline_captriangle_path,
ARRAY_SIZE(widenline_captriangle_path), TRUE },
{ LineCapNoAnchor, widenline_capflat_path,
--
2.23.0
More information about the wine-devel
mailing list