# 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:

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 Shader * | shader () const
Shader * | shader ()
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
ShaderNode * | child (unsigned i)
const ShaderNode * | child (unsigned i) const
ShaderNode * | parent ()
const ShaderNode * | parent () 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 RenderStatesMap & | renderStates () const
RenderStatesMap & | renderStates ()
const EnablesMap & | enables () const
EnablesMap & | enables ()
const UniformsMap & | uniforms () const
UniformsMap & | uniforms ()

## Protected Attributes

std::vector< ref< ShaderNode > > | mNodes
ShaderNode * | mParent
RenderStatesMap | mRenderStates
EnablesMap | mEnables
UniformsMap | mUniforms
RenderStatesMap | mRenderStates_Final
EnablesMap | mEnables_Final
UniformsMap | mUniforms_Final
ref< Shader > | mShader

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

typedef std::map< ERenderState, RenderStateInfo > vl::ShaderNode::RenderStatesMap

Definition at line 77 of file ShaderNode.hpp.

typedef std::map< EEnable, EnableInfo > vl::ShaderNode::EnablesMap

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]`

Definition at line 156 of file ShaderNode.hpp.

References vl::IN_Propagate, vl::IN_Sticky, mEnables, mEnables_Final, mRenderStates, mRenderStates_Final, mShader, mUniforms, and mUniforms_Final.

Referenced by updateHierarchy().

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

ShaderNode* vl::ShaderNode::mParent`[protected]`

Definition at line 323 of file ShaderNode.hpp.

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

RenderStatesMap vl::ShaderNode::mRenderStates`[protected]`

Definition at line 325 of file ShaderNode.hpp.

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

EnablesMap vl::ShaderNode::mEnables`[protected]`

Definition at line 326 of file ShaderNode.hpp.

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

UniformsMap vl::ShaderNode::mUniforms`[protected]`

Definition at line 327 of file ShaderNode.hpp.

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

RenderStatesMap vl::ShaderNode::mRenderStates_Final`[protected]`

Definition at line 329 of file ShaderNode.hpp.

Referenced by inherit().

EnablesMap vl::ShaderNode::mEnables_Final`[protected]`

Definition at line 330 of file ShaderNode.hpp.

Referenced by inherit().

UniformsMap vl::ShaderNode::mUniforms_Final`[protected]`

Definition at line 331 of file ShaderNode.hpp.

Referenced by inherit().

ref<Shader> vl::ShaderNode::mShader`[protected]`

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:

- D:/VL/BuildSystem/VL_DISTRO/Visualization_Library_SDK/src/vlGraphics/ShaderNode.hpp

Visualization Library v2011.09.1162 Reference Documentation
Copyright 2005-2011 Michele Bosi. All rights reserved.
Updated on Thu Jan 26 2012 00:44:53.
Permission is granted to use this page to write and publish articles regarding Visualization Library.