[PATCH 5/5] d3d10/effect: Reference pool in the child effect.

Nikolay Sivov nsivov at codeweavers.com
Sun Sep 19 13:32:04 CDT 2021



On 9/19/21 9:04 PM, Matteo Bruni wrote:
> On Thu, Sep 16, 2021 at 8:48 AM Nikolay Sivov <nsivov at codeweavers.com> wrote:
>> Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
>> ---
>>  dlls/d3d10/d3d10_private.h |  1 +
>>  dlls/d3d10/effect.c        | 41 ++++++++++++++++++++++++++++----------
>>  dlls/d3d10/tests/effect.c  |  4 ----
>>  3 files changed, 32 insertions(+), 14 deletions(-)
>> diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c
>> index c757b82a529..9436d0277f2 100644
>> --- a/dlls/d3d10/effect.c
>> +++ b/dlls/d3d10/effect.c
>> @@ -8446,7 +8457,17 @@ HRESULT WINAPI D3D10CreateEffectFromMemory(void *data, SIZE_T data_size, UINT fl
>>      if (!(flags & D3D10_EFFECT_COMPILE_CHILD_EFFECT) != !effect_pool)
>>          return E_INVALIDARG;
>>
>> -    if (FAILED(hr = d3d10_create_effect(data, data_size, device, &d3d10_effect_vtbl, &object)))
>> +    if (effect_pool)
>> +    {
>> +        pool = effect_pool->lpVtbl->AsEffect(effect_pool);
>> +        if (pool->lpVtbl != &d3d10_effect_pool_effect_vtbl)
>> +        {
>> +            WARN("External pool implementations are not supported.\n");
>> +            return E_INVALIDARG;
>> +        }
>> +    }
> Any idea if that's something that native allows?
No idea. I added this only because of the way update_buffer() currently
works, maybe some other places are doing impl_from_* too, I haven't checked.



More information about the wine-devel mailing list