mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-15 07:29:17 +01:00
[d3d11] Implement ID3D11On12Device1
This commit is contained in:
parent
106032fa65
commit
b5f23d86f4
@ -3430,7 +3430,8 @@ namespace dxvk {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (m_d3d11on12.Is11on12Device()) {
|
if (m_d3d11on12.Is11on12Device()) {
|
||||||
if (riid == __uuidof(ID3D11On12Device)) {
|
if (riid == __uuidof(ID3D11On12Device)
|
||||||
|
|| riid == __uuidof(ID3D11On12Device1_DXVK)) {
|
||||||
*ppvObject = ref(&m_d3d11on12);
|
*ppvObject = ref(&m_d3d11on12);
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
@ -147,4 +147,11 @@ namespace dxvk {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE D3D11on12Device::GetD3D12Device(
|
||||||
|
REFIID riid,
|
||||||
|
void** ppvDevice) {
|
||||||
|
return m_d3d12Queue->GetDevice(riid, ppvDevice);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,21 @@
|
|||||||
|
|
||||||
#include "../util/log/log.h"
|
#include "../util/log/log.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Declaration of the ID3D11On12Device1 interface
|
||||||
|
*
|
||||||
|
* Various different headers that we need to be compatible with
|
||||||
|
* can't seem to agree on the signature of GetD3D12Device, and
|
||||||
|
* older wine/mingw headers don't support this interface at all.
|
||||||
|
*/
|
||||||
|
MIDL_INTERFACE("bdb64df4-ea2f-4c70-b861-aaab1258bb5d")
|
||||||
|
ID3D11On12Device1_DXVK : public ID3D11On12Device {
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE GetD3D12Device(
|
||||||
|
REFIID riid,
|
||||||
|
void** ppvDevice) = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
namespace dxvk {
|
namespace dxvk {
|
||||||
|
|
||||||
class D3D11Device;
|
class D3D11Device;
|
||||||
@ -22,7 +37,7 @@ namespace dxvk {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class D3D11on12Device : public ID3D11On12Device {
|
class D3D11on12Device : public ID3D11On12Device1_DXVK {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -58,6 +73,10 @@ namespace dxvk {
|
|||||||
ID3D11Resource* const* ppResources,
|
ID3D11Resource* const* ppResources,
|
||||||
UINT ResourceCount);
|
UINT ResourceCount);
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE GetD3D12Device(
|
||||||
|
REFIID riid,
|
||||||
|
void** ppvDevice);
|
||||||
|
|
||||||
bool Is11on12Device() const {
|
bool Is11on12Device() const {
|
||||||
return m_d3d12Device != nullptr;
|
return m_d3d12Device != nullptr;
|
||||||
}
|
}
|
||||||
@ -73,3 +92,7 @@ namespace dxvk {
|
|||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef _MSC_VER
|
||||||
|
__CRT_UUID_DECL(ID3D11On12Device1_DXVK, 0xbdb64df4,0xea2f,0x4c70,0xb8,0x61,0xaa,0xab,0x12,0x58,0xbb,0x5d);
|
||||||
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user