Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# Ogre::Pass Class Reference

Class defining a single pass of a Technique (of a Material), ie a single rendering call. More...

`#include <OgrePass.h>`

List of all members.

## Public Types

typedef std::set< Pass * > | PassSet
typedef VectorIterator< TextureUnitStates > | TextureUnitStateIterator

## Public Methods

| Pass (Technique *parent, unsigned short index)
| Default constructor.
| Pass (Technique *parent, unsigned short index, const Pass &oth)
| Copy constructor.
Pass & | operator= (const Pass &oth)
| Operator = overload.
| ~Pass ()
bool | isProgrammable (void) const
| Returns true if this pass is programmable ie includes either a vertex or fragment program.
bool | hasVertexProgram (void) const
| Returns true if this pass uses a programmable vertex pipeline.
bool | hasFragmentProgram (void) const
| Returns true if this pass uses a programmable fragment pipeline.
unsigned short | getIndex (void) const
| Gets the index of this Pass in the parent Technique.
void | setAmbient (Real red, Real green, Real blue)
| Sets the ambient colour reflectance properties of this pass.
void | setAmbient (const ColourValue &ambient)
| Sets the ambient colour reflectance properties of this pass.
void | setDiffuse (Real red, Real green, Real blue, Real alpha)
| Sets the diffuse colour reflectance properties of this pass.
void | setDiffuse (const ColourValue &diffuse)
| Sets the diffuse colour reflectance properties of this pass.
void | setSpecular (Real red, Real green, Real blue, Real alpha)
| Sets the specular colour reflectance properties of this pass.
void | setSpecular (const ColourValue &specular)
| Sets the specular colour reflectance properties of this pass.
void | setShininess (Real val)
| Sets the shininess of the pass, affecting the size of specular highlights.
void | setSelfIllumination (Real red, Real green, Real blue)
| Sets the amount of self-illumination an object has.
void | setSelfIllumination (const ColourValue &selfIllum)
| Sets the amount of self-illumination an object has.
const ColourValue & | getAmbient (void) const
| Gets the ambient colour reflectance of the pass.
const ColourValue & | getDiffuse (void) const
| Gets the diffuse colour reflectance of the pass.
const ColourValue & | getSpecular (void) const
| Gets the specular colour reflectance of the pass.
const ColourValue & | getSelfIllumination (void) const
| Gets the self illumination colour of the pass.
Real | getShininess (void) const
| Gets the 'shininess' property of the pass (affects specular highlights).
TextureUnitState * | createTextureUnitState (void)
| Inserts a new TextureUnitState object into the Pass.
TextureUnitState * | createTextureUnitState (const String &textureName, unsigned short texCoordSet=0)
| Inserts a new TextureUnitState object into the Pass.
void | addTextureUnitState (TextureUnitState *state)
| Adds the passed in TextureUnitState, to the existing Pass.
TextureUnitState * | getTextureUnitState (unsigned short index)
| Retrieves a pointer to a texture unit state so it may be modified.
TextureUnitStateIterator | getTextureUnitStateIterator (void)
| Get an iterator over the TextureUnitStates contained in this Pass.
void | removeTextureUnitState (unsigned short index)
| Removes the indexed texture unit state from this pass.
void | removeAllTextureUnitStates (void)
| Removes all texture unit settings.
size_t | getNumTextureUnitStates (void) const
| Returns the number of texture unit settings.
void | setSceneBlending (const SceneBlendType sbt)
| Sets the kind of blending this pass has with the existing contents of the scene.
void | setSceneBlending (const SceneBlendFactor sourceFactor, const SceneBlendFactor destFactor)
| Allows very fine control of blending this Pass with the existing contents of the scene.
SceneBlendFactor | getSourceBlendFactor () const
| Retrieves the source blending factor for the material (as set using Materiall::setSceneBlending).
SceneBlendFactor | getDestBlendFactor () const
| Retrieves the destination blending factor for the material (as set using Materiall::setSceneBlending).
bool | isTransparent (void) const
| Returns true if this pass has some element of transparency.
void | setDepthCheckEnabled (bool enabled)
| Sets whether or not this pass renders with depth-buffer checking on or not.
bool | getDepthCheckEnabled (void) const
| Returns whether or not this pass renders with depth-buffer checking on or not.
void | setDepthWriteEnabled (bool enabled)
| Sets whether or not this pass renders with depth-buffer writing on or not.
bool | getDepthWriteEnabled (void) const
| Returns whether or not this 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.
CompareFunction | getDepthFunction (void) const
| Returns 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 this Pass.
bool | getColourWriteEnabled (void) const
| Determines if colour buffer writing is enabled for this pass.
void | setCullingMode (CullingMode mode)
| Sets the culling mode for this pass based on the 'vertex winding'.
CullingMode | getCullingMode (void) const
| Returns the culling mode for geometry rendered with this pass.
void | setManualCullingMode (ManualCullingMode mode)
| Sets the manual culling mode, performed by CPU rather than hardware.
ManualCullingMode | getManualCullingMode (void) const
| Retrieves the manual culling mode for this pass.
void | setLightingEnabled (bool enabled)
| Sets whether or not dynamic lighting is enabled.
bool | getLightingEnabled (void) const
| Returns whether or not dynamic lighting is enabled.
void | setMaxSimultaneousLights (unsigned short maxLights)
| Sets the maximum number of lights to be used by this pass.
unsigned short | getMaxSimultaneousLights (void) const
| Gets the maximum number of lights to be used by this pass.
void | setShadingMode (ShadeOptions mode)
| Sets the type of light shading required.
ShadeOptions | getShadingMode (void) const
| Returns the type of light shading to be used.
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 this pass.
bool | getFogOverride (void) const
| Returns true if this pass is to override the scene fog settings.
FogMode | getFogMode (void) const
| Returns the fog mode for this pass.
const ColourValue & | getFogColour (void) const
| Returns the fog colour for the scene.
Real | getFogStart (void) const
| Returns the fog start distance for this pass.
Real | getFogEnd (void) const
| Returns the fog end distance for this pass.
Real | getFogDensity (void) const
| Returns the fog density for this pass.
void | setDepthBias (ushort bias)
| Sets the depth bias to be used for this material.
ushort | getDepthBias (void) const
| Retrieves the depth bias value as set by setDepthValue.
void | setRunOncePerLight (bool enabled, bool onlyForOneLightType=true, Light::LightTypes lightType=Light::LT_POINT)
| Sets whether or not this pass should be run once per light which can affect the object being rendered.
bool | getRunOncePerLight (void) const
| Does this pass run once for every light in range?
bool | getRunOnlyForOneLightType (void) const
| Does this pass run only for a single light type (if getRunOncePerLight is true).
Light::LightTypes | getOnlyLightType () const
| Gets the single light type this pass runs for if getRunOncePerLight and getRunOnlyForOneLightType are both true.
Technique * | getParent (void)
| Gets the parent Technique.
void | setVertexProgram (const String &name, bool resetParams=true)
| Sets the details of the vertex program to use.
void | setVertexProgramParameters (GpuProgramParametersSharedPtr params)
| Sets the vertex program parameters.
const String & | getVertexProgramName (void) const
| Gets the name of the vertex program used by this pass.
GpuProgramParametersSharedPtr | getVertexProgramParameters (void)
| Gets the vertex program parameters used by this pass.
GpuProgram * | getVertexProgram (void)
| Gets the vertex program used by this pass, only available after _load().
void | setShadowCasterVertexProgram (const String &name)
| Sets the details of the vertex program to use when rendering as a shadow caster.
void | setShadowCasterVertexProgramParameters (GpuProgramParametersSharedPtr params)
| Sets the vertex program parameters for rendering as a shadow caster.
const String & | getShadowCasterVertexProgramName (void) const
| Gets the name of the vertex program used by this pass when rendering shadow casters.
GpuProgramParametersSharedPtr | getShadowCasterVertexProgramParameters (void)
| Gets the vertex program parameters used by this pass when rendering shadow casters.
GpuProgram * | getShadowCasterVertexProgram (void)
| Gets the vertex program used by this pass when rendering shadow casters, only available after _load().
void | setShadowReceiverVertexProgram (const String &name)
| Sets the details of the vertex program to use when rendering as a shadow receiver.
void | setShadowReceiverVertexProgramParameters (GpuProgramParametersSharedPtr params)
| Sets the vertex program parameters for rendering as a shadow receiver.
const String & | getShadowReceiverVertexProgramName (void) const
| Gets the name of the vertex program used by this pass when rendering shadow receivers.
GpuProgramParametersSharedPtr | getShadowReceiverVertexProgramParameters (void)
| Gets the vertex program parameters used by this pass when rendering shadow receivers.
GpuProgram * | getShadowReceiverVertexProgram (void)
| Gets the vertex program used by this pass when rendering shadow receivers, only available after _load().
void | setFragmentProgram (const String &name, bool resetParams=true)
| Sets the details of the fragment program to use.
void | setFragmentProgramParameters (GpuProgramParametersSharedPtr params)
| Sets the vertex program parameters.
const String & | getFragmentProgramName (void) const
| Gets the name of the fragment program used by this pass.
GpuProgramParametersSharedPtr | getFragmentProgramParameters (void)
| Gets the vertex program parameters used by this pass.
GpuProgram * | getFragmentProgram (void)
| Gets the vertex program used by this pass, only available after _load().
Pass * | _split (unsigned short numUnits)
| Splits this Pass to one which can be handled in the number of texture units specified.
void | _load (void)
| Internal method for loading this pass.
void | _unload (void)
| Internal method for unloading this pass.
bool | isLoaded (void) const
unsigned long | getHash (void) const
| Gets the 'hash' of this pass, ie a precomputed number to use for sorting.
void | _dirtyHash (void)
| Mark the hash as dirty.
void | _recalculateHash (void)
| Internal method for recalculating the hash.
void | _notifyNeedsRecompile (void)
| Tells the pass that it needs recompilation.
void | _updateAutoParamsNoLights (const AutoParamDataSource &source)
| Update any automatic parameters (except lights) on this pass.
void | _updateAutoParamsLightsOnly (const AutoParamDataSource &source)
| Update any automatic light parameters on this pass.
void | setTextureFiltering (TextureFilterOptions filterType)
| Set texture filtering for every texture unit.
void | setTextureAnisotropy (unsigned int maxAniso)
| Sets the anisotropy level to be used for all textures.
void | queueForDeletion (void)
| Queue this pass for deletion when appropriate.
bool | isAmbientOnly (void) const
| Returns whether this pass is ambient only.

