From: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> --- dlls/d2d1/geometry.c | 24 ++++++++++++++++-------- dlls/d2d1/tests/d2d1.c | 1 - 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/dlls/d2d1/geometry.c b/dlls/d2d1/geometry.c index 5ee959d0e2d..633919afa4f 100644 --- a/dlls/d2d1/geometry.c +++ b/dlls/d2d1/geometry.c @@ -2851,14 +2851,6 @@ static void STDMETHODCALLTYPE d2d_geometry_sink_SetFillMode(ID2D1GeometrySink *i geometry->u.path.fill_mode = mode; } -static void STDMETHODCALLTYPE d2d_geometry_sink_SetSegmentFlags(ID2D1GeometrySink *iface, D2D1_PATH_SEGMENT flags) -{ - TRACE("iface %p, flags %#x.\n", iface, flags); - - if (flags != D2D1_PATH_SEGMENT_NONE) - FIXME("Ignoring flags %#x.\n", flags); -} - static void d2d_geometry_set_error(struct d2d_geometry *geometry, HRESULT code) { if (geometry->u.path.state == D2D_GEOMETRY_STATE_ERROR) @@ -2868,6 +2860,22 @@ static void d2d_geometry_set_error(struct d2d_geometry *geometry, HRESULT code) geometry->u.path.code = code; } +static void STDMETHODCALLTYPE d2d_geometry_sink_SetSegmentFlags(ID2D1GeometrySink *iface, D2D1_PATH_SEGMENT flags) +{ + struct d2d_geometry *geometry = impl_from_ID2D1GeometrySink(iface); + + TRACE("iface %p, flags %#x.\n", iface, flags); + + if (flags & ~(D2D1_PATH_SEGMENT_FORCE_UNSTROKED | D2D1_PATH_SEGMENT_FORCE_ROUND_LINE_JOIN)) + { + d2d_geometry_set_error(geometry, E_INVALIDARG); + return; + } + + if (flags != D2D1_PATH_SEGMENT_NONE) + FIXME("Ignoring flags %#x.\n", flags); +} + static void STDMETHODCALLTYPE d2d_geometry_sink_BeginFigure(ID2D1GeometrySink *iface, D2D1_POINT_2F start_point, D2D1_FIGURE_BEGIN figure_begin) { diff --git a/dlls/d2d1/tests/d2d1.c b/dlls/d2d1/tests/d2d1.c index 978401152a7..7333f24eab9 100644 --- a/dlls/d2d1/tests/d2d1.c +++ b/dlls/d2d1/tests/d2d1.c @@ -3830,7 +3830,6 @@ static void test_path_geometry(BOOL d3d11) ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr); ID2D1GeometrySink_SetSegmentFlags(sink, 0xff); hr = ID2D1GeometrySink_Close(sink); - todo_wine ok(hr == E_INVALIDARG, "Got unexpected hr %#lx.\n", hr); ID2D1GeometrySink_Release(sink); ID2D1PathGeometry_Release(geometry); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9272