Ogre::Pass Class Reference
Core » Materials

Class defining a single pass of a Technique (of a Material), i.e. More...

`#include <OgrePass.h>`

Inheritance diagram for Ogre::Pass:
[legend]

## Classes

struct | HashFunc
| Definition of a functor for calculating the hashcode of a Pass. More...

## Public Types

enum | BuiltinHashFunction { MIN_TEXTURE_CHANGE, MIN_GPU_PROGRAM_CHANGE }
| There are some default hash functions used to order passes so that render state changes are minimised, this enumerates them. More...
typedef ConstVectorIterator< TextureUnitStates > | ConstTextureUnitStateIterator
typedef set< Pass * >::type | PassSet
typedef VectorIterator< TextureUnitStates > | TextureUnitStateIterator

## Public Member Functions

| Pass (Technique *parent, unsigned short index)
| Default constructor. More...
| Pass (Technique *parent, unsigned short index, const Pass &oth)
| Copy constructor. More...
virtual | ~Pass ()
void | _dirtyHash (void)
| Mark the hash as dirty. More...
unsigned short | _getTextureUnitWithContentTypeIndex (TextureUnitState::ContentType contentType, unsigned short index) const
| Gets the 'nth' texture which references the given content type. More...
void | _load (void)
| Internal method for loading this pass. More...
void | _notifyIndex (unsigned short index)
| Internal method to adjust pass index. More...
void | _notifyNeedsRecompile (void)
| Tells the pass that it needs recompilation. More...
void | _prepare (void)
| Internal method for preparing to load this pass. More...
void | _recalculateHash (void)
| Internal method for recalculating the hash. More...
Pass * | _split (unsigned short numUnits)
| Splits this Pass to one which can be handled in the number of texture units specified. More...
void | _unload (void)
| Internal method for unloading this pass. More...
void | _unprepare (void)
| Internal method for undoing the load preparartion for this pass. More...
void | _updateAutoParams (const AutoParamDataSource *source, uint16 variabilityMask) const
| Update automatic parameters. More...
void | addTextureUnitState (TextureUnitState *state)
| Adds the passed in TextureUnitState, to the existing Pass. More...
bool | applyTextureAliases (const AliasTextureNamePairList &aliasList, const bool apply=true) const
| Applies texture names to Texture Unit State with matching texture name aliases. More...
size_t | calculateSize (void) const
TextureUnitState * | createTextureUnitState (void)
| Inserts a new TextureUnitState object into the Pass. More...
TextureUnitState * | createTextureUnitState (const String &textureName, unsigned short texCoordSet=0)
| Inserts a new TextureUnitState object into the Pass. More...
CompareFunction | getAlphaRejectFunction (void) const
| Gets the alpha reject function. More...
unsigned char | getAlphaRejectValue (void) const
| Gets the alpha reject value. More...
const ColourValue & | getAmbient (void) const
| Gets the ambient colour reflectance of the pass. More...
bool | getColourWriteEnabled (void) const
| Determines if colour buffer writing is enabled for this pass. More...
const GpuProgramPtr & | getComputeProgram (void) const
| Gets the Tesselation EHull program used by this pass, only available after _load(). More...
const String & | getComputeProgramName (void) const
| Gets the name of the Tesselation Hull program used by this pass. More...
GpuProgramParametersSharedPtr | getComputeProgramParameters (void) const
| Gets the Tesselation Hull program parameters used by this pass. More...
CullingMode | getCullingMode (void) const
| Returns the culling mode for geometry rendered with this pass. More...
float | getDepthBiasConstant (void) const
| Retrieves the const depth bias value as set by setDepthBias. More...
float | getDepthBiasSlopeScale (void) const
| Retrieves the slope-scale depth bias value as set by setDepthBias. More...
bool | getDepthCheckEnabled (void) const
| Returns whether or not this pass renders with depth-buffer checking on or not. More...
CompareFunction | getDepthFunction (void) const
| Returns the function used to compare depth values when depth checking is on. More...
bool | getDepthWriteEnabled (void) const
| Returns whether or not this pass renders with depth-buffer writing on or not. More...
SceneBlendFactor | getDestBlendFactor () const
| Retrieves the destination blending factor for the material (as set using Materiall::setSceneBlending). More...
SceneBlendFactor | getDestBlendFactorAlpha () const
| Retrieves the alpha destination blending factor for the material (as set using Materiall::setSeparateSceneBlending). More...
const ColourValue & | getDiffuse (void) const
| Gets the diffuse colour reflectance of the pass. More...
const ColourValue & | getEmissive (void) const
| Gets the self illumination colour of the pass. More...
const ColourValue & | getFogColour (void) const
| Returns the fog colour for the scene. More...
Real | getFogDensity (void) const
| Returns the fog density for this pass. More...
Real | getFogEnd (void) const
| Returns the fog end distance for this pass. More...
FogMode | getFogMode (void) const
| Returns the fog mode for this pass. More...
bool | getFogOverride (void) const
| Returns true if this pass is to override the scene fog settings. More...
Real | getFogStart (void) const
| Returns the fog start distance for this pass. More...
const GpuProgramPtr & | getFragmentProgram (void) const
| Gets the fragment program used by this pass, only available after _load(). More...
const String & | getFragmentProgramName (void) const
| Gets the name of the fragment program used by this pass. More...
GpuProgramParametersSharedPtr | getFragmentProgramParameters (void) const
| Gets the fragment program parameters used by this pass. More...
const GpuProgramPtr & | getGeometryProgram (void) const
| Gets the geometry program used by this pass, only available after _load(). More...
const String & | getGeometryProgramName (void) const
| Gets the name of the geometry program used by this pass. More...
GpuProgramParametersSharedPtr | getGeometryProgramParameters (void) const
| Gets the geometry program parameters used by this pass. More...
uint32 | getHash (void) const
| Gets the 'hash' of this pass, ie a precomputed number to use for sorting. More...
IlluminationStage | getIlluminationStage () const
| Get the manually assigned illumination stage, if any. More...
unsigned short | getIndex (void) const
| Gets the index of this Pass in the parent Technique. More...
bool | getIteratePerLight (void) const
| Does this pass run once for every light in range? More...
float | getIterationDepthBias () const
| Gets a factor which derives an additional depth bias from the number of times a pass is iterated. More...
bool | getLightClipPlanesEnabled () const
| Gets whether or not this pass will be clipped by user clips planes bounding the area covered by the light. More...
unsigned short | getLightCountPerIteration (void) const
| If light iteration is enabled, determine the number of lights per iteration. More...
bool | getLightingEnabled (void) const
| Returns whether or not dynamic lighting is enabled. More...
uint32 | getLightMask () const
| Gets the light mask controlling which lights are used for this pass. More...
bool | getLightScissoringEnabled () const
| Gets whether or not this pass will be clipped by a scissor rectangle encompassing the lights that are being used in it. More...
ManualCullingMode | getManualCullingMode (void) const
| Retrieves the manual culling mode for this pass. More...
unsigned short | getMaxSimultaneousLights (void) const
| Gets the maximum number of lights to be used by this pass. More...
const String & | getName (void) const
| Get the name of the pass. More...
bool | getNormaliseNormals (void) const
| Returns true if this pass has auto-normalisation of normals set. More...
unsigned short | getNumTextureUnitStates (void) const
| Returns the number of texture unit settings. More...
Light::LightTypes | getOnlyLightType () const
| Gets the single light type this pass runs for if getIteratePerLight and getRunOnlyForOneLightType are both true. More...
Technique * | getParent (void) const
| Gets the parent Technique. More...
size_t | getPassIterationCount (void) const
| Gets the pass iteration count value. More...
Real | getPointAttenuationConstant (void) const
| Returns the constant coefficient of point attenuation. More...
Real | getPointAttenuationLinear (void) const
| Returns the linear coefficient of point attenuation. More...
Real | getPointAttenuationQuadratic (void) const
| Returns the quadratic coefficient of point attenuation. More...
Real | getPointMaxSize (void) const
| Get the maximum point size, when point attenuation is in use. More...
Real | getPointMinSize (void) const
| Get the minimum point size, when point attenuation is in use. More...
Real | getPointSize (void) const
| Gets the point size of the pass. More...
bool | getPointSpritesEnabled (void) const
| Returns whether point sprites are enabled when rendering a point list. More...
PolygonMode | getPolygonMode (void) const
| Returns the type of light shading to be used. More...
virtual bool | getPolygonModeOverrideable (void) const
| Gets whether this renderable's chosen detail level can be overridden (downgraded) by the camera setting. More...
const String & | getResourceGroup (void) const
| Gets the resource group of the ultimate parent Material. More...
bool | getRunOnlyForOneLightType (void) const
| Does this pass run only for a single light type (if getIteratePerLight is true). More...
SceneBlendOperation | getSceneBlendingOperation () const
| Returns the current blending operation. More...
SceneBlendOperation | getSceneBlendingOperationAlpha () const
| Returns the current alpha blending operation. More...
const ColourValue & | getSelfIllumination (void) const
| Gets the self illumination colour of the pass. More...
ShadeOptions | getShadingMode (void) const
| Returns the type of light shading to be used. More...
const GpuProgramPtr & | getShadowCasterFragmentProgram (void) const
| Gets the fragment program used by this pass when rendering shadow casters, only available after _load(). More...
const String & | getShadowCasterFragmentProgramName (void) const
| Gets the name of the fragment program used by this pass when rendering shadow casters. More...
GpuProgramParametersSharedPtr | getShadowCasterFragmentProgramParameters (void) const
| Gets the fragment program parameters used by this pass when rendering shadow casters. More...
const GpuProgramPtr & | getShadowCasterVertexProgram (void) const
| Gets the vertex program used by this pass when rendering shadow casters, only available after _load(). More...
const String & | getShadowCasterVertexProgramName (void) const
| Gets the name of the vertex program used by this pass when rendering shadow casters. More...
GpuProgramParametersSharedPtr | getShadowCasterVertexProgramParameters (void) const
| Gets the vertex program parameters used by this pass when rendering shadow casters. More...
const GpuProgramPtr & | getShadowReceiverFragmentProgram (void) const
| Gets the fragment program used by this pass when rendering shadow receivers, only available after _load(). More...
const String & | getShadowReceiverFragmentProgramName (void) const
| Gets the name of the fragment program used by this pass when rendering shadow receivers. More...
GpuProgramParametersSharedPtr | getShadowReceiverFragmentProgramParameters (void) const
| Gets the fragment program parameters used by this pass when rendering shadow receivers. More...
const GpuProgramPtr & | getShadowReceiverVertexProgram (void) const
| Gets the vertex program used by this pass when rendering shadow receivers, only available after _load(). More...
const String & | getShadowReceiverVertexProgramName (void) const
| Gets the name of the vertex program used by this pass when rendering shadow receivers. More...
GpuProgramParametersSharedPtr | getShadowReceiverVertexProgramParameters (void) const
| Gets the vertex program parameters used by this pass when rendering shadow receivers. More...
Real | getShininess (void) const
| Gets the 'shininess' property of the pass (affects specular highlights). More...
SceneBlendFactor | getSourceBlendFactor () const
| Retrieves the source blending factor for the material (as set using Materiall::setSceneBlending). More...
SceneBlendFactor | getSourceBlendFactorAlpha () const
| Retrieves the alpha source blending factor for the material (as set using Materiall::setSeparateSceneBlending). More...
const ColourValue & | getSpecular (void) const
| Gets the specular colour reflectance of the pass. More...
unsigned short | getStartLight (void) const
| Gets the light index that this pass will start at in the light list. More...
const GpuProgramPtr & | getTesselationDomainProgram (void) const
| Gets the Tesselation Domain program used by this pass, only available after _load(). More...
const String & | getTesselationDomainProgramName (void) const
| Gets the name of the Domain Evaluation program used by this pass. More...
GpuProgramParametersSharedPtr | getTesselationDomainProgramParameters (void) const
| Gets the Tesselation Domain program parameters used by this pass. More...
const GpuProgramPtr & | getTesselationHullProgram (void) const
| Gets the Tesselation Hull program used by this pass, only available after _load(). More...
const String & | getTesselationHullProgramName (void) const
| Gets the name of the Tesselation Hull program used by this pass. More...
GpuProgramParametersSharedPtr | getTesselationHullProgramParameters (void) const
| Gets the Tesselation Hull program parameters used by this pass. More...
TextureUnitState * | getTextureUnitState (unsigned short index)
| Retrieves a pointer to a texture unit state so it may be modified. More...
TextureUnitState * | getTextureUnitState (const String &name)
| Retrieves the Texture Unit State matching name. More...
const TextureUnitState * | getTextureUnitState (unsigned short index) const
| Retrieves a const pointer to a texture unit state. More...
const TextureUnitState * | getTextureUnitState (const String &name) const
| Retrieves the Texture Unit State matching name. More...
unsigned short | getTextureUnitStateIndex (const TextureUnitState *state) const
| Retrieve the index of the Texture Unit State in the pass. More...
TextureUnitStateIterator | getTextureUnitStateIterator (void)
| Get an iterator over the TextureUnitStates contained in this Pass. More...
ConstTextureUnitStateIterator | getTextureUnitStateIterator (void) const
| Get an iterator over the TextureUnitStates contained in this Pass. More...
bool | getTransparentSortingEnabled (void) const
| Returns whether or not transparent sorting is enabled. More...
bool | getTransparentSortingForced (void) const
| Returns whether or not transparent sorting is forced. More...
UserObjectBindings & | getUserObjectBindings ()
| Return an instance of user objects binding associated with this class. More...
const UserObjectBindings & | getUserObjectBindings () const
| Return an instance of user objects binding associated with this class. More...
TrackVertexColourType | getVertexColourTracking (void) const
| Gets which material properties follow the vertex colour. More...
const GpuProgramPtr & | getVertexProgram (void) const
| Gets the vertex program used by this pass, only available after _load(). More...
const String & | getVertexProgramName (void) const
| Gets the name of the vertex program used by this pass. More...
GpuProgramParametersSharedPtr | getVertexProgramParameters (void) const
| Gets the vertex program parameters used by this pass. More...
bool | hasComputeProgram (void) const
| Returns true if this pass uses a programmable compute pipeline. More...
bool | hasFragmentProgram (void) const
| Returns true if this pass uses a programmable fragment pipeline. More...
bool | hasGeometryProgram (void) const
| Returns true if this pass uses a programmable geometry pipeline. More...
bool | hasSeparateSceneBlending () const
| Return true if this pass uses separate scene blending. More...
bool | hasSeparateSceneBlendingOperations () const
| Returns true if this pass uses separate scene blending operations. More...
bool | hasShadowCasterFragmentProgram (void) const
| Returns true if this pass uses a shadow caster fragment program. More...
bool | hasShadowCasterVertexProgram (void) const
| Returns true if this pass uses a shadow caster vertex program. More...
bool | hasShadowReceiverFragmentProgram (void) const
| Returns true if this pass uses a shadow receiver fragment program. More...
bool | hasShadowReceiverVertexProgram (void) const
| Returns true if this pass uses a shadow receiver vertex program. More...
bool | hasTesselationDomainProgram (void) const
| Returns true if this pass uses a programmable tesselation control pipeline. More...
bool | hasTesselationHullProgram (void) const
| Returns true if this pass uses a programmable tesselation control pipeline. More...
bool | hasVertexProgram (void) const
| Returns true if this pass uses a programmable vertex pipeline. More...
bool | isAlphaToCoverageEnabled () const
| Gets whether to use alpha to coverage (A2C) when blending alpha rejected values. More...
bool | isAmbientOnly (void) const
| Returns whether this pass is ambient only. More...
bool | isLoaded (void) const
| Is this loaded? More...
bool | isPointAttenuationEnabled (void) const
| Returns whether points are attenuated with distance. More...
bool | isProgrammable (void) const
| Returns true if this pass is programmable i.e. includes either a vertex or fragment program. More...
bool | isTransparent (void) const
| Returns true if this pass has some element of transparency. More...
| OGRE_MUTEX (mTexUnitChangeMutex)
| OGRE_MUTEX (mGpuProgramChangeMutex)
| OGRE_STATIC_MUTEX (msDirtyHashListMutex)
| OGRE_STATIC_MUTEX (msPassGraveyardMutex)
void | operator delete (void *ptr)
void | operator delete (void *ptr, void *)
void | operator delete (void *ptr, const char *, int, const char *)
void | operator delete[] (void *ptr)
void | operator delete[] (void *ptr, const char *, int, const char *)
void * | operator new (size_t sz, const char *file, int line, const char *func)
| operator new, with debug line info More...
void * | operator new (size_t sz)
void * | operator new (size_t sz, void *ptr)
| placement operator new More...
void * | operator new[] (size_t sz, const char *file, int line, const char *func)
| array operator new, with debug line info More...
void * | operator new[] (size_t sz)
Pass & | operator= (const Pass &oth)
| Operator = overload. More...
void | queueForDeletion (void)
| Queue this pass for deletion when appropriate. More...
void | removeAllTextureUnitStates (void)
| Removes all texture unit settings. More...
void | removeTextureUnitState (unsigned short index)
| Removes the indexed texture unit state from this pass. More...
void | setAlphaRejectFunction (CompareFunction func)
| Sets the alpha reject function. More...
void | setAlphaRejectSettings (CompareFunction func, unsigned char value, bool alphaToCoverageEnabled=false)
| Sets the way the pass will have use alpha to totally reject pixels from the pipeline. More...
void | setAlphaRejectValue (unsigned char val)
| Gets the alpha reject value. More...
void | setAlphaToCoverageEnabled (bool enabled)
| Sets whether to use alpha to coverage (A2C) when blending alpha rejected values. More...
void | setAmbient (Real red, Real green, Real blue)
| Sets the ambient colour reflectance properties of this pass. More...
void | setAmbient (const ColourValue &ambient)
| Sets the ambient colour reflectance properties of this pass. More...
void | setColourWriteEnabled (bool enabled)
| Sets whether or not colour buffer writing is enabled for this Pass. More...
void | setComputeProgram (const String &name, bool resetParams=true)
| Sets the details of the compute program to use. More...
void | setComputeProgramParameters (GpuProgramParametersSharedPtr params)
| Sets the Tesselation Evaluation program parameters. More...
void | setCullingMode (CullingMode mode)
| Sets the culling mode for this pass based on the 'vertex winding'. More...
void | setDepthBias (float constantBias, float slopeScaleBias=0.0f)
| Sets the depth bias to be used for this material. More...
void | setDepthCheckEnabled (bool enabled)
| Sets whether or not this pass renders with depth-buffer checking on or not. More...
void | setDepthFunction (CompareFunction func)
| Sets the function used to compare depth values when depth checking is on. More...
void | setDepthWriteEnabled (bool enabled)
| Sets whether or not this pass renders with depth-buffer writing on or not. More...
void | setDiffuse (Real red, Real green, Real blue, Real alpha)
| Sets the diffuse colour reflectance properties of this pass. More...
void | setDiffuse (const ColourValue &diffuse)
| Sets the diffuse colour reflectance properties of this pass. More...
void | setEmissive (Real red, Real green, Real blue)
| Sets the amount of self-illumination an object has. More...
void | setEmissive (const ColourValue &emissive)
| Sets the amount of self-illumination an object has. More...
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. More...
void | setFragmentProgram (const String &name, bool resetParams=true)
| Sets the details of the fragment program to use. More...
void | setFragmentProgramParameters (GpuProgramParametersSharedPtr params)
| Sets the fragment program parameters. More...
void | setGeometryProgram (const String &name, bool resetParams=true)
| Sets the details of the geometry program to use. More...
void | setGeometryProgramParameters (GpuProgramParametersSharedPtr params)
| Sets the geometry program parameters. More...
void | setIlluminationStage (IlluminationStage is)
| Manually set which illumination stage this pass is a member of. More...
void | setIteratePerLight (bool enabled, bool onlyForOneLightType=true, Light::LightTypes lightType=Light::LT_POINT)
| Sets whether or not this pass should iterate per light or number of lights which can affect the object being rendered. More...
void | setIterationDepthBias (float biasPerIteration)
| Sets a factor which derives an additional depth bias from the number of times a pass is iterated. More...
void | setLightClipPlanesEnabled (bool enabled)
| Gets whether or not this pass will be clipped by user clips planes bounding the area covered by the light. More...
void | setLightCountPerIteration (unsigned short c)
| If light iteration is enabled, determine the number of lights per iteration. More...
void | setLightingEnabled (bool enabled)
| Sets whether or not dynamic lighting is enabled. More...
void | setLightMask (uint32 mask)
| Sets the light mask which can be matched to specific light flags to be handled by this pass. More...
void | setLightScissoringEnabled (bool enabled)
| Sets whether or not this pass will be clipped by a scissor rectangle encompassing the lights that are being used in it. More...
void | setManualCullingMode (ManualCullingMode mode)
| Sets the manual culling mode, performed by CPU rather than hardware. More...
void | setMaxSimultaneousLights (unsigned short maxLights)
| Sets the maximum number of lights to be used by this pass. More...
void | setName (const String &name)
void | setNormaliseNormals (bool normalise)
| If set to true, this forces normals to be normalised dynamically by the hardware for this pass. More...
void | setPassIterationCount (const size_t count)
| set the number of iterations that this pass should perform when doing fast multi pass operation. More...
void | setPointAttenuation (bool enabled, Real constant=0.0f, Real linear=1.0f, Real quadratic=0.0f)
| Sets how points are attenuated with distance. More...
void | setPointMaxSize (Real max)
| Set the maximum point size, when point attenuation is in use. More...
void | setPointMinSize (Real min)
| Set the minimum point size, when point attenuation is in use. More...
void | setPointSize (Real ps)
| Sets the point size of this pass. More...
void | setPointSpritesEnabled (bool enabled)
| Sets whether or not rendering points using OT_POINT_LIST will render point sprites (textured quads) or plain points (dots). More...
void | setPolygonMode (PolygonMode mode)
| Sets the type of polygon rendering required. More...
virtual void | setPolygonModeOverrideable (bool override)
| Sets whether this pass's chosen detail level can be overridden (downgraded) by the camera setting. More...
void | setSceneBlending (const SceneBlendType sbt)
| Sets the kind of blending this pass has with the existing contents of the scene. More...
void | setSceneBlending (const SceneBlendFactor sourceFactor, const SceneBlendFactor destFactor)
| Allows very fine control of blending this Pass with the existing contents of the scene. More...
void | setSceneBlendingOperation (SceneBlendOperation op)
| Sets the specific operation used to blend source and destination pixels together. More...
void | setSelfIllumination (Real red, Real green, Real blue)
| Sets the amount of self-illumination an object has. More...
void | setSelfIllumination (const ColourValue &selfIllum)
| Sets the amount of self-illumination an object has. More...
void | setSeparateSceneBlending (const SceneBlendType sbt, const SceneBlendType sbta)
| Sets the kind of blending this pass has with the existing contents of the scene, separately for color and alpha channels. More...
void | setSeparateSceneBlending (const SceneBlendFactor sourceFactor, const SceneBlendFactor destFactor, const SceneBlendFactor sourceFactorAlpha, const SceneBlendFactor destFactorAlpha)
| Allows very fine control of blending this Pass with the existing contents of the scene. More...
void | setSeparateSceneBlendingOperation (SceneBlendOperation op, SceneBlendOperation alphaOp)
| Sets the specific operation used to blend source and destination pixels together. More...
void | setShadingMode (ShadeOptions mode)
| Sets the type of light shading required. More...
void | setShadowCasterFragmentProgram (const String &name)
| Sets the details of the fragment program to use when rendering as a shadow caster. More...
void | setShadowCasterFragmentProgramParameters (GpuProgramParametersSharedPtr params)
| Sets the fragment program parameters for rendering as a shadow caster. More...
void | setShadowCasterVertexProgram (const String &name)
| Sets the details of the vertex program to use when rendering as a shadow caster. More...
void | setShadowCasterVertexProgramParameters (GpuProgramParametersSharedPtr params)
| Sets the vertex program parameters for rendering as a shadow caster. More...
void | setShadowReceiverFragmentProgram (const String &name)
| This method allows you to specify a fragment program for use when rendering a texture shadow receiver. More...
void | setShadowReceiverFragmentProgramParameters (GpuProgramParametersSharedPtr params)
| Sets the fragment program parameters for rendering as a shadow receiver. More...
void | setShadowReceiverVertexProgram (const String &name)
| Sets the details of the vertex program to use when rendering as a shadow receiver. More...
void | setShadowReceiverVertexProgramParameters (GpuProgramParametersSharedPtr params)
| Sets the vertex program parameters for rendering as a shadow receiver. More...
void | setShininess (Real val)
| Sets the shininess of the pass, affecting the size of specular highlights. More...
void | setSpecular (Real red, Real green, Real blue, Real alpha)
| Sets the specular colour reflectance properties of this pass. More...
void | setSpecular (const ColourValue &specular)
| Sets the specular colour reflectance properties of this pass. More...
void | setStartLight (unsigned short startLight)
| Sets the light index that this pass will start at in the light list. More...
void | setTesselationDomainProgram (const String &name, bool resetParams=true)
| Sets the details of the tesselation domain program to use. More...
void | setTesselationDomainProgramParameters (GpuProgramParametersSharedPtr params)
| Sets the Tesselation Domain program parameters. More...
void | setTesselationHullProgram (const String &name, bool resetParams=true)
| Support for shader model 5.0, hull and domain shaders. More...
void | setTesselationHullProgramParameters (GpuProgramParametersSharedPtr params)
| Sets the Tesselation Hull program parameters. More...
void | setTextureAnisotropy (unsigned int maxAniso)
| Sets the anisotropy level to be used for all textures. More...
void | setTextureFiltering (TextureFilterOptions filterType)
| Set texture filtering for every texture unit. More...
void | setTransparentSortingEnabled (bool enabled)
| Sets whether or not transparent sorting is enabled. More...
void | setTransparentSortingForced (bool enabled)
| Sets whether or not transparent sorting is forced. More...
void | setVertexColourTracking (TrackVertexColourType tracking)
| Sets which material properties follow the vertex colour. More...
void | setVertexProgram (const String &name, bool resetParams=true)
| Sets the details of the vertex program to use. More...
void | setVertexProgramParameters (GpuProgramParametersSharedPtr params)
| Sets the vertex program parameters. More...

