Classes | Public Types | Public Member Functions | Protected Attributes | List of all members
Ogre::TerrainMaterialGeneratorA Class Reference

A TerrainMaterialGenerator which can cope with normal mapped, specular mapped terrain. More...

#include <OgreTerrainMaterialGeneratorA.h>

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

Classes

class  SM2Profile
 Shader model 2 profile target. More...
 

Public Types

typedef vector< Profile * >::type ProfileList
 List of profiles - NB should be ordered in descending complexity. More...
 

Public Member Functions

 TerrainMaterialGeneratorA ()
 
virtual ~TerrainMaterialGeneratorA ()
 
Texture_getCompositeMapRTT ()
 
void _markChanged ()
 Internal method - indicates that a change has been made that would require material regeneration. More...
 
virtual void _renderCompositeMap (size_t size, const Rect &rect, const MaterialPtr &mat, const TexturePtr &destCompositeMap)
 Helper method to render a composite map. More...
 
virtual bool canGenerateUsingDeclaration (const TerrainLayerDeclaration &decl)
 Whether this generator can generate a material for a given declaration. More...
 
virtual MaterialPtr generate (const Terrain *terrain)
 Generate a material for the given terrain using the active profile. More...
 
virtual MaterialPtr generateForCompositeMap (const Terrain *terrain)
 Generate a material for the given composite map of the terrain using the active profile. More...
 
ProfilegetActiveProfile () const
 Get the active profile. More...
 
unsigned long long int getChangeCount () const
 Returns the number of times the generator has undergone a change which would require materials to be regenerated. More...
 
virtual unsigned int getDebugLevel () const
 Get the debug level of the material. More...
 
virtual const
TerrainLayerDeclaration
getLayerDeclaration () const
 Get the layer declaration that this material generator operates with. More...
 
virtual uint8 getMaxLayers (const Terrain *terrain) const
 Get the maximum number of layers supported with the given terrain. More...
 
virtual const ProfileListgetProfiles () const
 Get the list of profiles that this generator supports. More...
 
virtual bool isVertexCompressionSupported () const
 Return whether this material generator supports using a compressed vertex format. More...
 
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 *)
 
void * operator new (size_t sz, const char *file, int line, const char *func)
 operator new, with debug line info More...
 
void * operator new (size_t sz)
 
void * operator new (size_t sz, void *ptr)
 placement operator new More...
 
void * operator new[] (size_t sz, const char *file, int line, const char *func)
 array operator new, with debug line info More...
 
void * operator new[] (size_t sz)
 
virtual void requestOptions (Terrain *terrain)
 Triggers the generator to request the options that it needs. More...
 
virtual void setActiveProfile (const String &name)
 Set the active profile by name. More...
 
virtual void setActiveProfile (Profile *p)
 Set the active Profile. More...
 
virtual void setDebugLevel (unsigned int dbg)
 Set the debug level of the material. More...
 
virtual void setLightmapEnabled (bool enabled)
 
Whether to support a light map over the terrain in the shader,

if it's present (default true). More...

 
virtual void updateCompositeMap (const Terrain *terrain, const Rect &rect)
 Update the composite map for a terrain. More...
 
virtual void updateParams (const MaterialPtr &mat, const Terrain *terrain)
 Update parameters for the given terrain using the active profile. More...
 
virtual void updateParamsForCompositeMap (const MaterialPtr &mat, const Terrain *terrain)
 Update parameters for the given terrain composite map using the active profile. More...
 

Protected Attributes

ProfilemActiveProfile
 
unsigned long long int mChangeCounter
 
CameramCompositeMapCam
 
LightmCompositeMapLight
 
ManualObjectmCompositeMapPlane
 
TexturemCompositeMapRTT
 
SceneManagermCompositeMapSM
 
unsigned int mDebugLevel
 
TerrainLayerDeclaration mLayerDecl
 
ProfileList mProfiles
 

Detailed Description

A TerrainMaterialGenerator which can cope with normal mapped, specular mapped terrain.

Note
Requires the Cg plugin to render correctly

Definition at line 53 of file OgreTerrainMaterialGeneratorA.h.

Member Typedef Documentation

List of profiles - NB should be ordered in descending complexity.

Definition at line 206 of file OgreTerrainMaterialGenerator.h.

Constructor & Destructor Documentation

