| OGRE 1.11.1 Object-Oriented Graphics Rendering Engine

Public Types | Public Member Functions | List of all members
Ogre::RenderQueueGroup Class Reference
Core » RenderSystem

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

`#include <OgreRenderQueueSortingGrouping.h>`

Inheritance diagram for Ogre::RenderQueueGroup:
[legend]

## Public Types
typedef ConstMapIterator< PriorityMap > | ConstPriorityMapIterator
typedef std::map< ushort, RenderPriorityGroup *, std::less< ushort > > | PriorityMap
typedef MapIterator< PriorityMap > | PriorityMapIterator

## Public Member Functions
| RenderQueueGroup (RenderQueue *parent, bool splitPassesByLightingType, bool splitNoShadowPasses, bool shadowCastersNotReceivers)
| ~RenderQueueGroup ()
void | addOrganisationMode (QueuedRenderableCollection::OrganisationMode om)
| Add a required sorting / grouping mode for the solids in this group. More...
void | addRenderable (Renderable *pRend, Technique *pTech, ushort priority)
| Add a renderable to this group, with the given priority. More...
void | clear (bool destroy=false)
| Clears this group of renderables. More...
void | defaultOrganisationMode (void)
| Setthe sorting / grouping mode for the solids in this group to the default. More...
PriorityMapIterator | getIterator (void)
| Get an iterator for browsing through child contents. More...
ConstPriorityMapIterator | getIterator (void) const
| Get a const iterator for browsing through child contents. More...
bool | getShadowsEnabled (void) const
| Are shadows enabled for this queue? More...
void | merge (const RenderQueueGroup *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 | setShadowsEnabled (bool enabled)
| Indicate whether a given queue group will be doing any shadow setup. More...
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. 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...

## 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).

## Member Typedef Documentation

## ◆ PriorityMap

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

## ◆ PriorityMapIterator

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

## ◆ ConstPriorityMapIterator

typedef ConstMapIterator<PriorityMap> Ogre::RenderQueueGroup::ConstPriorityMapIterator

## Constructor & Destructor Documentation

## ◆ RenderQueueGroup()

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

## ◆ ~RenderQueueGroup()

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

References OGRE_DELETE.

## Member Function Documentation

## ◆ getIterator() [1/2]

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

Get an iterator for browsing through child contents.

Referenced by merge().

## ◆ getIterator() [2/2]

ConstPriorityMapIterator Ogre::RenderQueueGroup::getIterator | ( | void |  | ) | const
| inline

Get a const iterator for browsing through child contents.

## ◆ addRenderable()

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

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

References Ogre::RenderPriorityGroup::addOrganisationMode(), Ogre::RenderPriorityGroup::addRenderable(), OGRE_NEW, and Ogre::RenderPriorityGroup::resetOrganisationModes().

## ◆ clear()

void Ogre::RenderQueueGroup::clear | ( | bool | destroy = `false` | ) |
| inline

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 roughly the same kinds of renderables are going to be sent to the queue again next time. If true, completely destroys.

References OGRE_DELETE.

## ◆ setShadowsEnabled()

void Ogre::RenderQueueGroup::setShadowsEnabled | ( | bool | enabled | ) |
| inline

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.

## ◆ getShadowsEnabled()

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

Are shadows enabled for this queue?

## ◆ setSplitPassesByLightingType()

void Ogre::RenderQueueGroup::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::RenderQueueGroup::setSplitNoShadowPasses | ( | bool | split | ) |
| inline

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.

## ◆ setShadowCastersCannotBeReceivers()

void Ogre::RenderQueueGroup::setShadowCastersCannotBeReceivers | ( | bool | ind | ) |
| inline

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

## ◆ resetOrganisationModes()

void Ogre::RenderQueueGroup::resetOrganisationModes | ( | void |  | ) |
| inline

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

## ◆ addOrganisationMode()

void Ogre::RenderQueueGroup::addOrganisationMode | ( | QueuedRenderableCollection::OrganisationMode | om | ) |
| inline

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

## ◆ defaultOrganisationMode()

void Ogre::RenderQueueGroup::defaultOrganisationMode | ( | void |  | ) |
| inline

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

## ◆ merge()

void Ogre::RenderQueueGroup::merge | ( | const RenderQueueGroup * | rhs | ) |
| inline

Merge group of renderables.

References Ogre::RenderPriorityGroup::addOrganisationMode(), getIterator(), Ogre::MapIteratorWrapper< T, IteratorType >::getNext(), Ogre::IteratorWrapper< T, IteratorType, ValType >::hasMoreElements(), Ogre::RenderPriorityGroup::merge(), OGRE_NEW, Ogre::MapIteratorWrapper< T, IteratorType >::peekNextKey(), and Ogre::RenderPriorityGroup::resetOrganisationModes().

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

- OgreRenderQueueSortingGrouping.h