## Static Public Member Functions

static void | clearDirtyHashList (void)
| Static method to reset the list of passes which need their hash values recalculated. More...
static HashFunc * | getBuiltinHashFunction (BuiltinHashFunction builtin)
| Get the builtin hash function. More...
static const PassSet & | getDirtyHashList (void)
| Static method to retrieve all the Passes which need their hash values recalculated. More...
static HashFunc * | getHashFunction (void)
| Get the hash function used for all passes. More...
static const PassSet & | getPassGraveyard (void)
| Static method to retrieve all the Passes which are pending deletion. More...
static void | processPendingPassUpdates (void)
| Process all dirty and pending deletion passes. More...
static void | setHashFunction (BuiltinHashFunction builtin)
| Sets one of the default hash functions to be used. More...
static void | setHashFunction (HashFunc *hashFunc)
| Set the hash function used for all passes. More...

## Protected Types

typedef vector< unsigned short >::type | ContentTypeLookup
typedef vector< TextureUnitState * >::type | TextureUnitStates
| Storage of texture unit states. More...

## Protected Member Functions

void | _getBlendFlags (SceneBlendType type, SceneBlendFactor &source, SceneBlendFactor &dest)
| Used to get scene blending flags from a blending type. More...

## Protected Attributes

SceneBlendOperation | mAlphaBlendOperation
CompareFunction | mAlphaRejectFunc
unsigned char | mAlphaRejectVal
bool | mAlphaToCoverageEnabled
ColourValue | mAmbient
| Needs to be dirtied when next loaded. More...
SceneBlendOperation | mBlendOperation
bool | mColourWrite
| Colour buffer settings. More...
GpuProgramUsage * | mComputeProgramUsage
| Compute program details. More...
bool | mContentTypeLookupBuilt
CullingMode | mCullMode
float | mDepthBiasConstant
float | mDepthBiasPerIteration
float | mDepthBiasSlopeScale
bool | mDepthCheck
CompareFunction | mDepthFunc
bool | mDepthWrite
SceneBlendFactor | mDestBlendFactor
SceneBlendFactor | mDestBlendFactorAlpha
ColourValue | mDiffuse
ColourValue | mEmissive
ColourValue | mFogColour
Real | mFogDensity
Real | mFogEnd
FogMode | mFogMode
bool | mFogOverride
Real | mFogStart
GpuProgramUsage * | mFragmentProgramUsage
| Fragment program details. More...
GpuProgramUsage * | mGeometryProgramUsage
| Geometry program details. More...
uint32 | mHash
| Optional name for the pass. More...
bool | mHashDirtyQueued
| Pass hash. More...
IlluminationStage | mIlluminationStage
| Illumination stage? More...
unsigned short | mIndex
bool | mIteratePerLight
| Run this pass once per light? More...
bool | mLightClipPlanes
| User clip planes for light? More...
bool | mLightingEnabled
| Lighting enabled? More...
uint32 | mLightMask
| With a specific light mask? More...
bool | mLightScissoring
| Scissoring for the light? More...
unsigned short | mLightsPerIteration
| Iterate per how many lights? More...
ManualCullingMode | mManualCullMode
unsigned short | mMaxSimultaneousLights
| Max simultaneous lights. More...
String | mName
| Pass index. More...
bool | mNormaliseNormals
| Normalisation. More...
Light::LightTypes | mOnlyLightType
Technique * | mParent
size_t | mPassIterationCount
| Number of pass iterations to perform. More...
Real | mPointAttenuationCoeffs [3]
| Constant, linear, quadratic coeffs. More...
bool | mPointAttenuationEnabled
Real | mPointMaxSize
Real | mPointMinSize
Real | mPointSize
| Point size, applies when not using per-vertex point size. More...
bool | mPointSpritesEnabled
PolygonMode | mPolygonMode
| Polygon mode. More...
bool | mPolygonModeOverrideable
bool | mQueuedForDeletion
| Is this pass queued for deletion? More...
bool | mRunOnlyForOneLightType
| Should it only be run for a certain light type? More...
bool | mSeparateBlend
bool | mSeparateBlendOperation
| Determines if we should use separate blending operations for color and alpha channels. More...
ShadeOptions | mShadeOptions
| Shading options. More...
GpuProgramUsage * | mShadowCasterFragmentProgramUsage
| Fragment program details. More...
GpuProgramUsage * | mShadowCasterVertexProgramUsage
| Vertex program details. More...
ContentTypeLookup | mShadowContentTypeLookup
GpuProgramUsage * | mShadowReceiverFragmentProgramUsage
| Fragment program details. More...
GpuProgramUsage * | mShadowReceiverVertexProgramUsage
| Vertex program details. More...
Real | mShininess
SceneBlendFactor | mSourceBlendFactor
SceneBlendFactor | mSourceBlendFactorAlpha
ColourValue | mSpecular
unsigned short | mStartLight
| Starting light index. More...
GpuProgramUsage * | mTesselationDomainProgramUsage
| Tesselation domain program details. More...
GpuProgramUsage * | mTesselationHullProgramUsage
| Tesselation hull program details. More...
TextureUnitStates | mTextureUnitStates
TrackVertexColourType | mTracking
bool | mTransparentSorting
| Transparent depth sorting. More...
bool | mTransparentSortingForced
| Transparent depth sorting forced. More...
UserObjectBindings | mUserObjectBindings
| User objects binding. More...
GpuProgramUsage * | mVertexProgramUsage
| Vertex program details. More...

