d3d8: Handle stateblocks in d3d8_device_SetPixelShader().

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
stable
Zebediah Figura 2019-10-01 20:03:50 -05:00 committed by Alexandre Julliard
parent 8d84579540
commit 041181f1dc
1 changed files with 6 additions and 2 deletions

View File

@ -3144,7 +3144,9 @@ static HRESULT WINAPI d3d8_device_SetPixelShader(IDirect3DDevice8 *iface, DWORD
if (!shader)
{
wined3d_device_set_pixel_shader(device->wined3d_device, NULL);
wined3d_stateblock_set_pixel_shader(device->update_state, NULL);
if (!device->recording)
wined3d_device_set_pixel_shader(device->wined3d_device, NULL);
wined3d_mutex_unlock();
return D3D_OK;
}
@ -3157,7 +3159,9 @@ static HRESULT WINAPI d3d8_device_SetPixelShader(IDirect3DDevice8 *iface, DWORD
}
TRACE("Setting shader %p.\n", shader_impl);
wined3d_device_set_pixel_shader(device->wined3d_device, shader_impl->wined3d_shader);
wined3d_stateblock_set_pixel_shader(device->update_state, shader_impl->wined3d_shader);
if (!device->recording)
wined3d_device_set_pixel_shader(device->wined3d_device, shader_impl->wined3d_shader);
wined3d_mutex_unlock();
return D3D_OK;