mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-02-20 10:54:16 +01:00
[d3d11] Added class linkage stub, required for FX11 samples
This commit is contained in:
parent
3de427439b
commit
24feb7822d
53
src/d3d11/d3d11_class_linkage.cpp
Normal file
53
src/d3d11/d3d11_class_linkage.cpp
Normal file
@ -0,0 +1,53 @@
|
||||
#include "d3d11_class_linkage.h"
|
||||
#include "d3d11_device.h"
|
||||
|
||||
namespace dxvk {
|
||||
|
||||
D3D11ClassLinkage::D3D11ClassLinkage(
|
||||
D3D11Device* pDevice)
|
||||
: m_device(pDevice) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
D3D11ClassLinkage::~D3D11ClassLinkage() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
HRESULT D3D11ClassLinkage::QueryInterface(REFIID riid, void** ppvObject) {
|
||||
COM_QUERY_IFACE(riid, ppvObject, IUnknown);
|
||||
COM_QUERY_IFACE(riid, ppvObject, ID3D11DeviceChild);
|
||||
COM_QUERY_IFACE(riid, ppvObject, ID3D11ClassLinkage);
|
||||
|
||||
Logger::warn("D3D11ClassLinkage::QueryInterface: Unknown interface query");
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
|
||||
|
||||
void D3D11ClassLinkage::GetDevice(ID3D11Device** ppDevice) {
|
||||
*ppDevice = m_device.ref();
|
||||
}
|
||||
|
||||
|
||||
HRESULT D3D11ClassLinkage::CreateClassInstance(
|
||||
LPCSTR pClassTypeName,
|
||||
UINT ConstantBufferOffset,
|
||||
UINT ConstantVectorOffset,
|
||||
UINT TextureOffset,
|
||||
UINT SamplerOffset,
|
||||
ID3D11ClassInstance **ppInstance) {
|
||||
Logger::err("D3D11ClassLinkage::CreateClassInstance: Not implemented yet");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
|
||||
HRESULT D3D11ClassLinkage::GetClassInstance(
|
||||
LPCSTR pClassInstanceName,
|
||||
UINT InstanceIndex,
|
||||
ID3D11ClassInstance **ppInstance) {
|
||||
Logger::err("D3D11ClassLinkage::GetClassInstance: Not implemented yet");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
}
|
45
src/d3d11/d3d11_class_linkage.h
Normal file
45
src/d3d11/d3d11_class_linkage.h
Normal file
@ -0,0 +1,45 @@
|
||||
#pragma once
|
||||
|
||||
#include "d3d11_device_child.h"
|
||||
|
||||
namespace dxvk {
|
||||
|
||||
class D3D11Device;
|
||||
|
||||
// TODO implement properly
|
||||
class D3D11ClassLinkage : public D3D11DeviceChild<ID3D11ClassLinkage> {
|
||||
|
||||
public:
|
||||
|
||||
D3D11ClassLinkage(
|
||||
D3D11Device* pDevice);
|
||||
|
||||
~D3D11ClassLinkage();
|
||||
|
||||
HRESULT QueryInterface(
|
||||
REFIID riid,
|
||||
void** ppvObject) final;
|
||||
|
||||
void GetDevice(
|
||||
ID3D11Device **ppDevice) final;
|
||||
|
||||
HRESULT CreateClassInstance(
|
||||
LPCSTR pClassTypeName,
|
||||
UINT ConstantBufferOffset,
|
||||
UINT ConstantVectorOffset,
|
||||
UINT TextureOffset,
|
||||
UINT SamplerOffset,
|
||||
ID3D11ClassInstance **ppInstance);
|
||||
|
||||
HRESULT GetClassInstance(
|
||||
LPCSTR pClassInstanceName,
|
||||
UINT InstanceIndex,
|
||||
ID3D11ClassInstance **ppInstance);
|
||||
|
||||
private:
|
||||
|
||||
Com<D3D11Device> m_device;
|
||||
|
||||
};
|
||||
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
#include <cstring>
|
||||
|
||||
#include "d3d11_buffer.h"
|
||||
#include "d3d11_class_linkage.h"
|
||||
#include "d3d11_context.h"
|
||||
#include "d3d11_device.h"
|
||||
#include "d3d11_input_layout.h"
|
||||
@ -795,8 +796,8 @@ namespace dxvk {
|
||||
|
||||
|
||||
HRESULT D3D11Device::CreateClassLinkage(ID3D11ClassLinkage** ppLinkage) {
|
||||
Logger::err("D3D11Device::CreateClassLinkage: Not implemented");
|
||||
return E_NOTIMPL;
|
||||
*ppLinkage = ref(new D3D11ClassLinkage(this));
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
@ -1185,10 +1186,8 @@ namespace dxvk {
|
||||
const void* pShaderBytecode,
|
||||
size_t BytecodeLength,
|
||||
ID3D11ClassLinkage* pClassLinkage) {
|
||||
if (pClassLinkage != nullptr) {
|
||||
Logger::err("D3D11Device::CreateShaderModule: Class linkage not supported");
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
if (pClassLinkage != nullptr)
|
||||
Logger::warn("D3D11Device::CreateShaderModule: Class linkage not supported");
|
||||
|
||||
try {
|
||||
*pShaderModule = D3D11ShaderModule(
|
||||
|
Loading…
x
Reference in New Issue
Block a user