gdiplus: Implemented GdipDrawPolygon/GdipDrawPolygonI.
This commit is contained in:
parent
3903ac6ee8
commit
4697593e85
|
@ -192,8 +192,8 @@
|
||||||
@ stdcall GdipDrawPath(ptr ptr ptr)
|
@ stdcall GdipDrawPath(ptr ptr ptr)
|
||||||
@ stdcall GdipDrawPie(ptr ptr long long long long long long)
|
@ stdcall GdipDrawPie(ptr ptr long long long long long long)
|
||||||
@ stdcall GdipDrawPieI(ptr ptr long long long long long long)
|
@ stdcall GdipDrawPieI(ptr ptr long long long long long long)
|
||||||
@ stub GdipDrawPolygon
|
@ stdcall GdipDrawPolygon(ptr ptr ptr long)
|
||||||
@ stub GdipDrawPolygonI
|
@ stdcall GdipDrawPolygonI(ptr ptr ptr long)
|
||||||
@ stdcall GdipDrawRectangle(ptr ptr long long long long)
|
@ stdcall GdipDrawRectangle(ptr ptr long long long long)
|
||||||
@ stdcall GdipDrawRectangleI(ptr ptr long long long long)
|
@ stdcall GdipDrawRectangleI(ptr ptr long long long long)
|
||||||
@ stdcall GdipDrawRectangles(ptr ptr ptr long)
|
@ stdcall GdipDrawRectangles(ptr ptr ptr long)
|
||||||
|
|
|
@ -2161,3 +2161,47 @@ GpStatus WINGDIPAPI GdipSetMetafileDownLevelRasterizationLimit(GpGraphics *graph
|
||||||
|
|
||||||
return NotImplemented;
|
return NotImplemented;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GpStatus WINGDIPAPI GdipDrawPolygon(GpGraphics *graphics,GpPen *pen,GDIPCONST GpPointF *points,
|
||||||
|
INT count)
|
||||||
|
{
|
||||||
|
INT save_state;
|
||||||
|
POINT *pti;
|
||||||
|
|
||||||
|
if(!graphics || !pen || count<=0)
|
||||||
|
return InvalidParameter;
|
||||||
|
|
||||||
|
pti = GdipAlloc(sizeof(POINT) * count);
|
||||||
|
|
||||||
|
save_state = prepare_dc(graphics, pen);
|
||||||
|
SelectObject(graphics->hdc, GetStockObject(NULL_BRUSH));
|
||||||
|
|
||||||
|
transform_and_round_points(graphics, pti, (GpPointF*)points, count);
|
||||||
|
Polygon(graphics->hdc, pti, count);
|
||||||
|
|
||||||
|
restore_dc(graphics, save_state);
|
||||||
|
GdipFree(pti);
|
||||||
|
|
||||||
|
return Ok;
|
||||||
|
}
|
||||||
|
|
||||||
|
GpStatus WINGDIPAPI GdipDrawPolygonI(GpGraphics *graphics,GpPen *pen,GDIPCONST GpPoint *points,
|
||||||
|
INT count)
|
||||||
|
{
|
||||||
|
GpStatus ret;
|
||||||
|
GpPointF *ptf;
|
||||||
|
INT i;
|
||||||
|
|
||||||
|
if(count<=0) return InvalidParameter;
|
||||||
|
ptf = GdipAlloc(sizeof(GpPointF) * count);
|
||||||
|
|
||||||
|
for(i = 0;i < count; i++){
|
||||||
|
ptf[i].X = (REAL)points[i].X;
|
||||||
|
ptf[i].Y = (REAL)points[i].Y;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = GdipDrawPolygon(graphics,pen,ptf,count);
|
||||||
|
GdipFree(ptf);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
|
@ -94,6 +94,8 @@ GpStatus WINGDIPAPI GdipDrawLinesI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT);
|
||||||
GpStatus WINGDIPAPI GdipDrawPath(GpGraphics*,GpPen*,GpPath*);
|
GpStatus WINGDIPAPI GdipDrawPath(GpGraphics*,GpPen*,GpPath*);
|
||||||
GpStatus WINGDIPAPI GdipDrawPie(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,REAL);
|
GpStatus WINGDIPAPI GdipDrawPie(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,REAL);
|
||||||
GpStatus WINGDIPAPI GdipDrawPieI(GpGraphics*,GpPen*,INT,INT,INT,INT,REAL,REAL);
|
GpStatus WINGDIPAPI GdipDrawPieI(GpGraphics*,GpPen*,INT,INT,INT,INT,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawPolygon(GpGraphics*,GpPen*,GDIPCONST GpPointF*, INT);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawPolygonI(GpGraphics*,GpPen*,GDIPCONST GpPoint*, INT);
|
||||||
GpStatus WINGDIPAPI GdipDrawRectangle(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL);
|
GpStatus WINGDIPAPI GdipDrawRectangle(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL);
|
||||||
GpStatus WINGDIPAPI GdipDrawRectangleI(GpGraphics*,GpPen*,INT,INT,INT,INT);
|
GpStatus WINGDIPAPI GdipDrawRectangleI(GpGraphics*,GpPen*,INT,INT,INT,INT);
|
||||||
GpStatus WINGDIPAPI GdipDrawRectangles(GpGraphics*,GpPen*,GDIPCONST GpRectF*,INT);
|
GpStatus WINGDIPAPI GdipDrawRectangles(GpGraphics*,GpPen*,GDIPCONST GpRectF*,INT);
|
||||||
|
|
Loading…
Reference in New Issue