## Static Protected Attributes

static PassSet | msDirtyHashList
| List of Passes whose hashes need recalculating. More...
static HashFunc * | msHashFunc
| The Pass hash functor. More...
static PassSet | msPassGraveyard
| The place where passes go to die. More...

## Detailed Description

Class defining a single pass of a Technique (of a Material), i.e.

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 80 of file OgrePass.h.

## Member Typedef Documentation

## ConstTextureUnitStateIterator

typedef ConstVectorIterator<TextureUnitStates> Ogre::Pass::ConstTextureUnitStateIterator

Definition at line 601 of file OgrePass.h.

## ContentTypeLookup

typedef vector<unsigned short>::type Ogre::Pass::ContentTypeLookup

protected

Definition at line 234 of file OgrePass.h.

## PassSet

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

Definition at line 251 of file OgrePass.h.

## TextureUnitStateIterator

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

Definition at line 597 of file OgrePass.h.

## TextureUnitStates

typedef vector<TextureUnitState*>::type Ogre::Pass::TextureUnitStates

protected

Storage of texture unit states.

Definition at line 198 of file OgrePass.h.

## Member Enumeration Documentation

## BuiltinHashFunction

enum Ogre::Pass::BuiltinHashFunction

There are some default hash functions used to order passes so that render state changes are minimised, this enumerates them.

