Developer Documentation
Renderer Class Reference
Inheritance diagram for Renderer:
LoggingInterface RenderInterface BaseInterface ACG::IRenderer LoggingInterface RenderInterface BaseInterface

Public Slots

QString version ()
 
QString version ()
 

Signals

void log (Logtype _type, QString _message)
 
void log (QString _message)
 
void log (Logtype _type, QString _message)
 
void log (QString _message)
 
- Signals inherited from BaseInterface
virtual void updateView ()
 Update current view in Main Application. More...
 
virtual void setSlotDescription (QString _slotName, QString _slotDescription, QStringList _parameters, QStringList _descriptions)
 Set a description for a public slot. More...
 
virtual void setRenderer (unsigned int _viewer, QString _rendererName)
 Set a renderer for the given viewer. More...
 
- Signals inherited from LoggingInterface
virtual void log (Logtype _type, QString _message)=0
 
virtual void log (QString _message)=0
 

Public Member Functions

QString name ()
 Return a name for the plugin. More...
 
QString description ()
 Return a description of what the plugin is doing. More...
 
QString name ()
 Return a name for the plugin. More...
 
QString description ()
 Return a description of what the plugin is doing. More...
 
QString renderObjectsInfo (bool _outputShaderInfo)
 Return a qstring of the current render objects. More...
 

Private Slots

void initializePlugin ()
 
void render (ACG::GLState *_glState, Viewer::ViewerProperties &_properties)
 
QString rendererName ()
 
void supportedDrawModes (ACG::SceneGraph::DrawModes::DrawMode &_mode)
 
QString checkOpenGL ()
 
void initializePlugin ()
 
void exit ()
 
void render (ACG::GLState *_glState, Viewer::ViewerProperties &_properties)
 
QString rendererName ()
 
void supportedDrawModes (ACG::SceneGraph::DrawModes::DrawMode &_mode)
 
QString checkOpenGL ()
 
- Private Slots inherited from BaseInterface
virtual void exit ()
 
virtual QString version ()
 Return a version string for your plugin. More...
 
- Private Slots inherited from RenderInterface
virtual void render (ACG::GLState *_glState, Viewer::ViewerProperties &_properties)
 rendering function More...
 

Additional Inherited Members

- Private Member Functions inherited from BaseInterface
virtual void noguiSupported ()
 
virtual ~BaseInterface ()
 Destructor.
 
virtual void blockScenegraphUpdates (bool _block)
 Tell the core to prevent scenegraph updates. More...
 
virtual void updatedObject (int _objectId)
 An object has been changed or added by this plugin. More...
 
virtual void updatedObject (int _identifier, const UpdateType &_type)
 An object has been changed or added by this plugin. More...
 
virtual void nodeVisibilityChanged (int _identifier)
 A scenegraph node has been shown or hidden. More...
 
virtual void getCurrentRenderer (unsigned int _viewer, QString &_rendererName)
 Get the current renderer for the given viewer. More...
 
- Private Member Functions inherited from RenderInterface
virtual ~RenderInterface ()
 Destructor.
 
virtual QAction * optionsAction ()
 Return options menu. More...
 
virtual void reloadShaders ()
 Reload any renderer specific shaders. More...
 
- Private Member Functions inherited from LoggingInterface
virtual ~LoggingInterface ()
 Destructor.
 
- Private Member Functions inherited from ACG::IRenderer
virtual void addRenderObject (RenderObject *_renderObject)
 Callback for the scenegraph nodes, which send new render objects via this function. More...
 
virtual void addLight (const LightData &_light)
 Callback for the scenegraph nodes, which send new lights to the renderer via this function. More...
 
virtual void addRenderObjectModifier (RenderObjectModifier *_mod)
 Callback for the scenegraph nodes, which adds a render object modifier to the renderer via this function. More...
 
virtual void removeRenderObjectModifier (RenderObjectModifier *_mod)
 Callback for the scenegraph nodes, which removes a render object modifier from the renderer. More...
 
void dumpRenderObjectsToFile (const char *_fileName, ACG::RenderObject **_sortedList=0) const
 Debugging function to dump list of render objects into a file. More...
 
