diff --git a/dlls/d3dx9_36/d3dx9_36_private.h b/dlls/d3dx9_36/d3dx9_36_private.h index f6f797e85f3..c4cc69c8276 100644 --- a/dlls/d3dx9_36/d3dx9_36_private.h +++ b/dlls/d3dx9_36/d3dx9_36_private.h @@ -93,4 +93,10 @@ const char *debug_d3dxparameter_class(D3DXPARAMETER_CLASS c) DECLSPEC_HIDDEN; const char *debug_d3dxparameter_type(D3DXPARAMETER_TYPE t) DECLSPEC_HIDDEN; const char *debug_d3dxparameter_registerset(D3DXREGISTER_SET r) DECLSPEC_HIDDEN; +/* parameter type conversion helpers */ +INT get_int(D3DXPARAMETER_TYPE type, LPCVOID data) DECLSPEC_HIDDEN; +FLOAT get_float(D3DXPARAMETER_TYPE type, LPCVOID data) DECLSPEC_HIDDEN; +BOOL get_bool(LPCVOID data) DECLSPEC_HIDDEN; +void set_number(LPVOID outdata, D3DXPARAMETER_TYPE outtype, LPCVOID indata, D3DXPARAMETER_TYPE intype) DECLSPEC_HIDDEN; + #endif /* __WINE_D3DX9_36_PRIVATE_H */ diff --git a/dlls/d3dx9_36/effect.c b/dlls/d3dx9_36/effect.c index 162cbf851cc..f3a55494541 100644 --- a/dlls/d3dx9_36/effect.c +++ b/dlls/d3dx9_36/effect.c @@ -847,90 +847,6 @@ static void free_effect_compiler(struct ID3DXEffectCompilerImpl *compiler) } } -static INT get_int(D3DXPARAMETER_TYPE type, LPCVOID data) -{ - INT i; - - switch (type) - { - case D3DXPT_FLOAT: - i = *(FLOAT *)data; - break; - - case D3DXPT_INT: - i = *(INT *)data; - break; - - case D3DXPT_BOOL: - i = *(BOOL *)data; - break; - - default: - i = 0; - FIXME("Unhandled type %s. This should not happen!\n", debug_d3dxparameter_type(type)); - break; - } - - return i; -} - -inline static FLOAT get_float(D3DXPARAMETER_TYPE type, LPCVOID data) -{ - FLOAT f; - - switch (type) - { - case D3DXPT_FLOAT: - f = *(FLOAT *)data; - break; - - case D3DXPT_INT: - f = *(INT *)data; - break; - - case D3DXPT_BOOL: - f = *(BOOL *)data; - break; - - default: - f = 0.0f; - FIXME("Unhandled type %s. This should not happen!\n", debug_d3dxparameter_type(type)); - break; - } - - return f; -} - -static inline BOOL get_bool(LPCVOID data) -{ - return (*(DWORD *)data) != 0; -} - -static 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)); - - switch (outtype) - { - case D3DXPT_FLOAT: - *(FLOAT *)outdata = get_float(intype, indata); - break; - - case D3DXPT_BOOL: - *(BOOL *)outdata = get_bool(indata); - break; - - case D3DXPT_INT: - *(INT *)outdata = get_int(intype, indata); - break; - - default: - FIXME("Unhandled type %s. This should not happen!\n", debug_d3dxparameter_type(outtype)); - *(INT *)outdata = 0; - break; - } -} - static void get_vector(struct d3dx_parameter *param, D3DXVECTOR4 *vector) { UINT i; diff --git a/dlls/d3dx9_36/util.c b/dlls/d3dx9_36/util.c index 76158466484..6daddd7257e 100644 --- a/dlls/d3dx9_36/util.c +++ b/dlls/d3dx9_36/util.c @@ -269,3 +269,88 @@ const char *debug_d3dxparameter_registerset(D3DXREGISTER_SET r) } #undef WINE_D3DX_TO_STR + +/* parameter type conversion helpers */ +INT get_int(D3DXPARAMETER_TYPE type, LPCVOID data) +{ + INT i; + + switch (type) + { + case D3DXPT_FLOAT: + i = *(FLOAT *)data; + break; + + case D3DXPT_INT: + i = *(INT *)data; + break; + + case D3DXPT_BOOL: + i = *(BOOL *)data; + break; + + default: + i = 0; + FIXME("Unhandled type %s. This should not happen!\n", debug_d3dxparameter_type(type)); + break; + } + + return i; +} + +FLOAT get_float(D3DXPARAMETER_TYPE type, LPCVOID data) +{ + FLOAT f; + + switch (type) + { + case D3DXPT_FLOAT: + f = *(FLOAT *)data; + break; + + case D3DXPT_INT: + f = *(INT *)data; + break; + + case D3DXPT_BOOL: + f = *(BOOL *)data; + break; + + default: + f = 0.0f; + FIXME("Unhandled type %s. This should not happen!\n", debug_d3dxparameter_type(type)); + break; + } + + 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)); + + switch (outtype) + { + case D3DXPT_FLOAT: + *(FLOAT *)outdata = get_float(intype, indata); + break; + + case D3DXPT_BOOL: + *(BOOL *)outdata = get_bool(indata); + break; + + case D3DXPT_INT: + *(INT *)outdata = get_int(intype, indata); + break; + + default: + FIXME("Unhandled type %s. This should not happen!\n", debug_d3dxparameter_type(outtype)); + *(INT *)outdata = 0; + break; + } +}