Evan Stade : gdiplus: Implemented GdipDrawLines.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Jun 22 07:35:43 CDT 2007


Module: wine
Branch: master
Commit: f6f04f6e0ede8f7add6db6874a2c294fc993e900
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=f6f04f6e0ede8f7add6db6874a2c294fc993e900

Author: Evan Stade <estade at gmail.com>
Date:   Thu Jun 21 16:15:13 2007 -0700

gdiplus: Implemented GdipDrawLines.

---

 dlls/gdiplus/gdiplus.spec |    2 +-
 dlls/gdiplus/graphics.c   |   21 +++++++++++++++++++++
 include/gdiplusflat.h     |    1 +
 3 files changed, 23 insertions(+), 1 deletions(-)

diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec
index 775bde3..db9dd46 100644
--- a/dlls/gdiplus/gdiplus.spec
+++ b/dlls/gdiplus/gdiplus.spec
@@ -176,7 +176,7 @@
 @ stub GdipDrawImageRectRectI
 @ stub GdipDrawLine
 @ stdcall GdipDrawLineI(ptr ptr long long long long)
-@ stub GdipDrawLines
+@ stdcall GdipDrawLines(ptr ptr ptr long)
 @ stub GdipDrawLinesI
 @ stub GdipDrawPath
 @ stdcall GdipDrawPie(ptr ptr long long long long long long)
diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index f917b65..beba700 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -259,6 +259,27 @@ GpStatus WINGDIPAPI GdipDrawLineI(GpGraphics *graphics, GpPen *pen, INT x1,
     return Ok;
 }
 
+GpStatus WINGDIPAPI GdipDrawLines(GpGraphics *graphics, GpPen *pen, GDIPCONST
+    GpPointF *points, INT count)
+{
+    HGDIOBJ old_obj;
+    INT i;
+
+    if(!pen || !graphics || (count < 2))
+        return InvalidParameter;
+
+    old_obj = SelectObject(graphics->hdc, pen->gdipen);
+    MoveToEx(graphics->hdc, roundr(points[0].X), roundr(points[0].Y), NULL);
+
+    for(i = 1; i < count; i++){
+        LineTo(graphics->hdc, roundr(points[i].X), roundr(points[i].Y));
+    }
+
+    SelectObject(graphics->hdc, old_obj);
+
+    return Ok;
+}
+
 GpStatus WINGDIPAPI GdipDrawPie(GpGraphics *graphics, GpPen *pen, REAL x,
     REAL y, REAL width, REAL height, REAL startAngle, REAL sweepAngle)
 {
diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h
index e5c46b3..93905fd 100644
--- a/include/gdiplusflat.h
+++ b/include/gdiplusflat.h
@@ -38,6 +38,7 @@ GpStatus WINGDIPAPI GdipDrawBezier(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,
     REAL,REAL,REAL);
 GpStatus WINGDIPAPI GdipDrawCurve2(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT,REAL);
 GpStatus WINGDIPAPI GdipDrawLineI(GpGraphics*,GpPen*,INT,INT,INT,INT);
+GpStatus WINGDIPAPI GdipDrawLines(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT);
 GpStatus WINGDIPAPI GdipDrawPie(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,REAL);
 GpStatus WINGDIPAPI GdipDrawRectangleI(GpGraphics*,GpPen*,INT,INT,INT,INT);
 GpStatus WINGDIPAPI GdipFillPie(GpGraphics*,GpBrush*,REAL,REAL,REAL,REAL,REAL,REAL);




More information about the wine-cvs mailing list