Commit 64675264 authored by Evan Stade's avatar Evan Stade Committed by Alexandre Julliard

gdiplus: Added GdipFillPolygonI.

parent 27124d5d
...@@ -214,7 +214,7 @@ ...@@ -214,7 +214,7 @@
@ stub GdipFillPolygon2 @ stub GdipFillPolygon2
@ stub GdipFillPolygon2I @ stub GdipFillPolygon2I
@ stub GdipFillPolygon @ stub GdipFillPolygon
@ stub GdipFillPolygonI @ stdcall GdipFillPolygonI(ptr ptr ptr long long)
@ stub GdipFillRectangle @ stub GdipFillRectangle
@ stub GdipFillRectangleI @ stub GdipFillRectangleI
@ stub GdipFillRectangles @ stub GdipFillRectangles
......
...@@ -974,6 +974,26 @@ GpStatus WINGDIPAPI GdipFillPie(GpGraphics *graphics, GpBrush *brush, REAL x, ...@@ -974,6 +974,26 @@ GpStatus WINGDIPAPI GdipFillPie(GpGraphics *graphics, GpBrush *brush, REAL x,
width, height, startAngle, sweepAngle); width, height, startAngle, sweepAngle);
} }
GpStatus WINGDIPAPI GdipFillPolygonI(GpGraphics *graphics, GpBrush *brush,
GDIPCONST GpPoint *points, INT count, GpFillMode fillMode)
{
INT save_state;
if(!graphics || !brush || !points || !count)
return InvalidParameter;
save_state = SaveDC(graphics->hdc);
EndPath(graphics->hdc);
SelectObject(graphics->hdc, brush->gdibrush);
SelectObject(graphics->hdc, GetStockObject(NULL_PEN));
SetPolyFillMode(graphics->hdc, (fillMode == FillModeAlternate ? ALTERNATE
: WINDING));
Polygon(graphics->hdc, (GDIPCONST POINT*) points, count);
RestoreDC(graphics->hdc, save_state);
return Ok;
}
/* FIXME: Compositing quality is not used anywhere except the getter/setter. */ /* FIXME: Compositing quality is not used anywhere except the getter/setter. */
GpStatus WINGDIPAPI GdipGetCompositingQuality(GpGraphics *graphics, GpStatus WINGDIPAPI GdipGetCompositingQuality(GpGraphics *graphics,
CompositingQuality *quality) CompositingQuality *quality)
......
...@@ -58,6 +58,8 @@ GpStatus WINGDIPAPI GdipDrawPie(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,REAL ...@@ -58,6 +58,8 @@ GpStatus WINGDIPAPI GdipDrawPie(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,REAL
GpStatus WINGDIPAPI GdipDrawRectangleI(GpGraphics*,GpPen*,INT,INT,INT,INT); GpStatus WINGDIPAPI GdipDrawRectangleI(GpGraphics*,GpPen*,INT,INT,INT,INT);
GpStatus WINGDIPAPI GdipFillPath(GpGraphics*,GpBrush*,GpPath*); GpStatus WINGDIPAPI GdipFillPath(GpGraphics*,GpBrush*,GpPath*);
GpStatus WINGDIPAPI GdipFillPie(GpGraphics*,GpBrush*,REAL,REAL,REAL,REAL,REAL,REAL); GpStatus WINGDIPAPI GdipFillPie(GpGraphics*,GpBrush*,REAL,REAL,REAL,REAL,REAL,REAL);
GpStatus WINGDIPAPI GdipFillPolygonI(GpGraphics*,GpBrush*,GDIPCONST GpPoint*,INT,
GpFillMode);
GpStatus WINGDIPAPI GdipGetCompositingQuality(GpGraphics*,CompositingQuality*); GpStatus WINGDIPAPI GdipGetCompositingQuality(GpGraphics*,CompositingQuality*);
GpStatus WINGDIPAPI GdipGetInterpolationMode(GpGraphics*,InterpolationMode*); GpStatus WINGDIPAPI GdipGetInterpolationMode(GpGraphics*,InterpolationMode*);
GpStatus WINGDIPAPI GdipGetPixelOffsetMode(GpGraphics*,PixelOffsetMode*); GpStatus WINGDIPAPI GdipGetPixelOffsetMode(GpGraphics*,PixelOffsetMode*);
......
...@@ -55,5 +55,6 @@ typedef LineJoin GpLineJoin; ...@@ -55,5 +55,6 @@ typedef LineJoin GpLineJoin;
typedef DashCap GpDashCap; typedef DashCap GpDashCap;
typedef DashStyle GpDashStyle; typedef DashStyle GpDashStyle;
typedef MatrixOrder GpMatrixOrder; typedef MatrixOrder GpMatrixOrder;
typedef Point GpPoint;
#endif #endif
...@@ -47,6 +47,48 @@ enum Status{ ...@@ -47,6 +47,48 @@ enum Status{
#ifdef __cplusplus #ifdef __cplusplus
class Point
{
public:
Point()
{
X = Y = 0;
}
Point(IN const Point &pt)
{
X = pt.X;
Y = pt.Y;
}
/* FIXME: missing constructor that takes a Size */
Point(IN INT x, IN INT y)
{
X = x;
Y = y;
}
Point operator+(IN const Point& pt) const
{
return Point(X + pt.X, Y + pt.Y);
}
Point operator-(IN const Point& pt) const
{
return Point(X - pt.X, Y - pt.Y);
}
BOOL Equals(IN const Point& pt)
{
return (X == pt.X) && (Y == pt.Y);
}
public:
INT X;
INT Y;
};
class PointF class PointF
{ {
public: public:
...@@ -134,6 +176,12 @@ public: ...@@ -134,6 +176,12 @@ public:
#else /* end of c++ typedefs */ #else /* end of c++ typedefs */
typedef struct Point
{
INT X;
INT Y;
} Point;
typedef struct PointF typedef struct PointF
{ {
REAL X; REAL X;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment