From d0a85604d532bb8f4cc3cd1a07ce525facb0dc65 Mon Sep 17 00:00:00 2001 From: Vincent Povirk Date: Tue, 24 Apr 2012 09:50:33 -0500 Subject: [PATCH] gdiplus: Implement GdipSetPathGradientLinearBlend. --- dlls/gdiplus/brush.c | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/dlls/gdiplus/brush.c b/dlls/gdiplus/brush.c index 5c820649dae..490a0b9f119 100644 --- a/dlls/gdiplus/brush.c +++ b/dlls/gdiplus/brush.c @@ -1466,14 +1466,33 @@ GpStatus WINGDIPAPI GdipSetPathGradientBlend(GpPathGradient *brush, GDIPCONST RE GpStatus WINGDIPAPI GdipSetPathGradientLinearBlend(GpPathGradient *brush, REAL focus, REAL scale) { - static int calls; + REAL factors[3]; + REAL positions[3]; + int num_points = 0; TRACE("(%p,%0.2f,%0.2f)\n", brush, focus, scale); - if(!(calls++)) - FIXME("not implemented\n"); + if (!brush) return InvalidParameter; - return NotImplemented; + if (focus != 0.0) + { + factors[num_points] = 0.0; + positions[num_points] = 0.0; + num_points++; + } + + factors[num_points] = scale; + positions[num_points] = focus; + num_points++; + + if (focus != 1.0) + { + factors[num_points] = 0.0; + positions[num_points] = 1.0; + num_points++; + } + + return GdipSetPathGradientBlend(brush, factors, positions, num_points); } GpStatus WINGDIPAPI GdipSetPathGradientPresetBlend(GpPathGradient *brush, -- 2.11.4.GIT