Vincent Povirk : gdiplus: Use the mode passed to GdipCreateLineBrushFromRect.

Alexandre Julliard julliard at winehq.org
Fri May 8 08:06:27 CDT 2009


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

Author: Vincent Povirk <vincent at codeweavers.com>
Date:   Wed May  6 16:36:06 2009 -0500

gdiplus: Use the mode passed to GdipCreateLineBrushFromRect.

---

 dlls/gdiplus/brush.c |   33 +++++++++++++++++++++++++++++----
 1 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/dlls/gdiplus/brush.c b/dlls/gdiplus/brush.c
index cd1ba7f..76e6a0f 100644
--- a/dlls/gdiplus/brush.c
+++ b/dlls/gdiplus/brush.c
@@ -309,10 +309,35 @@ GpStatus WINGDIPAPI GdipCreateLineBrushFromRect(GDIPCONST GpRectF* rect,
     if(!line || !rect)
         return InvalidParameter;
 
-    start.X = rect->X;
-    start.Y = rect->Y;
-    end.X = rect->X + rect->Width;
-    end.Y = rect->Y + rect->Height;
+    switch (mode)
+    {
+    case LinearGradientModeHorizontal:
+        start.X = rect->X;
+        start.Y = rect->Y;
+        end.X = rect->X + rect->Width;
+        end.Y = rect->Y;
+        break;
+    case LinearGradientModeVertical:
+        start.X = rect->X;
+        start.Y = rect->Y;
+        end.X = rect->X;
+        end.Y = rect->Y + rect->Height;
+        break;
+    case LinearGradientModeForwardDiagonal:
+        start.X = rect->X;
+        start.Y = rect->Y;
+        end.X = rect->X + rect->Width;
+        end.Y = rect->Y + rect->Height;
+        break;
+    case LinearGradientModeBackwardDiagonal:
+        start.X = rect->X + rect->Width;
+        start.Y = rect->Y;
+        end.X = rect->X;
+        end.Y = rect->Y + rect->Height;
+        break;
+    default:
+        return InvalidParameter;
+    }
 
     stat = GdipCreateLineBrush(&start, &end, startcolor, endcolor, wrap, line);
 




More information about the wine-cvs mailing list