David Adam : d3dx9: Fix falling tests in native windows.

Alexandre Julliard julliard at winehq.org
Tue Jan 13 10:56:40 CST 2009


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

Author: David Adam <david.adam.cnrs at gmail.com>
Date:   Tue Jan 13 12:22:25 2009 +0100

d3dx9: Fix falling tests in native windows.

---

 dlls/d3dx9_36/math.c       |   12 +++++++++++-
 dlls/d3dx9_36/tests/math.c |    8 ++++----
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/dlls/d3dx9_36/math.c b/dlls/d3dx9_36/math.c
index 542e408..13b8bd3 100644
--- a/dlls/d3dx9_36/math.c
+++ b/dlls/d3dx9_36/math.c
@@ -37,6 +37,7 @@ D3DXMATRIX* WINAPI D3DXMatrixAffineTransformation2D(
     CONST D3DXVECTOR2 *protationcenter, FLOAT rotation,
     CONST D3DXVECTOR2 *ptranslation)
 {
+    D3DXMATRIX m1, m2, m3, m4, m5;
     D3DXQUATERNION rot;
     D3DXVECTOR3 rot_center, trans;
 
@@ -71,7 +72,16 @@ D3DXMATRIX* WINAPI D3DXMatrixAffineTransformation2D(
         trans.z=0.0f;
     }
 
-    D3DXMatrixAffineTransformation(pout, scaling, &rot_center, &rot, &trans);
+    D3DXMatrixScaling(&m1, scaling, scaling, 1.0f);
+    D3DXMatrixTranslation(&m2, -rot_center.x, -rot_center.y, -rot_center.z);
+    D3DXMatrixTranslation(&m4, rot_center.x, rot_center.y, rot_center.z);
+    D3DXMatrixRotationQuaternion(&m3, &rot);
+    D3DXMatrixTranslation(&m5, trans.x, trans.y, trans.z);
+
+    D3DXMatrixMultiply(&m1, &m1, &m2);
+    D3DXMatrixMultiply(&m1, &m1, &m3);
+    D3DXMatrixMultiply(&m1, &m1, &m4);
+    D3DXMatrixMultiply(pout, &m1, &m5);
 
     return pout;
 }
diff --git a/dlls/d3dx9_36/tests/math.c b/dlls/d3dx9_36/tests/math.c
index 2240fb0..50db67b 100644
--- a/dlls/d3dx9_36/tests/math.c
+++ b/dlls/d3dx9_36/tests/math.c
@@ -147,7 +147,7 @@ static void test_Matrix_AffineTransformation2D(void)
     U(exp_mat).m[3][1] = 6.401924f;
     U(exp_mat).m[0][2] = 0.0f;
     U(exp_mat).m[1][2] = 0.0f;
-    U(exp_mat).m[2][2] = 20.0f;
+    U(exp_mat).m[2][2] = 1.0f;
     U(exp_mat).m[3][2] = 0.0f;
     U(exp_mat).m[0][3] = 0.0f;
     U(exp_mat).m[1][3] = 0.0f;
@@ -177,7 +177,7 @@ static void test_Matrix_AffineTransformation2D(void)
     U(exp_mat).m[3][1] = -0.598076f;
     U(exp_mat).m[0][2] = 0.0f;
     U(exp_mat).m[1][2] = 0.0f;
-    U(exp_mat).m[2][2] = 20.0f;
+    U(exp_mat).m[2][2] = 1.0f;
     U(exp_mat).m[3][2] = 0.0f;
     U(exp_mat).m[0][3] = 0.0f;
     U(exp_mat).m[1][3] = 0.0f;
@@ -207,7 +207,7 @@ static void test_Matrix_AffineTransformation2D(void)
     U(exp_mat).m[3][1] = 7.0f;
     U(exp_mat).m[0][2] = 0.0f;
     U(exp_mat).m[1][2] = 0.0f;
-    U(exp_mat).m[2][2] = 20.0f;
+    U(exp_mat).m[2][2] = 1.0f;
     U(exp_mat).m[3][2] = 0.0f;
     U(exp_mat).m[0][3] = 0.0f;
     U(exp_mat).m[1][3] = 0.0f;
@@ -234,7 +234,7 @@ static void test_Matrix_AffineTransformation2D(void)
     U(exp_mat).m[3][1] = 0.0f;
     U(exp_mat).m[0][2] = 0.0f;
     U(exp_mat).m[1][2] = 0.0f;
-    U(exp_mat).m[2][2] = -20.0f;
+    U(exp_mat).m[2][2] = 1.0f;
     U(exp_mat).m[3][2] = 0.0f;
     U(exp_mat).m[0][3] = 0.0f;
     U(exp_mat).m[1][3] = 0.0f;




More information about the wine-cvs mailing list