Module: wine Branch: master Commit: bdf8e4642a71181896d20ab447528552396dd729 URL: http://source.winehq.org/git/wine.git/?a=commit;h=bdf8e4642a71181896d20ab447...
Author: Rico Schüller kgbricola@web.de Date: Wed Dec 21 15:02:53 2011 +0100
d3dx9/tests: Add effect parameter value GetBool() test.
---
dlls/d3dx9_36/tests/effect.c | 31 +++++++++++++++++++++++++++++++ 1 files changed, 31 insertions(+), 0 deletions(-)
diff --git a/dlls/d3dx9_36/tests/effect.c b/dlls/d3dx9_36/tests/effect.c index fcb9414..db5c1f8 100644 --- a/dlls/d3dx9_36/tests/effect.c +++ b/dlls/d3dx9_36/tests/effect.c @@ -21,6 +21,12 @@ #include "wine/test.h" #include "d3dx9.h"
+/* helper functions */ +static inline BOOL get_bool(LPCVOID data) +{ + return (*(BOOL *)data) ? TRUE : FALSE; +} + static const char effect_desc[] = "Technique\n" "{\n" @@ -502,6 +508,30 @@ static void test_effect_parameter_value_GetValue(const struct test_effect_parame } }
+static void test_effect_parameter_value_GetBool(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; + BOOL bvalue = 0xabababab; + HRESULT hr; + + hr = effect->lpVtbl->GetBool(effect, parameter, &bvalue); + if (!res_desc->Elements && res_desc->Rows == 1 && res_desc->Columns == 1) + { + ok(hr == D3D_OK, "%u - %s: GetBool failed, got %#x, expected %#x\n", i, res_full_name, hr, D3D_OK); + ok(bvalue == get_bool(res_value), "%u - %s: GetBool bvalue failed, got %#x, expected %#x\n", + i, res_full_name, bvalue, get_bool(res_value)); + } + else + { + ok(hr == D3DERR_INVALIDCALL, "%u - %s: GetBool failed, got %#x, expected %#x\n", + i, res_full_name, hr, D3DERR_INVALIDCALL); + ok(bvalue == 0xabababab, "%u - %s: GetBool bvalue failed, got %#x, expected %#x\n", + i, res_full_name, bvalue, 0xabababab); + } +} + static void test_effect_parameter_value(IDirect3DDevice9 *device) { UINT i; @@ -572,6 +602,7 @@ static void test_effect_parameter_value(IDirect3DDevice9 *device) "%u - %s: Warning: Array size to small\n", i, res_full_name);
test_effect_parameter_value_GetValue(&res[k], effect, &blob[res_value_offset], parameter, i); + test_effect_parameter_value_GetBool(&res[k], effect, &blob[res_value_offset], parameter, i); }
count = effect->lpVtbl->Release(effect);