OGRE: Ogre::GpuSharedParameters Class Reference - OGRE Documentation

Public Member Functions | Protected Attributes

# Ogre::GpuSharedParameters Class Reference
[Materials]

A group of manually updated parameters that are shared between many parameter sets. More...

`#include <OgreGpuProgramParams.h>`

Inheritance diagram for Ogre::GpuSharedParameters:
[legend]

List of all members.

## Public Member Functions
| GpuSharedParameters (const String &name)
virtual | ~GpuSharedParameters ()
const String & | getName ()
| Get the name of this shared parameter set.
void | addConstantDefinition (const String &name, GpuConstantType constType, size_t arraySize=1)
| Add a new constant definition to this shared set of parameters.
void | removeConstantDefinition (const String &name)
| Remove a constant definition from this shared set of parameters.
void | removeAllConstantDefinitions ()
| Remove a constant definition from this shared set of parameters.
unsigned long | getVersion () const
| Get the version number of this shared parameter set, can be used to identify when changes have occurred.
void | _markDirty ()
| Mark the shared set as being dirty (values modified).
size_t | getFrameLastUpdated () const
| Get the frame in which this shared parameter set was last updated.
GpuConstantDefinitionIterator | getConstantDefinitionIterator (void) const
| Gets an iterator over the named GpuConstantDefinition instances as defined by the user.
const GpuConstantDefinition & | getConstantDefinition (const String &name) const
| Get a specific GpuConstantDefinition for a named parameter.
const GpuNamedConstants & | getConstantDefinitions () const
| Get the full list of GpuConstantDefinition instances.
void | setNamedConstant (const String &name, Real val)
void | setNamedConstant (const String &name, int val)
void | setNamedConstant (const String &name, const Vector4 &vec)
void | setNamedConstant (const String &name, const Vector3 &vec)
void | setNamedConstant (const String &name, const Matrix4 &m)
void | setNamedConstant (const String &name, const Matrix4 *m, size_t numEntries)
void | setNamedConstant (const String &name, const float *val, size_t count)
void | setNamedConstant (const String &name, const double *val, size_t count)
void | setNamedConstant (const String &name, const ColourValue &colour)
void | setNamedConstant (const String &name, const int *val, size_t count)
float * | getFloatPointer (size_t pos)
| Get a pointer to the 'nth' item in the float buffer.
const float * | getFloatPointer (size_t pos) const
| Get a pointer to the 'nth' item in the float buffer.
int * | getIntPointer (size_t pos)
| Get a pointer to the 'nth' item in the int buffer.
const int * | getIntPointer (size_t pos) const
| Get a pointer to the 'nth' item in the int buffer.
void | _setRenderSystemData (const Any &data) const
| Internal method that the RenderSystem might use to store optional data.
const Any & | _getRenderSystemData () const
| Internal method that the RenderSystem might use to store optional data.
void * | operator new (size_t sz, const char *file, int line, const char *func)
| operator new, with debug line info
void * | operator new (size_t sz)
void * | operator new (size_t sz, void *ptr)
| placement operator new
void * | operator new[] (size_t sz, const char *file, int line, const char *func)
| array operator new, with debug line info
void * | operator new[] (size_t sz)
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 *)
## Protected Attributes
GpuNamedConstants | mNamedConstants
FloatConstantList | mFloatConstants
IntConstantList | mIntConstants
String | mName
Any | mRenderSystemData
size_t | mFrameLastUpdated
| Not used when copying data, but might be useful to RS using shared buffers.
unsigned long | mVersion
| Version number of the definitions in this buffer.

## Detailed Description

A group of manually updated parameters that are shared between many parameter sets.

Remarks:
  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.

Definition at line 387 of file OgreGpuProgramParams.h.

## Constructor & Destructor Documentation

Ogre::GpuSharedParameters::GpuSharedParameters | ( | const String & | name | ) |

virtual Ogre::GpuSharedParameters::~GpuSharedParameters | ( |  | ) | `[virtual]`

## Member Function Documentation

const Any& Ogre::GpuSharedParameters::_getRenderSystemData | ( |  | ) | const

Internal method that the RenderSystem might use to store optional data.

Definition at line 489 of file OgreGpuProgramParams.h.

void Ogre::GpuSharedParameters::_markDirty | ( |  | ) |

Mark the shared set as being dirty (values modified).

Remarks:
  You do not need to call this yourself, set is marked as dirty whenever setNamedConstant or (non const) getFloatPointer et al are called.

void Ogre::GpuSharedParameters::_setRenderSystemData | ( | const Any & | data | ) | const

Internal method that the RenderSystem might use to store optional data.

Definition at line 487 of file OgreGpuProgramParams.h.

void Ogre::GpuSharedParameters::addConstantDefinition | ( | const String & | name,
|  | GpuConstantType | constType,
|  | size_t | arraySize = `1` |
| ) |  |  |

Add a new constant definition to this shared set of parameters.

Remarks:
  Unlike GpuProgramParameters, where the parameter list is defined by the program being compiled, this shared parameter set is defined by the user. Only parameters which have been predefined here may be later updated.

const GpuConstantDefinition& Ogre::GpuSharedParameters::getConstantDefinition | ( | const String & | name | ) | const

Get a specific GpuConstantDefinition for a named parameter.

GpuConstantDefinitionIterator Ogre::GpuSharedParameters::getConstantDefinitionIterator | ( | void |  | ) | const

Gets an iterator over the named GpuConstantDefinition instances as defined by the user.

const GpuNamedConstants& Ogre::GpuSharedParameters::getConstantDefinitions | ( |  | ) | const

