d3dx9: Move D3DXPARAMETER_TYPE conversion helpers to util.
This commit is contained in:
parent
b5c663ee1e
commit
65c651e376
|
@ -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 */
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue