48 lines
1.1 KiB
C++
48 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include "Enums.h"
|
|
#include "Types.h"
|
|
|
|
namespace XCEngine {
|
|
namespace RHI {
|
|
|
|
class IDescriptorHeap {
|
|
public:
|
|
virtual ~IDescriptorHeap() = default;
|
|
virtual CPUDescriptorHandle GetCPUDescriptorHandle(uint32_t index) = 0;
|
|
virtual GPUDescriptorHandle GetGPUDescriptorHandle(uint32_t index) = 0;
|
|
virtual uint32_t GetDescriptorCount() const = 0;
|
|
virtual DescriptorType GetType() const = 0;
|
|
};
|
|
|
|
class IQueryHeap {
|
|
public:
|
|
virtual ~IQueryHeap() = default;
|
|
virtual void* GetNativeHandle() const = 0;
|
|
virtual QueryType GetType() const = 0;
|
|
virtual uint32_t GetCount() const = 0;
|
|
};
|
|
|
|
class IRootSignature {
|
|
public:
|
|
virtual ~IRootSignature() = default;
|
|
virtual void* GetNativeHandle() const = 0;
|
|
virtual uint32_t GetParameterCount() const = 0;
|
|
};
|
|
|
|
class IPipelineState {
|
|
public:
|
|
virtual ~IPipelineState() = default;
|
|
virtual void* GetNativeHandle() const = 0;
|
|
virtual PipelineType GetType() const = 0;
|
|
};
|
|
|
|
class ISampler {
|
|
public:
|
|
virtual ~ISampler() = default;
|
|
virtual void* GetNativeHandle() const = 0;
|
|
};
|
|
|
|
} // namespace RHI
|
|
} // namespace XCEngine
|