Module: wine Branch: master Commit: c374fe9bdbdf40b755596bcd07fcff62b6cbc924 URL: http://source.winehq.org/git/wine.git/?a=commit;h=c374fe9bdbdf40b755596bcd07...
Author: Vincent Povirk vincent@codeweavers.com Date: Sat Mar 31 13:30:44 2012 -0500
gdiplus: Implement path gradient transform setters.
---
dlls/gdiplus/brush.c | 52 +++++++++++++++++++++++--------------------- dlls/gdiplus/gdiplus.spec | 2 +- 2 files changed, 28 insertions(+), 26 deletions(-)
diff --git a/dlls/gdiplus/brush.c b/dlls/gdiplus/brush.c index 359f4973..ac5328e 100644 --- a/dlls/gdiplus/brush.c +++ b/dlls/gdiplus/brush.c @@ -1656,14 +1656,14 @@ GpStatus WINGDIPAPI GdipSetPathGradientWrapMode(GpPathGradient *grad, GpStatus WINGDIPAPI GdipSetPathGradientTransform(GpPathGradient *grad, GpMatrix *matrix) { - static int calls; - TRACE("(%p,%p)\n", grad, matrix);
- if(!(calls++)) - FIXME("not implemented\n"); + if (!grad || !matrix) + return InvalidParameter;
- return NotImplemented; + memcpy(grad->transform, matrix, sizeof(GpMatrix)); + + return Ok; }
GpStatus WINGDIPAPI GdipGetPathGradientTransform(GpPathGradient *grad, @@ -1682,53 +1682,55 @@ GpStatus WINGDIPAPI GdipGetPathGradientTransform(GpPathGradient *grad, GpStatus WINGDIPAPI GdipMultiplyPathGradientTransform(GpPathGradient *grad, GDIPCONST GpMatrix *matrix, GpMatrixOrder order) { - static int calls; - TRACE("(%p,%p,%i)\n", grad, matrix, order);
- if(!(calls++)) - FIXME("not implemented\n"); + if (!grad) + return InvalidParameter;
- return NotImplemented; + return GdipMultiplyMatrix(grad->transform, matrix, order); +} + +GpStatus WINGDIPAPI GdipResetPathGradientTransform(GpPathGradient *grad) +{ + TRACE("(%p)\n", grad); + + if (!grad) + return InvalidParameter; + + return GdipSetMatrixElements(grad->transform, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0); }
GpStatus WINGDIPAPI GdipRotatePathGradientTransform(GpPathGradient *grad, REAL angle, GpMatrixOrder order) { - static int calls; - TRACE("(%p,%0.2f,%i)\n", grad, angle, order);
- if(!(calls++)) - FIXME("not implemented\n"); + if (!grad) + return InvalidParameter;
- return NotImplemented; + return GdipRotateMatrix(grad->transform, angle, order); }
GpStatus WINGDIPAPI GdipScalePathGradientTransform(GpPathGradient *grad, REAL sx, REAL sy, GpMatrixOrder order) { - static int calls; - TRACE("(%p,%0.2f,%0.2f,%i)\n", grad, sx, sy, order);
- if(!(calls++)) - FIXME("not implemented\n"); + if (!grad) + return InvalidParameter;
- return NotImplemented; + return GdipScaleMatrix(grad->transform, sx, sy, order); }
GpStatus WINGDIPAPI GdipTranslatePathGradientTransform(GpPathGradient *grad, REAL dx, REAL dy, GpMatrixOrder order) { - static int calls; - TRACE("(%p,%0.2f,%0.2f,%i)\n", grad, dx, dy, order);
- if(!(calls++)) - FIXME("not implemented\n"); + if (!grad) + return InvalidParameter;
- return NotImplemented; + return GdipTranslateMatrix(grad->transform, dx, dy, order); }
GpStatus WINGDIPAPI GdipSetSolidFillColor(GpSolidFill *sf, ARGB argb) diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec index 535ecab..01e8dd7 100644 --- a/dlls/gdiplus/gdiplus.spec +++ b/dlls/gdiplus/gdiplus.spec @@ -459,7 +459,7 @@ 459 stdcall GdipResetLineTransform(ptr) 460 stdcall GdipResetPageTransform(ptr) 461 stdcall GdipResetPath(ptr) -462 stub GdipResetPathGradientTransform +462 stdcall GdipResetPathGradientTransform(ptr) 463 stdcall GdipResetPenTransform(ptr) 464 stdcall GdipResetTextureTransform(ptr) 465 stdcall GdipResetWorldTransform(ptr)