OGRE-Next  4.0.0unstable
Object-Oriented Graphics Rendering Engine
Ogre::ShaderParams Class Reference

The purpose of this class is to contain a set of both auto and manual parameters that may apply to multiple shaders; without having the shader to be created first (the drawback of GpuProgramParameters). More...

#include <OgreShaderParams.h>

+ Inheritance diagram for Ogre::ShaderParams:

Classes

struct  AutoParam
 
struct  ManualParam
 
struct  ManualParamEx
 
struct  Param
 

Public Types

enum  ElementType { ElementInt , ElementUInt , ElementFloat }
 
typedef vector< Param >::type ParamVec
 

Public Member Functions

 ShaderParams ()
 
ParamfindParameter (const String &name)
 Finds a parameter. More...
 
uint32 getUpdateCounter () const
 
bool removeParameterNoThrow (const String &name)
 Removes a parameter if it matches the name. More...
 
void setDirty ()
 Call this whenever you've updated a parameter in mParams. More...
 
void updateParameters (GpuProgramParametersSharedPtr params, bool bForce)
 

Public Attributes

ParamVec mParams
 
bool mSilenceMissingParameterWarnings
 Don't log exceptions about missing parameters. More...
 
uint32 mUpdateCounter
 

Detailed Description

The purpose of this class is to contain a set of both auto and manual parameters that may apply to multiple shaders; without having the shader to be created first (the drawback of GpuProgramParameters).

Useful when loading an Hlms material via JSON (e.g. a Compute Job) which may generate multiple shaders depending on the property settings.
Parameters are kept unsorted in mParams

Member Typedef Documentation

◆ ParamVec

typedef vector<Param>::type Ogre::ShaderParams::ParamVec

Member Enumeration Documentation

◆ ElementType

Enumerator
ElementInt 
ElementUInt 
ElementFloat 

Constructor & Destructor Documentation

◆ ShaderParams()

Ogre::ShaderParams::ShaderParams ( )

Member Function Documentation

◆ findParameter()

Param* Ogre::ShaderParams::findParameter ( const String name)

Finds a parameter.

Returns null if not found. This operation is O(N) as it makes a linear search. You can cache the return pointer (as long as the iterators from mParams aren't invalidated)

◆ getUpdateCounter()

uint32 Ogre::ShaderParams::getUpdateCounter ( ) const
inline

◆ removeParameterNoThrow()

bool Ogre::ShaderParams::removeParameterNoThrow ( const String name)

Removes a parameter if it matches the name.

Remarks
You shouldn't have multiple parameters with the same name. But if you do, then we will only remove the first match. You can call this function again until all matches are removed (beware of O(N^2) behavior though!)

Calling this function may alter the order of entries in mParams!

Parameters
name
Returns
Returns true if we removed a parameter with such name. Returns false if said parameter couldn't be found.

◆ setDirty()

void Ogre::ShaderParams::setDirty ( )
inline

Call this whenever you've updated a parameter in mParams.

◆ updateParameters()

void Ogre::ShaderParams::updateParameters ( GpuProgramParametersSharedPtr  params,
bool  bForce 
)

Member Data Documentation

◆ mParams

ParamVec Ogre::ShaderParams::mParams

◆ mSilenceMissingParameterWarnings

bool Ogre::ShaderParams::mSilenceMissingParameterWarnings

Don't log exceptions about missing parameters.

◆ mUpdateCounter

uint32 Ogre::ShaderParams::mUpdateCounter

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