## Static Public Methods

const PassSet & | getDirtyHashList (void)
| Static method to retrieve all the Passes which need their hash values recalculated.
const PassSet & | getPassGraveyard (void)
| Static method to retrieve all the Passes which are pending deletion.
void | clearDirtyHashList (void)
| Static method to reset the list of passes which need their hash values recalculated.
void | processPendingPassUpdates (void)
| Process all dirty and pending deletion passes.

## Protected Types

typedef std::vector< TextureUnitState * > | TextureUnitStates
| Storage of texture unit states.

## Protected Attributes

Technique * | mParent
unsigned short | mIndex
unsigned long | mHash
ColourValue | mAmbient
ColourValue | mDiffuse
ColourValue | mSpecular
ColourValue | mEmissive
Real | mShininess
SceneBlendFactor | mSourceBlendFactor
SceneBlendFactor | mDestBlendFactor
bool | mDepthCheck
bool | mDepthWrite
CompareFunction | mDepthFunc
ushort | mDepthBias
bool | mColourWrite
CullingMode | mCullMode
ManualCullingMode | mManualCullMode
bool | mLightingEnabled
| Lighting enabled?
unsigned short | mMaxSimultaneousLights
| Max simultaneous lights.
bool | mRunOncePerLight
| Run this pass once per light?
bool | mRunOnlyForOneLightType
Light::LightTypes | mOnlyLightType
ShadeOptions | mShadeOptions
| Shading options.
bool | mFogOverride
FogMode | mFogMode
ColourValue | mFogColour
Real | mFogStart
Real | mFogEnd
Real | mFogDensity
TextureUnitStates | mTextureUnitStates
GpuProgramUsage * | mVertexProgramUsage
GpuProgramUsage * | mShadowCasterVertexProgramUsage
GpuProgramUsage * | mShadowReceiverVertexProgramUsage
GpuProgramUsage * | mFragmentProgramUsage
bool | mQueuedForDeletion

## Static Protected Attributes

PassSet | msDirtyHashList
| List of Passes whose hashes need recalculating.
PassSet | msPassGraveyard
| The place where passes go to die.

## Detailed Description

Class defining a single pass of a Technique (of a Material), ie a single rendering call.

Remarks:
  Rendering can be repeated with many passes for more complex effects. Each pass is either a fixed-function pass (meaning it does not use a vertex or fragment program) or a programmable pass (meaning it does use either a vertex and fragment program, or both).

  Programmable passes are complex to define, because they require custom programs and you have to set all constant inputs to the programs (like the position of lights, any base material colours you wish to use etc), but they do give you much total flexibility over the algorithms used to render your pass, and you can create some effects which are impossible with a fixed-function pass. On the other hand, you can define a fixed-function pass in very little time, and you can use a range of fixed-function effects like environment mapping very easily, plus your pass will be more likely to be compatible with older hardware. There are pros and cons to both, just remember that if you use a programmable pass to create some great effects, allow more time for definition and testing.

Definition at line 55 of file OgrePass.h.

## Member Typedef Documentation

typedef std::set<Pass*> Ogre::Pass::PassSet

| Definition at line 132 of file OgrePass.h.

typedef VectorIterator<TextureUnitStates> Ogre::Pass::TextureUnitStateIterator

| Definition at line 308 of file OgrePass.h. Referenced by getTextureUnitStateIterator().

typedef std::vector<TextureUnitState*> Ogre::Pass::TextureUnitStates`[protected]`

| Storage of texture unit states. Definition at line 118 of file OgrePass.h.

## Constructor & Destructor Documentation

Ogre::Pass::Pass | ( | Technique * | parent,
|  | unsigned short | index
| ) |

Default constructor.

Definition at line 40 of file OgrePass.cpp.

References _dirtyHash(), Ogre::CMPF_LESS_EQUAL, Ogre::CULL_CLOCKWISE, Ogre::FOG_NONE, mAmbient, Ogre::MANUAL_CULL_BACK, mColourWrite, mCullMode, mDepthBias, mDepthCheck, mDepthFunc, mDepthWrite, mDestBlendFactor, mDiffuse, mEmissive, mFogColour, mFogDensity, mFogEnd, mFogMode, mFogOverride, mFogStart, mFragmentProgramUsage, mHash, mLightingEnabled, mManualCullMode, mMaxSimultaneousLights, mOnlyLightType, mQueuedForDeletion, mRunOncePerLight, mRunOnlyForOneLightType, mShadeOptions, mShadowCasterVertexProgramUsage, mShadowReceiverVertexProgramUsage, mShininess, mSourceBlendFactor, mSpecular, mVertexProgramUsage, OGRE_MAX_SIMULTANEOUS_LIGHTS, Ogre::SBF_ONE, Ogre::SBF_ZERO, and Ogre::SO_GOURAUD.

Ogre::Pass::Pass | ( | Technique * | parent,
|  | unsigned short | index,
|  | const Pass & | oth
| ) |

| Copy constructor. Definition at line 86 of file OgrePass.cpp. References _dirtyHash(), mIndex, mParent, and mQueuedForDeletion.

Ogre::Pass::~Pass | ( |  | ) |

| Definition at line 96 of file OgrePass.cpp.

## Member Function Documentation

void Ogre::Pass::_dirtyHash | ( | void |  | ) |

Mark the hash as dirty.

Definition at line 765 of file OgrePass.cpp.

References msDirtyHashList.

Referenced by _load(), addTextureUnitState(), createTextureUnitState(), Ogre::TextureUnitState::operator=(), operator=(), Pass(), removeAllTextureUnitStates(), removeTextureUnitState(), Ogre::TextureUnitState::setAnimatedTextureName(), Ogre::TextureUnitState::setCurrentFrame(), Ogre::TextureUnitState::setTextureName(), and Ogre::TextureUnitState::TextureUnitState().

void Ogre::Pass::_load | ( | void |  | ) |

| Internal method for loading this pass. Definition at line 570 of file OgrePass.cpp. References _dirtyHash(), Ogre::GpuProgramUsage::_load(), mFragmentProgramUsage, mShadowCasterVertexProgramUsage, mShadowReceiverVertexProgramUsage, mTextureUnitStates, and mVertexProgramUsage. Referenced by Ogre::SceneManager::renderModulativeTextureShadowedQueueGroupObjects().

void Ogre::Pass::_notifyNeedsRecompile | ( | void |  | ) |

| Tells the pass that it needs recompilation. Definition at line 771 of file OgrePass.cpp. References Ogre::Technique::_notifyNeedsRecompile(), and mParent. Referenced by Ogre::TextureUnitState::_notifyNeedsRecompile(), and Ogre::TextureUnitState::setCubicTextureName().

void Ogre::Pass::_recalculateHash | ( | void |  | ) |

Internal method for recalculating the hash.

Remarks:
  Do not call this unless you are sure the old hash is not still being used by anything. If in doubt, call _dirtyHash if you want to force recalculation of the has next time.

Definition at line 743 of file OgrePass.cpp.

References Ogre::_StringHash, getNumTextureUnitStates(), mHash, mIndex, and mTextureUnitStates.

Referenced by processPendingPassUpdates().

Pass * Ogre::Pass::_split | ( | unsigned short | numUnits | ) |

Splits this Pass to one which can be handled in the number of texture units specified.

Remarks:
  Only works on non-programmable passes, programmable passes cannot be split, it's up to the author to ensure that there is a fallback Technique for less capable cards.

Parameters:

  numUnits | The target number of texture units

Returns:
  A new Pass which contains the remaining units, and a scene_blend setting appropriate to approximate the multitexture. This Pass will be attached to the parent Technique of this Pass.

Definition at line 536 of file OgrePass.cpp.

References addTextureUnitState(), Ogre::Technique::createPass(), Except, mParent, mTextureUnitStates, and setSceneBlending().

Referenced by Ogre::Technique::_compile().

void Ogre::Pass::_unload | ( | void |  | ) |

| Internal method for unloading this pass. Definition at line 611 of file OgrePass.cpp. References mTextureUnitStates.

void Ogre::Pass::_updateAutoParamsLightsOnly | ( | const AutoParamDataSource & | source | ) |

| Update any automatic light parameters on this pass. Definition at line 811 of file OgrePass.cpp. References Ogre::GpuProgramUsage::getParameters(), hasFragmentProgram(), hasVertexProgram(), mFragmentProgramUsage, and mVertexProgramUsage. Referenced by Ogre::SceneManager::renderSingleObject().

void Ogre::Pass::_updateAutoParamsNoLights | ( | const AutoParamDataSource & | source | ) |

| Update any automatic parameters (except lights) on this pass. Definition at line 796 of file OgrePass.cpp. References Ogre::GpuProgramUsage::getParameters(), hasFragmentProgram(), hasVertexProgram(), mFragmentProgramUsage, and mVertexProgramUsage. Referenced by Ogre::SceneManager::renderSingleObject().

void Ogre::Pass::addTextureUnitState | ( | TextureUnitState * | state | ) |

| Adds the passed in TextureUnitState, to the existing Pass. Definition at line 288 of file OgrePass.cpp. References _dirtyHash(), Ogre::Technique::_notifyNeedsRecompile(), mParent, and mTextureUnitStates. Referenced by _split().

void Ogre::Pass::clearDirtyHashList | ( | void |  | ) | `[static]`

Static method to reset the list of passes which need their hash values recalculated.

Remarks:
  For performance, the dirty list is not updated progressively as the hashes are recalculated, instead we expect the processor of the dirty hash list to clear the list when they are done.

Definition at line 883 of file OgrePass.h.

