OGRE: Ogre::RTShader::TargetRenderState Class Reference - OGRE Documentation

Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Friends

# Ogre::RTShader::TargetRenderState Class Reference
[RTShader]

This is the target render state. More...

`#include <OgreShaderRenderState.h>`

Inheritance diagram for Ogre::RTShader::TargetRenderState:
[legend]

List of all members.

## Public Member Functions
| TargetRenderState ()
| Class default constructor.
virtual | ~TargetRenderState ()
| Class destructor.
void | link (const RenderState &other, Pass *srcPass, Pass *dstPass)
| Link this target render state with the given render state.
void | updateGpuProgramsParams (Renderable *rend, Pass *pass, const AutoParamDataSource *source, const LightList *pLightList)
| Update the GPU programs constant parameters before a renderable is rendered.
void | reset ()
| Reset this render state.
void | addTemplateSubRenderState (SubRenderState *subRenderState)
| Add a template sub render state to this render state.
void | removeTemplateSubRenderState (SubRenderState *subRenderState)
| Remove a template sub render state from this render state.
const SubRenderStateList & | getTemplateSubRenderStateList () const
| Get the list of the template sub render states composing this render state.
void | setLightCount (const int lightCount[3])
| Set the light count per light type.
void | getLightCount (int lightCount[3]) const
| Get the light count per light type.
void | setLightCountAutoUpdate (bool autoUpdate)
| Set the light count auto update state.
bool | getLightCountAutoUpdate () const
| Return true if this render state override the light count.
void * | operator new (size_t sz, const char *file, int line, const char *func)
| operator new, with debug line info
void * | operator new (size_t sz)
void * | operator new (size_t sz, void *ptr)
| placement operator new
void * | operator new[] (size_t sz, const char *file, int line, const char *func)
| array operator new, with debug line info
void * | operator new[] (size_t sz)
void | operator delete (void *ptr)
void | operator delete (void *ptr, void *)
void | operator delete (void *ptr, const char *, int, const char *)
void | operator delete[] (void *ptr)
void | operator delete[] (void *ptr, const char *, int, const char *)
## Protected Member Functions
void | sortSubRenderStates ()
| Sort the sub render states composing this render state.
bool | createCpuPrograms ()
| Create CPU programs that represent this render state.
ProgramSet * | createProgramSet ()
| Create the program set of this render state.
void | destroyProgramSet ()
ProgramSet * | getProgramSet ()
| Return the program set of this render state.
void | addSubRenderStateInstance (SubRenderState *subRenderState)
| Add sub render state to this render state.
void | removeSubRenderStateInstance (SubRenderState *subRenderState)
| Remove sub render state from this render state.
## Static Protected Member Functions
static int | sSubRenderStateCompare (const void *p0, const void *p1)
| Comparison function of the sub render states.
## Protected Attributes
bool | mSubRenderStateSortValid
ProgramSet * | mProgramSet
SubRenderStateList | mSubRenderStateList
int | mLightCount [3]
bool | mLightCountAutoUpdate
## Friends
class | ProgramManager
class | FFPRenderStateBuilder

## Detailed Description

This is the target render state.

This class will hold the actual generated CPU/GPU programs. It will be initially build from the FFP state of a given Pass by the FFP builder and then will be linked with the custom pass render state and the global scheme render state. See ShaderGenerator::SGPass::buildTargetRenderState().

Definition at line 136 of file OgreShaderRenderState.h.

## Constructor & Destructor Documentation

Ogre::RTShader::TargetRenderState::TargetRenderState | ( |  | ) |

Class default constructor.

virtual Ogre::RTShader::TargetRenderState::~TargetRenderState | ( |  | ) | `[virtual]`

Class destructor.

## Member Function Documentation

void Ogre::RTShader::TargetRenderState::addSubRenderStateInstance | ( | SubRenderState * | subRenderState | ) | `[protected]`

Add sub render state to this render state.

Parameters:

  | subRenderState | The sub render state to add.

void Ogre::RTShader::RenderState::addTemplateSubRenderState | ( | SubRenderState * | subRenderState | ) | `[inherited]`

Add a template sub render state to this render state.

Parameters:

  | subRenderState | The sub render state template to add.

bool Ogre::RTShader::TargetRenderState::createCpuPrograms | ( |  | ) | `[protected]`

Create CPU programs that represent this render state.

ProgramSet* Ogre::RTShader::TargetRenderState::createProgramSet | ( |  | ) | `[protected]`

Create the program set of this render state.

void Ogre::RTShader::TargetRenderState::destroyProgramSet | ( |  | ) | `[protected]`

void Ogre::RTShader::RenderState::getLightCount | ( | int | lightCount[3] | ) | const`[inherited]`

Get the light count per light type.

Parameters:

  | lightCount | The light count per type. lightCount[0] defines the point light count. lightCount[1] defines the directional light count. lightCount[2] defines the spot light count.

bool Ogre::RTShader::RenderState::getLightCountAutoUpdate | ( |  | ) | const`[inherited]`

Return true if this render state override the light count.

If light count is not overridden it will be updated from the shader generator based on current scene lights.

Definition at line 110 of file OgreShaderRenderState.h.