Enumerator
MIN_TEXTURE_CHANGE | Try to minimise the number of texture changes.

MIN_GPU_PROGRAM_CHANGE

Try to minimise the number of GPU program changes.

Note
  Only really useful if you use GPU programs for all of your materials.

Definition at line 1704 of file OgrePass.h.

## Constructor & Destructor Documentation

## Pass() [1/2]

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

Default constructor.

## Pass() [2/2]

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

Copy constructor.

## ~Pass()

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

virtual

## Member Function Documentation

## _dirtyHash()

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

Mark the hash as dirty.

## _getBlendFlags()

void Ogre::Pass::_getBlendFlags | ( | SceneBlendType | type,
|  | SceneBlendFactor & | source,
|  | SceneBlendFactor & | dest
| ) |  |

protected

Used to get scene blending flags from a blending type.

## _getTextureUnitWithContentTypeIndex()

unsigned short Ogre::Pass::_getTextureUnitWithContentTypeIndex | ( | TextureUnitState::ContentType | contentType,
|  | unsigned short | index
| ) |  | const

Gets the 'nth' texture which references the given content type.

Remarks
  If the 'nth' texture unit which references the content type doesn't exist, then this method returns an arbitrary high-value outside the valid range to index texture units.

## _load()

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

Internal method for loading this pass.

## _notifyIndex()

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

Internal method to adjust pass index.

## _notifyNeedsRecompile()

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

Tells the pass that it needs recompilation.

## _prepare()

void Ogre::Pass::_prepare | ( | void |  | ) |

Internal method for preparing to load this pass.

## _recalculateHash()

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.

## _split()

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.

## _unload()

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

Internal method for unloading this pass.

## _unprepare()

void Ogre::Pass::_unprepare | ( | void |  | ) |

Internal method for undoing the load preparartion for this pass.

## _updateAutoParams()

void Ogre::Pass::_updateAutoParams | ( | const AutoParamDataSource * | source,
|  | uint16 | variabilityMask
| ) |  | const

Update automatic parameters.

Parameters

  source | The source of the parameters
  variabilityMask | A mask of GpuParamVariability which identifies which autos will need updating

## addTextureUnitState()

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

Adds the passed in TextureUnitState, to the existing Pass.

Parameters

  state | The Texture Unit State to be attached to this pass. It must not be attached to another pass.

Note
  Throws an exception if the TextureUnitState is attached to another Pass.

## applyTextureAliases()

bool Ogre::Pass::applyTextureAliases | ( | const AliasTextureNamePairList & | aliasList,
|  | const bool | apply = `true`
| ) |  | const

Applies texture names to Texture Unit State with matching texture name aliases.

All Texture Unit States within the pass are checked. If matching texture aliases are found then true is returned.

Parameters

  aliasList | is a map container of texture alias, texture name pairs
  apply | set true to apply the texture aliases else just test to see if texture alias matches are found.

Returns
  True if matching texture aliases were found in the pass.

## calculateSize()

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

## clearDirtyHashList()

static 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.

## createTextureUnitState() [1/2]

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.

## createTextureUnitState() [2/2]

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

  textureName | 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.

## getAlphaRejectFunction()

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

Gets the alpha reject function.

See setAlphaRejectSettings for more information.

Definition at line 1082 of file OgrePass.h.

## getAlphaRejectValue()

unsigned char Ogre::Pass::getAlphaRejectValue | ( | void |  | ) | const

Gets the alpha reject value.

See setAlphaRejectSettings for more information.

Definition at line 1086 of file OgrePass.h.

## getAmbient()

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

Gets the ambient colour reflectance of the pass.

## getBuiltinHashFunction()

static HashFunc* Ogre::Pass::getBuiltinHashFunction | ( | BuiltinHashFunction | builtin | ) |

static

Get the builtin hash function.

## getColourWriteEnabled()

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

Determines if colour buffer writing is enabled for this pass.

## getComputeProgram()

const GpuProgramPtr& Ogre::Pass::getComputeProgram | ( | void |  | ) | const

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

## getComputeProgramName()

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

Gets the name of the Tesselation Hull program used by this pass.

## getComputeProgramParameters()

GpuProgramParametersSharedPtr Ogre::Pass::getComputeProgramParameters | ( | void |  | ) | const

Gets the Tesselation Hull program parameters used by this pass.

## getCullingMode()

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

Returns the culling mode for geometry rendered with this pass.

See setCullingMode for more information.

## getDepthBiasConstant()

float Ogre::Pass::getDepthBiasConstant | ( | void |  | ) | const

Retrieves the const depth bias value as set by setDepthBias.

## getDepthBiasSlopeScale()

float Ogre::Pass::getDepthBiasSlopeScale | ( | void |  | ) | const

Retrieves the slope-scale depth bias value as set by setDepthBias.

## getDepthCheckEnabled()

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

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

See also
  setDepthCheckEnabled

## getDepthFunction()

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

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

See also
  setDepthFunction

## getDepthWriteEnabled()

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

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

See also
  setDepthWriteEnabled

## getDestBlendFactor()

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

Retrieves the destination blending factor for the material (as set using Materiall::setSceneBlending).

## getDestBlendFactorAlpha()

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

Retrieves the alpha destination blending factor for the material (as set using Materiall::setSeparateSceneBlending).

## getDiffuse()

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

Gets the diffuse colour reflectance of the pass.

## getDirtyHashList()

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

static

Static method to retrieve all the Passes which need their hash values recalculated.

Definition at line 1565 of file OgrePass.h.

## getEmissive()

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

Gets the self illumination colour of the pass.

See also
  getSelfIllumination

Definition at line 539 of file OgrePass.h.

## getFogColour()

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

Returns the fog colour for the scene.

## getFogDensity()

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

Returns the fog density for this pass.

Note
  Only valid if getFogOverride is true.

## getFogEnd()

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

Returns the fog end distance for this pass.

Note
  Only valid if getFogOverride is true.

## getFogMode()

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

Returns the fog mode for this pass.

Note
  Only valid if getFogOverride is true.

## getFogOverride()

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

Returns true if this pass is to override the scene fog settings.

## getFogStart()

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

Returns the fog start distance for this pass.

Note
  Only valid if getFogOverride is true.

## getFragmentProgram()

const GpuProgramPtr& Ogre::Pass::getFragmentProgram | ( | void |  | ) | const

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

## getFragmentProgramName()

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

Gets the name of the fragment program used by this pass.

## getFragmentProgramParameters()

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

Gets the fragment program parameters used by this pass.

## getGeometryProgram()

const GpuProgramPtr& Ogre::Pass::getGeometryProgram | ( | void |  | ) | const

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

## getGeometryProgramName()

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

Gets the name of the geometry program used by this pass.

## getGeometryProgramParameters()

GpuProgramParametersSharedPtr Ogre::Pass::getGeometryProgramParameters | ( | void |  | ) | const

Gets the geometry program parameters used by this pass.

## getHash()

uint32 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 1500 of file OgrePass.h.

Referenced by Ogre::QueuedRenderableCollection::PassGroupLess::operator()(), Ogre::QueuedRenderableCollection::DepthSortDescendingLess::operator()(), and Ogre::QueuedRenderableCollection::RadixSortFunctorPass::operator()().

## getHashFunction()

static HashFunc* Ogre::Pass::getHashFunction | ( | void |  | ) |

static

Get the hash function used for all passes.

Definition at line 1743 of file OgrePass.h.

## getIlluminationStage()

IlluminationStage Ogre::Pass::getIlluminationStage | ( |  | ) | const

Get the manually assigned illumination stage, if any.

Definition at line 1700 of file OgrePass.h.

## getIndex()

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

Gets the index of this Pass in the parent Technique.

Definition at line 300 of file OgrePass.h.

## getIteratePerLight()

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

Does this pass run once for every light in range?

Definition at line 1180 of file OgrePass.h.

## getIterationDepthBias()

float Ogre::Pass::getIterationDepthBias | ( |  | ) | const

Gets a factor which derives an additional depth bias from the number of times a pass is iterated.

## getLightClipPlanesEnabled()

bool Ogre::Pass::getLightClipPlanesEnabled | ( |  | ) | const

Gets whether or not this pass will be clipped by user clips planes bounding the area covered by the light.

Definition at line 1675 of file OgrePass.h.

## getLightCountPerIteration()

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

If light iteration is enabled, determine the number of lights per iteration.

## getLightingEnabled()

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

Returns whether or not dynamic lighting is enabled.

## getLightMask()

uint32 Ogre::Pass::getLightMask | ( |  | ) | const

Gets the light mask controlling which lights are used for this pass.

## getLightScissoringEnabled()

bool Ogre::Pass::getLightScissoringEnabled | ( |  | ) | const

Gets whether or not this pass will be clipped by a scissor rectangle encompassing the lights that are being used in it.

Definition at line 1646 of file OgrePass.h.

## getManualCullingMode()

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

Retrieves the manual culling mode for this pass.

See also
  setManualCullingMode

## getMaxSimultaneousLights()

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

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

## getName()

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

Get the name of the pass.

Definition at line 308 of file OgrePass.h.

## getNormaliseNormals()

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

Returns true if this pass has auto-normalisation of normals set.

Definition at line 1560 of file OgrePass.h.

## getNumTextureUnitStates()

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

Returns the number of texture unit settings.

Definition at line 617 of file OgrePass.h.

## getOnlyLightType()

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

Gets the single light type this pass runs for if getIteratePerLight and getRunOnlyForOneLightType are both true.

Definition at line 1185 of file OgrePass.h.

## getParent()

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

Gets the parent Technique.

Definition at line 1203 of file OgrePass.h.

## getPassGraveyard()

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

static

Static method to retrieve all the Passes which are pending deletion.

Definition at line 1569 of file OgrePass.h.

## getPassIterationCount()

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

Gets the pass iteration count value.

Definition at line 1607 of file OgrePass.h.

## getPointAttenuationConstant()

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

Returns the constant coefficient of point attenuation.

## getPointAttenuationLinear()

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

Returns the linear coefficient of point attenuation.

## getPointAttenuationQuadratic()

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

Returns the quadratic coefficient of point attenuation.

## getPointMaxSize()

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

Get the maximum point size, when point attenuation is in use.

Remarks
  0 indicates the max size supported by the card.

## getPointMinSize()

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

Get the minimum point size, when point attenuation is in use.

## getPointSize()

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

Gets the point size of the pass.

Remarks
  This property determines what point size is used to render a point list.

## getPointSpritesEnabled()

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

Returns whether point sprites are enabled when rendering a point list.

## getPolygonMode()

PolygonMode Ogre::Pass::getPolygonMode | ( | void |  | ) | const

Returns the type of light shading to be used.

## getPolygonModeOverrideable()

virtual bool Ogre::Pass::getPolygonModeOverrideable | ( | void |  | ) | const

virtual

Gets whether this renderable's chosen detail level can be overridden (downgraded) by the camera setting.

Definition at line 953 of file OgrePass.h.

References Ogre::FOG_NONE, and Ogre::ColourValue::White.

## getResourceGroup()

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

Gets the resource group of the ultimate parent Material.

## getRunOnlyForOneLightType()

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

Does this pass run only for a single light type (if getIteratePerLight is true).

Definition at line 1182 of file OgrePass.h.

## getSceneBlendingOperation()

SceneBlendOperation Ogre::Pass::getSceneBlendingOperation | ( |  | ) | const

Returns the current blending operation.

## getSceneBlendingOperationAlpha()

SceneBlendOperation Ogre::Pass::getSceneBlendingOperationAlpha | ( |  | ) | const

Returns the current alpha blending operation.

## getSelfIllumination()

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

Gets the self illumination colour of the pass.

## getShadingMode()

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

Returns the type of light shading to be used.

## getShadowCasterFragmentProgram()

const GpuProgramPtr& Ogre::Pass::getShadowCasterFragmentProgram | ( | void |  | ) | const

Gets the fragment program used by this pass when rendering shadow casters, only available after _load().

## getShadowCasterFragmentProgramName()

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

Gets the name of the fragment program used by this pass when rendering shadow casters.

## getShadowCasterFragmentProgramParameters()

GpuProgramParametersSharedPtr Ogre::Pass::getShadowCasterFragmentProgramParameters | ( | void |  | ) | const

Gets the fragment program parameters used by this pass when rendering shadow casters.

## getShadowCasterVertexProgram()

const GpuProgramPtr& Ogre::Pass::getShadowCasterVertexProgram | ( | void |  | ) | const

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

## getShadowCasterVertexProgramName()

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

Gets the name of the vertex program used by this pass when rendering shadow casters.

## getShadowCasterVertexProgramParameters()

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

Gets the vertex program parameters used by this pass when rendering shadow casters.

## getShadowReceiverFragmentProgram()

const GpuProgramPtr& Ogre::Pass::getShadowReceiverFragmentProgram | ( | void |  | ) | const

Gets the fragment program used by this pass when rendering shadow receivers, only available after _load().

## getShadowReceiverFragmentProgramName()

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

Gets the name of the fragment program used by this pass when rendering shadow receivers.

## getShadowReceiverFragmentProgramParameters()

GpuProgramParametersSharedPtr Ogre::Pass::getShadowReceiverFragmentProgramParameters | ( | void |  | ) | const

Gets the fragment program parameters used by this pass when rendering shadow receivers.

## getShadowReceiverVertexProgram()

const GpuProgramPtr& Ogre::Pass::getShadowReceiverVertexProgram | ( | void |  | ) | const

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

## getShadowReceiverVertexProgramName()

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

Gets the name of the vertex program used by this pass when rendering shadow receivers.

## getShadowReceiverVertexProgramParameters()

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

Gets the vertex program parameters used by this pass when rendering shadow receivers.

## getShininess()

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

Gets the 'shininess' property of the pass (affects specular highlights).

## getSourceBlendFactor()

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

Retrieves the source blending factor for the material (as set using Materiall::setSceneBlending).

## getSourceBlendFactorAlpha()

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

Retrieves the alpha source blending factor for the material (as set using Materiall::setSeparateSceneBlending).

## getSpecular()

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

Gets the specular colour reflectance of the pass.

## getStartLight()

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

Gets the light index that this pass will start at in the light list.

## getTesselationDomainProgram()

const GpuProgramPtr& Ogre::Pass::getTesselationDomainProgram | ( | void |  | ) | const

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

## getTesselationDomainProgramName()

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

Gets the name of the Domain Evaluation program used by this pass.

## getTesselationDomainProgramParameters()

GpuProgramParametersSharedPtr Ogre::Pass::getTesselationDomainProgramParameters | ( | void |  | ) | const

Gets the Tesselation Domain program parameters used by this pass.

## getTesselationHullProgram()

const GpuProgramPtr& Ogre::Pass::getTesselationHullProgram | ( | void |  | ) | const

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

## getTesselationHullProgramName()

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

Gets the name of the Tesselation Hull program used by this pass.

## getTesselationHullProgramParameters()

GpuProgramParametersSharedPtr Ogre::Pass::getTesselationHullProgramParameters | ( | void |  | ) | const

Gets the Tesselation Hull program parameters used by this pass.

## getTextureUnitState() [1/4]

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

Retrieves a pointer to a texture unit state so it may be modified.

## getTextureUnitState() [2/4]

TextureUnitState* Ogre::Pass::getTextureUnitState | ( | const String & | name | ) |

Retrieves the Texture Unit State matching name.

Returns 0 if name match is not found.

## getTextureUnitState() [3/4]

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

Retrieves a const pointer to a texture unit state.

## getTextureUnitState() [4/4]

const TextureUnitState* Ogre::Pass::getTextureUnitState | ( | const String & | name | ) | const

Retrieves the Texture Unit State matching name.

Returns 0 if name match is not found.

## getTextureUnitStateIndex()

unsigned short Ogre::Pass::getTextureUnitStateIndex | ( | const TextureUnitState * | state | ) | const

Retrieve the index of the Texture Unit State in the pass.

Parameters

  state | The Texture Unit State this is attached to this pass.

Note
  Throws an exception if the state is not attached to the pass.

## getTextureUnitStateIterator() [1/2]

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

Get an iterator over the TextureUnitStates contained in this Pass.

## getTextureUnitStateIterator() [2/2]

ConstTextureUnitStateIterator Ogre::Pass::getTextureUnitStateIterator | ( | void |  | ) | const

Get an iterator over the TextureUnitStates contained in this Pass.

## getTransparentSortingEnabled()

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

Returns whether or not transparent sorting is enabled.

## getTransparentSortingForced()

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

Returns whether or not transparent sorting is forced.

## getUserObjectBindings() [1/2]

UserObjectBindings& Ogre::Pass::getUserObjectBindings | ( |  | ) |

Return an instance of user objects binding associated with this class.

You can use it to associate one or more custom objects with this class instance.

See also
  UserObjectBindings::setUserAny.

Definition at line 1753 of file OgrePass.h.

## getUserObjectBindings() [2/2]

const UserObjectBindings& Ogre::Pass::getUserObjectBindings | ( |  | ) | const

Return an instance of user objects binding associated with this class.

You can use it to associate one or more custom objects with this class instance.

See also
  UserObjectBindings::setUserAny.

Definition at line 1759 of file OgrePass.h.

## getVertexColourTracking()

TrackVertexColourType Ogre::Pass::getVertexColourTracking | ( | void |  | ) | const

Gets which material properties follow the vertex colour.

## getVertexProgram()

const GpuProgramPtr& Ogre::Pass::getVertexProgram | ( | void |  | ) | const

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

## getVertexProgramName()

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

Gets the name of the vertex program used by this pass.

## getVertexProgramParameters()

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

Gets the vertex program parameters used by this pass.

## hasComputeProgram()

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

Returns true if this pass uses a programmable compute pipeline.

Definition at line 287 of file OgrePass.h.

## hasFragmentProgram()

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

Returns true if this pass uses a programmable fragment pipeline.

Definition at line 279 of file OgrePass.h.

## hasGeometryProgram()

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

Returns true if this pass uses a programmable geometry pipeline.

Definition at line 281 of file OgrePass.h.

## hasSeparateSceneBlending()

bool Ogre::Pass::hasSeparateSceneBlending | ( |  | ) | const

Return true if this pass uses separate scene blending.

## hasSeparateSceneBlendingOperations()

bool Ogre::Pass::hasSeparateSceneBlendingOperations | ( |  | ) | const

Returns true if this pass uses separate scene blending operations.

## hasShadowCasterFragmentProgram()

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

Returns true if this pass uses a shadow caster fragment program.

Definition at line 291 of file OgrePass.h.

## hasShadowCasterVertexProgram()

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

Returns true if this pass uses a shadow caster vertex program.

Definition at line 289 of file OgrePass.h.

## hasShadowReceiverFragmentProgram()

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

Returns true if this pass uses a shadow receiver fragment program.

Definition at line 295 of file OgrePass.h.

## hasShadowReceiverVertexProgram()

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

Returns true if this pass uses a shadow receiver vertex program.

Definition at line 293 of file OgrePass.h.

## hasTesselationDomainProgram()

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

Returns true if this pass uses a programmable tesselation control pipeline.

Definition at line 285 of file OgrePass.h.

## hasTesselationHullProgram()

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

Returns true if this pass uses a programmable tesselation control pipeline.

Definition at line 283 of file OgrePass.h.

## hasVertexProgram()

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

Returns true if this pass uses a programmable vertex pipeline.

Definition at line 277 of file OgrePass.h.

## isAlphaToCoverageEnabled()

bool Ogre::Pass::isAlphaToCoverageEnabled | ( |  | ) | const

Gets whether to use alpha to coverage (A2C) when blending alpha rejected values.

Definition at line 1099 of file OgrePass.h.

References Ogre::Light::LT_POINT.

## isAmbientOnly()

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

Returns whether this pass is ambient only.

## isLoaded()

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

Is this loaded?

## isPointAttenuationEnabled()

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

Returns whether points are attenuated with distance.

## isProgrammable()

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

Returns true if this pass is programmable i.e. includes either a vertex or fragment program.

Definition at line 273 of file OgrePass.h.

## isTransparent()

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

Returns true if this pass has some element of transparency.

## OGRE_MUTEX() [1/2]

Ogre::Pass::OGRE_MUTEX | ( | mTexUnitChangeMutex |  | ) |

## OGRE_MUTEX() [2/2]

Ogre::Pass::OGRE_MUTEX | ( | mGpuProgramChangeMutex |  | ) |

## OGRE_STATIC_MUTEX() [1/2]

Ogre::Pass::OGRE_STATIC_MUTEX | ( | msDirtyHashListMutex |  | ) |

## OGRE_STATIC_MUTEX() [2/2]

Ogre::Pass::OGRE_STATIC_MUTEX | ( | msPassGraveyardMutex |  | ) |

## operator delete() [1/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr | ) |

inherited

Definition at line 96 of file OgreMemoryAllocatedObject.h.

## operator delete() [2/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | void * |
| ) |  |

inherited

Definition at line 102 of file OgreMemoryAllocatedObject.h.

## operator delete() [3/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |
| ) |  |

inherited

Definition at line 108 of file OgreMemoryAllocatedObject.h.

## operator delete[]() [1/2]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr | ) |

inherited

Definition at line 113 of file OgreMemoryAllocatedObject.h.

## operator delete[]() [2/2]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |
| ) |  |