TextureUnitState * Ogre::Pass::createTextureUnitState | ( | const String & | textureName,
|  | unsigned short | texCoordSet = 0
| ) |

Inserts a new TextureUnitState object into the Pass.

Remarks:
  This unit is is added on top of all previous units.

Parameters:

  name | The basic name of the texture e.g. brickwall.jpg, stonefloor.png
  texCoordSet | The index of the texture coordinate set to use.

Note:
  Applies to both fixed-function and programmable passes.

Definition at line 275 of file OgrePass.cpp.

References _dirtyHash(), Ogre::Technique::_notifyNeedsRecompile(), mParent, mTextureUnitStates, Ogre::TextureUnitState::setTextureCoordSet(), Ogre::TextureUnitState::setTextureName(), and Ogre::String.

TextureUnitState * Ogre::Pass::createTextureUnitState | ( | void |  | ) |

Inserts a new TextureUnitState object into the Pass.

Remarks:
  This unit is is added on top of all previous units.

Definition at line 265 of file OgrePass.cpp.

References _dirtyHash(), Ogre::Technique::_notifyNeedsRecompile(), mParent, and mTextureUnitStates.

Referenced by Ogre::SceneManager::createShadowTextures(), Ogre::Font::createTextureFromFont(), Ogre::SceneManager::initShadowVolumeMaterials(), Ogre::Font::load(), Ogre::BspLevel::loadQuake3Level(), Ogre::parseTextureUnit(), Ogre::SceneManager::renderModulativeTextureShadowedQueueGroupObjects(), and Ogre::TerrainSceneManager::setupTerrainMaterial().

const ColourValue & Ogre::Pass::getAmbient | ( | void |  | ) | const

| Gets the ambient colour reflectance of the pass. Definition at line 240 of file OgrePass.cpp. References mAmbient. Referenced by Ogre::Technique::_compileIlluminationPasses(), Ogre::SceneManager::setPass(), and Ogre::MaterialSerializer::writePass().

bool Ogre::Pass::getColourWriteEnabled | ( | void |  | ) | const

| Determines if colour buffer writing is enabled for this pass. Definition at line 419 of file OgrePass.cpp. References mColourWrite. Referenced by Ogre::SceneManager::setPass().

CullingMode Ogre::Pass::getCullingMode | ( | void |  | ) | const

| Returns the culling mode for geometry rendered with this pass. See setCullingMode for more information. Definition at line 429 of file OgrePass.cpp. References Ogre::CullingMode, and mCullMode. Referenced by Ogre::SceneManager::setPass(), and Ogre::MaterialSerializer::writePass().

ushort Ogre::Pass::getDepthBias | ( | void |  | ) | const

| Retrieves the depth bias value as set by setDepthValue. Definition at line 531 of file OgrePass.cpp. References mDepthBias, and Ogre::ushort. Referenced by Ogre::SceneManager::setPass(), and Ogre::MaterialSerializer::writePass().

bool Ogre::Pass::getDepthCheckEnabled | ( | void |  | ) | const

Returns whether or not this pass renders with depth-buffer checking on or not.

See also:
  setDepthCheckEnabled

Definition at line 389 of file OgrePass.cpp.

References mDepthCheck.

Referenced by Ogre::SceneManager::setPass(), and Ogre::MaterialSerializer::writePass().

CompareFunction Ogre::Pass::getDepthFunction | ( | void |  | ) | const

Returns the function used to compare depth values when depth checking is on.

See also:
  setDepthFunction

Definition at line 409 of file OgrePass.cpp.

References Ogre::CompareFunction, and mDepthFunc.

Referenced by Ogre::SceneManager::setPass(), and Ogre::MaterialSerializer::writePass().

bool Ogre::Pass::getDepthWriteEnabled | ( | void |  | ) | const

Returns whether or not this pass renders with depth-buffer writing on or not.

See also:
  setDepthWriteEnabled

Definition at line 399 of file OgrePass.cpp.

References mDepthWrite.

Referenced by Ogre::SceneManager::setPass(), and Ogre::MaterialSerializer::writePass().

SceneBlendFactor Ogre::Pass::getDestBlendFactor | ( |  | ) | const

| Retrieves the destination blending factor for the material (as set using Materiall::setSceneBlending). Definition at line 370 of file OgrePass.cpp. References mDestBlendFactor, and Ogre::SceneBlendFactor. Referenced by Ogre::SceneManager::setPass(), and Ogre::MaterialSerializer::writePass().

const ColourValue & Ogre::Pass::getDiffuse | ( | void |  | ) | const

| Gets the diffuse colour reflectance of the pass. Definition at line 245 of file OgrePass.cpp. References mDiffuse. Referenced by Ogre::Technique::_compileIlluminationPasses(), Ogre::SceneManager::setPass(), and Ogre::MaterialSerializer::writePass().

const PassSet& Ogre::Pass::getDirtyHashList | ( | void |  | ) | `[static]`

| Static method to retrieve all the Passes which need their hash values recalculated. Definition at line 870 of file OgrePass.h.

const ColourValue & Ogre::Pass::getFogColour | ( | void |  | ) | const

| Returns the fog colour for the scene. Definition at line 505 of file OgrePass.cpp. References mFogColour. Referenced by Ogre::SceneManager::setPass(), and Ogre::MaterialSerializer::writePass().

Real Ogre::Pass::getFogDensity | ( | void |  | ) | const

Returns the fog density for this pass.

Note:
  Only valid if getFogOverride is true.

Definition at line 520 of file OgrePass.cpp.

References mFogDensity, and Ogre::Real.

Referenced by Ogre::SceneManager::setPass(), and Ogre::MaterialSerializer::writePass().

Real Ogre::Pass::getFogEnd | ( | void |  | ) | const

Returns the fog end distance for this pass.

Note:
  Only valid if getFogOverride is true.

Definition at line 515 of file OgrePass.cpp.

References mFogEnd, and Ogre::Real.

Referenced by Ogre::SceneManager::setPass(), and Ogre::MaterialSerializer::writePass().

FogMode Ogre::Pass::getFogMode | ( | void |  | ) | const

Returns the fog mode for this pass.

Note:
  Only valid if getFogOverride is true.

Definition at line 500 of file OgrePass.cpp.

References Ogre::FogMode, and mFogMode.

Referenced by Ogre::SceneManager::setPass(), and Ogre::MaterialSerializer::writePass().

bool Ogre::Pass::getFogOverride | ( | void |  | ) | const

| Returns true if this pass is to override the scene fog settings. Definition at line 495 of file OgrePass.cpp. References mFogOverride. Referenced by Ogre::SceneManager::setPass(), and Ogre::MaterialSerializer::writePass().

Real Ogre::Pass::getFogStart | ( | void |  | ) | const

Returns the fog start distance for this pass.

Note:
  Only valid if getFogOverride is true.

Definition at line 510 of file OgrePass.cpp.

References mFogStart, and Ogre::Real.

Referenced by Ogre::SceneManager::setPass(), and Ogre::MaterialSerializer::writePass().

GpuProgram * Ogre::Pass::getFragmentProgram | ( | void |  | ) |

| Gets the vertex program used by this pass, only available after _load(). Definition at line 728 of file OgrePass.cpp. References Ogre::GpuProgramUsage::getProgram(), and mFragmentProgramUsage. Referenced by Ogre::Technique::_compile(), and Ogre::SceneManager::setPass().

const String & Ogre::Pass::getFragmentProgramName | ( | void |  | ) | const

| Gets the name of the fragment program used by this pass. Definition at line 718 of file OgrePass.cpp. References Ogre::GpuProgramUsage::getProgramName(), mFragmentProgramUsage, and Ogre::String.

GpuProgramParametersSharedPtr Ogre::Pass::getFragmentProgramParameters | ( | void |  | ) |

| Gets the vertex program parameters used by this pass. Definition at line 723 of file OgrePass.cpp. References Ogre::GpuProgramUsage::getParameters(), Ogre::GpuProgramParametersSharedPtr, and mFragmentProgramUsage. Referenced by Ogre::parseFragmentProgramRef(), and Ogre::SceneManager::renderSingleObject().

unsigned long Ogre::Pass::getHash | ( | void |  | ) | const

Gets the 'hash' of this pass, ie a precomputed number to use for sorting.

Remarks:
  This hash is used to sort passes, and for this reason the pass is hashed using firstly its index (so that all passes are rendered in order), then by the textures which it's TextureUnitState instances are using.

Definition at line 738 of file OgrePass.cpp.

References mHash.

Referenced by Ogre::RenderPriorityGroup::TransparentQueueItemLess::operator()(), and Ogre::RenderPriorityGroup::SolidQueueItemLess::operator()().

unsigned short Ogre::Pass::getIndex | ( | void |  | ) | const

| Gets the index of this Pass in the parent Technique. Definition at line 157 of file OgrePass.h. Referenced by Ogre::Technique::_compileIlluminationPasses(), and Ogre::SceneManager::validatePassForRendering().

bool Ogre::Pass::getLightingEnabled | ( | void |  | ) | const

| Returns whether or not dynamic lighting is enabled. Definition at line 439 of file OgrePass.cpp. References mLightingEnabled. Referenced by Ogre::Technique::_compileIlluminationPasses(), Ogre::SceneManager::renderSingleObject(), Ogre::SceneManager::setPass(), and Ogre::MaterialSerializer::writePass().

ManualCullingMode Ogre::Pass::getManualCullingMode | ( | void |  | ) | const

Retrieves the manual culling mode for this pass.

See also:
  setManualCullingMode

Definition at line 477 of file OgrePass.cpp.

References Ogre::ManualCullingMode, and mManualCullMode.

Referenced by Ogre::BspSceneManager::processVisibleLeaf(), and Ogre::MaterialSerializer::writePass().

unsigned short Ogre::Pass::getMaxSimultaneousLights | ( | void |  | ) | const

| Gets the maximum number of lights to be used by this pass. Definition at line 449 of file OgrePass.cpp. References mMaxSimultaneousLights. Referenced by Ogre::SceneManager::renderSingleObject(), and Ogre::MaterialSerializer::writePass().

