[PATCH 5/5] ddraw/tests: Properly declare matrices.

Henri Verbeet hverbeet at codeweavers.com
Mon Jun 16 06:13:24 CDT 2014


---
 dlls/ddraw/tests/d3d.c    |   37 ++++++++++++++------------
 dlls/ddraw/tests/visual.c |   63 ++++++++++++++++++++++++---------------------
 2 files changed, 54 insertions(+), 46 deletions(-)

diff --git a/dlls/ddraw/tests/d3d.c b/dlls/ddraw/tests/d3d.c
index be87e63..209555a 100644
--- a/dlls/ddraw/tests/d3d.c
+++ b/dlls/ddraw/tests/d3d.c
@@ -2807,27 +2807,32 @@ static void SetMaterialTest(void)
 
 static void ComputeSphereVisibility(void)
 {
-    D3DMATRIX proj, view, world;
+    D3DMATRIX proj =
+    {
+        1.810660f, 0.000000f,  0.000000f, 0.000000f,
+        0.000000f, 2.414213f,  0.000000f, 0.000000f,
+        0.000000f, 0.000000f,  1.020408f, 1.000000f,
+        0.000000f, 0.000000f, -0.102041f, 0.000000f,
+    };
+    D3DMATRIX view =
+    {
+          1.000000f, 0.000000f,  0.000000f, 0.000000f,
+          0.000000f, 0.768221f, -0.640185f, 0.000000f,
+         -0.000000f, 0.640185f,  0.768221f, 0.000000f,
+        -14.852037f, 9.857489f, 11.600972f, 1.000000f,
+    };
+    D3DMATRIX world =
+    {
+        1.0f, 0.0f, 0.0f, 0.0f,
+        0.0f, 1.0f, 0.0f, 0.0f,
+        0.0f, 0.0f, 1.0f, 0.0f,
+        0.0f, 0.0f, 0.0f, 1.0f,
+    };
     D3DVALUE radius[3];
     D3DVECTOR center[3];
     DWORD result[3];
     HRESULT rc;
 
-    world._11=1.0; world._12=0.0; world._13=0.0; world._14=0.0;
-    world._21=0.0; world._22=1.0; world._23=0.0; world._24=0.0;
-    world._31=0.0; world._32=0.0; world._33=1.0; world._34=0.0;
-    world._41=0.0; world._42=0.0; world._43=0.0; world._44=1.0;
-
-    view._11=1.000000; view._12=0.000000; view._13=0.000000; view._14=0.000000;
-    view._21=0.000000; view._22=0.768221; view._23=-0.640185; view._24=0.000000;
-    view._31=-0.000000; view._32=0.640185; view._33=0.768221; view._34=0.000000;
-    view._41=-14.852037; view._42=9.857489; view._43=11.600972; view._44=1.000000;
-
-    proj._11=1.810660; proj._12=0.000000; proj._13=0.00000; proj._14=0.000000;
-    proj._21=0.000000; proj._22=2.414213; proj._23=0.000000, proj._24=0.000000;
-    proj._31=0.000000; proj._32=0.000000; proj._33=1.020408, proj._34=1.000000;
-    proj._41=0.000000; proj._42=0.000000; proj._43=-0.102041; proj._44=0.000000;
-
     IDirect3DDevice7_SetTransform(lpD3DDevice, D3DTRANSFORMSTATE_WORLD, &world);
     IDirect3DDevice7_SetTransform(lpD3DDevice, D3DTRANSFORMSTATE_VIEW , &view);
     IDirect3DDevice7_SetTransform(lpD3DDevice, D3DTRANSFORMSTATE_PROJECTION, &proj);
diff --git a/dlls/ddraw/tests/visual.c b/dlls/ddraw/tests/visual.c
index 109c24c..7aaf7cd 100644
--- a/dlls/ddraw/tests/visual.c
+++ b/dlls/ddraw/tests/visual.c
@@ -290,11 +290,13 @@ static void lighting_test(IDirect3DDevice7 *device)
     DWORD nfvf = D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_NORMAL;
     DWORD color;
 
-    float mat[16] = { 1.0f, 0.0f, 0.0f, 0.0f,
-                      0.0f, 1.0f, 0.0f, 0.0f,
-                      0.0f, 0.0f, 1.0f, 0.0f,
-                      0.0f, 0.0f, 0.0f, 1.0f };
-
+    D3DMATRIX mat =
+    {
+        1.0f, 0.0f, 0.0f, 0.0f,
+        0.0f, 1.0f, 0.0f, 0.0f,
+        0.0f, 0.0f, 1.0f, 0.0f,
+        0.0f, 0.0f, 0.0f, 1.0f,
+    };
     struct vertex unlitquad[] =
     {
         {-1.0f, -1.0f,   0.1f,                          0xffff0000},
@@ -329,11 +331,11 @@ static void lighting_test(IDirect3DDevice7 *device)
     ok(hr == D3D_OK, "IDirect3DDevice7_Clear failed with %08x\n", hr);
 
     /* Setup some states that may cause issues */
-    hr = IDirect3DDevice7_SetTransform(device, D3DTRANSFORMSTATE_WORLD, (D3DMATRIX *) mat);
+    hr = IDirect3DDevice7_SetTransform(device, D3DTRANSFORMSTATE_WORLD, &mat);
     ok(hr == D3D_OK, "IDirect3DDevice7_SetTransform returned %08x\n", hr);
-    hr = IDirect3DDevice7_SetTransform(device, D3DTRANSFORMSTATE_VIEW, (D3DMATRIX *)mat);
+    hr = IDirect3DDevice7_SetTransform(device, D3DTRANSFORMSTATE_VIEW, &mat);
     ok(hr == D3D_OK, "IDirect3DDevice7_SetTransform returned %08x\n", hr);
-    hr = IDirect3DDevice7_SetTransform(device, D3DTRANSFORMSTATE_PROJECTION, (D3DMATRIX *) mat);
+    hr = IDirect3DDevice7_SetTransform(device, D3DTRANSFORMSTATE_PROJECTION, &mat);
     ok(hr == D3D_OK, "IDirect3DDevice7_SetTransform returned %08x\n", hr);
     hr = IDirect3DDevice7_SetRenderState(device, D3DRENDERSTATE_CLIPPING, FALSE);
     ok(hr == D3D_OK, "IDirect3DDevice7_SetRenderState returned %08x\n", hr);
@@ -491,36 +493,34 @@ static void fog_test(IDirect3DDevice7 *device)
         {320,  480,   1.0f, 1.0f,   0xFFFFFF00,     0xFF000000  },
     };
     WORD Indices[] = {0, 1, 2, 2, 3, 0};
-
-    float ident_mat[16] =
+    D3DMATRIX ident_mat =
     {
         1.0f, 0.0f, 0.0f, 0.0f,
         0.0f, 1.0f, 0.0f, 0.0f,
         0.0f, 0.0f, 1.0f, 0.0f,
-        0.0f, 0.0f, 0.0f, 1.0f
+        0.0f, 0.0f, 0.0f, 1.0f,
     };
-    float world_mat1[16] =
+    D3DMATRIX world_mat1 =
     {
         1.0f, 0.0f,  0.0f, 0.0f,
         0.0f, 1.0f,  0.0f, 0.0f,
         0.0f, 0.0f,  1.0f, 0.0f,
-        0.0f, 0.0f, -0.5f, 1.0f
+        0.0f, 0.0f, -0.5f, 1.0f,
     };
-    float world_mat2[16] =
+    D3DMATRIX world_mat2 =
     {
         1.0f, 0.0f, 0.0f, 0.0f,
         0.0f, 1.0f, 0.0f, 0.0f,
         0.0f, 0.0f, 1.0f, 0.0f,
-        0.0f, 0.0f, 1.0f, 1.0f
+        0.0f, 0.0f, 1.0f, 1.0f,
     };
-    float proj_mat[16] =
+    D3DMATRIX proj_mat =
     {
         1.0f, 0.0f,  0.0f, 0.0f,
         0.0f, 1.0f,  0.0f, 0.0f,
         0.0f, 0.0f,  1.0f, 0.0f,
-        0.0f, 0.0f, -1.0f, 1.0f
+        0.0f, 0.0f, -1.0f, 1.0f,
     };
-
     struct sVertex far_quad1[] =
     {
         {-1.0f, -1.0f, 0.5f, 0xffff0000, 0xff000000},
@@ -625,7 +625,7 @@ static void fog_test(IDirect3DDevice7 *device)
     if (caps.dpcTriCaps.dwRasterCaps & D3DPRASTERCAPS_FOGTABLE)
     {
         /* A simple fog + non-identity world matrix test */
-        hr = IDirect3DDevice7_SetTransform(device, D3DTRANSFORMSTATE_WORLD, (D3DMATRIX *)world_mat1);
+        hr = IDirect3DDevice7_SetTransform(device, D3DTRANSFORMSTATE_WORLD, &world_mat1);
         ok(hr == D3D_OK, "IDirect3DDevice7_SetTransform returned %#08x\n", hr);
 
         hr = IDirect3DDevice7_SetRenderState(device, D3DRENDERSTATE_FOGTABLEMODE, D3DFOG_LINEAR);
@@ -660,9 +660,9 @@ static void fog_test(IDirect3DDevice7 *device)
         ok(color_match(color, 0x0000ff00, 1), "Fogged out quad has color %08x\n", color);
 
         /* Test fog behavior with an orthogonal (but not identity) projection matrix */
-        hr = IDirect3DDevice7_SetTransform(device, D3DTRANSFORMSTATE_WORLD, (D3DMATRIX *)world_mat2);
+        hr = IDirect3DDevice7_SetTransform(device, D3DTRANSFORMSTATE_WORLD, &world_mat2);
         ok(hr == D3D_OK, "SetTransform returned %#08x\n", hr);
-        hr = IDirect3DDevice7_SetTransform(device, D3DTRANSFORMSTATE_PROJECTION, (D3DMATRIX *)proj_mat);
+        hr = IDirect3DDevice7_SetTransform(device, D3DTRANSFORMSTATE_PROJECTION, &proj_mat);
         ok(hr == D3D_OK, "SetTransform returned %#08x\n", hr);
 
         hr = IDirect3DDevice7_Clear(device, 0, NULL, D3DCLEAR_TARGET, 0xffff00ff, 0.0, 0);
@@ -691,9 +691,9 @@ static void fog_test(IDirect3DDevice7 *device)
         color = getPixelColor(device, 160, 120);
         ok(color_match(color, 0x0000ff00, 1), "Fogged out quad has color %08x\n", color);
 
-        hr = IDirect3DDevice7_SetTransform(device, D3DTRANSFORMSTATE_WORLD, (D3DMATRIX *)ident_mat);
+        hr = IDirect3DDevice7_SetTransform(device, D3DTRANSFORMSTATE_WORLD, &ident_mat);
         ok(hr == D3D_OK, "SetTransform returned %#08x\n", hr);
-        hr = IDirect3DDevice7_SetTransform(device, D3DTRANSFORMSTATE_PROJECTION, (D3DMATRIX *)ident_mat);
+        hr = IDirect3DDevice7_SetTransform(device, D3DTRANSFORMSTATE_PROJECTION, &ident_mat);
         ok(hr == D3D_OK, "SetTransform returned %#08x\n", hr);
     }
     else
@@ -2230,10 +2230,13 @@ static void D3D3_ViewportClearTest(void)
     D3DVIEWPORT2 vp_data;
     DWORD color, red, green, blue;
     D3DRECT rect;
-    float mat[16] = { 1.0f, 0.0f, 0.0f, 0.0f,
-                      0.0f, 1.0f, 0.0f, 0.0f,
-                      0.0f, 0.0f, 1.0f, 0.0f,
-                      0.0f, 0.0f, 0.0f, 1.0f };
+    D3DMATRIX mat =
+    {
+        1.0f, 0.0f, 0.0f, 0.0f,
+        0.0f, 1.0f, 0.0f, 0.0f,
+        0.0f, 0.0f, 1.0f, 0.0f,
+        0.0f, 0.0f, 0.0f, 1.0f,
+    };
     struct vertex quad[] =
     {
         {-1.0f, -1.0f,   0.1f,                          0xffffffff},
@@ -2335,11 +2338,11 @@ static void D3D3_ViewportClearTest(void)
     hr = IDirect3DDevice3_BeginScene(Direct3DDevice3);
     ok(hr == D3D_OK, "IDirect3DDevice3_BeginScene failed with %08x\n", hr);
 
-    hr = IDirect3DDevice3_SetTransform(Direct3DDevice3, D3DTRANSFORMSTATE_WORLD, (D3DMATRIX *) mat);
+    hr = IDirect3DDevice3_SetTransform(Direct3DDevice3, D3DTRANSFORMSTATE_WORLD, &mat);
     ok(hr == D3D_OK, "IDirect3DDevice3_SetTransform returned %08x\n", hr);
-    hr = IDirect3DDevice3_SetTransform(Direct3DDevice3, D3DTRANSFORMSTATE_VIEW, (D3DMATRIX *)mat);
+    hr = IDirect3DDevice3_SetTransform(Direct3DDevice3, D3DTRANSFORMSTATE_VIEW, &mat);
     ok(hr == D3D_OK, "IDirect3DDevice3_SetTransform returned %08x\n", hr);
-    hr = IDirect3DDevice3_SetTransform(Direct3DDevice3, D3DTRANSFORMSTATE_PROJECTION, (D3DMATRIX *) mat);
+    hr = IDirect3DDevice3_SetTransform(Direct3DDevice3, D3DTRANSFORMSTATE_PROJECTION, &mat);
     ok(hr == D3D_OK, "IDirect3DDevice3_SetTransform returned %08x\n", hr);
     hr = IDirect3DDevice3_SetRenderState(Direct3DDevice3, D3DRENDERSTATE_CLIPPING, FALSE);
     ok(hr == D3D_OK, "IDirect3DDevice3_SetRenderState returned %08x\n", hr);
-- 
1.7.10.4




More information about the wine-patches mailing list