[13/14] gdiplus: Reimplement GdipFillRectangles using GdipFillPath.
Dmitry Timoshkov
dmitry at baikal.ru
Mon Feb 18 21:45:50 CST 2013
---
dlls/gdiplus/graphics.c | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index ffb36bb..01e127c 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -3829,20 +3829,23 @@ GpStatus WINGDIPAPI GdipFillRectangleI(GpGraphics *graphics, GpBrush *brush,
GpStatus WINGDIPAPI GdipFillRectangles(GpGraphics *graphics, GpBrush *brush, GDIPCONST GpRectF *rects,
INT count)
{
- GpStatus ret;
- INT i;
+ GpStatus status;
+ GpPath *path;
TRACE("(%p, %p, %p, %d)\n", graphics, brush, rects, count);
if(!rects)
return InvalidParameter;
- for(i = 0; i < count; i++){
- ret = GdipFillRectangle(graphics, brush, rects[i].X, rects[i].Y, rects[i].Width, rects[i].Height);
- if(ret != Ok) return ret;
- }
+ status = GdipCreatePath(FillModeAlternate, &path);
+ if (status != Ok) return status;
- return Ok;
+ status = GdipAddPathRectangles(path, rects, count);
+ if (status == Ok)
+ status = GdipFillPath(graphics, brush, path);
+
+ GdipDeletePath(path);
+ return status;
}
GpStatus WINGDIPAPI GdipFillRectanglesI(GpGraphics *graphics, GpBrush *brush, GDIPCONST GpRect *rects,
--
1.8.1.3
More information about the wine-patches
mailing list