Visualization Library v1.0.3

A lightweight C++ OpenGL middleware for 2D/3D graphics

VL     Star     Watch     Fork     Issue

[Download] [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
 ShaderNode's representation of an enable. More...
struct  RenderStateInfo
 ShaderNode's representation of a RenderState. More...
struct  UniformInfo
 ShaderNode's representation of a Uniform. More...

Public Types

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

Public Member Functions

 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 (EInheritance inheritance, RenderStateNonIndexed *rs)
void setRenderState (EInheritance inheritance, RenderState *rs, int index)
void eraseRenderState (RenderStateNonIndexed *rs)
void eraseRenderState (RenderState *rs, int index)
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 77 of file ShaderNode.hpp.

Definition at line 78 of file ShaderNode.hpp.

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

Definition at line 79 of file ShaderNode.hpp.


Constructor & Destructor Documentation

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

Definition at line 82 of file ShaderNode.hpp.


Member Function Documentation

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

Definition at line 86 of file ShaderNode.hpp.

References mShader, and shader().

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

Definition at line 88 of file ShaderNode.hpp.

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

Referenced by setShader().

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

Definition at line 90 of file ShaderNode.hpp.

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

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

Definition at line 94 of file ShaderNode.hpp.

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

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

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

Definition at line 101 of file ShaderNode.hpp.

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

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

Definition at line 113 of file ShaderNode.hpp.

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

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

Definition at line 120 of file ShaderNode.hpp.

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

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

Definition at line 129 of file ShaderNode.hpp.

References child(), and childrenCount().

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

Definition at line 137 of file ShaderNode.hpp.

References mNodes.

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

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

Definition at line 139 of file ShaderNode.hpp.

References mNodes.

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

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

Definition at line 141 of file ShaderNode.hpp.

References mNodes.

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

Definition at line 143 of file ShaderNode.hpp.

References mParent.

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

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

Definition at line 145 of file ShaderNode.hpp.

References mParent.

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

Definition at line 149 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 ( EInheritance  inheritance,
RenderStateNonIndexed rs 
) [inline]

Definition at line 260 of file ShaderNode.hpp.

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

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

void vl::ShaderNode::setRenderState ( EInheritance  inheritance,
RenderState rs,
int  index 
) [inline]

Definition at line 266 of file ShaderNode.hpp.

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

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

Definition at line 272 of file ShaderNode.hpp.

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

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

Definition at line 277 of file ShaderNode.hpp.

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

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

Definition at line 285 of file ShaderNode.hpp.

References mEnables.

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

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

Definition at line 291 of file ShaderNode.hpp.

References mEnables.

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

Definition at line 296 of file ShaderNode.hpp.

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

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

Definition at line 302 of file ShaderNode.hpp.

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

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

Definition at line 309 of file ShaderNode.hpp.

References mRenderStates.

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

Definition at line 311 of file ShaderNode.hpp.

References mRenderStates.

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

Definition at line 313 of file ShaderNode.hpp.

References mEnables.

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

Definition at line 315 of file ShaderNode.hpp.

References mEnables.

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

Definition at line 317 of file ShaderNode.hpp.

References mUniforms.

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

Definition at line 319 of file ShaderNode.hpp.

References mUniforms.


Member Data Documentation

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

Definition at line 322 of file ShaderNode.hpp.

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

Definition at line 323 of file ShaderNode.hpp.

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

Definition at line 325 of file ShaderNode.hpp.

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

Definition at line 326 of file ShaderNode.hpp.

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

Definition at line 327 of file ShaderNode.hpp.

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

Definition at line 329 of file ShaderNode.hpp.

Referenced by inherit().

Definition at line 330 of file ShaderNode.hpp.

Referenced by inherit().

Definition at line 331 of file ShaderNode.hpp.

Referenced by inherit().

Definition at line 333 of file ShaderNode.hpp.

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


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

Visualization Library v1.0.3 Reference Documentation
Copyright Michele Bosi. All rights reserved.
Updated on Tue Feb 7 2017 00:55:12.
Permission is granted to use this page to write and publish articles regarding Visualization Library.