mirror of
https://github.com/EduApps-CDG/OpenDX
synced 2024-12-30 09:45:37 +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 <cstring>
|
||||||
|
|
||||||
#include "d3d11_buffer.h"
|
#include "d3d11_buffer.h"
|
||||||
|
#include "d3d11_class_linkage.h"
|
||||||
#include "d3d11_context.h"
|
#include "d3d11_context.h"
|
||||||
#include "d3d11_device.h"
|
#include "d3d11_device.h"
|
||||||
#include "d3d11_input_layout.h"
|
#include "d3d11_input_layout.h"
|
||||||
@ -795,8 +796,8 @@ namespace dxvk {
|
|||||||
|
|
||||||
|
|
||||||
HRESULT D3D11Device::CreateClassLinkage(ID3D11ClassLinkage** ppLinkage) {
|
HRESULT D3D11Device::CreateClassLinkage(ID3D11ClassLinkage** ppLinkage) {
|
||||||
Logger::err("D3D11Device::CreateClassLinkage: Not implemented");
|
*ppLinkage = ref(new D3D11ClassLinkage(this));
|
||||||
return E_NOTIMPL;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1185,10 +1186,8 @@ namespace dxvk {
|
|||||||
const void* pShaderBytecode,
|
const void* pShaderBytecode,
|
||||||
size_t BytecodeLength,
|
size_t BytecodeLength,
|
||||||
ID3D11ClassLinkage* pClassLinkage) {
|
ID3D11ClassLinkage* pClassLinkage) {
|
||||||
if (pClassLinkage != nullptr) {
|
if (pClassLinkage != nullptr)
|
||||||
Logger::err("D3D11Device::CreateShaderModule: Class linkage not supported");
|
Logger::warn("D3D11Device::CreateShaderModule: Class linkage not supported");
|
||||||
return E_INVALIDARG;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
*pShaderModule = D3D11ShaderModule(
|
*pShaderModule = D3D11ShaderModule(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user