On 03/23/2016 01:24 AM, Paul Gofman wrote:
On 03/23/2016 01:05 AM, Matteo Bruni wrote:
2016-03-21 14:55 GMT+01:00 Paul Gofman gofmanp@gmail.com:
Signed-off-by: Paul Gofman gofmanp@gmail.com @@ -5435,9 +5416,30 @@ static HRESULT d3dx9_parse_array_selector(struct d3dx9_base_effect *base, struct } TRACE("Unknown DWORD: 0x%.8x.\n", *(DWORD *)(ptr + string_size));
- FIXME("Parse preshader.\n");
- d3dx_create_param_eval(base, (DWORD *)(ptr + string_size) + 1, object->size - (string_size + 1),
D3DXPT_INT, ¶m->param_eval);
Does this do the right thing if ptr + string_size is aligned to a DWORD? In other words, does the bytecode contain 4 bytes of padding if string_size % 4 == 0?
Oh, I will check that, thanks.
I've checked that, actually string_size is already always 4 bytes aligned, otherwise this code would not work at all as it does not align ptr + string_size. When I was writing this I actually trusted an estimation of next DWORD location in a pre-existing TRACE above. I will add a FIXME on misaligned string_size. The same d3dx_param_eval call has though an error in bytecode size estimation, I will fix it.