=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: d3dx9: Implement ID3DXConstantTable:: SetDefaults.

Alexandre Julliard julliard at winehq.org
Tue Aug 14 12:59:52 CDT 2012


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

Author: Józef Kucia <joseph.kucia at gmail.com>
Date:   Tue Aug 14 11:42:33 2012 +0200

d3dx9: Implement ID3DXConstantTable::SetDefaults.

---

 dlls/d3dx9_36/shader.c |   18 ++++++++++++++++--
 1 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/dlls/d3dx9_36/shader.c b/dlls/d3dx9_36/shader.c
index 0dcb3a1..728bff2 100644
--- a/dlls/d3dx9_36/shader.c
+++ b/dlls/d3dx9_36/shader.c
@@ -905,10 +905,24 @@ static HRESULT set_float_array(ID3DXConstantTable *iface, LPDIRECT3DDEVICE9 devi
 static HRESULT WINAPI ID3DXConstantTableImpl_SetDefaults(ID3DXConstantTable *iface, LPDIRECT3DDEVICE9 device)
 {
     struct ID3DXConstantTableImpl *This = impl_from_ID3DXConstantTable(iface);
+    UINT i;
 
-    FIXME("(%p)->(%p): stub\n", This, device);
+    TRACE("(%p)->(%p)\n", This, device);
 
-    return E_NOTIMPL;
+    if (!device)
+        return D3DERR_INVALIDCALL;
+
+    for (i = 0; i < This->desc.Constants; i++)
+    {
+        D3DXCONSTANT_DESC *desc = &This->constants[i].desc;
+
+        if (!desc->DefaultValue)
+            continue;
+
+        set_float_shader_constant(This, device, desc->RegisterIndex, desc->DefaultValue, desc->RegisterCount);
+    }
+
+    return D3D_OK;
 }
 
 static HRESULT WINAPI ID3DXConstantTableImpl_SetValue(ID3DXConstantTable *iface, LPDIRECT3DDEVICE9 device,




More information about the wine-cvs mailing list