virtual QString dumpCurrentRenderObjectsToString (ACG::RenderObject **_list=0, bool _outputShaders=false, std::vector< ACG::ShaderModifier *> *_modifiers=0)
 Outputs the current render objects to the string. More...
 
void setErrorDetectionLevel (int _level)
 Control error detection for checking render objects. More...
 
int getErrorDetectionLevel () const
 Get error detection level.
 
void setViewerID (int _viewerID)
 Set currently active viewer id. More...
 
void setCoreProfileMode (bool _enable)
 Tell renderer to use core or compatibility profile. More...
 
const RenderObjectRangegetCollectedSubtreeObjects () const
 
virtual void prepareRenderingPipeline (ACG::GLState *_glState, ACG::SceneGraph::DrawModes::DrawMode _drawMode, ACG::SceneGraph::BaseNode *_scenegraphRoot)
 Prepares renderer and OpenGL for any draw-related calls including. More...
 
virtual void collectRenderObjects (ACG::GLState *_glState, ACG::SceneGraph::DrawModes::DrawMode _drawMode, ACG::SceneGraph::BaseNode *_sceneGraphRoot)
 Traverse the scenegraph to collect render information. More...
 
void traverseRenderableNodes (ACG::GLState *_glState, ACG::SceneGraph::DrawModes::DrawMode _drawMode, ACG::SceneGraph::BaseNode &_node, const ACG::SceneGraph::Material &_mat)
 Scene graph traversal for render object collection. More...
 
virtual void sortRenderObjects ()
 Sort the renderobjects by priority. More...
 
virtual void renderObject (ACG::RenderObject *_obj, GLSL::Program *_prog=0, bool _constRenderStates=false, const std::vector< unsigned int > *_shaderModifiers=0)
 Render one renderobject. More...
 
virtual void bindObjectVBO (ACG::RenderObject *_obj, GLSL::Program *_prog)
 Binding VBOs (First state function) More...
 
virtual void bindObjectUniforms (ACG::RenderObject *_obj, GLSL::Program *_prog)
 Binding Uniforms (Second state function) More...
 
virtual void bindObjectRenderStates (ACG::RenderObject *_obj)
 Binding Render state (Third state function) More...
 
virtual void drawObject (ACG::RenderObject *_obj)
 Executes the opengl draw call for one object (Fourth function) More...
 
virtual void finishRenderingPipeline (bool _drawOverlay=true)
 Draw overlay objects and reset OpenGL state. More...
 
virtual void saveInputFbo ()
 Save input Fbo configuration (fbo id + viewport)
 
virtual void restoreInputFbo ()
 Restore the previously saved input Fbo configuration (fbo id + viewport)
 
virtual void saveActiveFbo (GLint *_outFboId, GLint *_outViewport, GLint *_outDrawBuffer) const
 Save active Fbo configuration (fbo id + viewport) More...
 
virtual void restoreFbo (GLint _fboId, const GLint *_outViewport, GLint _drawBuffer) const
 Restore a previously saved input Fbo configuration (fbo id + viewport) More...
 
virtual void clearInputFbo (const ACG::Vec4f &_clearColor)
 Clear input Fbo. More...
 
virtual void copyDepthToBackBuffer (GLuint _depthTex, float _scale=1.0f)
 Copy texture to depth buffer. More...
 
virtual void renderDepthMap (int _viewerID, int _width, int _height)
 Render the depth map of the scene. More...
 
int getNumRenderObjects () const
 Get the number of collected render objects (not including overlay objects or gl4.2 line objects)
 
int getNumLights () const
 Get the number of current light sources.
 
ACG::RenderObjectgetRenderObject (int i)
 Get render objects in the sorted list by index (not including overlay objects)
 
ACG::RenderObjectgetOverlayRenderObject (int i)
 Get render objects in the sorted list by index (only overlay objects)
 
ACG::RenderObjectgetLineGL42RenderObject (int i)
 Get render objects in the sorted list by index (only line objects rendered with gl4.2)
 
LightDatagetLight (int i)
 Get light by index.
 
const ACG::Vec3fgetGlobalAmbientScale () const
 Get global ambient light contribution from GL_LIGHT_MODEL_AMBIENT.
 
ACG::SceneGraph::BaseNodegetRenderObjectNode (int i)
 Get node that emitted the render object in the sorted list by index (not including overlay objects)
 
ACG::SceneGraph::BaseNodegetOverlayRenderObjectNode (int i)
 Get node that emitted the render object in the sorted list by index (only overlay objects)
 
void setLineThicknessRenderingGL42 (bool _enable)
 
- Private Attributes inherited from ACG::IRenderer
int numLights_
 Number of Lights.
 
LightData lights_ [SG_MAX_SHADER_LIGHTS]
 Light sources ( Filled by addLight() )
 
ACG::Vec3f globalLightModelAmbient_
 
std::vector< ACG::RenderObjectrenderObjects_
 array of renderobjects, filled by addRenderObject()
 
std::vector< int > sortListObjects_
 map sortedID -> original renderObjectID
 
std::vector< int > sortListOverlays_
 map sortedID -> original renderObjectID
 
std::vector< ACG::RenderObject * > sortedObjects_
 sorted list of renderobjects without overlay objects (sorted in rendering order)
 
std::vector< ACG::RenderObject * > overlayObjects_
 sorted list of overlay-only renderobjects (sorted in rendering order)
 
std::vector< ACG::RenderObjectModifier * > renderObjectModifiers_
 active render object modifiers
 
std::vector< ACG::SceneGraph::BaseNode * > renderObjectSource_
 source node that added the render object (map renderObjectID -> scenegraph node)
 
std::vector< ACG::SceneGraph::BaseNode * > overlayObjectSource_
 source node that added the overlay render object (map renderObjectID -> scenegraph node)
 
std::map< int, ACG::FBO * > depthMaps_
 
bool depthMapUsed_
 true if at least one renderobject requires a scene depthmap, false otherwise
 
int curViewerID_
 currently active viewer ID as specified in prepareRenderObjects()
 
GLMatrixf viewMatrix_
 view transform
 
Vec3f camPosWS_
 cam position in world-space
 
Vec3f camDirWS_
 direction the camera is looking to in world-space
 
GLint prevFbo_
 previous fbo
 
GLint prevDrawBuffer_
 previous drawbuffer target (ie GL_BACK, GL_COLOR_ATTACHMENTi...)
 
GLint prevViewport_ [4]
 previous viewport
 
bool prevFboSaved_
 flag indicating a that saveCurrentFbo() has been called prior restoreFbo()
 
GLint prevVAO_
 previously bound VAO
 
GLSL::ProgramdepthCopyShader_
 shader copies depth of the first front layer to the back buffer
 
int errorDetectionLevel_
 error-detection level for checking render objects
 
bool coreProfile_
 core profile mode
 
RenderObjectRange current_subtree_objects_
 
- Static Private Attributes inherited from ACG::IRenderer
static int maxClipDistances_ = -1
 max number of clip distance outputs in a vertex shader
 

Detailed Description

Definition at line 63 of file Renderer.hh.

Member Function Documentation

◆ description() [1/2]

QString Renderer::description ( )
inlinevirtual

Return a description of what the plugin is doing.

This function has to return a basic description of the plugin

Implements BaseInterface.

Definition at line 75 of file Renderer.hh.

◆ description() [2/2]

QString Renderer::description ( )
inlinevirtual

Return a description of what the plugin is doing.

This function has to return a basic description of the plugin

Implements BaseInterface.

Definition at line 83 of file Renderer.hh.

◆ name() [1/2]

QString Renderer::name ( )
inlinevirtual

Return a name for the plugin.

This Function has to return the name of the plugin.

Implements BaseInterface.

Definition at line 74 of file Renderer.hh.

◆ name() [2/2]

QString Renderer::name ( )
inlinevirtual

Return a name for the plugin.

This Function has to return the name of the plugin.

Implements BaseInterface.

Definition at line 82 of file Renderer.hh.

◆ renderObjectsInfo()

QString Renderer::renderObjectsInfo ( bool  _outputShaderInfo)
inlinevirtual

Return a qstring of the current render objects.

In this function your plugin should return a list of the render objects (possibly with additional information). It can be used for debugging purposes.

The IRenderer class already has a function called dumpCurrentRenderObjectsToString() which can be used to implement this function.

Parameters
_outputShaderInfoOutput shader code along with the render objects
Returns
string of render objects

Reimplemented from RenderInterface.

Definition at line 80 of file Renderer.hh.


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