Files
XCEngine/editor/app/Rendering/Host/ViewportRenderHost.h

28 lines
906 B
C
Raw Normal View History

#pragma once
#include <XCEngine/RHI/RHIDevice.h>
#include <XCEngine/RHI/RHITexture.h>
#include <XCEngine/UI/Types.h>
#include <cstdint>
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