Files
XCEngine/editor/app/Rendering/Host/UiTextureHost.h
2026-04-25 16:46:01 +08:00

35 lines
968 B
C++

#pragma once
#include <XCEngine/UI/Types.h>
#include <cstddef>
#include <cstdint>
#include <filesystem>
#include <string>
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