#pragma once #include #include #include #include namespace XCEngine::UI::Editor::Rendering::Host { class ViewportRenderHost { public: virtual ~ViewportRenderHost() = default; [[nodiscard]] virtual ::XCEngine::RHI::RHIDevice* GetRHIDevice() const = 0; [[nodiscard]] virtual std::uint32_t GetViewportResourceRetirementSlotCount() const = 0; virtual bool TryGetActiveViewportResourceRetirementSlot(std::uint32_t& outSlot) const = 0; virtual bool CreateViewportTextureHandle( ::XCEngine::RHI::RHITexture& texture, std::uint32_t width, std::uint32_t height, ::XCEngine::UI::UITextureHandle& outTexture) = 0; virtual void ReleaseViewportTextureHandle( ::XCEngine::UI::UITextureHandle& texture) = 0; }; } // namespace XCEngine::UI::Editor::Rendering::Host