| OGRE 1.11.1 Object-Oriented Graphics Rendering Engine

Classes | Typedefs | Enumerations | Enumerator | Functions | Variables
HLMS
Optional Components

High-level Material-System. More...

## Classes
class | Ogre::DefaultProperties
class | Ogre::HlmsDatablock
class | Ogre::HlmsManager
class | Ogre::HlmsMaterialBase
class | Ogre::PbsMaterial
struct | Ogre::PbsMaterial::TextureAddressing
class | Ogre::PropertyMap
struct | Ogre::PropertyMap::Property
class | Ogre::ShaderGenerator
class | Ogre::ShaderManager
class | Ogre::ShaderPiecesManager
class | Ogre::ShaderTemplate

## Typedefs
typedef std::vector< std::pair< IdString, String > > | Ogre::HlmsParamVec

## Enumerations
enum | Ogre::PbsMaterial::BlendFunction { Ogre::PbsMaterial::BF_ALPHA = 0, Ogre::PbsMaterial::BF_ALPHA_PREMUL, Ogre::PbsMaterial::BF_ADD, Ogre::PbsMaterial::BF_SUBTRACT, Ogre::PbsMaterial::BF_MULTIPLY, Ogre::PbsMaterial::BF_MULTIPLY_2X, Ogre::PbsMaterial::BF_SCREEN, Ogre::PbsMaterial::BF_OVERLAY, Ogre::PbsMaterial::BF_LIGHTEN, Ogre::PbsMaterial::BF_DARKEN, Ogre::PbsMaterial::BF_GRAIN_EXTRACT, Ogre::PbsMaterial::BF_GRAIN_MERGE, Ogre::PbsMaterial::BF_DIFFERENCE }
enum | Ogre::PbsMaterial::MapSlot { Ogre::PbsMaterial::MS_MAIN, Ogre::PbsMaterial::MS_D1, Ogre::PbsMaterial::MS_D2 }

