Class Pipeline

Inheritance Relationships

Derived Type

Class Documentation

class Pipeline

Immutable noncopyable pipeline metadata plus a backend-owned executable implementation.

See also

Rendering guide

Subclassed by CE::Rendering::OpenGL::Pipeline

Public Functions

virtual ~Pipeline()

Release the pipeline generation; retained materials/frames keep their own ownership until released.

Pipeline(const Pipeline&) = delete
Pipeline &operator=(const Pipeline&) = delete
inline const CE::Rendering::Pipelines::Definition &definition() const

Declaration: [[nodiscard]]

Returns:

Borrowed immutable recipe; keep this pipeline alive while using the reference. This is CPU metadata, not a native bind.

void validate_draw(const CE::Rendering::Geometry::Buffer2D &geometry, std::size_t first_vertex, std::size_t vertex_count, const CE::Rendering::Pipelines::PassConstraints2D &constraints) const

Validate CPU layout/topology, range, primitive completeness and pass-state compatibility.

Parameters:
  • geometry – Stable uploaded metadata borrowed for this call.

  • first_vertex – Zero-based first vertex.

  • vertex_count – Nonzero number of vertices inside the upload; triangles require multiples of three, strips at least three.

  • constraints – Required fixed-state choices; absent constraints impose no requirement.

Throws:

CE::Exceptions::invalid_args – If metadata/range/state does not match. No native domain, context, program or image checks occur; inputs remain unchanged.

Protected Functions

explicit Pipeline(CE::Rendering::Pipelines::Definition definition)

Validate and retain an owned CPU recipe snapshot.

Parameters:

definition – Copied/moved program-source, state, layout and public parameter contract.

Throws:

CE::Exceptions::invalid_args – If common structural validation rejects the recipe. Native compilation/reflection belongs to the derived backend constructor.