[1/2] gdiplus: Implemented GdipFillRegion
Nikolay Sivov
bunglehead at gmail.com
Wed Feb 4 03:00:36 CST 2009
Changelog:
- Implemented GdipFillRegion
>From c13231bb43f017ddb2dc15f8311b1777aabdef85 Mon Sep 17 00:00:00 2001
From: Nikolay Sivov <bunglehead at gmail.com>
Date: Tue, 3 Feb 2009 22:17:47 +0300
Subject: Implemented GdipFillRegion
---
dlls/gdiplus/graphics.c | 25 +++++++++++++++++++++++--
1 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index 04beb0b..2673042 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -2375,18 +2375,39 @@ GpStatus WINGDIPAPI GdipFillRectanglesI(GpGraphics *graphics, GpBrush *brush, GD
return ret;
}
+/*****************************************************************************
+ * GdipFillRegion [GDIPLUS.@]
+ */
GpStatus WINGDIPAPI GdipFillRegion(GpGraphics* graphics, GpBrush* brush,
GpRegion* region)
{
+ INT save_state;
+ GpStatus status;
+ HRGN hrgn;
+
+ TRACE("(%p, %p, %p)\n", graphics, brush, region);
+
if (!(graphics && brush && region))
return InvalidParameter;
if(graphics->busy)
return ObjectBusy;
- FIXME("(%p, %p, %p): stub\n", graphics, brush, region);
+ status = GdipGetRegionHRgn(region, graphics, &hrgn);
+ if(status != Ok)
+ return status;
- return NotImplemented;
+ save_state = SaveDC(graphics->hdc);
+ EndPath(graphics->hdc);
+ SelectObject(graphics->hdc, GetStockObject(NULL_PEN));
+
+ FillRgn(graphics->hdc, hrgn, brush->gdibrush);
+
+ RestoreDC(graphics->hdc, save_state);
+
+ DeleteObject(hrgn);
+
+ return Ok;
}
GpStatus WINGDIPAPI GdipFlush(GpGraphics *graphics, GpFlushIntention intention)
--
1.5.6.5
More information about the wine-patches
mailing list