Nikolay Sivov : gdiplus: Implemented GdipSetTextureTransform with tests.

Alexandre Julliard julliard at winehq.org
Thu Sep 25 07:13:35 CDT 2008


Module: wine
Branch: master
Commit: edb764fa54ebee1b5bdfae509565b923d7f878ee
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=edb764fa54ebee1b5bdfae509565b923d7f878ee

Author: Nikolay Sivov <bunglehead at 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);




More information about the wine-cvs mailing list