From 1fad97dd104599eadf105dd827b252e7fdb75509 Mon Sep 17 00:00:00 2001 From: Vincent Povirk Date: Wed, 6 May 2009 16:36:06 -0500 Subject: [PATCH] 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); -- 1.5.4.3