inherited

Definition at line 119 of file OgreMemoryAllocatedObject.h.

## operator new() [1/3]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func
| ) |  |

inherited

operator new, with debug line info

Definition at line 68 of file OgreMemoryAllocatedObject.h.

## operator new() [2/3]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz | ) |

inherited

Definition at line 73 of file OgreMemoryAllocatedObject.h.

## operator new() [3/3]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | void * | ptr
| ) |  |

inherited

placement operator new

Definition at line 79 of file OgreMemoryAllocatedObject.h.

## operator new[]() [1/2]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func
| ) |  |

inherited

array operator new, with debug line info

Definition at line 86 of file OgreMemoryAllocatedObject.h.

## operator new[]() [2/2]

template<class Alloc >

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

inherited

Definition at line 91 of file OgreMemoryAllocatedObject.h.

## operator=()

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

Operator = overload.

## processPendingPassUpdates()

static void Ogre::Pass::processPendingPassUpdates | ( | void |  | ) |

static

Process all dirty and pending deletion passes.

## queueForDeletion()

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

Queue this pass for deletion when appropriate.

## removeAllTextureUnitStates()

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

Removes all texture unit settings.

## removeTextureUnitState()

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.

## setAlphaRejectFunction()

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

Sets the alpha reject function.

See setAlphaRejectSettings for more information.

## setAlphaRejectSettings()

void Ogre::Pass::setAlphaRejectSettings | ( | CompareFunction | func,
|  | unsigned char | value,
|  | bool | alphaToCoverageEnabled = `false`
| ) |  |

Sets the way the pass will have use alpha to totally reject pixels from the pipeline.

Remarks
  The default is CMPF_ALWAYS_PASS i.e. alpha is not used to reject pixels.

Parameters

  func | The comparison which must pass for the pixel to be written.
  value | 1 byte value against which alpha values will be tested(0-255)
  alphaToCoverageEnabled | Whether to enable alpha to coverage support

Note
  This option applies in both the fixed function and the programmable pipeline.

## setAlphaRejectValue()

void Ogre::Pass::setAlphaRejectValue | ( | unsigned char | val | ) |

Gets the alpha reject value.

See setAlphaRejectSettings for more information.

## setAlphaToCoverageEnabled()

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

Sets whether to use alpha to coverage (A2C) when blending alpha rejected values.

Remarks
  Alpha to coverage performs multisampling on the edges of alpha-rejected textures to produce a smoother result. It is only supported when multisampling is already enabled on the render target, and when the hardware supports alpha to coverage (see RenderSystemCapabilities).

## setAmbient() [1/2]

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.

## setAmbient() [2/2]

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.

## setColourWriteEnabled()

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).

## setComputeProgram()

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

Sets the details of the compute program to use.

Remarks
  Only applicable to programmable passes, this sets the details of the compute 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 compute 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.

## setComputeProgramParameters()

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

Sets the Tesselation Evaluation program parameters.

Remarks
  Only applicable to programmable passes.

## setCullingMode()

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.

## setDepthBias()

void Ogre::Pass::setDepthBias | ( | float | constantBias,
|  | float | slopeScaleBias = `0.0f`
| ) |  |

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. There are two aspects to the biasing, a constant bias value and a slope-relative biasing value, which varies according to the maximum depth slope relative to the camera, ie:

      finalBias = maxSlope * slopeScaleBias + constantBias

  Note that slope scale bias, whilst more accurate, may be ignored by old hardware.

Parameters

  constantBias | The constant bias value, expressed as a factor of the minimum observable depth
  slopeScaleBias | The slope-relative bias value, expressed as a factor of the depth slope

## setDepthCheckEnabled()

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

## setDepthFunction()

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.

## setDepthWriteEnabled()

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.

## setDiffuse() [1/2]

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.

## setDiffuse() [2/2]

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.

## setEmissive() [1/2]

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

Sets the amount of self-illumination an object has.

See also
  setSelfIllumination

Definition at line 411 of file OgrePass.h.

## setEmissive() [2/2]

void Ogre::Pass::setEmissive | ( | const ColourValue & | emissive | ) |

Sets the amount of self-illumination an object has.

See also
  setSelfIllumination

Definition at line 431 of file OgrePass.h.

## setFog()

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 passes.
  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.

## setFragmentProgram()

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.

## setFragmentProgramParameters()

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

Sets the fragment program parameters.

Remarks
  Only applicable to programmable passes.

## setGeometryProgram()

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

Sets the details of the geometry program to use.

Remarks
  Only applicable to programmable passes, this sets the details of the geometry 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 geometry 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.

## setGeometryProgramParameters()

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

Sets the geometry program parameters.

Remarks
  Only applicable to programmable passes.

## setHashFunction() [1/2]

static void Ogre::Pass::setHashFunction | ( | BuiltinHashFunction | builtin | ) |

static

Sets one of the default hash functions to be used.

Remarks
  You absolutely must not change the hash function whilst any Pass instances exist in the render queue. The only time you can do this is either before you render anything, or directly after you manuall call RenderQueue::clear(true) to completely destroy the queue structures. The default is MIN_TEXTURE_CHANGE.

Note
  You can also implement your own hash function, see the alternate version of this method.

See also
  HashFunc

## setHashFunction() [2/2]

static void Ogre::Pass::setHashFunction | ( | HashFunc * | hashFunc | ) |

static

Set the hash function used for all passes.

Remarks
  You absolutely must not change the hash function whilst any Pass instances exist in the render queue. The only time you can do this is either before you render anything, or directly after you manuall call RenderQueue::clear(true) to completely destroy the queue structures.

Note
  You can also use one of the built-in hash functions, see the alternate version of this method. The default is MIN_TEXTURE_CHANGE.

See also
  HashFunc

Definition at line 1739 of file OgrePass.h.

## setIlluminationStage()

void Ogre::Pass::setIlluminationStage | ( | IlluminationStage | is | ) |

Manually set which illumination stage this pass is a member of.

Remarks
  When using an additive lighting mode (SHADOWTYPE_STENCIL_ADDITIVE or SHADOWTYPE_TEXTURE_ADDITIVE), the scene is rendered in 3 discrete stages, ambient (or pre-lighting), per-light (once per light, with shadowing) and decal (or post-lighting). Usually OGRE figures out how to categorise your passes automatically, but there are some effects you cannot achieve without manually controlling the illumination. For example specular effects are muted by the typical sequence because all textures are saved until the IS_DECAL stage which mutes the specular effect. Instead, you could do texturing within the per-light stage if it's possible for your material and thus add the specular on after the decal texturing, and have no post-light rendering.

  If you assign an illumination stage to a pass you have to assign it to all passes in the technique otherwise it will be ignored. Also note that whilst you can have more than one pass in each group, they cannot alternate, ie all ambient passes will be before all per-light passes, which will also be before all decal passes. Within their categories the passes will retain their ordering though.

Definition at line 1698 of file OgrePass.h.

## setIteratePerLight()

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

Sets whether or not this pass should iterate per light or number of lights 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 (or the number of times set in setPassIterationCount), 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 per light, or for a group of 'n' lights each time which can affect this object, the number of times set in setPassIterationCount (default is once). 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 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. Also, the iteration is started from the 'start light' as set in Pass::setStartLight, and the number of passes is the number of lights to iterate over divided by the number of lights per iteration (default 1, set by setLightCountPerIteration).

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

## setIterationDepthBias()

void Ogre::Pass::setIterationDepthBias | ( | float | biasPerIteration | ) |

Sets a factor which derives an additional depth bias from the number of times a pass is iterated.

Remarks
  The Final depth bias will be the constant depth bias as set through setDepthBias, plus this value times the iteration number.

## setLightClipPlanesEnabled()

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

Gets whether or not this pass will be clipped by user clips planes bounding the area covered by the light.

Remarks
  In order to cut down on the geometry set up to render this pass when you have a single fixed-range light being rendered through it, you can enable this option to request that during triangle setup, clip planes are defined to bound the range of the light. In the case of a point light these planes form a cube, and in the case of a spotlight they form a pyramid. Directional lights are never clipped.

  This option is only likely to be useful for multipass additive lighting algorithms, where the scene has already been 'seeded' with an ambient pass and this pass is just adding light in affected areas. In addition, it will only be honoured if there is exactly one non-directional light being used in this pass. Also, these clip planes override any user clip planes set on Camera.

Note
  When using SHADOWTYPE_STENCIL_ADDITIVE or SHADOWTYPE_TEXTURE_ADDITIVE, this option is automatically used for all per-light passes if you enable SceneManager::setShadowUseLightClipPlanes and does not need to be specified. It is disabled by default since clip planes have a cost of their own which may not always exceed the benefits they give you.

Definition at line 1671 of file OgrePass.h.

## setLightCountPerIteration()

void Ogre::Pass::setLightCountPerIteration | ( | unsigned short | c | ) |

If light iteration is enabled, determine the number of lights per iteration.

Remarks
  The default for this setting is 1, so if you enable light iteration (Pass::setIteratePerLight), the pass is rendered once per light. If you set this value higher, the passes will occur once per 'n' lights. The start of the iteration is set by Pass::setStartLight and the end by Pass::setMaxSimultaneousLights.

## setLightingEnabled()

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.

## setLightMask()

void Ogre::Pass::setLightMask | ( | uint32 | mask | ) |

Sets the light mask which can be matched to specific light flags to be handled by this pass.

## setLightScissoringEnabled()

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

Sets whether or not this pass will be clipped by a scissor rectangle encompassing the lights that are being used in it.

Remarks
  In order to cut down on fillrate when you have a number of fixed-range lights in the scene, you can enable this option to request that during rendering, only the region of the screen which is covered by the lights is rendered. This region is the screen-space rectangle covering the union of the spheres making up the light ranges. Directional lights are ignored for this.

  This is only likely to be useful for multipass additive lighting algorithms, where the scene has already been 'seeded' with an ambient pass and this pass is just adding light in affected areas.

Note
  When using SHADOWTYPE_STENCIL_ADDITIVE or SHADOWTYPE_TEXTURE_ADDITIVE, this option is implicitly used for all per-light passes and does not need to be specified. If you are not using shadows or are using a modulative or an integrated shadow technique then this could be useful.

Definition at line 1642 of file OgrePass.h.

## setManualCullingMode()

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

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

Remarks
  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

## setMaxSimultaneousLights()

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.

## setName()

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

## setNormaliseNormals()

void Ogre::Pass::setNormaliseNormals | ( | bool | normalise | ) |

If set to true, this forces normals to be normalised dynamically by the hardware for this pass.

Remarks
  This option can be used to prevent lighting variations when scaling an object - normally because this scaling is hardware based, the normals get scaled too which causes lighting to become inconsistent. By default the SceneManager detects scaled objects and does this for you, but this has an overhead so you might want to turn that off through SceneManager::setNormaliseNormalsOnScale(false) and only do it per-Pass when you need to.

Definition at line 1557 of file OgrePass.h.

