OGRE  13.6
Object-Oriented Graphics Rendering Engine
Ogre::RenderPriorityGroup Class Reference

Collection of renderables by priority. More...

#include <OgreRenderQueueSortingGrouping.h>

+ Inheritance diagram for Ogre::RenderPriorityGroup:

Public Member Functions

 RenderPriorityGroup (RenderQueueGroup *parent, bool splitPassesByLightingType, bool splitNoShadowPasses, bool shadowCastersNotReceivers)
 
 ~RenderPriorityGroup ()
 
void addOrganisationMode (QueuedRenderableCollection::OrganisationMode om)
 Add a required sorting / grouping mode for the solids in this group. More...
 
void addRenderable (Renderable *pRend, Technique *pTech)
 Add a renderable to this group. More...
 
void clear (void)
 Clears this group of renderables. More...
 
void defaultOrganisationMode (void)
 Set the sorting / grouping mode for the solids in this group to the default. More...
 
const QueuedRenderableCollectiongetSolidsBasic (void) const
 Get the collection of basic solids currently queued, this includes all solids when there are no shadows, or all solids which have shadow receiving enabled when using modulative shadows, or all ambient passes of solids which have shadow receive enabled for additive shadows. More...
 
const QueuedRenderableCollectiongetSolidsDecal (void) const
 Get the collection of solids currently queued for decal passes (only applicable in additive shadow modes). More...
 
const QueuedRenderableCollectiongetSolidsDiffuseSpecular (void) const
 Get the collection of solids currently queued per light (only applicable in additive shadow modes). More...
 
const QueuedRenderableCollectiongetSolidsNoShadowReceive (void) const
 Get the collection of solids for which shadow receipt is disabled (only applicable when shadows are enabled). More...
 
const QueuedRenderableCollectiongetTransparents (void) const
 Get the collection of transparent objects currently queued. More...
 
const QueuedRenderableCollectiongetTransparentsUnsorted (void) const
 Get the collection of transparent objects currently queued. More...
 
void merge (const RenderPriorityGroup *rhs)
 Merge group of renderables. More...
 
void resetOrganisationModes (void)
 Reset the organisation modes required for the solids in this group. More...
 
void setShadowCastersCannotBeReceivers (bool ind)
 Sets whether or not objects which cast shadows should be treated as never receiving shadows. More...
 
void setSplitNoShadowPasses (bool split)
 Sets whether or not passes which have shadow receive disabled should be separated. More...
 
void setSplitPassesByLightingType (bool split)
 Sets whether or not the queue will split passes by their lighting type, ie ambient, per-light and decal. More...
 
void sort (const Camera *cam)
 Sorts the objects which have been added to the queue; transparent objects by their depth in relation to the passed in Camera. More...
 

Detailed Description

Collection of renderables by priority.

Remarks
This class simply groups renderables for rendering. All the renderables contained in this class are destined for the same RenderQueueGroup (coarse groupings like those between the main scene and overlays) and have the same priority (fine groupings for detailed overlap control).
This class can order solid renderables by a number of criteria; it can optimise them into groups based on pass to reduce render state changes, or can sort them by ascending or descending view depth. Transparent objects are always ordered by descending depth.
To iterate over items in the collections held by this object you should retrieve the collection in use (e.g. solids, solids with no shadows, transparents) and use the accept() method, providing a class implementing QueuedRenderableVisitor.

Constructor & Destructor Documentation

◆ RenderPriorityGroup()

Ogre::RenderPriorityGroup::RenderPriorityGroup ( RenderQueueGroup parent,
bool  splitPassesByLightingType,
bool  splitNoShadowPasses,
bool  shadowCastersNotReceivers 
)

◆ ~RenderPriorityGroup()

Ogre::RenderPriorityGroup::~RenderPriorityGroup ( )
inline

Member Function Documentation

◆ getSolidsBasic()

const QueuedRenderableCollection& Ogre::RenderPriorityGroup::getSolidsBasic ( void  ) const
inline

Get the collection of basic solids currently queued, this includes all solids when there are no shadows, or all solids which have shadow receiving enabled when using modulative shadows, or all ambient passes of solids which have shadow receive enabled for additive shadows.

◆ getSolidsDiffuseSpecular()

const QueuedRenderableCollection& Ogre::RenderPriorityGroup::getSolidsDiffuseSpecular ( void  ) const
inline

Get the collection of solids currently queued per light (only applicable in additive shadow modes).

◆ getSolidsDecal()

const QueuedRenderableCollection& Ogre::RenderPriorityGroup::getSolidsDecal ( void  ) const
inline

Get the collection of solids currently queued for decal passes (only applicable in additive shadow modes).

◆ getSolidsNoShadowReceive()

const QueuedRenderableCollection& Ogre::RenderPriorityGroup::getSolidsNoShadowReceive ( void  ) const
inline

Get the collection of solids for which shadow receipt is disabled (only applicable when shadows are enabled).

◆ getTransparentsUnsorted()

const QueuedRenderableCollection& Ogre::RenderPriorityGroup::getTransparentsUnsorted ( void  ) const
inline

Get the collection of transparent objects currently queued.

◆ getTransparents()

const QueuedRenderableCollection& Ogre::RenderPriorityGroup::getTransparents ( void  ) const
inline

Get the collection of transparent objects currently queued.

◆ resetOrganisationModes()

void Ogre::RenderPriorityGroup::resetOrganisationModes ( void  )

Reset the organisation modes required for the solids in this group.

Remarks
You can only do this when the group is empty, i.e. after clearing the queue.
See also
QueuedRenderableCollection::OrganisationMode

Referenced by Ogre::RenderQueueGroup::addRenderable(), and Ogre::RenderQueueGroup::merge().

◆ addOrganisationMode()

void Ogre::RenderPriorityGroup::addOrganisationMode ( QueuedRenderableCollection::OrganisationMode  om)

Add a required sorting / grouping mode for the solids in this group.

Remarks
You can only do this when the group is empty, i.e. after clearing the queue.
See also
QueuedRenderableCollection::OrganisationMode

Referenced by Ogre::RenderQueueGroup::addRenderable(), and Ogre::RenderQueueGroup::merge().

◆ defaultOrganisationMode()

void Ogre::RenderPriorityGroup::defaultOrganisationMode ( void  )

Set the sorting / grouping mode for the solids in this group to the default.

Remarks
You can only do this when the group is empty, i.e. after clearing the queue.
See also
QueuedRenderableCollection::OrganisationMode

◆ addRenderable()

void Ogre::RenderPriorityGroup::addRenderable ( Renderable pRend,
Technique pTech 
)

Add a renderable to this group.

Referenced by Ogre::RenderQueueGroup::addRenderable().

◆ sort()

void Ogre::RenderPriorityGroup::sort ( const Camera cam)

Sorts the objects which have been added to the queue; transparent objects by their depth in relation to the passed in Camera.

◆ clear()

void Ogre::RenderPriorityGroup::clear ( void  )

Clears this group of renderables.

◆ setSplitPassesByLightingType()

void Ogre::RenderPriorityGroup::setSplitPassesByLightingType ( bool  split)
inline

Sets whether or not the queue will split passes by their lighting type, ie ambient, per-light and decal.

◆ setSplitNoShadowPasses()

void Ogre::RenderPriorityGroup::setSplitNoShadowPasses ( bool  split)
inline

Sets whether or not passes which have shadow receive disabled should be separated.

◆ setShadowCastersCannotBeReceivers()

void Ogre::RenderPriorityGroup::setShadowCastersCannotBeReceivers ( bool  ind)
inline

Sets whether or not objects which cast shadows should be treated as never receiving shadows.

◆ merge()

void Ogre::RenderPriorityGroup::merge ( const RenderPriorityGroup rhs)

Merge group of renderables.

Referenced by Ogre::RenderQueueGroup::merge().


The documentation for this class was generated from the following file: