Class that provides functionality to generate materials for use with a terrain. More...
#include <OgreTerrainMaterialGenerator.h>
Classes | |
class | Profile |
Inner class which should also be subclassed to provide profile-specific material generation. More... | |
Public Types | |
typedef vector< Profile * >::type | ProfileList |
List of profiles - NB should be ordered in descending complexity. | |
Public Member Functions | |
TerrainMaterialGenerator () | |
virtual | ~TerrainMaterialGenerator () |
virtual const ProfileList & | getProfiles () const |
Get the list of profiles that this generator supports. | |
virtual void | setActiveProfile (const String &name) |
Set the active profile by name. | |
virtual void | setActiveProfile (Profile *p) |
Set the active Profile. | |
Profile * | getActiveProfile () const |
Get the active profile. | |
void | _markChanged () |
Internal method - indicates that a change has been made that would require material regeneration. | |
unsigned long long int | getChangeCount () const |
Returns the number of times the generator has undergone a change which would require materials to be regenerated. | |
virtual const TerrainLayerDeclaration & | getLayerDeclaration () const |
Get the layer declaration that this material generator operates with. | |
virtual bool | canGenerateUsingDeclaration (const TerrainLayerDeclaration &decl) |
Whether this generator can generate a material for a given declaration. | |
virtual bool | isVertexCompressionSupported () const |
Return whether this material generator supports using a compressed vertex format. | |
virtual void | requestOptions (Terrain *terrain) |
Triggers the generator to request the options that it needs. | |
virtual MaterialPtr | generate (const Terrain *terrain) |
Generate a material for the given terrain using the active profile. | |
virtual MaterialPtr | generateForCompositeMap (const Terrain *terrain) |
Generate a material for the given composite map of the terrain using the active profile. | |
virtual uint8 | getMaxLayers (const Terrain *terrain) const |
Get the maximum number of layers supported with the given terrain. | |
virtual void | updateCompositeMap (const Terrain *terrain, const Rect &rect) |
Update the composite map for a terrain. | |
virtual void | updateParams (const MaterialPtr &mat, const Terrain *terrain) |
Update parameters for the given terrain using the active profile. | |
virtual void | updateParamsForCompositeMap (const MaterialPtr &mat, const Terrain *terrain) |
Update parameters for the given terrain composite map using the active profile. | |
virtual void | setDebugLevel (unsigned int dbg) |
Set the debug level of the material. | |
virtual unsigned int | getDebugLevel () const |
Get the debug level of the material. | |
virtual void | _renderCompositeMap (size_t size, const Rect &rect, const MaterialPtr &mat, const TexturePtr &destCompositeMap) |
Helper method to render a composite map. | |
Texture * | _getCompositeMapRTT () |
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 | |
ProfileList | mProfiles |
Profile * | mActiveProfile |
unsigned long long int | mChangeCounter |
TerrainLayerDeclaration | mLayerDecl |
unsigned int | mDebugLevel |
SceneManager * | mCompositeMapSM |
Camera * | mCompositeMapCam |
Texture * | mCompositeMapRTT |
ManualObject * | mCompositeMapPlane |
Light * | mCompositeMapLight |
Class that provides functionality to generate materials for use with a terrain.
Definition at line 155 of file OgreTerrainMaterialGenerator.h.
typedef vector<Profile*>::type Ogre::TerrainMaterialGenerator::ProfileList |
List of profiles - NB should be ordered in descending complexity.
Definition at line 204 of file OgreTerrainMaterialGenerator.h.
Ogre::TerrainMaterialGenerator::TerrainMaterialGenerator | ( | ) |
virtual Ogre::TerrainMaterialGenerator::~TerrainMaterialGenerator | ( | ) | [virtual] |
Texture* Ogre::TerrainMaterialGenerator::_getCompositeMapRTT | ( | ) |
Definition at line 379 of file OgreTerrainMaterialGenerator.h.
void Ogre::TerrainMaterialGenerator::_markChanged | ( | ) |
Internal method - indicates that a change has been made that would require material regeneration.
Definition at line 247 of file OgreTerrainMaterialGenerator.h.
virtual void Ogre::TerrainMaterialGenerator::_renderCompositeMap | ( | size_t | size, | |
const Rect & | rect, | |||
const MaterialPtr & | mat, | |||
const TexturePtr & | destCompositeMap | |||
) | [virtual] |
Helper method to render a composite map.
size | The requested composite map size | |
rect | The region of the composite map to update, in image space | |
mat | The material to use to render the map | |
outBox | The box region of the texture which has been updated, and should be copied into your final texture |
virtual bool Ogre::TerrainMaterialGenerator::canGenerateUsingDeclaration | ( | const TerrainLayerDeclaration & | decl | ) | [virtual] |
Whether this generator can generate a material for a given declaration.
By default this only returns true if the declaration is equal to the standard one returned from getLayerDeclaration, but if a subclass wants to be flexible to generate materials for other declarations too, it can specify here.
Definition at line 263 of file OgreTerrainMaterialGenerator.h.
virtual MaterialPtr Ogre::TerrainMaterialGenerator::generate | ( | const Terrain * | terrain | ) | [virtual] |
Generate a material for the given terrain using the active profile.
Definition at line 287 of file OgreTerrainMaterialGenerator.h.
References Ogre::TerrainMaterialGenerator::Profile::generate().
virtual MaterialPtr Ogre::TerrainMaterialGenerator::generateForCompositeMap | ( | const Terrain * | terrain | ) | [virtual] |
Generate a material for the given composite map of the terrain using the active profile.
Definition at line 297 of file OgreTerrainMaterialGenerator.h.
References Ogre::TerrainMaterialGenerator::Profile::generateForCompositeMap().
Profile* Ogre::TerrainMaterialGenerator::getActiveProfile | ( | ) | const |
Get the active profile.
Definition at line 237 of file OgreTerrainMaterialGenerator.h.
unsigned long long int Ogre::TerrainMaterialGenerator::getChangeCount | ( | ) | const |
Returns the number of times the generator has undergone a change which would require materials to be regenerated.
Definition at line 252 of file OgreTerrainMaterialGenerator.h.
virtual unsigned int Ogre::TerrainMaterialGenerator::getDebugLevel | ( | ) | const [virtual] |
Get the debug level of the material.
Definition at line 367 of file OgreTerrainMaterialGenerator.h.
virtual const TerrainLayerDeclaration& Ogre::TerrainMaterialGenerator::getLayerDeclaration | ( | ) | const [virtual] |
Get the layer declaration that this material generator operates with.
Definition at line 256 of file OgreTerrainMaterialGenerator.h.
virtual uint8 Ogre::TerrainMaterialGenerator::getMaxLayers | ( | const Terrain * | terrain | ) | const [virtual] |
Get the maximum number of layers supported with the given terrain.
Definition at line 308 of file OgreTerrainMaterialGenerator.h.
References Ogre::TerrainMaterialGenerator::Profile::getMaxLayers().
virtual const ProfileList& Ogre::TerrainMaterialGenerator::getProfiles | ( | ) | const [virtual] |
Get the list of profiles that this generator supports.
Definition at line 208 of file OgreTerrainMaterialGenerator.h.
virtual bool Ogre::TerrainMaterialGenerator::isVertexCompressionSupported | ( | ) | const [virtual] |
Return whether this material generator supports using a compressed vertex format.
This is only possible when using shaders.
Definition at line 271 of file OgreTerrainMaterialGenerator.h.
void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr, | |
const char * | , | |||
int | , | |||
const char * | ||||
) | [inherited] |
Definition at line 107 of file OgreMemoryAllocatedObject.h.
void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr, | |
void * | ||||
) | [inherited] |
Definition at line 101 of file OgreMemoryAllocatedObject.h.
void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr | ) | [inherited] |
Definition at line 95 of file OgreMemoryAllocatedObject.h.
void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr, | |
const char * | , | |||
int | , | |||
const char * | ||||
) | [inherited] |
Definition at line 118 of file OgreMemoryAllocatedObject.h.
void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr | ) | [inherited] |
Definition at line 112 of file OgreMemoryAllocatedObject.h.
void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz, | |
void * | ptr | |||
) | [inherited] |
placement operator new
Definition at line 78 of file OgreMemoryAllocatedObject.h.
void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz | ) | [inherited] |
Definition at line 72 of file OgreMemoryAllocatedObject.h.
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.
void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz | ) | [inherited] |
Definition at line 90 of file OgreMemoryAllocatedObject.h.
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.
virtual void Ogre::TerrainMaterialGenerator::requestOptions | ( | Terrain * | terrain | ) | [virtual] |
Triggers the generator to request the options that it needs.
Definition at line 278 of file OgreTerrainMaterialGenerator.h.
References Ogre::TerrainMaterialGenerator::Profile::requestOptions().
virtual void Ogre::TerrainMaterialGenerator::setActiveProfile | ( | Profile * | p | ) | [virtual] |
Set the active Profile.
Definition at line 228 of file OgreTerrainMaterialGenerator.h.
virtual void Ogre::TerrainMaterialGenerator::setActiveProfile | ( | const String & | name | ) | [virtual] |
Set the active profile by name.
Definition at line 211 of file OgreTerrainMaterialGenerator.h.
virtual void Ogre::TerrainMaterialGenerator::setDebugLevel | ( | unsigned int | dbg | ) | [virtual] |
Set the debug level of the material.
Definition at line 358 of file OgreTerrainMaterialGenerator.h.
virtual void Ogre::TerrainMaterialGenerator::updateCompositeMap | ( | const Terrain * | terrain, | |
const Rect & | rect | |||
) | [virtual] |
Update the composite map for a terrain.
The composite map for a terrain must match what the terrain should look like at distance. This method will only be called in the render thread so the generator is free to render into a texture to support this, so long as the results are blitted into the Terrain's own composite map afterwards.
Definition at line 323 of file OgreTerrainMaterialGenerator.h.
References Ogre::TerrainMaterialGenerator::Profile::updateCompositeMap().
virtual void Ogre::TerrainMaterialGenerator::updateParams | ( | const MaterialPtr & | mat, | |
const Terrain * | terrain | |||
) | [virtual] |
Update parameters for the given terrain using the active profile.
Definition at line 335 of file OgreTerrainMaterialGenerator.h.
References Ogre::TerrainMaterialGenerator::Profile::updateParams().
virtual void Ogre::TerrainMaterialGenerator::updateParamsForCompositeMap | ( | const MaterialPtr & | mat, | |
const Terrain * | terrain | |||
) | [virtual] |
Update parameters for the given terrain composite map using the active profile.
Definition at line 343 of file OgreTerrainMaterialGenerator.h.
References Ogre::TerrainMaterialGenerator::Profile::updateParamsForCompositeMap().
Profile* Ogre::TerrainMaterialGenerator::mActiveProfile [mutable, protected] |
Definition at line 383 of file OgreTerrainMaterialGenerator.h.
unsigned long long int Ogre::TerrainMaterialGenerator::mChangeCounter [protected] |
Definition at line 384 of file OgreTerrainMaterialGenerator.h.
Camera* Ogre::TerrainMaterialGenerator::mCompositeMapCam [protected] |
Definition at line 388 of file OgreTerrainMaterialGenerator.h.
Light* Ogre::TerrainMaterialGenerator::mCompositeMapLight [protected] |
Definition at line 391 of file OgreTerrainMaterialGenerator.h.
Definition at line 390 of file OgreTerrainMaterialGenerator.h.
Texture* Ogre::TerrainMaterialGenerator::mCompositeMapRTT [protected] |
Definition at line 389 of file OgreTerrainMaterialGenerator.h.
Definition at line 387 of file OgreTerrainMaterialGenerator.h.
unsigned int Ogre::TerrainMaterialGenerator::mDebugLevel [protected] |
Definition at line 386 of file OgreTerrainMaterialGenerator.h.
Definition at line 385 of file OgreTerrainMaterialGenerator.h.
ProfileList Ogre::TerrainMaterialGenerator::mProfiles [protected] |
Definition at line 382 of file OgreTerrainMaterialGenerator.h.
Copyright © 2012 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Fri May 25 23:42:08 2012