Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/d3d10/effect.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c index 3b3d48c50a8..9312cfec6f6 100644 --- a/dlls/d3d10/effect.c +++ b/dlls/d3d10/effect.c @@ -1814,10 +1814,10 @@ static HRESULT parse_fx10_technique(const char *data, size_t data_size, return S_OK; }
-static HRESULT parse_fx10_variable(const char *data, size_t data_size, +static HRESULT parse_fx10_numeric_variable(const char *data, size_t data_size, const char **ptr, struct d3d10_effect_variable *v) { - DWORD offset; + DWORD offset, default_value_offset; unsigned int i; HRESULT hr;
@@ -1837,11 +1837,14 @@ static HRESULT parse_fx10_variable(const char *data, size_t data_size, read_dword(ptr, &v->buffer_offset); TRACE("Variable offset in buffer: %#x.\n", v->buffer_offset);
- skip_dword_unknown("variable", ptr, 1); + read_dword(ptr, &default_value_offset);
read_dword(ptr, &v->flag); TRACE("Variable flag: %#x.\n", v->flag);
+ if (default_value_offset) + FIXME("Set default variable value.\n"); + read_dword(ptr, &v->annotation_count); TRACE("Variable has %u annotations.\n", v->annotation_count);
@@ -2230,7 +2233,7 @@ static HRESULT parse_fx10_local_buffer(const char *data, size_t data_size, v->buffer = l; v->effect = l->effect;
- if (FAILED(hr = parse_fx10_variable(data, data_size, ptr, v))) + if (FAILED(hr = parse_fx10_numeric_variable(data, data_size, ptr, v))) return hr;
/*