gdiplus: Implement path gradient transform setters.

This commit is contained in:
Vincent Povirk 2012-03-31 13:30:44 -05:00 committed by Alexandre Julliard
parent 09b7aed7a2
commit c374fe9bdb
2 changed files with 28 additions and 26 deletions

View File

@ -1656,14 +1656,14 @@ GpStatus WINGDIPAPI GdipSetPathGradientWrapMode(GpPathGradient *grad,
GpStatus WINGDIPAPI GdipSetPathGradientTransform(GpPathGradient *grad, GpStatus WINGDIPAPI GdipSetPathGradientTransform(GpPathGradient *grad,
GpMatrix *matrix) GpMatrix *matrix)
{ {
static int calls;
TRACE("(%p,%p)\n", grad, matrix); TRACE("(%p,%p)\n", grad, matrix);
if(!(calls++)) if (!grad || !matrix)
FIXME("not implemented\n"); return InvalidParameter;
return NotImplemented; memcpy(grad->transform, matrix, sizeof(GpMatrix));
return Ok;
} }
GpStatus WINGDIPAPI GdipGetPathGradientTransform(GpPathGradient *grad, GpStatus WINGDIPAPI GdipGetPathGradientTransform(GpPathGradient *grad,
@ -1682,53 +1682,55 @@ GpStatus WINGDIPAPI GdipGetPathGradientTransform(GpPathGradient *grad,
GpStatus WINGDIPAPI GdipMultiplyPathGradientTransform(GpPathGradient *grad, GpStatus WINGDIPAPI GdipMultiplyPathGradientTransform(GpPathGradient *grad,
GDIPCONST GpMatrix *matrix, GpMatrixOrder order) GDIPCONST GpMatrix *matrix, GpMatrixOrder order)
{ {
static int calls;
TRACE("(%p,%p,%i)\n", grad, matrix, order); TRACE("(%p,%p,%i)\n", grad, matrix, order);
if(!(calls++)) if (!grad)
FIXME("not implemented\n"); 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, GpStatus WINGDIPAPI GdipRotatePathGradientTransform(GpPathGradient *grad,
REAL angle, GpMatrixOrder order) REAL angle, GpMatrixOrder order)
{ {
static int calls;
TRACE("(%p,%0.2f,%i)\n", grad, angle, order); TRACE("(%p,%0.2f,%i)\n", grad, angle, order);
if(!(calls++)) if (!grad)
FIXME("not implemented\n"); return InvalidParameter;
return NotImplemented; return GdipRotateMatrix(grad->transform, angle, order);
} }
GpStatus WINGDIPAPI GdipScalePathGradientTransform(GpPathGradient *grad, GpStatus WINGDIPAPI GdipScalePathGradientTransform(GpPathGradient *grad,
REAL sx, REAL sy, GpMatrixOrder order) REAL sx, REAL sy, GpMatrixOrder order)
{ {
static int calls;
TRACE("(%p,%0.2f,%0.2f,%i)\n", grad, sx, sy, order); TRACE("(%p,%0.2f,%0.2f,%i)\n", grad, sx, sy, order);
if(!(calls++)) if (!grad)
FIXME("not implemented\n"); return InvalidParameter;
return NotImplemented; return GdipScaleMatrix(grad->transform, sx, sy, order);
} }
GpStatus WINGDIPAPI GdipTranslatePathGradientTransform(GpPathGradient *grad, GpStatus WINGDIPAPI GdipTranslatePathGradientTransform(GpPathGradient *grad,
REAL dx, REAL dy, GpMatrixOrder order) REAL dx, REAL dy, GpMatrixOrder order)
{ {
static int calls;
TRACE("(%p,%0.2f,%0.2f,%i)\n", grad, dx, dy, order); TRACE("(%p,%0.2f,%0.2f,%i)\n", grad, dx, dy, order);
if(!(calls++)) if (!grad)
FIXME("not implemented\n"); return InvalidParameter;
return NotImplemented; return GdipTranslateMatrix(grad->transform, dx, dy, order);
} }
GpStatus WINGDIPAPI GdipSetSolidFillColor(GpSolidFill *sf, ARGB argb) GpStatus WINGDIPAPI GdipSetSolidFillColor(GpSolidFill *sf, ARGB argb)

View File

@ -459,7 +459,7 @@
459 stdcall GdipResetLineTransform(ptr) 459 stdcall GdipResetLineTransform(ptr)
460 stdcall GdipResetPageTransform(ptr) 460 stdcall GdipResetPageTransform(ptr)
461 stdcall GdipResetPath(ptr) 461 stdcall GdipResetPath(ptr)
462 stub GdipResetPathGradientTransform 462 stdcall GdipResetPathGradientTransform(ptr)
463 stdcall GdipResetPenTransform(ptr) 463 stdcall GdipResetPenTransform(ptr)
464 stdcall GdipResetTextureTransform(ptr) 464 stdcall GdipResetTextureTransform(ptr)
465 stdcall GdipResetWorldTransform(ptr) 465 stdcall GdipResetWorldTransform(ptr)