=?UTF-8?Q?Rico=20Sch=C3=BCller=20?=: d3dx9: Move bool cropping into helper function.
Alexandre Julliard
julliard at winehq.org
Thu Sep 6 13:37:22 CDT 2012
Module: wine
Branch: master
Commit: 823d1fbc3887ab4b52b88555a8ef954f617b6194
URL: http://source.winehq.org/git/wine.git/?a=commit;h=823d1fbc3887ab4b52b88555a8ef954f617b6194
Author: Rico Schüller <kgbricola at web.de>
Date: Wed Sep 5 22:51:42 2012 +0200
d3dx9: Move bool cropping into helper function.
---
dlls/d3dx9_36/effect.c | 5 ++---
dlls/d3dx9_36/util.c | 20 +++++++++++++-------
2 files changed, 15 insertions(+), 10 deletions(-)
diff --git a/dlls/d3dx9_36/effect.c b/dlls/d3dx9_36/effect.c
index f3a5549..a6dcd98 100644
--- a/dlls/d3dx9_36/effect.c
+++ b/dlls/d3dx9_36/effect.c
@@ -1649,8 +1649,6 @@ static HRESULT WINAPI ID3DXBaseEffectImpl_SetBool(ID3DXBaseEffect *iface, D3DXHA
if (param && !param->element_count && param->rows == 1 && param->columns == 1)
{
- /* crop input */
- b = b != 0;
set_number(param->data, param->type, &b, D3DXPT_BOOL);
return D3D_OK;
}
@@ -1699,7 +1697,8 @@ static HRESULT WINAPI ID3DXBaseEffectImpl_SetBoolArray(ID3DXBaseEffect *iface, D
case D3DXPC_MATRIX_ROWS:
for (i = 0; i < size; ++i)
{
- set_number((DWORD *)param->data + i, param->type, &b[i], D3DXPT_BOOL);
+ /* don't crop the input, use D3DXPT_INT instead of D3DXPT_BOOL */
+ set_number((DWORD *)param->data + i, param->type, &b[i], D3DXPT_INT);
}
return D3D_OK;
diff --git a/dlls/d3dx9_36/util.c b/dlls/d3dx9_36/util.c
index 6daddd7..c5160fa 100644
--- a/dlls/d3dx9_36/util.c
+++ b/dlls/d3dx9_36/util.c
@@ -271,6 +271,11 @@ const char *debug_d3dxparameter_registerset(D3DXREGISTER_SET r)
#undef WINE_D3DX_TO_STR
/* parameter type conversion helpers */
+BOOL get_bool(LPCVOID data)
+{
+ return (*(DWORD *)data) != 0;
+}
+
INT get_int(D3DXPARAMETER_TYPE type, LPCVOID data)
{
INT i;
@@ -286,7 +291,7 @@ INT get_int(D3DXPARAMETER_TYPE type, LPCVOID data)
break;
case D3DXPT_BOOL:
- i = *(BOOL *)data;
+ i = get_bool(data);
break;
default:
@@ -313,7 +318,7 @@ FLOAT get_float(D3DXPARAMETER_TYPE type, LPCVOID data)
break;
case D3DXPT_BOOL:
- f = *(BOOL *)data;
+ f = get_bool(data);
break;
default:
@@ -325,15 +330,16 @@ FLOAT get_float(D3DXPARAMETER_TYPE type, LPCVOID data)
return f;
}
-BOOL get_bool(LPCVOID data)
-{
- return (*(DWORD *)data) != 0;
-}
-
void set_number(LPVOID outdata, D3DXPARAMETER_TYPE outtype, LPCVOID indata, D3DXPARAMETER_TYPE intype)
{
TRACE("Changing from type %s to type %s\n", debug_d3dxparameter_type(intype), debug_d3dxparameter_type(outtype));
+ if (outtype == intype)
+ {
+ *(DWORD *)outdata = *(DWORD *)indata;
+ return;
+ }
+
switch (outtype)
{
case D3DXPT_FLOAT:
More information about the wine-cvs
mailing list