27#ifndef _ShaderRenderState_
28#define _ShaderRenderState_
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.
Container class for shader based programs.
void reset()
Reset this render state.
friend class FFPRenderStateBuilder
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.
friend class ProgramManager
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.
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.
friend class ProgramManager
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.
HashedVector< Light * > LightList
vector< SubRenderState * >::type SubRenderStateList
vector< RenderState * >::type RenderStateList
RenderStateList::const_iterator RenderStateConstIterator
RenderStateList::iterator RenderStateIterator
GeneralAllocatedObject RTShaderSystemAlloc