## 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 "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...

## Typedefs

typedef csArray< csShaderVariable * > | csShaderVarStack
| A "shader variable stack".

## Enumerations

enum | csShaderTagPresence { TagNeutral, TagForbidden, TagRequired }
| Possible settings regarding a techique tag's presence. More...

## Functions

static csShaderVariable * | csGetShaderVariableFromStack (const csShaderVarStack &stack, const csStringID &name)
| Helper function to retrieve a single value from a shader variable stack.

## 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 46 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 130 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 58 of file shader.h. References csInvalidStringID, and csArray< T, ElementHandler, MemoryAllocator >::Length(). Referenced by csShaderProgram::GetParamFloatVal(), csShaderProgram::GetParamTransformVal(), and csShaderProgram::GetParamVectorVal().