![]() |
LibCarna Version 3.4.0
|
Partially implements a rendering stage that uses at least one render queue for rendering geometry from the scene graph. More...
#include <GeometryStage.hpp>
Public Member Functions | |
GeometryStage (unsigned int geometryType, unsigned int geometryTypeMask=RenderQueue< RenderableCompare >::EXACT_MATCH_GEOMETRY_TYPE_MASK) | |
Instantiates s.t. the predefined rendering queue enqueues such LibCarna::base::Geometry scene graph nodes, whose geometry type AND-linked with geometryTypeMask equals the geometryType specified here. | |
virtual | ~GeometryStage () |
Releases acquired video resources. | |
virtual void | prepareFrame (Node &root) override |
Called once before each frame. | |
virtual void | renderPass (const math::Matrix4f &viewTransform, RenderTask &rt, const Viewport &vp) override |
Called once per pass. | |
std::size_t | renderedPassesCount () const |
Tells the number of passes rendered so far since the beginning of the current frame. | |
template<typename GeometryFeatureType > | |
GeometryFeatureType::ManagedInterface & | videoResource (GeometryFeatureType &geometryFeature) const |
Interfaces the geometryFeature video resources that were acquired by this rendering stage. | |
template<typename GeometryFeatureType > | |
const GeometryFeatureType::ManagedInterface & | videoResource (const GeometryFeatureType &geometryFeature) const |
![]() | |
RenderStage () | |
Instantiates in enabled-state. | |
virtual | ~RenderStage () |
Deletes. | |
void | setViewTransformFixed (bool viewTransformFixed) |
Sets whether the view transform is pass-invariant for the duration of a single frame. | |
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 width and height. | |
bool | isInitialized () const |
Tells whether this stage is ready for rendering. | |
bool | isEnabled () const |
Tells whether this stage is enabled. Disabled stages are not rendered by render tasks. | |
void | setEnabled (bool) |
Sets whether this stage is enabled. Disabled stages are not rendered by render tasks. | |
base::FrameRenderer & | renderer () |
References the renderer this stage belongs to. | |
const base::FrameRenderer & | renderer () const |
void | addRenderStageListener (RenderStageListener &listener) |
Adds listener to the set of listeners this instance notifies in \(\mathcal O\left(\log n\right)\). | |
void | removeRenderStageListener (RenderStageListener &listener) |
Removes listener from the set of listeners this instance notifies in \(\mathcal O\left(\log n\right)\). | |
Public Attributes | |
const unsigned int | geometryType |
Renders such geometries whose type AND-linked with geometryTypeMask equals this. | |
const unsigned int | geometryTypeMask |
Renders such geometries whose type AND-linked with this equals geometryType. | |
Protected Member Functions | |
void | activateGLContext () const |
Ensures that the OpenGL context of the hosting LibCarna::base::FrameRenderer is the current one. | |
virtual void | buildRenderQueues (Node &root, const math::Matrix4f &viewTransform) |
Builds the rendering queues of this stage. | |
virtual void | rewindRenderQueues () |
Rewinds the rendering queues of this stage. | |
virtual void | updateRenderQueues (const math::Matrix4f &viewTransform) |
Recomputes the model-view transforms of the renderables enqueued by this stage. | |
virtual void | render (const Renderable &renderable)=0 |
Renders the renderable. | |
Protected Attributes | |
RenderQueue< RenderableCompare > | rq |
Holds the predefined rendering queue of this rendering stage. | |
Partially implements a rendering stage that uses at least one render queue for rendering geometry from the scene graph.
RenderableCompare | Defines partial order of renderables that is applied to the predefined rendering queue of this stage. Set this to void if no particular order is required. |
Override updateRenderQueues and rewindRenderQueues if you require further rendering queues.
Definition at line 62 of file GeometryStage.hpp.
LibCarna::base::GeometryStage< RenderableCompare >::GeometryStage | ( | unsigned int | geometryType, |
unsigned int | geometryTypeMask = RenderQueue< RenderableCompare >::EXACT_MATCH_GEOMETRY_TYPE_MASK |
||
) |
Instantiates s.t. the predefined rendering queue enqueues such LibCarna::base::Geometry scene graph nodes, whose geometry type AND-linked with geometryTypeMask equals the geometryType specified here.
Definition at line 155 of file GeometryStage.hpp.
|
virtual |
Releases acquired video resources.
Definition at line 166 of file GeometryStage.hpp.
|
protected |
Ensures that the OpenGL context of the hosting LibCarna::base::FrameRenderer is the current one.
Definition at line 182 of file GeometryStage.hpp.
|
protectedvirtual |
Builds the rendering queues of this stage.
Reimplemented in LibCarna::presets::CuttingPlanesStage.
Definition at line 208 of file GeometryStage.hpp.
|
overridevirtual |
Called once before each frame.
Reimplemented from LibCarna::base::RenderStage.
Definition at line 192 of file GeometryStage.hpp.
|
protectedpure virtual |
std::size_t LibCarna::base::GeometryStage< RenderableCompare >::renderedPassesCount | ( | ) | const |
Tells the number of passes rendered so far since the beginning of the current frame.
Definition at line 201 of file GeometryStage.hpp.
|
overridevirtual |
Called once per pass.
If this rendering stage maintains one or more LibCarna::base::RenderQueue objects, than this is the right place to build them. Note that the queues need to be rebuilt only once per frame and not per pass, unless isViewTransformFixed is false
. If it is true
and this is not the first invocation of this method since the last time prepareFrame was called, rewinding the queue will be sufficient.
Implements LibCarna::base::RenderStage.
Reimplemented in LibCarna::presets::CuttingPlanesStage, LibCarna::presets::DRRStage, LibCarna::presets::DVRStage, LibCarna::presets::MaskRenderingStage, LibCarna::presets::MeshColorCodingStage, LibCarna::presets::MIPStage, LibCarna::presets::TransparentRenderingStage, LibCarna::presets::VolumeRenderingStage, LibCarna::base::MeshRenderingStage< RenderableCompare >, and LibCarna::base::MeshRenderingStage< base::Renderable::BackToFront >.
Definition at line 229 of file GeometryStage.hpp.
|
protectedvirtual |
Rewinds the rendering queues of this stage.
Reimplemented in LibCarna::presets::CuttingPlanesStage.
Definition at line 215 of file GeometryStage.hpp.
|
protectedvirtual |
Recomputes the model-view transforms of the renderables enqueued by this stage.
Reimplemented in LibCarna::presets::CuttingPlanesStage.
Definition at line 222 of file GeometryStage.hpp.
const GeometryFeatureType::ManagedInterface & LibCarna::base::GeometryStage< RenderableCompare >::videoResource | ( | const GeometryFeatureType & | geometryFeature | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 309 of file GeometryStage.hpp.
GeometryFeatureType::ManagedInterface & LibCarna::base::GeometryStage< RenderableCompare >::videoResource | ( | GeometryFeatureType & | geometryFeature | ) | const |
Interfaces the geometryFeature video resources that were acquired by this rendering stage.
Definition at line 298 of file GeometryStage.hpp.
const unsigned int LibCarna::base::GeometryStage< RenderableCompare >::geometryType |
Renders such geometries whose type AND-linked with geometryTypeMask equals this.
Definition at line 90 of file GeometryStage.hpp.
const unsigned int LibCarna::base::GeometryStage< RenderableCompare >::geometryTypeMask |
Renders such geometries whose type AND-linked with this equals geometryType.
Definition at line 91 of file GeometryStage.hpp.
|
protected |
Holds the predefined rendering queue of this rendering stage.
Definition at line 76 of file GeometryStage.hpp.
Written by Leonid Kostrykin © 2021–2025. Based on Carna (© 2010-2016).
Documentation generated by Doxygen