Ogre::RTShader::TargetRenderState Class Reference
Core » RTShader

This is the target render state. More...

`#include <OgreShaderRenderState.h>`

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

## Public Member Functions

| TargetRenderState ()
| Class default constructor. More...
virtual | ~TargetRenderState ()
| Class destructor. More...
void | addTemplateSubRenderState (SubRenderState *subRenderState)
| Add a template sub render state to this render state. More...
void | getLightCount (int lightCount[3]) const
| Get the light count per light type. More...
bool | getLightCountAutoUpdate () const
| Return true if this render state override the light count. More...
const SubRenderStateList & | getTemplateSubRenderStateList () const
| Get the list of the template sub render states composing this render state. More...
void | link (const RenderState &other, Pass *srcPass, Pass *dstPass)
| Link this target render state with the given render state. More...
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 *)
void * | operator new (size_t sz, const char *file, int line, const char *func)
| operator new, with debug line info More...
void * | operator new (size_t sz)
void * | operator new (size_t sz, void *ptr)
| placement operator new More...
void * | operator new[] (size_t sz, const char *file, int line, const char *func)
| array operator new, with debug line info More...
void * | operator new[] (size_t sz)
void | removeTemplateSubRenderState (SubRenderState *subRenderState)
| Remove a template sub render state from this render state. More...
void | reset ()
| Reset this render state. More...
void | setLightCount (const int lightCount[3])
| Set the light count per light type. More...
void | setLightCountAutoUpdate (bool autoUpdate)
| Set the light count auto update state. More...
void | updateGpuProgramsParams (Renderable *rend, Pass *pass, const AutoParamDataSource *source, const LightList *pLightList)
| Update the GPU programs constant parameters before a renderable is rendered. More...

## Protected Member Functions

void | addSubRenderStateInstance (SubRenderState *subRenderState)
| Add sub render state to this render state. More...
bool | createCpuPrograms ()
| Create CPU programs that represent this render state. More...
ProgramSet * | createProgramSet ()
| Create the program set of this render state. More...
void | destroyProgramSet ()
ProgramSet * | getProgramSet ()
| Return the program set of this render state. More...
void | removeSubRenderStateInstance (SubRenderState *subRenderState)
| Remove sub render state from this render state. More...
void | sortSubRenderStates ()
| Sort the sub render states composing this render state. More...

## Protected Attributes

int | mLightCount [3]
bool | mLightCountAutoUpdate
ProgramSet * | mProgramSet
SubRenderStateList | mSubRenderStateList
bool | mSubRenderStateSortValid

## Friends

class | FFPRenderStateBuilder
class | ProgramManager

## 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 138 of file OgreShaderRenderState.h.

## Constructor & Destructor Documentation

## TargetRenderState()

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

Class default constructor.

## ~TargetRenderState()

virtual Ogre::RTShader::TargetRenderState::~TargetRenderState | ( |  | ) |

virtual

Class destructor.

## Member Function Documentation

## addSubRenderStateInstance()

void Ogre::RTShader::TargetRenderState::addSubRenderStateInstance | ( | SubRenderState * | subRenderState | ) |

protected

Add sub render state to this render state.

Parameters

  subRenderState | The sub render state to add.

## addTemplateSubRenderState()

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.

## createCpuPrograms()

bool Ogre::RTShader::TargetRenderState::createCpuPrograms | ( |  | ) |

protected

Create CPU programs that represent this render state.

## createProgramSet()

ProgramSet* Ogre::RTShader::TargetRenderState::createProgramSet | ( |  | ) |

protected

Create the program set of this render state.

## destroyProgramSet()

void Ogre::RTShader::TargetRenderState::destroyProgramSet | ( |  | ) |

protected

## getLightCount()

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.

## getLightCountAutoUpdate()

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 109 of file OgreShaderRenderState.h.

## getProgramSet()

ProgramSet* Ogre::RTShader::TargetRenderState::getProgramSet | ( |  | ) |

protected

Return the program set of this render state.

Definition at line 185 of file OgreShaderRenderState.h.

## getTemplateSubRenderStateList()

const SubRenderStateList& Ogre::RTShader::RenderState::getTemplateSubRenderStateList | ( |  | ) | const

inherited

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

Definition at line 75 of file OgreShaderRenderState.h.

## link()

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.

## operator delete() [1/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr | ) |

inherited

Definition at line 96 of file OgreMemoryAllocatedObject.h.

## operator delete() [2/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | void * |
| ) |  |

inherited

Definition at line 102 of file OgreMemoryAllocatedObject.h.

## operator delete() [3/3]

template<class Alloc >

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

inherited

Definition at line 108 of file OgreMemoryAllocatedObject.h.

## operator delete[]() [1/2]

template<class Alloc >

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

inherited

Definition at line 113 of file OgreMemoryAllocatedObject.h.

## operator delete[]() [2/2]

template<class Alloc >

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

inherited

Definition at line 119 of file OgreMemoryAllocatedObject.h.

## operator new() [1/3]

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 68 of file OgreMemoryAllocatedObject.h.

## operator new() [2/3]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz | ) |

inherited

Definition at line 73 of file OgreMemoryAllocatedObject.h.

## operator new() [3/3]

template<class Alloc >

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

inherited

placement operator new

Definition at line 79 of file OgreMemoryAllocatedObject.h.

## operator new[]() [1/2]

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 86 of file OgreMemoryAllocatedObject.h.

## operator new[]() [2/2]

template<class Alloc >

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

inherited

Definition at line 91 of file OgreMemoryAllocatedObject.h.

## removeSubRenderStateInstance()

void Ogre::RTShader::TargetRenderState::removeSubRenderStateInstance | ( | SubRenderState * | subRenderState | ) |

protected

Remove sub render state from this render state.

Parameters

  subRenderState | The sub render state to remove.

## removeTemplateSubRenderState()

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.

## reset()

void Ogre::RTShader::RenderState::reset | ( |  | ) |

inherited

Reset this render state.

## setLightCount()

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.

## setLightCountAutoUpdate()

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 103 of file OgreShaderRenderState.h.

## sortSubRenderStates()

void Ogre::RTShader::TargetRenderState::sortSubRenderStates | ( |  | ) |

protected

Sort the sub render states composing this render state.

## updateGpuProgramsParams()

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

## FFPRenderStateBuilder

friend class FFPRenderStateBuilder

friend

Definition at line 208 of file OgreShaderRenderState.h.

## ProgramManager

friend class ProgramManager

friend

Definition at line 207 of file OgreShaderRenderState.h.

## Member Data Documentation

## mLightCount

int Ogre::RTShader::RenderState::mLightCount[3]

protected inherited

Definition at line 119 of file OgreShaderRenderState.h.

## mLightCountAutoUpdate

bool Ogre::RTShader::RenderState::mLightCountAutoUpdate

protected inherited

Definition at line 121 of file OgreShaderRenderState.h.

## mProgramSet

ProgramSet* Ogre::RTShader::TargetRenderState::mProgramSet

protected

Definition at line 203 of file OgreShaderRenderState.h.

## mSubRenderStateList

SubRenderStateList Ogre::RTShader::RenderState::mSubRenderStateList

protected inherited

Definition at line 117 of file OgreShaderRenderState.h.

## mSubRenderStateSortValid

bool Ogre::RTShader::TargetRenderState::mSubRenderStateSortValid

protected

Definition at line 201 of file OgreShaderRenderState.h.

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

- OgreShaderRenderState.h

Copyright © 2012 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.