27#ifndef _ShaderRenderState_
28#define _ShaderRenderState_
125 friend class FFPRenderStateBuilder;
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
This utility class is used to hold the information used to generate the matrices and other informatio...
Class defining a single pass of a Technique (of a Material), i.e.
A singleton manager class that manages shader based programs.
Container class for shader based programs.
This is a container class for sub render state class.
void reset()
Reset this render state.
SubRenderStateList mSubRenderStateList
void setLightCount(const int lightCount[3])
Set the light count per light type.
RenderState()
Class default constructor.
bool mLightCountAutoUpdate
void getLightCount(int lightCount[3]) const
Get the light count per light type.
void setLightCountAutoUpdate(bool autoUpdate)
Set the light count auto update state.
virtual ~RenderState()
Class destructor.
void removeTemplateSubRenderState(SubRenderState *subRenderState)
Remove a template sub render state from this render state.
bool getLightCountAutoUpdate() const
Return true if this render state override the light count.
const SubRenderStateList & getTemplateSubRenderStateList() const
Get the list of the template sub render states composing this render state.
void addTemplateSubRenderState(SubRenderState *subRenderState)
Add a template sub render state to this render state.
This class is the base interface of sub part from a shader based rendering pipeline.
This is the target render state.
bool mSubRenderStateSortValid
ProgramSet * getProgramSet()
Return the program set of this render state.
friend class FFPRenderStateBuilder
bool createCpuPrograms()
Create CPU programs that represent this render state.
void link(const RenderState &other, Pass *srcPass, Pass *dstPass)
Link this target render state with the given render state.
void removeSubRenderStateInstance(SubRenderState *subRenderState)
Remove sub render state from this render state.
virtual ~TargetRenderState()
Class destructor.
void addSubRenderStateInstance(SubRenderState *subRenderState)
Add sub render state to this render state.
ProgramSet * createProgramSet()
Create the program set of this 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 sortSubRenderStates()
Sort the sub render states composing this render state.
TargetRenderState()
Class default constructor.
Abstract class defining the interface all renderable objects must implement.
vector< SubRenderState * >::type SubRenderStateList
vector< RenderState * >::type RenderStateList
RenderStateList::const_iterator RenderStateConstIterator
RenderStateList::iterator RenderStateIterator