d3d9: Handle stateblocks in d3d9_device_SetTexture().

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>
This commit is contained in:
Zebediah Figura 2019-10-24 13:43:08 -05:00 committed by Alexandre Julliard
parent e43d91f85f
commit 95545a6667
1 changed files with 4 additions and 1 deletions

View File

@ -2489,13 +2489,16 @@ static HRESULT WINAPI d3d9_device_SetTexture(IDirect3DDevice9Ex *iface, DWORD st
texture_impl = unsafe_impl_from_IDirect3DBaseTexture9(texture);
wined3d_mutex_lock();
wined3d_device_set_texture(device->wined3d_device, stage,
wined3d_stateblock_set_texture(device->update_state, stage,
texture_impl ? texture_impl->wined3d_texture : NULL);
if (!device->recording)
{
unsigned int i = stage < 16 || (stage >= D3DVERTEXTEXTURESAMPLER0 && stage <= D3DVERTEXTEXTURESAMPLER3)
? stage < 16 ? stage : stage - D3DVERTEXTEXTURESAMPLER0 + 16 : ~0u;
wined3d_device_set_texture(device->wined3d_device, stage,
texture_impl ? texture_impl->wined3d_texture : NULL);
if (i < D3D9_MAX_TEXTURE_UNITS)
{
if (texture_impl && texture_impl->usage & D3DUSAGE_AUTOGENMIPMAP)