Module: wine Branch: master Commit: bb904a277946224da2f13f70ed6edb0d5ff27a5e URL: http://source.winehq.org/git/wine.git/?a=commit;h=bb904a277946224da2f13f70ed...
Author: Evan Stade estade@gmail.com Date: Tue Aug 7 18:43:04 2007 -0700
gdiplus: Added GdipFillRectangleI.
---
dlls/gdiplus/gdiplus.spec | 2 +- dlls/gdiplus/graphics.c | 33 +++++++++++++++++++++++++++++++++ include/gdiplusflat.h | 1 + 3 files changed, 35 insertions(+), 1 deletions(-)
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(GpGraphics*,GpBrush*,GpPath*); 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*);