OGRE 14.3
Object-Oriented Graphics Rendering Engine
Loading...
Searching...
No Matches
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:

Public Types

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

Public Member Functions

 RenderQueueGroup (bool splitPassesByLightingType, bool splitNoShadowPasses, bool shadowCastersNotReceivers)
 
 ~RenderQueueGroup ()
 
void addOrganisationMode (QueuedRenderableCollection::OrganisationMode om)
 Add a required sorting / grouping mode for the solids in this group.
 
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 defaultOrganisationMode (void)
 Setthe sorting / grouping mode for the solids in this group to the default.
 
const PriorityMapgetPriorityGroups () const
 
bool getShadowsEnabled (void) const
 Are shadows enabled for this queue?
 
void merge (const RenderQueueGroup *rhs)
 Merge group of renderables.
 
void resetOrganisationModes (void)
 Reset the organisation modes required for the solids in this group.
 
void setShadowCastersCannotBeReceivers (bool ind)
 Sets whether or not objects which cast shadows should be treated as never receiving shadows.
 
void setShadowsEnabled (bool enabled)
 Indicate whether a given queue group will be doing any shadow setup.
 
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 setSplitPassesByLightingType (bool split)
 Sets whether or not the queue will split passes by their lighting type, ie ambient, per-light and decal.
 

Detailed Description

A grouping level underneath RenderQueue which groups renderables to be issued at coarsely the same time to the renderer.

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

Member Typedef Documentation

◆ PriorityMap

◆ PriorityMapIterator

◆ ConstPriorityMapIterator

Constructor & Destructor Documentation

◆ RenderQueueGroup()

Ogre::RenderQueueGroup::RenderQueueGroup ( bool  splitPassesByLightingType,
bool  splitNoShadowPasses,
bool  shadowCastersNotReceivers 
)
inline

◆ ~RenderQueueGroup()

Ogre::RenderQueueGroup::~RenderQueueGroup ( )
inline

Member Function Documentation

◆ getPriorityGroups()

const PriorityMap & Ogre::RenderQueueGroup::getPriorityGroups ( ) const
inline

◆ addRenderable()

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

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

◆ clear()

void Ogre::RenderQueueGroup::clear ( bool  destroy = false)
inline

Clears this group of renderables.

Parameters
destroyIf 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.

◆ setShadowsEnabled()

void Ogre::RenderQueueGroup::setShadowsEnabled ( bool  enabled)
inline

Indicate whether a given queue group will be doing any shadow setup.

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.

◆ getShadowsEnabled()

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

Are shadows enabled for this queue?

◆ setSplitPassesByLightingType()

void Ogre::RenderQueueGroup::setSplitPassesByLightingType ( bool  split)
inline

Sets whether or not the queue will split passes by their lighting type, ie ambient, per-light and decal.

◆ setSplitNoShadowPasses()

void Ogre::RenderQueueGroup::setSplitNoShadowPasses ( bool  split)
inline

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.

◆ setShadowCastersCannotBeReceivers()

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

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

◆ resetOrganisationModes()

void Ogre::RenderQueueGroup::resetOrganisationModes ( void  )
inline

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

You can only do this when the group is empty, ie after clearing the queue.

See also
QueuedRenderableCollection::OrganisationMode

◆ addOrganisationMode()

void Ogre::RenderQueueGroup::addOrganisationMode ( QueuedRenderableCollection::OrganisationMode  om)
inline

Add a required sorting / grouping mode for the solids in this group.

You can only do this when the group is empty, ie after clearing the queue.

See also
QueuedRenderableCollection::OrganisationMode

◆ defaultOrganisationMode()

void Ogre::RenderQueueGroup::defaultOrganisationMode ( void  )
inline

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

You can only do this when the group is empty, ie after clearing the queue.

See also
QueuedRenderableCollection::OrganisationMode

◆ merge()

void Ogre::RenderQueueGroup::merge ( const RenderQueueGroup rhs)
inline

Merge group of renderables.


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