protected internal virtual void RenderVisibleObjects()
{
// loop through each main render group ( which is already sorted)
for ( int i = 0; i < this.GetRenderQueue().NumRenderQueueGroups; i++ )
{
RenderQueueGroupID queueID = this.GetRenderQueue().GetRenderQueueGroupID( i );
RenderQueueGroup queueGroup = this.GetRenderQueue().GetQueueGroupByIndex( i );
if ( !this.specialCaseRenderQueueList.IsRenderQueueToBeProcessed( queueID ) )
continue;
if ( queueID == RenderQueueGroupID.Main )
{
this.renderingMainGroup = true;
}
bool repeatQueue = false;
// repeat
do
{
if ( this.OnRenderQueueStarted( queueID, illuminationStage == IlluminationRenderStage.RenderToTexture ?
String.Empty :
String.Empty ) )
{
// someone requested we skip this queue
continue;
}
if ( queueGroup.NumPriorityGroups > 0 )
{
// render objects in all groups
this.RenderQueueGroupObjects( queueGroup );
}
// true if someone requested that we repeat this queue
repeatQueue = this.OnRenderQueueEnded( queueID, illuminationStage == IlluminationRenderStage.RenderToTexture ?
String.Empty :
String.Empty );
} while ( repeatQueue );
this.renderingMainGroup = false;
} // for each queue group
}