Module: wine Branch: master Commit: edb764fa54ebee1b5bdfae509565b923d7f878ee URL: http://source.winehq.org/git/wine.git/?a=commit;h=edb764fa54ebee1b5bdfae5095...
Author: Nikolay Sivov bunglehead@gmail.com Date: Thu Sep 25 08:56:35 2008 +0400
gdiplus: Implemented GdipSetTextureTransform with tests.
---
dlls/gdiplus/brush.c | 8 +++++--- dlls/gdiplus/tests/brush.c | 16 ++++++++++++++-- 2 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/dlls/gdiplus/brush.c b/dlls/gdiplus/brush.c index 3f58db2..3421105 100644 --- a/dlls/gdiplus/brush.c +++ b/dlls/gdiplus/brush.c @@ -1095,16 +1095,18 @@ GpStatus WINGDIPAPI GdipSetSolidFillColor(GpSolidFill *sf, ARGB argb) return Ok; }
+/****************************************************************************** + * GdipSetTextureTransform [GDIPLUS.@] + */ GpStatus WINGDIPAPI GdipSetTextureTransform(GpTexture *texture, GDIPCONST GpMatrix *matrix) { - static int calls; + TRACE("(%p, %p)\n", texture, matrix);
if(!texture || !matrix) return InvalidParameter;
- if(!(calls++)) - FIXME("not implemented\n"); + memcpy(texture->transform, matrix, sizeof(GpMatrix));
return Ok; } diff --git a/dlls/gdiplus/tests/brush.c b/dlls/gdiplus/tests/brush.c index 8d1bd27..c69bb99 100644 --- a/dlls/gdiplus/tests/brush.c +++ b/dlls/gdiplus/tests/brush.c @@ -176,7 +176,7 @@ static void test_transform(void) GpGraphics *graphics = NULL; GpBitmap *bitmap; HDC hdc = GetDC(0); - GpMatrix *m; + GpMatrix *m, *m1; BOOL res;
status = GdipCreateMatrix2(2.0, 0.0, 0.0, 0.0, 0.0, 0.0, &m); @@ -196,16 +196,28 @@ static void test_transform(void) status = GdipGetTextureTransform(texture, NULL); expect(InvalidParameter, status);
- /* default value - identity matrix */ + /* get default value - identity matrix */ status = GdipGetTextureTransform(texture, m); expect(Ok, status); status = GdipIsMatrixIdentity(m, &res); expect(Ok, status); expect(TRUE, res); + /* set and get then */ + status = GdipCreateMatrix2(2.0, 0.0, 0.0, 2.0, 0.0, 0.0, &m1); + expect(Ok, status); + status = GdipSetTextureTransform(texture, m1); + expect(Ok, status); + status = GdipGetTextureTransform(texture, m); + expect(Ok, status); + status = GdipIsMatrixEqual(m, m1, &res); + expect(Ok, status); + expect(TRUE, res);
status = GdipDeleteBrush((GpBrush*)texture); expect(Ok, status);
+ status = GdipDeleteMatrix(m1); + expect(Ok, status); status = GdipDeleteMatrix(m); expect(Ok, status); status = GdipDisposeImage((GpImage*)bitmap);