mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-07-26 09:21:37 +00:00
Tidy up logging of unknown interface queries
This commit is contained in:
@@ -1526,12 +1526,9 @@ HRESULT STDMETHODCALLTYPE WrappedID3D11DeviceContext::QueryInterface(REFIID riid
|
||||
{
|
||||
return m_WrappedVideo.QueryInterface(riid, ppvObject);
|
||||
}
|
||||
else
|
||||
{
|
||||
WarnUnknownGUID("ID3D11DeviceContext", riid);
|
||||
}
|
||||
|
||||
return RefCountDXGIObject::WrapQueryInterface(m_pRealContext, riid, ppvObject);
|
||||
return RefCountDXGIObject::WrapQueryInterface(m_pRealContext, "ID3D11DeviceContext", riid,
|
||||
ppvObject);
|
||||
}
|
||||
|
||||
#pragma region Record Statistics
|
||||
|
||||
@@ -795,9 +795,7 @@ HRESULT WrappedID3D11Device::QueryInterface(REFIID riid, void **ppvObject)
|
||||
return m_WrappedVideo.QueryInterface(riid, ppvObject);
|
||||
}
|
||||
|
||||
WarnUnknownGUID("ID3D11Device", riid);
|
||||
|
||||
return RefCountDXGIObject::WrapQueryInterface(m_pDevice, riid, ppvObject);
|
||||
return RefCountDXGIObject::WrapQueryInterface(m_pDevice, "ID3D11Device", riid, ppvObject);
|
||||
}
|
||||
|
||||
rdcstr WrappedID3D11Device::GetChunkName(uint32_t idx)
|
||||
|
||||
@@ -82,7 +82,8 @@ void D3D11Replay::Shutdown()
|
||||
|
||||
void D3D11Replay::CreateResources(IDXGIFactory *factory)
|
||||
{
|
||||
bool wrapped = RefCountDXGIObject::HandleWrap(__uuidof(IDXGIFactory), (void **)&factory);
|
||||
bool wrapped =
|
||||
RefCountDXGIObject::HandleWrap("D3D11Replay", __uuidof(IDXGIFactory), (void **)&factory);
|
||||
RDCASSERT(wrapped);
|
||||
m_pFactory = factory;
|
||||
|
||||
|
||||
@@ -316,7 +316,7 @@ public:
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
return RefCountDXGIObject::WrapQueryInterface(m_pReal, riid, ppvObject);
|
||||
return RefCountDXGIObject::WrapQueryInterface(m_pReal, "ID3D11DeviceChild", riid, ppvObject);
|
||||
}
|
||||
|
||||
//////////////////////////////
|
||||
|
||||
@@ -1452,7 +1452,7 @@ Wrapped11VideoDeviceChild<NestedType, NestedType1>::QueryInterface(REFIID riid,
|
||||
return m_pDevice->QueryInterface(riid, ppvObject);
|
||||
}
|
||||
|
||||
return RefCountDXGIObject::WrapQueryInterface(m_pReal, riid, ppvObject);
|
||||
return RefCountDXGIObject::WrapQueryInterface(m_pReal, "ID3D11Video", riid, ppvObject);
|
||||
}
|
||||
|
||||
template <typename NestedType, typename NestedType1>
|
||||
|
||||
@@ -525,12 +525,8 @@ HRESULT STDMETHODCALLTYPE WrappedID3D12CommandQueue::QueryInterface(REFIID riid,
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
WarnUnknownGUID("ID3D12CommandQueue", riid);
|
||||
}
|
||||
|
||||
return RefCounter12::QueryInterface(riid, ppvObject);
|
||||
return RefCounter12::QueryInterface("ID3D12CommandQueue", riid, ppvObject);
|
||||
}
|
||||
|
||||
void WrappedID3D12CommandQueue::ClearAfterCapture()
|
||||
@@ -1372,12 +1368,8 @@ HRESULT STDMETHODCALLTYPE WrappedID3D12GraphicsCommandList::QueryInterface(REFII
|
||||
AddRef();
|
||||
return S_OK;
|
||||
}
|
||||
else
|
||||
{
|
||||
WarnUnknownGUID("ID3D12GraphicsCommandList", riid);
|
||||
}
|
||||
|
||||
return m_RefCounter.QueryInterface(riid, ppvObject);
|
||||
return m_RefCounter.QueryInterface("ID3D12GraphicsCommandList", riid, ppvObject);
|
||||
}
|
||||
|
||||
void BakedCmdListInfo::ShiftForRemoved(uint32_t shiftDrawID, uint32_t shiftEID, size_t idx)
|
||||
|
||||
@@ -179,11 +179,16 @@ public:
|
||||
//////////////////////////////
|
||||
// implement IUnknown
|
||||
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppvObject)
|
||||
{
|
||||
return QueryInterface("ID3D12Object", riid, ppvObject);
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE QueryInterface(const char *ifaceName, REFIID riid, void **ppvObject)
|
||||
{
|
||||
if(!m_pReal)
|
||||
return E_NOINTERFACE;
|
||||
|
||||
return RefCountDXGIObject::WrapQueryInterface(m_pReal, riid, ppvObject);
|
||||
return RefCountDXGIObject::WrapQueryInterface(m_pReal, ifaceName, riid, ppvObject);
|
||||
}
|
||||
|
||||
ULONG STDMETHODCALLTYPE AddRef()
|
||||
|
||||
@@ -805,6 +805,11 @@ HRESULT WrappedID3D12Device::QueryInterface(REFIID riid, void **ppvObject)
|
||||
static const GUID ID3D12CompatibilityDevice_uuid = {
|
||||
0x8f1c0e3c, 0xfae3, 0x4a82, {0xb0, 0x98, 0xbf, 0xe1, 0x70, 0x82, 0x07, 0xff}};
|
||||
|
||||
// unknown/undocumented internal interface
|
||||
// {de18ef3a-0x2089-0x4936-0xa3 0xf3- 0xec 0x78 0x7a 0xc6 0xa4 0x0d}
|
||||
static const GUID ID3D12DeviceDriverDetails_RS5_uuid = {
|
||||
0xde18ef3a, 0x2089, 0x4936, {0xa3, 0xf3, 0xec, 0x78, 0x7a, 0xc6, 0xa4, 0x0d}};
|
||||
|
||||
HRESULT hr = S_OK;
|
||||
|
||||
if(riid == __uuidof(IUnknown))
|
||||
@@ -1160,12 +1165,21 @@ HRESULT WrappedID3D12Device::QueryInterface(REFIID riid, void **ppvObject)
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
}
|
||||
else
|
||||
else if(riid == ID3D12DeviceDriverDetails_RS5_uuid)
|
||||
{
|
||||
WarnUnknownGUID("ID3D12Device", riid);
|
||||
static bool printed = false;
|
||||
if(!printed)
|
||||
{
|
||||
RDCWARN(
|
||||
"Querying ID3D12Device for unsupported/undocumented interface: "
|
||||
"ID3D12DeviceDriverDetails_RS5");
|
||||
printed = true;
|
||||
}
|
||||
// return the real thing unwrapped and hope this is OK
|
||||
return m_pDevice->QueryInterface(riid, ppvObject);
|
||||
}
|
||||
|
||||
return m_RefCounter.QueryInterface(riid, ppvObject);
|
||||
return m_RefCounter.QueryInterface("ID3D12Device", riid, ppvObject);
|
||||
}
|
||||
|
||||
ID3D12Resource *WrappedID3D12Device::GetUploadBuffer(uint64_t chunkOffset, uint64_t byteSize)
|
||||
|
||||
@@ -76,7 +76,7 @@ void D3D12Replay::Initialise(IDXGIFactory1 *factory)
|
||||
|
||||
if(m_pFactory)
|
||||
{
|
||||
RefCountDXGIObject::HandleWrap(__uuidof(IDXGIFactory1), (void **)&m_pFactory);
|
||||
RefCountDXGIObject::HandleWrap("D3D12Replay", __uuidof(IDXGIFactory1), (void **)&m_pFactory);
|
||||
|
||||
LUID luid = m_pDevice->GetAdapterLuid();
|
||||
|
||||
|
||||
@@ -258,7 +258,7 @@ public:
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
return RefCounter12::QueryInterface(riid, ppvObject);
|
||||
return RefCounter12::QueryInterface("ID3D12DeviceChild", riid, ppvObject);
|
||||
}
|
||||
|
||||
//////////////////////////////
|
||||
|
||||
@@ -1619,6 +1619,22 @@ D3D_PRIMITIVE_TOPOLOGY MakeD3DPrimitiveTopology(Topology Topo)
|
||||
|
||||
void WarnUnknownGUID(const char *name, REFIID riid)
|
||||
{
|
||||
// unknown/undocumented internal interface
|
||||
// {7abb6563-02bc-47c4-8ef9-acc4795edbcf}
|
||||
static const GUID IDXGIAdapterInternal2_uuid = {
|
||||
0x7abb6563, 0x02bc, 0x47c4, {0x8e, 0xf9, 0xac, 0xc4, 0x79, 0x5e, 0xdb, 0xcf}};
|
||||
|
||||
if(riid == IDXGIAdapterInternal2_uuid)
|
||||
{
|
||||
static bool printed = false;
|
||||
if(!printed)
|
||||
{
|
||||
printed = true;
|
||||
RDCWARN("Querying %s for unsupported/undocumented interface: IDXGIAdapterInternal2", name);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
static Threading::CriticalSection lock;
|
||||
// we use a vector here, because the number of *distinct* unknown GUIDs encountered is likely to
|
||||
// be low (e.g. less than 10).
|
||||
@@ -1635,12 +1651,12 @@ void WarnUnknownGUID(const char *name, REFIID riid)
|
||||
if(w.second > 5)
|
||||
return;
|
||||
|
||||
RDCWARN("Querying %s for interface: %s", name, ToStr(riid).c_str());
|
||||
RDCWARN("Querying %s for unknown/unhandled interface: %s", name, ToStr(riid).c_str());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
RDCWARN("Querying %s for interface: %s", name, ToStr(riid).c_str());
|
||||
RDCWARN("Querying %s for unknown/unhandled interface: %s", name, ToStr(riid).c_str());
|
||||
warned.push_back(make_rdcpair(riid, 1));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -277,7 +277,7 @@ private:
|
||||
HRESULT ret = dxgihooks.CreateDXGIFactory()(riid, ppFactory);
|
||||
|
||||
if(SUCCEEDED(ret))
|
||||
RefCountDXGIObject::HandleWrap(riid, ppFactory);
|
||||
RefCountDXGIObject::HandleWrap("CreateDXGIFactory", riid, ppFactory);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -289,7 +289,7 @@ private:
|
||||
HRESULT ret = dxgihooks.CreateDXGIFactory1()(riid, ppFactory);
|
||||
|
||||
if(SUCCEEDED(ret))
|
||||
RefCountDXGIObject::HandleWrap(riid, ppFactory);
|
||||
RefCountDXGIObject::HandleWrap("CreateDXGIFactory1", riid, ppFactory);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -301,7 +301,7 @@ private:
|
||||
HRESULT ret = dxgihooks.CreateDXGIFactory2()(Flags, riid, ppFactory);
|
||||
|
||||
if(SUCCEEDED(ret))
|
||||
RefCountDXGIObject::HandleWrap(riid, ppFactory);
|
||||
RefCountDXGIObject::HandleWrap("CreateDXGIFactory2", riid, ppFactory);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -48,11 +48,11 @@ ID3DDevice *GetD3DDevice(IUnknown *pDevice)
|
||||
return wrapDevice;
|
||||
}
|
||||
|
||||
bool RefCountDXGIObject::HandleWrap(REFIID riid, void **ppvObject)
|
||||
bool RefCountDXGIObject::HandleWrap(const char *ifaceName, REFIID riid, void **ppvObject)
|
||||
{
|
||||
if(ppvObject == NULL || *ppvObject == NULL)
|
||||
{
|
||||
RDCWARN("HandleWrap called with NULL ppvObject");
|
||||
RDCWARN("HandleWrap called with NULL ppvObject querying %s", ifaceName);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -66,15 +66,10 @@ bool RefCountDXGIObject::HandleWrap(REFIID riid, void **ppvObject)
|
||||
static const GUID ID3D10Texture2D_uuid = {
|
||||
0x9b7e4c04, 0x342c, 0x4106, {0xa1, 0x9f, 0x4f, 0x27, 0x04, 0xf6, 0x89, 0xf0}};
|
||||
|
||||
// unknown/undocumented internal interface
|
||||
// {7abb6563-02bc-47c4-8ef9-acc4795edbcf}
|
||||
static const GUID IDXGIAdapterInternal2_uuid = {
|
||||
0x7abb6563, 0x02bc, 0x47c4, {0x8e, 0xf9, 0xac, 0xc4, 0x79, 0x5e, 0xdb, 0xcf}};
|
||||
|
||||
if(riid == __uuidof(IDXGIDevice))
|
||||
{
|
||||
// should have been handled elsewhere, so we can properly create this device
|
||||
RDCERR("Unexpected uuid in RefCountDXGIObject::HandleWrap");
|
||||
RDCERR("Unexpected uuid in RefCountDXGIObject::HandleWrap querying %s", ifaceName);
|
||||
return false;
|
||||
}
|
||||
else if(riid == __uuidof(IDXGIAdapter))
|
||||
@@ -122,7 +117,7 @@ bool RefCountDXGIObject::HandleWrap(REFIID riid, void **ppvObject)
|
||||
else if(riid == __uuidof(IDXGIDevice1))
|
||||
{
|
||||
// should have been handled elsewhere, so we can properly create this device
|
||||
RDCERR("Unexpected uuid in RefCountDXGIObject::HandleWrap");
|
||||
RDCERR("Unexpected uuid in RefCountDXGIObject::HandleWrap querying %s", ifaceName);
|
||||
return false;
|
||||
}
|
||||
else if(riid == __uuidof(IDXGIFactory1))
|
||||
@@ -173,19 +168,7 @@ bool RefCountDXGIObject::HandleWrap(REFIID riid, void **ppvObject)
|
||||
if(!printed)
|
||||
{
|
||||
printed = true;
|
||||
RDCWARN("Querying IDXGIObject for unsupported D3D10 interface: %s", ToStr(riid).c_str());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
else if(riid == IDXGIAdapterInternal2_uuid)
|
||||
{
|
||||
static bool printed = false;
|
||||
if(!printed)
|
||||
{
|
||||
printed = true;
|
||||
RDCWARN(
|
||||
"Querying IDXGIObject for unsupported/undocumented IDXGIAdapterInternal2 interface: %s",
|
||||
ToStr(riid).c_str());
|
||||
RDCWARN("Querying %s for unsupported D3D10 interface: %s", ifaceName, ToStr(riid).c_str());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -195,12 +178,12 @@ bool RefCountDXGIObject::HandleWrap(REFIID riid, void **ppvObject)
|
||||
if(!printed)
|
||||
{
|
||||
printed = true;
|
||||
RDCWARN("Querying IDXGIObject for unknown GUID: %s", ToStr(riid).c_str());
|
||||
RDCWARN("Querying %s for unknown GUID: %s", ifaceName, ToStr(riid).c_str());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
WarnUnknownGUID("IDXGIObject", riid);
|
||||
WarnUnknownGUID(ifaceName, riid);
|
||||
}
|
||||
|
||||
return false;
|
||||
@@ -213,17 +196,18 @@ HRESULT STDMETHODCALLTYPE RefCountDXGIObject::GetParent(
|
||||
HRESULT ret = m_pReal->GetParent(riid, ppParent);
|
||||
|
||||
if(SUCCEEDED(ret))
|
||||
HandleWrap(riid, ppParent);
|
||||
HandleWrap("GetParent", riid, ppParent);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
HRESULT RefCountDXGIObject::WrapQueryInterface(IUnknown *real, REFIID riid, void **ppvObject)
|
||||
HRESULT RefCountDXGIObject::WrapQueryInterface(IUnknown *real, const char *ifaceName, REFIID riid,
|
||||
void **ppvObject)
|
||||
{
|
||||
HRESULT ret = real->QueryInterface(riid, ppvObject);
|
||||
|
||||
if(SUCCEEDED(ret))
|
||||
HandleWrap(riid, ppvObject);
|
||||
HandleWrap(ifaceName, riid, ppvObject);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -344,12 +328,8 @@ HRESULT STDMETHODCALLTYPE WrappedIDXGISwapChain4::QueryInterface(REFIID riid, vo
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
WarnUnknownGUID("IDXGISwapChain", riid);
|
||||
}
|
||||
|
||||
return RefCountDXGIObject::QueryInterface(riid, ppvObject);
|
||||
return RefCountDXGIObject::QueryInterface("IDXGISwapChain", riid, ppvObject);
|
||||
}
|
||||
|
||||
void WrappedIDXGISwapChain4::ReleaseBuffersForResize(UINT QueueCount, IUnknown *const *ppPresentQueue,
|
||||
@@ -566,7 +546,7 @@ HRESULT WrappedIDXGISwapChain4::GetDevice(
|
||||
*ppDevice = this;
|
||||
AddRef();
|
||||
}
|
||||
else if(!HandleWrap(riid, ppDevice))
|
||||
else if(!HandleWrap("GetDevice", riid, ppDevice))
|
||||
{
|
||||
// can probably get away with returning the real result here,
|
||||
// but it worries me a bit.
|
||||
@@ -857,12 +837,8 @@ HRESULT STDMETHODCALLTYPE WrappedIDXGIOutput6::QueryInterface(REFIID riid, void
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
WarnUnknownGUID("IDXGIOutput", riid);
|
||||
}
|
||||
|
||||
return RefCountDXGIObject::QueryInterface(riid, ppvObject);
|
||||
return RefCountDXGIObject::QueryInterface("IDXGIOutput", riid, ppvObject);
|
||||
}
|
||||
|
||||
WrappedIDXGIAdapter4::WrappedIDXGIAdapter4(IDXGIAdapter *real)
|
||||
@@ -947,12 +923,8 @@ HRESULT STDMETHODCALLTYPE WrappedIDXGIAdapter4::QueryInterface(REFIID riid, void
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
WarnUnknownGUID("IDXGIAdapter", riid);
|
||||
}
|
||||
|
||||
return RefCountDXGIObject::QueryInterface(riid, ppvObject);
|
||||
return RefCountDXGIObject::QueryInterface("IDXGIAdapter", riid, ppvObject);
|
||||
}
|
||||
|
||||
WrappedIDXGIDevice4::WrappedIDXGIDevice4(IDXGIDevice *real, ID3DDevice *d3d)
|
||||
@@ -1051,12 +1023,8 @@ HRESULT STDMETHODCALLTYPE WrappedIDXGIDevice4::QueryInterface(REFIID riid, void
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
WarnUnknownGUID("IDXGIDevice", riid);
|
||||
}
|
||||
|
||||
return RefCountDXGIObject::QueryInterface(riid, ppvObject);
|
||||
return RefCountDXGIObject::QueryInterface("IDXGIDevice", riid, ppvObject);
|
||||
}
|
||||
|
||||
rdcarray<IDXGIResource *> UnwrapResourceSet(UINT NumResources, IDXGIResource *const *ppResources)
|
||||
@@ -1259,12 +1227,8 @@ HRESULT STDMETHODCALLTYPE WrappedIDXGIFactory::QueryInterface(REFIID riid, void
|
||||
RDCWARN("Blocking QueryInterface for IDXGIFactoryDWM8");
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
else
|
||||
{
|
||||
WarnUnknownGUID("IDXGIFactory", riid);
|
||||
}
|
||||
|
||||
return RefCountDXGIObject::QueryInterface(riid, ppvObject);
|
||||
return RefCountDXGIObject::QueryInterface("IDXGIFactory", riid, ppvObject);
|
||||
}
|
||||
|
||||
HRESULT WrappedIDXGIFactory::CreateSwapChain(IUnknown *pDevice, DXGI_SWAP_CHAIN_DESC *pDesc,
|
||||
@@ -1488,10 +1452,6 @@ HRESULT STDMETHODCALLTYPE WrappedIDXGIOutputDuplication::QueryInterface(REFIID r
|
||||
*ppvObject = (IDXGIOutputDuplication *)this;
|
||||
return S_OK;
|
||||
}
|
||||
else
|
||||
{
|
||||
WarnUnknownGUID("IDXGIOutputDuplication", riid);
|
||||
}
|
||||
|
||||
return RefCountDXGIObject::QueryInterface(riid, ppvObject);
|
||||
return RefCountDXGIObject::QueryInterface("IDXGIOutputDuplication", riid, ppvObject);
|
||||
}
|
||||
|
||||
@@ -48,8 +48,9 @@ class RefCountDXGIObject : public IDXGIObject
|
||||
public:
|
||||
RefCountDXGIObject(IDXGIObject *real) : m_pReal(real), m_iRefcount(1) {}
|
||||
virtual ~RefCountDXGIObject() {}
|
||||
static bool HandleWrap(REFIID riid, void **ppvObject);
|
||||
static HRESULT WrapQueryInterface(IUnknown *real, REFIID riid, void **ppvObject);
|
||||
static bool HandleWrap(const char *ifaceName, REFIID riid, void **ppvObject);
|
||||
static HRESULT WrapQueryInterface(IUnknown *real, const char *ifaceName, REFIID riid,
|
||||
void **ppvObject);
|
||||
|
||||
//////////////////////////////
|
||||
// implement IUnknown
|
||||
@@ -57,6 +58,13 @@ public:
|
||||
/* [in] */ REFIID riid,
|
||||
/* [annotation][iid_is][out] */
|
||||
__RPC__deref_out void **ppvObject)
|
||||
{
|
||||
return QueryInterface("IUnknown", riid, ppvObject);
|
||||
}
|
||||
|
||||
// optional overload that's useful for passing down the name of the current interface to put in
|
||||
// any 'unknown interface' query logs.
|
||||
HRESULT STDMETHODCALLTYPE QueryInterface(const char *ifaceName, REFIID riid, void **ppvObject)
|
||||
{
|
||||
if(riid == __uuidof(IUnknown))
|
||||
{
|
||||
@@ -65,7 +73,7 @@ public:
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
return WrapQueryInterface(m_pReal, riid, ppvObject);
|
||||
return WrapQueryInterface(m_pReal, ifaceName, riid, ppvObject);
|
||||
}
|
||||
|
||||
ULONG STDMETHODCALLTYPE AddRef()
|
||||
@@ -112,30 +120,6 @@ public:
|
||||
/* [retval][out] */ void **ppParent);
|
||||
};
|
||||
|
||||
#define IMPLEMENT_IDXGIOBJECT_WITH_REFCOUNTDXGIOBJECT \
|
||||
ULONG STDMETHODCALLTYPE AddRef() { return RefCountDXGIObject::AddRef(); } \
|
||||
ULONG STDMETHODCALLTYPE Release() { return RefCountDXGIObject::Release(); } \
|
||||
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppvObject) \
|
||||
{ \
|
||||
return RefCountDXGIObject::QueryInterface(riid, ppvObject); \
|
||||
} \
|
||||
HRESULT STDMETHODCALLTYPE SetPrivateData(REFIID Name, UINT DataSize, const void *pData) \
|
||||
{ \
|
||||
return RefCountDXGIObject::SetPrivateData(Name, DataSize, pData); \
|
||||
} \
|
||||
HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(REFIID Name, const IUnknown *pUnknown) \
|
||||
{ \
|
||||
return RefCountDXGIObject::SetPrivateDataInterface(Name, pUnknown); \
|
||||
} \
|
||||
HRESULT STDMETHODCALLTYPE GetPrivateData(REFIID Name, UINT *pDataSize, void *pData) \
|
||||
{ \
|
||||
return RefCountDXGIObject::GetPrivateData(Name, pDataSize, pData); \
|
||||
} \
|
||||
HRESULT STDMETHODCALLTYPE GetParent(REFIID riid, void **ppvObject) \
|
||||
{ \
|
||||
return RefCountDXGIObject::GetParent(riid, ppvObject); \
|
||||
}
|
||||
|
||||
#define IMPLEMENT_IDXGIOBJECT_WITH_REFCOUNTDXGIOBJECT_CUSTOMQUERY \
|
||||
ULONG STDMETHODCALLTYPE AddRef() { return RefCountDXGIObject::AddRef(); } \
|
||||
ULONG STDMETHODCALLTYPE Release() { return RefCountDXGIObject::Release(); } \
|
||||
@@ -1692,8 +1676,7 @@ public:
|
||||
}
|
||||
else
|
||||
{
|
||||
RDCWARN("Wrapping unknown adapter GUID %s", ToStr(riid).c_str());
|
||||
RefCountDXGIObject::HandleWrap(riid, ppvAdapter);
|
||||
RefCountDXGIObject::HandleWrap("IDXGIAdapter", riid, ppvAdapter);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user