=?UTF-8?Q?Rico=20Sch=C3=BCller=20?=: d3dx9: Implement ID3DXConstantTable:: GetConstantElement().

Alexandre Julliard julliard at winehq.org
Mon Aug 27 14:35:02 CDT 2012


Module: wine
Branch: master
Commit: 4d59b503de9d4bc464e10fe1a62d594e307bc375
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=4d59b503de9d4bc464e10fe1a62d594e307bc375

Author: Rico Schüller <kgbricola at web.de>
Date:   Sat Aug 25 16:28:30 2012 +0200

d3dx9: Implement ID3DXConstantTable::GetConstantElement().

---

 dlls/d3dx9_36/shader.c |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/dlls/d3dx9_36/shader.c b/dlls/d3dx9_36/shader.c
index ec5a924..e30292f 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);
+
+    TRACE("(%p)->(%p, %d)\n", This, constant, index);
 
-    FIXME("(%p)->(%p, %d): stub\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;
 }
 




More information about the wine-cvs mailing list