[3/4] gdiplus: implemented GdipSetTextureTransform with tests
Nikolay Sivov
bunglehead at gmail.com
Thu Sep 25 00:08:13 CDT 2008
Changelog:
- implement GdipSetTextureTransform with tests
>From 266e6fd06d7e2a9631b9bc803e7118b764314022 Mon Sep 17 00:00:00 2001
From: Nikolay Sivov <bunglehead at gmail.com>
Date: Thu, 25 Sep 2008 08:56:35 +0400
Subject: Implement 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..de26090 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);
--
1.4.4.4
More information about the wine-patches
mailing list