Module: wine Branch: master Commit: 306d062f46af01c17aa0159c9ef5ce6af890eb67 URL: http://source.winehq.org/git/wine.git/?a=commit;h=306d062f46af01c17aa0159c9e...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Tue Nov 1 03:34:04 2016 +0300
d2d1: For transformed geometry forward StrokeContainsPoint() to its source geometry.
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/d2d1/geometry.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/dlls/d2d1/geometry.c b/dlls/d2d1/geometry.c index 385e171..4abe9bc 100644 --- a/dlls/d2d1/geometry.c +++ b/dlls/d2d1/geometry.c @@ -2633,11 +2633,19 @@ static HRESULT STDMETHODCALLTYPE d2d_transformed_geometry_StrokeContainsPoint(ID D2D1_POINT_2F point, float stroke_width, ID2D1StrokeStyle *stroke_style, const D2D1_MATRIX_3X2_F *transform, float tolerance, BOOL *contains) { - FIXME("iface %p, point {%.8e, %.8e}, stroke_width %.8e, stroke_style %p, " - "transform %p, tolerance %.8e, contains %p stub!\n", + struct d2d_geometry *geometry = impl_from_ID2D1TransformedGeometry(iface); + D2D1_MATRIX_3X2_F g; + + TRACE("iface %p, point {%.8e, %.8e}, stroke_width %.8e, stroke_style %p, " + "transform %p, tolerance %.8e, contains %p.\n", iface, point.x, point.y, stroke_width, stroke_style, transform, tolerance, contains);
- return E_NOTIMPL; + g = geometry->transform; + if (transform) + d2d_matrix_multiply(&g, transform); + + return ID2D1Geometry_StrokeContainsPoint(geometry->u.transformed.src_geometry, point, stroke_width, stroke_style, + &g, tolerance, contains); }
static HRESULT STDMETHODCALLTYPE d2d_transformed_geometry_FillContainsPoint(ID2D1TransformedGeometry *iface,