Vincent Povirk : gdiplus: Add clipping to GDI32_GdipFillRegion.
Alexandre Julliard
julliard at winehq.org
Tue Sep 20 10:45:00 CDT 2016
Module: wine
Branch: master
Commit: 3fd47e1be1dff3f27b060045abaf1e0f4eae2fad
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3fd47e1be1dff3f27b060045abaf1e0f4eae2fad
Author: Vincent Povirk <vincent at codeweavers.com>
Date: Mon Sep 19 15:07:00 2016 -0500
gdiplus: Add clipping to GDI32_GdipFillRegion.
Signed-off-by: Vincent Povirk <vincent at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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;
}
More information about the wine-cvs
mailing list