size_t Ogre::Pass::getNumTextureUnitStates | ( | void |  | ) | const

| Returns the number of texture unit settings. Definition at line 324 of file OgrePass.h. Referenced by Ogre::Technique::_compile(), Ogre::Technique::_compileIlluminationPasses(), _recalculateHash(), Ogre::SceneManager::renderModulativeTextureShadowedQueueGroupObjects(), Ogre::SceneManager::setPass(), and Ogre::PanelGuiElement::updateTextureGeometry().

Light::LightTypes Ogre::Pass::getOnlyLightType | ( |  | ) | const

| Gets the single light type this pass runs for if getRunOncePerLight and getRunOnlyForOneLightType are both true. Definition at line 652 of file OgrePass.h. Referenced by Ogre::SceneManager::renderSingleObject(), and Ogre::MaterialSerializer::writePass().

Technique* Ogre::Pass::getParent | ( | void |  | ) |

| Gets the parent Technique. Definition at line 655 of file OgrePass.h. Referenced by Ogre::SceneManager::renderTransparentShadowCasterObjects().

const PassSet& Ogre::Pass::getPassGraveyard | ( | void |  | ) | `[static]`

| Static method to retrieve all the Passes which are pending deletion. Definition at line 874 of file OgrePass.h.

bool Ogre::Pass::getRunOncePerLight | ( | void |  | ) | const

| Does this pass run once for every light in range? Definition at line 647 of file OgrePass.h. Referenced by Ogre::Technique::_compileIlluminationPasses(), Ogre::SceneManager::renderSingleObject(), and Ogre::MaterialSerializer::writePass().

bool Ogre::Pass::getRunOnlyForOneLightType | ( | void |  | ) | const

| Does this pass run only for a single light type (if getRunOncePerLight is true). Definition at line 649 of file OgrePass.h. Referenced by Ogre::SceneManager::renderSingleObject(), and Ogre::MaterialSerializer::writePass().

const ColourValue & Ogre::Pass::getSelfIllumination | ( | void |  | ) | const

| Gets the self illumination colour of the pass. Definition at line 255 of file OgrePass.cpp. References mEmissive. Referenced by Ogre::Technique::_compileIlluminationPasses(), Ogre::SceneManager::setPass(), and Ogre::MaterialSerializer::writePass().

ShadeOptions Ogre::Pass::getShadingMode | ( | void |  | ) | const

| Returns the type of light shading to be used. Definition at line 467 of file OgrePass.cpp. References mShadeOptions, and Ogre::ShadeOptions. Referenced by Ogre::SceneManager::setPass(), and Ogre::MaterialSerializer::writePass().

GpuProgram * Ogre::Pass::getShadowCasterVertexProgram | ( | void |  | ) |

| Gets the vertex program used by this pass when rendering shadow casters, only available after _load(). Definition at line 942 of file OgrePass.cpp. References Ogre::GpuProgramUsage::getProgram(), and mShadowCasterVertexProgramUsage.

const String & Ogre::Pass::getShadowCasterVertexProgramName | ( | void |  | ) | const

| Gets the name of the vertex program used by this pass when rendering shadow casters. Definition at line 923 of file OgrePass.cpp. References Ogre::GpuProgramUsage::getProgramName(), mShadowCasterVertexProgramUsage, and Ogre::String. Referenced by Ogre::SceneManager::deriveShadowCasterPass().

GpuProgramParametersSharedPtr Ogre::Pass::getShadowCasterVertexProgramParameters | ( | void |  | ) |

| Gets the vertex program parameters used by this pass when rendering shadow casters. Definition at line 931 of file OgrePass.cpp. References Except, Ogre::GpuProgramUsage::getParameters(), Ogre::GpuProgramParametersSharedPtr, and mShadowCasterVertexProgramUsage. Referenced by Ogre::SceneManager::deriveShadowCasterPass(), and Ogre::parseShadowCasterVertexProgramRef().

GpuProgram * Ogre::Pass::getShadowReceiverVertexProgram | ( | void |  | ) |

| Gets the vertex program used by this pass when rendering shadow receivers, only available after _load(). Definition at line 997 of file OgrePass.cpp. References Ogre::GpuProgramUsage::getProgram(), and mShadowReceiverVertexProgramUsage.

const String & Ogre::Pass::getShadowReceiverVertexProgramName | ( | void |  | ) | const

| Gets the name of the vertex program used by this pass when rendering shadow receivers. Definition at line 978 of file OgrePass.cpp. References Ogre::GpuProgramUsage::getProgramName(), mShadowReceiverVertexProgramUsage, and Ogre::String. Referenced by Ogre::SceneManager::deriveShadowReceiverPass().

GpuProgramParametersSharedPtr Ogre::Pass::getShadowReceiverVertexProgramParameters | ( | void |  | ) |

| Gets the vertex program parameters used by this pass when rendering shadow receivers. Definition at line 986 of file OgrePass.cpp. References Except, Ogre::GpuProgramUsage::getParameters(), Ogre::GpuProgramParametersSharedPtr, and mShadowReceiverVertexProgramUsage. Referenced by Ogre::SceneManager::deriveShadowReceiverPass(), and Ogre::parseShadowReceiverVertexProgramRef().

Real Ogre::Pass::getShininess | ( | void |  | ) | const

| Gets the 'shininess' property of the pass (affects specular highlights). Definition at line 260 of file OgrePass.cpp. References mShininess, and Ogre::Real. Referenced by Ogre::SceneManager::setPass(), and Ogre::MaterialSerializer::writePass().

SceneBlendFactor Ogre::Pass::getSourceBlendFactor | ( |  | ) | const

| Retrieves the source blending factor for the material (as set using Materiall::setSceneBlending). Definition at line 365 of file OgrePass.cpp. References mSourceBlendFactor, and Ogre::SceneBlendFactor. Referenced by Ogre::SceneManager::setPass(), and Ogre::MaterialSerializer::writePass().

const ColourValue & Ogre::Pass::getSpecular | ( | void |  | ) | const

| Gets the specular colour reflectance of the pass. Definition at line 250 of file OgrePass.cpp. References mSpecular. Referenced by Ogre::Technique::_compileIlluminationPasses(), Ogre::SceneManager::setPass(), and Ogre::MaterialSerializer::writePass().

TextureUnitState * Ogre::Pass::getTextureUnitState | ( | unsigned short | index | ) |

| Retrieves a pointer to a texture unit state so it may be modified. Definition at line 296 of file OgrePass.cpp. References mTextureUnitStates. Referenced by Ogre::Font::load(), Ogre::SceneManager::renderModulativeTextureShadowedQueueGroupObjects(), Ogre::SceneManager::setShadowColour(), and Ogre::SceneManager::setSkyBox().

Pass::TextureUnitStateIterator Ogre::Pass::getTextureUnitStateIterator | ( | void |  | ) |

| Get an iterator over the TextureUnitStates contained in this Pass. Definition at line 303 of file OgrePass.cpp. References mTextureUnitStates, and TextureUnitStateIterator. Referenced by Ogre::Technique::_compile(), Ogre::SceneManager::renderSingleObject(), and Ogre::SceneManager::setPass().

GpuProgram * Ogre::Pass::getVertexProgram | ( | void |  | ) |

Gets the vertex program used by this pass, only available after _load().

Definition at line 713 of file OgrePass.cpp.

References Ogre::GpuProgramUsage::getProgram(), and mVertexProgramUsage.

Referenced by Ogre::Technique::_compile(), Ogre::SceneManager::deriveShadowCasterPass(), Ogre::SceneManager::deriveShadowReceiverPass(), Ogre::Entity::reevaluateVertexProcessing(), Ogre::SceneManager::renderShadowVolumesToStencil(), and Ogre::SceneManager::setPass().

const String & Ogre::Pass::getVertexProgramName | ( | void |  | ) | const

| Gets the name of the vertex program used by this pass. Definition at line 694 of file OgrePass.cpp. References Ogre::GpuProgramUsage::getProgramName(), mVertexProgramUsage, and Ogre::String.

GpuProgramParametersSharedPtr Ogre::Pass::getVertexProgramParameters | ( | void |  | ) |

Gets the vertex program parameters used by this pass.

Definition at line 702 of file OgrePass.cpp.

References Except, Ogre::GpuProgramUsage::getParameters(), Ogre::GpuProgramParametersSharedPtr, and mVertexProgramUsage.

Referenced by Ogre::SceneManager::initShadowVolumeMaterials(), Ogre::parseVertexProgramRef(), Ogre::SceneManager::renderSingleObject(), and Ogre::TerrainSceneManager::setupTerrainMaterial().

bool Ogre::Pass::hasFragmentProgram | ( | void |  | ) | const

| Returns true if this pass uses a programmable fragment pipeline. Definition at line 154 of file OgrePass.h. Referenced by Ogre::Technique::_compile(), Ogre::Technique::_compileIlluminationPasses(), _updateAutoParamsLightsOnly(), _updateAutoParamsNoLights(), Ogre::SceneManager::renderSingleObject(), and Ogre::SceneManager::setPass().

bool Ogre::Pass::hasVertexProgram | ( | void |  | ) | const

Returns true if this pass uses a programmable vertex pipeline.

Definition at line 151 of file OgrePass.h.

Referenced by Ogre::Technique::_compile(), _updateAutoParamsLightsOnly(), _updateAutoParamsNoLights(), Ogre::SceneManager::deriveShadowCasterPass(), Ogre::SceneManager::deriveShadowReceiverPass(), Ogre::Entity::reevaluateVertexProcessing(), Ogre::SceneManager::renderSingleObject(), Ogre::SceneManager::setPass(), and Ogre::TerrainSceneManager::setupTerrainMaterial().

bool Ogre::Pass::isAmbientOnly | ( | void |  | ) | const

| Returns whether this pass is ambient only. Definition at line 879 of file OgrePass.cpp. References mColourWrite, mDiffuse, mLightingEnabled, and mSpecular. Referenced by Ogre::Technique::_compileIlluminationPasses().

bool Ogre::Pass::isLoaded | ( | void |  | ) | const