Ogre::TerrainMaterialGeneratorA::TerrainMaterialGeneratorA ( )
virtual Ogre::TerrainMaterialGeneratorA::~TerrainMaterialGeneratorA ( )
virtual

Member Function Documentation

Texture* Ogre::TerrainMaterialGenerator::_getCompositeMapRTT ( )
inherited

Definition at line 389 of file OgreTerrainMaterialGenerator.h.

void Ogre::TerrainMaterialGenerator::_markChanged ( )
inherited

Internal method - indicates that a change has been made that would require material regeneration.

Definition at line 249 of file OgreTerrainMaterialGenerator.h.

virtual void Ogre::TerrainMaterialGenerator::_renderCompositeMap ( size_t  size,
const Rect rect,
const MaterialPtr mat,
const TexturePtr destCompositeMap 
)
virtualinherited

Helper method to render a composite map.

Parameters
sizeThe requested composite map size
rectThe region of the composite map to update, in image space
matThe material to use to render the map
destCompositeMapA TexturePtr for the composite map to be written into
virtual bool Ogre::TerrainMaterialGenerator::canGenerateUsingDeclaration ( const TerrainLayerDeclaration decl)
virtualinherited

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 265 of file OgreTerrainMaterialGenerator.h.

virtual MaterialPtr Ogre::TerrainMaterialGenerator::generate ( const Terrain terrain)
virtualinherited

Generate a material for the given terrain using the active profile.

Definition at line 289 of file OgreTerrainMaterialGenerator.h.

References Ogre::TerrainMaterialGenerator::Profile::generate().

virtual MaterialPtr Ogre::TerrainMaterialGenerator::generateForCompositeMap ( const Terrain terrain)
virtualinherited

Generate a material for the given composite map of the terrain using the active profile.

Definition at line 299 of file OgreTerrainMaterialGenerator.h.

References Ogre::TerrainMaterialGenerator::Profile::generateForCompositeMap().

Profile* Ogre::TerrainMaterialGenerator::getActiveProfile ( ) const
inherited

Get the active profile.

Definition at line 239 of file OgreTerrainMaterialGenerator.h.

unsigned long long int Ogre::TerrainMaterialGenerator::getChangeCount ( ) const
inherited

Returns the number of times the generator has undergone a change which would require materials to be regenerated.

Definition at line 254 of file OgreTerrainMaterialGenerator.h.

virtual unsigned int Ogre::TerrainMaterialGenerator::getDebugLevel ( ) const
virtualinherited

Get the debug level of the material.

Definition at line 378 of file OgreTerrainMaterialGenerator.h.

virtual const TerrainLayerDeclaration& Ogre::TerrainMaterialGenerator::getLayerDeclaration ( ) const
virtualinherited

Get the layer declaration that this material generator operates with.

Definition at line 258 of file OgreTerrainMaterialGenerator.h.

virtual uint8 Ogre::TerrainMaterialGenerator::getMaxLayers ( const Terrain terrain) const
virtualinherited

Get the maximum number of layers supported with the given terrain.

Note
When you change the options on the terrain, this value can change.

Definition at line 319 of file OgreTerrainMaterialGenerator.h.

References Ogre::TerrainMaterialGenerator::Profile::getMaxLayers().

virtual const ProfileList& Ogre::TerrainMaterialGenerator::getProfiles ( ) const
virtualinherited

Get the list of profiles that this generator supports.

Definition at line 210 of file OgreTerrainMaterialGenerator.h.

virtual bool Ogre::TerrainMaterialGenerator::isVertexCompressionSupported ( ) const
virtualinherited

Return whether this material generator supports using a compressed vertex format.

This is only possible when using shaders.

Definition at line 273 of file OgreTerrainMaterialGenerator.h.

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

Definition at line 96 of file OgreMemoryAllocatedObject.h.

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

Definition at line 102 of file OgreMemoryAllocatedObject.h.

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.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete[] ( void *  ptr)
inherited

Definition at line 113 of file OgreMemoryAllocatedObject.h.

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.

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.

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new ( size_t  sz)
inherited

Definition at line 73 of file OgreMemoryAllocatedObject.h.

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.

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.

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new[] ( size_t  sz)
inherited

Definition at line 91 of file OgreMemoryAllocatedObject.h.

virtual void Ogre::TerrainMaterialGenerator::requestOptions ( Terrain terrain)
virtualinherited

