d3dx9: Move D3DXPARAMETER_TYPE conversion helpers to util.

This commit is contained in:
Rico Schüller 2012-09-05 22:51:22 +02:00 committed by Alexandre Julliard
parent b5c663ee1e
commit 65c651e376
3 changed files with 91 additions and 84 deletions

View File

@ -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 */

View File

@ -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;

View File

@ -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;
}
}