Commit 179cee08 authored by Henri Verbeet's avatar Henri Verbeet Committed by Alexandre Julliard

d3d8: Fix GetDevice() for surfaces that are part of a texture.

If the surface is part of a texture it doesn't keep its own reference to the device, but instead relies on the reference the texture has. This fixes a regression introduced by 3cedef2f.
parent 740e2d40
......@@ -106,6 +106,23 @@ static HRESULT WINAPI IDirect3DSurface8Impl_GetDevice(IDirect3DSurface8 *iface,
TRACE("iface %p, device %p.\n", iface, device);
if (This->forwardReference)
{
IDirect3DResource8 *resource;
HRESULT hr;
hr = IUnknown_QueryInterface(This->forwardReference, &IID_IDirect3DResource8, (void **)&resource);
if (SUCCEEDED(hr))
{
hr = IDirect3DResource8_GetDevice(resource, device);
IDirect3DResource8_Release(resource);
TRACE("Returning device %p.\n", *device);
}
return hr;
}
*device = (IDirect3DDevice8 *)This->parentDevice;
IDirect3DDevice8_AddRef(*device);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment