1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-03-13 19:29:14 +01:00

[d3d11] Pass texture as D3D11Resource to DXGI interop objects

This commit is contained in:
Philip Rebohle 2019-04-27 16:25:55 +02:00
parent d1a019a043
commit ac79f69a10
2 changed files with 26 additions and 26 deletions

View File

@ -479,10 +479,10 @@ namespace dxvk {
D3D11DXGISurface::D3D11DXGISurface(
ID3D11Resource* pContainer,
ID3D11Resource* pResource,
D3D11CommonTexture* pTexture)
: m_container (pContainer),
m_texture (pTexture) {
: m_resource(pResource),
m_texture (pTexture) {
}
@ -493,19 +493,19 @@ namespace dxvk {
ULONG STDMETHODCALLTYPE D3D11DXGISurface::AddRef() {
return m_container->AddRef();
return m_resource->AddRef();
}
ULONG STDMETHODCALLTYPE D3D11DXGISurface::Release() {
return m_container->Release();
return m_resource->Release();
}
HRESULT STDMETHODCALLTYPE D3D11DXGISurface::QueryInterface(
REFIID riid,
void** ppvObject) {
return m_container->QueryInterface(riid, ppvObject);
return m_resource->QueryInterface(riid, ppvObject);
}
@ -513,7 +513,7 @@ namespace dxvk {
REFGUID Name,
UINT* pDataSize,
void* pData) {
return m_container->GetPrivateData(Name, pDataSize, pData);
return m_resource->GetPrivateData(Name, pDataSize, pData);
}
@ -521,14 +521,14 @@ namespace dxvk {
REFGUID Name,
UINT DataSize,
const void* pData) {
return m_container->SetPrivateData(Name, DataSize, pData);
return m_resource->SetPrivateData(Name, DataSize, pData);
}
HRESULT STDMETHODCALLTYPE D3D11DXGISurface::SetPrivateDataInterface(
REFGUID Name,
const IUnknown* pUnknown) {
return m_container->SetPrivateDataInterface(Name, pUnknown);
return m_resource->SetPrivateDataInterface(Name, pUnknown);
}
@ -543,7 +543,7 @@ namespace dxvk {
REFIID riid,
void** ppDevice) {
Com<ID3D11Device> device;
m_container->GetDevice(&device);
m_resource->GetDevice(&device);
return device->QueryInterface(riid, ppDevice);
}
@ -568,7 +568,7 @@ namespace dxvk {
Com<ID3D11Device> device;
Com<ID3D11DeviceContext> context;
m_container->GetDevice(&device);
m_resource->GetDevice(&device);
device->GetImmediateContext(&context);
if (pLockedRect) {
@ -590,7 +590,7 @@ namespace dxvk {
return DXGI_ERROR_INVALID_CALL;
D3D11_MAPPED_SUBRESOURCE sr;
HRESULT hr = context->Map(m_container, 0,
HRESULT hr = context->Map(m_resource, 0,
mapType, 0, pLockedRect ? &sr : nullptr);
if (hr != S_OK)
@ -606,10 +606,10 @@ namespace dxvk {
Com<ID3D11Device> device;
Com<ID3D11DeviceContext> context;
m_container->GetDevice(&device);
m_resource->GetDevice(&device);
device->GetImmediateContext(&context);
context->Unmap(m_container, 0);
context->Unmap(m_resource, 0);
return S_OK;
}
@ -641,7 +641,7 @@ namespace dxvk {
REFIID riid,
void** ppParentResource,
UINT* pSubresourceIndex) {
HRESULT hr = m_container->QueryInterface(riid, ppParentResource);
HRESULT hr = m_resource->QueryInterface(riid, ppParentResource);
if (pSubresourceIndex)
*pSubresourceIndex = 0;
return hr;
@ -659,10 +659,10 @@ namespace dxvk {
D3D11VkInteropSurface::D3D11VkInteropSurface(
ID3D11DeviceChild* pContainer,
ID3D11Resource* pResource,
D3D11CommonTexture* pTexture)
: m_container (pContainer),
m_texture (pTexture) {
: m_resource(pResource),
m_texture (pTexture) {
}
@ -673,26 +673,26 @@ namespace dxvk {
ULONG STDMETHODCALLTYPE D3D11VkInteropSurface::AddRef() {
return m_container->AddRef();
return m_resource->AddRef();
}
ULONG STDMETHODCALLTYPE D3D11VkInteropSurface::Release() {
return m_container->Release();
return m_resource->Release();
}
HRESULT STDMETHODCALLTYPE D3D11VkInteropSurface::QueryInterface(
REFIID riid,
void** ppvObject) {
return m_container->QueryInterface(riid, ppvObject);
return m_resource->QueryInterface(riid, ppvObject);
}
HRESULT STDMETHODCALLTYPE D3D11VkInteropSurface::GetDevice(
IDXGIVkInteropDevice** ppDevice) {
Com<ID3D11Device> device;
m_container->GetDevice(&device);
m_resource->GetDevice(&device);
return device->QueryInterface(
__uuidof(IDXGIVkInteropDevice),

View File

@ -239,7 +239,7 @@ namespace dxvk {
public:
D3D11DXGISurface(
ID3D11Resource* pContainer,
ID3D11Resource* pResource,
D3D11CommonTexture* pTexture);
~D3D11DXGISurface();
@ -299,7 +299,7 @@ namespace dxvk {
private:
ID3D11Resource* m_container;
ID3D11Resource* m_resource;
D3D11CommonTexture* m_texture;
};
@ -316,7 +316,7 @@ namespace dxvk {
public:
D3D11VkInteropSurface(
ID3D11DeviceChild* pContainer,
ID3D11Resource* pResource,
D3D11CommonTexture* pTexture);
~D3D11VkInteropSurface();
@ -339,7 +339,7 @@ namespace dxvk {
private:
ID3D11DeviceChild* m_container;
ID3D11Resource* m_resource;
D3D11CommonTexture* m_texture;
};