=?UTF-8?Q?Rico=20Sch=C3=BCller=20?=: d3dx9: Handle D3DXPT_VOID in get_float /bool/int().
Alexandre Julliard
julliard at winehq.org
Wed Sep 26 14:06:50 CDT 2012
Module: wine
Branch: master
Commit: e817bc3f0483fdde3536eb754ed1d8c31206706b
URL: http://source.winehq.org/git/wine.git/?a=commit;h=e817bc3f0483fdde3536eb754ed1d8c31206706b
Author: Rico Schüller <kgbricola at web.de>
Date: Wed Sep 26 11:52:02 2012 +0200
d3dx9: Handle D3DXPT_VOID in get_float/bool/int().
---
dlls/d3dx9_36/util.c | 61 ++++++++++++++++++++++++-------------------------
1 files changed, 30 insertions(+), 31 deletions(-)
diff --git a/dlls/d3dx9_36/util.c b/dlls/d3dx9_36/util.c
index b4cdefe..72008a2 100644
--- a/dlls/d3dx9_36/util.c
+++ b/dlls/d3dx9_36/util.c
@@ -271,63 +271,62 @@ const char *debug_d3dxparameter_registerset(D3DXREGISTER_SET r)
#undef WINE_D3DX_TO_STR
/* parameter type conversion helpers */
-static BOOL get_bool(LPCVOID data)
+static BOOL get_bool(D3DXPARAMETER_TYPE type, LPCVOID data)
{
- return (*(DWORD *)data) != 0;
+ switch (type)
+ {
+ case D3DXPT_FLOAT:
+ case D3DXPT_INT:
+ case D3DXPT_BOOL:
+ return *(DWORD *)data != 0;
+
+ case D3DXPT_VOID:
+ return *(BOOL *)data;
+
+ default:
+ FIXME("Unhandled type %s.\n", debug_d3dxparameter_type(type));
+ return FALSE;
+ }
}
static INT get_int(D3DXPARAMETER_TYPE type, LPCVOID data)
{
- INT i;
-
switch (type)
{
case D3DXPT_FLOAT:
- i = *(FLOAT *)data;
- break;
+ return *(FLOAT *)data;
case D3DXPT_INT:
- i = *(INT *)data;
- break;
+ case D3DXPT_VOID:
+ return *(INT *)data;
case D3DXPT_BOOL:
- i = get_bool(data);
- break;
+ return get_bool(type, data);
default:
- i = 0;
- FIXME("Unhandled type %s. This should not happen!\n", debug_d3dxparameter_type(type));
- break;
+ FIXME("Unhandled type %s.\n", debug_d3dxparameter_type(type));
+ return 0;
}
-
- return i;
}
static FLOAT get_float(D3DXPARAMETER_TYPE type, LPCVOID data)
{
- FLOAT f;
-
switch (type)
{
case D3DXPT_FLOAT:
- f = *(FLOAT *)data;
- break;
+ case D3DXPT_VOID:
+ return *(FLOAT *)data;
case D3DXPT_INT:
- f = *(INT *)data;
- break;
+ return *(INT *)data;
case D3DXPT_BOOL:
- f = get_bool(data);
- break;
+ return get_bool(type, data);
default:
- f = 0.0f;
- FIXME("Unhandled type %s. This should not happen!\n", debug_d3dxparameter_type(type));
- break;
+ FIXME("Unhandled type %s.\n", debug_d3dxparameter_type(type));
+ return 0.0f;
}
-
- return f;
}
void set_number(LPVOID outdata, D3DXPARAMETER_TYPE outtype, LPCVOID indata, D3DXPARAMETER_TYPE intype)
@@ -347,7 +346,7 @@ void set_number(LPVOID outdata, D3DXPARAMETER_TYPE outtype, LPCVOID indata, D3DX
break;
case D3DXPT_BOOL:
- *(BOOL *)outdata = get_bool(indata);
+ *(BOOL *)outdata = get_bool(intype, indata);
break;
case D3DXPT_INT:
@@ -355,8 +354,8 @@ void set_number(LPVOID outdata, D3DXPARAMETER_TYPE outtype, LPCVOID indata, D3DX
break;
default:
- FIXME("Unhandled type %s. This should not happen!\n", debug_d3dxparameter_type(outtype));
- *(INT *)outdata = 0;
+ FIXME("Unhandled type %s.\n", debug_d3dxparameter_type(outtype));
+ *(DWORD *)outdata = 0;
break;
}
}
More information about the wine-cvs
mailing list