static HRESULT WINAPI IDirect3DVolumeTexture9Impl_GetVolumeLevel(LPDIRECT3DVOLUMETEXTURE9 iface, UINT Level, IDirect3DVolume9** ppVolumeLevel) { IDirect3DVolumeTexture9Impl *This = (IDirect3DVolumeTexture9Impl *)iface; HRESULT hrc = D3D_OK; IWineD3DVolume *myVolume = NULL; TRACE("(%p) Relay\n", This); hrc = IWineD3DVolumeTexture_GetVolumeLevel(This->wineD3DVolumeTexture, Level, &myVolume); if (hrc == D3D_OK && NULL != ppVolumeLevel) { IWineD3DVolumeTexture_GetParent(myVolume, (IUnknown **)ppVolumeLevel); IWineD3DVolumeTexture_Release(myVolume); } return hrc; }
static HRESULT WINAPI IDirect3DVolumeTexture8Impl_GetVolumeLevel(IDirect3DVolumeTexture8 *iface, UINT Level, IDirect3DVolume8 **ppVolumeLevel) { IDirect3DVolumeTexture8Impl *This = (IDirect3DVolumeTexture8Impl *)iface; IWineD3DVolume *myVolume = NULL; HRESULT hr; TRACE("iface %p, level %u, volume %p.\n", iface, Level, ppVolumeLevel); wined3d_mutex_lock(); hr = IWineD3DVolumeTexture_GetVolumeLevel(This->wineD3DVolumeTexture, Level, &myVolume); if (SUCCEEDED(hr) && ppVolumeLevel) { *ppVolumeLevel = IWineD3DVolumeTexture_GetParent(myVolume); IDirect3DVolume8_AddRef(*ppVolumeLevel); IWineD3DVolumeTexture_Release(myVolume); } wined3d_mutex_unlock(); return hr; }