Module: wine Branch: master Commit: 9a9c857b3ffbc21d6fbde0d021daa9b2816373d2 URL: http://source.winehq.org/git/wine.git/?a=commit;h=9a9c857b3ffbc21d6fbde0d021...
Author: Evan Stade estade@gmail.com Date: Thu Aug 2 17:52:59 2007 -0700
gdiplus: Added GdipG/SetPathGradientCenterPoint.
---
dlls/gdiplus/brush.c | 29 +++++++++++++++++++++++++++++ dlls/gdiplus/gdiplus.spec | 4 ++-- dlls/gdiplus/gdiplus_private.h | 1 + include/gdiplusflat.h | 2 ++ 4 files changed, 34 insertions(+), 2 deletions(-)
diff --git a/dlls/gdiplus/brush.c b/dlls/gdiplus/brush.c index d9f06ad..1e08c42 100644 --- a/dlls/gdiplus/brush.c +++ b/dlls/gdiplus/brush.c @@ -114,6 +114,8 @@ GpStatus WINGDIPAPI GdipCreatePathGradient(GDIPCONST GpPointF* points, (*grad)->centercolor = 0xffffffff; (*grad)->wrap = wrap; (*grad)->gamma = FALSE; + (*grad)->center.X = 0.0; + (*grad)->center.Y = 0.0;
return Ok; } @@ -154,6 +156,9 @@ GpStatus WINGDIPAPI GdipCreatePathGradientFromPath(GDIPCONST GpPath* path, (*grad)->centercolor = 0xffffffff; (*grad)->wrap = WrapModeClamp; (*grad)->gamma = FALSE; + /* FIXME: this should be set to the "centroid" of the path by default */ + (*grad)->center.X = 0.0; + (*grad)->center.Y = 0.0;
return Ok; } @@ -208,6 +213,18 @@ GpStatus WINGDIPAPI GdipDeleteBrush(GpBrush *brush) return Ok; }
+GpStatus WINGDIPAPI GdipGetPathGradientCenterPoint(GpPathGradient *grad, + GpPointF *point) +{ + if(!grad || !point) + return InvalidParameter; + + point->X = grad->center.X; + point->Y = grad->center.Y; + + return Ok; +} + GpStatus WINGDIPAPI GdipGetPathGradientGammaCorrection(GpPathGradient *grad, BOOL *gamma) { @@ -269,6 +286,18 @@ GpStatus WINGDIPAPI GdipSetPathGradientCenterColor(GpPathGradient *grad, return Ok; }
+GpStatus WINGDIPAPI GdipSetPathGradientCenterPoint(GpPathGradient *grad, + GpPointF *point) +{ + if(!grad || !point) + return InvalidParameter; + + grad->center.X = point->X; + grad->center.Y = point->Y; + + return Ok; +} + GpStatus WINGDIPAPI GdipSetPathGradientGammaCorrection(GpPathGradient *grad, BOOL gamma) { diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec index 467ba82..0114952 100644 --- a/dlls/gdiplus/gdiplus.spec +++ b/dlls/gdiplus/gdiplus.spec @@ -328,7 +328,7 @@ @ stub GdipGetPathGradientBlend @ stub GdipGetPathGradientBlendCount @ stub GdipGetPathGradientCenterColor -@ stub GdipGetPathGradientCenterPoint +@ stdcall GdipGetPathGradientCenterPoint(ptr ptr) @ stub GdipGetPathGradientCenterPointI @ stub GdipGetPathGradientFocusScales @ stdcall GdipGetPathGradientGammaCorrection(ptr ptr) @@ -550,7 +550,7 @@ @ stdcall GdipSetPathFillMode(ptr long) @ stub GdipSetPathGradientBlend @ stdcall GdipSetPathGradientCenterColor(ptr long) -@ stub GdipSetPathGradientCenterPoint +@ stdcall GdipSetPathGradientCenterPoint(ptr ptr) @ stub GdipSetPathGradientCenterPointI @ stub GdipSetPathGradientFocusScales @ stdcall GdipSetPathGradientGammaCorrection(ptr long) diff --git a/dlls/gdiplus/gdiplus_private.h b/dlls/gdiplus/gdiplus_private.h index 5f92680..53756c3 100644 --- a/dlls/gdiplus/gdiplus_private.h +++ b/dlls/gdiplus/gdiplus_private.h @@ -98,6 +98,7 @@ struct GpPathGradient{ ARGB centercolor; GpWrapMode wrap; BOOL gamma; + GpPointF center; };
struct GpPath{ diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h index 35edfba..20d4ff9 100644 --- a/include/gdiplusflat.h +++ b/include/gdiplusflat.h @@ -94,6 +94,7 @@ GpStatus WINGDIPAPI GdipCreatePathGradientFromPath(GDIPCONST GpPath*, GpPathGradient**); GpStatus WINGDIPAPI GdipCreateSolidFill(ARGB,GpSolidFill**); GpStatus WINGDIPAPI GdipGetBrushType(GpBrush*,GpBrushType*); +GpStatus WINGDIPAPI GdipGetPathGradientCenterPoint(GpPathGradient*,GpPointF*); GpStatus WINGDIPAPI GdipGetPathGradientGammaCorrection(GpPathGradient*,BOOL*); GpStatus WINGDIPAPI GdipGetPathGradientPointCount(GpPathGradient*,INT*); GpStatus WINGDIPAPI GdipGetPathGradientSurroundColorsWithCount(GpPathGradient*, @@ -101,6 +102,7 @@ GpStatus WINGDIPAPI GdipGetPathGradientSurroundColorsWithCount(GpPathGradient*, GpStatus WINGDIPAPI GdipDeleteBrush(GpBrush*); GpStatus WINGDIPAPI GdipGetSolidFillColor(GpSolidFill*,ARGB*); GpStatus WINGDIPAPI GdipSetPathGradientCenterColor(GpPathGradient*,ARGB); +GpStatus WINGDIPAPI GdipSetPathGradientCenterPoint(GpPathGradient*,GpPointF*); GpStatus WINGDIPAPI GdipSetPathGradientGammaCorrection(GpPathGradient*,BOOL); GpStatus WINGDIPAPI GdipSetPathGradientSigmaBlend(GpPathGradient*,REAL,REAL); GpStatus WINGDIPAPI GdipSetPathGradientSurroundColorsWithCount(GpPathGradient*,