d3d8: Retrieve textures from the primary stateblock.
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:
parent
84f9bc1716
commit
19e5693c91
|
@ -2165,8 +2165,18 @@ static HRESULT WINAPI d3d8_device_GetTexture(IDirect3DDevice8 *iface, DWORD stag
|
||||||
if (!texture)
|
if (!texture)
|
||||||
return D3DERR_INVALIDCALL;
|
return D3DERR_INVALIDCALL;
|
||||||
|
|
||||||
|
if (stage >= WINED3DVERTEXTEXTURESAMPLER0 && stage <= WINED3DVERTEXTEXTURESAMPLER3)
|
||||||
|
stage -= (WINED3DVERTEXTEXTURESAMPLER0 - WINED3D_MAX_FRAGMENT_SAMPLERS);
|
||||||
|
|
||||||
|
if (stage >= WINED3D_MAX_COMBINED_SAMPLERS)
|
||||||
|
{
|
||||||
|
WARN("Ignoring invalid stage %u.\n", stage);
|
||||||
|
*texture = NULL;
|
||||||
|
return D3D_OK;
|
||||||
|
}
|
||||||
|
|
||||||
wined3d_mutex_lock();
|
wined3d_mutex_lock();
|
||||||
if ((wined3d_texture = wined3d_device_get_texture(device->wined3d_device, stage)))
|
if ((wined3d_texture = wined3d_stateblock_get_state(device->state)->textures[stage]))
|
||||||
{
|
{
|
||||||
texture_impl = wined3d_texture_get_parent(wined3d_texture);
|
texture_impl = wined3d_texture_get_parent(wined3d_texture);
|
||||||
*texture = &texture_impl->IDirect3DBaseTexture8_iface;
|
*texture = &texture_impl->IDirect3DBaseTexture8_iface;
|
||||||
|
|
Loading…
Reference in New Issue