![]() |
OGRE
1.12.5
Object-Oriented Graphics Rendering Engine
|
This is the target render state. More...
#include <OgreShaderRenderState.h>
Public Member Functions | |
TargetRenderState () | |
Class default constructor. More... | |
void | acquirePrograms (Pass *pass) |
Acquire CPU/GPU programs set associated with the given render state and bind them to the pass. More... | |
void | addSubRenderStateInstance (SubRenderState *subRenderState) |
Add sub render state to this render state. More... | |
void | addTemplateSubRenderState (SubRenderState *subRenderState) |
Add a template sub render state to this render state. More... | |
const Vector3i & | getLightCount () 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 | releasePrograms (Pass *pass) |
Release CPU/GPU programs set associated with the given render state and pass. More... | |
void | removeSubRenderStateInstance (SubRenderState *subRenderState) |
Remove sub render state from this render state. More... | |
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 Vector3i &lightCount) |
Set the light count per light type. More... | |
void | setLightCountAutoUpdate (bool autoUpdate) |
Set the light count auto update state. More... | |
void | updateGpuProgramsParams (Renderable *rend, const Pass *pass, const AutoParamDataSource *source, const LightList *pLightList) |
Update the GPU programs constant parameters before a renderable is rendered. More... | |
Static Public Attributes | |
static const char * | UserKey |
Key name for associating with a Pass instance. More... | |
Friends | |
class | FFPRenderStateBuilder |
class | ProgramManager |
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().
Ogre::RTShader::TargetRenderState::TargetRenderState | ( | ) |
Class default constructor.
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.
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. |
void Ogre::RTShader::TargetRenderState::updateGpuProgramsParams | ( | Renderable * | rend, |
const Pass * | pass, | ||
const AutoParamDataSource * | source, | ||
const LightList * | pLightList | ||
) |
Update the GPU programs constant parameters before a renderable is rendered.
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. |
void Ogre::RTShader::TargetRenderState::addSubRenderStateInstance | ( | SubRenderState * | subRenderState | ) |
Add sub render state to this render state.
subRenderState | The sub render state to add. |
void Ogre::RTShader::TargetRenderState::removeSubRenderStateInstance | ( | SubRenderState * | subRenderState | ) |
Remove sub render state from this render state.
subRenderState | The sub render state to remove. |
void Ogre::RTShader::TargetRenderState::acquirePrograms | ( | Pass * | pass | ) |
Acquire CPU/GPU programs set associated with the given render state and bind them to the pass.
pass | The pass to bind the programs to. |
void Ogre::RTShader::TargetRenderState::releasePrograms | ( | Pass * | pass | ) |
Release CPU/GPU programs set associated with the given render state and pass.
pass | The pass to release the programs from. |
|
inherited |
Reset this render state.
|
inherited |
Add a template sub render state to this render state.
subRenderState | The sub render state template to add. |
|
inherited |
Remove a template sub render state from this render state.
subRenderState | The sub render state to remove. |
|
inlineinherited |
Get the list of the template sub render states composing this render state.
|
inherited |
Set the light count per light type.
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. |
|
inherited |
Get the light count per light type.
lightCount[0] defines the point light count. lightCount[1] defines the directional light count. lightCount[2] defines the spot light count.
|
inlineinherited |
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.
|
inlineinherited |
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.
|
friend |
|
friend |
|
static |
Key name for associating with a Pass instance.