mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-15 07:29:17 +01:00
[d3d11] Implement IDXGIResource1 for textures and buffers
This commit is contained in:
parent
54592b7852
commit
2c61303976
@ -11,6 +11,7 @@ namespace dxvk {
|
|||||||
const D3D11_BUFFER_DESC* pDesc)
|
const D3D11_BUFFER_DESC* pDesc)
|
||||||
: m_device (pDevice),
|
: m_device (pDevice),
|
||||||
m_desc (*pDesc),
|
m_desc (*pDesc),
|
||||||
|
m_resource (this),
|
||||||
m_d3d10 (this, pDevice->GetD3D10Interface()) {
|
m_d3d10 (this, pDevice->GetD3D10Interface()) {
|
||||||
DxvkBufferCreateInfo info;
|
DxvkBufferCreateInfo info;
|
||||||
info.size = pDesc->ByteWidth;
|
info.size = pDesc->ByteWidth;
|
||||||
@ -133,6 +134,12 @@ namespace dxvk {
|
|||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (riid == __uuidof(IDXGIResource)
|
||||||
|
|| riid == __uuidof(IDXGIResource1)) {
|
||||||
|
*ppvObject = ref(&m_resource);
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
Logger::warn("D3D11Buffer::QueryInterface: Unknown interface query");
|
Logger::warn("D3D11Buffer::QueryInterface: Unknown interface query");
|
||||||
Logger::warn(str::format(riid));
|
Logger::warn(str::format(riid));
|
||||||
return E_NOINTERFACE;
|
return E_NOINTERFACE;
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
#include "d3d11_device_child.h"
|
#include "d3d11_device_child.h"
|
||||||
#include "d3d11_interfaces.h"
|
#include "d3d11_interfaces.h"
|
||||||
|
#include "d3d11_resource.h"
|
||||||
|
|
||||||
namespace dxvk {
|
namespace dxvk {
|
||||||
|
|
||||||
@ -120,6 +121,7 @@ namespace dxvk {
|
|||||||
DxvkBufferSlice m_soCounter;
|
DxvkBufferSlice m_soCounter;
|
||||||
DxvkBufferSliceHandle m_mapped;
|
DxvkBufferSliceHandle m_mapped;
|
||||||
|
|
||||||
|
D3D11DXGIResource m_resource;
|
||||||
D3D10Buffer m_d3d10;
|
D3D10Buffer m_d3d10;
|
||||||
|
|
||||||
BOOL CheckFormatFeatureSupport(
|
BOOL CheckFormatFeatureSupport(
|
||||||
|
@ -744,6 +744,7 @@ namespace dxvk {
|
|||||||
const D3D11_COMMON_TEXTURE_DESC* pDesc)
|
const D3D11_COMMON_TEXTURE_DESC* pDesc)
|
||||||
: m_texture (pDevice, pDesc, D3D11_RESOURCE_DIMENSION_TEXTURE1D),
|
: m_texture (pDevice, pDesc, D3D11_RESOURCE_DIMENSION_TEXTURE1D),
|
||||||
m_interop (this, &m_texture),
|
m_interop (this, &m_texture),
|
||||||
|
m_resource(this),
|
||||||
m_d3d10 (this, pDevice->GetD3D10Interface()) {
|
m_d3d10 (this, pDevice->GetD3D10Interface()) {
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -775,6 +776,12 @@ namespace dxvk {
|
|||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (riid == __uuidof(IDXGIResource)
|
||||||
|
|| riid == __uuidof(IDXGIResource1)) {
|
||||||
|
*ppvObject = ref(&m_resource);
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
if (riid == __uuidof(IDXGIVkInteropSurface)) {
|
if (riid == __uuidof(IDXGIVkInteropSurface)) {
|
||||||
*ppvObject = ref(&m_interop);
|
*ppvObject = ref(&m_interop);
|
||||||
return S_OK;
|
return S_OK;
|
||||||
@ -829,6 +836,7 @@ namespace dxvk {
|
|||||||
: m_texture (pDevice, pDesc, D3D11_RESOURCE_DIMENSION_TEXTURE2D),
|
: m_texture (pDevice, pDesc, D3D11_RESOURCE_DIMENSION_TEXTURE2D),
|
||||||
m_interop (this, &m_texture),
|
m_interop (this, &m_texture),
|
||||||
m_surface (this, &m_texture),
|
m_surface (this, &m_texture),
|
||||||
|
m_resource(this),
|
||||||
m_d3d10 (this, pDevice->GetD3D10Interface()) {
|
m_d3d10 (this, pDevice->GetD3D10Interface()) {
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -868,6 +876,12 @@ namespace dxvk {
|
|||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (riid == __uuidof(IDXGIResource)
|
||||||
|
|| riid == __uuidof(IDXGIResource1)) {
|
||||||
|
*ppvObject = ref(&m_resource);
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
if (riid == __uuidof(IDXGIVkInteropSurface)) {
|
if (riid == __uuidof(IDXGIVkInteropSurface)) {
|
||||||
*ppvObject = ref(&m_interop);
|
*ppvObject = ref(&m_interop);
|
||||||
return S_OK;
|
return S_OK;
|
||||||
@ -923,6 +937,7 @@ namespace dxvk {
|
|||||||
const D3D11_COMMON_TEXTURE_DESC* pDesc)
|
const D3D11_COMMON_TEXTURE_DESC* pDesc)
|
||||||
: m_texture (pDevice, pDesc, D3D11_RESOURCE_DIMENSION_TEXTURE3D),
|
: m_texture (pDevice, pDesc, D3D11_RESOURCE_DIMENSION_TEXTURE3D),
|
||||||
m_interop (this, &m_texture),
|
m_interop (this, &m_texture),
|
||||||
|
m_resource(this),
|
||||||
m_d3d10 (this, pDevice->GetD3D10Interface()) {
|
m_d3d10 (this, pDevice->GetD3D10Interface()) {
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -954,6 +969,12 @@ namespace dxvk {
|
|||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (riid == __uuidof(IDXGIResource)
|
||||||
|
|| riid == __uuidof(IDXGIResource1)) {
|
||||||
|
*ppvObject = ref(&m_resource);
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
if (riid == __uuidof(IDXGIVkInteropSurface)) {
|
if (riid == __uuidof(IDXGIVkInteropSurface)) {
|
||||||
*ppvObject = ref(&m_interop);
|
*ppvObject = ref(&m_interop);
|
||||||
return S_OK;
|
return S_OK;
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
#include "d3d11_device_child.h"
|
#include "d3d11_device_child.h"
|
||||||
#include "d3d11_interfaces.h"
|
#include "d3d11_interfaces.h"
|
||||||
|
#include "d3d11_resource.h"
|
||||||
|
|
||||||
namespace dxvk {
|
namespace dxvk {
|
||||||
|
|
||||||
@ -386,6 +387,7 @@ namespace dxvk {
|
|||||||
|
|
||||||
D3D11CommonTexture m_texture;
|
D3D11CommonTexture m_texture;
|
||||||
D3D11VkInteropSurface m_interop;
|
D3D11VkInteropSurface m_interop;
|
||||||
|
D3D11DXGIResource m_resource;
|
||||||
D3D10Texture1D m_d3d10;
|
D3D10Texture1D m_d3d10;
|
||||||
|
|
||||||
};
|
};
|
||||||
@ -433,6 +435,7 @@ namespace dxvk {
|
|||||||
D3D11CommonTexture m_texture;
|
D3D11CommonTexture m_texture;
|
||||||
D3D11VkInteropSurface m_interop;
|
D3D11VkInteropSurface m_interop;
|
||||||
D3D11DXGISurface m_surface;
|
D3D11DXGISurface m_surface;
|
||||||
|
D3D11DXGIResource m_resource;
|
||||||
D3D10Texture2D m_d3d10;
|
D3D10Texture2D m_d3d10;
|
||||||
|
|
||||||
};
|
};
|
||||||
@ -479,6 +482,7 @@ namespace dxvk {
|
|||||||
|
|
||||||
D3D11CommonTexture m_texture;
|
D3D11CommonTexture m_texture;
|
||||||
D3D11VkInteropSurface m_interop;
|
D3D11VkInteropSurface m_interop;
|
||||||
|
D3D11DXGIResource m_resource;
|
||||||
D3D10Texture3D m_d3d10;
|
D3D10Texture3D m_d3d10;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user