[18/19] gdiplus: added GdipFillRectangleI
Evan Stade
estade at gmail.com
Tue Aug 7 20:43:04 CDT 2007
Hi,
dlls/gdiplus/gdiplus.spec | 2 +-
dlls/gdiplus/graphics.c | 33 +++++++++++++++++++++++++++++++++
include/gdiplusflat.h | 1 +
3 files changed, 35 insertions(+), 1 deletions(-)
--
Evan Stade
-------------- next part --------------
diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec
index 7c0ea9c..12fda8f 100644
--- a/dlls/gdiplus/gdiplus.spec
+++ b/dlls/gdiplus/gdiplus.spec
@@ -227,7 +227,7 @@
@ stdcall GdipFillPolygon(ptr ptr ptr long long)
@ stdcall GdipFillPolygonI(ptr ptr ptr long long)
@ stub GdipFillRectangle
-@ stub GdipFillRectangleI
+@ stdcall GdipFillRectangleI(ptr ptr long long long long)
@ stub GdipFillRectangles
@ stub GdipFillRectanglesI
@ stub GdipFillRegion
diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index 0059cc3..4c2385c 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -1324,6 +1324,39 @@ end:
return retval;
}
+GpStatus WINGDIPAPI GdipFillRectangleI(GpGraphics *graphics, GpBrush *brush,
+ INT x, INT y, INT width, INT height)
+{
+ INT save_state;
+ GpPointF ptf[4];
+ POINT pti[4];
+
+ if(!graphics || !brush)
+ return InvalidParameter;
+
+ ptf[0].X = x;
+ ptf[0].Y = y;
+ ptf[1].X = x + width;
+ ptf[1].Y = y;
+ ptf[2].X = x + width;
+ ptf[2].Y = y + height;
+ ptf[3].X = x;
+ ptf[3].Y = y + height;
+
+ save_state = SaveDC(graphics->hdc);
+ EndPath(graphics->hdc);
+ SelectObject(graphics->hdc, brush->gdibrush);
+ SelectObject(graphics->hdc, GetStockObject(NULL_PEN));
+
+ transform_and_round_points(graphics, pti, ptf, 4);
+
+ Polygon(graphics->hdc, pti, 4);
+
+ RestoreDC(graphics->hdc, save_state);
+
+ return Ok;
+}
+
/* FIXME: Compositing quality is not used anywhere except the getter/setter. */
GpStatus WINGDIPAPI GdipGetCompositingQuality(GpGraphics *graphics,
CompositingQuality *quality)
diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h
index 0c2d8c4..04aa8c1 100644
--- a/include/gdiplusflat.h
+++ b/include/gdiplusflat.h
@@ -74,6 +74,7 @@ GpStatus WINGDIPAPI GdipFillPath(GpGraph
GpStatus WINGDIPAPI GdipFillPie(GpGraphics*,GpBrush*,REAL,REAL,REAL,REAL,REAL,REAL);
GpStatus WINGDIPAPI GdipFillPolygonI(GpGraphics*,GpBrush*,GDIPCONST GpPoint*,INT,
GpFillMode);
+GpStatus WINGDIPAPI GdipFillRectangleI(GpGraphics*,GpBrush*,INT,INT,INT,INT);
GpStatus WINGDIPAPI GdipGetCompositingQuality(GpGraphics*,CompositingQuality*);
GpStatus WINGDIPAPI GdipGetInterpolationMode(GpGraphics*,InterpolationMode*);
GpStatus WINGDIPAPI GdipGetPageScale(GpGraphics*,REAL*);
--
1.4.1
More information about the wine-patches
mailing list