Point Cloud Viewer  1.00
A Viewer to display point clouds with phong shading by converting them to splats.
RenderPass Class Referenceabstract

An abstract class for Render Passes. More...

#include <renderpass.h>

Inherited by AttributePass, LightPass, ShadingPass, and VisibilityPass.

Classes

class  TextureChannel
 This channel is used to link textures or data maps. More...
 
class  VaoChannel
 This channel is used to link geometry. More...
 

Public Member Functions

virtual ~RenderPass ()
 Calls cleanup() More...
 
virtual void render ()=0
 Uses the input data to generate the output. More...
 
virtual void cleanup ()=0
 Resets the Render Pass to the state after creation but before initialization. More...
 
virtual void updateResolution ()=0
 Must be called after the screen resolution has changed. More...
 
virtual void removeInput ()=0
 Removes all input channels except for VaoChannels. If the Render Pass uses VaoChannels as input use the provided clearObjectInput() function to remove all VaoChannels.
 

Static Public Member Functions

static void cleanupHelpers ()
 Removes helper variables. More...
 

Protected Member Functions

template<class C >
bool helperMultiChannelContains (std::list< C * > &list, C &channel)
 
template<class C >
void helperMultiChannelAdd (std::list< C * > &list, C &channel)
 
template<class C >
bool helperMultiChannelRemove (std::list< C * > &list, C &channel)
 
template<class C >
void helperMultiChannelClean (std::list< C * > &list)
 
template<class C >
void helperMultiChannelClear (std::list< C * > &list)
 

Static Protected Member Functions

static bool loadShader (std::string &path, GLuint id)
 
static bool noGlErrors ()
 
static bool checkFbo ()
 
static void drawUnitQuad ()
 

Detailed Description

An abstract class for Render Passes.

A Render Pass takes some input data and uses the GPU to generate an output. The output is encapsuled in Channels that can be used as input for other Render Passes. To set up a Render Pass connect output Channels of other Render Passes to it, set all other needed data (e.g. modelMatrix) and define what should happen with the output (draw to screen or link it to another RenderPass).

Call the getter functions for the channels only to connect them to another Render Pass, like attributePass.setDepthMapInput(visibilityPass.getDepthMapOutput());

Constructor & Destructor Documentation

RenderPass::~RenderPass ( )
virtual

Calls cleanup()

Might use OpenGL calls.

Member Function Documentation

virtual void RenderPass::cleanup ( )
pure virtual

Resets the Render Pass to the state after creation but before initialization.

Might use OpenGL calls. If no other instances of this Render Pass are currently initialized the shader program is removed from the GPU.

Implemented in AttributePass, ShadingPass, VisibilityPass, and LightPass.

void RenderPass::cleanupHelpers ( )
static

Removes helper variables.

Call this to clear all static helper variables that are provided for RenderPass subclasses. If needed they are newly generated. Uses OpenGL calls.

virtual void RenderPass::render ( )
pure virtual

Uses the input data to generate the output.

Uses OpenGL calls if initialized.

Implemented in AttributePass, ShadingPass, VisibilityPass, and LightPass.

virtual void RenderPass::updateResolution ( )
pure virtual

Must be called after the screen resolution has changed.

Might use OpenGL calls.

Implemented in AttributePass, LightPass, ShadingPass, and VisibilityPass.


The documentation for this class was generated from the following files: