D3D9Wrapper::IDirect3DResource9::IDirect3DResource9( D3D9Base::LPDIRECT3DRESOURCE9 pResource ) : IDirect3DUnknown((IUnknown*) pResource) { m_pResource = pResource; } D3D9Wrapper::IDirect3DResource9* D3D9Wrapper::IDirect3DResource9::GetResource(D3D9Base::LPDIRECT3DRESOURCE9 pResource) { D3DRESOURCETYPE Type = pResource->GetType(); switch(Type) { case D3D9Base::D3DRTYPE_SURFACE: { D3D9Wrapper::IDirect3DResource9 *Result = (D3D9Wrapper::IDirect3DResource9*) D3D9Wrapper::IDirect3DSurface9::GetSurface((D3D9Base::LPDIRECT3DSURFACE9)pResource); if(DebuggingSurfaceCreation) { g_Globals.InfoFile() << "GetResource called on D3DRTYPE_SURFACE. D3D9Base: " << String::UnsignedIntAsHex(UINT(pResource)) << " D3D9Wrapper: " << String::UnsignedIntAsHex(UINT(Result)) << endl; } return Result; } /*case D3DRTYPE_VOLUME: return (D3D9Wrapper::IDirect3DResource9*) D3D9Wrapper::IDirect3DVolume9::GetVolume((D3D9Base::LPDIRECT3DVOLUME9)pResource);*/ case D3D9Base::D3DRTYPE_TEXTURE: return (D3D9Wrapper::IDirect3DResource9*) D3D9Wrapper::IDirect3DTexture9::GetTexture((D3D9Base::LPDIRECT3DTEXTURE9)pResource); /*case D3DRTYPE_VOLUMETEXTURE: return (D3D9Wrapper::IDirect3DResource9*) D3D9Wrapper::IDirect3DVolumeTexture9::GetVolumeTexture((D3D9Base::LPDIRECT3DVOLUMETEXTURE9)pResource); case D3DRTYPE_CUBETEXTURE: return (D3D9Wrapper::IDirect3DResource9*) D3D9Wrapper::IDirect3DCubeTexture9::GetCubeTexture((D3D9Base::LPDIRECT3DCUBETEXTURE9)pResource); case D3DRTYPE_VERTEXBUFFER: return (D3D9Wrapper::IDirect3DResource9*) D3D9Wrapper::IDirect3DVertexBuffer9::GetVertexBuffer((D3D9Base::LPDIRECT3DVERTEXBUFFER9)pResource); case D3DRTYPE_INDEXBUFFER: return (D3D9Wrapper::IDirect3DResource9*) D3D9Wrapper::IDirect3DIndexBuffer9::GetIndexBuffer((D3D9Base::LPDIRECT3DINDEXBUFFER9)pResource);*/ } return NULL; } STDMETHODIMP D3D9Wrapper::IDirect3DResource9::GetDevice(THIS_ D3D9Wrapper::IDirect3DDevice9** ppDevice) { D3D9Base::LPDIRECT3DDEVICE9 BaseDevice = NULL; *ppDevice = NULL; HRESULT hr = m_pResource->GetDevice(&BaseDevice); if(FAILED(hr)) { return hr; } D3D9Wrapper::IDirect3DDevice9* NewDevice = IDirect3DDevice9::GetDirect3DDevice(BaseDevice); if(NewDevice == NULL) { BaseDevice->Release(); return E_OUTOFMEMORY; } *ppDevice = NewDevice; return hr; } STDMETHODIMP D3D9Wrapper::IDirect3DResource9::SetPrivateData(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) { return m_pResource->SetPrivateData(refguid, pData, SizeOfData, Flags); } STDMETHODIMP D3D9Wrapper::IDirect3DResource9::GetPrivateData(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) { return m_pResource->GetPrivateData(refguid, pData, pSizeOfData); } STDMETHODIMP D3D9Wrapper::IDirect3DResource9::FreePrivateData(THIS_ REFGUID refguid) { return m_pResource->FreePrivateData(refguid); } STDMETHODIMP_(DWORD) D3D9Wrapper::IDirect3DResource9::SetPriority(THIS_ DWORD PriorityNew) { return m_pResource->SetPriority(PriorityNew); } STDMETHODIMP_(DWORD) D3D9Wrapper::IDirect3DResource9::GetPriority(THIS) { return m_pResource->GetPriority(); } STDMETHODIMP_(void) D3D9Wrapper::IDirect3DResource9::PreLoad(THIS) { return m_pResource->PreLoad(); } STDMETHODIMP_(D3DRESOURCETYPE) D3D9Wrapper::IDirect3DResource9::GetType(THIS) { return m_pResource->GetType(); }