[GDI+: 4/7] implemented GdipDrawBezier
Evan Stade
estade at gmail.com
Wed Jun 13 18:41:28 CDT 2007
Hi,
Changelog:
*implemented GdipDrawBezier
dlls/gdiplus/gdiplus.spec | 2 +-
dlls/gdiplus/graphics.c | 19 +++++++++++++++++++
include/gdiplusflat.h | 2 ++
3 files changed, 22 insertions(+), 1 deletions(-)
-Evan Stade
-------------- next part --------------
diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec
index f083908..3036155 100644
--- a/dlls/gdiplus/gdiplus.spec
+++ b/dlls/gdiplus/gdiplus.spec
@@ -144,7 +144,7 @@
@ stub GdipDisposeImageAttributes
@ stdcall GdipDrawArc(ptr ptr long long long long long long)
@ stub GdipDrawArcI
-@ stub GdipDrawBezier
+@ stdcall GdipDrawBezier(ptr ptr long long long long long long long long)
@ stub GdipDrawBezierI
@ stub GdipDrawBeziers
@ stub GdipDrawBeziersI
diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index 34c146c..954f78a 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -139,6 +139,25 @@ GpStatus WINGDIPAPI GdipDrawArc(GpGraphi
return Ok;
}
+GpStatus WINGDIPAPI GdipDrawBezier(GpGraphics *graphics, GpPen *pen, REAL x1,
+ REAL y1, REAL x2, REAL y2, REAL x3, REAL y3, REAL x4, REAL y4)
+{
+ HGDIOBJ old_pen;
+ POINT pt[4] = {{roundr(x1), roundr(y1)}, {roundr(x2), roundr(y2)},
+ {roundr(x3), roundr(y3)}, {roundr(x4), roundr(y4)}};
+
+ if(!graphics || !pen)
+ return InvalidParameter;
+
+ old_pen = SelectObject(graphics->hdc, pen->gdipen);
+
+ PolyBezier(graphics->hdc, pt, 4);
+
+ SelectObject(graphics->hdc, old_pen);
+
+ return Ok;
+}
+
GpStatus WINGDIPAPI GdipDrawLineI(GpGraphics *graphics, GpPen *pen, INT x1,
INT y1, INT x2, INT y2)
{
diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h
index 2336641..538f1f4 100644
--- a/include/gdiplusflat.h
+++ b/include/gdiplusflat.h
@@ -32,6 +32,8 @@ GpStatus WINGDIPAPI GdipCreateFromHDC(HD
GpStatus WINGDIPAPI GdipCreateFromHWND(HWND,GpGraphics**);
GpStatus WINGDIPAPI GdipDeleteGraphics(GpGraphics *);
GpStatus WINGDIPAPI GdipDrawArc(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,REAL);
+GpStatus WINGDIPAPI GdipDrawBezier(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,
+ REAL,REAL,REAL);
GpStatus WINGDIPAPI GdipDrawLineI(GpGraphics*,GpPen*,INT,INT,INT,INT);
GpStatus WINGDIPAPI GdipDrawPie(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,REAL);
GpStatus WINGDIPAPI GdipDrawRectangleI(GpGraphics*,GpPen*,INT,INT,INT,INT);
--
1.4.1
More information about the wine-patches
mailing list