Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/d3d10/d3d10_private.h | 1 + dlls/d3d10/effect.c | 4 +++- dlls/d3d10/tests/effect.c | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/dlls/d3d10/d3d10_private.h b/dlls/d3d10/d3d10_private.h index 64c445ec07a..4d73121d6ca 100644 --- a/dlls/d3d10/d3d10_private.h +++ b/dlls/d3d10/d3d10_private.h @@ -118,6 +118,7 @@ struct d3d10_effect_shader_variable unsigned int resource_count; struct d3d10_effect_shader_resource *resources; char *stream_output_declaration; + unsigned int isinline : 1; };
struct d3d10_effect_state_object_variable diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c index 81745f7f239..d521684f788 100644 --- a/dlls/d3d10/effect.c +++ b/dlls/d3d10/effect.c @@ -1409,6 +1409,7 @@ static HRESULT parse_fx10_anonymous_shader(struct d3d10_effect *e, struct d3d10_
v->type = t; v->effect = e; + v->u.shader.isinline = 1; set_variable_vtbl(v);
if (!copy_name("$Anonymous", &v->name)) @@ -7008,7 +7009,7 @@ static HRESULT STDMETHODCALLTYPE d3d10_effect_shader_variable_GetShaderDesc( D3D10_SHADER_DESC shader_desc; HRESULT hr;
- FIXME("iface %p, index %u, desc %p semi-stub.\n", iface, index, desc); + TRACE("iface %p, index %u, desc %p.\n", iface, index, desc);
if (FAILED(hr = d3d10_get_shader_variable(v, index, &s))) return hr; @@ -7017,6 +7018,7 @@ static HRESULT STDMETHODCALLTYPE d3d10_effect_shader_variable_GetShaderDesc( if (s->input_signature) desc->pInputSignature = ID3D10Blob_GetBufferPointer(s->input_signature); desc->SODecl = s->stream_output_declaration; + desc->IsInline = s->isinline; if (s->bytecode) { desc->pBytecode = ID3D10Blob_GetBufferPointer(s->bytecode); diff --git a/dlls/d3d10/tests/effect.c b/dlls/d3d10/tests/effect.c index 70bcf1ea72b..f59686c26a3 100644 --- a/dlls/d3d10/tests/effect.c +++ b/dlls/d3d10/tests/effect.c @@ -3671,8 +3671,8 @@ if (0) ok(hr == S_OK, "Unexpected hr %#x.\n", hr); hr = pdesc.pShaderVariable->lpVtbl->GetShaderDesc(pdesc.pShaderVariable, 0, &shaderdesc); ok(hr == S_OK, "Unexpected hr %#x.\n", hr); -todo_wine { ok(shaderdesc.IsInline, "Unexpected inline flag.\n"); +todo_wine { ok(shaderdesc.SODecl && !strcmp(shaderdesc.SODecl, "SV_POSITION.y"), "Unexpected stream output declaration %s.\n", shaderdesc.SODecl); }