gdiplus: Added GdipAddPathEllipse.

This commit is contained in:
Evan Stade 2007-07-25 19:15:24 -07:00 committed by Alexandre Julliard
parent f52adfd0de
commit fe2ce3a08b
3 changed files with 32 additions and 1 deletions

View file

@ -14,7 +14,7 @@
@ stub GdipAddPathCurve3I @ stub GdipAddPathCurve3I
@ stub GdipAddPathCurve @ stub GdipAddPathCurve
@ stub GdipAddPathCurveI @ stub GdipAddPathCurveI
@ stub GdipAddPathEllipse @ stdcall GdipAddPathEllipse(ptr long long long long)
@ stub GdipAddPathEllipseI @ stub GdipAddPathEllipseI
@ stdcall GdipAddPathLine2(ptr ptr long) @ stdcall GdipAddPathLine2(ptr ptr long)
@ stub GdipAddPathLine2I @ stub GdipAddPathLine2I

View file

@ -121,6 +121,36 @@ GpStatus WINGDIPAPI GdipAddPathBeziers(GpPath *path, GDIPCONST GpPointF *points,
return Ok; return Ok;
} }
GpStatus WINGDIPAPI GdipAddPathEllipse(GpPath *path, REAL x, REAL y, REAL width,
REAL height)
{
INT old_count, numpts;
if(!path)
return InvalidParameter;
if(!lengthen_path(path, MAX_ARC_PTS))
return OutOfMemory;
old_count = path->pathdata.Count;
if((numpts = arc2polybezier(&path->pathdata.Points[old_count], x, y, width,
height, 0.0, 360.0)) != MAX_ARC_PTS){
ERR("expected %d points but got %d\n", MAX_ARC_PTS, numpts);
return GenericError;
}
memset(&path->pathdata.Types[old_count + 1], PathPointTypeBezier,
MAX_ARC_PTS - 1);
/* An ellipse is an instrinsic figure (always its own subpath). */
path->pathdata.Types[old_count] = PathPointTypeStart;
path->pathdata.Types[old_count + MAX_ARC_PTS - 1] |= PathPointTypeCloseSubpath;
path->newfigure = TRUE;
path->pathdata.Count += MAX_ARC_PTS;
return Ok;
}
GpStatus WINGDIPAPI GdipAddPathLine2(GpPath *path, GDIPCONST GpPointF *points, GpStatus WINGDIPAPI GdipAddPathLine2(GpPath *path, GDIPCONST GpPointF *points,
INT count) INT count)
{ {

View file

@ -89,6 +89,7 @@ GpStatus WINGDIPAPI GdipSetSolidFillColor(GpSolidFill*,ARGB);
GpStatus WINGDIPAPI GdipAddPathArc(GpPath*,REAL,REAL,REAL,REAL,REAL,REAL); GpStatus WINGDIPAPI GdipAddPathArc(GpPath*,REAL,REAL,REAL,REAL,REAL,REAL);
GpStatus WINGDIPAPI GdipAddPathBeziers(GpPath*,GDIPCONST GpPointF*,INT); GpStatus WINGDIPAPI GdipAddPathBeziers(GpPath*,GDIPCONST GpPointF*,INT);
GpStatus WINGDIPAPI GdipAddPathEllipse(GpPath*,REAL,REAL,REAL,REAL);
GpStatus WINGDIPAPI GdipAddPathLine2(GpPath*,GDIPCONST GpPointF*,INT); GpStatus WINGDIPAPI GdipAddPathLine2(GpPath*,GDIPCONST GpPointF*,INT);
GpStatus WINGDIPAPI GdipAddPathPath(GpPath*,GDIPCONST GpPath*,BOOL); GpStatus WINGDIPAPI GdipAddPathPath(GpPath*,GDIPCONST GpPath*,BOOL);
GpStatus WINGDIPAPI GdipClosePathFigure(GpPath*); GpStatus WINGDIPAPI GdipClosePathFigure(GpPath*);