## Functions
| Ogre::ShaderGenerator::Expression::Expression ()
| Ogre::HlmsDatablock::HlmsDatablock (GpuProgramType type, PropertyMap *propertyMap)
| Ogre::HlmsManager::HlmsManager (SceneManager *sceneManager, const String &pieseFilesResorceGroup=ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME)
| Ogre::HlmsMaterialBase::HlmsMaterialBase ()
| Ogre::PbsMaterial::PbsMaterial ()
| Ogre::PbsMaterial::PbsMaterial (const PbsMaterial &obj)
| Ogre::PropertyMap::Property::Property (IdString _keyName, int32 _value)
| Ogre::PropertyMap::PropertyMap ()
| Ogre::PbsMaterial::SamplerContainer::SamplerContainer ()
| Ogre::ShaderManager::ShaderManager (const String &pieseFilesResorceGroup)
| Ogre::ShaderPiecesManager::ShaderPiecesManager (const String &pieceFilesResorceGroup)
| Ogre::ShaderTemplate::ShaderTemplate ()
| Ogre::PbsMaterial::TextureAddressing::TextureAddressing ()
| Ogre::PbsMaterial::TextureAddressing::TextureAddressing (TextureUnitState::TextureAddressingMode inU, TextureUnitState::TextureAddressingMode inV)
virtual | Ogre::HlmsManager::~HlmsManager ()
virtual | Ogre::HlmsMaterialBase::~HlmsMaterialBase ()
virtual | Ogre::PbsMaterial::~PbsMaterial ()
virtual | Ogre::PropertyMap::~PropertyMap ()
| Ogre::ShaderManager::~ShaderManager ()
void | Ogre::HlmsDatablock::addProfile (const String &profile)
void | Ogre::HlmsManager::bind (Renderable *rend, HlmsMaterialBase *material, const String &passName)
uint32 | Ogre::calcHash (const void *data, size_t size)
uint32 | Ogre::calcHash (const String &str)
uint32 | Ogre::calcHash (const StringVector &vec)
static GpuProgramPtr | Ogre::ShaderManager::createGpuProgram (const String &name, const String &code, HlmsDatablock *dataBlock)
virtual void | Ogre::HlmsMaterialBase::createTextureUnits (Pass *pass)
| this is called once per frame if the shader has changed. (it is guaranteed that there are not texture units in the pass) More...
void | Ogre::PbsMaterial::createTextureUnits (Pass *pass)
| this is called once per frame if the shader has changed. (it is guaranteed that there are not texture units in the pass) More...
void | Ogre::ShaderPiecesManager::enumeratePieceFiles ()
ColourValue | Ogre::PbsMaterial::getAlbedo ()
ColourValue | Ogre::PbsMaterial::getF0 ()
HlmsDatablock * | Ogre::HlmsMaterialBase::getFragmentDatablock ()
GpuProgramPtr | Ogre::ShaderManager::getGpuProgram (HlmsDatablock *dataBlock)
uint32 | Ogre::ShaderTemplate::getHash ()
uint32 | Ogre::HlmsDatablock::getHash ()
uint32 | Ogre::PropertyMap::getHash ()
const String & | Ogre::HlmsDatablock::getLanguage ()
Real | Ogre::PbsMaterial::getLightRoughnessOffset ()
const StringVector & | Ogre::ShaderPiecesManager::getPieces (const String &language, GpuProgramType shaderType, bool reload=false)
const StringVector & | Ogre::HlmsDatablock::getProfileList ()
int32 | Ogre::PropertyMap::getProperty (IdString key, int32 defaultVal=0)
PropertyMap * | Ogre::HlmsDatablock::getPropertyMap ()
PropertyMap & | Ogre::HlmsMaterialBase::getPropertyMap ()
Real | Ogre::PbsMaterial::getRoughness ()
GpuProgramType | Ogre::HlmsDatablock::getShaderType ()
const String & | Ogre::ShaderTemplate::getTemplate ()
ShaderTemplate * | Ogre::HlmsDatablock::getTemplate ()
const String & | Ogre::ShaderTemplate::getTemplateFileName ()
HlmsDatablock * | Ogre::HlmsMaterialBase::getVertexDatablock ()
bool | Ogre::HlmsManager::hasBinding (Renderable *rend, const String &passName)
bool | Ogre::PropertyMap::hasProperty (IdString key)
void | Ogre::PbsMaterial::SamplerContainer::init (String n, bool hasBlendFu=false, bool hasBlendFc1=false, bool hasBlendFc2=false, bool needsGammaCorrect=false, bool hasIntens=false, bool hasMipmapC=false, TextureType texType=TEX_TYPE_2D)
void | Ogre::ShaderTemplate::load ()
virtual void | Ogre::HlmsManager::notifyRenderSingleObject (Renderable *rend, const Pass *pass, const AutoParamDataSource *source, const LightList *pLightList, bool suppressRenderStateChanges)
| Event raised when render single object started. More...
bool | Ogre::PropertyMap::Property::operator== (const Property &_r) const
bool | Ogre::PbsMaterial::TextureAddressing::operator== (const TextureAddressing &b)
bool | Ogre::OrderParamVecByKey (const std::pair< IdString, String > &_left, const std::pair< IdString, String > &_right)
static String | Ogre::ShaderGenerator::parse (String &inBuffer, PropertyMap &properties, const StringVector &pieceFiles)
virtual void | Ogre::HlmsManager::preFindVisibleObjects (SceneManager *source, SceneManager::IlluminationRenderStage irs, Viewport *v)
| Called prior to searching for visible objects in this SceneManager. More...
void | Ogre::PropertyMap::removeProperty (IdString key)
void | Ogre::PbsMaterial::setAlbedo (ColourValue val)
void | Ogre::PbsMaterial::setAlbedoTexture (MapSlot mapSlot, TexturePtr tex, TextureAddressing textureAddressing=TextureAddressing(), BlendFunction blendFunc=BF_ALPHA, float blendFactor=1)
void | Ogre::PropertyMap::setCommonProperties ()
| Inserts common properties about the current Renderable, such as hlms_skeleton hlms_uv_count, etc. More...
void | Ogre::PbsMaterial::setEnvironmentMap (TexturePtr tex, float intensityFactor=1.0f)
void | Ogre::PbsMaterial::setF0 (ColourValue val)
void | Ogre::PbsMaterial::setF0Texture (MapSlot mapSlot, TexturePtr tex, TextureAddressing textureAddressing=TextureAddressing(), BlendFunction blendFunc=BF_ALPHA, float blendFactor=1)
void | Ogre::HlmsDatablock::setLanguage (const String &language)
void | Ogre::PbsMaterial::setLightRoughnessOffset (Real val)
void | Ogre::PbsMaterial::setNormalRTexture (MapSlot mapSlot, TexturePtr tex, TextureAddressing textureAddressing=TextureAddressing(), float normalBlendFactor=1, float rBlendFactor=0)
| set texture containing normals and roughness More...
void | Ogre::PbsMaterial::setOffsetAndScale (MapSlot mapSlot, Vector2 offset, Vector2 scale)
void | Ogre::PropertyMap::setProperty (IdString key, int32 value)
void | Ogre::PbsMaterial::setRoughness (Real val)
void | Ogre::ShaderTemplate::setTemplateFileName (const String &templateFileName)
void | Ogre::HlmsDatablock::setTemplateName (const String &tamplateName)
void | Ogre::PbsMaterial::setUvSetIndex (MapSlot mapSlot, uint index)
void | Ogre::HlmsManager::unbind (Renderable *rend, const String &passName)
void | Ogre::HlmsManager::unbindAll (const String &passName)
virtual void | Ogre::HlmsMaterialBase::updatePropertyMap (Camera *camera, const LightList *pLightList)
| this is called once per frame More...
void | Ogre::PbsMaterial::updatePropertyMap (Camera *camera, const LightList *pLightList)
| this is called once per frame More...
void | Ogre::PbsMaterial::updateTextureUnits (TextureUnitState *textureUnitState, GpuProgramParametersSharedPtr fragmentParams, SamplerContainer &s, int index)
virtual void | Ogre::HlmsMaterialBase::updateUniforms (const Pass *pass, const AutoParamDataSource *source, const LightList *pLightList)
| this is called for every renderable before it is renderd with the given pass More...
void | Ogre::PbsMaterial::updateUniforms (const Pass *pass, const AutoParamDataSource *source, const LightList *pLightList)
| this is called for every renderable before it is renderd with the given pass More...

