#pragma once #include "RHIEnums.h" #include namespace XCEngine { namespace RHI { class RHIDescriptorSet; struct DescriptorSetLayoutDesc; struct DescriptorPoolDesc { void* device; DescriptorHeapType type; uint32_t descriptorCount; bool shaderVisible; }; class RHIDescriptorPool { public: virtual ~RHIDescriptorPool() = default; virtual bool Initialize(const DescriptorPoolDesc& desc) = 0; virtual void Shutdown() = 0; virtual void* GetNativeHandle() = 0; virtual uint32_t GetDescriptorCount() const = 0; virtual DescriptorHeapType GetType() const = 0; virtual RHIDescriptorSet* AllocateSet(const DescriptorSetLayoutDesc& layout) = 0; virtual void FreeSet(RHIDescriptorSet* set) = 0; }; } // namespace RHI } // namespace XCEngine