Struct Provider
Defined in File resource-provider.h
Inheritance Relationships
Derived Type
public CE::Rendering::OpenGL::ResourceProvider(Class ResourceProvider)
Struct Documentation
-
struct Provider
Creates resources in one selected backend domain.
Uploads obey that backend’s owner-thread/current-context rules and copy transient CPU data before returning; returned handles do not borrow pixel/vertex storage. Uploaded contents are immutable for retained frames. A changed image or geometry requires a new handle and explicit publication by its owner. There is no generic in-place update, atomic batch, or residency-budget API. Global asset managers permit one active provider/loading owner; constructing another Loader does not create an independent cache/resource domain. Logical shared handles may outlive cache/provider teardown, but native use requires their original live backend domain. Final release follows backend retirement; it is not a promise of immediate native deletion.
Subclassed by CE::Rendering::OpenGL::ResourceProvider
Public Functions
-
Provider() = default
-
virtual ~Provider()
-
inline CE::Diagnostics::DomainId diagnostic_id() const noexcept
Declaration:
[[nodiscard]]
-
inline virtual CE::Assets::Shaders::Builder *shader_asset_builder() noexcept
Declaration:
[[nodiscard]]
-
virtual std::shared_ptr<Image> load_image(const std::filesystem::path &file)
Declaration:
[[nodiscard]]
-
virtual std::shared_ptr<Image> create_image(const CE::Assets::Images::Decoded &image) = 0
Declaration:
[[nodiscard]]
-
virtual std::shared_ptr<const CE::Rendering::Sampling::Sampler> create_sampler(const CE::Rendering::Sampling::Options &options)
Declaration:
[[nodiscard]]
-
virtual std::shared_ptr<Image> create_font_atlas(std::span<const unsigned char> alpha, CE::Rendering::Geometry::PixelSize size) = 0
Declaration:
[[nodiscard]]
-
virtual std::shared_ptr<CE::Rendering::Geometry::Buffer2D> upload_geometry(std::span<const CE::Rendering::Geometry::Vertex2D> vertices, CE::Rendering::Geometry::Topology topology) = 0
Declaration:
[[nodiscard]]
-
virtual std::shared_ptr<CE::Rendering::Geometry::Buffer2D> upload_geometry(std::span<const CE::Rendering::Geometry::Vertex2DColor> vertices, CE::Rendering::Geometry::Topology topology)
Declaration:
[[nodiscard]]
Declaration:
[[nodiscard]]
-
Provider() = default