12#ifndef RENDERSTAGE_H_6014714286
13#define RENDERSTAGE_H_6014714286
15#include <Carna/Carna.h>
48 const std::unique_ptr< Details > pimpl;
Represents an association.
Defines logic for rendering frames from given scenes.
Defines the inner node of a scene graph. Implements a spatial scene element that is allowed to have c...
Defines callbacks for RenderStage lifetime events.
Base abstract class of each rendering stage. Refer to the documentation of the rendering process.
virtual ~RenderStage()
Deletes.
bool isViewTransformFixed() const
Tells whether the view transform is pass-invariant for the duration of a single frame.
virtual void reshape(FrameRenderer &fr, unsigned int width, unsigned int height)
Orders this stage to reshape its buffers according to the specified dimensions.
virtual void prepareFrame(Node &root)
Called once before each frame.
void setEnabled(bool)
Sets whether this stage is enabled. Disabled stages are not rendered by render tasks.
const base::FrameRenderer & renderer() const
bool isEnabled() const
Tells whether this stage is enabled. Disabled stages are not rendered by render tasks.
void setViewTransformFixed(bool viewTransformFixed)
Sets whether the view transform is pass-invariant for the duration of a single frame.
RenderStage()
Instantiates in enabled-state.
virtual RenderStage * clone() const =0
Returns same RenderStage implementation with same configuration.
bool isInitialized() const
Tells whether this stage is ready for rendering.
base::FrameRenderer & renderer()
References the renderer this stage belongs to.
virtual void renderPass(const math::Matrix4f &viewTransform, RenderTask &rt, const Viewport &vp)=0
Called once per pass.
void removeRenderStageListener(RenderStageListener &listener)
Removes listener from the set of listeners this instance notifies in .
void addRenderStageListener(RenderStageListener &listener)
Adds listener to the set of listeners this instance notifies in .
Invokes the rendering stages of the frame renderer successively.
Defines a rendering viewport. The viewport is a property of the current OpenGL context.
Defines Carna::base::math namespace and CARNA_FOR_VECTOR3UI.
Eigen::Matrix< float, 4, 4, Eigen::ColMajor > Matrix4f
Defines matrix.
#define NON_COPYABLE
Features class it is placed in as non-copyable.