OGRE  14.2
Object-Oriented Graphics Rendering Engine
Ogre::LodListener Class Reference

A interface class defining a listener which can be used to receive notifications of LOD events. More...

#include <OgreLodListener.h>

Public Member Functions

virtual ~LodListener ()
 
virtual void postqueueEntityMaterialLodChanged (const EntityMaterialLodChangedEvent &evt)
 Called after an entity's material LOD has changed. More...
 
virtual void postqueueEntityMeshLodChanged (const EntityMeshLodChangedEvent &evt)
 Called after an entity's mesh LOD has changed. More...
 
virtual void postqueueMovableObjectLodChanged (const MovableObjectLodChangedEvent &evt)
 Called after a movable object's LOD has changed. More...
 
virtual bool prequeueEntityMaterialLodChanged (EntityMaterialLodChangedEvent &evt)
 Called before an entity's material LOD has changed. More...
 
virtual bool prequeueEntityMeshLodChanged (EntityMeshLodChangedEvent &evt)
 Called before an entity's mesh LOD has changed. More...
 
virtual bool prequeueMovableObjectLodChanged (const MovableObjectLodChangedEvent &evt)
 Called before a movable object's LOD has changed. More...
 

Detailed Description

A interface class defining a listener which can be used to receive notifications of LOD events.

A 'listener' is an interface designed to be called back when
particular events are called. This class defines the
interface relating to LOD events. In order to receive
notifications of LOD events, you should create a subclass of
LodListener and override the methods for which you would like
to customise the resulting processing. You should then call
SceneManager::addLodListener passing an instance of this class.
There is no limit to the number of LOD listeners you can register,
allowing you to register multiple listeners for different purposes.

For some uses, it may be advantageous to also subclass
RenderQueueListener as this interface makes available information
regarding render queue invocations.

It is important not to modify the scene graph during rendering, so,
for each event, there are two methods, a prequeue method and a
postqueue method.  The prequeue method is invoked during rendering,
and as such should not perform any changes, but if the event is
relevant, it may return true indicating the postqueue method should
also be called.  The postqueue method is invoked at an appropriate
time after rendering and scene changes may be safely made there.

Constructor & Destructor Documentation

◆ ~LodListener()

virtual Ogre::LodListener::~LodListener ( )
inlinevirtual

Member Function Documentation

◆ prequeueMovableObjectLodChanged()

virtual bool Ogre::LodListener::prequeueMovableObjectLodChanged ( const MovableObjectLodChangedEvent evt)
inlinevirtual

Called before a movable object's LOD has changed.

Do not change the Ogre state from this method, 
instead return true and perform changes in 
postqueueMovableObjectLodChanged.
Returns
True to indicate the event should be queued and postqueueMovableObjectLodChanged called after rendering is complete.

◆ postqueueMovableObjectLodChanged()

virtual void Ogre::LodListener::postqueueMovableObjectLodChanged ( const MovableObjectLodChangedEvent evt)
inlinevirtual

Called after a movable object's LOD has changed.

May be called even if not requested from prequeueMovableObjectLodChanged
as only one event queue is maintained per SceneManger instance.

◆ prequeueEntityMeshLodChanged()

virtual bool Ogre::LodListener::prequeueEntityMeshLodChanged ( EntityMeshLodChangedEvent evt)
inlinevirtual

Called before an entity's mesh LOD has changed.

Do not change the Ogre state from this method, 
instead return true and perform changes in 
postqueueEntityMeshLodChanged.

It is possible to change the event notification 
and even alter the newLodIndex field (possibly to 
prevent the LOD from changing, or to skip an 
index).
Returns
True to indicate the event should be queued and postqueueEntityMeshLodChanged called after rendering is complete.

◆ postqueueEntityMeshLodChanged()

virtual void Ogre::LodListener::postqueueEntityMeshLodChanged ( const EntityMeshLodChangedEvent evt)
inlinevirtual

Called after an entity's mesh LOD has changed.

May be called even if not requested from prequeueEntityMeshLodChanged
as only one event queue is maintained per SceneManger instance.

◆ prequeueEntityMaterialLodChanged()

virtual bool Ogre::LodListener::prequeueEntityMaterialLodChanged ( EntityMaterialLodChangedEvent evt)
inlinevirtual

Called before an entity's material LOD has changed.

Do not change the Ogre state from this method, 
instead return true and perform changes in 
postqueueMaterialLodChanged.

It is possible to change the event notification 
and even alter the newLodIndex field (possibly to 
prevent the LOD from changing, or to skip an 
index).
Returns
True to indicate the event should be queued and postqueueMaterialLodChanged called after rendering is complete.

◆ postqueueEntityMaterialLodChanged()

virtual void Ogre::LodListener::postqueueEntityMaterialLodChanged ( const EntityMaterialLodChangedEvent evt)
inlinevirtual

Called after an entity's material LOD has changed.

May be called even if not requested from prequeueEntityMaterialLodChanged
as only one event queue is maintained per SceneManger instance.

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