#include <ACG/Scenegraph/ShaderNode.hh>


Classes | |
| class | ShaderInfo |
Public Member Functions | |
| ShaderNode (BaseNode *_parent=0, const std::string &_name="<ShaderNode>") | |
| Default constructor. Applies all properties. | |
| virtual | ~ShaderNode () |
| Destructor. | |
| ACG_CLASSNAME (ShaderNode) | |
| void | enter (GLState &, unsigned int _drawmode) |
| set shader | |
| void | leave (GLState &, unsigned int _drawmode) |
| disable shader | |
| void | enterPick (GLState &, PickTarget _target, unsigned int _drawmode) |
| set shader | |
| void | leavePick (GLState &, PickTarget _target, unsigned int _drawmode) |
| disable shader | |
| void | setShaderDir (std::string _shaderDir) |
| Sets the shader dir. | |
| std::string | shaderDir () |
| std::string | vertexShaderName (unsigned int _drawmode, bool _pick=false) |
| std::string | fragmentShaderName (unsigned int _drawmode, bool _pick=false) |
| void | setShader (unsigned int _drawmode, std::string _vertexShader, std::string _fragmentShader, std::string _pickVertexShader="", std::string _pickFragmentShader="") |
| GLSL::PtrProgram | getShader (unsigned int _drawmode, bool _pick=false) |
| Get the shader for the given drawMode. | |
| bool | hasShader (unsigned int _drawmode, bool _pick=false) |
| Check if a shader is available for the given drawMode. | |
| unsigned int | availableDrawModes () const |
| return available draw modes | |
Private Attributes | |
| std::string | shaderDir_ |
| ShaderInfo | shaders [32] |
| ShaderInfo | pickShaders [32] |
Set shaders for this node and all its children. All changes will be done in the enter() method undonecd ..cd in the leave() method.
Definition at line 79 of file ShaderNode.hh.
| void ACG::SceneGraph::ShaderNode::setShader | ( | unsigned int | _drawmode, | |
| std::string | _vertexShader, | |||
| std::string | _fragmentShader, | |||
| std::string | _pickVertexShader = "", |
|||
| std::string | _pickFragmentShader = "" | |||
| ) |
Sets a Shader for this draw Mode
| _drawmode | Set the drawmode for which the shader should be activated | |
| _vertexShader | filename of the Vertex Shader within the shader directory | |
| _fragmentShader | filename of the Fragment Shader within the shader directory |
Definition at line 274 of file ShaderNode.cc.
References GLSL::Program::attach(), GLSL::Program::link(), GLSL::loadFragmentShader(), and GLSL::loadVertexShader().