#pragma once #include #include #include #include #include namespace XCEngine::UI::Editor::Rendering::Host { class UiTextureHost { public: virtual ~UiTextureHost() = default; virtual bool LoadTextureFromFile( const std::filesystem::path& path, ::XCEngine::UI::UITextureHandle& outTexture, std::string& outError) = 0; virtual bool LoadTextureFromMemory( const std::uint8_t* data, std::size_t size, ::XCEngine::UI::UITextureHandle& outTexture, std::string& outError) = 0; virtual bool LoadTextureFromRgba( const std::uint8_t* rgbaPixels, std::uint32_t width, std::uint32_t height, ::XCEngine::UI::UITextureHandle& outTexture, std::string& outError) = 0; virtual void ReleaseTexture(::XCEngine::UI::UITextureHandle& texture) = 0; }; } // namespace XCEngine::UI::Editor::Rendering::Host