## Variables
static const IdString | Ogre::DefaultProperties::AlphaTest
float | Ogre::PbsMaterial::SamplerContainer::blendFactor1
float | Ogre::PbsMaterial::SamplerContainer::blendFactor2
BlendFunction | Ogre::PbsMaterial::SamplerContainer::blendFunc
static const IdString | Ogre::DefaultProperties::BonesPerVertex
std::vector< Expression > | Ogre::ShaderGenerator::Expression::children
static const IdString | Ogre::DefaultProperties::Colour
static const IdString | Ogre::DefaultProperties::DualParaboloidMapping
const String | Ogre::FilePatterns [] = { "_vs", "_fs", "_gs", "_ds", "_hs" }
bool | Ogre::PbsMaterial::SamplerContainer::hasBlendFactor1
bool | Ogre::PbsMaterial::SamplerContainer::hasBlendFactor2
bool | Ogre::PbsMaterial::SamplerContainer::hasBlendFunc
bool | Ogre::PbsMaterial::SamplerContainer::hasIntensity
bool | Ogre::PbsMaterial::SamplerContainer::hasMipmapCount
float | Ogre::PbsMaterial::SamplerContainer::intensity
bool | Ogre::HlmsMaterialBase::IsDirty
IdString | Ogre::PropertyMap::Property::keyName
static const IdString | Ogre::DefaultProperties::LightsAttenuation
static const IdString | Ogre::DefaultProperties::LightsDirectional
static const IdString | Ogre::DefaultProperties::LightsPoint
static const IdString | Ogre::DefaultProperties::LightsSpot
static const IdString | Ogre::DefaultProperties::LightsSpotParams
float | Ogre::PbsMaterial::SamplerContainer::mipmapCount
String | Ogre::PbsMaterial::SamplerContainer::name
bool | Ogre::PbsMaterial::SamplerContainer::needsGammaCorrection
bool | Ogre::ShaderGenerator::Expression::negated
static const IdString | Ogre::DefaultProperties::Normal
static const IdString | Ogre::DefaultProperties::NumShadowMaps
static const IdString | Ogre::DefaultProperties::Pose
static const IdString | Ogre::DefaultProperties::PssmSplits
static const IdString | Ogre::DefaultProperties::QTangent
bool | Ogre::ShaderGenerator::Expression::result
static const IdString | Ogre::DefaultProperties::ShadowCaster
static const IdString | Ogre::DefaultProperties::Skeleton
| These are "default" or "Base" properties common to many implementations and thus defined here. More...
SamplerStatus | Ogre::PbsMaterial::SamplerContainer::status
static const IdString | Ogre::DefaultProperties::Tangent
TexturePtr | Ogre::PbsMaterial::SamplerContainer::tex
TextureAddressing | Ogre::PbsMaterial::SamplerContainer::textureAddressing
TextureType | Ogre::PbsMaterial::SamplerContainer::textureType
TextureUnitState * | Ogre::PbsMaterial::SamplerContainer::textureUnitState
ExpressionType | Ogre::ShaderGenerator::Expression::type
TextureUnitState::TextureAddressingMode | Ogre::PbsMaterial::TextureAddressing::u
static const IdString | Ogre::DefaultProperties::UvCount
static const IdString | Ogre::DefaultProperties::UvCount0
static const IdString | Ogre::DefaultProperties::UvCount1
static const IdString | Ogre::DefaultProperties::UvCount2
static const IdString | Ogre::DefaultProperties::UvCount3
static const IdString | Ogre::DefaultProperties::UvCount4
static const IdString | Ogre::DefaultProperties::UvCount5
static const IdString | Ogre::DefaultProperties::UvCount6
static const IdString | Ogre::DefaultProperties::UvCount7
static const IdString * | Ogre::DefaultProperties::UvCountPtrs [8]
TextureUnitState::TextureAddressingMode | Ogre::PbsMaterial::TextureAddressing::v
int32 | Ogre::PropertyMap::Property::value
String | Ogre::ShaderGenerator::Expression::value

