#include <OgreTechnique.h>
Public Types | |
typedef VectorIterator< Passes > | PassIterator |
typedef VectorIterator< IlluminationPassList > | IlluminationPassIterator |
Public Methods | |
Technique (Material *parent) | |
Constructor. | |
Technique (Material *parent, const Technique &oth) | |
Copy constructor. | |
~Technique () | |
bool | isSupported (void) const |
Indicates if this technique is supported by the current graphics card. | |
void | _compile (bool autoManageTextureUnits) |
Internal compilation method; see Material::compile. | |
void | _compileIlluminationPasses (void) |
Internal method for splitting the passes into illumination passes. | |
Pass * | createPass (void) |
Creates a new Pass for this Technique. | |
Pass * | getPass (unsigned short index) |
Retrieves the Pass with the given index. | |
unsigned short | getNumPasses (void) const |
Retrieves the number of passes. | |
void | removePass (unsigned short index) |
Removes the Pass with the given index. | |
void | removeAllPasses (void) |
Removes all Passes from this Technique. | |
const PassIterator | getPassIterator (void) |
Gets an iterator over the passes in this Technique. | |
const IlluminationPassIterator | getIlluminationPassIterator (void) |
Gets an iterator over the illumination-stage categorised passes. | |
Material * | getParent (void) const |
Gets the parent Material. | |
Technique & | operator= (const Technique &rhs) |
Overloaded operator to copy on Technique to another. | |
bool | isTransparent (void) const |
Returns true if this Technique involves transparency. | |
void | _load (void) |
Internal load method, derived from call to Material::load. | |
void | _unload (void) |
Internal unload method, derived from call to Material::unload. | |
bool | isLoaded (void) const |
void | _notifyNeedsRecompile (void) |
Tells the technique that it needs recompilation. | |
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) |
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) |
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 Pass. | |
void | setTextureAnisotropy (unsigned 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 | setLodIndex (unsigned short index) |
Assigns a level-of-detail (LOD) index to this Technique. | |
unsigned short | getLodIndex (void) const |
Gets the level-of-detail index assigned to this Technique. | |
Protected Types | |
typedef std::vector< Pass * > | Passes |
Protected Methods | |
void | clearIlluminationPasses (void) |
Internal method for clearing illumination pass list. | |
Protected Attributes | |
Passes | mPasses |
List of primary passes. | |
IlluminationPassList | mIlluminationPasses |
List of derived passes, categorised into IlluminationStage (ordered). | |
Material * | mParent |
bool | mIsSupported |
unsigned short | mLodIndex |
Definition at line 41 of file OgreTechnique.h.
|
Definition at line 95 of file OgreTechnique.h. Referenced by getIlluminationPassIterator(). |
|
Definition at line 44 of file OgreTechnique.h. |
|
Definition at line 92 of file OgreTechnique.h. Referenced by getPassIterator(). |
|
Constructor.
Definition at line 38 of file OgreTechnique.cpp. |
|
Copy constructor.
Definition at line 44 of file OgreTechnique.cpp. |
|
Definition at line 51 of file OgreTechnique.cpp. References clearIlluminationPasses(), and removeAllPasses(). |
|
Internal compilation method; see Material::compile.
Definition at line 62 of file OgreTechnique.cpp. References _compileIlluminationPasses(), Ogre::Pass::_split(), Ogre::TextureUnitState::getColourBlendMode(), Ogre::Pass::getFragmentProgram(), Ogre::RenderSystemCapabilities::getNumTextureUnits(), Ogre::Pass::getNumTextureUnitStates(), Ogre::Pass::getTextureUnitStateIterator(), Ogre::Pass::getVertexProgram(), Ogre::RenderSystemCapabilities::hasCapability(), Ogre::Pass::hasFragmentProgram(), Ogre::Pass::hasVertexProgram(), Ogre::TextureUnitState::is3D(), Ogre::GpuProgram::isSupported(), Ogre::LBX_DOTPRODUCT, mIsSupported, mPasses, Ogre::LayerBlendModeEx::operation, Ogre::RSC_CUBEMAPPING, and Ogre::RSC_DOT3. |
|
|
Internal load method, derived from call to Material::load.
Definition at line 219 of file OgreTechnique.cpp. References mIsSupported, and mPasses. |
|
Tells the technique that it needs recompilation.
Definition at line 461 of file OgreTechnique.cpp. References Ogre::Material::_notifyNeedsRecompile(), and mParent. Referenced by Ogre::Pass::_notifyNeedsRecompile(), Ogre::Pass::addTextureUnitState(), Ogre::Pass::createTextureUnitState(), Ogre::Pass::removeAllTextureUnitStates(), Ogre::Pass::removeTextureUnitState(), Ogre::Pass::setFragmentProgram(), setLodIndex(), Ogre::Pass::setShadowCasterVertexProgram(), Ogre::Pass::setShadowReceiverVertexProgram(), and Ogre::Pass::setVertexProgram(). |
|
Internal unload method, derived from call to Material::unload.
Definition at line 231 of file OgreTechnique.cpp. References mPasses. |
|
Internal method for clearing illumination pass list.
Definition at line 659 of file OgreTechnique.cpp. References mIlluminationPasses. Referenced by _compileIlluminationPasses(), and ~Technique(). |
|
Creates a new Pass for this Technique.
Definition at line 146 of file OgreTechnique.cpp. References mPasses. Referenced by Ogre::Pass::_split(), Ogre::parsePass(), and Ogre::MeshSerializerImpl_v1::readMaterial(). |
|
Gets an iterator over the illumination-stage categorised passes.
Definition at line 675 of file OgreTechnique.cpp. References IlluminationPassIterator, and mIlluminationPasses. Referenced by Ogre::RenderPriorityGroup::addSolidRenderableSplitByLightType(). |
|
Gets the level-of-detail index assigned to this Technique.
Definition at line 382 of file OgreTechnique.h. Referenced by Ogre::Material::operator=(). |
|
Retrieves the number of passes.
Definition at line 159 of file OgreTechnique.cpp. References mPasses. |
|
Gets the parent Material.
Definition at line 99 of file OgreTechnique.h. Referenced by Ogre::RenderPriorityGroup::addRenderable(). |
|
Retrieves the Pass with the given index.
Definition at line 153 of file OgreTechnique.cpp. References mPasses. Referenced by Ogre::Quake3Shader::createAsMaterial(), Ogre::SceneManager::createShadowTextures(), Ogre::Font::createTextureFromFont(), Ogre::SceneManager::initShadowVolumeMaterials(), Ogre::Font::load(), Ogre::BspLevel::loadQuake3Level(), Ogre::BspSceneManager::processVisibleLeaf(), Ogre::MeshSerializerImpl_v1::readTextureLayer(), Ogre::Entity::reevaluateVertexProcessing(), Ogre::SceneManager::setSkyBox(), Ogre::TerrainSceneManager::setWorldGeometry(), and Ogre::PanelGuiElement::updateTextureGeometry(). |
|
Gets an iterator over the passes in this Technique.
Definition at line 183 of file OgreTechnique.cpp. References mPasses, and PassIterator. Referenced by Ogre::RenderPriorityGroup::addSolidRenderable(), Ogre::RenderPriorityGroup::addTransparentRenderable(), and Ogre::BspSceneManager::renderStaticGeometry(). |
|
Definition at line 242 of file OgreTechnique.cpp. References Ogre::Resource::isLoaded(), and mParent. Referenced by Ogre::Pass::isLoaded(). |
|
Indicates if this technique is supported by the current graphics card.
Definition at line 57 of file OgreTechnique.cpp. References mIsSupported. |
|
Returns true if this Technique involves transparency.
Definition at line 206 of file OgreTechnique.cpp. References mPasses. Referenced by _compileIlluminationPasses(), and Ogre::RenderPriorityGroup::addRenderable(). |
|
Overloaded operator to copy on Technique to another.
Definition at line 188 of file OgreTechnique.cpp. References _compileIlluminationPasses(), mIsSupported, mLodIndex, mPasses, and removeAllPasses(). |
|
Removes all Passes from this Technique.
Definition at line 172 of file OgreTechnique.cpp. References mPasses. Referenced by operator=(), and ~Technique(). |
|
Removes the Pass with the given index.
Definition at line 164 of file OgreTechnique.cpp. References mPasses. |
|
Sets the ambient colour reflectance properties for every Pass in every Technique.
Definition at line 258 of file OgreTechnique.cpp. References Ogre::ColourValue::b, Ogre::ColourValue::g, Ogre::ColourValue::r, and setAmbient(). |
|
Sets the ambient colour reflectance properties for every Pass in every Technique.
Definition at line 247 of file OgreTechnique.cpp. References Ogre::green, mPasses, and Ogre::Real. Referenced by setAmbient(). |
|
Sets whether or not colour buffer writing is enabled for each Pass.
Definition at line 348 of file OgreTechnique.cpp. References mPasses. |
|
Sets the culling mode for each pass based on the 'vertex winding'.
Definition at line 358 of file OgreTechnique.cpp. References Ogre::CullingMode, and mPasses. |
|
Sets the depth bias to be used for each Pass.
Definition at line 409 of file OgreTechnique.cpp. References mPasses, and Ogre::ushort. |
|
Sets whether or not each Pass renders with depth-buffer checking on or not.
Definition at line 318 of file OgreTechnique.cpp. References mPasses. |
|
Sets the function used to compare depth values when depth checking is on.
Definition at line 338 of file OgreTechnique.cpp. References Ogre::CompareFunction, and mPasses. |
|
Sets whether or not each Pass renders with depth-buffer writing on or not.
Definition at line 328 of file OgreTechnique.cpp. References mPasses. |
|
Sets the diffuse colour reflectance properties of every Pass in every Technique.
Definition at line 273 of file OgreTechnique.cpp. References Ogre::ColourValue::b, Ogre::ColourValue::g, Ogre::ColourValue::r, and setDiffuse(). |
|
Sets the diffuse colour reflectance properties of every Pass in every Technique.
Definition at line 263 of file OgreTechnique.cpp. References Ogre::green, mPasses, and Ogre::Real. Referenced by setDiffuse(). |
|
Sets the fogging mode applied to each pass.
Definition at line 398 of file OgreTechnique.cpp. References Ogre::FogMode, mPasses, and Ogre::Real. |
|
Sets whether or not dynamic lighting is enabled for every Pass.
Definition at line 378 of file OgreTechnique.cpp. References mPasses. |
|
Assigns a level-of-detail (LOD) index to this Technique.
Definition at line 466 of file OgreTechnique.cpp. References _notifyNeedsRecompile(), and mLodIndex. Referenced by Ogre::parseLodIndex(). |
|
Sets the manual culling mode, performed by CPU rather than hardware.
Definition at line 368 of file OgreTechnique.cpp. References Ogre::ManualCullingMode, and mPasses. |
|
Allows very fine control of blending every Pass with the existing contents of the scene.
Definition at line 449 of file OgreTechnique.cpp. References mPasses, and Ogre::SceneBlendFactor. |
|
Sets the kind of blending every pass has with the existing contents of the scene.
Definition at line 439 of file OgreTechnique.cpp. References mPasses, and Ogre::SceneBlendType. |
|
Sets the amount of self-illumination of every Pass in every Technique.
Definition at line 313 of file OgreTechnique.cpp. References Ogre::ColourValue::b, Ogre::ColourValue::g, Ogre::ColourValue::r, and setSelfIllumination(). |
|
Sets the amount of self-illumination of every Pass in every Technique.
Definition at line 303 of file OgreTechnique.cpp. References Ogre::green, mPasses, and Ogre::Real. Referenced by setSelfIllumination(). |
|
Sets the type of light shading required.
Definition at line 388 of file OgreTechnique.cpp. References mPasses, and Ogre::ShadeOptions. |
|
Sets the shininess properties of every Pass in every Technique.
Definition at line 293 of file OgreTechnique.cpp. References mPasses, and Ogre::Real. |
|
Sets the specular colour reflectance properties of every Pass in every Technique.
Definition at line 288 of file OgreTechnique.cpp. References Ogre::ColourValue::b, Ogre::ColourValue::g, Ogre::ColourValue::r, and setSpecular(). |
|
Sets the specular colour reflectance properties of every Pass in every Technique.
Definition at line 278 of file OgreTechnique.cpp. References Ogre::green, mPasses, and Ogre::Real. Referenced by setSpecular(). |
|
Sets the anisotropy level to be used for all textures.
Definition at line 429 of file OgreTechnique.cpp. References mPasses. |
|
Set texture filtering for every texture unit in every Pass.
Definition at line 419 of file OgreTechnique.cpp. References mPasses, and Ogre::TextureFilterOptions. |
|
List of derived passes, categorised into IlluminationStage (ordered).
Definition at line 48 of file OgreTechnique.h. Referenced by _compileIlluminationPasses(), clearIlluminationPasses(), and getIlluminationPassIterator(). |
|
Definition at line 50 of file OgreTechnique.h. Referenced by _compile(), _load(), isSupported(), and operator=(). |
|
Definition at line 51 of file OgreTechnique.h. Referenced by operator=(), and setLodIndex(). |
|
Definition at line 49 of file OgreTechnique.h. Referenced by _notifyNeedsRecompile(), and isLoaded(). |
|
List of primary passes.
Definition at line 46 of file OgreTechnique.h. Referenced by _compile(), _compileIlluminationPasses(), _load(), _unload(), createPass(), getNumPasses(), getPass(), getPassIterator(), isTransparent(), operator=(), removeAllPasses(), removePass(), setAmbient(), setColourWriteEnabled(), setCullingMode(), setDepthBias(), setDepthCheckEnabled(), setDepthFunction(), setDepthWriteEnabled(), setDiffuse(), setFog(), setLightingEnabled(), setManualCullingMode(), setSceneBlending(), setSelfIllumination(), setShadingMode(), setShininess(), setSpecular(), setTextureAnisotropy(), and setTextureFiltering(). |
Copyright © 2002-2003 by The OGRE Team
Last modified Fri May 14 23:27:22 2004