#include <OgreMaterial.h>
Inheritance diagram for Ogre::Material:
Public Types | |
typedef std::vector< Real > | LodDistanceList |
distance list used to specify LOD | |
typedef ConstVectorIterator< LodDistanceList > | LodDistanceIterator |
typedef VectorIterator< Techniques > | TechniqueIterator |
Public Member Functions | |
Material (ResourceManager *creator, const String &name, ResourceHandle handle, const String &group, bool isManual=false, ManualResourceLoader *loader=0) | |
Constructor - use resource manager's create method rather than this. | |
~Material () | |
Material & | operator= (const Material &rhs) |
Assignment operator to allow easy copying between materials. | |
bool | isTransparent (void) const |
Determines if the material has any transparency with the rest of the scene (derived from whether any Techniques say they involve transparency). | |
void | setReceiveShadows (bool enabled) |
Sets whether objects using this material will receive shadows. | |
bool | getReceiveShadows (void) const |
Returns whether or not objects using this material will receive shadows. | |
void | setTransparencyCastsShadows (bool enabled) |
Sets whether objects using this material be classified as opaque to the shadow caster system. | |
bool | getTransparencyCastsShadows (void) const |
Returns whether or not objects using this material be classified as opaque to the shadow caster system. | |
Technique * | createTechnique (void) |
Creates a new Technique for this Material. | |
Technique * | getTechnique (unsigned short index) |
Gets the indexed technique. | |
unsigned short | getNumTechniques (void) const |
Retrieves the number of techniques. | |
void | removeTechnique (unsigned short index) |
Removes the technique at the given index. | |
void | removeAllTechniques (void) |
Removes all the techniques in this Material. | |
TechniqueIterator | getTechniqueIterator (void) |
Get an iterator over the Techniques in this Material. | |
TechniqueIterator | getSupportedTechniqueIterator (void) |
Gets an iterator over all the Techniques which are supported by the current card. | |
Technique * | getSupportedTechnique (unsigned short index) |
Gets the indexed supported technique. | |
unsigned short | getNumSupportedTechniques (void) const |
Retrieves the number of supported techniques. | |
unsigned short | getNumLodLevels (void) const |
Gets the number of levels-of-detail this material has, based on Technique::setLodIndex. | |
Technique * | getBestTechnique (unsigned short lodIndex=0) |
Gets the best supported technique. | |
MaterialPtr | clone (const String &newName, bool changeGroup=false, const String &newGroup=StringUtil::BLANK) const |
Creates a new copy of this material with the same settings but a new name. | |
void | copyDetailsTo (MaterialPtr &mat) const |
Copies the details of this material into another, preserving the target's handle and name (unlike operator=) but copying everything else. | |
void | compile (bool autoManageTextureUnits=true) |
'Compiles' this Material. | |
void | setAmbient (Real red, Real green, Real blue) |
Sets the ambient colour reflectance properties for every Pass in every Technique. | |
void | setAmbient (const ColourValue &ambient) |
Sets the ambient colour reflectance properties for every Pass in every Technique. | |
void | setDiffuse (Real red, Real green, Real blue, Real alpha) |
Sets the diffuse colour reflectance properties of every Pass in every Technique. | |
void | setDiffuse (const ColourValue &diffuse) |
Sets the diffuse colour reflectance properties of every Pass in every Technique. | |
void | setSpecular (Real red, Real green, Real blue, Real alpha) |
Sets the specular colour reflectance properties of every Pass in every Technique. | |
void | setSpecular (const ColourValue &specular) |
Sets the specular colour reflectance properties of every Pass in every Technique. | |
void | setShininess (Real val) |
Sets the shininess properties of every Pass in every Technique. | |
void | setSelfIllumination (Real red, Real green, Real blue) |
Sets the amount of self-illumination of every Pass in every Technique. | |
void | setSelfIllumination (const ColourValue &selfIllum) |
Sets the amount of self-illumination of every Pass in every Technique. | |
void | setDepthCheckEnabled (bool enabled) |
Sets whether or not each Pass renders with depth-buffer checking on or not. | |
void | setDepthWriteEnabled (bool enabled) |
Sets whether or not each Pass renders with depth-buffer writing on or not. | |
void | setDepthFunction (CompareFunction func) |
Sets the function used to compare depth values when depth checking is on. | |
void | setColourWriteEnabled (bool enabled) |
Sets whether or not colour buffer writing is enabled for each Pass. | |
void | setCullingMode (CullingMode mode) |
Sets the culling mode for each pass based on the 'vertex winding'. | |
void | setManualCullingMode (ManualCullingMode mode) |
Sets the manual culling mode, performed by CPU rather than hardware. | |
void | setLightingEnabled (bool enabled) |
Sets whether or not dynamic lighting is enabled for every Pass. | |
void | setShadingMode (ShadeOptions mode) |
Sets the type of light shading required. | |
void | setFog (bool overrideScene, FogMode mode=FOG_NONE, const ColourValue &colour=ColourValue::White, Real expDensity=0.001, Real linearStart=0.0, Real linearEnd=1.0) |
Sets the fogging mode applied to each pass. | |
void | setDepthBias (ushort bias) |
Sets the depth bias to be used for each Pass. | |
void | setTextureFiltering (TextureFilterOptions filterType) |
Set texture filtering for every texture unit in every Technique and Pass. | |
void | setTextureAnisotropy (int maxAniso) |
Sets the anisotropy level to be used for all textures. | |
void | setSceneBlending (const SceneBlendType sbt) |
Sets the kind of blending every pass has with the existing contents of the scene. | |
void | setSceneBlending (const SceneBlendFactor sourceFactor, const SceneBlendFactor destFactor) |
Allows very fine control of blending every Pass with the existing contents of the scene. | |
void | _notifyNeedsRecompile (void) |
Tells the material that it needs recompilation. | |
void | setLodLevels (const LodDistanceList &lodDistances) |
Sets the distance at which level-of-detail (LOD) levels come into effect. | |
LodDistanceIterator | getLodDistanceIterator (void) const |
Gets an iterator over the list of distances at which each LOD comes into effect. | |
unsigned short | getLodIndex (Real d) const |
Gets the LOD index to use at the given distance. | |
unsigned short | getLodIndexSquaredDepth (Real squaredDepth) const |
Gets the LOD index to use at the given squared distance. | |
void | touch (void) |
| |
bool | getCompilationRequired () const |
Gets the compilation status of the material. | |
virtual void | load (void) |
Loads the resource, if it is not already. | |
virtual void | reload (void) |
Reloads the resource, if it is already loaded. | |
bool | isReloadable (void) const |
Returns true if the Resource is reloadable, false otherwise. | |
bool | isManuallyLoaded (void) const |
Is this resource manually loaded? | |
virtual void | unload (void) |
Unloads the resource; this is not permanent, the resource can be reloaded later if required. | |
size_t | getSize (void) const |
Retrieves info about the size of the resource. | |
const String & | getName (void) const |
Gets resource name. | |
ResourceHandle | getHandle (void) const |
bool | isLoaded (void) const |
Returns true if the Resource has been loaded, false otherwise. | |
const String & | getGroup (void) |
Gets the group which this resource is a member of. | |
ResourceManager * | getCreator (void) |
Gets the manager which created this resource. | |
const String & | getOrigin (void) const |
Get the origin of this resource, e.g. | |
void | _notifyOrigin (const String &origin) |
Notify this resource of it's origin. | |
ParamDictionary * | getParamDictionary (void) |
Retrieves the parameter dictionary for this class. | |
const ParamDictionary * | getParamDictionary (void) const |
const ParameterList & | getParameters (void) const |
Retrieves a list of parameters valid for this object. | |
virtual bool | setParameter (const String &name, const String &value) |
Generic parameter setting method. | |
virtual void | setParameterList (const NameValuePairList ¶mList) |
Generic multiple parameter setting method. | |
virtual String | getParameter (const String &name) const |
Generic parameter retrieval method. | |
virtual void | copyParametersTo (StringInterface *dest) const |
Method for copying this object's parameters to another object. | |
Static Public Member Functions | |
void | cleanupDictionary () |
Cleans up the static 'msDictionary' required to reset Ogre, otherwise the containers are left with invalid pointers, which will lead to a crash as soon as one of the ResourceManager implementers (e.g. | |
Protected Types | |
typedef std::vector< Technique * > | Techniques |
typedef std::map< unsigned short, Technique * > | BestTechniqueList |
Protected Member Functions | |
void | applyDefaults (void) |
Internal method which sets the material up from the default settings. | |
void | fixupBestTechniqueList (void) |
Fixup the best technique list guarantees no gaps inside. | |
void | loadImpl (void) |
Overridden from Resource. | |
void | unloadImpl (void) |
Unloads the material, frees resources etc. | |
size_t | calculateSize (void) const |
| |
bool | createParamDictionary (const String &className) |
Internal method for creating a parameter dictionary for the class, if it does not already exist. | |
Protected Attributes | |
Techniques | mTechniques |
Techniques | mSupportedTechniques |
BestTechniqueList | mBestTechniqueList |
LodDistanceList | mLodDistances |
bool | mReceiveShadows |
bool | mTransparencyCastsShadows |
bool | mCompilationRequired |
Does this material require compilation? | |
ResourceManager * | mCreator |
Creator. | |
String | mName |
Unique name of the resource. | |
String | mGroup |
The name of the resource group. | |
ResourceHandle | mHandle |
Numeric handle for more efficient look up than name. | |
bool | mIsLoaded |
Is the resource currently loaded? | |
size_t | mSize |
The size of the resource in bytes. | |
bool | mIsManual |
Is this file manually loaded? | |
String | mOrigin |
Origin of this resource (e.g. script name) - optional. | |
ManualResourceLoader * | mLoader |
Optional manual loader; if provided, data is loaded from here instead of a file. | |
String | mParamDictName |
Class name for this instance to be used as a lookup (must be initialised by subclasses). | |
Static Protected Attributes | |
ParamDictionaryMap | msDictionary |
Dictionary of parameters. | |
Friends | |
class | SceneManager |
class | MaterialManager |
Definition at line 79 of file OgreMaterial.h.
|
Definition at line 98 of file OgreMaterial.h. |
|
Definition at line 87 of file OgreMaterial.h. |
|
distance list used to specify LOD
Definition at line 86 of file OgreMaterial.h. |
|
Definition at line 194 of file OgreMaterial.h. |
|
Definition at line 95 of file OgreMaterial.h. |
|
Constructor - use resource manager's create method rather than this.
|
|
|
|
Tells the material that it needs recompilation.
|
|
Notify this resource of it's origin.
Definition at line 214 of file OgreResource.h. References Ogre::String. |
|
Internal method which sets the material up from the default settings.
|
|
Implements Ogre::Resource. Definition at line 124 of file OgreMaterial.h. |
|
Cleans up the static 'msDictionary' required to reset Ogre, otherwise the containers are left with invalid pointers, which will lead to a crash as soon as one of the ResourceManager implementers (e.g. MaterialManager) initializes. |
|
Creates a new copy of this material with the same settings but a new name.
|
|
'Compiles' this Material.
|
|
Copies the details of this material into another, preserving the target's handle and name (unlike operator=) but copying everything else.
|
|
Method for copying this object's parameters to another object.
Definition at line 296 of file OgreStringInterface.h. References Ogre::ParamDictionary::mParamDefs, and Ogre::StringInterface::setParameter(). |
|
Internal method for creating a parameter dictionary for the class, if it does not already exist.
Definition at line 172 of file OgreStringInterface.h. References Ogre::String. |
|
Creates a new Technique for this Material.
|
|
Fixup the best technique list guarantees no gaps inside.
|
|
Gets the best supported technique.
|
|
Gets the compilation status of the material.
Definition at line 566 of file OgreMaterial.h. |
|
Gets the manager which created this resource.
Definition at line 205 of file OgreResource.h. |
|
Gets the group which this resource is a member of.
Definition at line 202 of file OgreResource.h. References Ogre::String. |
|
Definition at line 188 of file OgreResource.h. References Ogre::ResourceHandle. |
|
Gets an iterator over the list of distances at which each LOD comes into effect.
|
|
Gets the LOD index to use at the given distance.
|
|
Gets the LOD index to use at the given squared distance.
|
|
Gets resource name.
Definition at line 183 of file OgreResource.h. References Ogre::String. |
|
Gets the number of levels-of-detail this material has, based on Technique::setLodIndex.
Definition at line 215 of file OgreMaterial.h. |
|
Retrieves the number of supported techniques.
|
|
Retrieves the number of techniques.
|
|
Get the origin of this resource, e.g. a script file name.
Definition at line 212 of file OgreResource.h. References Ogre::String. |
|
Definition at line 209 of file OgreStringInterface.h. |
|
Retrieves the parameter dictionary for this class.
Definition at line 196 of file OgreStringInterface.h. |
|
Generic parameter retrieval method.
Definition at line 265 of file OgreStringInterface.h. References Ogre::ParamCommand::doGet(), Ogre::ParamDictionary::getParamCommand(), and Ogre::String. |
|
Retrieves a list of parameters valid for this object.
|
|
Returns whether or not objects using this material will receive shadows.
Definition at line 157 of file OgreMaterial.h. |
|
Retrieves info about the size of the resource.
Definition at line 172 of file OgreResource.h. |
|
Gets the indexed supported technique.
|
|
Gets an iterator over all the Techniques which are supported by the current card.
|
|
Gets the indexed technique.
|
|
Get an iterator over the Techniques in this Material.
|
|
Returns whether or not objects using this material be classified as opaque to the shadow caster system.
Definition at line 169 of file OgreMaterial.h. |
|
Returns true if the Resource has been loaded, false otherwise.
Definition at line 195 of file OgreResource.h. References OGRE_LOCK_AUTO_MUTEX. |
|
Is this resource manually loaded?
Definition at line 160 of file OgreResource.h. |
|
Returns true if the Resource is reloadable, false otherwise.
Definition at line 153 of file OgreResource.h. |
|
Determines if the material has any transparency with the rest of the scene (derived from whether any Techniques say they involve transparency).
|
|
Loads the resource, if it is not already.
Reimplemented in Ogre::Mesh, and Ogre::GLSLGpuProgram. |
|
Overridden from Resource.
Implements Ogre::Resource. |
|
Assignment operator to allow easy copying between materials.
|
|
Reloads the resource, if it is already loaded.
|
|
Removes all the techniques in this Material.
|
|
Removes the technique at the given index.
|
|
Sets the ambient colour reflectance properties for every Pass in every Technique.
|
|
Sets the ambient colour reflectance properties for every Pass in every Technique.
|
|
Sets whether or not colour buffer writing is enabled for each Pass.
|
|
Sets the culling mode for each pass based on the 'vertex winding'.
|
|
Sets the depth bias to be used for each Pass.
|
|
Sets whether or not each Pass renders with depth-buffer checking on or not.
|
|
Sets the function used to compare depth values when depth checking is on.
|
|
Sets whether or not each Pass renders with depth-buffer writing on or not.
|
|
Sets the diffuse colour reflectance properties of every Pass in every Technique.
|
|
Sets the diffuse colour reflectance properties of every Pass in every Technique.
|
|
Sets the fogging mode applied to each pass.
|
|
Sets whether or not dynamic lighting is enabled for every Pass.
|
|
Sets the distance at which level-of-detail (LOD) levels come into effect.
|
|
Sets the manual culling mode, performed by CPU rather than hardware.
|
|
Generic parameter setting method.
Referenced by Ogre::StringInterface::copyParametersTo(). |
|
Generic multiple parameter setting method.
|
|
Sets whether objects using this material will receive shadows.
Definition at line 155 of file OgreMaterial.h. |
|
Allows very fine control of blending every Pass with the existing contents of the scene.
|
|
Sets the kind of blending every pass has with the existing contents of the scene.
|
|
Sets the amount of self-illumination of every Pass in every Technique.
|
|
Sets the amount of self-illumination of every Pass in every Technique.
|
|
Sets the type of light shading required.
|
|
Sets the shininess properties of every Pass in every Technique.
|
|
Sets the specular colour reflectance properties of every Pass in every Technique.
|
|
Sets the specular colour reflectance properties of every Pass in every Technique.
|
|
Sets the anisotropy level to be used for all textures.
|
|
Set texture filtering for every texture unit in every Technique and Pass.
|
|
Sets whether objects using this material be classified as opaque to the shadow caster system.
Definition at line 167 of file OgreMaterial.h. |
|
Reimplemented from Ogre::Resource. Definition at line 555 of file OgreMaterial.h. |
|
Unloads the resource; this is not permanent, the resource can be reloaded later if required.
Reimplemented in Ogre::GLSLGpuProgram. |
|
Unloads the material, frees resources etc.
Implements Ogre::Resource. |
|
Definition at line 82 of file OgreMaterial.h. |
|
Definition at line 81 of file OgreMaterial.h. |
|
Definition at line 99 of file OgreMaterial.h. |
|
Does this material require compilation?
Definition at line 105 of file OgreMaterial.h. |
|
Creator.
Definition at line 73 of file OgreResource.h. |
|
The name of the resource group.
Definition at line 77 of file OgreResource.h. |
|
Numeric handle for more efficient look up than name.
Definition at line 79 of file OgreResource.h. |
|
Is the resource currently loaded?
Definition at line 81 of file OgreResource.h. |
|
Is this file manually loaded?
Definition at line 85 of file OgreResource.h. |
|
Optional manual loader; if provided, data is loaded from here instead of a file.
Definition at line 89 of file OgreResource.h. |
|
Definition at line 101 of file OgreMaterial.h. |
|
Unique name of the resource.
Definition at line 75 of file OgreResource.h. |
|
Origin of this resource (e.g. script name) - optional.
Definition at line 87 of file OgreResource.h. |
|
Class name for this instance to be used as a lookup (must be initialised by subclasses).
Definition at line 160 of file OgreStringInterface.h. |
|
Definition at line 102 of file OgreMaterial.h. |
|
Dictionary of parameters.
Definition at line 157 of file OgreStringInterface.h. |
|
The size of the resource in bytes.
Definition at line 83 of file OgreResource.h. |
|
Definition at line 97 of file OgreMaterial.h. |
|
Definition at line 96 of file OgreMaterial.h. |
|
Definition at line 103 of file OgreMaterial.h. |
Copyright © 2000-2005 by The OGRE Team
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Feb 12 13:00:58 2006