| Definition at line 733 of file OgrePass.cpp. References Ogre::Technique::isLoaded(), and mParent. Referenced by Ogre::TextureUnitState::isLoaded().

bool Ogre::Pass::isProgrammable | ( | void |  | ) | const

| Returns true if this pass is programmable ie includes either a vertex or fragment program. Definition at line 148 of file OgrePass.h. Referenced by Ogre::SceneManager::renderSingleObject().

bool Ogre::Pass::isTransparent | ( | void |  | ) | const

| Returns true if this pass has some element of transparency. Definition at line 375 of file OgrePass.cpp. References mDestBlendFactor, and Ogre::SBF_ZERO.

Pass & Ogre::Pass::operator= | ( | const Pass & | oth | ) |

Operator = overload.

Definition at line 101 of file OgrePass.cpp.

References _dirtyHash(), mAmbient, mColourWrite, mCullMode, mDepthBias, mDepthCheck, mDepthFunc, mDepthWrite, mDestBlendFactor, mDiffuse, mEmissive, mFogColour, mFogDensity, mFogEnd, mFogMode, mFogOverride, mFogStart, mFragmentProgramUsage, mLightingEnabled, mManualCullMode, mMaxSimultaneousLights, mOnlyLightType, mRunOncePerLight, mRunOnlyForOneLightType, mShadeOptions, mShadowCasterVertexProgramUsage, mShadowReceiverVertexProgramUsage, mShininess, mSourceBlendFactor, mSpecular, mTextureUnitStates, mVertexProgramUsage, and removeAllTextureUnitStates().

void Ogre::Pass::processPendingPassUpdates | ( | void |  | ) | `[static]`

| Process all dirty and pending deletion passes. Definition at line 826 of file OgrePass.cpp. References _recalculateHash(), msDirtyHashList, and msPassGraveyard.

void Ogre::Pass::queueForDeletion | ( | void |  | ) |

| Queue this pass for deletion when appropriate. Definition at line 848 of file OgrePass.cpp. References mFragmentProgramUsage, mQueuedForDeletion, msDirtyHashList, mShadowCasterVertexProgramUsage, mShadowReceiverVertexProgramUsage, msPassGraveyard, mVertexProgramUsage, and removeAllTextureUnitStates().

void Ogre::Pass::removeAllTextureUnitStates | ( | void |  | ) |

| Removes all texture unit settings. Definition at line 323 of file OgrePass.cpp. References _dirtyHash(), Ogre::Technique::_notifyNeedsRecompile(), mParent, mQueuedForDeletion, and mTextureUnitStates. Referenced by Ogre::Technique::_compileIlluminationPasses(), Ogre::SceneManager::createShadowTextures(), operator=(), queueForDeletion(), and Ogre::TerrainSceneManager::setupTerrainMaterial().

void Ogre::Pass::removeTextureUnitState | ( | unsigned short | index | ) |

Removes the indexed texture unit state from this pass.

Remarks:
  Note that removing a texture which is not the topmost will have a larger performance impact.

Definition at line 308 of file OgrePass.cpp.

References _dirtyHash(), Ogre::Technique::_notifyNeedsRecompile(), mParent, mQueuedForDeletion, and mTextureUnitStates.

Referenced by Ogre::SceneManager::renderModulativeTextureShadowedQueueGroupObjects().

void Ogre::Pass::setAmbient | ( | const ColourValue & | ambient | ) |

Sets the ambient colour reflectance properties of this pass.

