Vincent Povirk : gdiplus: Add clipping to GDI32_GdipFillRegion.
Module: wine Branch: master Commit: 3fd47e1be1dff3f27b060045abaf1e0f4eae2fad URL: http://source.winehq.org/git/wine.git/?a=commit;h=3fd47e1be1dff3f27b060045ab... Author: Vincent Povirk <vincent(a)codeweavers.com> Date: Mon Sep 19 15:07:00 2016 -0500 gdiplus: Add clipping to GDI32_GdipFillRegion. Signed-off-by: Vincent Povirk <vincent(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/gdiplus/graphics.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c index 4ae1f48..964fa9f 100644 --- a/dlls/gdiplus/graphics.c +++ b/dlls/gdiplus/graphics.c @@ -3942,6 +3942,23 @@ static GpStatus GDI32_GdipFillRegion(GpGraphics* graphics, GpBrush* brush, ExtSelectClipRgn(graphics->hdc, hrgn, RGN_AND); + DeleteObject(hrgn); + + hrgn = NULL; + status = get_clip_hrgn(graphics, &hrgn); + + if (status != Ok) + { + RestoreDC(graphics->hdc, save_state); + return status; + } + + if (hrgn) + { + ExtSelectClipRgn(graphics->hdc, hrgn, RGN_AND); + DeleteObject(hrgn); + } + if (GetClipBox(graphics->hdc, &rc) != NULLREGION) { BeginPath(graphics->hdc); @@ -3953,7 +3970,6 @@ static GpStatus GDI32_GdipFillRegion(GpGraphics* graphics, GpBrush* brush, RestoreDC(graphics->hdc, save_state); - DeleteObject(hrgn); return Ok; }
participants (1)
-
Alexandre Julliard