Class Frame

Class Documentation

class Frame

Declaration: final

One reusable storage slot.

Only the active passes are published; inactive pass objects keep their draw-vector capacity for later ticks. Runtime ownership must prevent writing or recycling while the renderer reads this frame. Frames are neither copyable nor movable; transfer slot ownership, not this object.

Public Functions

Frame() = default

Create an empty unpublished reusable slot; it owns no active passes.

Frame(const Frame&) = delete
Frame &operator=(const Frame&) = delete
Frame(Frame&&) = delete
Frame &operator=(Frame&&) = delete
inline std::span<const ::CE::Rendering::Pass> passes() const

Declaration: [[nodiscard]]

Returns:

Borrowed active passes only. Retain this frame and exclude writers/recycling for the entire read; outer-vector growth invalidates the span.

inline void recycle()

Release active draw handles/custom values and mark the slot empty while retaining vector capacity.

Call only after rendering or supersession excludes readers, on the resource-release owner required by the runtime/backend. Writers must not still use this slot; this operation does not synchronize or publish it.

Friends

friend class ::CE::Rendering::FrameWriter
friend class ::CE::Rendering::PassWriter