## Detailed Description

High-level Material-System.

## Typedef Documentation

## ◆ HlmsParamVec

typedef std::vector< std::pair<IdString, String> > Ogre::HlmsParamVec

## Enumeration Type Documentation

## ◆ BlendFunction

enum Ogre::PbsMaterial::BlendFunction

Enumerator
BF_ALPHA |
BF_ALPHA_PREMUL |
BF_ADD |
BF_SUBTRACT |
BF_MULTIPLY |
BF_MULTIPLY_2X |
BF_SCREEN |
BF_OVERLAY |
BF_LIGHTEN |
BF_DARKEN |
BF_GRAIN_EXTRACT |
BF_GRAIN_MERGE |
BF_DIFFERENCE |

## ◆ MapSlot

enum Ogre::PbsMaterial::MapSlot

Enumerator
MS_MAIN |
MS_D1 |
MS_D2 |

## Function Documentation

## ◆ HlmsDatablock()

Ogre::HlmsDatablock::HlmsDatablock | ( | GpuProgramType | type,
|  | PropertyMap * | propertyMap
| ) |  |

## ◆ getPropertyMap() [1/2]

PropertyMap* Ogre::HlmsDatablock::getPropertyMap | ( |  | ) |
| inline

## ◆ getShaderType()

GpuProgramType Ogre::HlmsDatablock::getShaderType | ( |  | ) |
| inline

## ◆ getLanguage()

const String& Ogre::HlmsDatablock::getLanguage | ( | void |  | ) |
| inline

## ◆ getTemplate() [1/2]

ShaderTemplate* Ogre::HlmsDatablock::getTemplate | ( |  | ) |

## ◆ getProfileList()

const StringVector& Ogre::HlmsDatablock::getProfileList | ( |  | ) |
| inline

## ◆ setLanguage()

void Ogre::HlmsDatablock::setLanguage | ( | const String & | language | ) |

## ◆ setTemplateName()

void Ogre::HlmsDatablock::setTemplateName | ( | const String & | tamplateName | ) |

## ◆ addProfile()

void Ogre::HlmsDatablock::addProfile | ( | const String & | profile | ) |

## ◆ getHash() [1/3]

uint32 Ogre::HlmsDatablock::getHash | ( |  | ) |

## ◆ HlmsManager()

Ogre::HlmsManager::HlmsManager | ( | SceneManager * | sceneManager,
|  | const String & | pieseFilesResorceGroup = `ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME`
| ) |  |

## ◆ ~HlmsManager()

virtual Ogre::HlmsManager::~HlmsManager | ( |  | ) |
| virtual

## ◆ notifyRenderSingleObject()

virtual void Ogre::HlmsManager::notifyRenderSingleObject | ( | Renderable * | rend,
|  | const Pass * | pass,
|  | const AutoParamDataSource * | source,
|  | const LightList * | pLightList,
|  | bool | suppressRenderStateChanges
| ) |  |
| virtual

Event raised when render single object started.

Remarks
  This method is called by the SceneManager.

Parameters

  rend | The renderable that is going to be rendered.
  pass | The pass which was set.
  source | The auto parameter source used within this render call.
  pLightList | The light list in use.
  suppressRenderStateChanges | True if render state changes should be suppressed.

Implements Ogre::RenderObjectListener.

## ◆ preFindVisibleObjects()

virtual void Ogre::HlmsManager::preFindVisibleObjects | ( | SceneManager * | source,
|  | SceneManager::IlluminationRenderStage | irs,
|  | Viewport * | v
| ) |  |
| virtual

Called prior to searching for visible objects in this SceneManager.

Remarks
  Note that the render queue at this stage will be full of the last render's contents and will be cleared after this method is called.

Parameters

  source | The SceneManager instance raising this event.
  irs | The stage of illumination being dealt with. IRS_NONE for a regular render, IRS_RENDER_TO_TEXTURE for a shadow caster render.
  v | The viewport being updated. You can get the camera from here.

