Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

Ogre::RenderPriorityGroup Class Reference

Collection of renderables by priority. More...

#include <OgreRenderQueueSortingGrouping.h>

List of all members.

Public Member Functions

 RenderPriorityGroup (RenderQueueGroup *parent, bool splitPassesByLightingType, bool splitNoShadowPasses, bool shadowCastersNotReceivers)
 ~RenderPriorityGroup ()
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.

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

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

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

const QueuedRenderableCollectiongetTransparents (void) const
 Get the collection of transparent objects currently queued.

void resetOrganisationModes (void)
 Reset the organisation modes required for the solids in this group.

void addOrganisationMode (QueuedRenderableCollection::OrganisationMode om)
 Add a required sorting / grouping mode for the solids in this group.

void defaultOrganisationMode (void)
 Set the sorting / grouping mode for the solids in this group to the default.

void addRenderable (Renderable *pRend, Technique *pTech)
 Add a renderable to this group.

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.

void clear (void)
 Clears this group of renderables.

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

void setSplitNoShadowPasses (bool split)
 Sets whether or not passes which have shadow receive disabled should be separated.

void setShadowCastersCannotBeReceivers (bool ind)
 Sets whether or not objects which cast shadows should be treated as never receiving shadows.


Protected Member Functions

void removePassEntry (Pass *p)
 remove a pass entry from all collections

void addSolidRenderable (Technique *pTech, Renderable *rend, bool toNoShadowMap)
 Internal method for adding a solid renderable.

void addSolidRenderableSplitByLightType (Technique *pTech, Renderable *rend)
 Internal method for adding a solid renderable.

void addTransparentRenderable (Technique *pTech, Renderable *rend)
 Internal method for adding a transparent renderable.


Protected Attributes

RenderQueueGroupmParent
 Parent queue group.

bool mSplitPassesByLightingType
bool mSplitNoShadowPasses
bool mShadowCastersNotReceivers
QueuedRenderableCollection mSolidsBasic
 Solid pass list, used when no shadows, modulative shadows, or ambient passes for additive.

QueuedRenderableCollection mSolidsDiffuseSpecular
 Solid per-light pass list, used with additive shadows.

QueuedRenderableCollection mSolidsDecal
 Solid decal (texture) pass list, used with additive shadows.

QueuedRenderableCollection mSolidsNoShadowReceive
 Solid pass list, used when shadows are enabled but shadow receive is turned off for these passes.

QueuedRenderableCollection mTransparents
 Transparent list.


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.

Definition at line 311 of file OgreRenderQueueSortingGrouping.h.


Constructor & Destructor Documentation

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

Ogre::RenderPriorityGroup::~RenderPriorityGroup  ) 
 

Definition at line 347 of file OgreRenderQueueSortingGrouping.h.


Member Function Documentation

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, ie after clearing the queue.
See also:
QueuedRenderableCollection::OrganisationMode

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

Add a renderable to this group.

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

void Ogre::RenderPriorityGroup::addSolidRenderable Technique pTech,
Renderable rend,
bool  toNoShadowMap
[protected]
 

Internal method for adding a solid renderable.

void Ogre::RenderPriorityGroup::addSolidRenderableSplitByLightType Technique pTech,
Renderable rend
[protected]
 

Internal method for adding a solid renderable.

void Ogre::RenderPriorityGroup::addTransparentRenderable Technique pTech,
Renderable rend
[protected]
 

Internal method for adding a transparent renderable.

void Ogre::RenderPriorityGroup::clear void   ) 
 

Clears this group of renderables.

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, ie after clearing the queue.
See also:
QueuedRenderableCollection::OrganisationMode

const QueuedRenderableCollection& Ogre::RenderPriorityGroup::getSolidsBasic 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.

Definition at line 353 of file OgreRenderQueueSortingGrouping.h.

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

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

Definition at line 361 of file OgreRenderQueueSortingGrouping.h.

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

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

Definition at line 357 of file OgreRenderQueueSortingGrouping.h.

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

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

Definition at line 365 of file OgreRenderQueueSortingGrouping.h.

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

Get the collection of transparent objects currently queued.

Definition at line 368 of file OgreRenderQueueSortingGrouping.h.

void Ogre::RenderPriorityGroup::removePassEntry Pass p  )  [protected]
 

remove a pass entry from all collections

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, ie after clearing the queue.
See also:
QueuedRenderableCollection::OrganisationMode

void Ogre::RenderPriorityGroup::setShadowCastersCannotBeReceivers bool  ind  ) 
 

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

Definition at line 426 of file OgreRenderQueueSortingGrouping.h.

void Ogre::RenderPriorityGroup::setSplitNoShadowPasses bool  split  ) 
 

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

Definition at line 418 of file OgreRenderQueueSortingGrouping.h.

void Ogre::RenderPriorityGroup::setSplitPassesByLightingType bool  split  ) 
 

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

Definition at line 410 of file OgreRenderQueueSortingGrouping.h.

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.


Member Data Documentation

RenderQueueGroup* Ogre::RenderPriorityGroup::mParent [protected]
 

Parent queue group.

Definition at line 316 of file OgreRenderQueueSortingGrouping.h.

bool Ogre::RenderPriorityGroup::mShadowCastersNotReceivers [protected]
 

Definition at line 319 of file OgreRenderQueueSortingGrouping.h.

QueuedRenderableCollection Ogre::RenderPriorityGroup::mSolidsBasic [protected]
 

Solid pass list, used when no shadows, modulative shadows, or ambient passes for additive.

Definition at line 321 of file OgreRenderQueueSortingGrouping.h.

QueuedRenderableCollection Ogre::RenderPriorityGroup::mSolidsDecal [protected]
 

Solid decal (texture) pass list, used with additive shadows.

Definition at line 325 of file OgreRenderQueueSortingGrouping.h.

QueuedRenderableCollection Ogre::RenderPriorityGroup::mSolidsDiffuseSpecular [protected]
 

Solid per-light pass list, used with additive shadows.

Definition at line 323 of file OgreRenderQueueSortingGrouping.h.

QueuedRenderableCollection Ogre::RenderPriorityGroup::mSolidsNoShadowReceive [protected]
 

Solid pass list, used when shadows are enabled but shadow receive is turned off for these passes.

Definition at line 327 of file OgreRenderQueueSortingGrouping.h.

bool Ogre::RenderPriorityGroup::mSplitNoShadowPasses [protected]
 

Definition at line 318 of file OgreRenderQueueSortingGrouping.h.

bool Ogre::RenderPriorityGroup::mSplitPassesByLightingType [protected]
 

Definition at line 317 of file OgreRenderQueueSortingGrouping.h.

QueuedRenderableCollection Ogre::RenderPriorityGroup::mTransparents [protected]
 

Transparent list.

Definition at line 329 of file OgreRenderQueueSortingGrouping.h.


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

Copyright © 2000-2005 by The OGRE Team
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Mar 12 14:42:09 2006