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

Listener on any general material events. More...

#include <OgreMaterialManager.h>

Public Member Functions

virtual ~Listener ()
 Virtual destructor needed as class has virtual methods. More...
 
virtual TechniquehandleSchemeNotFound (unsigned short schemeIndex, const String &schemeName, Material *originalMaterial, unsigned short lodIndex, const Renderable *rend)=0
 Called if a technique for a given scheme is not found within a material, allows the application to specify a Technique instance manually. More...
 

Detailed Description

Listener on any general material events.

See also
MaterialManager::addListener

Definition at line 69 of file OgreMaterialManager.h.

Constructor & Destructor Documentation

virtual Ogre::MaterialManager::Listener::~Listener ( )
inlinevirtual

Virtual destructor needed as class has virtual methods.

Definition at line 73 of file OgreMaterialManager.h.

Member Function Documentation

virtual Technique* Ogre::MaterialManager::Listener::handleSchemeNotFound ( unsigned short  schemeIndex,
const String schemeName,
Material originalMaterial,
unsigned short  lodIndex,
const Renderable rend 
)
pure virtual

Called if a technique for a given scheme is not found within a material, allows the application to specify a Technique instance manually.

Remarks
Material schemes allow you to switch wholesale between families of techniques on a material. However they require you to define those schemes on the materials up-front, which might not be possible or desirable for all materials, particular if, for example, you wanted a simple way to replace all materials with another using a scheme.
This callback allows you to handle the case where a scheme is requested but the material doesn't have an entry for it. You can return a Technique pointer from this method to specify the material technique you'd like to be applied instead, which can be from another material entirely (and probably will be). Note that it is critical that you only return a Technique that is supported on this hardware; there are utility methods like Material::getBestTechnique to help you with this.
Parameters
schemeIndexThe index of the scheme that was requested - all schemes have a unique index when created that does not alter.
schemeNameThe friendly name of the scheme being requested
originalMaterialThe material that is being processed, that didn't have a specific technique for this scheme
lodIndexThe material level-of-detail that was being asked for, in case you need to use it to determine a technique.
rendPointer to the Renderable that is requesting this technique to be used, so this may influence your choice of Technique. May be null if the technique isn't being requested in that context.
Returns
A pointer to the technique to be used, or NULL if you wish to use the default technique for this material

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