Evan Stade : gdiplus: Added GdipCreateLineBrushFromRectI.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Aug 8 08:59:51 CDT 2007


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

Author: Evan Stade <estade at gmail.com>
Date:   Tue Aug  7 18:43:00 2007 -0700

gdiplus: Added GdipCreateLineBrushFromRectI.

---

 dlls/gdiplus/brush.c      |   17 +++++++++++++++++
 dlls/gdiplus/gdiplus.spec |    2 +-
 include/gdiplusenums.h    |    9 +++++++++
 include/gdiplusflat.h     |    2 ++
 4 files changed, 29 insertions(+), 1 deletions(-)

diff --git a/dlls/gdiplus/brush.c b/dlls/gdiplus/brush.c
index dca3a41..1c17560 100644
--- a/dlls/gdiplus/brush.c
+++ b/dlls/gdiplus/brush.c
@@ -115,6 +115,23 @@ GpStatus WINGDIPAPI GdipCreateLineBrush(GDIPCONST GpPointF* startpoint,
     return Ok;
 }
 
+GpStatus WINGDIPAPI GdipCreateLineBrushFromRectI(GDIPCONST GpRect* rect,
+    ARGB startcolor, ARGB endcolor, LinearGradientMode mode, GpWrapMode wrap,
+    GpLineGradient **line)
+{
+    GpPointF start, end;
+
+    if(!line || !rect)
+        return InvalidParameter;
+
+    start.X = (REAL) rect->X;
+    start.Y = (REAL) rect->Y;
+    end.X = (REAL) (rect->X + rect->Width);
+    end.Y = (REAL) (rect->Y + rect->Height);
+
+    return GdipCreateLineBrush(&start, &end, startcolor, endcolor, wrap, line);
+}
+
 GpStatus WINGDIPAPI GdipCreatePathGradient(GDIPCONST GpPointF* points,
     INT count, GpWrapMode wrap, GpPathGradient **grad)
 {
diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec
index f5d0665..7c0ea9c 100644
--- a/dlls/gdiplus/gdiplus.spec
+++ b/dlls/gdiplus/gdiplus.spec
@@ -100,7 +100,7 @@
 @ stdcall GdipCreateImageAttributes(ptr)
 @ stdcall GdipCreateLineBrush(ptr ptr long long long ptr)
 @ stub GdipCreateLineBrushFromRect
-@ stub GdipCreateLineBrushFromRectI
+@ stdcall GdipCreateLineBrushFromRectI(ptr long long long long ptr)
 @ stub GdipCreateLineBrushFromRectWithAngle
 @ stub GdipCreateLineBrushFromRectWithAngleI
 @ stub GdipCreateLineBrushI
diff --git a/include/gdiplusenums.h b/include/gdiplusenums.h
index 9d81051..a2fe1fb 100644
--- a/include/gdiplusenums.h
+++ b/include/gdiplusenums.h
@@ -183,6 +183,14 @@ enum MetafileType
     MetafileTypeEmfPlusDual
 };
 
+enum LinearGradientMode
+{
+    LinearGradientModeHorizontal,
+    LinearGradientModeVertical,
+    LinearGradientModeForwardDiagonal,
+    LinearGradientModeBackwardDiagonal
+};
+
 #ifndef __cplusplus
 
 typedef enum Unit Unit;
@@ -202,6 +210,7 @@ typedef enum MatrixOrder MatrixOrder;
 typedef enum ImageType ImageType;
 typedef enum WrapMode WrapMode;
 typedef enum MetafileType MetafileType;
+typedef enum LinearGradientMode LinearGradientMode;
 
 #endif /* end of c typedefs */
 
diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h
index 0156bd5..0c2d8c4 100644
--- a/include/gdiplusflat.h
+++ b/include/gdiplusflat.h
@@ -146,6 +146,8 @@ GpStatus WINGDIPAPI GdipStartPathFigure(GpPath*);
 GpStatus WINGDIPAPI GdipTransformPath(GpPath*,GpMatrix*);
 
 GpStatus WINGDIPAPI GdipCloneMatrix(GpMatrix*,GpMatrix**);
+GpStatus WINGDIPAPI GdipCreateLineBrushFromRectI(GDIPCONST GpRect*,ARGB,ARGB,
+    LinearGradientMode,GpWrapMode,GpLineGradient**);
 GpStatus WINGDIPAPI GdipCreateMatrix(GpMatrix**);
 GpStatus WINGDIPAPI GdipCreateMatrix2(REAL,REAL,REAL,REAL,REAL,REAL,GpMatrix**);
 GpStatus WINGDIPAPI GdipCreateMatrix3(GDIPCONST GpRectF *,GDIPCONST GpPointF*,




More information about the wine-cvs mailing list