Rico Schüller : d3dx9: Implement ID3DXBaseEffect:: GetTechniqueByName().

Alexandre Julliard julliard at winehq.org
Mon Apr 18 11:11:00 CDT 2011


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

Author: Rico Schüller <kgbricola at web.de>
Date:   Mon Apr 18 10:57:53 2011 +0200

d3dx9: Implement ID3DXBaseEffect::GetTechniqueByName().

---

 dlls/d3dx9_36/effect.c |   22 +++++++++++++++++++++-
 1 files changed, 21 insertions(+), 1 deletions(-)

diff --git a/dlls/d3dx9_36/effect.c b/dlls/d3dx9_36/effect.c
index f11b755..fefb3b4 100644
--- a/dlls/d3dx9_36/effect.c
+++ b/dlls/d3dx9_36/effect.c
@@ -605,8 +605,28 @@ static D3DXHANDLE WINAPI ID3DXBaseEffectImpl_GetTechnique(ID3DXBaseEffect *iface
 static D3DXHANDLE WINAPI ID3DXBaseEffectImpl_GetTechniqueByName(ID3DXBaseEffect *iface, LPCSTR name)
 {
     struct ID3DXBaseEffectImpl *This = impl_from_ID3DXBaseEffect(iface);
+    unsigned int i;
 
-    FIXME("iface %p, name %s stub\n", This, debugstr_a(name));
+    TRACE("iface %p, name %s stub\n", This, debugstr_a(name));
+
+    if (!name)
+    {
+        WARN("Invalid argument specified.\n");
+        return NULL;
+    }
+
+    for (i = 0; i < This->technique_count; ++i)
+    {
+        struct d3dx_technique *tech = get_technique_struct(This->technique_handles[i]);
+
+        if (!strcmp(tech->name, name))
+        {
+            TRACE("Returning technique %p\n", This->technique_handles[i]);
+            return This->technique_handles[i];
+        }
+    }
+
+    WARN("Invalid argument specified.\n");
 
     return NULL;
 }




More information about the wine-cvs mailing list