mirror of
https://github.com/doitsujin/dxvk.git
synced 2024-12-13 16:08:50 +01:00
2973c18055
May fix some crashes in applications that rely on the returned pointer being set to nullptr before returning.
62 lines
1.6 KiB
C++
62 lines
1.6 KiB
C++
#include "d3d11_class_linkage.h"
|
|
#include "d3d11_device.h"
|
|
|
|
namespace dxvk {
|
|
|
|
D3D11ClassLinkage::D3D11ClassLinkage(
|
|
D3D11Device* pDevice)
|
|
: m_device(pDevice) {
|
|
|
|
}
|
|
|
|
|
|
D3D11ClassLinkage::~D3D11ClassLinkage() {
|
|
|
|
}
|
|
|
|
|
|
HRESULT STDMETHODCALLTYPE D3D11ClassLinkage::QueryInterface(REFIID riid, void** ppvObject) {
|
|
*ppvObject = nullptr;
|
|
|
|
if (riid == __uuidof(IUnknown)
|
|
|| riid == __uuidof(ID3D11DeviceChild)
|
|
|| riid == __uuidof(ID3D11ClassLinkage)) {
|
|
*ppvObject = ref(this);
|
|
return S_OK;
|
|
}
|
|
|
|
Logger::warn("D3D11ClassLinkage::QueryInterface: Unknown interface query");
|
|
Logger::warn(str::format(riid));
|
|
return E_NOINTERFACE;
|
|
}
|
|
|
|
|
|
void STDMETHODCALLTYPE D3D11ClassLinkage::GetDevice(ID3D11Device** ppDevice) {
|
|
*ppDevice = m_device.ref();
|
|
}
|
|
|
|
|
|
HRESULT STDMETHODCALLTYPE D3D11ClassLinkage::CreateClassInstance(
|
|
LPCSTR pClassTypeName,
|
|
UINT ConstantBufferOffset,
|
|
UINT ConstantVectorOffset,
|
|
UINT TextureOffset,
|
|
UINT SamplerOffset,
|
|
ID3D11ClassInstance **ppInstance) {
|
|
InitReturnPtr(ppInstance);
|
|
|
|
Logger::err("D3D11ClassLinkage::CreateClassInstance: Not implemented yet");
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
|
|
HRESULT STDMETHODCALLTYPE D3D11ClassLinkage::GetClassInstance(
|
|
LPCSTR pClassInstanceName,
|
|
UINT InstanceIndex,
|
|
ID3D11ClassInstance **ppInstance) {
|
|
Logger::err("D3D11ClassLinkage::GetClassInstance: Not implemented yet");
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
}
|