gdiplus: Added GdipFillPolygonI.
This commit is contained in:
parent
27124d5d32
commit
6467526469
|
@ -214,7 +214,7 @@
|
|||
@ stub GdipFillPolygon2
|
||||
@ stub GdipFillPolygon2I
|
||||
@ stub GdipFillPolygon
|
||||
@ stub GdipFillPolygonI
|
||||
@ stdcall GdipFillPolygonI(ptr ptr ptr long long)
|
||||
@ stub GdipFillRectangle
|
||||
@ stub GdipFillRectangleI
|
||||
@ stub GdipFillRectangles
|
||||
|
|
|
@ -974,6 +974,26 @@ GpStatus WINGDIPAPI GdipFillPie(GpGraphics *graphics, GpBrush *brush, REAL x,
|
|||
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. */
|
||||
GpStatus WINGDIPAPI GdipGetCompositingQuality(GpGraphics *graphics,
|
||||
CompositingQuality *quality)
|
||||
|
|
|
@ -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 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 GdipGetCompositingQuality(GpGraphics*,CompositingQuality*);
|
||||
GpStatus WINGDIPAPI GdipGetInterpolationMode(GpGraphics*,InterpolationMode*);
|
||||
GpStatus WINGDIPAPI GdipGetPixelOffsetMode(GpGraphics*,PixelOffsetMode*);
|
||||
|
|
|
@ -55,5 +55,6 @@ typedef LineJoin GpLineJoin;
|
|||
typedef DashCap GpDashCap;
|
||||
typedef DashStyle GpDashStyle;
|
||||
typedef MatrixOrder GpMatrixOrder;
|
||||
typedef Point GpPoint;
|
||||
|
||||
#endif
|
||||
|
|
|
@ -47,6 +47,48 @@ enum Status{
|
|||
|
||||
#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
|
||||
{
|
||||
public:
|
||||
|
@ -134,6 +176,12 @@ public:
|
|||
|
||||
#else /* end of c++ typedefs */
|
||||
|
||||
typedef struct Point
|
||||
{
|
||||
INT X;
|
||||
INT Y;
|
||||
} Point;
|
||||
|
||||
typedef struct PointF
|
||||
{
|
||||
REAL X;
|
||||
|
|
Loading…
Reference in New Issue