ProgramSet* Ogre::RTShader::TargetRenderState::getProgramSet | ( |  | ) | `[protected]`

Return the program set of this render state.

Definition at line 187 of file OgreShaderRenderState.h.

References mProgramSet.

const SubRenderStateList& Ogre::RTShader::RenderState::getTemplateSubRenderStateList | ( |  | ) | const`[inherited]`

Get the list of the template sub render states composing this render state.

Definition at line 76 of file OgreShaderRenderState.h.

void Ogre::RTShader::TargetRenderState::link | ( | const RenderState & | other,
|  | Pass * | srcPass,
|  | Pass * | dstPass |
| ) |  |  |

Link this target render state with the given render state.

Only sub render states with execution order that don't exist in this render state will be added.

Parameters:

  | other | The other render state to append to this state.
  | srcPass | The source pass that this render state is constructed from.
  | dstPass | The destination pass that constructed from this render state.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr | ) | `[inherited]`

Definition at line 95 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | void * |  |
| ) |  |  | `[inherited]`

Definition at line 101 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |  |
| ) |  |  | `[inherited]`

Definition at line 107 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr | ) | `[inherited]`

Definition at line 112 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |  |
| ) |  |  | `[inherited]`

Definition at line 118 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func |
| ) |  |  | `[inherited]`

operator new, with debug line info

Definition at line 67 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz | ) | `[inherited]`

Definition at line 72 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | void * | ptr |
| ) |  |  | `[inherited]`

placement operator new

Definition at line 78 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz | ) | `[inherited]`

Definition at line 90 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func |
| ) |  |  | `[inherited]`

array operator new, with debug line info

Definition at line 85 of file OgreMemoryAllocatedObject.h.

void Ogre::RTShader::TargetRenderState::removeSubRenderStateInstance | ( | SubRenderState * | subRenderState | ) | `[protected]`

Remove sub render state from this render state.

Parameters:

  | subRenderState | The sub render state to remove.

void Ogre::RTShader::RenderState::removeTemplateSubRenderState | ( | SubRenderState * | subRenderState | ) | `[inherited]`

Remove a template sub render state from this render state.

Parameters:

  | subRenderState | The sub render state to remove.

void Ogre::RTShader::RenderState::reset | ( |  | ) | `[inherited]`

Reset this render state.

void Ogre::RTShader::RenderState::setLightCount | ( | const int | lightCount[3] | ) | `[inherited]`

Set the light count per light type.

Parameters:

  | lightCount | The light count per type. lightCount[0] defines the point light count. lightCount[1] defines the directional light count. lightCount[2] defines the spot light count.

void Ogre::RTShader::RenderState::setLightCountAutoUpdate | ( | bool | autoUpdate | ) | `[inherited]`

Set the light count auto update state.

If the value is false the light count will remain static for the values that were set by the user. If the value is true the light count will be updated from the owner shader generator scheme based on current scene lights. The default is true.

Definition at line 104 of file OgreShaderRenderState.h.

void Ogre::RTShader::TargetRenderState::sortSubRenderStates | ( |  | ) | `[protected]`

Sort the sub render states composing this render state.

static int Ogre::RTShader::TargetRenderState::sSubRenderStateCompare | ( | const void * | p0,
|  | const void * | p1 |
| ) |  |  | `[static, protected]`

Comparison function of the sub render states.

void Ogre::RTShader::TargetRenderState::updateGpuProgramsParams | ( | Renderable * | rend,
|  | Pass * | pass,
|  | const AutoParamDataSource * | source,
|  | const LightList * | pLightList |
| ) |  |  |

Update the GPU programs constant parameters before a renderable is rendered.

Parameters:

  | rend | The renderable object that is going to be rendered.
  | pass | The pass that is used to do the rendering operation.
  | source | The auto parameter auto source instance.
  | pLightList | The light list used for the current rendering operation.

## Friends And Related Function Documentation

friend class FFPRenderStateBuilder`[friend]`

Reimplemented from Ogre::RTShader::RenderState.

Definition at line 208 of file OgreShaderRenderState.h.

friend class ProgramManager`[friend]`

Reimplemented from Ogre::RTShader::RenderState.

Definition at line 207 of file OgreShaderRenderState.h.

## Member Data Documentation

int Ogre::RTShader::RenderState::mLightCount[3]`[protected, inherited]`

Definition at line 118 of file OgreShaderRenderState.h.

bool Ogre::RTShader::RenderState::mLightCountAutoUpdate`[protected, inherited]`

Definition at line 119 of file OgreShaderRenderState.h.

ProgramSet* Ogre::RTShader::TargetRenderState::mProgramSet`[protected]`

Definition at line 203 of file OgreShaderRenderState.h.

Referenced by getProgramSet().

SubRenderStateList Ogre::RTShader::RenderState::mSubRenderStateList`[protected, inherited]`

Definition at line 117 of file OgreShaderRenderState.h.

bool Ogre::RTShader::TargetRenderState::mSubRenderStateSortValid`[protected]`

Definition at line 202 of file OgreShaderRenderState.h.

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

- OgreShaderRenderState.h

Copyright © 2008 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Wed Nov 3 2010 19:25:06