OGRE  1.9.0
Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
Ogre::RenderQueueInvocation Class Reference

Class representing the invocation of queue groups in a RenderQueue. More...

#include <OgreRenderQueueInvocation.h>

Inheritance diagram for Ogre::RenderQueueInvocation:
Inheritance graph
[legend]

Public Member Functions

 RenderQueueInvocation (uint8 renderQueueGroupID, const String &invocationName=StringUtil::BLANK)
 Constructor.
 
virtual ~RenderQueueInvocation ()
 
virtual const StringgetInvocationName (void) const
 Get the invocation name (may be blank if not set by creator)
 
virtual uint8 getRenderQueueGroupID (void) const
 Get the render queue group id.
 
virtual QueuedRenderableCollection::OrganisationMode getSolidsOrganisation (void) const
 Get the organisation mode being used for solids in this queue group invocation.
 
virtual bool getSuppressRenderStateChanges (void) const
 Gets whether shadows are suppressed when invoking this queue.
 
virtual bool getSuppressShadows (void) const
 Gets whether shadows are suppressed when invoking this queue.
 
virtual void invoke (RenderQueueGroup *group, SceneManager *targetSceneManager)
 Invoke this class on a concrete queue group.
 
void operator delete (void *ptr)
 
void operator delete (void *ptr, const char *, int, const char *)
 
void operator delete (void *ptr, void *)
 
void operator delete[] (void *ptr)
 
void operator delete[] (void *ptr, const char *, int, const char *)
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, const char *file, int line, const char *func)
 operator new, with debug line info
 
voidoperator new (size_t sz, void *ptr)
 placement operator new
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, const char *file, int line, const char *func)
 array operator new, with debug line info
 
virtual void setSolidsOrganisation (QueuedRenderableCollection::OrganisationMode org)
 Set the organisation mode being used for solids in this queue group invocation.
 
virtual void setSuppressRenderStateChanges (bool suppress)
 Sets whether render state changes are suppressed when invoking this queue.
 
virtual void setSuppressShadows (bool suppress)
 Sets whether shadows are suppressed when invoking this queue.
 

Static Public Attributes

static String RENDER_QUEUE_INVOCATION_SHADOWS
 Invocation identifier for shadows.
 

Protected Attributes

String mInvocationName
 Invocation identifier - used in listeners.
 
uint8 mRenderQueueGroupID
 Target queue group.
 
QueuedRenderableCollection::OrganisationMode mSolidsOrganisation
 Solids ordering mode.
 
bool mSuppressRenderStateChanges
 Suppress OGRE's render state management?
 
bool mSuppressShadows
 Suppress shadows processing in this invocation?
 

Detailed Description

Class representing the invocation of queue groups in a RenderQueue.

Remarks
The default behaviour for OGRE's render queue is to render each queue group in turn, dealing with shadows automatically, and rendering solids in grouped passes, followed by transparent objects in descending order. This class, together with RenderQueueInvocationSequence and the ability to associate one with a Viewport, allows you to change that behaviour and render queue groups in arbitrary sequence, repeatedly, and to skip shadows, change the ordering of solids, or even prevent OGRE controlling the render state during a particular invocation for special effects.
Note that whilst you can change the ordering of rendering solids, you can't change the ordering on transparent objects, since to do this would cause them to render incorrectly.
As well as using this class directly and using the options it provides you with, you can also provide subclasses of it to a RenderQueueInvocationSequence instance if you want to gain ultimate control.
Note
Invocations will be skipped if there are scene-level options preventing them being rendered - for example special-case render queues and render queue listeners that dictate this.

Definition at line 66 of file OgreRenderQueueInvocation.h.

Constructor & Destructor Documentation

◆ RenderQueueInvocation()

Ogre::RenderQueueInvocation::RenderQueueInvocation ( uint8  renderQueueGroupID,
const String invocationName = StringUtil::BLANK 
)

Constructor.

Parameters
renderQueueGroupIDID of the queue this will target
invocationNameOptional name to uniquely identify this invocation from others in a RenderQueueListener

◆ ~RenderQueueInvocation()

virtual Ogre::RenderQueueInvocation::~RenderQueueInvocation ( )
virtual

Member Function Documentation

◆ getInvocationName()

virtual const String & Ogre::RenderQueueInvocation::getInvocationName ( void  ) const
virtual

Get the invocation name (may be blank if not set by creator)

Definition at line 93 of file OgreRenderQueueInvocation.h.

◆ getRenderQueueGroupID()

virtual uint8 Ogre::RenderQueueInvocation::getRenderQueueGroupID ( void  ) const
virtual

Get the render queue group id.

Definition at line 90 of file OgreRenderQueueInvocation.h.

