Developer Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
DepthPeelingPlugin Class Reference
Inheritance diagram for DepthPeelingPlugin:
BaseInterface RenderInterface LoggingInterface

Classes

struct  ViewerResources
 

Public Slots

QString version ()
 

Signals

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...
 

Private Types

enum  {
  PEEL_SHADER_WIREFRAME = 0, PEEL_SHADER_HIDDENLINE = 1, PEEL_SHADER_TEXTURED = 0x1, PEEL_SHADER_PHONG = 0x2,
  PEEL_SHADER_GOURAUD = 0x4, PEEL_SHADER_FLAT = 0x8, PEEL_SHADER_VERTEXCOLORS = 0x10, PEEL_NUM_COMBINATIONS = 0x20,
  PEEL_SHADER_NUM_FLAGS = 5
}
 
enum  LightType { LIGHTTYPE_DIRECTIONAL = 0, LIGHTTYPE_POINT, LIGHTTYPE_SPOT }
 light type enumeration
 

Private Slots

void initializePlugin ()
 
void exit ()
 
void render (ACG::GLState *_glState, Viewer::ViewerProperties &_properties)
 
QString rendererName ()
 
void supportedDrawModes (ACG::SceneGraph::DrawModes::DrawMode &_mode)
 
QString checkOpenGL ()
 

Private Member Functions

void destroyResources ()
 free all gl resources
 
void destroyResources (int _viewerId)
 free viewer specific gl resources
 
void reloadResources (int _viewerId)
 reload gl resources
 
void drawQuadProj (float _x0=-1.0f, float _y0=1.0f, float _w=2.0f, float _h=2.0f)
 draw a quad in projection space (only positions)
 
void traverseLightNodes (BaseNode *_node)
 find all light nodes in the scene
 
void generatePeelingShaders (GLSL::StringList *_strVertexShaderOut, GLSL::StringList *_strFragmentShaderOut, GLSL::StringList *_strGeometryShaderOut, bool _textured, bool _flatShaded, bool _phong, bool _vertexColor, bool _wireFrame)
 peel shader generator based on lights and texture mode
 
void updatePeelingShaderSet ()
 regenerates peeling shaders based on light nodes in scenegraph
 
void drawScenePass (ACG::GLState *_glState, ACG::SceneGraph::DrawModes::DrawMode _drawMode, BaseNode *_sceneGraphRoot)
 draw the current scene
 
void drawScenePeelPass (ACG::GLState *_glState, ACG::SceneGraph::DrawModes::DrawMode _drawMode, BaseNode *_sceneGraphRoot, int _peelPass)
 
template<class Action >
void traverseDraw (BaseNode *_node, Action &_action, ACG::SceneGraph::DrawModes::DrawMode _globalDrawMode, int _pass, int _peelPass)
 
template<class Action >
bool traverseDrawApplyAction (BaseNode *_node, Action &_action, ACG::SceneGraph::DrawModes::DrawMode _globalDrawMode, int _pass, int _peelPass)
 
unsigned int getPeelShaderIndex (ACG::SceneGraph::DrawModes::DrawMode _drawMode)
 converts a drawmode to the correct shading program index
 
- 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 QString renderObjectsInfo (bool _outputShaderInfo)
 Return a qstring of the current render objects. More...
 
virtual void reloadShaders ()
 Reload any renderer specific shaders. More...
 
- Private Member Functions inherited from LoggingInterface
virtual ~LoggingInterface ()
 Destructor.
 

Private Attributes

std::map< int, ViewerResourcesviewerRes_
 
GLSL::ShaderblendShaders_ [8]
 shader resources
 
GLSL::ProgramblendDualPeelProg_ [4]
 depth peeling programs
 
GLSL::ShaderpeelShaders_ [PEEL_NUM_COMBINATIONS *3]
 generated shader set
 
GLSL::ProgrampeelProgs_ [PEEL_NUM_COMBINATIONS]
 generates shader programs
 
GLuint blendQueryID_
 fragment query
 
ACG::GLStateglStateTmp_
 current glState ptr for hiddenline rendering
 
GLuint numLights_
 number of used lights in the scene
 
LightType lightTypes_ [16]
 registered lights in the scene
 
GLuint glLightIDs_ [16]
 matching GL light id
 

Detailed Description

Definition at line 61 of file ClassicDepthPeeling.hh.

Member Function Documentation

QString DepthPeelingPlugin::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 84 of file ClassicDepthPeeling.hh.

QString DepthPeelingPlugin::name ( )
inlinevirtual

Return a name for the plugin.

This Function has to return the name of the plugin.

Implements BaseInterface.

Definition at line 83 of file ClassicDepthPeeling.hh.


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