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 >
153 unsigned int registeredMeshColorCodingStages = 0;
154 unsigned int enabledOccludedStages = 0;
155 for(
auto stageItr = stages.begin(); stageItr != stages.end(); ++stageItr )
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...
void appendStage(RenderStage *stage)
Appends stage to the rendering stages sequence.
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...
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.
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...
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.
void record(Severity severity, const std::string &entry) const
Instructs current writer to write entry with severity.
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.