## setPassIterationCount()

void Ogre::Pass::setPassIterationCount | ( | const size_t | count | ) |

set the number of iterations that this pass should perform when doing fast multi pass operation.

Remarks
  Only applicable for programmable passes.

Parameters

  count

  number of iterations to perform fast multi pass operations. A value greater than 1 will cause the pass to be executed count number of times without changing the render state. This is very useful for passes that use programmable shaders that have to iterate more than once but don't need a render state change. Using multi pass can dramatically speed up rendering for materials that do things like fur, blur. A value of 1 turns off multi pass operation and the pass does the normal pass operation.

Definition at line 1603 of file OgrePass.h.

## setPointAttenuation()

void Ogre::Pass::setPointAttenuation | ( | bool | enabled,
|  | Real | constant = `0.0f`,
|  | Real | linear = `1.0f`,
|  | Real | quadratic = `0.0f`
| ) |  |

Sets how points are attenuated with distance.

Remarks
  When performing point rendering or point sprite rendering, point size can be attenuated with distance. The equation for doing this is attenuation = 1 / (constant + linear * dist + quadratic * d^2).

  For example, to disable distance attenuation (constant screensize) you would set constant to 1, and linear and quadratic to 0. A standard perspective attenuation would be 0, 1, 0 respectively.

Note
  The resulting size is clamped to the minimum and maximum point size.

Parameters

  enabled | Whether point attenuation is enabled
  constant | Parameters to the attenuation function defined above
  linear | Parameters to the attenuation function defined above
  quadratic | Parameters to the attenuation function defined above

## setPointMaxSize()

void Ogre::Pass::setPointMaxSize | ( | Real | max | ) |

Set the maximum point size, when point attenuation is in use.

Remarks
  Setting this to 0 indicates the max size supported by the card.

## setPointMinSize()

void Ogre::Pass::setPointMinSize | ( | Real | min | ) |

Set the minimum point size, when point attenuation is in use.

## setPointSize()

void Ogre::Pass::setPointSize | ( | Real | ps | ) |

Sets the point size of this pass.

Remarks
  This setting allows you to change the size of points when rendering a point list, or a list of point sprites. The interpretation of this command depends on the Pass::setPointSizeAttenuation option - if it is off (the default), the point size is in screen pixels, if it is on, it expressed as normalised screen coordinates (1.0 is the height of the screen) when the point is at the origin.

Note
  Some drivers have an upper limit on the size of points they support
  - this can even vary between APIs on the same card! Don't rely on point sizes that cause the point sprites to get very large on screen, since they may get clamped on some cards. Upper sizes can range from 64 to 256 pixels.

## setPointSpritesEnabled()

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

Sets whether or not rendering points using OT_POINT_LIST will render point sprites (textured quads) or plain points (dots).

Parameters

  enabled | True enables point sprites, false returns to normal point rendering.

## setPolygonMode()

void Ogre::Pass::setPolygonMode | ( | PolygonMode | mode | ) |

Sets the type of polygon rendering required.

Note
  The default shading method is Solid

## setPolygonModeOverrideable()

virtual void Ogre::Pass::setPolygonModeOverrideable | ( | bool | override | ) |

virtual

Sets whether this pass's chosen detail level can be overridden (downgraded) by the camera setting.

Parameters

  override | true means that a lower camera detail will override this pass's detail level, false means it won't (default true).

Definition at line 945 of file OgrePass.h.

## setSceneBlending() [1/2]

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

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

Remarks
  Whereas 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

## setSceneBlending() [2/2]

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
  Whereas 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: final = (texture * sourceFactor) + (pixel * destFactor)

  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.

## setSceneBlendingOperation()

void Ogre::Pass::setSceneBlendingOperation | ( | SceneBlendOperation | op | ) |

Sets the specific operation used to blend source and destination pixels together.

Remarks
  By default this operation is +, which creates this equation final = (texture * sourceFactor) + (pixel * destFactor) By setting this to something other than SBO_ADD you can change the operation to achieve a different effect.

Parameters

  op | The blending operation mode to use for this pass

## setSelfIllumination() [1/2]

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.

## setSelfIllumination() [2/2]

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.

## setSeparateSceneBlending() [1/2]

void Ogre::Pass::setSeparateSceneBlending | ( | const SceneBlendType | sbt,
|  | const SceneBlendType | sbta
| ) |  |

Sets the kind of blending this pass has with the existing contents of the scene, separately for color and alpha channels.

Remarks
  Whereas 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 for the color channel
  sbta | One of the predefined SceneBlendType blending types for the alpha channel

## setSeparateSceneBlending() [2/2]

void Ogre::Pass::setSeparateSceneBlending | ( | const SceneBlendFactor | sourceFactor,
|  | const SceneBlendFactor | destFactor,
|  | const SceneBlendFactor | sourceFactorAlpha,
|  | const SceneBlendFactor | destFactorAlpha
| ) |  |

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

Remarks
  Whereas 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: final = (texture * sourceFactor) + (pixel * destFactor)

  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.
  sourceFactorAlpha | The alpha source factor in the above calculation, i.e. multiplied by the texture alpha component.
  destFactorAlpha | The alpha destination factor in the above calculation, i.e. multiplied by the pixel alpha component.

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

## setSeparateSceneBlendingOperation()

void Ogre::Pass::setSeparateSceneBlendingOperation | ( | SceneBlendOperation | op,
|  | SceneBlendOperation | alphaOp
| ) |  |

Sets the specific operation used to blend source and destination pixels together.

Remarks
  By default this operation is +, which creates this equation final = (texture * sourceFactor) + (pixel * destFactor) By setting this to something other than SBO_ADD you can change the operation to achieve a different effect. This function allows more control over blending since it allows you to select different blending modes for the color and alpha channels

Parameters

  op | The blending operation mode to use for color channels in this pass
  alphaOp | The blending operation mode to use for alpha channels in this pass

## setShadingMode()

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

Sets the type of light shading required.

Note
  The default shading method is Gouraud shading.

## setShadowCasterFragmentProgram()

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

Sets the details of the fragment 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 implementors 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 explicit fragment program alternative is not set.

## setShadowCasterFragmentProgramParameters()

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

Sets the fragment 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.

## setShadowCasterVertexProgram()

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 implementors 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 explicit vertex program alternative is not set.

## setShadowCasterVertexProgramParameters()

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.

## setShadowReceiverFragmentProgram()

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

This method allows you to specify a fragment program for use when rendering a texture shadow receiver.

Remarks
  Texture shadows are applied by rendering the receiver. Modulative texture shadows are performed as a post-render darkening pass, and as such fragment programs are generally not required per-object. Additive texture shadows, however, are applied by accumulating light masked out using a texture shadow (black & white by default, unless you customise this using SceneManager::setCustomShadowCasterMaterial). OGRE can do this for you for most materials, but if you use a custom lighting program (e.g. per pixel lighting) then you'll need to provide a custom version for receiving shadows. You don't need to provide this for shadow casters if you don't use self-shadowing since they will never be shadow receivers too.

  The shadow texture is always bound to texture unit 0 when rendering texture shadow passes. Therefore your custom shadow receiver program may well just need to shift it's texture unit usage up by one unit, and take the shadow texture into account in its calculations.

## setShadowReceiverFragmentProgramParameters()

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

Sets the fragment 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.

## setShadowReceiverVertexProgram()

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 implementors 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.

## setShadowReceiverVertexProgramParameters()

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.

## setShininess()

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.

## setSpecular() [1/2]

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.

## setSpecular() [2/2]

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.

## setStartLight()

void Ogre::Pass::setStartLight | ( | unsigned short | startLight | ) |

Sets the light index that this pass will start at in the light list.

Remarks
  Normally the lights passed to a pass will start from the beginning of the light list for this object. This option allows you to make this pass start from a higher light index, for example if one of your earlier passes could deal with lights 0-3, and this pass dealt with lights 4+. This option also has an interaction with pass iteration, in that if you choose to iterate this pass per light too, the iteration will only begin from light 4.

## setTesselationDomainProgram()

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

Sets the details of the tesselation domain program to use.

Remarks
  Only applicable to programmable passes, this sets the details of the Tesselation domain 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 Tesselation domain 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.

## setTesselationDomainProgramParameters()

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

Sets the Tesselation Domain program parameters.

Remarks
  Only applicable to programmable passes.

## setTesselationHullProgram()

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

Support for shader model 5.0, hull and domain shaders.

Sets the details of the tesselation control program to use.

Remarks
  Only applicable to programmable passes, this sets the details of the Tesselation Hull 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 Tesselation Hull 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.

## setTesselationHullProgramParameters()

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

Sets the Tesselation Hull program parameters.

Remarks
  Only applicable to programmable passes.

## setTextureAnisotropy()

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

## setTextureFiltering()

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

## setTransparentSortingEnabled()

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

Sets whether or not transparent sorting is enabled.

Parameters

  enabled | If false depth sorting of this material will be disabled.

Remarks
  By default all transparent materials are sorted such that renderables furthest away from the camera are rendered first. This is usually the desired behaviour but in certain cases this depth sorting may be unnecessary and undesirable. If for example it is necessary to ensure the rendering order does not change from one frame to the next.

Note
  This will have no effect on non-transparent materials.

## setTransparentSortingForced()

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

Sets whether or not transparent sorting is forced.

Parameters

  enabled | If true depth sorting of this material will be depend only on the value of getTransparentSortingEnabled().

Remarks
  By default even if transparent sorting is enabled, depth sorting will only be performed when the material is transparent and depth write/check are disabled. This function disables these extra conditions.

## setVertexColourTracking()

void Ogre::Pass::setVertexColourTracking | ( | TrackVertexColourType | tracking | ) |

Sets which material properties follow the vertex colour.

## setVertexProgram()

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.

## setVertexProgramParameters()

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.

## Member Data Documentation

## mAlphaBlendOperation

SceneBlendOperation Ogre::Pass::mAlphaBlendOperation

protected

Definition at line 128 of file OgrePass.h.

## mAlphaRejectFunc

CompareFunction Ogre::Pass::mAlphaRejectFunc

protected

Definition at line 148 of file OgrePass.h.

## mAlphaRejectVal

unsigned char Ogre::Pass::mAlphaRejectVal

protected

Definition at line 149 of file OgrePass.h.

## mAlphaToCoverageEnabled

bool Ogre::Pass::mAlphaToCoverageEnabled

protected

Definition at line 150 of file OgrePass.h.

## mAmbient

ColourValue Ogre::Pass::mAmbient

protected

Needs to be dirtied when next loaded.

Definition at line 107 of file OgrePass.h.

## mBlendOperation

SceneBlendOperation Ogre::Pass::mBlendOperation

protected

Definition at line 127 of file OgrePass.h.

## mColourWrite

bool Ogre::Pass::mColourWrite

protected

Colour buffer settings.

Definition at line 145 of file OgrePass.h.

## mComputeProgramUsage

GpuProgramUsage* Ogre::Pass::mComputeProgramUsage

