Ogre::RenderPriorityGroup Class Reference
Core » RenderSystem

Collection of renderables by priority. More...

`#include <OgreRenderQueueSortingGrouping.h>`

Inheritance diagram for Ogre::RenderPriorityGroup:
[legend]

## Public Member Functions

| RenderPriorityGroup (RenderQueueGroup *parent, bool splitPassesByLightingType, bool splitNoShadowPasses, bool shadowCastersNotReceivers)
| ~RenderPriorityGroup ()
void | addOrganisationMode (QueuedRenderableCollection::OrganisationMode om)
| Add a required sorting / grouping mode for the solids in this group. More...
void | addRenderable (Renderable *pRend, Technique *pTech)
| Add a renderable to this group. More...
void | clear (void)
| Clears this group of renderables. More...
void | defaultOrganisationMode (void)
| Set the sorting / grouping mode for the solids in this group to the default. More...
const QueuedRenderableCollection & | getSolidsBasic (void) const
| Get the collection of basic solids currently queued, this includes all solids when there are no shadows, or all solids which have shadow receiving enabled when using modulative shadows, or all ambient passes of solids which have shadow receive enabled for additive shadows. More...
const QueuedRenderableCollection & | getSolidsDecal (void) const
| Get the collection of solids currently queued for decal passes (only applicable in additive shadow modes). More...
const QueuedRenderableCollection & | getSolidsDiffuseSpecular (void) const
| Get the collection of solids currently queued per light (only applicable in additive shadow modes). More...
const QueuedRenderableCollection & | getSolidsNoShadowReceive (void) const
| Get the collection of solids for which shadow receipt is disabled (only applicable when shadows are enabled). More...
const QueuedRenderableCollection & | getTransparents (void) const
| Get the collection of transparent objects currently queued. More...
const QueuedRenderableCollection & | getTransparentsUnsorted (void) const
| Get the collection of transparent objects currently queued. More...
void | merge (const RenderPriorityGroup *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 | setSplitNoShadowPasses (bool split)
| Sets whether or not passes which have shadow receive disabled should be separated. 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...
void | sort (const Camera *cam)
| Sorts the objects which have been added to the queue; transparent objects by their depth in relation to the passed in Camera. More...

## Protected Member Functions

void | addSolidRenderable (Technique *pTech, Renderable *rend, bool toNoShadowMap)
| Internal method for adding a solid renderable. More...
void | addSolidRenderableSplitByLightType (Technique *pTech, Renderable *rend)
| Internal method for adding a solid renderable. More...
void | addTransparentRenderable (Technique *pTech, Renderable *rend)
| Internal method for adding a transparent renderable. More...
void | addUnsortedTransparentRenderable (Technique *pTech, Renderable *rend)
| Internal method for adding an unsorted transparent renderable. More...
void | removePassEntry (Pass *p)
| remove a pass entry from all collections More...

## Protected Attributes

RenderQueueGroup * | mParent
| Parent queue group. More...
bool | mShadowCastersNotReceivers
QueuedRenderableCollection | mSolidsBasic
| Solid pass list, used when no shadows, modulative shadows, or ambient passes for additive. More...
QueuedRenderableCollection | mSolidsDecal
| Solid decal (texture) pass list, used with additive shadows. More...
QueuedRenderableCollection | mSolidsDiffuseSpecular
| Solid per-light pass list, used with additive shadows. More...
QueuedRenderableCollection | mSolidsNoShadowReceive
| Solid pass list, used when shadows are enabled but shadow receive is turned off for these passes. More...
bool | mSplitNoShadowPasses
bool | mSplitPassesByLightingType
QueuedRenderableCollection | mTransparents
| Transparent list. More...
QueuedRenderableCollection | mTransparentsUnsorted
| Unsorted transparent list. More...

## Detailed Description

Collection of renderables by priority.

Remarks
  This class simply groups renderables for rendering. All the renderables contained in this class are destined for the same RenderQueueGroup (coarse groupings like those between the main scene and overlays) and have the same priority (fine groupings for detailed overlap control).

  This class can order solid renderables by a number of criteria; it can optimise them into groups based on pass to reduce render state changes, or can sort them by ascending or descending view depth. Transparent objects are always ordered by descending depth.

  To iterate over items in the collections held by this object you should retrieve the collection in use (e.g. solids, solids with no shadows, transparents) and use the accept() method, providing a class implementing QueuedRenderableVisitor.

Definition at line 323 of file OgreRenderQueueSortingGrouping.h.

## Constructor & Destructor Documentation

## RenderPriorityGroup()

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

## ~RenderPriorityGroup()

Ogre::RenderPriorityGroup::~RenderPriorityGroup | ( |  | ) |

Definition at line 363 of file OgreRenderQueueSortingGrouping.h.

## Member Function Documentation

## addOrganisationMode()

void Ogre::RenderPriorityGroup::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, i.e. after clearing the queue.

See also
  QueuedRenderableCollection::OrganisationMode

Referenced by Ogre::RenderQueueGroup::addRenderable(), and Ogre::RenderQueueGroup::merge().

## addRenderable()

void Ogre::RenderPriorityGroup::addRenderable | ( | Renderable * | pRend,
|  | Technique * | pTech
| ) |  |

Add a renderable to this group.

Referenced by Ogre::RenderQueueGroup::addRenderable().

## addSolidRenderable()

void Ogre::RenderPriorityGroup::addSolidRenderable | ( | Technique * | pTech,
|  | Renderable * | rend,
|  | bool | toNoShadowMap
| ) |  |

protected

Internal method for adding a solid renderable.

## addSolidRenderableSplitByLightType()

void Ogre::RenderPriorityGroup::addSolidRenderableSplitByLightType | ( | Technique * | pTech,
|  | Renderable * | rend
| ) |  |

protected

Internal method for adding a solid renderable.

## addTransparentRenderable()

void Ogre::RenderPriorityGroup::addTransparentRenderable | ( | Technique * | pTech,
|  | Renderable * | rend
| ) |  |

protected

Internal method for adding a transparent renderable.

## addUnsortedTransparentRenderable()

void Ogre::RenderPriorityGroup::addUnsortedTransparentRenderable | ( | Technique * | pTech,
|  | Renderable * | rend
| ) |  |

protected

Internal method for adding an unsorted transparent renderable.

## clear()

void Ogre::RenderPriorityGroup::clear | ( | void |  | ) |

Clears this group of renderables.

## defaultOrganisationMode()

void Ogre::RenderPriorityGroup::defaultOrganisationMode | ( | void |  | ) |

Set the sorting / grouping mode for the solids in this group to the default.

Remarks
  You can only do this when the group is empty, i.e. after clearing the queue.

See also
  QueuedRenderableCollection::OrganisationMode

## getSolidsBasic()

const QueuedRenderableCollection& Ogre::RenderPriorityGroup::getSolidsBasic | ( | void |  | ) | const

Get the collection of basic solids currently queued, this includes all solids when there are no shadows, or all solids which have shadow receiving enabled when using modulative shadows, or all ambient passes of solids which have shadow receive enabled for additive shadows.

Definition at line 369 of file OgreRenderQueueSortingGrouping.h.

## getSolidsDecal()

const QueuedRenderableCollection& Ogre::RenderPriorityGroup::getSolidsDecal | ( | void |  | ) | const

Get the collection of solids currently queued for decal passes (only applicable in additive shadow modes).

Definition at line 377 of file OgreRenderQueueSortingGrouping.h.

## getSolidsDiffuseSpecular()

const QueuedRenderableCollection& Ogre::RenderPriorityGroup::getSolidsDiffuseSpecular | ( | void |  | ) | const

Get the collection of solids currently queued per light (only applicable in additive shadow modes).

Definition at line 373 of file OgreRenderQueueSortingGrouping.h.

## getSolidsNoShadowReceive()

const QueuedRenderableCollection& Ogre::RenderPriorityGroup::getSolidsNoShadowReceive | ( | void |  | ) | const

Get the collection of solids for which shadow receipt is disabled (only applicable when shadows are enabled).

Definition at line 381 of file OgreRenderQueueSortingGrouping.h.

## getTransparents()

const QueuedRenderableCollection& Ogre::RenderPriorityGroup::getTransparents | ( | void |  | ) | const

Get the collection of transparent objects currently queued.

Definition at line 387 of file OgreRenderQueueSortingGrouping.h.

## getTransparentsUnsorted()

const QueuedRenderableCollection& Ogre::RenderPriorityGroup::getTransparentsUnsorted | ( | void |  | ) | const

Get the collection of transparent objects currently queued.

Definition at line 384 of file OgreRenderQueueSortingGrouping.h.

## merge()

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

Merge group of renderables.

Referenced by Ogre::RenderQueueGroup::merge().

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

## removePassEntry()

void Ogre::RenderPriorityGroup::removePassEntry | ( | Pass * | p | ) |

protected

remove a pass entry from all collections

## resetOrganisationModes()

void Ogre::RenderPriorityGroup::resetOrganisationModes | ( | void |  | ) |

Reset the organisation modes required for the solids in this group.

Remarks
  You can only do this when the group is empty, i.e. after clearing the queue.

See also
  QueuedRenderableCollection::OrganisationMode

Referenced by Ogre::RenderQueueGroup::addRenderable(), and Ogre::RenderQueueGroup::merge().

## setShadowCastersCannotBeReceivers()

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

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

Definition at line 445 of file OgreRenderQueueSortingGrouping.h.

## setSplitNoShadowPasses()

void Ogre::RenderPriorityGroup::setSplitNoShadowPasses | ( | bool | split | ) |

Sets whether or not passes which have shadow receive disabled should be separated.

Definition at line 437 of file OgreRenderQueueSortingGrouping.h.

## setSplitPassesByLightingType()

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

## sort()

void Ogre::RenderPriorityGroup::sort | ( | const Camera * | cam | ) |

Sorts the objects which have been added to the queue; transparent objects by their depth in relation to the passed in Camera.

## Member Data Documentation

## mParent

RenderQueueGroup* Ogre::RenderPriorityGroup::mParent

protected

Parent queue group.

Definition at line 328 of file OgreRenderQueueSortingGrouping.h.

## mShadowCastersNotReceivers

bool Ogre::RenderPriorityGroup::mShadowCastersNotReceivers

protected

Definition at line 331 of file OgreRenderQueueSortingGrouping.h.

## mSolidsBasic

QueuedRenderableCollection Ogre::RenderPriorityGroup::mSolidsBasic

protected

Solid pass list, used when no shadows, modulative shadows, or ambient passes for additive.

Definition at line 333 of file OgreRenderQueueSortingGrouping.h.

## mSolidsDecal

QueuedRenderableCollection Ogre::RenderPriorityGroup::mSolidsDecal

protected

Solid decal (texture) pass list, used with additive shadows.

Definition at line 337 of file OgreRenderQueueSortingGrouping.h.

## mSolidsDiffuseSpecular

QueuedRenderableCollection Ogre::RenderPriorityGroup::mSolidsDiffuseSpecular

protected

Solid per-light pass list, used with additive shadows.

Definition at line 335 of file OgreRenderQueueSortingGrouping.h.

## mSolidsNoShadowReceive

QueuedRenderableCollection Ogre::RenderPriorityGroup::mSolidsNoShadowReceive

protected

Solid pass list, used when shadows are enabled but shadow receive is turned off for these passes.

Definition at line 339 of file OgreRenderQueueSortingGrouping.h.

## mSplitNoShadowPasses

bool Ogre::RenderPriorityGroup::mSplitNoShadowPasses

protected

Definition at line 330 of file OgreRenderQueueSortingGrouping.h.

## mSplitPassesByLightingType

bool Ogre::RenderPriorityGroup::mSplitPassesByLightingType

protected

Definition at line 329 of file OgreRenderQueueSortingGrouping.h.

## mTransparents

QueuedRenderableCollection Ogre::RenderPriorityGroup::mTransparents

protected

Transparent list.

Definition at line 343 of file OgreRenderQueueSortingGrouping.h.

## mTransparentsUnsorted

QueuedRenderableCollection Ogre::RenderPriorityGroup::mTransparentsUnsorted

protected

Unsorted transparent list.

Definition at line 341 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.