15#ifndef RENDERSTAGE_H_6014714286
16#define RENDERSTAGE_H_6014714286
51 const std::unique_ptr< Details > pimpl;
Contains forward-declarations.
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.
RenderStage()
Instantiates in enabled-state.
void setEnabled(bool)
Sets whether this stage is enabled. Disabled stages are not rendered by render tasks.
bool isInitialized() const
Tells whether this stage is ready for rendering.
virtual ~RenderStage()
Deletes.
bool isViewTransformFixed() const
Tells whether the view transform is pass-invariant for the duration of a single frame.
base::FrameRenderer & renderer()
References the renderer this stage belongs to.
void removeRenderStageListener(RenderStageListener &listener)
Removes listener from the set of listeners this instance notifies in .
virtual void renderPass(const math::Matrix4f &viewTransform, RenderTask &rt, const Viewport &vp)=0
Called once per pass.
virtual void prepareFrame(Node &root)
Called once before each frame.
const base::FrameRenderer & renderer() const
void setViewTransformFixed(bool viewTransformFixed)
Sets 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 width and height.
bool isEnabled() const
Tells whether this stage is enabled. Disabled stages are not rendered by render tasks.
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 LibCarna::base::math namespace and LIBCARNA_FOR_VECTOR3UI.
Eigen::Matrix< float, 4, 4, Eigen::ColMajor > Matrix4f
Defines matrix.
Defines LibCarna::base::noncopyable and NON_COPYABLE.
#define NON_COPYABLE
Marks the class that it is placed in as non-copyable.