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);