Ogre::RenderQueueGroup Class Reference
[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:
Inheritance graph
[legend]

List of all members.

Public Types

typedef map< ushort,
RenderPriorityGroup
*, std::less< ushort > >::type 
PriorityMap
typedef MapIterator< PriorityMapPriorityMapIterator
typedef ConstMapIterator
< PriorityMap
ConstPriorityMapIterator

Public Member Functions

 RenderQueueGroup (RenderQueue *parent, bool splitPassesByLightingType, bool splitNoShadowPasses, bool shadowCastersNotReceivers)
 ~RenderQueueGroup ()
PriorityMapIterator getIterator (void)
 Get an iterator for browsing through child contents.
ConstPriorityMapIterator getIterator (void) const
 Get a const 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 merge (const RenderQueueGroup *rhs)
 Merge group of renderables.
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

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


Member Typedef Documentation

Definition at line 470 of file OgreRenderQueueSortingGrouping.h.

Definition at line 468 of file OgreRenderQueueSortingGrouping.h.

Definition at line 469 of file OgreRenderQueueSortingGrouping.h.


Constructor & Destructor Documentation

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

Definition at line 485 of file OgreRenderQueueSortingGrouping.h.

Ogre::RenderQueueGroup::~RenderQueueGroup (  ) 

Definition at line 498 of file OgreRenderQueueSortingGrouping.h.

References OGRE_DELETE.


Member Function Documentation

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.

void Ogre::RenderQueueGroup::addRenderable ( Renderable pRend,
Technique pTech,
ushort  priority 
)
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.

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.

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

Get a const iterator for browsing through child contents.

Definition at line 514 of file OgreRenderQueueSortingGrouping.h.

PriorityMapIterator Ogre::RenderQueueGroup::getIterator ( void   ) 

Get an iterator for browsing through child contents.

Definition at line 508 of file OgreRenderQueueSortingGrouping.h.

Referenced by merge().

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

Are shadows enabled for this queue?

Definition at line 589 of file OgreRenderQueueSortingGrouping.h.

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

Definition at line 107 of file OgreMemoryAllocatedObject.h.

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

Definition at line 101 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr  )  [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 118 of file OgreMemoryAllocatedObject.h.

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

Definition at line 112 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 78 of file OgreMemoryAllocatedObject.h.

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

Definition at line 72 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]

operator new, with debug line info

Definition at line 67 of file OgreMemoryAllocatedObject.h.

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

Definition at line 90 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 85 of file OgreMemoryAllocatedObject.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 637 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 621 of file OgreRenderQueueSortingGrouping.h.

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.

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.

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

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

Definition at line 481 of file OgreRenderQueueSortingGrouping.h.

Definition at line 472 of file OgreRenderQueueSortingGrouping.h.

Map of RenderPriorityGroup objects.

Definition at line 477 of file OgreRenderQueueSortingGrouping.h.

Definition at line 475 of file OgreRenderQueueSortingGrouping.h.

Whether shadows are enabled for this queue.

Definition at line 479 of file OgreRenderQueueSortingGrouping.h.

Definition at line 474 of file OgreRenderQueueSortingGrouping.h.

Definition at line 473 of file OgreRenderQueueSortingGrouping.h.


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

Copyright © 2012 Torus Knot Software Ltd
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Fri May 25 23:39:13 2012