| ## Public API Reference

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

- File List
- File Members

# ivideo/shader/shader.h File Reference

Shader-related interfaces. More...

`#include "csutil/scf.h"`
`#include "iutil/array.h"`
`#include "csgfx/shadervar.h"`
`#include "csutil/array.h"`
`#include "csutil/refarr.h"`
`#include "csutil/set.h"`
`#include "csutil/strset.h"`

Go to the source code of this file.

## Classes
struct | csShaderMetadata
| Shader metadata. More...
struct | iShader
| Specific shader. More...
struct | iShaderCompiler
| Compiler of shaders. More...
struct | iShaderManager
| A manager for all shaders. More...
struct | iShaderPriorityList
| A list of priorities as returned by iShaderCompiler->GetPriorities(). More...
struct | iShaderVariableContext
| This is a baseclass for all interfaces which provides shadervariables both dynamically and static. More...
struct | iShaderVarStack
typedef csArray< csShaderVariable * > | csShaderVarStack
| A "shader variable stack".
static csShaderVariable * | csGetShaderVariableFromStack (const iShaderVarStack *stack, const csStringID &name)
static csShaderVariable * | csGetShaderVariableFromStack (const csShaderVarStack &stack, const csStringID &name)
| Helper function to retrieve a single value from a shader variable stack.
## Enumerations
enum | csShaderTagPresence { TagNeutral, TagForbidden, TagRequired }
| Possible settings regarding a techique tag's presence. More...

## Detailed Description

Shader-related interfaces.

Definition in file shader.h.

## Typedef Documentation

typedef csArray<csShaderVariable*> csShaderVarStack

A "shader variable stack".

Stores a list of shader variables, indexed by it's name.

Definition at line 48 of file shader.h.

## Enumeration Type Documentation

enum csShaderTagPresence

Possible settings regarding a techique tag's presence.

Enumerator:

  TagNeutral | The tag is neither required nor forbidden. However, it's priority still contributes to technique selection.
  TagForbidden | Techniques were this tag is present are rejected to be loaded.
  TagRequired | Techniques are required to have one such tag. If at least one required tag exists and no required tag is present in a technique, it doesn't validate.

Definition at line 152 of file shader.h.

## Function Documentation

static csShaderVariable* csGetShaderVariableFromStack | ( | const csShaderVarStack & | stack,
|  | const csStringID & | name |
| ) |  |  | `[inline, static]`

Helper function to retrieve a single value from a shader variable stack.

Definition at line 67 of file shader.h.

References csInvalidStringID, and csArray< T, ElementHandler, MemoryAllocator, CapacityHandler >::Length().

Referenced by csShaderProgram::GetParamFloatVal(), csShaderProgram::GetParamTransformVal(), and csShaderProgram::GetParamVectorVal().