[PATCH 2/6] d3d10: Move effect variable vtable initialization to parse_fx10_variable_head().
Henri Verbeet
hverbeet at codeweavers.com
Thu Sep 10 09:57:15 CDT 2009
---
dlls/d3d10/effect.c | 46 +++++++++++++++++++++-------------------------
1 files changed, 21 insertions(+), 25 deletions(-)
diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c
index c80cf56..fa9c509 100644
--- a/dlls/d3d10/effect.c
+++ b/dlls/d3d10/effect.c
@@ -449,6 +449,27 @@ static HRESULT parse_fx10_variable_head(struct d3d10_effect_variable *v, const c
return E_FAIL;
}
+ switch (v->type->type_class)
+ {
+ case D3D10_SVC_SCALAR:
+ v->vtbl = (ID3D10EffectVariableVtbl *)&d3d10_effect_scalar_variable_vtbl;
+ break;
+
+ case D3D10_SVC_VECTOR:
+ v->vtbl = (ID3D10EffectVariableVtbl *)&d3d10_effect_vector_variable_vtbl;
+ break;
+
+ case D3D10_SVC_MATRIX_ROWS:
+ case D3D10_SVC_MATRIX_COLUMNS:
+ v->vtbl = (ID3D10EffectVariableVtbl *)&d3d10_effect_matrix_variable_vtbl;
+ break;
+
+ default:
+ FIXME("Unhandled type class %s.\n", debug_d3d10_shader_variable_class(v->type->type_class));
+ v->vtbl = &d3d10_effect_variable_vtbl;
+ break;
+ }
+
return S_OK;
}
@@ -554,7 +575,6 @@ static HRESULT parse_fx10_pass(struct d3d10_effect_pass *p, const char **ptr, co
{
struct d3d10_effect_variable *a = &p->annotations[i];
- a->vtbl = &d3d10_effect_variable_vtbl;
a->effect = p->technique->effect;
hr = parse_fx10_annotation(a, ptr, data);
@@ -615,7 +635,6 @@ static HRESULT parse_fx10_technique(struct d3d10_effect_technique *t, const char
{
struct d3d10_effect_variable *a = &t->annotations[i];
- a->vtbl = &d3d10_effect_variable_vtbl;
a->effect = t->effect;
hr = parse_fx10_annotation(a, ptr, data);
@@ -651,27 +670,6 @@ static HRESULT parse_fx10_variable(struct d3d10_effect_variable *v, const char *
hr = parse_fx10_variable_head(v, ptr, data);
if (FAILED(hr)) return hr;
- switch (v->type->type_class)
- {
- case D3D10_SVC_SCALAR:
- v->vtbl = (ID3D10EffectVariableVtbl *)&d3d10_effect_scalar_variable_vtbl;
- break;
-
- case D3D10_SVC_VECTOR:
- v->vtbl = (ID3D10EffectVariableVtbl *)&d3d10_effect_vector_variable_vtbl;
- break;
-
- case D3D10_SVC_MATRIX_ROWS:
- case D3D10_SVC_MATRIX_COLUMNS:
- v->vtbl = (ID3D10EffectVariableVtbl *)&d3d10_effect_matrix_variable_vtbl;
- break;
-
- default:
- FIXME("Unhandled type class %s.\n", debug_d3d10_shader_variable_class(v->type->type_class));
- v->vtbl = &d3d10_effect_variable_vtbl;
- break;
- }
-
skip_dword_unknown(ptr, 1);
read_dword(ptr, &v->buffer_offset);
@@ -697,7 +695,6 @@ static HRESULT parse_fx10_variable(struct d3d10_effect_variable *v, const char *
struct d3d10_effect_variable *a = &v->annotations[i];
HRESULT hr;
- a->vtbl = &d3d10_effect_variable_vtbl;
a->effect = v->effect;
hr = parse_fx10_annotation(a, ptr, data);
@@ -748,7 +745,6 @@ static HRESULT parse_fx10_local_buffer(struct d3d10_effect_local_buffer *l, cons
{
struct d3d10_effect_variable *a = &l->annotations[i];
- a->vtbl = &d3d10_effect_variable_vtbl;
a->effect = l->effect;
hr = parse_fx10_annotation(a, ptr, data);
--
1.6.0.6
More information about the wine-patches
mailing list