Remarks:
  The base colour of a pass is determined by how much red, green and blue light is reflects (provided texture layer #0 has a blend mode other than LBO_REPLACE). This property determines how much ambient light (directionless global light) is reflected. The default is full white, meaning objects are completely globally illuminated. Reduce this if you want to see diffuse or specular light effects, or change the blend of colours to make the object have a base colour other than white.

Note:
  This setting has no effect if dynamic lighting is disabled (see Pass::setLightingEnabled), or if this is a programmable pass.

Definition at line 191 of file OgrePass.cpp.

References mAmbient.

void Ogre::Pass::setAmbient | ( | Real | red,
|  | Real | green,
|  | Real | blue
| ) |

Sets the ambient colour reflectance properties of this pass.

Remarks:
  The base colour of a pass is determined by how much red, green and blue light is reflects (provided texture layer #0 has a blend mode other than LBO_REPLACE). This property determines how much ambient light (directionless global light) is reflected. The default is full white, meaning objects are completely globally illuminated. Reduce this if you want to see diffuse or specular light effects, or change the blend of colours to make the object have a base colour other than white.

Note:
  This setting has no effect if dynamic lighting is disabled (see Pass::setLightingEnabled), or if this is a programmable pass.

Definition at line 183 of file OgrePass.cpp.

References Ogre::ColourValue::b, Ogre::ColourValue::g, Ogre::green, mAmbient, Ogre::ColourValue::r, and Ogre::Real.

Referenced by Ogre::Technique::_compileIlluminationPasses(), Ogre::SceneManager::initShadowVolumeMaterials(), and Ogre::parseAmbient().

void Ogre::Pass::setColourWriteEnabled | ( | bool | enabled | ) |

Sets whether or not colour buffer writing is enabled for this Pass.

Remarks:
  For some effects, you might wish to turn off the colour write operation when rendering geometry; this means that only the depth buffer will be updated (provided you have depth buffer writing enabled, which you probably will do, although you may wish to only update the stencil buffer for example - stencil buffer state is managed at the RenderSystem level only, not the Material since you are likely to want to manage it at a higher level).

Definition at line 414 of file OgrePass.cpp.

References mColourWrite.

Referenced by Ogre::Technique::_compileIlluminationPasses(), and Ogre::parseColourWrite().

void Ogre::Pass::setCullingMode | ( | CullingMode | mode | ) |

Sets the culling mode for this pass based on the 'vertex winding'.

Remarks:
  A typical way for the rendering engine to cull triangles is based on the 'vertex winding' of triangles. Vertex winding refers to the direction in which the vertices are passed or indexed to in the rendering operation as viewed from the camera, and will wither be clockwise or anticlockwise (that's 'counterclockwise' for you Americans out there ;) The default is CULL_CLOCKWISE i.e. that only triangles whose vertices are passed/indexed in anticlockwise order are rendered - this is a common approach and is used in 3D studio models for example. You can alter this culling mode if you wish but it is not advised unless you know what you are doing.

  You may wish to use the CULL_NONE option for mesh data that you cull yourself where the vertex winding is uncertain.

Definition at line 424 of file OgrePass.cpp.

References Ogre::CullingMode, and mCullMode.

Referenced by Ogre::SceneManager::initShadowVolumeMaterials(), and Ogre::parseCullHardware().

void Ogre::Pass::setDepthBias | ( | ushort | bias | ) |

Sets the depth bias to be used for this material.

Remarks:
  When polygons are coplanar, you can get problems with 'depth fighting' where the pixels from the two polys compete for the same screen pixel. This is particularly a problem for decals (polys attached to another surface to represent details such as bulletholes etc.).

  A way to combat this problem is to use a depth bias to adjust the depth buffer value used for the decal such that it is slightly higher than the true value, ensuring that the decal appears on top.

Parameters:

  bias | The bias value, should be between 0 and 16.

Definition at line 525 of file OgrePass.cpp.

References mDepthBias, and Ogre::ushort.

Referenced by Ogre::parseDepthBias().

void Ogre::Pass::setDepthCheckEnabled | ( | bool | enabled | ) |

Sets whether or not this pass renders with depth-buffer checking on or not.

Remarks:
  If depth-buffer checking is on, whenever a pixel is about to be written to the frame buffer the depth buffer is checked to see if the pixel is in front of all other pixels written at that point. If not, the pixel is not written.

  If depth checking is off, pixels are written no matter what has been rendered before. Also see setDepthFunction for more advanced depth check configuration.

See also:
  setDepthFunction

Definition at line 384 of file OgrePass.cpp.

References mDepthCheck.

Referenced by Ogre::SceneManager::initShadowVolumeMaterials(), and Ogre::parseDepthCheck().

void Ogre::Pass::setDepthFunction | ( | CompareFunction | func | ) |

Sets the function used to compare depth values when depth checking is on.

Remarks:
  If depth checking is enabled (see setDepthCheckEnabled) a comparison occurs between the depth value of the pixel to be written and the current contents of the buffer. This comparison is normally CMPF_LESS_EQUAL, i.e. the pixel is written if it is closer (or at the same distance) than the current contents. If you wish you can change this comparison using this method.

Definition at line 404 of file OgrePass.cpp.

References Ogre::CompareFunction, and mDepthFunc.

Referenced by Ogre::parseDepthFunc().

void Ogre::Pass::setDepthWriteEnabled | ( | bool | enabled | ) |

Sets whether or not this pass renders with depth-buffer writing on or not.

Remarks:
  If depth-buffer writing is on, whenever a pixel is written to the frame buffer the depth buffer is updated with the depth value of that new pixel, thus affecting future rendering operations if future pixels are behind this one.

  If depth writing is off, pixels are written without updating the depth buffer Depth writing should normally be on but can be turned off when rendering static backgrounds or when rendering a collection of transparent objects at the end of a scene so that they overlap each other correctly.

Definition at line 394 of file OgrePass.cpp.

References mDepthWrite.

Referenced by Ogre::SceneManager::initShadowVolumeMaterials(), and Ogre::parseDepthWrite().

void Ogre::Pass::setDiffuse | ( | const ColourValue & | diffuse | ) |

Sets the diffuse colour reflectance properties of this pass.

Remarks:
  The base colour of a pass is determined by how much red, green and blue light is reflects (provided texture layer #0 has a blend mode other than LBO_REPLACE). This property determines how much diffuse light (light from instances of the Light class in the scene) is reflected. The default is full white, meaning objects reflect the maximum white light they can from Light objects.

Note:
  This setting has no effect if dynamic lighting is disabled (see Pass::setLightingEnabled), or if this is a programmable pass.

Definition at line 204 of file OgrePass.cpp.

References mDiffuse.

void Ogre::Pass::setDiffuse | ( | Real | red,
|  | Real | green,
|  | Real | blue,
|  | Real | alpha
| ) |

Sets the diffuse colour reflectance properties of this pass.

Remarks:
  The base colour of a pass is determined by how much red, green and blue light is reflects (provided texture layer #0 has a blend mode other than LBO_REPLACE). This property determines how much diffuse light (light from instances of the Light class in the scene) is reflected. The default is full white, meaning objects reflect the maximum white light they can from Light objects.

Note:
  This setting has no effect if dynamic lighting is disabled (see Pass::setLightingEnabled), or if this is a programmable pass.

Definition at line 196 of file OgrePass.cpp.

References Ogre::ColourValue::a, Ogre::ColourValue::b, Ogre::ColourValue::g, Ogre::green, mDiffuse, Ogre::ColourValue::r, and Ogre::Real.

Referenced by Ogre::Technique::_compileIlluminationPasses(), Ogre::SceneManager::initShadowVolumeMaterials(), and Ogre::parseDiffuse().

void Ogre::Pass::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 this pass.

Remarks:
  Fogging is an effect that is applied as polys are rendered. Sometimes, you want fog to be applied to an entire scene. Other times, you want it to be applied to a few polygons only. This pass-level specification of fog parameters lets you easily manage both.

  The SceneManager class also has a setFog method which applies scene-level fog. This method lets you change the fog behaviour for this pass compared to the standard scene-level fog.

Parameters:

  overrideScene | If true, you authorise this pass to override the scene's fog params with it's own settings. If you specify false, so other parameters are necessary, and this is the default behaviour for passs.
  mode | Only applicable if overrideScene is true. You can disable fog which is turned on for the rest of the scene by specifying FOG_NONE. Otherwise, set a pass-specific fog mode as defined in the enum FogMode.
  colour | The colour of the fog. Either set this to the same as your viewport background colour, or to blend in with a skydome or skybox.
  expDensity | The density of the fog in FOG_EXP or FOG_EXP2 mode, as a value between 0 and 1. The default is 0.001.
  linearStart | Distance in world units at which linear fog starts to encroach. Only applicable if mode is FOG_LINEAR.
  linearEnd | Distance in world units at which linear fog becomes completely opaque. Only applicable if mode is FOG_LINEAR.

Definition at line 482 of file OgrePass.cpp.

References Ogre::FogMode, mFogColour, mFogDensity, mFogEnd, mFogMode, mFogOverride, mFogStart, and Ogre::Real.

Referenced by Ogre::parseFogging(), Ogre::SceneManager::prepareShadowTextures(), and Ogre::TerrainSceneManager::setupTerrainMaterial().

void Ogre::Pass::setFragmentProgram | ( | const String & | name,
|  | bool | resetParams = true
| ) |

Sets the details of the fragment program to use.

Remarks:
  Only applicable to programmable passes, this sets the details of the fragment program to use in this pass. The program will not be loaded until the parent Material is loaded.

Parameters:

  name | The name of the program - this must have been created using GpuProgramManager by the time that this Pass is loaded. If this parameter is blank, any fragment program in this pass is disabled.
  resetParams | If true, this will create a fresh set of parameters from the new program being linked, so if you had previously set parameters you will have to set them again. If you set this to false, you must be absolutely sure that the parameters match perfectly, and in the case of named parameters refers to the indexes underlying them, not just the names.

Definition at line 663 of file OgrePass.cpp.

References Ogre::Technique::_notifyNeedsRecompile(), Ogre::GPT_FRAGMENT_PROGRAM, mFragmentProgramUsage, mParent, Ogre::GpuProgramUsage::setProgramName(), and Ogre::String.

Referenced by Ogre::Technique::_compileIlluminationPasses(), and Ogre::parseFragmentProgramRef().

void Ogre::Pass::setFragmentProgramParameters | ( | GpuProgramParametersSharedPtr | params | ) |

Sets the vertex program parameters.

Remarks:
  Only applicable to programmable passes.

Definition at line 683 of file OgrePass.cpp.

References Except, Ogre::GpuProgramParametersSharedPtr, mFragmentProgramUsage, params, and Ogre::GpuProgramUsage::setParameters().

void Ogre::Pass::setLightingEnabled | ( | bool | enabled | ) |

Sets whether or not dynamic lighting is enabled.

Parameters:

  enabled | If true, dynamic lighting is performed on geometry with normals supplied, geometry without normals will not be displayed. If false, no lighting is applied and all geometry will be full brightness.

Definition at line 434 of file OgrePass.cpp.

References mLightingEnabled.

Referenced by Ogre::Technique::_compileIlluminationPasses(), Ogre::SceneManager::initShadowVolumeMaterials(), and Ogre::parseLighting().

void Ogre::Pass::setManualCullingMode | ( | ManualCullingMode | mode | ) |

Sets the manual culling mode, performed by CPU rather than hardware.

@pemarks In some situations you want to use manual culling of triangles rather than sending the triangles to the hardware and letting it cull them. This setting only takes effect on SceneManager's that use it (since it is best used on large groups of planar world geometry rather than on movable geometry since this would be expensive), but if used can cull geometry before it is sent to the hardware.

Note:
  The default for this setting is MANUAL_CULL_BACK.

Parameters:

  mode | The mode to use - see enum ManualCullingMode for details

Definition at line 472 of file OgrePass.cpp.

References Ogre::ManualCullingMode, and mManualCullMode.

Referenced by Ogre::parseCullSoftware().

void Ogre::Pass::setMaxSimultaneousLights | ( | unsigned short | maxLights | ) |

Sets the maximum number of lights to be used by this pass.

Remarks:
  During rendering, if lighting is enabled (or if the pass uses an automatic program parameter based on a light) the engine will request the nearest lights to the object being rendered in order to work out which ones to use. This parameter sets the limit on the number of lights which should apply to objects rendered with this pass.

Definition at line 444 of file OgrePass.cpp.

References mMaxSimultaneousLights.

Referenced by Ogre::parseMaxLights().

void Ogre::Pass::setRunOncePerLight | ( | bool | enabled,
|  | bool | onlyForOneLightType = true,
|  | Light::LightTypes | lightType = Light::LT_POINT
| ) |

Sets whether or not this pass should be run once per light which can affect the object being rendered.

Remarks:
  The default behaviour for a pass (when this option is 'false'), is for a pass to be rendered only once, with all the lights which could affect this object set at the same time (up to the maximum lights allowed in the render system, which is typically 8).

  Setting this option to 'true' changes this behaviour, such that instead of trying to issue render this pass once per object, it is run once per light which can affect this object. In this case, only light index 0 is ever used, and is a different light every time the pass is issued, up to the total number of lights which is affecting this object. This has 2 advantages:

  - There is no limit on the number of lights which can be supported
  - It's easier to write vertex / fragment programs for this because a single program can be used for any number of lights
  However, this technique is a lot more expensive, and typically you will want an additional ambient pass, because if no lights are affecting the object it will not be rendered at all, which will look odd even if ambient light is zero (imagine if there are lit objects behind it - the objects silhouette would not show up). Therefore, use this option with care, and you would be well advised to provide a less expensive fallback technique for use in the distance.

Note:
  The number of times this pass runs is still limited by the maximum number of lights allowed as set in setMaxSimultaneousLights, so you will never get more passes than this.

Parameters:

  enabled | Whether this feature is enabled
  onlyForOneLightType | If true, the pass will only be run for a single type of light, other light types will be ignored.
  lightType | The single light type which will be considered for this pass

Definition at line 454 of file OgrePass.cpp.

References mOnlyLightType, mRunOncePerLight, and mRunOnlyForOneLightType.

Referenced by Ogre::parseIteration().

void Ogre::Pass::setSceneBlending | ( | const SceneBlendFactor | sourceFactor,
|  | const SceneBlendFactor | destFactor
| ) |

Allows very fine control of blending this Pass with the existing contents of the scene.

Remarks:
  Wheras the texture blending operations seen in the TextureUnitState class are concerned with blending between texture layers, this blending is about combining the output of the material as a whole with the existing contents of the rendering target. This blending therefore allows object transparency and other special effects.

  This version of the method allows complete control over the blending operation, by specifying the source and destination blending factors. The result of the blending operation is: <span align="center"> final = (texture * sourceFactor) + (pixel * destFactor) </span>

  Each of the factors is specified as one of a number of options, as specified in the SceneBlendFactor enumerated type.

Parameters:

  sourceFactor | The source factor in the above calculation, i.e. multiplied by the texture colour components.
  destFactor | The destination factor in the above calculation, i.e. multiplied by the pixel colour components.

Note:
  This method is applicable for both the fixed-function and programmable pipelines.

Definition at line 359 of file OgrePass.cpp.

References mDestBlendFactor, mSourceBlendFactor, and Ogre::SceneBlendFactor.

void Ogre::Pass::setSceneBlending | ( | const SceneBlendType | sbt | ) |

Sets the kind of blending this pass has with the existing contents of the scene.

Remarks:
  Wheras the texture blending operations seen in the TextureUnitState class are concerned with blending between texture layers, this blending is about combining the output of the Pass as a whole with the existing contents of the rendering target. This blending therefore allows object transparency and other special effects. If all passes in a technique have a scene blend, then the whole technique is considered to be transparent.

  This method allows you to select one of a number of predefined blending types. If you require more control than this, use the alternative version of this method which allows you to specify source and destination blend factors.

Note:
  This method is applicable for both the fixed-function and programmable pipelines.

Parameters:

  sbt | One of the predefined SceneBlendType blending types

Definition at line 340 of file OgrePass.cpp.

References Ogre::SBF_ONE, Ogre::SBF_ONE_MINUS_SOURCE_ALPHA, Ogre::SBF_ONE_MINUS_SOURCE_COLOUR, Ogre::SBF_SOURCE_ALPHA, Ogre::SBF_SOURCE_COLOUR, Ogre::SBT_ADD, Ogre::SBT_TRANSPARENT_ALPHA, Ogre::SBT_TRANSPARENT_COLOUR, and Ogre::SceneBlendType.

Referenced by Ogre::Technique::_compileIlluminationPasses(), _split(), Ogre::SceneManager::initShadowVolumeMaterials(), and Ogre::parseSceneBlend().

void Ogre::Pass::setSelfIllumination | ( | const ColourValue & | selfIllum | ) |

Sets the amount of self-illumination an object has.

Remarks:
  If an object is self-illuminating, it does not need external sources to light it, ambient or otherwise. It's like the object has it's own personal ambient light. This property is rarely useful since you can already specify per-pass ambient light, but is here for completeness.

Note:
  This setting has no effect if dynamic lighting is disabled (see Pass::setLightingEnabled), or if this is a programmable pass.

Definition at line 235 of file OgrePass.cpp.

References mEmissive.

void Ogre::Pass::setSelfIllumination | ( | Real | red,
|  | Real | green,
|  | Real | blue
| ) |

Sets the amount of self-illumination an object has.

Remarks:
  If an object is self-illuminating, it does not need external sources to light it, ambient or otherwise. It's like the object has it's own personal ambient light. This property is rarely useful since you can already specify per-pass ambient light, but is here for completeness.

Note:
  This setting has no effect if dynamic lighting is disabled (see Pass::setLightingEnabled), or if this is a programmable pass.

Definition at line 227 of file OgrePass.cpp.

References Ogre::ColourValue::b, Ogre::ColourValue::g, Ogre::green, mEmissive, Ogre::ColourValue::r, and Ogre::Real.

Referenced by Ogre::Technique::_compileIlluminationPasses(), Ogre::SceneManager::initShadowVolumeMaterials(), and Ogre::parseEmissive().

void Ogre::Pass::setShadingMode | ( | ShadeOptions | mode | ) |

Sets the type of light shading required.

Note:
  The default shading method is Gouraud shading.

Definition at line 462 of file OgrePass.cpp.

References mShadeOptions, and Ogre::ShadeOptions.

Referenced by Ogre::parseShading().

void Ogre::Pass::setShadowCasterVertexProgram | ( | const String & | name | ) |

Sets the details of the vertex program to use when rendering as a shadow caster.

Remarks:
  Texture-based shadows require that the caster is rendered to a texture in a solid colour (the shadow colour in the case of modulative texture shadows). Whilst Ogre can arrange this for the fixed function pipeline, passes which use vertex programs might need the vertex programs still to run in order to preserve any deformation etc that it does. However, lighting calculations must be a lot simpler, with only the ambient colour being used (which the engine will ensure is bound to the shadow colour).

  Therefore, it is up to implemetors of vertex programs to provide an alternative vertex program which can be used to render the object to a shadow texture. Do all the same vertex transforms, but set the colour of the vertex to the ambient colour, as bound using the standard auto parameter binding mechanism.

Note:
  Some vertex programs will work without doing this, because Ogre ensures that all lights except for ambient are set black. However, the chances are that your vertex program is doing a lot of unnecessary work in this case, since the other lights are having no effect, and it is good practice to supply an alternative.
  This is only applicable to programmable passes.

  The default behaviour is for Ogre to switch to fixed-function rendering if an explict vertex program alternative is not set.

Definition at line 892 of file OgrePass.cpp.

References Ogre::Technique::_notifyNeedsRecompile(), Ogre::GPT_VERTEX_PROGRAM, mParent, mShadowCasterVertexProgramUsage, Ogre::GpuProgramUsage::setProgramName(), and Ogre::String.

Referenced by Ogre::parseShadowCasterVertexProgramRef().

void Ogre::Pass::setShadowCasterVertexProgramParameters | ( | GpuProgramParametersSharedPtr | params | ) |

Sets the vertex program parameters for rendering as a shadow caster.

Remarks:
  Only applicable to programmable passes, and this particular call is designed for low-level programs; use the named parameter methods for setting high-level program parameters.

Definition at line 912 of file OgrePass.cpp.

References Except, Ogre::GpuProgramParametersSharedPtr, mShadowCasterVertexProgramUsage, params, and Ogre::GpuProgramUsage::setParameters().

void Ogre::Pass::setShadowReceiverVertexProgram | ( | const String & | name | ) |

Sets the details of the vertex program to use when rendering as a shadow receiver.

Remarks:
  Texture-based shadows require that the shadow receiver is rendered using a projective texture. Whilst Ogre can arrange this for the fixed function pipeline, passes which use vertex programs might need the vertex programs still to run in order to preserve any deformation etc that it does. So in this case, we need a vertex program which does the appropriate vertex transformation, but generates projective texture coordinates.

  Therefore, it is up to implemetors of vertex programs to provide an alternative vertex program which can be used to render the object as a shadow receiver. Do all the same vertex transforms, but generate 2 sets of texture coordinates using the auto parameter ACT_TEXTURE_VIEWPROJ_MATRIX, which Ogre will bind to the parameter name / index you supply as the second parameter to this method. 2 texture sets are needed because Ogre needs to use 2 texture units for some shadow effects.

Note:
  This is only applicable to programmable passes.

  The default behaviour is for Ogre to switch to fixed-function rendering if an explict vertex program alternative is not set.

Definition at line 947 of file OgrePass.cpp.

References Ogre::Technique::_notifyNeedsRecompile(), Ogre::GPT_VERTEX_PROGRAM, mParent, mShadowReceiverVertexProgramUsage, Ogre::GpuProgramUsage::setProgramName(), and Ogre::String.

Referenced by Ogre::parseShadowReceiverVertexProgramRef().

void Ogre::Pass::setShadowReceiverVertexProgramParameters | ( | GpuProgramParametersSharedPtr | params | ) |

Sets the vertex program parameters for rendering as a shadow receiver.

Remarks:
  Only applicable to programmable passes, and this particular call is designed for low-level programs; use the named parameter methods for setting high-level program parameters.

Definition at line 967 of file OgrePass.cpp.

References Except, Ogre::GpuProgramParametersSharedPtr, mShadowReceiverVertexProgramUsage, params, and Ogre::GpuProgramUsage::setParameters().

void Ogre::Pass::setShininess | ( | Real | val | ) |

Sets the shininess of the pass, affecting the size of specular highlights.

Note:
  This setting has no effect if dynamic lighting is disabled (see Pass::setLightingEnabled), or if this is a programmable pass.

Definition at line 222 of file OgrePass.cpp.

References mShininess, and Ogre::Real.

Referenced by Ogre::parseSpecular().

void Ogre::Pass::setSpecular | ( | const ColourValue & | specular | ) |

Sets the specular colour reflectance properties of this pass.

Remarks:
  The base colour of a pass is determined by how much red, green and blue light is reflects (provided texture layer #0 has a blend mode other than LBO_REPLACE). This property determines how much specular light (highlights from instances of the Light class in the scene) is reflected. The default is to reflect no specular light.

Note:
  The size of the specular highlights is determined by the separate 'shininess' property.
  This setting has no effect if dynamic lighting is disabled (see Pass::setLightingEnabled), or if this is a programmable pass.

Definition at line 217 of file OgrePass.cpp.

References mSpecular.

void Ogre::Pass::setSpecular | ( | Real | red,
|  | Real | green,
|  | Real | blue,
|  | Real | alpha
| ) |

Sets the specular colour reflectance properties of this pass.

Remarks:
  The base colour of a pass is determined by how much red, green and blue light is reflects (provided texture layer #0 has a blend mode other than LBO_REPLACE). This property determines how much specular light (highlights from instances of the Light class in the scene) is reflected. The default is to reflect no specular light.

Note:
  The size of the specular highlights is determined by the separate 'shininess' property.
  This setting has no effect if dynamic lighting is disabled (see Pass::setLightingEnabled), or if this is a programmable pass.

Definition at line 209 of file OgrePass.cpp.

References Ogre::ColourValue::a, Ogre::ColourValue::b, Ogre::ColourValue::g, Ogre::green, mSpecular, Ogre::ColourValue::r, and Ogre::Real.

Referenced by Ogre::Technique::_compileIlluminationPasses(), Ogre::SceneManager::initShadowVolumeMaterials(), and Ogre::parseSpecular().

void Ogre::Pass::setTextureAnisotropy | ( | unsigned int | maxAniso | ) |

Sets the anisotropy level to be used for all textures.

Note:
  This property has been moved to the TextureUnitState class, which is accessible via the Technique and Pass. For simplicity, this method allows you to set these properties for every current TeextureUnitState, If you need more precision, retrieve the Technique, Pass and TextureUnitState instances and set the property there.

See also:
  TextureUnitState::setTextureAnisotropy

Definition at line 786 of file OgrePass.cpp.

References mTextureUnitStates.

void Ogre::Pass::setTextureFiltering | ( | TextureFilterOptions | filterType | ) |

Set texture filtering for every texture unit.

Note:
  This property actually exists on the TextureUnitState class For simplicity, this method allows you to set these properties for every current TeextureUnitState, If you need more precision, retrieve the TextureUnitState instance and set the property there.

See also:
  TextureUnitState::setTextureFiltering

Definition at line 776 of file OgrePass.cpp.

References mTextureUnitStates, and Ogre::TextureFilterOptions.

void Ogre::Pass::setVertexProgram | ( | const String & | name,
|  | bool | resetParams = true
| ) |

Sets the details of the vertex program to use.

Remarks:
  Only applicable to programmable passes, this sets the details of the vertex program to use in this pass. The program will not be loaded until the parent Material is loaded.

Parameters:

  name | The name of the program - this must have been created using GpuProgramManager by the time that this Pass is loaded. If this parameter is blank, any vertex program in this pass is disabled.
  resetParams | If true, this will create a fresh set of parameters from the new program being linked, so if you had previously set parameters you will have to set them again. If you set this to false, you must be absolutely sure that the parameters match perfectly, and in the case of named parameters refers to the indexes underlying them, not just the names.

Definition at line 632 of file OgrePass.cpp.

References Ogre::Technique::_notifyNeedsRecompile(), Ogre::GPT_VERTEX_PROGRAM, mParent, mVertexProgramUsage, Ogre::GpuProgramUsage::setProgramName(), and Ogre::String.

Referenced by Ogre::SceneManager::deriveShadowCasterPass(), Ogre::SceneManager::deriveShadowReceiverPass(), Ogre::SceneManager::initShadowVolumeMaterials(), Ogre::parseVertexProgramRef(), Ogre::SceneManager::renderShadowVolumesToStencil(), and Ogre::TerrainSceneManager::setupTerrainMaterial().

void Ogre::Pass::setVertexProgramParameters | ( | GpuProgramParametersSharedPtr | params | ) |

Sets the vertex program parameters.

Remarks:
  Only applicable to programmable passes, and this particular call is designed for low-level programs; use the named parameter methods for setting high-level program parameters.

Definition at line 652 of file OgrePass.cpp.

References Except, Ogre::GpuProgramParametersSharedPtr, mVertexProgramUsage, params, and Ogre::GpuProgramUsage::setParameters().

Referenced by Ogre::SceneManager::deriveShadowCasterPass(), Ogre::SceneManager::deriveShadowReceiverPass(), and Ogre::SceneManager::renderShadowVolumesToStencil().

## Member Data Documentation

ColourValue Ogre::Pass::mAmbient`[protected]`

| Definition at line 63 of file OgrePass.h. Referenced by getAmbient(), operator=(), Pass(), and setAmbient().

bool Ogre::Pass::mColourWrite`[protected]`

| Definition at line 84 of file OgrePass.h. Referenced by getColourWriteEnabled(), isAmbientOnly(), operator=(), Pass(), and setColourWriteEnabled().

CullingMode Ogre::Pass::mCullMode`[protected]`

| Definition at line 90 of file OgrePass.h. Referenced by getCullingMode(), operator=(), Pass(), and setCullingMode().

ushort Ogre::Pass::mDepthBias`[protected]`

| Definition at line 81 of file OgrePass.h. Referenced by getDepthBias(), operator=(), Pass(), and setDepthBias().

bool Ogre::Pass::mDepthCheck`[protected]`

| Definition at line 78 of file OgrePass.h. Referenced by getDepthCheckEnabled(), operator=(), Pass(), and setDepthCheckEnabled().

CompareFunction Ogre::Pass::mDepthFunc`[protected]`

| Definition at line 80 of file OgrePass.h. Referenced by getDepthFunction(), operator=(), Pass(), and setDepthFunction().

bool Ogre::Pass::mDepthWrite`[protected]`

| Definition at line 79 of file OgrePass.h. Referenced by getDepthWriteEnabled(), operator=(), Pass(), and setDepthWriteEnabled().

SceneBlendFactor Ogre::Pass::mDestBlendFactor`[protected]`

| Definition at line 73 of file OgrePass.h. Referenced by getDestBlendFactor(), isTransparent(), operator=(), Pass(), and setSceneBlending().

ColourValue Ogre::Pass::mDiffuse`[protected]`

| Definition at line 64 of file OgrePass.h. Referenced by getDiffuse(), isAmbientOnly(), operator=(), Pass(), and setDiffuse().

ColourValue Ogre::Pass::mEmissive`[protected]`

| Definition at line 66 of file OgrePass.h. Referenced by getSelfIllumination(), operator=(), Pass(), and setSelfIllumination().

ColourValue Ogre::Pass::mFogColour`[protected]`

| Definition at line 111 of file OgrePass.h. Referenced by getFogColour(), operator=(), Pass(), and setFog().

Real Ogre::Pass::mFogDensity`[protected]`

| Definition at line 114 of file OgrePass.h. Referenced by getFogDensity(), operator=(), Pass(), and setFog().

Real Ogre::Pass::mFogEnd`[protected]`

| Definition at line 113 of file OgrePass.h. Referenced by getFogEnd(), operator=(), Pass(), and setFog().

FogMode Ogre::Pass::mFogMode`[protected]`

| Definition at line 110 of file OgrePass.h. Referenced by getFogMode(), operator=(), Pass(), and setFog().

bool Ogre::Pass::mFogOverride`[protected]`

| Definition at line 109 of file OgrePass.h. Referenced by getFogOverride(), operator=(), Pass(), and setFog().

Real Ogre::Pass::mFogStart`[protected]`

| Definition at line 112 of file OgrePass.h. Referenced by getFogStart(), operator=(), Pass(), and setFog().

GpuProgramUsage* Ogre::Pass::mFragmentProgramUsage`[protected]`

| Definition at line 128 of file OgrePass.h. Referenced by _load(), _updateAutoParamsLightsOnly(), _updateAutoParamsNoLights(), getFragmentProgram(), getFragmentProgramName(), getFragmentProgramParameters(), operator=(), Pass(), queueForDeletion(), setFragmentProgram(), and setFragmentProgramParameters().

unsigned long Ogre::Pass::mHash`[protected]`

| Definition at line 60 of file OgrePass.h. Referenced by _recalculateHash(), getHash(), and Pass().

unsigned short Ogre::Pass::mIndex`[protected]`

| Definition at line 59 of file OgrePass.h. Referenced by _recalculateHash(), and Pass().

bool Ogre::Pass::mLightingEnabled`[protected]`

| Lighting enabled? Definition at line 95 of file OgrePass.h. Referenced by getLightingEnabled(), isAmbientOnly(), operator=(), Pass(), and setLightingEnabled().

ManualCullingMode Ogre::Pass::mManualCullMode`[protected]`

| Definition at line 91 of file OgrePass.h. Referenced by getManualCullingMode(), operator=(), Pass(), and setManualCullingMode().

unsigned short Ogre::Pass::mMaxSimultaneousLights`[protected]`

| Max simultaneous lights. Definition at line 97 of file OgrePass.h. Referenced by getMaxSimultaneousLights(), operator=(), Pass(), and setMaxSimultaneousLights().

Light::LightTypes Ogre::Pass::mOnlyLightType`[protected]`

| Definition at line 102 of file OgrePass.h. Referenced by operator=(), Pass(), and setRunOncePerLight().

Technique* Ogre::Pass::mParent`[protected]`

| Definition at line 58 of file OgrePass.h. Referenced by _notifyNeedsRecompile(), _split(), addTextureUnitState(), createTextureUnitState(), isLoaded(), Pass(), removeAllTextureUnitStates(), removeTextureUnitState(), setFragmentProgram(), setShadowCasterVertexProgram(), setShadowReceiverVertexProgram(), and setVertexProgram().

bool Ogre::Pass::mQueuedForDeletion`[protected]`

| Definition at line 130 of file OgrePass.h. Referenced by Pass(), queueForDeletion(), removeAllTextureUnitStates(), and removeTextureUnitState().

bool Ogre::Pass::mRunOncePerLight`[protected]`

| Run this pass once per light? Definition at line 99 of file OgrePass.h. Referenced by operator=(), Pass(), and setRunOncePerLight().

bool Ogre::Pass::mRunOnlyForOneLightType`[protected]`

| Definition at line 101 of file OgrePass.h. Referenced by operator=(), Pass(), and setRunOncePerLight().

Pass::PassSet Ogre::Pass::msDirtyHashList`[static, protected]`

| List of Passes whose hashes need recalculating. Definition at line 37 of file OgrePass.cpp. Referenced by _dirtyHash(), processPendingPassUpdates(), and queueForDeletion().

ShadeOptions Ogre::Pass::mShadeOptions`[protected]`

| Shading options. Definition at line 105 of file OgrePass.h. Referenced by getShadingMode(), operator=(), Pass(), and setShadingMode().

GpuProgramUsage* Ogre::Pass::mShadowCasterVertexProgramUsage`[protected]`

| Definition at line 124 of file OgrePass.h. Referenced by _load(), getShadowCasterVertexProgram(), getShadowCasterVertexProgramName(), getShadowCasterVertexProgramParameters(), operator=(), Pass(), queueForDeletion(), setShadowCasterVertexProgram(), and setShadowCasterVertexProgramParameters().

GpuProgramUsage* Ogre::Pass::mShadowReceiverVertexProgramUsage`[protected]`

| Definition at line 126 of file OgrePass.h. Referenced by _load(), getShadowReceiverVertexProgram(), getShadowReceiverVertexProgramName(), getShadowReceiverVertexProgramParameters(), operator=(), Pass(), queueForDeletion(), setShadowReceiverVertexProgram(), and setShadowReceiverVertexProgramParameters().

Real Ogre::Pass::mShininess`[protected]`

| Definition at line 67 of file OgrePass.h. Referenced by getShininess(), operator=(), Pass(), and setShininess().

SceneBlendFactor Ogre::Pass::mSourceBlendFactor`[protected]`

| Definition at line 72 of file OgrePass.h. Referenced by getSourceBlendFactor(), operator=(), Pass(), and setSceneBlending().

Pass::PassSet Ogre::Pass::msPassGraveyard`[static, protected]`

| The place where passes go to die. Definition at line 38 of file OgrePass.cpp. Referenced by processPendingPassUpdates(), and queueForDeletion().

ColourValue Ogre::Pass::mSpecular`[protected]`

| Definition at line 65 of file OgrePass.h. Referenced by getSpecular(), isAmbientOnly(), operator=(), Pass(), and setSpecular().

TextureUnitStates Ogre::Pass::mTextureUnitStates`[protected]`

| Definition at line 119 of file OgrePass.h. Referenced by _load(), _recalculateHash(), _split(), _unload(), addTextureUnitState(), createTextureUnitState(), getTextureUnitState(), getTextureUnitStateIterator(), operator=(), removeAllTextureUnitStates(), removeTextureUnitState(), setTextureAnisotropy(), and setTextureFiltering().

GpuProgramUsage* Ogre::Pass::mVertexProgramUsage`[protected]`

| Definition at line 122 of file OgrePass.h. Referenced by _load(), _updateAutoParamsLightsOnly(), _updateAutoParamsNoLights(), getVertexProgram(), getVertexProgramName(), getVertexProgramParameters(), operator=(), Pass(), queueForDeletion(), setVertexProgram(), and setVertexProgramParameters().

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

- OgrePass.h
- OgrePass.cpp

Copyright © 2002-2003 by The OGRE Team
Last modified Sun Nov 28 19:51:24 2004