gdiplus: Factor out the gdi32 code of GdipFillRegion.
diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index e85a8ba..a17cbef 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -3282,30 +3282,16 @@
return ret;
}
-/*****************************************************************************
- * GdipFillRegion [GDIPLUS.@]
- */
-GpStatus WINGDIPAPI GdipFillRegion(GpGraphics* graphics, GpBrush* brush,
- GpRegion* region)
+static GpStatus GDI32_GdipFillRegion(GpGraphics* graphics, GpBrush* brush,
+ GpRegion* region)
{
INT save_state;
GpStatus status;
HRGN hrgn;
RECT rc;
- TRACE("(%p, %p, %p)\n", graphics, brush, region);
-
- if (!(graphics && brush && region))
- return InvalidParameter;
-
- if(graphics->busy)
- return ObjectBusy;
-
if(!graphics->hdc)
- {
- FIXME("graphics object has no HDC\n");
- return Ok;
- }
+ return NotImplemented;
status = GdipGetRegionHRgn(region, graphics, &hrgn);
if(status != Ok)
@@ -3332,6 +3318,33 @@
return Ok;
}
+/*****************************************************************************
+ * GdipFillRegion [GDIPLUS.@]
+ */
+GpStatus WINGDIPAPI GdipFillRegion(GpGraphics* graphics, GpBrush* brush,
+ GpRegion* region)
+{
+ GpStatus stat;
+
+ TRACE("(%p, %p, %p)\n", graphics, brush, region);
+
+ if (!(graphics && brush && region))
+ return InvalidParameter;
+
+ if(graphics->busy)
+ return ObjectBusy;
+
+ stat = GDI32_GdipFillRegion(graphics, brush, region);
+
+ if (stat == NotImplemented)
+ {
+ FIXME("partially implemented\n");
+ stat = Ok;
+ }
+
+ return stat;
+}
+
GpStatus WINGDIPAPI GdipFlush(GpGraphics *graphics, GpFlushIntention intention)
{
TRACE("(%p,%u)\n", graphics, intention);