Get the full list of GpuConstantDefinition instances.

float* Ogre::GpuSharedParameters::getFloatPointer | ( | size_t | pos | ) |

Get a pointer to the 'nth' item in the float buffer.

Definition at line 477 of file OgreGpuProgramParams.h.

const float* Ogre::GpuSharedParameters::getFloatPointer | ( | size_t | pos | ) | const

Get a pointer to the 'nth' item in the float buffer.

Definition at line 479 of file OgreGpuProgramParams.h.

size_t Ogre::GpuSharedParameters::getFrameLastUpdated | ( |  | ) | const

Get the frame in which this shared parameter set was last updated.

Definition at line 440 of file OgreGpuProgramParams.h.

int* Ogre::GpuSharedParameters::getIntPointer | ( | size_t | pos | ) |

Get a pointer to the 'nth' item in the int buffer.

Definition at line 481 of file OgreGpuProgramParams.h.

const int* Ogre::GpuSharedParameters::getIntPointer | ( | size_t | pos | ) | const

Get a pointer to the 'nth' item in the int buffer.

Definition at line 483 of file OgreGpuProgramParams.h.

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

Get the name of this shared parameter set.

Definition at line 409 of file OgreGpuProgramParams.h.

unsigned long Ogre::GpuSharedParameters::getVersion | ( |  | ) | const

Get the version number of this shared parameter set, can be used to identify when changes have occurred.

Definition at line 431 of file OgreGpuProgramParams.h.

template<class Alloc >

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

Definition at line 95 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

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

Definition at line 101 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

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

Definition at line 107 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

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

Definition at line 118 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

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

Definition at line 112 of file OgreMemoryAllocatedObject.h.

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 67 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

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

Definition at line 72 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

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

placement operator new

Definition at line 78 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

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

Definition at line 90 of file OgreMemoryAllocatedObject.h.

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 85 of file OgreMemoryAllocatedObject.h.

void Ogre::GpuSharedParameters::removeAllConstantDefinitions | ( |  | ) |

Remove a constant definition from this shared set of parameters.

void Ogre::GpuSharedParameters::removeConstantDefinition | ( | const String & | name | ) |

Remove a constant definition from this shared set of parameters.

void Ogre::GpuSharedParameters::setNamedConstant | ( | const String & | name,
|  | const Vector3 & | vec |
| ) |  |  |

Sets a single value constant floating-point parameter to the program.

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

void Ogre::GpuSharedParameters::setNamedConstant | ( | const String & | name,
|  | const float * | val,
|  | size_t | count |
| ) |  |  |

Sets a single value constant floating-point parameter to the program.

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

void Ogre::GpuSharedParameters::setNamedConstant | ( | const String & | name,
|  | const Matrix4 * | m,
|  | size_t | numEntries |
| ) |  |  |

Sets a single value constant floating-point parameter to the program.

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

void Ogre::GpuSharedParameters::setNamedConstant | ( | const String & | name,
|  | const Matrix4 & | m |
| ) |  |  |

Sets a single value constant floating-point parameter to the program.

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

void Ogre::GpuSharedParameters::setNamedConstant | ( | const String & | name,
|  | const double * | val,
|  | size_t | count |
| ) |  |  |

Sets a single value constant floating-point parameter to the program.

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

void Ogre::GpuSharedParameters::setNamedConstant | ( | const String & | name,
|  | Real | val |
| ) |  |  |

Sets a single value constant floating-point parameter to the program.

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

void Ogre::GpuSharedParameters::setNamedConstant | ( | const String & | name,
|  | const int * | val,
|  | size_t | count |
| ) |  |  |

Sets a single value constant floating-point parameter to the program.

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

void Ogre::GpuSharedParameters::setNamedConstant | ( | const String & | name,
|  | int | val |
| ) |  |  |

Sets a single value constant floating-point parameter to the program.

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

void Ogre::GpuSharedParameters::setNamedConstant | ( | const String & | name,
|  | const ColourValue & | colour |
| ) |  |  |

Sets a single value constant floating-point parameter to the program.

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

void Ogre::GpuSharedParameters::setNamedConstant | ( | const String & | name,
|  | const Vector4 & | vec |
| ) |  |  |

Sets a single value constant floating-point parameter to the program.

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

## Member Data Documentation

FloatConstantList Ogre::GpuSharedParameters::mFloatConstants`[protected]`

Definition at line 391 of file OgreGpuProgramParams.h.

size_t Ogre::GpuSharedParameters::mFrameLastUpdated`[protected]`

Not used when copying data, but might be useful to RS using shared buffers.

Definition at line 399 of file OgreGpuProgramParams.h.

IntConstantList Ogre::GpuSharedParameters::mIntConstants`[protected]`

Definition at line 392 of file OgreGpuProgramParams.h.

String Ogre::GpuSharedParameters::mName`[protected]`

Definition at line 393 of file OgreGpuProgramParams.h.

GpuNamedConstants Ogre::GpuSharedParameters::mNamedConstants`[protected]`

Definition at line 390 of file OgreGpuProgramParams.h.

Any Ogre::GpuSharedParameters::mRenderSystemData`[mutable, protected]`

Definition at line 396 of file OgreGpuProgramParams.h.

unsigned long Ogre::GpuSharedParameters::mVersion`[protected]`

Version number of the definitions in this buffer.

Definition at line 402 of file OgreGpuProgramParams.h.

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

- OgreGpuProgramParams.h

Copyright © 2008 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Wed Nov 3 2010 19:24:55