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