#pragma once #ifndef NOMINMAX #define NOMINMAX #endif #include #include #include namespace XCEngine::UI::Editor::Host { class ShaderResourceDescriptorAllocator { public: virtual ~ShaderResourceDescriptorAllocator() = default; virtual bool Initialize(::XCEngine::RHI::RHIDevice& device, UINT descriptorCount = 64u) = 0; virtual void Shutdown() = 0; [[nodiscard]] virtual bool IsInitialized() const = 0; virtual bool CreateTextureDescriptor( ::XCEngine::RHI::RHITexture* texture, D3D12_CPU_DESCRIPTOR_HANDLE* outCpuHandle, D3D12_GPU_DESCRIPTOR_HANDLE* outGpuHandle) = 0; virtual void Free( D3D12_CPU_DESCRIPTOR_HANDLE cpuHandle, D3D12_GPU_DESCRIPTOR_HANDLE gpuHandle) = 0; }; } // namespace XCEngine::UI::Editor::Host