Triggers the generator to request the options that it needs.

Definition at line 280 of file OgreTerrainMaterialGenerator.h.

References Ogre::TerrainMaterialGenerator::Profile::requestOptions().

virtual void Ogre::TerrainMaterialGenerator::setActiveProfile ( const String name)
virtualinherited

Set the active profile by name.

Definition at line 213 of file OgreTerrainMaterialGenerator.h.

virtual void Ogre::TerrainMaterialGenerator::setActiveProfile ( Profile p)
virtualinherited

Set the active Profile.

Definition at line 230 of file OgreTerrainMaterialGenerator.h.

virtual void Ogre::TerrainMaterialGenerator::setDebugLevel ( unsigned int  dbg)
virtualinherited

Set the debug level of the material.

Remarks
Sets the level of debug display for this material. What this debug level means is entirely depdendent on the generator, the only constant is that 0 means 'no debug' and non-zero means 'some level of debugging', with any graduations in non-zero values being generator-specific.

Definition at line 369 of file OgreTerrainMaterialGenerator.h.

virtual void Ogre::TerrainMaterialGenerator::setLightmapEnabled ( bool  enabled)
virtualinherited

Whether to support a light map over the terrain in the shader,

if it's present (default true).

Definition at line 310 of file OgreTerrainMaterialGenerator.h.

References Ogre::TerrainMaterialGenerator::Profile::setLightmapEnabled().

virtual void Ogre::TerrainMaterialGenerator::updateCompositeMap ( const Terrain terrain,
const Rect rect 
)
virtualinherited

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 334 of file OgreTerrainMaterialGenerator.h.

References Ogre::TerrainMaterialGenerator::Profile::updateCompositeMap().

virtual void Ogre::TerrainMaterialGenerator::updateParams ( const MaterialPtr mat,
const Terrain terrain 
)
virtualinherited

Update parameters for the given terrain using the active profile.

Definition at line 346 of file OgreTerrainMaterialGenerator.h.

References Ogre::TerrainMaterialGenerator::Profile::updateParams().

virtual void Ogre::TerrainMaterialGenerator::updateParamsForCompositeMap ( const MaterialPtr mat,
const Terrain terrain 
)
virtualinherited

Update parameters for the given terrain composite map using the active profile.

Definition at line 354 of file OgreTerrainMaterialGenerator.h.

References Ogre::TerrainMaterialGenerator::Profile::updateParamsForCompositeMap().

Member Data Documentation

Profile* Ogre::TerrainMaterialGenerator::mActiveProfile
mutableprotectedinherited

Definition at line 393 of file OgreTerrainMaterialGenerator.h.

unsigned long long int Ogre::TerrainMaterialGenerator::mChangeCounter
protectedinherited

Definition at line 394 of file OgreTerrainMaterialGenerator.h.

Camera* Ogre::TerrainMaterialGenerator::mCompositeMapCam
protectedinherited

Definition at line 398 of file OgreTerrainMaterialGenerator.h.

Light* Ogre::TerrainMaterialGenerator::mCompositeMapLight
protectedinherited

Definition at line 401 of file OgreTerrainMaterialGenerator.h.

ManualObject* Ogre::TerrainMaterialGenerator::mCompositeMapPlane
protectedinherited

Definition at line 400 of file OgreTerrainMaterialGenerator.h.

Texture* Ogre::TerrainMaterialGenerator::mCompositeMapRTT
protectedinherited

Definition at line 399 of file OgreTerrainMaterialGenerator.h.

SceneManager* Ogre::TerrainMaterialGenerator::mCompositeMapSM
protectedinherited

Definition at line 397 of file OgreTerrainMaterialGenerator.h.

unsigned int Ogre::TerrainMaterialGenerator::mDebugLevel
protectedinherited

Definition at line 396 of file OgreTerrainMaterialGenerator.h.

TerrainLayerDeclaration Ogre::TerrainMaterialGenerator::mLayerDecl
protectedinherited

Definition at line 395 of file OgreTerrainMaterialGenerator.h.

ProfileList Ogre::TerrainMaterialGenerator::mProfiles
protectedinherited

Definition at line 392 of file OgreTerrainMaterialGenerator.h.


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

Copyright © 2012 Torus Knot Software Ltd
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Wed Oct 23 2013 06:57:41