12 #ifndef FRAMERENDERERHELPER_H_6014714286
13 #define FRAMERENDERERHELPER_H_6014714286
15 #include <Carna/Carna.h>
77 template<
typename RenderStageOrder >
83 std::set< base::RenderStage*, RenderStageOrder > stages;
117 void commit(
bool clear =
true );
122 template<
typename RenderStageOrder >
124 : renderer( renderer )
129 template<
typename RenderStageOrder >
136 template<
typename RenderStageOrder >
139 std::for_each( stages.begin(), stages.end(), std::default_delete< base::RenderStage >() );
144 template<
typename RenderStageOrder >
149 renderer.clearStages();
153 unsigned int registeredMeshColorCodingStages = 0;
154 unsigned int enabledOccludedStages = 0;
155 for(
auto stageItr = stages.begin(); stageItr != stages.end(); ++stageItr )
158 renderer.appendStage( rs );
160 if( mccs ==
nullptr )
164 if( occluded ==
nullptr )
170 if( meshRenderer !=
nullptr && mccs !=
nullptr )
174 ++registeredMeshColorCodingStages;
176 if( meshRenderer !=
nullptr && occluded !=
nullptr )
179 ++enabledOccludedStages;
183 ,
"FrameRendererHelper registered "
184 + base::text::lexical_cast< std::string >( registeredMeshColorCodingStages )
185 +
" stage(s) for color coding." );
187 ,
"FrameRendererHelper enabled "
188 + base::text::lexical_cast< std::string >( enabledOccludedStages )
189 +
" stage(s) for occluded rendering." );
194 template<
typename RenderStageOrder >
209 #endif // FRAMERENDERERHELPER_H_6014714286
Defines default rendering stages order used by FrameRendererHelper.
void enableStage(const base::RenderStage &rs)
Enables rs in .
Implements a simple interface for mapping frame coordinates to base::Mesh objects.
Defines Carna::base::text.
void putGeometryType(unsigned int geometryType, unsigned int meshRole)
Activates geometryType. Meshes with meshRole attached to geometry nodes with geometryType will be pro...
Indicates messages that might be of interest when searching bugs.
Defines Carna::base::GLContext.
void enableMaterials(unsigned int geometryType, unsigned int materialRole)
Enables support for materials if geometryType has been activated or will be activated later...
void record(Severity severity, const std::string &entry) const
Instructs current writer to write entry with severity.
Defines Carna::base::Log.
Defines Carna::presets::MeshColorCodingStage.
static const unsigned int ROLE_DEFAULT_MATERIAL
Identifies the Material object that MeshRenderingStage uses for rendering.
static Log & instance()
Returns the only instance from class InstanceType.
void reset()
Resets changes that have been made since the last invocation of commit.
base::RenderStageSequence & renderer
References the configured renderer.
Renders geometry that is actually depth-occluded. The occluded geometry is rendered with reduced opac...
~FrameRendererHelper()
Deletes.
Base abstract class of each rendering stage. Refer to the documentation of the rendering process...
Defines Carna::base::MeshRenderingStage.
Defines MeshRenderingStage class template instance invariants.
Defines Carna::base::RenderStageSequence.
FrameRendererHelper< RenderStageOrder > & operator<<(base::RenderStage *rs)
Takes possession of rs and adds it to the renderer when commit is invoked.
void commit(bool clear=true)
Commits recorded changes to the associated renderer. Removes all previosly committed stages if clear ...
Defines Carna::presets::OccludedRenderingStage.
static const unsigned int ROLE_DEFAULT_MESH
Identifies the Mesh object that MeshRenderingStage uses for rendering.
FrameRendererHelper(base::RenderStageSequence &renderer)
Instantiates helper for renderer.
const unsigned int geometryType
Holds the geometry type rendered by this MeshRenderingStage.
Defines Carna::base::RenderStage.
#define NON_COPYABLE
Features class it is placed in as non-copyable.
Adds rendering stages to a base::FrameRenderer object according to RenderStageOrder.
Represents a rendering stages sequence.