Commit a76ac0a8 authored by Travis Athougies's avatar Travis Athougies Committed by Alexandre Julliard

d3dx9_36: Implemented support for samplers in ID3DXConstantTable.

parent 4eeba431
...@@ -748,13 +748,23 @@ static HRESULT WINAPI ID3DXConstantTableImpl_GetConstantDesc(ID3DXConstantTable* ...@@ -748,13 +748,23 @@ static HRESULT WINAPI ID3DXConstantTableImpl_GetConstantDesc(ID3DXConstantTable*
return D3D_OK; return D3D_OK;
} }
static UINT WINAPI ID3DXConstantTableImpl_GetSamplerIndex(LPD3DXCONSTANTTABLE iface, D3DXHANDLE constant) static UINT WINAPI ID3DXConstantTableImpl_GetSamplerIndex(ID3DXConstantTable *iface, D3DXHANDLE constant)
{ {
ID3DXConstantTableImpl *This = impl_from_ID3DXConstantTable(iface); ID3DXConstantTableImpl *This = impl_from_ID3DXConstantTable(iface);
D3DXCONSTANT_DESC desc;
UINT count = 1;
HRESULT res;
TRACE("(%p)->(%p)\n", This, constant);
res = ID3DXConstantTable_GetConstantDesc(iface, constant, &desc, &count);
if (FAILED(res))
return (UINT)-1;
FIXME("(%p)->(%p): stub\n", This, constant); if (desc.RegisterSet != D3DXRS_SAMPLER)
return (UINT)-1;
return (UINT)-1; return desc.RegisterIndex;
} }
static D3DXHANDLE WINAPI ID3DXConstantTableImpl_GetConstant(ID3DXConstantTable* iface, D3DXHANDLE constant, UINT index) static D3DXHANDLE WINAPI ID3DXConstantTableImpl_GetConstant(ID3DXConstantTable* iface, D3DXHANDLE constant, UINT index)
...@@ -1225,10 +1235,15 @@ HRESULT WINAPI D3DXGetShaderConstantTableEx(CONST DWORD* byte_code, ...@@ -1225,10 +1235,15 @@ HRESULT WINAPI D3DXGetShaderConstantTableEx(CONST DWORD* byte_code,
if (hr != D3D_OK) if (hr != D3D_OK)
goto error; goto error;
if (constant_info[i].RegisterSet != D3DXRS_FLOAT4) if (constant_info[i].RegisterSet != D3DXRS_FLOAT4 &&
FIXME("Don't know how to calculate Bytes for non D3DXRS_FLOAT4 constants\n"); constant_info[i].RegisterSet != D3DXRS_SAMPLER)
FIXME("Don't know how to calculate Bytes for constants of type %d\n",
constant_info[i].RegisterSet);
/* D3DXRS_FLOAT4 has a base size of 4 (not taking into account dimensions and element count) */ /*
* D3DXRS_FLOAT4 and D3DXRS_SAMPLER have a base size of 4
* (not taking into account dimensions and element count)
*/
object->constants[i].desc.Bytes = 4; object->constants[i].desc.Bytes = 4;
/* Take into account dimensions and elements */ /* Take into account dimensions and elements */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment