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

Ogre::RenderQueueGroup Class Reference

A grouping level underneath RenderQueue which groups renderables to be issued at coarsely the same time to the renderer. More...

#include <OgreRenderQueueSortingGrouping.h>

List of all members.

Public Types

typedef std::map< ushort,
RenderPriorityGroup *, std::less<
ushort > > 
PriorityMap
typedef MapIterator< PriorityMapPriorityMapIterator

Public Member Functions

 RenderQueueGroup (RenderQueue *parent, bool splitPassesByLightingType, bool splitNoShadowPasses, bool shadowCastersNotReceivers)
 ~RenderQueueGroup ()
PriorityMapIterator getIterator (void)
 Get an iterator for browsing through child contents.

void addRenderable (Renderable *pRend, Technique *pTech, ushort priority)
 Add a renderable to this group, with the given priority.

void clear (bool destroy=false)
 Clears this group of renderables.

void setShadowsEnabled (bool enabled)
 Indicate whether a given queue group will be doing any shadow setup.

bool getShadowsEnabled (void) const
 Are shadows enabled for this queue?

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 the queue will split passes which have shadow receive turned off (in their parent material), which is needed when certain shadow techniques are used.

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

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)
 Setthe sorting / grouping mode for the solids in this group to the default.


Protected Attributes

RenderQueuemParent
bool mSplitPassesByLightingType
bool mSplitNoShadowPasses
bool mShadowCastersNotReceivers
PriorityMap mPriorityGroups
 Map of RenderPriorityGroup objects.

bool mShadowsEnabled
 Whether shadows are enabled for this queue.


Detailed Description

A grouping level underneath RenderQueue which groups renderables to be issued at coarsely the same time to the renderer.

Remarks:
Each instance of this class itself hold RenderPriorityGroup instances, which are the groupings of renderables by priority for fine control of ordering (not required for most instances).

Definition at line 443 of file OgreRenderQueueSortingGrouping.h.


Member Typedef Documentation

typedef std::map<ushort, RenderPriorityGroup*, std::less<ushort> > Ogre::RenderQueueGroup::PriorityMap
 

Definition at line 446 of file OgreRenderQueueSortingGrouping.h.

typedef MapIterator<PriorityMap> Ogre::RenderQueueGroup::PriorityMapIterator
 

Definition at line 447 of file OgreRenderQueueSortingGrouping.h.

Referenced by getIterator().


Constructor & Destructor Documentation

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

Definition at line 460 of file OgreRenderQueueSortingGrouping.h.

Ogre::RenderQueueGroup::~RenderQueueGroup  ) 
 

Definition at line 472 of file OgreRenderQueueSortingGrouping.h.


Member Function Documentation

void Ogre::RenderQueueGroup::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

Definition at line 615 of file OgreRenderQueueSortingGrouping.h.

void Ogre::RenderQueueGroup::addRenderable Renderable pRend,
Technique pTech,
ushort  priority
 

Add a renderable to this group, with the given priority.

Definition at line 488 of file OgreRenderQueueSortingGrouping.h.

References Ogre::RenderPriorityGroup::addRenderable(), and Ogre::ushort.

void Ogre::RenderQueueGroup::clear bool  destroy = false  ) 
 

Clears this group of renderables.

Parameters:
destroy If false, doesn't delete any priority groups, just empties them. Saves on memory deallocations since the chances are rougly the same kinds of renderables are going to be sent to the queue again next time. If true, completely destroys.

Definition at line 519 of file OgreRenderQueueSortingGrouping.h.

void Ogre::RenderQueueGroup::defaultOrganisationMode void   ) 
 

Setthe 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

Definition at line 631 of file OgreRenderQueueSortingGrouping.h.

PriorityMapIterator Ogre::RenderQueueGroup::getIterator void   ) 
 

Get an iterator for browsing through child contents.

Definition at line 482 of file OgreRenderQueueSortingGrouping.h.

References PriorityMapIterator.

bool Ogre::RenderQueueGroup::getShadowsEnabled void   )  const
 

Are shadows enabled for this queue?

Definition at line 551 of file OgreRenderQueueSortingGrouping.h.

void Ogre::RenderQueueGroup::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

Definition at line 599 of file OgreRenderQueueSortingGrouping.h.

void Ogre::RenderQueueGroup::setShadowCastersCannotBeReceivers bool  ind  ) 
 

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

Definition at line 583 of file OgreRenderQueueSortingGrouping.h.

void Ogre::RenderQueueGroup::setShadowsEnabled bool  enabled  ) 
 

Indicate whether a given queue group will be doing any shadow setup.

Remarks:
This method allows you to inform the queue about a queue group, and to indicate whether this group will require shadow processing of any sort. In order to preserve rendering order, OGRE has to treat queue groups as very separate elements of the scene, and this can result in it having to duplicate shadow setup for each group. Therefore, if you know that a group which you are using will never need shadows, you should preregister the group using this method in order to improve the performance.

Definition at line 548 of file OgreRenderQueueSortingGrouping.h.

void Ogre::RenderQueueGroup::setSplitNoShadowPasses bool  split  ) 
 

Sets whether or not the queue will split passes which have shadow receive turned off (in their parent material), which is needed when certain shadow techniques are used.

Definition at line 570 of file OgreRenderQueueSortingGrouping.h.

void Ogre::RenderQueueGroup::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 556 of file OgreRenderQueueSortingGrouping.h.


Member Data Documentation

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

Definition at line 449 of file OgreRenderQueueSortingGrouping.h.

PriorityMap Ogre::RenderQueueGroup::mPriorityGroups [protected]
 

Map of RenderPriorityGroup objects.

Definition at line 454 of file OgreRenderQueueSortingGrouping.h.

bool Ogre::RenderQueueGroup::mShadowCastersNotReceivers [protected]
 

Definition at line 452 of file OgreRenderQueueSortingGrouping.h.

bool Ogre::RenderQueueGroup::mShadowsEnabled [protected]
 

Whether shadows are enabled for this queue.

Definition at line 456 of file OgreRenderQueueSortingGrouping.h.

bool Ogre::RenderQueueGroup::mSplitNoShadowPasses [protected]
 

Definition at line 451 of file OgreRenderQueueSortingGrouping.h.

bool Ogre::RenderQueueGroup::mSplitPassesByLightingType [protected]
 

Definition at line 450 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:10 2006