diff --git a/dlls/d3d10/d3d10_private.h b/dlls/d3d10/d3d10_private.h index a7824199d36..4d80241b8df 100644 --- a/dlls/d3d10/d3d10_private.h +++ b/dlls/d3d10/d3d10_private.h @@ -48,6 +48,7 @@ enum d3d10_effect_object_type enum d3d10_effect_object_operation { D3D10_EOO_VALUE = 1, + D3D10_EOO_PARSED_OBJECT = 2, D3D10_EOO_ANONYMOUS_SHADER = 7, }; diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c index 8a16dbc61b2..e5240e634cb 100644 --- a/dlls/d3d10/effect.c +++ b/dlls/d3d10/effect.c @@ -910,6 +910,7 @@ static HRESULT parse_fx10_object(struct d3d10_effect_object *o, const char **ptr enum d3d10_effect_object_operation operation; HRESULT hr; struct d3d10_effect *effect = o->pass->technique->effect; + ID3D10Effect *e = (ID3D10Effect *)effect; read_dword(ptr, &o->type); TRACE("Effect object is of type %#x.\n", o->type); @@ -956,6 +957,14 @@ static HRESULT parse_fx10_object(struct d3d10_effect_object *o, const char **ptr } break; + case D3D10_EOO_PARSED_OBJECT: + /* This is a local object, we've parsed in parse_fx10_local_object. */ + TRACE("Shader = %s.\n", data + offset); + + o->data = e->lpVtbl->GetVariableByName(e, data + offset); + hr = S_OK; + break; + case D3D10_EOO_ANONYMOUS_SHADER: TRACE("Anonymous shader\n");