=?UTF-8?Q?Rico=20Sch=C3=BCller=20?=: d3dx9/tests: Reset effect parameter value data after each try.

Alexandre Julliard julliard at winehq.org
Thu Jan 12 13:19:24 CST 2012


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

Author: Rico Schüller <kgbricola at web.de>
Date:   Thu Jan 12 13:37:15 2012 +0100

d3dx9/tests: Reset effect parameter value data after each try.

---

 dlls/d3dx9_36/tests/effect.c |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)

diff --git a/dlls/d3dx9_36/tests/effect.c b/dlls/d3dx9_36/tests/effect.c
index f5a9856..6e60e2e 100644
--- a/dlls/d3dx9_36/tests/effect.c
+++ b/dlls/d3dx9_36/tests/effect.c
@@ -1570,6 +1570,38 @@ static void test_effect_parameter_value_GetTestGroup(const struct test_effect_pa
     test_effect_parameter_value_GetMatrixTransposeArray(res, effect, res_value, parameter, i);
 }
 
+static void test_effect_parameter_value_ResetValue(const struct test_effect_parameter_value_result *res,
+        ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter, UINT i)
+{
+    const D3DXPARAMETER_DESC *res_desc = &res->desc;
+    LPCSTR res_full_name = res->full_name;
+    HRESULT hr;
+
+    if (res_desc->Class == D3DXPC_SCALAR
+            || res_desc->Class == D3DXPC_VECTOR
+            || res_desc->Class == D3DXPC_MATRIX_ROWS)
+    {
+        hr = effect->lpVtbl->SetValue(effect, parameter, res_value, res_desc->Bytes);
+        ok(hr == D3D_OK, "%u - %s: SetValue failed, got %#x, expected %#x\n", i, res_full_name, hr, D3D_OK);
+    }
+    else
+    {
+        /* nothing to do */
+        switch (res_desc->Type)
+        {
+            case D3DXPT_PIXELSHADER:
+            case D3DXPT_VERTEXSHADER:
+            case D3DXPT_TEXTURE2D:
+            case D3DXPT_STRING:
+                break;
+
+            default:
+                ok(0, "Type is %u, this should not happen!\n", res_desc->Type);
+                break;
+        }
+    }
+}
+
 static void test_effect_parameter_value(IDirect3DDevice9 *device)
 {
     UINT i;
@@ -1642,6 +1674,8 @@ static void test_effect_parameter_value(IDirect3DDevice9 *device)
                     "%u - %s: Warning: Array size to small\n", i, res_full_name);
 
             test_effect_parameter_value_GetTestGroup(&res[k], effect, &blob[res_value_offset], parameter, i);
+            test_effect_parameter_value_ResetValue(&res[k], effect, &blob[res_value_offset], parameter, i);
+            test_effect_parameter_value_GetTestGroup(&res[k], effect, &blob[res_value_offset], parameter, i);
 
             /* SetBool */
             bvalue = 1;
@@ -1658,6 +1692,7 @@ static void test_effect_parameter_value(IDirect3DDevice9 *device)
                         i, res_full_name, hr, D3DERR_INVALIDCALL);
             }
             test_effect_parameter_value_GetTestGroup(&res[k], effect, expected_value, parameter, i);
+            test_effect_parameter_value_ResetValue(&res[k], effect, &blob[res_value_offset], parameter, i);
         }
 
         count = effect->lpVtbl->Release(effect);




More information about the wine-cvs mailing list