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 map< ushort, RenderPriorityGroup *, std::less< ushort > >::type | 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 | operator delete (void *ptr)
void | operator delete (void *ptr, void *)
void | operator delete (void *ptr, const char *, int, const char *)
void | operator delete[] (void *ptr)
void | operator delete[] (void *ptr, const char *, int, const char *)
void * | operator new (size_t sz, const char *file, int line, const char *func)
| operator new, with debug line info More...
void * | operator new (size_t sz)
void * | operator new (size_t sz, void *ptr)
| placement operator new More...
void * | operator new[] (size_t sz, const char *file, int line, const char *func)
| array operator new, with debug line info More...
void * | operator new[] (size_t sz)
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...

## Protected Attributes

uint8 | mOrganisationMode
| Bitmask of the organisation modes requested (for new priority groups) More...
RenderQueue * | mParent
PriorityMap | mPriorityGroups
| Map of RenderPriorityGroup objects. More...
bool | mShadowCastersNotReceivers
bool | mShadowsEnabled
| Whether shadows are enabled for this queue. More...
bool | mSplitNoShadowPasses
bool | mSplitPassesByLightingType

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

## Member Typedef Documentation

## ConstPriorityMapIterator

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

Definition at line 470 of file OgreRenderQueueSortingGrouping.h.

## PriorityMap

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

Definition at line 468 of file OgreRenderQueueSortingGrouping.h.

## PriorityMapIterator

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

Definition at line 469 of file OgreRenderQueueSortingGrouping.h.

## Constructor & Destructor Documentation

## RenderQueueGroup()

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

Definition at line 485 of file OgreRenderQueueSortingGrouping.h.

## ~RenderQueueGroup()

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

Definition at line 498 of file OgreRenderQueueSortingGrouping.h.

References OGRE_DELETE.

## Member Function Documentation

## addOrganisationMode()

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

## addRenderable()

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

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

Definition at line 520 of file OgreRenderQueueSortingGrouping.h.

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

## clear()

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

Definition at line 557 of file OgreRenderQueueSortingGrouping.h.

References OGRE_DELETE.

## defaultOrganisationMode()

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

## getIterator() [1/2]

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

Get an iterator for browsing through child contents.

Definition at line 508 of file OgreRenderQueueSortingGrouping.h.

Referenced by merge().

## getIterator() [2/2]

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

Get a const iterator for browsing through child contents.

Definition at line 514 of file OgreRenderQueueSortingGrouping.h.

## getShadowsEnabled()

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

Are shadows enabled for this queue?

Definition at line 589 of file OgreRenderQueueSortingGrouping.h.

## merge()

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

Merge group of renderables.

Definition at line 687 of file OgreRenderQueueSortingGrouping.h.

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

## operator delete() [1/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr | ) |

inherited

Definition at line 96 of file OgreMemoryAllocatedObject.h.

## operator delete() [2/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | void * |
| ) |  |

inherited

Definition at line 102 of file OgreMemoryAllocatedObject.h.

## operator delete() [3/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |
| ) |  |

inherited

Definition at line 108 of file OgreMemoryAllocatedObject.h.

## operator delete[]() [1/2]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr | ) |

inherited

Definition at line 113 of file OgreMemoryAllocatedObject.h.

## operator delete[]() [2/2]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |
| ) |  |

inherited

Definition at line 119 of file OgreMemoryAllocatedObject.h.

## operator new() [1/3]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func
| ) |  |

inherited

operator new, with debug line info

Definition at line 68 of file OgreMemoryAllocatedObject.h.

## operator new() [2/3]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz | ) |

inherited

Definition at line 73 of file OgreMemoryAllocatedObject.h.

## operator new() [3/3]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | void * | ptr
| ) |  |

inherited

placement operator new

Definition at line 79 of file OgreMemoryAllocatedObject.h.

## operator new[]() [1/2]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func
| ) |  |

inherited

array operator new, with debug line info

Definition at line 86 of file OgreMemoryAllocatedObject.h.

## operator new[]() [2/2]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz | ) |

inherited

Definition at line 91 of file OgreMemoryAllocatedObject.h.

## resetOrganisationModes()

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

## setShadowCastersCannotBeReceivers()

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

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

Definition at line 621 of file OgreRenderQueueSortingGrouping.h.

## setShadowsEnabled()

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

## setSplitNoShadowPasses()

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

## setSplitPassesByLightingType()

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

## Member Data Documentation

## mOrganisationMode

uint8 Ogre::RenderQueueGroup::mOrganisationMode

protected

Bitmask of the organisation modes requested (for new priority groups)

Definition at line 481 of file OgreRenderQueueSortingGrouping.h.

## mParent

RenderQueue* Ogre::RenderQueueGroup::mParent

protected

Definition at line 472 of file OgreRenderQueueSortingGrouping.h.

## mPriorityGroups

PriorityMap Ogre::RenderQueueGroup::mPriorityGroups

protected

Map of RenderPriorityGroup objects.

Definition at line 477 of file OgreRenderQueueSortingGrouping.h.

## mShadowCastersNotReceivers

bool Ogre::RenderQueueGroup::mShadowCastersNotReceivers

protected

Definition at line 475 of file OgreRenderQueueSortingGrouping.h.

## mShadowsEnabled

bool Ogre::RenderQueueGroup::mShadowsEnabled

protected

Whether shadows are enabled for this queue.

Definition at line 479 of file OgreRenderQueueSortingGrouping.h.

## mSplitNoShadowPasses

bool Ogre::RenderQueueGroup::mSplitNoShadowPasses

protected

Definition at line 474 of file OgreRenderQueueSortingGrouping.h.

## mSplitPassesByLightingType

bool Ogre::RenderQueueGroup::mSplitPassesByLightingType

protected

Definition at line 473 of file OgreRenderQueueSortingGrouping.h.

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

- OgreRenderQueueSortingGrouping.h

Copyright © 2012 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.