From f658aabfd5a49506d2b916805e3df7556442853e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rico=20Sch=C3=BCller?= Date: Wed, 30 May 2012 14:36:18 +0200 Subject: [PATCH] d3dx9: Crop the input in ID3DXBaseEffect::SetBool(). --- dlls/d3dx9_36/effect.c | 2 ++ dlls/d3dx9_36/tests/effect.c | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/dlls/d3dx9_36/effect.c b/dlls/d3dx9_36/effect.c index def73a0a861..5ac79d1efdc 100644 --- a/dlls/d3dx9_36/effect.c +++ b/dlls/d3dx9_36/effect.c @@ -1725,6 +1725,8 @@ static HRESULT WINAPI ID3DXBaseEffectImpl_SetBool(ID3DXBaseEffect *iface, D3DXHA if (param && !param->element_count && param->rows == 1 && param->columns == 1) { + /* crop input */ + b = b ? TRUE : FALSE; set_number(param->data, param->type, &b, D3DXPT_BOOL); return D3D_OK; } diff --git a/dlls/d3dx9_36/tests/effect.c b/dlls/d3dx9_36/tests/effect.c index eb52f7e8ae6..c4046c70eb2 100644 --- a/dlls/d3dx9_36/tests/effect.c +++ b/dlls/d3dx9_36/tests/effect.c @@ -1857,11 +1857,12 @@ static void test_effect_parameter_value(IDirect3DDevice9 *device) test_effect_parameter_value_GetTestGroup(&res[k], effect, &blob[res_value_offset], parameter, i); /* SetBool */ - bvalue = 1; + bvalue = 5; memcpy(expected_value, &blob[res_value_offset], res_desc->Bytes); hr = effect->lpVtbl->SetBool(effect, parameter, bvalue); if (!res_desc->Elements && res_desc->Rows == 1 && res_desc->Columns == 1) { + bvalue = bvalue ? TRUE : FALSE; set_number(expected_value, res_desc->Type, &bvalue, D3DXPT_BOOL); ok(hr == D3D_OK, "%u - %s: SetBool failed, got %#x, expected %#x\n", i, res_full_name, hr, D3D_OK); } -- 2.11.4.GIT