Visualization Library

A lightweight C++ OpenGL middleware for 2D/3D graphics
[Home] [Tutorials] [All Classes] [Grouped Classes]
Classes | Public Types | Public Member Functions | Protected Attributes

vl::ShaderNode Class Reference

The ShaderNode class is used to conveniently manage complex hierarchies of Shader[s]. More...

#include <ShaderNode.hpp>

Inheritance diagram for vl::ShaderNode:
vl::Object

List of all members.

Classes

struct  EnableInfo
struct  RenderStateInfo
struct  UniformInfo

Public Types

typedef std::map< ERenderState,
RenderStateInfo
RenderStatesMap
typedef std::map< EEnable,
EnableInfo
EnablesMap
typedef std::map< std::string,
UniformInfo
UniformsMap

Public Member Functions

virtual const char * className ()
 Returns the name of the class.
 ShaderNode ()
void setShader (Shader *shader)
const Shadershader () const
Shadershader ()
void addChild (ShaderNode *node)
void eraseChild (ShaderNode *node)
void eraseChild (unsigned index)
void eraseChildren (unsigned start, unsigned count)
int findChild (const ShaderNode *node) const
size_t childrenCount () const
ShaderNodechild (unsigned i)
const ShaderNodechild (unsigned i) const
ShaderNodeparent ()
const ShaderNodeparent () const
void updateHierarchy ()
void inherit (ShaderNode *parent)
void setRenderState (RenderState *rs, EInheritance inheritance=IN_Propagate)
void eraseRenderState (RenderState *rs)
void setEnable (EEnable en, bool on, EInheritance inheritance=IN_Propagate)
void eraseEnable (EEnable en)
void setUniform (Uniform *unif, EInheritance inheritance=IN_Propagate)
void eraseUniform (Uniform *unif)
const RenderStatesMaprenderStates () const
RenderStatesMaprenderStates ()
const EnablesMapenables () const
EnablesMapenables ()
const UniformsMapuniforms () const
UniformsMapuniforms ()

Protected Attributes

std::vector< ref< ShaderNode > > mNodes
ShaderNodemParent
RenderStatesMap mRenderStates
EnablesMap mEnables
UniformsMap mUniforms
RenderStatesMap mRenderStates_Final
EnablesMap mEnables_Final
UniformsMap mUniforms_Final
ref< ShadermShader

Detailed Description

The ShaderNode class is used to conveniently manage complex hierarchies of Shader[s].

Definition at line 45 of file ShaderNode.hpp.


Member Typedef Documentation

Definition at line 74 of file ShaderNode.hpp.

Definition at line 75 of file ShaderNode.hpp.

typedef std::map< std::string, UniformInfo > vl::ShaderNode::UniformsMap

Definition at line 76 of file ShaderNode.hpp.


Constructor & Destructor Documentation

vl::ShaderNode::ShaderNode (  ) [inline]

Definition at line 81 of file ShaderNode.hpp.


Member Function Documentation

virtual const char* vl::ShaderNode::className (  ) [inline, virtual]

Returns the name of the class.

Reimplemented from vl::Object.

Definition at line 79 of file ShaderNode.hpp.

void vl::ShaderNode::setShader ( Shader shader ) [inline]

Definition at line 85 of file ShaderNode.hpp.

References mShader, and shader().

const Shader* vl::ShaderNode::shader (  ) const [inline]

Definition at line 87 of file ShaderNode.hpp.

References vl::ref< T >::get(), and mShader.

Referenced by setShader().

Shader* vl::ShaderNode::shader (  ) [inline]

Definition at line 89 of file ShaderNode.hpp.

References vl::ref< T >::get(), and mShader.

void vl::ShaderNode::addChild ( ShaderNode node ) [inline]

Definition at line 93 of file ShaderNode.hpp.

References mNodes, mParent, parent(), and VL_CHECK.

Referenced by vl::Terrain::init().

void vl::ShaderNode::eraseChild ( ShaderNode node ) [inline]

Definition at line 100 of file ShaderNode.hpp.

References child(), childrenCount(), mNodes, mParent, parent(), and VL_CHECK.

void vl::ShaderNode::eraseChild ( unsigned  index ) [inline]

Definition at line 112 of file ShaderNode.hpp.

References childrenCount(), mNodes, and VL_CHECK.

void vl::ShaderNode::eraseChildren ( unsigned  start,
unsigned  count 
) [inline]

Definition at line 119 of file ShaderNode.hpp.

References childrenCount(), mNodes, mParent, and VL_CHECK.

int vl::ShaderNode::findChild ( const ShaderNode node ) const [inline]

Definition at line 128 of file ShaderNode.hpp.

References child(), and childrenCount().

size_t vl::ShaderNode::childrenCount (  ) const [inline]

Definition at line 136 of file ShaderNode.hpp.