protected

Compute program details.

Definition at line 220 of file OgrePass.h.

## mContentTypeLookupBuilt

bool Ogre::Pass::mContentTypeLookupBuilt

mutable protected

Definition at line 236 of file OgrePass.h.

## mCullMode

CullingMode Ogre::Pass::mCullMode

protected

Definition at line 160 of file OgrePass.h.

## mDepthBiasConstant

float Ogre::Pass::mDepthBiasConstant

protected

Definition at line 140 of file OgrePass.h.

## mDepthBiasPerIteration

float Ogre::Pass::mDepthBiasPerIteration

protected

Definition at line 142 of file OgrePass.h.

## mDepthBiasSlopeScale

float Ogre::Pass::mDepthBiasSlopeScale

protected

Definition at line 141 of file OgrePass.h.

## mDepthCheck

bool Ogre::Pass::mDepthCheck

protected

Definition at line 137 of file OgrePass.h.

## mDepthFunc

CompareFunction Ogre::Pass::mDepthFunc

protected

Definition at line 139 of file OgrePass.h.

## mDepthWrite

bool Ogre::Pass::mDepthWrite

protected

Definition at line 138 of file OgrePass.h.

## mDestBlendFactor

SceneBlendFactor Ogre::Pass::mDestBlendFactor

protected

Definition at line 118 of file OgrePass.h.

## mDestBlendFactorAlpha

SceneBlendFactor Ogre::Pass::mDestBlendFactorAlpha

protected

Definition at line 120 of file OgrePass.h.

## mDiffuse

ColourValue Ogre::Pass::mDiffuse

protected

Definition at line 108 of file OgrePass.h.

## mEmissive

ColourValue Ogre::Pass::mEmissive

protected

Definition at line 110 of file OgrePass.h.

## mFogColour

ColourValue Ogre::Pass::mFogColour

protected

Definition at line 191 of file OgrePass.h.

## mFogDensity

Real Ogre::Pass::mFogDensity

protected

Definition at line 194 of file OgrePass.h.

## mFogEnd

Real Ogre::Pass::mFogEnd

protected

Definition at line 193 of file OgrePass.h.

## mFogMode

FogMode Ogre::Pass::mFogMode

protected

Definition at line 190 of file OgrePass.h.

## mFogOverride

bool Ogre::Pass::mFogOverride

protected

Definition at line 189 of file OgrePass.h.

## mFogStart

Real Ogre::Pass::mFogStart

protected

Definition at line 192 of file OgrePass.h.

## mFragmentProgramUsage

GpuProgramUsage* Ogre::Pass::mFragmentProgramUsage

protected

Fragment program details.

Definition at line 210 of file OgrePass.h.

## mGeometryProgramUsage

GpuProgramUsage* Ogre::Pass::mGeometryProgramUsage

protected

Geometry program details.

Definition at line 214 of file OgrePass.h.

## mHash

uint32 Ogre::Pass::mHash

protected

Optional name for the pass.

Definition at line 103 of file OgrePass.h.

## mHashDirtyQueued

bool Ogre::Pass::mHashDirtyQueued

protected

Pass hash.

Definition at line 104 of file OgrePass.h.

## mIlluminationStage

IlluminationStage Ogre::Pass::mIlluminationStage

protected

Illumination stage?

Definition at line 242 of file OgrePass.h.

## mIndex

unsigned short Ogre::Pass::mIndex

protected

Definition at line 101 of file OgrePass.h.

## mIteratePerLight

bool Ogre::Pass::mIteratePerLight

protected

Run this pass once per light?

Definition at line 171 of file OgrePass.h.

## mLightClipPlanes

bool Ogre::Pass::mLightClipPlanes

protected

User clip planes for light?

Definition at line 240 of file OgrePass.h.

## mLightingEnabled

bool Ogre::Pass::mLightingEnabled

protected

Lighting enabled?

Definition at line 165 of file OgrePass.h.

## mLightMask

uint32 Ogre::Pass::mLightMask

protected

With a specific light mask?

Definition at line 178 of file OgrePass.h.

## mLightScissoring

bool Ogre::Pass::mLightScissoring

protected

Scissoring for the light?

Definition at line 238 of file OgrePass.h.

## mLightsPerIteration

unsigned short Ogre::Pass::mLightsPerIteration

protected

Iterate per how many lights?

Definition at line 173 of file OgrePass.h.

## mManualCullMode

ManualCullingMode Ogre::Pass::mManualCullMode

protected

Definition at line 161 of file OgrePass.h.

## mMaxSimultaneousLights

unsigned short Ogre::Pass::mMaxSimultaneousLights

protected

Max simultaneous lights.

Definition at line 167 of file OgrePass.h.

## mName

String Ogre::Pass::mName

protected

Pass index.

Definition at line 102 of file OgrePass.h.

## mNormaliseNormals

bool Ogre::Pass::mNormaliseNormals

protected

Normalisation.

Definition at line 185 of file OgrePass.h.

## mOnlyLightType

Light::LightTypes Ogre::Pass::mOnlyLightType

protected

Definition at line 176 of file OgrePass.h.

## mParent

Technique* Ogre::Pass::mParent

protected

Definition at line 100 of file OgrePass.h.

## mPassIterationCount

size_t Ogre::Pass::mPassIterationCount

protected

Number of pass iterations to perform.

Definition at line 224 of file OgrePass.h.

## mPointAttenuationCoeffs

Real Ogre::Pass::mPointAttenuationCoeffs[3]

protected

Constant, linear, quadratic coeffs.

Definition at line 232 of file OgrePass.h.

## mPointAttenuationEnabled

bool Ogre::Pass::mPointAttenuationEnabled

protected

Definition at line 230 of file OgrePass.h.

## mPointMaxSize

Real Ogre::Pass::mPointMaxSize

protected

Definition at line 228 of file OgrePass.h.

## mPointMinSize

Real Ogre::Pass::mPointMinSize

protected

Definition at line 227 of file OgrePass.h.

## mPointSize

Real Ogre::Pass::mPointSize

protected

Point size, applies when not using per-vertex point size.

Definition at line 226 of file OgrePass.h.

## mPointSpritesEnabled

bool Ogre::Pass::mPointSpritesEnabled

protected

Definition at line 229 of file OgrePass.h.

## mPolygonMode

PolygonMode Ogre::Pass::mPolygonMode

protected

Polygon mode.

Definition at line 183 of file OgrePass.h.

## mPolygonModeOverrideable

bool Ogre::Pass::mPolygonModeOverrideable

protected

Definition at line 186 of file OgrePass.h.

## mQueuedForDeletion

bool Ogre::Pass::mQueuedForDeletion

protected

Is this pass queued for deletion?

Definition at line 222 of file OgrePass.h.

## mRunOnlyForOneLightType

bool Ogre::Pass::mRunOnlyForOneLightType

protected

Should it only be run for a certain light type?

Definition at line 175 of file OgrePass.h.

## msDirtyHashList

PassSet Ogre::Pass::msDirtyHashList

static protected

List of Passes whose hashes need recalculating.

Definition at line 254 of file OgrePass.h.

## mSeparateBlend

bool Ogre::Pass::mSeparateBlend

protected

Definition at line 123 of file OgrePass.h.

## mSeparateBlendOperation

bool Ogre::Pass::mSeparateBlendOperation

protected

Determines if we should use separate blending operations for color and alpha channels.

Definition at line 131 of file OgrePass.h.

## mShadeOptions

ShadeOptions Ogre::Pass::mShadeOptions

protected

Shading options.

Definition at line 181 of file OgrePass.h.

## mShadowCasterFragmentProgramUsage

GpuProgramUsage* Ogre::Pass::mShadowCasterFragmentProgramUsage

protected

Fragment program details.

Definition at line 206 of file OgrePass.h.

## mShadowCasterVertexProgramUsage

GpuProgramUsage* Ogre::Pass::mShadowCasterVertexProgramUsage

protected

Vertex program details.

Definition at line 204 of file OgrePass.h.

## mShadowContentTypeLookup

ContentTypeLookup Ogre::Pass::mShadowContentTypeLookup

mutable protected

Definition at line 235 of file OgrePass.h.

## mShadowReceiverFragmentProgramUsage

GpuProgramUsage* Ogre::Pass::mShadowReceiverFragmentProgramUsage

protected

Fragment program details.

Definition at line 212 of file OgrePass.h.

## mShadowReceiverVertexProgramUsage

GpuProgramUsage* Ogre::Pass::mShadowReceiverVertexProgramUsage

protected

Vertex program details.

Definition at line 208 of file OgrePass.h.

## msHashFunc

HashFunc* Ogre::Pass::msHashFunc

static protected

The Pass hash functor.

Definition at line 258 of file OgrePass.h.

## mShininess

Real Ogre::Pass::mShininess

protected

Definition at line 111 of file OgrePass.h.

## mSourceBlendFactor

SceneBlendFactor Ogre::Pass::mSourceBlendFactor

protected

Definition at line 117 of file OgrePass.h.

## mSourceBlendFactorAlpha

SceneBlendFactor Ogre::Pass::mSourceBlendFactorAlpha

protected

Definition at line 119 of file OgrePass.h.

## msPassGraveyard

PassSet Ogre::Pass::msPassGraveyard

static protected

The place where passes go to die.

Definition at line 256 of file OgrePass.h.

## mSpecular

ColourValue Ogre::Pass::mSpecular

protected

Definition at line 109 of file OgrePass.h.

## mStartLight

unsigned short Ogre::Pass::mStartLight

protected

Starting light index.

Definition at line 169 of file OgrePass.h.

## mTesselationDomainProgramUsage

GpuProgramUsage* Ogre::Pass::mTesselationDomainProgramUsage

protected

Tesselation domain program details.

Definition at line 218 of file OgrePass.h.

## mTesselationHullProgramUsage

GpuProgramUsage* Ogre::Pass::mTesselationHullProgramUsage

protected

Tesselation hull program details.

Definition at line 216 of file OgrePass.h.

## mTextureUnitStates

TextureUnitStates Ogre::Pass::mTextureUnitStates

protected

Definition at line 199 of file OgrePass.h.

## mTracking

TrackVertexColourType Ogre::Pass::mTracking

protected

Definition at line 112 of file OgrePass.h.

## mTransparentSorting

bool Ogre::Pass::mTransparentSorting

protected

Transparent depth sorting.

Definition at line 153 of file OgrePass.h.

## mTransparentSortingForced

bool Ogre::Pass::mTransparentSortingForced

protected

Transparent depth sorting forced.

Definition at line 155 of file OgrePass.h.

## mUserObjectBindings

UserObjectBindings Ogre::Pass::mUserObjectBindings

protected

User objects binding.

Definition at line 244 of file OgrePass.h.

## mVertexProgramUsage

GpuProgramUsage* Ogre::Pass::mVertexProgramUsage

protected

Vertex program details.

Definition at line 202 of file OgrePass.h.

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

- OgrePass.h

Copyright © 2012 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.