Vincent Povirk : gdiplus: Use brush_fill_path in GdipFillRegion.

Alexandre Julliard julliard at winehq.org
Mon Jul 13 07:54:57 CDT 2009


Module: wine
Branch: master
Commit: 6a8a770c76fb530b98dd18064f9dd40f9e159218
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=6a8a770c76fb530b98dd18064f9dd40f9e159218

Author: Vincent Povirk <madewokherd at gmail.com>
Date:   Sat Jul 11 10:57:07 2009 -0500

gdiplus: Use brush_fill_path in GdipFillRegion.

---

 dlls/gdiplus/graphics.c |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index 2912416..595fc24 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -2855,6 +2855,7 @@ GpStatus WINGDIPAPI GdipFillRegion(GpGraphics* graphics, GpBrush* brush,
     INT save_state;
     GpStatus status;
     HRGN hrgn;
+    RECT rc;
 
     TRACE("(%p, %p, %p)\n", graphics, brush, region);
 
@@ -2870,9 +2871,17 @@ GpStatus WINGDIPAPI GdipFillRegion(GpGraphics* graphics, GpBrush* brush,
 
     save_state = SaveDC(graphics->hdc);
     EndPath(graphics->hdc);
-    SelectObject(graphics->hdc, GetStockObject(NULL_PEN));
 
-    FillRgn(graphics->hdc, hrgn, brush->gdibrush);
+    ExtSelectClipRgn(graphics->hdc, hrgn, RGN_AND);
+
+    if (GetClipBox(graphics->hdc, &rc) != NULLREGION)
+    {
+        BeginPath(graphics->hdc);
+        Rectangle(graphics->hdc, rc.left, rc.top, rc.right, rc.bottom);
+        EndPath(graphics->hdc);
+
+        brush_fill_path(graphics, brush);
+    }
 
     RestoreDC(graphics->hdc, save_state);
 




More information about the wine-cvs mailing list