From 4d59b503de9d4bc464e10fe1a62d594e307bc375 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rico=20Sch=C3=BCller?= Date: Sat, 25 Aug 2012 16:28:30 +0200 Subject: [PATCH] d3dx9: Implement ID3DXConstantTable::GetConstantElement(). --- dlls/d3dx9_36/shader.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/dlls/d3dx9_36/shader.c b/dlls/d3dx9_36/shader.c index ec5a924c4a7..e30292fc395 100644 --- a/dlls/d3dx9_36/shader.c +++ b/dlls/d3dx9_36/shader.c @@ -1005,9 +1005,18 @@ static D3DXHANDLE WINAPI ID3DXConstantTableImpl_GetConstantByName(ID3DXConstantT static D3DXHANDLE WINAPI ID3DXConstantTableImpl_GetConstantElement(ID3DXConstantTable *iface, D3DXHANDLE constant, UINT index) { struct ID3DXConstantTableImpl *This = impl_from_ID3DXConstantTable(iface); + struct ctab_constant *c = get_valid_constant(This, constant); - FIXME("(%p)->(%p, %d): stub\n", This, constant, index); + TRACE("(%p)->(%p, %d)\n", This, constant, index); + if (c && index < c->desc.Elements) + { + if (c->constants) c = &c->constants[index]; + TRACE("Returning constant %p\n", c); + return handle_from_constant(c); + } + + WARN("Invalid argument specified\n"); return NULL; }