Is it something wrong with this patch?
Changelog: - GdipAddPathArcI, GdipAddPathBezier implemented using existing calls
Index: dlls/gdiplus/gdiplus.spec =================================================================== RCS file: /home/wine/wine/dlls/gdiplus/gdiplus.spec,v retrieving revision 1.170 diff -u -r1.170 gdiplus.spec --- dlls/gdiplus/gdiplus.spec 24 Mar 2008 12:57:16 -0000 1.170 +++ dlls/gdiplus/gdiplus.spec 7 Apr 2008 18:57:29 -0000 @@ -1,6 +1,6 @@ @ stdcall GdipAddPathArc(ptr long long long long long long) -@ stub GdipAddPathArcI -@ stub GdipAddPathBezier +@ stdcall GdipAddPathArcI(ptr long long long long long long) +@ stdcall GdipAddPathBezier(ptr long long long long long long long long) @ stdcall GdipAddPathBezierI(ptr long long long long long long long long) @ stdcall GdipAddPathBeziers(ptr ptr long) @ stub GdipAddPathBeziersI Index: dlls/gdiplus/graphicspath.c =================================================================== RCS file: /home/wine/wine/dlls/gdiplus/graphicspath.c,v retrieving revision 1.33 diff -u -r1.33 graphicspath.c --- dlls/gdiplus/graphicspath.c 4 Apr 2008 11:24:06 -0000 1.33 +++ dlls/gdiplus/graphicspath.c 7 Apr 2008 18:56:45 -0000 @@ -97,6 +97,13 @@ return Ok; }
+GpStatus WINGDIPAPI GdipAddPathArcI(GpPath *path, INT x1, INT y1, INT x2, + INT y2, REAL startAngle, REAL sweepAngle) +{ + TRACE("%p %d %d %d %d %f %f\n",path,x1,y1,x2,y2,startAngle,sweepAngle); + return GdipAddPathArc(path, (REAL)x1, (REAL)y1, (REAL)x2, {REAL)y2, startAngle, sweepAngle); +} + GpStatus WINGDIPAPI GdipAddPathBezierI(GpPath *path, INT x1, INT y1, INT x2, INT y2, INT x3, INT y3, INT x4, INT y4) { @@ -158,6 +165,23 @@ return Ok; }
+GpStatus WINGDIPAPI GdipAddPathBezier(GpPath *path, REAL x1, REAL y1, REAL x2, REAL y2, REAL x3, REAL y3, REAL x4, REAL y4) +{ + GpPointF points[3]; + + points[0].X = x1; + points[0].Y = y1; + points[1].X = x2; + points[1].Y = y2; + points[2].X = x3; + points[2].Y = y3; + points[3].X = x4; + points[3].Y = y4; + + TRACE("%p %f %f %f %f %f %f\n",path,x1,y1,x2,y2,x3,y3,x4,y4); + return GdipAddPathBeziers(path, points, 4); +} + GpStatus WINGDIPAPI GdipAddPathEllipse(GpPath *path, REAL x, REAL y, REAL width, REAL height) {
Index: include/gdiplusflat.h =================================================================== RCS file: /home/wine/wine/include/gdiplusflat.h,v retrieving revision 1.155 diff -u -r1.155 gdiplusflat.h --- include/gdiplusflat.h 24 Mar 2008 12:57:16 -0000 1.155 +++ include/gdiplusflat.h 7 Apr 2008 18:55:25 -0000 @@ -182,6 +182,8 @@ GpStatus WINGDIPAPI GdipSetTextureTransform(GpTexture *,GDIPCONST GpMatrix*);
GpStatus WINGDIPAPI GdipAddPathArc(GpPath*,REAL,REAL,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipAddPathArcI(GpPath*,INT,INT,INT,INT,REAL,REAL); +GpStatus WINGDIPAPI GdipAddPathBezier(GpPath*,REAL,REAL,REAL,REAL,REAL,REAL,REAL,REAL); GpStatus WINGDIPAPI GdipAddPathBezierI(GpPath*,INT,INT,INT,INT,INT,INT,INT,INT); GpStatus WINGDIPAPI GdipAddPathBeziers(GpPath*,GDIPCONST GpPointF*,INT); GpStatus WINGDIPAPI GdipAddPathEllipse(GpPath*,REAL,REAL,REAL,REAL);