[1/2] gdiplus: GdipAddPathBezier
Nikolay Sivov
bunglehead at gmail.com
Thu Apr 24 16:58:26 CDT 2008
Changelog:
- implemented GdipAddPathBezier, integer version now use it.
---
dlls/gdiplus/gdiplus.spec | 2 +-
dlls/gdiplus/graphicspath.c | 27 +++++++++++++++++----------
include/gdiplusflat.h | 1 +
3 files changed, 19 insertions(+), 11 deletions(-)
diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec
index 3905c74..9fdd4be 100644
--- a/dlls/gdiplus/gdiplus.spec
+++ b/dlls/gdiplus/gdiplus.spec
@@ -1,6 +1,6 @@
@ stdcall GdipAddPathArc(ptr long long long long long long)
@ stdcall GdipAddPathArcI(ptr long long long long long long)
-@ stub GdipAddPathBezier
+@ 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
diff --git a/dlls/gdiplus/graphicspath.c b/dlls/gdiplus/graphicspath.c
index d7be43e..3f83bea 100644
--- a/dlls/gdiplus/graphicspath.c
+++ b/dlls/gdiplus/graphicspath.c
@@ -103,8 +103,8 @@ GpStatus WINGDIPAPI GdipAddPathArcI(GpPath *path, INT x1, INT y1, INT x2,
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)
+GpStatus WINGDIPAPI GdipAddPathBezier(GpPath *path, REAL x1, REAL y1, REAL x2,
+ REAL y2, REAL x3, REAL y3, REAL x4, REAL y4)
{
INT old_count;
@@ -116,14 +116,14 @@ GpStatus WINGDIPAPI GdipAddPathBezierI(GpPath *path, INT x1, INT y1, INT x2,
old_count = path->pathdata.Count;
- path->pathdata.Points[old_count].X = (REAL) x1;
- path->pathdata.Points[old_count].Y = (REAL) y1;
- path->pathdata.Points[old_count + 1].X = (REAL) x2;
- path->pathdata.Points[old_count + 1].Y = (REAL) y2;
- path->pathdata.Points[old_count + 2].X = (REAL) x3;
- path->pathdata.Points[old_count + 2].Y = (REAL) y3;
- path->pathdata.Points[old_count + 3].X = (REAL) x4;
- path->pathdata.Points[old_count + 3].Y = (REAL) y4;
+ path->pathdata.Points[old_count].X = x1;
+ path->pathdata.Points[old_count].Y = y1;
+ path->pathdata.Points[old_count + 1].X = x2;
+ path->pathdata.Points[old_count + 1].Y = y2;
+ path->pathdata.Points[old_count + 2].X = x3;
+ path->pathdata.Points[old_count + 2].Y = y3;
+ path->pathdata.Points[old_count + 3].X = x4;
+ path->pathdata.Points[old_count + 3].Y = y4;
path->pathdata.Types[old_count] =
(path->newfigure ? PathPointTypeStart : PathPointTypeLine);
@@ -137,6 +137,13 @@ GpStatus WINGDIPAPI GdipAddPathBezierI(GpPath *path, INT x1, INT y1, INT x2,
return Ok;
}
+GpStatus WINGDIPAPI GdipAddPathBezierI(GpPath *path, INT x1, INT y1, INT x2,
+ INT y2, INT x3, INT y3, INT x4, INT y4)
+{
+ return GdipAddPathBezier(path,(REAL)x1,(REAL)y1,(REAL)x2,(REAL)y2,(REAL)x3,(REAL)y3,
+ (REAL)x4,(REAL)y4);
+}
+
GpStatus WINGDIPAPI GdipAddPathBeziers(GpPath *path, GDIPCONST GpPointF *points,
INT count)
{
diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h
index 366e8a5..cd349ea 100644
--- a/include/gdiplusflat.h
+++ b/include/gdiplusflat.h
@@ -189,6 +189,7 @@ 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);
--
1.4.4.4
More information about the wine-patches
mailing list