=?UTF-8?Q?Rico=20Sch=C3=BCller=20?=: d3dx9: Avoid desc copy in ID3DXConstantTable::GetSamplerIndex().

Alexandre Julliard julliard at winehq.org
Tue Aug 28 14:44:41 CDT 2012


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

Author: Rico Schüller <kgbricola at web.de>
Date:   Tue Aug 28 13:43:14 2012 +0200

d3dx9: Avoid desc copy in ID3DXConstantTable::GetSamplerIndex().

---

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

diff --git a/dlls/d3dx9_36/shader.c b/dlls/d3dx9_36/shader.c
index 4b831e3..33b86f6 100644
--- a/dlls/d3dx9_36/shader.c
+++ b/dlls/d3dx9_36/shader.c
@@ -942,20 +942,18 @@ static HRESULT WINAPI ID3DXConstantTableImpl_GetConstantDesc(ID3DXConstantTable
 static UINT WINAPI ID3DXConstantTableImpl_GetSamplerIndex(ID3DXConstantTable *iface, D3DXHANDLE constant)
 {
     struct ID3DXConstantTableImpl *This = impl_from_ID3DXConstantTable(iface);
-    D3DXCONSTANT_DESC desc;
-    UINT count = 1;
-    HRESULT res;
+    struct ctab_constant *c = get_valid_constant(This, constant);
 
     TRACE("(%p)->(%p)\n", This, constant);
 
-    res = ID3DXConstantTable_GetConstantDesc(iface, constant, &desc, &count);
-    if (FAILED(res))
-        return (UINT)-1;
-
-    if (desc.RegisterSet != D3DXRS_SAMPLER)
+    if (!c || c->desc.RegisterSet != D3DXRS_SAMPLER)
+    {
+        WARN("Invalid argument specified\n");
         return (UINT)-1;
+    }
 
-    return desc.RegisterIndex;
+    TRACE("Returning RegisterIndex %u\n", c->desc.RegisterIndex);
+    return c->desc.RegisterIndex;
 }
 
 static D3DXHANDLE WINAPI ID3DXConstantTableImpl_GetConstant(ID3DXConstantTable *iface, D3DXHANDLE constant, UINT index)




More information about the wine-cvs mailing list