Reimplemented from Ogre::SceneManager::Listener.

## ◆ bind()

void Ogre::HlmsManager::bind | ( | Renderable * | rend,
|  | HlmsMaterialBase * | material,
|  | const String & | passName
| ) |  |

## ◆ unbind()

void Ogre::HlmsManager::unbind | ( | Renderable * | rend,
|  | const String & | passName
| ) |  |

## ◆ unbindAll()

void Ogre::HlmsManager::unbindAll | ( | const String & | passName | ) |

## ◆ hasBinding()

bool Ogre::HlmsManager::hasBinding | ( | Renderable * | rend,
|  | const String & | passName
| ) |  |

## ◆ HlmsMaterialBase()

Ogre::HlmsMaterialBase::HlmsMaterialBase | ( |  | ) |

## ◆ ~HlmsMaterialBase()

virtual Ogre::HlmsMaterialBase::~HlmsMaterialBase | ( |  | ) |
| virtual

## ◆ getVertexDatablock()

HlmsDatablock* Ogre::HlmsMaterialBase::getVertexDatablock | ( |  | ) |
| inline

## ◆ getFragmentDatablock()

HlmsDatablock* Ogre::HlmsMaterialBase::getFragmentDatablock | ( |  | ) |
| inline

## ◆ getPropertyMap() [2/2]

PropertyMap& Ogre::HlmsMaterialBase::getPropertyMap | ( |  | ) |
| inline

## ◆ updatePropertyMap() [1/2]

virtual void Ogre::HlmsMaterialBase::updatePropertyMap | ( | Camera * | camera,
|  | const LightList * | pLightList
| ) |  |
| inline virtual

this is called once per frame

Reimplemented in Ogre::PbsMaterial.

## ◆ createTextureUnits() [1/2]

virtual void Ogre::HlmsMaterialBase::createTextureUnits | ( | Pass * | pass | ) |
| inline virtual

this is called once per frame if the shader has changed. (it is guaranteed that there are not texture units in the pass)

Reimplemented in Ogre::PbsMaterial.

## ◆ updateUniforms() [1/2]

virtual void Ogre::HlmsMaterialBase::updateUniforms | ( | const Pass * | pass,
|  | const AutoParamDataSource * | source,
|  | const LightList * | pLightList
| ) |  |
| inline virtual

this is called for every renderable before it is renderd with the given pass

Reimplemented in Ogre::PbsMaterial.

## ◆ TextureAddressing() [1/2]

Ogre::PbsMaterial::TextureAddressing::TextureAddressing | ( |  | ) |
| inline

## ◆ TextureAddressing() [2/2]

Ogre::PbsMaterial::TextureAddressing::TextureAddressing | ( | TextureUnitState::TextureAddressingMode | inU,
|  | TextureUnitState::TextureAddressingMode | inV
| ) |  |
| inline

## ◆ operator==() [1/2]

bool Ogre::PbsMaterial::TextureAddressing::operator== | ( | const TextureAddressing & | b | ) |
| inline

References Ogre::PbsMaterial::TextureAddressing::u, and Ogre::PbsMaterial::TextureAddressing::v.

## ◆ SamplerContainer()

Ogre::PbsMaterial::SamplerContainer::SamplerContainer | ( |  | ) |
| inline

## ◆ init()

void Ogre::PbsMaterial::SamplerContainer::init | ( | String | n,
|  | bool | hasBlendFu = `false`,
|  | bool | hasBlendFc1 = `false`,
|  | bool | hasBlendFc2 = `false`,
|  | bool | needsGammaCorrect = `false`,
|  | bool | hasIntens = `false`,
|  | bool | hasMipmapC = `false`,
|  | TextureType | texType = `TEX_TYPE_2D`
| ) |  |
| inline

## ◆ PbsMaterial() [1/2]

Ogre::PbsMaterial::PbsMaterial | ( |  | ) |

## ◆ PbsMaterial() [2/2]

Ogre::PbsMaterial::PbsMaterial | ( | const PbsMaterial & | obj | ) |

## ◆ ~PbsMaterial()

virtual Ogre::PbsMaterial::~PbsMaterial | ( |  | ) |
| virtual

## ◆ setEnvironmentMap()

void Ogre::PbsMaterial::setEnvironmentMap | ( | TexturePtr | tex,
|  | float | intensityFactor = `1.0f`
| ) |  |

## ◆ getAlbedo()

ColourValue Ogre::PbsMaterial::getAlbedo | ( |  | ) |
| inline

## ◆ setAlbedo()

void Ogre::PbsMaterial::setAlbedo | ( | ColourValue | val | ) |
| inline

