## 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 (csShaderVarStack &stacks) const =0
| Push the variables of this context onto the variable stacks supplied in the "stacks" argument.
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 72 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 csShaderVariableContext.

Referenced by GetVariableAdd().

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

| Remove all variables from this context. Implemented in csShaderVariableContext.

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

| Get Array of all ShaderVariables. Implemented in csShaderVariableContext.

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

| Get a named variable from this context. Implemented in csShaderVariableContext. Referenced by GetVariableAdd().

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

| Like GetVariable(), but it also adds it if doesn't exist already. Definition at line 87 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 csShaderVariableContext.

virtual void iShaderVariableContext::PushVariables | ( | csShaderVarStack & | stacks | ) | const`[pure virtual]`

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

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 csShaderVariableContext.

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

- ivideo/shader/shader.h