References mNodes.

Referenced by eraseChild(), eraseChildren(), findChild(), and updateHierarchy().

ShaderNode* vl::ShaderNode::child ( unsigned  i ) [inline]

Definition at line 138 of file ShaderNode.hpp.

References mNodes.

Referenced by eraseChild(), findChild(), and updateHierarchy().

const ShaderNode* vl::ShaderNode::child ( unsigned  i ) const [inline]

Definition at line 140 of file ShaderNode.hpp.

References mNodes.

ShaderNode* vl::ShaderNode::parent (  ) [inline]

Definition at line 142 of file ShaderNode.hpp.

References mParent.

Referenced by addChild(), eraseChild(), and updateHierarchy().

const ShaderNode* vl::ShaderNode::parent (  ) const [inline]

Definition at line 144 of file ShaderNode.hpp.

References mParent.

void vl::ShaderNode::updateHierarchy (  ) [inline]

Definition at line 148 of file ShaderNode.hpp.

References child(), childrenCount(), inherit(), parent(), and updateHierarchy().

Referenced by vl::Terrain::init(), and updateHierarchy().

void vl::ShaderNode::inherit ( ShaderNode parent ) [inline]
void vl::ShaderNode::setRenderState ( RenderState rs,
EInheritance  inheritance = IN_Propagate 
) [inline]

Definition at line 259 of file ShaderNode.hpp.

References mRenderStates, and vl::RenderState::type().

Referenced by vl::Terrain::init().

void vl::ShaderNode::eraseRenderState ( RenderState rs ) [inline]

Definition at line 265 of file ShaderNode.hpp.

References mRenderStates, and vl::RenderState::type().

void vl::ShaderNode::setEnable ( EEnable  en,
bool  on,
EInheritance  inheritance = IN_Propagate 
) [inline]

Definition at line 270 of file ShaderNode.hpp.

References mEnables.

Referenced by vl::Terrain::init().

void vl::ShaderNode::eraseEnable ( EEnable  en ) [inline]

Definition at line 276 of file ShaderNode.hpp.

References mEnables.

void vl::ShaderNode::setUniform ( Uniform unif,
EInheritance  inheritance = IN_Propagate 
) [inline]

Definition at line 281 of file ShaderNode.hpp.

References mUniforms, and vl::Uniform::name().

void vl::ShaderNode::eraseUniform ( Uniform unif ) [inline]

Definition at line 287 of file ShaderNode.hpp.

References mUniforms, and vl::Uniform::name().

const RenderStatesMap& vl::ShaderNode::renderStates (  ) const [inline]

Definition at line 294 of file ShaderNode.hpp.

References mRenderStates.

RenderStatesMap& vl::ShaderNode::renderStates (  ) [inline]

Definition at line 296 of file ShaderNode.hpp.

References mRenderStates.

const EnablesMap& vl::ShaderNode::enables (  ) const [inline]

Definition at line 298 of file ShaderNode.hpp.

References mEnables.

EnablesMap& vl::ShaderNode::enables (  ) [inline]

Definition at line 300 of file ShaderNode.hpp.

References mEnables.

const UniformsMap& vl::ShaderNode::uniforms (  ) const [inline]

Definition at line 302 of file ShaderNode.hpp.

References mUniforms.

UniformsMap& vl::ShaderNode::uniforms (  ) [inline]

Definition at line 304 of file ShaderNode.hpp.

References mUniforms.


Member Data Documentation

std::vector< ref< ShaderNode > > vl::ShaderNode::mNodes [protected]

Definition at line 307 of file ShaderNode.hpp.

Referenced by addChild(), child(), childrenCount(), eraseChild(), and eraseChildren().

Definition at line 308 of file ShaderNode.hpp.

Referenced by addChild(), eraseChild(), eraseChildren(), and parent().

Definition at line 310 of file ShaderNode.hpp.

Referenced by eraseRenderState(), inherit(), renderStates(), and setRenderState().

Definition at line 311 of file ShaderNode.hpp.

Referenced by enables(), eraseEnable(), inherit(), and setEnable().

Definition at line 312 of file ShaderNode.hpp.

Referenced by eraseUniform(), inherit(), setUniform(), and uniforms().

Definition at line 314 of file ShaderNode.hpp.

Referenced by inherit().

Definition at line 315 of file ShaderNode.hpp.

Referenced by inherit().

Definition at line 316 of file ShaderNode.hpp.

Referenced by inherit().

Definition at line 318 of file ShaderNode.hpp.

Referenced by inherit(), setShader(), and shader().


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

Visualization Library v2011.05.1142 Reference Documentation
Copyright 2005-2011 Michele Bosi. All rights reserved.
Updated on Thu May 26 2011 22:51:46.
Permission is granted to use this page to write and publish articles regarding Visualization Library.