Class ResourceProvider

Inheritance Relationships

Base Types

Class Documentation

class ResourceProvider : public CE::Rendering::Resources::Provider, private CE::Assets::Shaders::Builder

Declaration: final

Translate backend-neutral resource requests into OpenGL images, buffers, and programs.

Calls require the rendering context current on the calling thread; CPU data is copied during construction and need not outlive each call.

Public Functions

inline explicit ResourceProvider(Renderer &renderer)
inline virtual CE::Assets::Shaders::Builder *shader_asset_builder() noexcept override

Declaration: [[nodiscard]]

virtual std::shared_ptr<CE::Rendering::Resources::Image> create_image(const CE::Assets::Images::Decoded &image) override

Declaration: [[nodiscard]]

virtual std::shared_ptr<const CE::Rendering::Sampling::Sampler> create_sampler(const CE::Rendering::Sampling::Options &options) override

Declaration: [[nodiscard]]

virtual std::shared_ptr<CE::Rendering::Resources::Image> create_font_atlas(std::span<const unsigned char> alpha, CE::Rendering::Geometry::PixelSize size) override

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) override

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) override

Declaration: [[nodiscard]]

Declaration: [[nodiscard]]

std::shared_ptr<const Pipeline> build_pipeline(CE::Rendering::Pipelines::Definition definition, const PipelineBindings &bindings)

Declaration: [[nodiscard]]

std::shared_ptr<const CE::Rendering::Resources::Material> build_material(CE::Rendering::Materials::Definition definition)

Declaration: [[nodiscard]]

std::shared_ptr<CE::Rendering::Geometry::Buffer2D> upload_geometry(std::shared_ptr<CE::Rendering::Geometry::Vertex2D> vertices, std::uint32_t vertex_count, CE::Rendering::Geometry::Topology topology)

Declaration: [[nodiscard]]