## ◆ getF0()

ColourValue Ogre::PbsMaterial::getF0 | ( |  | ) |
| inline

## ◆ setF0()

void Ogre::PbsMaterial::setF0 | ( | ColourValue | val | ) |
| inline

## ◆ getRoughness()

Real Ogre::PbsMaterial::getRoughness | ( |  | ) |
| inline

## ◆ setRoughness()

void Ogre::PbsMaterial::setRoughness | ( | Real | val | ) |
| inline

## ◆ getLightRoughnessOffset()

Real Ogre::PbsMaterial::getLightRoughnessOffset | ( |  | ) |
| inline

## ◆ setLightRoughnessOffset()

void Ogre::PbsMaterial::setLightRoughnessOffset | ( | Real | val | ) |
| inline

## ◆ setAlbedoTexture()

void Ogre::PbsMaterial::setAlbedoTexture | ( | MapSlot | mapSlot,
|  | TexturePtr | tex,
|  | TextureAddressing | textureAddressing = `TextureAddressing()`,
|  | BlendFunction | blendFunc = `BF_ALPHA`,
|  | float | blendFactor = `1`
| ) |  |

## ◆ setNormalRTexture()

void Ogre::PbsMaterial::setNormalRTexture | ( | MapSlot | mapSlot,
|  | TexturePtr | tex,
|  | TextureAddressing | textureAddressing = `TextureAddressing()`,
|  | float | normalBlendFactor = `1`,
|  | float | rBlendFactor = `0`
| ) |  |

set texture containing normals and roughness

## ◆ setF0Texture()

void Ogre::PbsMaterial::setF0Texture | ( | MapSlot | mapSlot,
|  | TexturePtr | tex,
|  | TextureAddressing | textureAddressing = `TextureAddressing()`,
|  | BlendFunction | blendFunc = `BF_ALPHA`,
|  | float | blendFactor = `1`
| ) |  |

## ◆ setOffsetAndScale()

void Ogre::PbsMaterial::setOffsetAndScale | ( | MapSlot | mapSlot,
|  | Vector2 | offset,
|  | Vector2 | scale
| ) |  |

## ◆ setUvSetIndex()

void Ogre::PbsMaterial::setUvSetIndex | ( | MapSlot | mapSlot,
|  | uint | index
| ) |  |

## ◆ updatePropertyMap() [2/2]

void Ogre::PbsMaterial::updatePropertyMap | ( | Camera * | camera,
|  | const LightList * | pLightList
| ) |  |
| virtual

this is called once per frame

Reimplemented from Ogre::HlmsMaterialBase.

## ◆ createTextureUnits() [2/2]

void Ogre::PbsMaterial::createTextureUnits | ( | Pass * | pass | ) |
| virtual

this is called once per frame if the shader has changed. (it is guaranteed that there are not texture units in the pass)

Reimplemented from Ogre::HlmsMaterialBase.

## ◆ updateUniforms() [2/2]

void Ogre::PbsMaterial::updateUniforms | ( | const Pass * | pass,
|  | const AutoParamDataSource * | source,
|  | const LightList * | pLightList
| ) |  |
| virtual

this is called for every renderable before it is renderd with the given pass

Reimplemented from Ogre::HlmsMaterialBase.

## ◆ updateTextureUnits()

void Ogre::PbsMaterial::updateTextureUnits | ( | TextureUnitState * | textureUnitState,
|  | GpuProgramParametersSharedPtr | fragmentParams,
|  | SamplerContainer & | s,
|  | int | index
| ) |  |

## ◆ Property()

Ogre::PropertyMap::Property::Property | ( | IdString | _keyName,
|  | int32 | _value
| ) |  |
| inline

## ◆ operator==() [2/2]

bool Ogre::PropertyMap::Property::operator== | ( | const Property & | _r | ) | const
| inline

References Ogre::PropertyMap::Property::keyName, and Ogre::PropertyMap::Property::value.

## ◆ PropertyMap()

Ogre::PropertyMap::PropertyMap | ( |  | ) |

## ◆ ~PropertyMap()

virtual Ogre::PropertyMap::~PropertyMap | ( |  | ) |
| virtual

## ◆ setCommonProperties()

void Ogre::PropertyMap::setCommonProperties | ( |  | ) |

Inserts common properties about the current Renderable, such as hlms_skeleton hlms_uv_count, etc.

## ◆ setProperty()

void Ogre::PropertyMap::setProperty | ( | IdString | key,
|  | int32 | value
| ) |  |

## ◆ hasProperty()

bool Ogre::PropertyMap::hasProperty | ( | IdString | key | ) |

## ◆ getProperty()

