Files
XCEngine/new_editor/app/Ports/TexturePort.h

35 lines
944 B
C++

#pragma once
#include <XCEngine/UI/Types.h>
#include <cstddef>
#include <cstdint>
#include <filesystem>
#include <string>
namespace XCEngine::UI::Editor::Ports {
class TexturePort {
public:
virtual ~TexturePort() = 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::Ports