From 05818a3056468553f968122576450f3770178c16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rico=20Sch=C3=BCller?= Date: Sat, 18 Aug 2012 14:59:16 +0200 Subject: [PATCH] d3dx9: Use a separate function for the technique name. --- dlls/d3dx9_36/effect.c | 40 +++++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/dlls/d3dx9_36/effect.c b/dlls/d3dx9_36/effect.c index 13c7f8ad17b..2ae8bd2b509 100644 --- a/dlls/d3dx9_36/effect.c +++ b/dlls/d3dx9_36/effect.c @@ -447,6 +447,26 @@ static inline D3DXHANDLE get_pass_handle(struct d3dx_pass *pass) return (D3DXHANDLE) pass; } +static struct d3dx_technique *get_technique_by_name(struct ID3DXBaseEffectImpl *base, LPCSTR name) +{ + UINT i; + + if (!name) return NULL; + + for (i = 0; i < base->technique_count; ++i) + { + struct d3dx_technique *tech = get_technique_struct(base->technique_handles[i]); + + if (!strcmp(tech->name, name)) + { + TRACE("Returning technique %p\n", tech); + return tech; + } + } + + return NULL; +} + static struct d3dx_technique *is_valid_technique(struct ID3DXBaseEffectImpl *base, D3DXHANDLE technique) { unsigned int i; @@ -1419,25 +1439,15 @@ 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; + struct d3dx_technique *tech = get_technique_by_name(This, name); TRACE("iface %p, name %s stub\n", This, debugstr_a(name)); - if (!name) + if (tech) { - 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]; - } + D3DXHANDLE t = get_technique_handle(tech); + TRACE("Returning technique %p\n", t); + return t; } WARN("Invalid argument specified.\n");