| ## Public API Reference

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

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

# iShaderVariableContext Struct Reference

This is a baseclass for all interfaces which provides shadervariables both dynamically and static. More...

`#include <ivideo/shader/shader.h>`

Inheritance diagram for iShaderVariableContext:

[legend]
List of all members.

## Public Member Functions
virtual void | AddVariable (csShaderVariable *variable)=0
| Add a variable to this context.
virtual void | Clear ()=0
| Remove all variables from this context.
virtual const csRefArray< csShaderVariable > & | GetShaderVariables () const =0
| Get Array of all ShaderVariables.
virtual csShaderVariable * | GetVariable (csStringID name) const =0
| Get a named variable from this context.
csShaderVariable * | GetVariableAdd (csStringID name)
| Like GetVariable(), but it also adds it if doesn't exist already.
virtual bool | IsEmpty () const =0
| Determine whether this SV context contains any variables at all.
virtual void | PushVariables (iShaderVarStack *stacks) const =0
| Push the variables of this context onto the variable stacks supplied in the "stacks" argument.
virtual bool | RemoveVariable (csShaderVariable *variable)=0
| Remove the given variable from this context.
virtual void | ReplaceVariable (csShaderVariable *variable)=0
| Replace the current variable object of the same name as variable with the latter, add variable otherwise.

## Detailed Description

This is a baseclass for all interfaces which provides shadervariables both dynamically and static.

Definition at line 93 of file shader.h.

## Member Function Documentation

virtual void iShaderVariableContext::AddVariable | ( | csShaderVariable * | variable | ) | `[pure virtual]`

Add a variable to this context.

Remarks:
  If a variable of the same name exists in the current context, its contents are replaced with those of variable.

Implemented in CS::ShaderVariableContextImpl.

Referenced by GetVariableAdd().

virtual void iShaderVariableContext::Clear | ( |  | ) | `[pure virtual]`

Remove all variables from this context.

Implemented in CS::ShaderVariableContextImpl.

virtual const csRefArray<csShaderVariable>& iShaderVariableContext::GetShaderVariables | ( |  | ) | const`[pure virtual]`

Get Array of all ShaderVariables.

Implemented in CS::ShaderVariableContextImpl.

virtual csShaderVariable* iShaderVariableContext::GetVariable | ( | csStringID | name | ) | const`[pure virtual]`

Get a named variable from this context.

Implemented in CS::ShaderVariableContextImpl.

Referenced by GetVariableAdd().

csShaderVariable* iShaderVariableContext::GetVariableAdd | ( | csStringID | name | ) | `[inline]`

Like GetVariable(), but it also adds it if doesn't exist already.

Definition at line 108 of file shader.h.

References AddVariable(), and GetVariable().

virtual bool iShaderVariableContext::IsEmpty | ( |  | ) | const`[pure virtual]`

Determine whether this SV context contains any variables at all.

Implemented in CS::ShaderVariableContextImpl.

virtual void iShaderVariableContext::PushVariables | ( | iShaderVarStack * | stacks | ) | const`[pure virtual]`

Push the variables of this context onto the variable stacks supplied in the "stacks" argument.

Implemented in CS::ShaderVariableContextImpl.

virtual bool iShaderVariableContext::RemoveVariable | ( | csShaderVariable * | variable | ) | `[pure virtual]`

Remove the given variable from this context.

Implemented in CS::ShaderVariableContextImpl.

virtual void iShaderVariableContext::ReplaceVariable | ( | csShaderVariable * | variable | ) | `[pure virtual]`

Replace the current variable object of the same name as variable with the latter, add variable otherwise.

Remarks:
  This differs from AddVariable() as this method replaces the variable *object*, not just the contents.

Implemented in CS::ShaderVariableContextImpl.

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

- ivideo/shader/shader.h