Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound 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< PriorityMap > | PriorityMapIterator

## Public Methods

| RenderQueueGroup (RenderQueue *parent, bool splitPassesByLightingType, bool splitNoShadowPasses)
| ~RenderQueueGroup ()
PriorityMapIterator | getIterator (void)
| Get an iterator for browsing through child contents.
void | addRenderable (Renderable *pRend, ushort priority)
| Add a renderable to this group, with the given priority.
void | clear (void)
| 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.

## Protected Attributes

RenderQueue * | mParent
bool | mSplitPassesByLightingType
bool | mSplitNoShadowPasses
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).

  This is an internal OGRE class, not intended for apps to use.

Definition at line 229 of file OgreRenderQueueSortingGrouping.h.

## Member Typedef Documentation

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

| Definition at line 232 of file OgreRenderQueueSortingGrouping.h.

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

| Definition at line 233 of file OgreRenderQueueSortingGrouping.h. Referenced by getIterator().

## Constructor & Destructor Documentation

Ogre::RenderQueueGroup::RenderQueueGroup | ( | RenderQueue * | parent,
|  | bool | splitPassesByLightingType,
|  | bool | splitNoShadowPasses
| ) |

| Definition at line 245 of file OgreRenderQueueSortingGrouping.h. References mShadowsEnabled, mSplitNoShadowPasses, and mSplitPassesByLightingType.

Ogre::RenderQueueGroup::~RenderQueueGroup | ( |  | ) |

| Definition at line 250 of file OgreRenderQueueSortingGrouping.h. References mPriorityGroups.

## Member Function Documentation

void Ogre::RenderQueueGroup::addRenderable | ( | Renderable * | pRend,
|  | ushort | priority
| ) |

| Add a renderable to this group, with the given priority. Definition at line 266 of file OgreRenderQueueSortingGrouping.h. References Ogre::RenderPriorityGroup::addRenderable(), mPriorityGroups, mSplitNoShadowPasses, mSplitPassesByLightingType, and Ogre::ushort. Referenced by Ogre::RenderQueue::addRenderable().

void Ogre::RenderQueueGroup::clear | ( | void |  | ) |

Clears this group of renderables.

Remarks:
  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.

Definition at line 294 of file OgreRenderQueueSortingGrouping.h.

References mPriorityGroups.

PriorityMapIterator Ogre::RenderQueueGroup::getIterator | ( | void |  | ) |

Get an iterator for browsing through child contents.

Definition at line 260 of file OgreRenderQueueSortingGrouping.h.

References mPriorityGroups, and PriorityMapIterator.

Referenced by Ogre::SceneManager::renderAdditiveStencilShadowedQueueGroupObjects(), Ogre::SceneManager::renderBasicQueueGroupObjects(), Ogre::SceneManager::renderModulativeStencilShadowedQueueGroupObjects(), Ogre::SceneManager::renderModulativeTextureShadowedQueueGroupObjects(), Ogre::SceneManager::renderTextureShadowCasterQueueGroupObjects(), and Ogre::SceneManager::renderTextureShadowReceiverQueueGroupObjects().

bool Ogre::RenderQueueGroup::getShadowsEnabled | ( | void |  | ) | const

| Are shadows enabled for this queue? Definition at line 320 of file OgreRenderQueueSortingGrouping.h. References mShadowsEnabled. Referenced by Ogre::SceneManager::renderModulativeTextureShadowedQueueGroupObjects(), and Ogre::SceneManager::renderQueueGroupObjects().

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 317 of file OgreRenderQueueSortingGrouping.h.

References mShadowsEnabled.

Referenced by Ogre::SceneManager::initRenderQueue().

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 339 of file OgreRenderQueueSortingGrouping.h. References mPriorityGroups, and mSplitNoShadowPasses.

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 325 of file OgreRenderQueueSortingGrouping.h. References mPriorityGroups, and mSplitPassesByLightingType.

## Member Data Documentation

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

| Definition at line 235 of file OgreRenderQueueSortingGrouping.h.

PriorityMap Ogre::RenderQueueGroup::mPriorityGroups`[protected]`

| Map of RenderPriorityGroup objects. Definition at line 239 of file OgreRenderQueueSortingGrouping.h. Referenced by addRenderable(), clear(), getIterator(), setSplitNoShadowPasses(), setSplitPassesByLightingType(), and ~RenderQueueGroup().

bool Ogre::RenderQueueGroup::mShadowsEnabled`[protected]`

| Whether shadows are enabled for this queue. Definition at line 241 of file OgreRenderQueueSortingGrouping.h. Referenced by getShadowsEnabled(), RenderQueueGroup(), and setShadowsEnabled().

bool Ogre::RenderQueueGroup::mSplitNoShadowPasses`[protected]`

| Definition at line 237 of file OgreRenderQueueSortingGrouping.h. Referenced by addRenderable(), RenderQueueGroup(), and setSplitNoShadowPasses().

bool Ogre::RenderQueueGroup::mSplitPassesByLightingType`[protected]`

| Definition at line 236 of file OgreRenderQueueSortingGrouping.h. Referenced by addRenderable(), RenderQueueGroup(), and setSplitPassesByLightingType().

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

- OgreRenderQueueSortingGrouping.h

Copyright © 2002-2003 by The OGRE Team
Last modified Sun Nov 28 19:51:29 2004