[v5 2/8] d3dx9: Introduce preshaders in effect.

Paul Gofman gofmanp at gmail.com
Wed Mar 23 04:36:50 CDT 2016


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 at gmail.com>:
>>> Signed-off-by: Paul Gofman <gofmanp at 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, &param->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.





More information about the wine-devel mailing list