Developer Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
GLSL Namespace Reference

This namespace contains all the classes and functions for handling GLSL shader and program objects. More...

Classes

class  ComputeShader
 GLSL compute shader. More...
 
class  FragmentShader
 GLSL fragment shader. More...
 
class  GeometryShader
 GLSL geometry shader. More...
 
class  Program
 GLSL program class. More...
 
class  Shader
 A generic shader base class. More...
 
class  UniformPool
 GLSL uniform pool. More...
 
class  VertexShader
 GLSL vertex shader. More...
 

Typedefs

typedef std::list< std::string > StringList
 
typedef ShaderPtrShader
 
typedef const ShaderPtrConstShader
 
typedef VertexShaderPtrVertexShader
 
typedef const VertexShaderPtrVertexConstShader
 
typedef FragmentShaderPtrFragmentShader
 
typedef const FragmentShaderPtrConstFragmentShader
 
typedef GeometryShaderPtrGeometryShader
 
typedef const GeometryShaderPtrConstGeometryShader
 
typedef ComputeShaderPtrComputeShader
 
typedef const ComputeShaderPtrConstComputeShader
 
typedef ProgramPtrProgram
 
typedef const ProgramPtrConstProgram
 
typedef UniformPoolPtrUniformPool
 
typedef const UniformPoolPtrConstUniformPool
 

Functions

void loadShaderRec (const char *filename, bool appendNewLineChar, std::map< QString, int > &includeMap, GLSL::StringList &shaderSource)
 Loads the shader source and all recursive includes. More...
 
GLSL::StringList loadShader (const char *filename, const GLSL::StringList *macros, bool appendNewLineChar, GLSL::StringList *outIncludes)
 Loads the shader source. More...
 
GLSL::PtrVertexShader loadVertexShader (const char *name, const GLSL::StringList *macros, bool verbose)
 Loads, compiles and installs a new vertex shader.
 
GLSL::PtrFragmentShader loadFragmentShader (const char *name, const GLSL::StringList *macros, bool verbose)
 Loads, compiles and installs a new vertex shader.
 
GLSL::PtrGeometryShader loadGeometryShader (const char *name, const GLSL::StringList *macros, bool verbose)
 Loads, compiles and installs a new vertex shader.
 
GLSL::PtrShader loadTessControlShader (const char *name, const GLSL::StringList *macros, bool verbose)
 Loads, compiles and installs a new tessellation control shader.
 
GLSL::PtrShader loadTessEvaluationShader (const char *name, const GLSL::StringList *macros, bool verbose)
 Loads, compiles and installs a new tessellation evaluation shader.
 
GLSL::PtrComputeShader loadComputeShader (const char *name, const GLSL::StringList *macros, bool verbose)
 Loads, compiles and installs a new compute shader.
 
GLSL::PtrProgram loadProgram (const char *vertexShaderFile, const char *tessControlShaderFile, const char *tessEvaluationShaderFile, const char *geometryShaderFile, const char *fragmentShaderFile, const GLSL::StringList *macros, bool verbose)
 
GLSL::PtrProgram loadProgram (const char *vertexShaderFile, const char *geometryShaderFile, const char *fragmentShaderFile, const GLSL::StringList *macros, bool verbose)
 
GLSL::PtrProgram loadProgram (const char *vertexShaderFile, const char *fragmentShaderFile, const GLSL::StringList *macros, bool verbose)
 
GLSL::PtrProgram loadComputeProgram (const char *computeShaderFile, const GLSL::StringList *macros, bool verbose)
 

Detailed Description

This namespace contains all the classes and functions for handling GLSL shader and program objects.

Function Documentation

GLSL::PtrProgram ACGDLLEXPORT GLSL::loadComputeProgram ( const char *  computeShaderFile,
const GLSL::StringList *  macros = 0,
bool  verbose = true 
)

load glsl compute shader and create GLSL program if successful

Shader file paths for this function are assumed to be relative to the "Shader" directory as specified in ShaderProgGenerator::getShaderDir()

Definition at line 1160 of file GLSLShader.cc.

GLSL::PtrProgram ACGDLLEXPORT GLSL::loadProgram ( const char *  vertexShaderFile,
const char *  tessControlShaderFile,
const char *  tessEvaluationShaderFile,
const char *  geometryShaderFile,
const char *  fragmentShaderFile,
const GLSL::StringList *  macros = 0,
bool  verbose = true 
)

load shaders and create GLSL program if successful

Shader file paths for this function are assumed to be relative to the "Shader" directory as specified in ShaderProgGenerator::getShaderDir()

Definition at line 1082 of file GLSLShader.cc.

GLSL::PtrProgram ACGDLLEXPORT GLSL::loadProgram ( const char *  vertexShaderFile,
const char *  geometryShaderFile,
const char *  fragmentShaderFile,
const GLSL::StringList *  macros = 0,
bool  verbose = true 
)

load shaders and create GLSL program if successful

Shader file paths for this function are assumed to be relative to the "Shader" directory as specified in ShaderProgGenerator::getShaderDir()

Definition at line 1149 of file GLSLShader.cc.

GLSL::PtrProgram ACGDLLEXPORT GLSL::loadProgram ( const char *  vertexShaderFile,
const char *  fragmentShaderFile,
const GLSL::StringList *  macros = 0,
bool  verbose = true 
)

load shaders and create GLSL program if successful

Shader file paths for this function are assumed to be relative to the "Shader" directory as specified in ShaderProgGenerator::getShaderDir()

Definition at line 1155 of file GLSLShader.cc.

GLSL::StringList ACGDLLEXPORT GLSL::loadShader ( const char *  filename,
const GLSL::StringList *  macros,
bool  appendNewLineChar,
GLSL::StringList *  outIncludes 
)

Loads the shader source.

The shader is assumed to be placed in ../shader relative to the executable's installation directory, if the path is a relative one. If it is determined that the path is absolute, the path is taken as is. Macros are inserted directly after the #version directive. According to glsl spec, only comments and white space are allowed before #version.

Parameters
filenamefilename of shader
macros[in] preprocessor macros (optional)
appendNewLineCharshould each string in the StringList end on a '
'
outIncludes[out] additional files that were loaded to resolve #include directives.

Definition at line 927 of file GLSLShader.cc.

void GLSL::loadShaderRec ( const char *  filename,
bool  appendNewLineChar,
std::map< QString, int > &  includeMap,
GLSL::StringList &  shaderSource 
)

Loads the shader source and all recursive includes.

The shader is assumed to be placed in ../shader relative to the executable's installation directory, if the path is a relativ one. If it is determined that the path is absolute, the path is taken as is. Included files via the #include directive are recursively resolved. The include-map prevents getting stuck in an include loop.

Definition at line 861 of file GLSLShader.cc.