Remove IRHIDevice inheritance from D3D12Device
- D3D12Device no longer inherits from IRHIDevice interface - Removed interface factory methods (CreateCommandQueue, CreateCommandList, etc.) - Keep concrete D3D12-specific methods (Initialize, Shutdown, GetDevice, etc.) - This is the first step to decouple RHI abstraction from D3D12 backend
This commit is contained in:
@@ -44,7 +44,7 @@ struct AdapterInfo {
|
||||
bool isSoftware;
|
||||
};
|
||||
|
||||
class D3D12Device : public IRHIDevice {
|
||||
class D3D12Device {
|
||||
public:
|
||||
D3D12Device();
|
||||
~D3D12Device();
|
||||
@@ -65,29 +65,29 @@ public:
|
||||
void SetDeviceRemoved() { m_isDeviceRemoved = true; }
|
||||
bool IsDeviceRemoved() const { return m_isDeviceRemoved; }
|
||||
|
||||
// IRHIDevice implementation
|
||||
ICommandQueue* CreateCommandQueue(const CommandQueueDesc& desc) override;
|
||||
ICommandList* CreateCommandList(const CommandListDesc& desc) override;
|
||||
ICommandAllocator* CreateCommandAllocator(const CommandAllocatorDesc& desc) override;
|
||||
IFence* CreateFence(const FenceDesc& desc) override;
|
||||
IDescriptorHeap* CreateDescriptorHeap(const DescriptorHeapDesc& desc) override;
|
||||
IQueryHeap* CreateQueryHeap(const QueryHeapDesc& desc) override;
|
||||
IRootSignature* CreateRootSignature(const RootSignatureDesc& desc) override;
|
||||
IPipelineState* CreatePipelineState(const PipelineStateDesc& desc) override;
|
||||
ISampler* CreateSampler(const SamplerDesc& desc) override;
|
||||
ITexture* CreateTexture(const TextureDesc& desc) override;
|
||||
IBuffer* CreateBuffer(const BufferDesc& desc) override;
|
||||
ISwapChain* CreateSwapChain(const SwapChainDesc& desc) override;
|
||||
IShader* CompileShader(const ShaderCompileDesc& desc) override;
|
||||
// Factory methods
|
||||
ICommandQueue* CreateCommandQueue(const CommandQueueDesc& desc);
|
||||
ICommandList* CreateCommandList(const CommandListDesc& desc);
|
||||
ICommandAllocator* CreateCommandAllocator(const CommandAllocatorDesc& desc);
|
||||
IFence* CreateFence(const FenceDesc& desc);
|
||||
IDescriptorHeap* CreateDescriptorHeap(const DescriptorHeapDesc& desc);
|
||||
IQueryHeap* CreateQueryHeap(const QueryHeapDesc& desc);
|
||||
IRootSignature* CreateRootSignature(const RootSignatureDesc& desc);
|
||||
IPipelineState* CreatePipelineState(const PipelineStateDesc& desc);
|
||||
ISampler* CreateSampler(const SamplerDesc& desc);
|
||||
ITexture* CreateTexture(const TextureDesc& desc);
|
||||
IBuffer* CreateBuffer(const BufferDesc& desc);
|
||||
ISwapChain* CreateSwapChain(const SwapChainDesc& desc);
|
||||
IShader* CompileShader(const ShaderCompileDesc& desc);
|
||||
|
||||
IRenderTargetView* CreateRenderTargetView(IBuffer* resource, const RenderTargetViewDesc& desc) override;
|
||||
IDepthStencilView* CreateDepthStencilView(IBuffer* resource, const DepthStencilViewDesc& desc) override;
|
||||
IShaderResourceView* CreateShaderResourceView(IBuffer* resource, const ShaderResourceViewDesc& desc) override;
|
||||
IUnorderedAccessView* CreateUnorderedAccessView(IBuffer* resource, const UnorderedAccessViewDesc& desc) override;
|
||||
IConstantBufferView* CreateConstantBufferView(IBuffer* resource, const ConstantBufferViewDesc& desc) override;
|
||||
IRenderTargetView* CreateRenderTargetView(IBuffer* resource, const RenderTargetViewDesc& desc);
|
||||
IDepthStencilView* CreateDepthStencilView(IBuffer* resource, const DepthStencilViewDesc& desc);
|
||||
IShaderResourceView* CreateShaderResourceView(IBuffer* resource, const ShaderResourceViewDesc& desc);
|
||||
IUnorderedAccessView* CreateUnorderedAccessView(IBuffer* resource, const UnorderedAccessViewDesc& desc);
|
||||
IConstantBufferView* CreateConstantBufferView(IBuffer* resource, const ConstantBufferViewDesc& desc);
|
||||
|
||||
void GetDeviceInfo(DeviceInfo& info) const override;
|
||||
void* GetNativeHandle() const override;
|
||||
void GetDeviceInfo(DeviceInfo& info) const;
|
||||
void* GetNativeHandle() const;
|
||||
|
||||
private:
|
||||
bool CreateDXGIFactory(bool enableDebugLayer);
|
||||
|
||||
Reference in New Issue
Block a user