OGRE: Ogre::RenderQueueGroup Class Reference - OGRE Documentation

# 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>`

Inheritance diagram for Ogre::RenderQueueGroup:

[legend]

List of all members.

## Public Types
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 ()
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.
void * | operator new (size_t sz, const char *file, int line, const char *func)
| operator new, with debug line info
void * | operator new (size_t sz)
void * | operator new (size_t sz, void *ptr)
| placement operator new
void * | operator new[] (size_t sz, const char *file, int line, const char *func)
| array operator new, with debug line info
void * | operator new[] (size_t sz)
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 *)
## Protected Attributes
RenderQueue * | mParent
bool | mSplitPassesByLightingType
bool | mSplitNoShadowPasses
bool | mShadowCastersNotReceivers
PriorityMap | mPriorityGroups
| Map of RenderPriorityGroup objects.
bool | mShadowsEnabled
| Whether shadows are enabled for this queue.
uint8 | mOrganisationMode
| Bitmask of the organisation modes requested (for new priority groups).

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

## Member Typedef Documentation

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

Definition at line 457 of file OgreRenderQueueSortingGrouping.h.

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

Definition at line 458 of file OgreRenderQueueSortingGrouping.h.

## Constructor & Destructor Documentation

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

Definition at line 473 of file OgreRenderQueueSortingGrouping.h.

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

Definition at line 486 of file OgreRenderQueueSortingGrouping.h.

References OGRE_DELETE.

## Member Function Documentation

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

Get an iterator for browsing through child contents.

Definition at line 496 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 502 of file OgreRenderQueueSortingGrouping.h.

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

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

References OGRE_DELETE.

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

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

Are shadows enabled for this queue?

Definition at line 571 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 576 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 590 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 603 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 619 of file OgreRenderQueueSortingGrouping.h.

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

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 62 of file OgreMemoryAllocatedObject.h.

template<class Alloc>

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

Definition at line 67 of file OgreMemoryAllocatedObject.h.

template<class Alloc>

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

placement operator new

Definition at line 73 of file OgreMemoryAllocatedObject.h.

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 79 of file OgreMemoryAllocatedObject.h.

template<class Alloc>

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

Definition at line 84 of file OgreMemoryAllocatedObject.h.

template<class Alloc>

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

Definition at line 89 of file OgreMemoryAllocatedObject.h.

template<class Alloc>

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

Definition at line 95 of file OgreMemoryAllocatedObject.h.

template<class Alloc>

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

Definition at line 101 of file OgreMemoryAllocatedObject.h.

template<class Alloc>

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

Definition at line 106 of file OgreMemoryAllocatedObject.h.

template<class Alloc>

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

Definition at line 112 of file OgreMemoryAllocatedObject.h.

## Member Data Documentation

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

Definition at line 460 of file OgreRenderQueueSortingGrouping.h.

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

Definition at line 461 of file OgreRenderQueueSortingGrouping.h.

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

Definition at line 462 of file OgreRenderQueueSortingGrouping.h.

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

Definition at line 463 of file OgreRenderQueueSortingGrouping.h.

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

Map of RenderPriorityGroup objects.

Definition at line 465 of file OgreRenderQueueSortingGrouping.h.

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

Whether shadows are enabled for this queue.

Definition at line 467 of file OgreRenderQueueSortingGrouping.h.

uint8 Ogre::RenderQueueGroup::mOrganisationMode`[protected]`

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

Definition at line 469 of file OgreRenderQueueSortingGrouping.h.

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

- OgreRenderQueueSortingGrouping.h

Copyright © 2008 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Jul 26 11:35:22 2009