| ## Public API Reference

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

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

# iShaderCompiler Struct Reference

Compiler of shaders. More...

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

Inheritance diagram for iShaderCompiler:

[legend]
List of all members.

## Public Member Functions
virtual csPtr< iShader > | CompileShader (iLoaderContext *ldr_context, iDocumentNode *templ, int forcepriority=-1)=0
| Compile a template into a shader.
virtual const char * | GetName ()=0
| Get a name identifying this compiler.
virtual csPtr< iShaderPriorityList > | GetPriorities (iDocumentNode *templ)=0
| Return a list of all possible priorities (for techniques) for this shader.
virtual bool | IsTemplateToCompiler (iDocumentNode *templ)=0
| Check if template is parsable by this compiler.
virtual bool | ValidateTemplate (iDocumentNode *templ)=0
| Validate if a template is a valid shader to this compiler.

## Detailed Description

Compiler of shaders.

Compile from a description of the shader to a compiled shader. The exact schema for input is specific to each shader- compiler.

Definition at line 329 of file shader.h.

## Member Function Documentation

virtual csPtr<iShader> iShaderCompiler::CompileShader | ( | iLoaderContext * | ldr_context,
|  | iDocumentNode * | templ,
|  | int | forcepriority = `-1` |
| ) |  |  | `[pure virtual]`

Compile a template into a shader.

Will return 0 if it fails. If the optional 'forcepriority' parameter is given then only the technique with the given priority will be considered. If this technique fails then the shader cannot be compiled. If no priority is forced then the highest priority technique that works will be selected.

virtual const char* iShaderCompiler::GetName | ( |  | ) | `[pure virtual]`

Get a name identifying this compiler.

virtual csPtr<iShaderPriorityList> iShaderCompiler::GetPriorities | ( | iDocumentNode * | templ | ) | `[pure virtual]`

Return a list of all possible priorities (for techniques) for this shader.

This is a full list. It might also contain priorities for techniques that don't work on this hardware.

virtual bool iShaderCompiler::IsTemplateToCompiler | ( | iDocumentNode * | templ | ) | `[pure virtual]`

Check if template is parsable by this compiler.

virtual bool iShaderCompiler::ValidateTemplate | ( | iDocumentNode * | templ | ) | `[pure virtual]`

Validate if a template is a valid shader to this compiler.

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

- ivideo/shader/shader.h