Gem Illuminator
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros
Public Slots | Signals | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
SceneRenderer Class Reference

The SceneRenderer class Renders the scene: Packs the scene in the buffer and draws the scene in as few render calls as possible. The SceneRenderer uses specialized Renderer for diffrent types of geometry. More...

#include <scenerenderer.h>

Inheritance diagram for SceneRenderer:

Public Slots

void paint (QOpenGLFunctions &gl, const QMatrix4x4 &viewProjection, const QHash< ShaderPrograms, QOpenGLShaderProgram * > &shaderPrograms)
 paint Paints the previous synchronized scene using specified programs. More...
 

Signals

void initalizationDone ()
 This signal is emitted after initialization of all resources is done. More...
 

Public Member Functions

 SceneRenderer (QObject *parent=0)
 SceneRenderer. More...
 
virtual ~SceneRenderer ()
 
void cleanup (QOpenGLFunctions &gl)
 Clears all used resources. More...
 
void synchronizeGeometries (QList< AbstractGem * > geometries)
 Synchronizes given gems between gui and render thread. More...
 
void synchronizeLightRays (LightRay *rootLightRay)
 Synchronizes light rays between gui and render thread. More...
 
void paintGems (QOpenGLFunctions &gl, QOpenGLShaderProgram &shaderProgram)
 Paints the previous synchronized gems using specified program. More...
 
void paintLightRays (QOpenGLFunctions &gl, const QMatrix4x4 &viewProjection, QOpenGLShaderProgram &shaderProgram)
 Paints previous synchronized light rays using specified program. More...
 

Protected Member Functions

void initalize (QOpenGLFunctions &gl)
 

Protected Attributes

GemRendererm_gemRenderer
 
LightRayRendererm_lightRayRenderer
 
bool m_isInitalized
 

Detailed Description

The SceneRenderer class Renders the scene: Packs the scene in the buffer and draws the scene in as few render calls as possible. The SceneRenderer uses specialized Renderer for diffrent types of geometry.

Constructor & Destructor Documentation

SceneRenderer::SceneRenderer ( QObject *  parent = 0)
explicit

SceneRenderer.

Parameters
parent
SceneRenderer::~SceneRenderer ( )
virtual

Member Function Documentation

void SceneRenderer::cleanup ( QOpenGLFunctions &  gl)

Clears all used resources.

Parameters
glQOpenGLFunctions which can be used by SceneRenderer to release GPU resources
void SceneRenderer::initalizationDone ( )
signal

This signal is emitted after initialization of all resources is done.

void SceneRenderer::initalize ( QOpenGLFunctions &  gl)
protected
void SceneRenderer::paint ( QOpenGLFunctions &  gl,
const QMatrix4x4 &  viewProjection,
const QHash< ShaderPrograms, QOpenGLShaderProgram * > &  shaderPrograms 
)
slot

paint Paints the previous synchronized scene using specified programs.

Parameters
glQOpenGLFunctions which will be used for any gl-call
viewProjectionThe viewprojection matrix which will be used.
shaderProgramsA QHash containing different shader programs for different components of scene (lightrays and gems)
void SceneRenderer::paintGems ( QOpenGLFunctions &  gl,
QOpenGLShaderProgram &  shaderProgram 
)

Paints the previous synchronized gems using specified program.

Parameters
glQOpenGLFunctions which will be used for any gl-call
viewProjectionThe viewprojection matrix which will be used.
shaderProgramThe specified shaderprogram used for rendering.
void SceneRenderer::paintLightRays ( QOpenGLFunctions &  gl,
const QMatrix4x4 &  viewProjection,
QOpenGLShaderProgram &  shaderProgram 
)

Paints previous synchronized light rays using specified program.

Parameters
glQOpenGLFunctions which will be used for any gl-call
viewProjectionThe viewprojection matrix which will be used.
shaderProgramThe specified shaderprogram used for rendering.
void SceneRenderer::synchronizeGeometries ( QList< AbstractGem * >  geometries)

Synchronizes given gems between gui and render thread.

Parameters
geometriesList of gems which should be synchronized.
void SceneRenderer::synchronizeLightRays ( LightRay rootLightRay)

Synchronizes light rays between gui and render thread.

Parameters
rootLightRayThis and all of its successors will be synchronized.

Member Data Documentation

GemRenderer* SceneRenderer::m_gemRenderer
protected
bool SceneRenderer::m_isInitalized
protected
LightRayRenderer* SceneRenderer::m_lightRayRenderer
protected

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