d3dx9: d3dx9_base_effect_get_pass_desc
Henri Verbeet
hverbeet at gmail.com
Sat Oct 29 16:32:17 CDT 2016
On 29 October 2016 at 21:11, Luis C. Busquets PĂ©rez
<luis.busquets at ilidium.com> wrote:
> Could anyone help improving this patch so that it makes it to the wine
> tree?
At first sight:
>> @@ -5955,6 +5995,8 @@ static HRESULT d3dx9_base_effect_init(struct
>> d3dx9_base_effect *base,
>>
>> base->effect = effect;
>>
>> + base->clonable = TRUE;
>> +
Did you perhaps intend to store "eflags" instead here?
>> + if (base->clonable)
>> + {
And then check "base->flags" against D3DXFX_NOT_CLONEABLE here.
>> + if (vshader)
>> + {
>> + IDirect3DVertexShader9_GetFunction(vshader,
>> NULL,
>> &size);
>> + if (desc->pVertexShaderFunction)
>> + free((void *)desc->pVertexShaderFunction);
>> + desc->pVertexShaderFunction = malloc(size);
>> + IDirect3DVertexShader9_GetFunction(vshader,
>> (void
>> *)(desc->pVertexShaderFunction), &size);
>> + }
Why not move this out of the loop?
>> + if (pshader)
>> + {
>> + IDirect3DPixelShader9_GetFunction(pshader, NULL,
>> &size);
>> + if (desc->pPixelShaderFunction)
>> + free((void *)desc->pPixelShaderFunction);
>> + desc->pPixelShaderFunction = malloc(size);
>> + IDirect3DPixelShader9_GetFunction(pshader, (void
>> *)(desc->pPixelShaderFunction), &size);
>> + }
Likewise.
More information about the wine-devel
mailing list