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