◆ getSolidsOrganisation()

virtual QueuedRenderableCollection::OrganisationMode Ogre::RenderQueueInvocation::getSolidsOrganisation ( void  ) const
virtual

Get the organisation mode being used for solids in this queue group invocation.

Definition at line 106 of file OgreRenderQueueInvocation.h.

◆ getSuppressRenderStateChanges()

virtual bool Ogre::RenderQueueInvocation::getSuppressRenderStateChanges ( void  ) const
virtual

Gets whether shadows are suppressed when invoking this queue.

Definition at line 145 of file OgreRenderQueueInvocation.h.

◆ getSuppressShadows()

virtual bool Ogre::RenderQueueInvocation::getSuppressShadows ( void  ) const
virtual

Gets whether shadows are suppressed when invoking this queue.

Definition at line 118 of file OgreRenderQueueInvocation.h.

◆ invoke()

virtual void Ogre::RenderQueueInvocation::invoke ( RenderQueueGroup group,
SceneManager targetSceneManager 
)
virtual

Invoke this class on a concrete queue group.

Remarks
Implementation will send the queue group to the target scene manager after doing what it needs to do.

◆ 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,
const char ,
int  ,
const char  
)
inherited

Definition at line 108 of file OgreMemoryAllocatedObject.h.

◆ operator delete() [3/3]

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

Definition at line 102 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)
inherited

Definition at line 73 of file OgreMemoryAllocatedObject.h.

◆ operator new() [2/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() [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)
inherited

Definition at line 91 of file OgreMemoryAllocatedObject.h.

◆ operator new[]() [2/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.

◆ setSolidsOrganisation()

virtual void Ogre::RenderQueueInvocation::setSolidsOrganisation ( QueuedRenderableCollection::OrganisationMode  org)
virtual

Set the organisation mode being used for solids in this queue group invocation.

Definition at line 98 of file OgreRenderQueueInvocation.h.

◆ setSuppressRenderStateChanges()

virtual void Ogre::RenderQueueInvocation::setSuppressRenderStateChanges ( bool  suppress)
virtual

Sets whether render state changes are suppressed when invoking this queue.

Remarks
When doing special effects you may want to set up render state yourself and have it apply for the entire rendering of a queue. In that case, you should call this method with a parameter of 'true', and use a RenderQueueListener to set the render state directly on RenderSystem yourself before the invocation.
Suppressing render state changes is only intended for advanced use, don't use it if you're unsure of the effect. The only RenderSystem calls made are to set the world matrix for each object (note - view an projection matrices are NOT SET - they are under your control) and to render the object; it is up to the caller to do everything else, including enabling any vertex / fragment programs and updating their parameter state, and binding parameters to the RenderSystem. We advise you use a RenderQueueListener in order to get a notification when this invocation is going to happen (use an invocation name to identify it if you like), at which point you can set the state you need to apply before the objects are rendered.

Definition at line 140 of file OgreRenderQueueInvocation.h.

◆ setSuppressShadows()

virtual void Ogre::RenderQueueInvocation::setSuppressShadows ( bool  suppress)
virtual

Sets whether shadows are suppressed when invoking this queue.

Remarks
When doing effects you often will want to suppress shadow processing if shadows will already have been done by a previous render.

Definition at line 113 of file OgreRenderQueueInvocation.h.

Member Data Documentation

◆ mInvocationName

String Ogre::RenderQueueInvocation::mInvocationName
protected

Invocation identifier - used in listeners.

Definition at line 72 of file OgreRenderQueueInvocation.h.

◆ mRenderQueueGroupID

uint8 Ogre::RenderQueueInvocation::mRenderQueueGroupID
protected

Target queue group.

Definition at line 70 of file OgreRenderQueueInvocation.h.

◆ mSolidsOrganisation

QueuedRenderableCollection::OrganisationMode Ogre::RenderQueueInvocation::mSolidsOrganisation
protected

Solids ordering mode.

Definition at line 74 of file OgreRenderQueueInvocation.h.

◆ mSuppressRenderStateChanges

bool Ogre::RenderQueueInvocation::mSuppressRenderStateChanges
protected

Suppress OGRE's render state management?

Definition at line 78 of file OgreRenderQueueInvocation.h.

◆ mSuppressShadows

bool Ogre::RenderQueueInvocation::mSuppressShadows
protected

Suppress shadows processing in this invocation?

Definition at line 76 of file OgreRenderQueueInvocation.h.

◆ RENDER_QUEUE_INVOCATION_SHADOWS

String Ogre::RenderQueueInvocation::RENDER_QUEUE_INVOCATION_SHADOWS
static

Invocation identifier for shadows.

Definition at line 155 of file OgreRenderQueueInvocation.h.


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