OGRE  1.7
Object-Oriented Graphics Rendering Engine
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Ogre::RTShader::TargetRenderState Class Reference

This is the target render state. More...

#include <OgreShaderRenderState.h>

+ Inheritance diagram for Ogre::RTShader::TargetRenderState:
+ Collaboration diagram for Ogre::RTShader::TargetRenderState:

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 SubRenderStateListgetTemplateSubRenderStateList () 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...
 
ProgramSetcreateProgramSet ()
 Create the program set of this render state. More...
 
void destroyProgramSet ()
 
ProgramSetgetProgramSet ()
 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...
 

Static Protected Member Functions

static int sSubRenderStateCompare (const void *p0, const void *p1)
 Comparison function of the sub render states. More...
 

Protected Attributes

int mLightCount [3]
 
bool mLightCountAutoUpdate
 
ProgramSetmProgramSet
 
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 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
subRenderStateThe sub render state to add.
void Ogre::RTShader::RenderState::addTemplateSubRenderState ( SubRenderState subRenderState)
inherited

Add a template sub render state to this render state.

Parameters
subRenderStateThe 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
lightCountThe 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
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.

Definition at line 110 of file OgreShaderRenderState.h.

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

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
inlineinherited

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
otherThe other render state to append to this state.
srcPassThe source pass that this render state is constructed from.
dstPassThe destination pass that constructed from this render state.
template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr)
inlineinherited

Definition at line 95 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr,
void *   
)
inlineinherited

Definition at line 101 of file OgreMemoryAllocatedObject.h.

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

Definition at line 107 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete[] ( void *  ptr)
inlineinherited

Definition at line 112 of file OgreMemoryAllocatedObject.h.

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

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 
)
inlineinherited

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)
inlineinherited

Definition at line 72 of file OgreMemoryAllocatedObject.h.

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

placement operator new

Definition at line 78 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new[] ( size_t  sz,
const char *  file,
int  line,
const char *  func 
)
inlineinherited

array operator new, with debug line info

Definition at line 85 of file OgreMemoryAllocatedObject.h.

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

Definition at line 90 of file OgreMemoryAllocatedObject.h.

void Ogre::RTShader::TargetRenderState::removeSubRenderStateInstance ( SubRenderState subRenderState)
protected

Remove sub render state from this render state.

Parameters
subRenderStateThe sub render state to remove.
void Ogre::RTShader::RenderState::removeTemplateSubRenderState ( SubRenderState subRenderState)
inherited

Remove a template sub render state from this render state.

Parameters
subRenderStateThe 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
lightCountThe 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)
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.

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 
)
staticprotected

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
rendThe renderable object that is going to be rendered.
passThe pass that is used to do the rendering operation.
sourceThe auto parameter auto source instance.
pLightListThe light list used for the current rendering operation.

Friends And Related Function Documentation

friend class FFPRenderStateBuilder
friend

Definition at line 208 of file OgreShaderRenderState.h.

friend class ProgramManager
friend

Definition at line 207 of file OgreShaderRenderState.h.

Member Data Documentation

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

Definition at line 118 of file OgreShaderRenderState.h.

bool Ogre::RTShader::RenderState::mLightCountAutoUpdate
protectedinherited

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
protectedinherited

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: