12#ifndef RENDERSTAGESEQUENCE_H_0874895466
13#define RENDERSTAGESEQUENCE_H_0874895466
15#include <Carna/Carna.h>
48 const std::unique_ptr< Details > pimpl;
87 template<
typename RenderStage >
101template<
typename RenderStage >
104 for( std::size_t index = 0; index <
stages(); ++index )
Defines Carna::base::Aggregation.
Represents an aggregation, i.e. a weak reference.
Represents an association.
Represents a rendering stages sequence.
void appendStage(RenderStage *stage)
Appends stage to the rendering stages sequence.
RenderStage & stageAt(std::size_t position) const
References the stage at position within the rendering stages sequence.
RenderStageSequence()
Instantiates.
virtual ~RenderStageSequence()
Deletes all stages contained by the sequence.
void releaseStages()
Assumes that the ownership over all stages has been taken over by someone else. Clears the stages seq...
Aggregation< RenderStage > findStage() const
References the first RenderStage within the rendering stages sequence. This method performs a linear ...
std::size_t stages() const
Tells number of stages contained by the sequence.
virtual void clearStages()
Deletes all stages from the rendering stages sequence.
Base abstract class of each rendering stage. Refer to the documentation of the rendering process.
#define NON_COPYABLE
Features class it is placed in as non-copyable.