OGRE-Next  2.3
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
 
void operator delete (void *ptr)
 
void operator delete (void *ptr, const char *, int, const char *)
 
void operator delete (void *ptr, void *)
 
void operator delete[] (void *ptr)
 
void operator delete[] (void *ptr, const char *, int, const char *)
 
void * operator new (size_t sz)
 
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 *ptr)
 placement operator new More...
 
void * operator new[] (size_t sz)
 
void * operator new[] (size_t sz, const char *file, int line, const char *func)
 array operator new, with debug line info More...
 
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

◆ operator delete() [1/3]

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr)
inlineinherited

◆ operator delete() [2/3]

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

◆ operator delete() [3/3]

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr,
void *   
)
inlineinherited

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

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete[] ( void *  ptr)
inlineinherited

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

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

◆ operator new() [1/3]

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new ( size_t  sz)
inlineinherited

◆ operator new() [2/3]

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

operator new, with debug line info

◆ operator new() [3/3]

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

placement operator new

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

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

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

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

array operator new, with debug line info

◆ 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: