## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# csShaderVariable Class Reference
[3D]

Storage class for "shader vars", inheritable variables in the shader system. More...

`#include <csgfx/shadervar.h>`

Inheritance diagram for csShaderVariable:

[legend]
List of all members.

## Public Types

enum | VariableType { INT = 1, FLOAT, COLOR, TEXTURE, RENDERBUFFER, VECTOR2, VECTOR3, VECTOR4, MATRIX, TRANSFORM, ARRAY }
| Data types that can be stored. More...

## Public Member Functions

| csShaderVariable (const csShaderVariable &other)
| csShaderVariable (csStringID name)
| Construct with name.
| csShaderVariable ()
| Construct without a name.
csShaderVariable * | GetArrayElement (size_t element)
| Get a specific element in an array variable Do not hold on to this for long, since it might change if the array size changes.
size_t | GetArraySize ()
| Get the number of elements in an array variable.
csStringID | GetName () const
| Get the name of the variable.
VariableType | GetType () const
| Get type of data stored.
bool | GetValue (csReversibleTransform &value)
| Retrieve a csReversibleTransform.
bool | GetValue (csMatrix3 &value)
| Retrieve a csMatrix3.
bool | GetValue (csVector4 &value)
| Retrieve a csVector4.
bool | GetValue (csColor &value)
| Retrieve a csColor.
bool | GetValue (csVector3 &value)
| Retrieve a csVector3.
bool | GetValue (csVector2 &value)
| Retrieve a csVector2.
bool | GetValue (iRenderBuffer *&value)
| Retrieve a iRenderBuffer.
bool | GetValue (iTextureWrapper *&value)
| Retrieve a texture wrapper.
bool | GetValue (iTextureHandle *&value)
| Retrieve a texture handle.
bool | GetValue (csRGBpixel &value)
| Retrieve a color.
bool | GetValue (float &value)
| Retrieve a float.
bool | GetValue (int &value)
| Retrieve an int.
void | SetAccessor (iShaderVariableAccessor *a)
| Set an accessor to use when getting the value.
void | SetArrayElement (size_t element, csShaderVariable *variable)
| Set a specific element in an array variable.
void | SetArraySize (size_t size)
| Set the number of elements in an array variable.
void | SetName (csStringID newName)
| Set the name of the variable.
void | SetType (VariableType t)
| Set type (calling this after SetValue will cause undefined behaviour).
bool | SetValue (const csReversibleTransform &value)
| Store a csReversibleTransform.
bool | SetValue (const csMatrix3 &value)
| Store a csMatrix3.
bool | SetValue (const csVector4 &value)
| Store a csVector4.
bool | SetValue (const csColor &value)
| Store a csColor.
bool | SetValue (const csVector3 &value)
| Store a csVector3.
bool | SetValue (const csVector2 &value)
| Store a csVector2.
bool | SetValue (iRenderBuffer *value)
| Store a render buffer.
bool | SetValue (iTextureWrapper *value)
| Store a texture wrapper.
bool | SetValue (iTextureHandle *value)
| Store a texture handle.
bool | SetValue (const csRGBpixel &value)
| Store a color.
bool | SetValue (float value)
| Store a float.
bool | SetValue (int value)
| Store an int.
virtual | ~csShaderVariable ()

## Detailed Description

Storage class for "shader vars", inheritable variables in the shader system.

Shader vars are a primary system to transport information from the engine/meshes/etc. to the renderer.

Definition at line 71 of file shadervar.h.

## Member Enumeration Documentation

enum csShaderVariable::VariableType

Data types that can be stored.

Data storage and retrieval is not strict - data stored as INT, FLOAT, COLOR or any VECTORx data can also be retrieved as any other of those.

Enumerator:

  INT | Integer.
  FLOAT | Float.
  COLOR | Color.
  TEXTURE | Texture.
  RENDERBUFFER | Renderbuffer.
  VECTOR2 | Vector with 2 components.
  VECTOR3 | Vector with 3 components.
  VECTOR4 | Vector with 4 components.
  MATRIX | Matrix.
  TRANSFORM | Transform.
  ARRAY | Array.

Definition at line 79 of file shadervar.h.

## Constructor & Destructor Documentation

csShaderVariable::csShaderVariable | ( |  | ) |

| Construct without a name. SetName() must be called before the variable can be used.

csShaderVariable::csShaderVariable | ( | csStringID | name | ) |

| Construct with name.

## Member Function Documentation

csShaderVariable* csShaderVariable::GetArrayElement | ( | size_t | element | ) | `[inline]`

| Get a specific element in an array variable Do not hold on to this for long, since it might change if the array size changes. Definition at line 424 of file shadervar.h.

size_t csShaderVariable::GetArraySize | ( |  | ) | `[inline]`

| Get the number of elements in an array variable. Definition at line 411 of file shadervar.h.

csStringID csShaderVariable::GetName | ( |  | ) | const`[inline]`

| Get the name of the variable. Definition at line 160 of file shadervar.h.

VariableType csShaderVariable::GetType | ( |  | ) | const`[inline]`

| Get type of data stored. Definition at line 145 of file shadervar.h.

bool csShaderVariable::GetValue | ( | csReversibleTransform & | value | ) | `[inline]`

| Retrieve a csReversibleTransform. Definition at line 264 of file shadervar.h.

bool csShaderVariable::GetValue | ( | csMatrix3 & | value | ) | `[inline]`

| Retrieve a csMatrix3. Definition at line 248 of file shadervar.h.

bool csShaderVariable::GetValue | ( | csVector4 & | value | ) | `[inline]`

| Retrieve a csVector4. Definition at line 240 of file shadervar.h.

bool csShaderVariable::GetValue | ( | csColor & | value | ) | `[inline]`

| Retrieve a csColor. Definition at line 232 of file shadervar.h. References csColor::Set().

bool csShaderVariable::GetValue | ( | csVector3 & | value | ) | `[inline]`

| Retrieve a csVector3. Definition at line 224 of file shadervar.h. References csVector3::Set().

bool csShaderVariable::GetValue | ( | csVector2 & | value | ) | `[inline]`

| Retrieve a csVector2. Definition at line 216 of file shadervar.h. References csVector2::Set().

bool csShaderVariable::GetValue | ( | iRenderBuffer *& | value | ) | `[inline]`

| Retrieve a iRenderBuffer. Definition at line 208 of file shadervar.h.

bool csShaderVariable::GetValue | ( | iTextureWrapper *& | value | ) | `[inline]`

| Retrieve a texture wrapper. Definition at line 200 of file shadervar.h.

bool csShaderVariable::GetValue | ( | iTextureHandle *& | value | ) | `[inline]`

| Retrieve a texture handle. Definition at line 190 of file shadervar.h.

bool csShaderVariable::GetValue | ( | csRGBpixel & | value | ) | `[inline]`

| Retrieve a color. Definition at line 179 of file shadervar.h. References csRGBpixel::alpha, csRGBpixel::blue, csRGBpixel::green, and csRGBpixel::red.

bool csShaderVariable::GetValue | ( | float & | value | ) | `[inline]`

| Retrieve a float. Definition at line 171 of file shadervar.h.

bool csShaderVariable::GetValue | ( | int & | value | ) | `[inline]`

| Retrieve an int. Definition at line 163 of file shadervar.h.

void csShaderVariable::SetAccessor | ( | iShaderVariableAccessor * | a | ) | `[inline]`

| Set an accessor to use when getting the value. Definition at line 150 of file shadervar.h.

void csShaderVariable::SetArrayElement | ( | size_t | element,
|  | csShaderVariable * | variable
| ) | `[inline]`

| Set a specific element in an array variable. Definition at line 436 of file shadervar.h.

void csShaderVariable::SetArraySize | ( | size_t | size | ) | `[inline]`

| Set the number of elements in an array variable. Definition at line 401 of file shadervar.h.

void csShaderVariable::SetName | ( | csStringID | newName | ) | `[inline]`

Set the name of the variable.

Warning:
  Changing the name of a variable while it's in use can cause inexpected behaviour.

Definition at line 157 of file shadervar.h.

void csShaderVariable::SetType | ( | VariableType | t | ) | `[inline]`

| Set type (calling this after SetValue will cause undefined behaviour). Definition at line 147 of file shadervar.h.

bool csShaderVariable::SetValue | ( | const csReversibleTransform & | value | ) | `[inline]`

| Store a csReversibleTransform. Definition at line 386 of file shadervar.h.

bool csShaderVariable::SetValue | ( | const csMatrix3 & | value | ) | `[inline]`

| Store a csMatrix3. Definition at line 371 of file shadervar.h.

bool csShaderVariable::SetValue | ( | const csVector4 & | value | ) | `[inline]`

| Store a csVector4. Definition at line 362 of file shadervar.h. References csVector4T< T >::w, csVector4T< T >::x, csVector4T< T >::y, and csVector4T< T >::z.

bool csShaderVariable::SetValue | ( | const csColor & | value | ) | `[inline]`

| Store a csColor. Definition at line 353 of file shadervar.h. References csColor::blue, csColor::green, and csColor::red.

bool csShaderVariable::SetValue | ( | const csVector3 & | value | ) | `[inline]`

| Store a csVector3. Definition at line 344 of file shadervar.h. References csVector3::x, csVector3::y, and csVector3::z.

bool csShaderVariable::SetValue | ( | const csVector2 & | value | ) | `[inline]`

| Store a csVector2. Definition at line 335 of file shadervar.h. References csVector2::x, and csVector2::y.

bool csShaderVariable::SetValue | ( | iRenderBuffer * | value | ) | `[inline]`

| Store a render buffer. Definition at line 327 of file shadervar.h.

bool csShaderVariable::SetValue | ( | iTextureWrapper * | value | ) | `[inline]`

| Store a texture wrapper. Definition at line 319 of file shadervar.h.

bool csShaderVariable::SetValue | ( | iTextureHandle * | value | ) | `[inline]`

| Store a texture handle. Definition at line 311 of file shadervar.h.

bool csShaderVariable::SetValue | ( | const csRGBpixel & | value | ) | `[inline]`

| Store a color. Definition at line 300 of file shadervar.h. References csRGBpixel::alpha, csRGBpixel::blue, csRGBpixel::green, and csRGBpixel::red.

bool csShaderVariable::SetValue | ( | float | value | ) | `[inline]`

| Store a float. Definition at line 291 of file shadervar.h.

bool csShaderVariable::SetValue | ( | int | value | ) | `[inline]`

| Store an int. Definition at line 281 of file shadervar.h.

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

- csgfx/shadervar.h