mirror of
https://github.com/reactos/wine.git
synced 2024-11-25 12:49:45 +00:00
gdiplus: Added GdipFillPolygon.
This commit is contained in:
parent
bba20a68b8
commit
1ef7793b51
@ -224,7 +224,7 @@
|
||||
@ stub GdipFillPieI
|
||||
@ stub GdipFillPolygon2
|
||||
@ stub GdipFillPolygon2I
|
||||
@ stub GdipFillPolygon
|
||||
@ stdcall GdipFillPolygon(ptr ptr ptr long long)
|
||||
@ stdcall GdipFillPolygonI(ptr ptr ptr long long)
|
||||
@ stub GdipFillRectangle
|
||||
@ stub GdipFillRectangleI
|
||||
|
@ -1224,6 +1224,45 @@ GpStatus WINGDIPAPI GdipFillPie(GpGraphics *graphics, GpBrush *brush, REAL x,
|
||||
return Ok;
|
||||
}
|
||||
|
||||
GpStatus WINGDIPAPI GdipFillPolygon(GpGraphics *graphics, GpBrush *brush,
|
||||
GDIPCONST GpPointF *points, INT count, GpFillMode fillMode)
|
||||
{
|
||||
INT save_state;
|
||||
GpPointF *ptf = NULL;
|
||||
POINT *pti = NULL;
|
||||
GpStatus retval = Ok;
|
||||
|
||||
if(!graphics || !brush || !points || !count)
|
||||
return InvalidParameter;
|
||||
|
||||
ptf = GdipAlloc(count * sizeof(GpPointF));
|
||||
pti = GdipAlloc(count * sizeof(POINT));
|
||||
if(!ptf || !pti){
|
||||
retval = OutOfMemory;
|
||||
goto end;
|
||||
}
|
||||
|
||||
memcpy(ptf, points, count * sizeof(GpPointF));
|
||||
|
||||
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));
|
||||
|
||||
transform_and_round_points(graphics, pti, ptf, count);
|
||||
Polygon(graphics->hdc, pti, count);
|
||||
|
||||
RestoreDC(graphics->hdc, save_state);
|
||||
|
||||
end:
|
||||
GdipFree(ptf);
|
||||
GdipFree(pti);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
GpStatus WINGDIPAPI GdipFillPolygonI(GpGraphics *graphics, GpBrush *brush,
|
||||
GDIPCONST GpPoint *points, INT count, GpFillMode fillMode)
|
||||
{
|
||||
|
@ -102,6 +102,8 @@ GpStatus WINGDIPAPI GdipClosePathFigure(GpPath*);
|
||||
GpStatus WINGDIPAPI GdipClosePathFigures(GpPath*);
|
||||
GpStatus WINGDIPAPI GdipCreatePath(GpFillMode,GpPath**);
|
||||
GpStatus WINGDIPAPI GdipDeletePath(GpPath*);
|
||||
GpStatus WINGDIPAPI GdipFillPolygon(GpGraphics*,GpBrush*,GDIPCONST GpPointF*,
|
||||
INT,GpFillMode);
|
||||
GpStatus WINGDIPAPI GdipGetPathFillMode(GpPath*,GpFillMode*);
|
||||
GpStatus WINGDIPAPI GdipGetPathPoints(GpPath*,GpPointF*,INT);
|
||||
GpStatus WINGDIPAPI GdipGetPathTypes(GpPath*,BYTE*,INT);
|
||||
|
Loading…
Reference in New Issue
Block a user