OGRE  2.0
Object-Oriented Graphics Rendering Engine
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Ogre::RenderPriorityGroup Class Reference

Collection of renderables by priority. More...

#include <OgreRenderQueueSortingGrouping.h>

+ Inheritance diagram for Ogre::RenderPriorityGroup:
+ Collaboration diagram for Ogre::RenderPriorityGroup:

Public Member Functions

 RenderPriorityGroup (RenderQueueGroup *parent)
 
 ~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 QueuedRenderableCollectiongetSolidsBasic (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 QueuedRenderableCollectiongetTransparents (void) const
 Get the collection of transparent objects currently queued. More...
 
const QueuedRenderableCollectiongetTransparentsUnsorted (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 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)
 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

RenderQueueGroupmParent
 Parent queue group. More...
 
QueuedRenderableCollection mSolidsBasic
 Solid pass list, used when no shadows, modulative shadows, or ambient passes for additive. More...
 
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 320 of file OgreRenderQueueSortingGrouping.h.

Constructor & Destructor Documentation

Ogre::RenderPriorityGroup::RenderPriorityGroup ( RenderQueueGroup parent)
Ogre::RenderPriorityGroup::~RenderPriorityGroup ( )
inline

Definition at line 346 of file OgreRenderQueueSortingGrouping.h.

Member Function Documentation

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

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

Add a renderable to this group.

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

void Ogre::RenderPriorityGroup::addSolidRenderable ( Technique pTech,
Renderable rend 
)
protected

Internal method for adding a solid renderable.

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

Internal method for adding a transparent renderable.

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

Internal method for adding an unsorted transparent renderable.

void Ogre::RenderPriorityGroup::clear ( void  )

Clears this group of renderables.

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
const QueuedRenderableCollection& Ogre::RenderPriorityGroup::getSolidsBasic ( void  ) const
inline

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

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

Get the collection of transparent objects currently queued.

Definition at line 358 of file OgreRenderQueueSortingGrouping.h.

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

Get the collection of transparent objects currently queued.

Definition at line 355 of file OgreRenderQueueSortingGrouping.h.

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

Merge group of renderables.

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

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr)
inlineinherited

Definition at line 96 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr,
void *   
)
inlineinherited

Definition at line 102 of file OgreMemoryAllocatedObject.h.

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

Definition at line 108 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete[] ( void *  ptr)
inlineinherited

Definition at line 113 of file OgreMemoryAllocatedObject.h.

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

Definition at line 119 of file OgreMemoryAllocatedObject.h.

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

operator new, with debug line info

Definition at line 68 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new ( size_t  sz)
inlineinherited

Definition at line 73 of file OgreMemoryAllocatedObject.h.

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

placement operator new

Definition at line 79 of file OgreMemoryAllocatedObject.h.

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

array operator new, with debug line info

Definition at line 86 of file OgreMemoryAllocatedObject.h.

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

Definition at line 91 of file OgreMemoryAllocatedObject.h.

void Ogre::RenderPriorityGroup::removePassEntry ( Pass p)
protected

remove a pass entry from all collections

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

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

RenderQueueGroup* Ogre::RenderPriorityGroup::mParent
protected

Parent queue group.

Definition at line 325 of file OgreRenderQueueSortingGrouping.h.

QueuedRenderableCollection Ogre::RenderPriorityGroup::mSolidsBasic
protected

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

Definition at line 327 of file OgreRenderQueueSortingGrouping.h.

QueuedRenderableCollection Ogre::RenderPriorityGroup::mTransparents
protected

Transparent list.

Definition at line 331 of file OgreRenderQueueSortingGrouping.h.

QueuedRenderableCollection Ogre::RenderPriorityGroup::mTransparentsUnsorted
protected

Unsorted transparent list.

Definition at line 329 of file OgreRenderQueueSortingGrouping.h.


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