A group of manually updated parameters that are shared between many parameter sets.
More...
|
| GpuSharedParameters (const String &name) |
|
const HardwareBufferPtr & | _getHardwareBuffer () const |
| Internal method that the RenderSystem might use to store optional data. More...
|
|
void | _markClean () |
| Mark the shared set as being clean (values successfully updated by the render system). More...
|
|
void | _markDirty () |
| Mark the shared set as being dirty (values modified and not yet updated in render system). More...
|
|
void | _setHardwareBuffer (const HardwareBufferPtr &data) |
| Internal method that the RenderSystem might use to store optional data. More...
|
|
void | _upload () const |
| upload parameter data to GPU memory. Must have a HardwareBuffer More...
|
|
void | addConstantDefinition (const String &name, GpuConstantType constType, uint32 arraySize=1) |
| Add a new constant definition to this shared set of parameters. More...
|
|
size_t | calculateSize (void) const |
| Calculate the expected size of the shared parameter buffer based on constant definition data types. More...
|
|
void | download () |
| download data from GPU memory. Must have a writable HardwareBuffer More...
|
|
const GpuConstantDefinition & | getConstantDefinition (const String &name) const |
| Get a specific GpuConstantDefinition for a named parameter. More...
|
|
GpuConstantDefinitionIterator | getConstantDefinitionIterator (void) const |
|
const GpuNamedConstants & | getConstantDefinitions () const |
| Get the full list of GpuConstantDefinition instances. More...
|
|
const ConstantList & | getConstantList () const |
| Get a reference to the list of constants. More...
|
|
double * | getDoublePointer (size_t pos) |
| Get a pointer to the 'nth' item in the double buffer. More...
|
|
const double * | getDoublePointer (size_t pos) const |
| Get a pointer to the 'nth' item in the double buffer. More...
|
|
float * | getFloatPointer (size_t pos) |
| Get a pointer to the 'nth' item in the float buffer. More...
|
|
const float * | getFloatPointer (size_t pos) const |
| Get a pointer to the 'nth' item in the float buffer. More...
|
|
int * | getIntPointer (size_t pos) |
| Get a pointer to the 'nth' item in the int buffer. More...
|
|
const int * | getIntPointer (size_t pos) const |
| Get a pointer to the 'nth' item in the int buffer. More...
|
|
const String & | getName () |
| Get the name of this shared parameter set. More...
|
|
uint * | getUnsignedIntPointer (size_t pos) |
| Get a pointer to the 'nth' item in the uint buffer. More...
|
|
const uint * | getUnsignedIntPointer (size_t pos) const |
| Get a pointer to the 'nth' item in the uint buffer. More...
|
|
uint32 | getVersion () const |
| Get the version number of this shared parameter set, can be used to identify when changes have occurred. More...
|
|
bool | isDirty () const |
| True if this parameter set is dirty (values have been modified, but the render system has not updated them yet). More...
|
|
void | removeAllConstantDefinitions () |
| Remove a constant definition from this shared set of parameters. More...
|
|
void | removeConstantDefinition (const String &name) |
|
template<typename T > |
void | setNamedConstant (const String &name, T val) |
| Sets a single value constant parameter to the program. More...
|
|
template<int dims, typename T > |
void | setNamedConstant (const String &name, const Vector< dims, T > &vec) |
|
void | setNamedConstant (const String &name, const Matrix4 &m) |
|
void | setNamedConstant (const String &name, const Matrix4 *m, uint32 numEntries) |
| Sets a list of Matrix4 parameters to the program. More...
|
|
void | setNamedConstant (const String &name, const float *val, uint32 count) |
|
void | setNamedConstant (const String &name, const double *val, uint32 count) |
|
void | setNamedConstant (const String &name, const ColourValue &colour) |
|
void | setNamedConstant (const String &name, const int *val, uint32 count) |
|
void | setNamedConstant (const String &name, const uint *val, uint32 count) |
|
A group of manually updated parameters that are shared between many parameter sets.
Sometimes you want to set some common parameters across many otherwise different parameter sets, and keep them all in sync together. This class allows you to define a set of parameters that you can share across many parameter sets and have the parameters that match automatically be pulled from the shared set, rather than you having to set them on all the parameter sets individually.
- Parameters in a shared set are matched up with instances in a GpuProgramParameters structure by matching names. It is up to you to define the named parameters that a shared set contains, and ensuring the definition matches.
- Note
- Shared parameter sets can be named, and looked up using the GpuProgramManager.
template<typename T >
void Ogre::GpuSharedParameters::setNamedConstant |
( |
const String & |
name, |
|
|
T |
val |
|
) |
| |
|
inline |
Sets a single value constant parameter to the program.
Different types of GPU programs support different types of constant parameters. For example, it's relatively common to find that vertex programs only support floating point constants, and that fragment programs only support integer (fixed point) parameters. This can vary depending on the program version supported by the graphics card being used. You should consult the documentation for the type of low level program you are using, or alternatively use the methods provided on RenderSystemCapabilities to determine the options.
Another possible limitation is that some systems only allow constants to be set on certain boundaries, e.g. in sets of 4 values for example. Again, see RenderSystemCapabilities for full details.
- Note
- This named option will only work if you are using a parameters object created from a high-level program (HighLevelGpuProgram).
- Parameters
-
name | The name of the parameter |
val | The value to set |