int32 Ogre::PropertyMap::getProperty | ( | IdString | key,
|  | int32 | defaultVal = `0`
| ) |  |

## ◆ removeProperty()

void Ogre::PropertyMap::removeProperty | ( | IdString | key | ) |

## ◆ getHash() [2/3]

uint32 Ogre::PropertyMap::getHash | ( |  | ) |

## ◆ OrderParamVecByKey()

bool Ogre::OrderParamVecByKey | ( | const std::pair< IdString, String > & | _left,
|  | const std::pair< IdString, String > & | _right
| ) |  |
| inline

## ◆ calcHash() [1/3]

uint32 Ogre::calcHash | ( | const void * | data,
|  | size_t | size
| ) |  |
| inline

References Ogre::MurmurHash3_x86_32(), and Ogre::IdString::Seed.

Referenced by Ogre::calcHash().

## ◆ calcHash() [2/3]

uint32 Ogre::calcHash | ( | const String & | str | ) |
| inline

References Ogre::calcHash().

## ◆ calcHash() [3/3]

uint32 Ogre::calcHash | ( | const StringVector & | vec | ) |
| inline

References Ogre::calcHash().

## ◆ Expression()

Ogre::ShaderGenerator::Expression::Expression | ( |  | ) |
| inline

## ◆ parse()

static String Ogre::ShaderGenerator::parse | ( | String & | inBuffer,
|  | PropertyMap & | properties,
|  | const StringVector & | pieceFiles
| ) |  |
| static

## ◆ ShaderManager()

Ogre::ShaderManager::ShaderManager | ( | const String & | pieseFilesResorceGroup | ) |

## ◆ ~ShaderManager()

Ogre::ShaderManager::~ShaderManager | ( |  | ) |

## ◆ getGpuProgram()

GpuProgramPtr Ogre::ShaderManager::getGpuProgram | ( | HlmsDatablock * | dataBlock | ) |

## ◆ createGpuProgram()

static GpuProgramPtr Ogre::ShaderManager::createGpuProgram | ( | const String & | name,
|  | const String & | code,
|  | HlmsDatablock * | dataBlock
| ) |  |
| static

## ◆ ShaderPiecesManager()

Ogre::ShaderPiecesManager::ShaderPiecesManager | ( | const String & | pieceFilesResorceGroup | ) |
| inline

## ◆ enumeratePieceFiles()

void Ogre::ShaderPiecesManager::enumeratePieceFiles | ( |  | ) |

## ◆ getPieces()

const StringVector& Ogre::ShaderPiecesManager::getPieces | ( | const String & | language,
|  | GpuProgramType | shaderType,
|  | bool | reload = `false`
| ) |  |

## ◆ ShaderTemplate()

Ogre::ShaderTemplate::ShaderTemplate | ( |  | ) |
| inline

## ◆ getTemplateFileName()

const String& Ogre::ShaderTemplate::getTemplateFileName | ( |  | ) |
| inline

## ◆ setTemplateFileName()

void Ogre::ShaderTemplate::setTemplateFileName | ( | const String & | templateFileName | ) |

## ◆ load()

void Ogre::ShaderTemplate::load | ( |  | ) |

## ◆ getTemplate() [2/2]

const String& Ogre::ShaderTemplate::getTemplate | ( |  | ) |

## ◆ getHash() [3/3]

uint32 Ogre::ShaderTemplate::getHash | ( |  | ) |

## Variable Documentation

## ◆ IsDirty

bool Ogre::HlmsMaterialBase::IsDirty

## ◆ u

TextureUnitState::TextureAddressingMode Ogre::PbsMaterial::TextureAddressing::u

Referenced by Ogre::PbsMaterial::TextureAddressing::operator==().

## ◆ v

TextureUnitState::TextureAddressingMode Ogre::PbsMaterial::TextureAddressing::v

Referenced by Ogre::PbsMaterial::TextureAddressing::operator==().

## ◆ name

String Ogre::PbsMaterial::SamplerContainer::name

## ◆ textureType

TextureType Ogre::PbsMaterial::SamplerContainer::textureType

## ◆ tex

TexturePtr Ogre::PbsMaterial::SamplerContainer::tex

## ◆ textureUnitState

TextureUnitState* Ogre::PbsMaterial::SamplerContainer::textureUnitState

## ◆ status

SamplerStatus Ogre::PbsMaterial::SamplerContainer::status

## ◆ hasIntensity

bool Ogre::PbsMaterial::SamplerContainer::hasIntensity

## ◆ intensity

float Ogre::PbsMaterial::SamplerContainer::intensity

## ◆ hasMipmapCount

bool Ogre::PbsMaterial::SamplerContainer::hasMipmapCount

## ◆ mipmapCount

float Ogre::PbsMaterial::SamplerContainer::mipmapCount

## ◆ hasBlendFunc

bool Ogre::PbsMaterial::SamplerContainer::hasBlendFunc

## ◆ blendFunc

BlendFunction Ogre::PbsMaterial::SamplerContainer::blendFunc

## ◆ hasBlendFactor1

bool Ogre::PbsMaterial::SamplerContainer::hasBlendFactor1

## ◆ blendFactor1

float Ogre::PbsMaterial::SamplerContainer::blendFactor1

## ◆ hasBlendFactor2

bool Ogre::PbsMaterial::SamplerContainer::hasBlendFactor2

## ◆ blendFactor2

float Ogre::PbsMaterial::SamplerContainer::blendFactor2

## ◆ textureAddressing

TextureAddressing Ogre::PbsMaterial::SamplerContainer::textureAddressing

## ◆ needsGammaCorrection

bool Ogre::PbsMaterial::SamplerContainer::needsGammaCorrection

## ◆ Skeleton

const IdString Ogre::DefaultProperties::Skeleton
| static

These are "default" or "Base" properties common to many implementations and thus defined here.

## ◆ BonesPerVertex

const IdString Ogre::DefaultProperties::BonesPerVertex
| static

## ◆ Pose

const IdString Ogre::DefaultProperties::Pose
| static

## ◆ Normal

const IdString Ogre::DefaultProperties::Normal
| static

## ◆ QTangent

const IdString Ogre::DefaultProperties::QTangent
| static

## ◆ Tangent

const IdString Ogre::DefaultProperties::Tangent
| static

## ◆ Colour

const IdString Ogre::DefaultProperties::Colour
| static

## ◆ UvCount

const IdString Ogre::DefaultProperties::UvCount
| static

## ◆ UvCount0

const IdString Ogre::DefaultProperties::UvCount0
| static

## ◆ UvCount1

const IdString Ogre::DefaultProperties::UvCount1
| static

## ◆ UvCount2

const IdString Ogre::DefaultProperties::UvCount2
| static

## ◆ UvCount3

const IdString Ogre::DefaultProperties::UvCount3
| static

## ◆ UvCount4

const IdString Ogre::DefaultProperties::UvCount4
| static

## ◆ UvCount5

const IdString Ogre::DefaultProperties::UvCount5
| static

## ◆ UvCount6

const IdString Ogre::DefaultProperties::UvCount6
| static

## ◆ UvCount7

const IdString Ogre::DefaultProperties::UvCount7
| static

## ◆ LightsDirectional

const IdString Ogre::DefaultProperties::LightsDirectional
| static

## ◆ LightsPoint

const IdString Ogre::DefaultProperties::LightsPoint
| static

## ◆ LightsSpot

const IdString Ogre::DefaultProperties::LightsSpot
| static

## ◆ LightsAttenuation

const IdString Ogre::DefaultProperties::LightsAttenuation
| static

## ◆ LightsSpotParams

const IdString Ogre::DefaultProperties::LightsSpotParams
| static

## ◆ DualParaboloidMapping

const IdString Ogre::DefaultProperties::DualParaboloidMapping
| static

## ◆ NumShadowMaps

const IdString Ogre::DefaultProperties::NumShadowMaps
| static

## ◆ PssmSplits

const IdString Ogre::DefaultProperties::PssmSplits
| static

## ◆ ShadowCaster

const IdString Ogre::DefaultProperties::ShadowCaster
| static

## ◆ AlphaTest

const IdString Ogre::DefaultProperties::AlphaTest
| static

## ◆ UvCountPtrs

const IdString* Ogre::DefaultProperties::UvCountPtrs[8]
| static

## ◆ keyName

IdString Ogre::PropertyMap::Property::keyName

Referenced by Ogre::PropertyMap::Property::operator==().

## ◆ value [1/2]

int32 Ogre::PropertyMap::Property::value

Referenced by Ogre::PropertyMap::Property::operator==().

## ◆ FilePatterns

const String Ogre::FilePatterns[] = { "_vs", "_fs", "_gs", "_ds", "_hs" }

## ◆ result

bool Ogre::ShaderGenerator::Expression::result

## ◆ negated

bool Ogre::ShaderGenerator::Expression::negated

## ◆ type

ExpressionType Ogre::ShaderGenerator::Expression::type

## ◆ children

std::vector<Expression> Ogre::ShaderGenerator::Expression::children

## ◆ value [2/2]

String Ogre::ShaderGenerator::Expression::value