LibGLShader Namespace Reference

LigbLShader is a library wrapping the functionality of OpenGL shaders (GLSL / cg) into a framework with several characteristic goals:. More...


Classes

class  FileSynchronizer
class  GLSLShader
class  GLSLShaderProgram
class  GLSLShaderVariable
class  IFeatures
class  IShader
class  IVertShader
class  IGeomShader
class  IFragShader
class  ResourceManager
class  Shader
struct  InfoLogFormat
 Used to format error and information logs. More...
class  ShaderObject
class  ShaderProgram
class  ShaderSource
class  ShaderUtil
class  ShaderVariable
class  InvalidShaderVariable

Typedefs

typedef GLuint GLhandle
typedef GLint VariableHandle
typedef std::vector< std::string > ShaderSourceRep
typedef ShaderSourceRep::iterator ShaderSourceIter
typedef
ShaderSourceRep::const_iterator 
ShaderSourceConstIter

Enumerations

enum  ShaderType {
  SHADER_TYPE_VERTEX = (1 << 0), SHADER_TYPE_GEOMETRY = (1 << 1), SHADER_TYPE_FRAGMENT = (1 << 2), SHADER_TYPE_INVALID = 0xFFFFFFFF,
  SHADER_TYPE_VERTEX = (1 << 0), SHADER_TYPE_GEOMETRY = (1 << 1), SHADER_TYPE_FRAGMENT = (1 << 2), SHADER_TYPE_INVALID = 0xFFFFFFFF
}
enum  VERBOSITY {
  VERBOSITY_QUIET = 0, VERBOSITY_NORMAL = 1, VERBOSITY_ALL = 0xffffffff, VERBOSITY_QUIET = 0,
  VERBOSITY_NORMAL = 1, VERBOSITY_ALL = 0xffffffff
}
enum  ShaderFeatures
enum  VariableValueType {
  unknown_var_t = -1, float_t, vec2_t, vec3_t,
  vec4_t, int_t, ivec2_t, ivec3_t,
  ivec4_t, bool_t, bvec2_t, bvec3_t,
  bvec4_t, mat2_t, mat3_t, mat4_t,
  unknown_var_t = -1, float_t, vec2_t, vec3_t,
  vec4_t, int_t, ivec2_t, ivec3_t,
  ivec4_t, bool_t, bvec2_t, bvec3_t,
  bvec4_t, mat2_t, mat3_t, mat4_t
}
enum  VariableSamplerType {
  unknown_sampler_t = -1, sampler1D_t = 0, sampler2D_t, sampler3D_t,
  samplerCube_t, sampler1DShadow_t, sampler2DShadow_t, samplerMax,
  unknown_sampler_t = -1, sampler1D_t = 0, sampler2D_t, sampler3D_t,
  samplerCube_t, sampler1DShadow_t, sampler2DShadow_t, samplerMax
}
enum  BindingType {
  BINDING_TYPE_UNIFORM = (1 << 0), BINDING_TYPE_ATTRIBUTE = (1 << 1), BINDING_TYPE_SAMPLER = (1 << 2), BINDING_TYPE_UNIFORM = (1 << 0),
  BINDING_TYPE_ATTRIBUTE = (1 << 1), BINDING_TYPE_SAMPLER = (1 << 2)
}
enum  ShaderType {
  SHADER_TYPE_VERTEX = (1 << 0), SHADER_TYPE_GEOMETRY = (1 << 1), SHADER_TYPE_FRAGMENT = (1 << 2), SHADER_TYPE_INVALID = 0xFFFFFFFF,
  SHADER_TYPE_VERTEX = (1 << 0), SHADER_TYPE_GEOMETRY = (1 << 1), SHADER_TYPE_FRAGMENT = (1 << 2), SHADER_TYPE_INVALID = 0xFFFFFFFF
}
enum  VERBOSITY {
  VERBOSITY_QUIET = 0, VERBOSITY_NORMAL = 1, VERBOSITY_ALL = 0xffffffff, VERBOSITY_QUIET = 0,
  VERBOSITY_NORMAL = 1, VERBOSITY_ALL = 0xffffffff
}
enum  ShaderFeatures
enum  VariableValueType {
  unknown_var_t = -1, float_t, vec2_t, vec3_t,
  vec4_t, int_t, ivec2_t, ivec3_t,
  ivec4_t, bool_t, bvec2_t, bvec3_t,
  bvec4_t, mat2_t, mat3_t, mat4_t,
  unknown_var_t = -1, float_t, vec2_t, vec3_t,
  vec4_t, int_t, ivec2_t, ivec3_t,
  ivec4_t, bool_t, bvec2_t, bvec3_t,
  bvec4_t, mat2_t, mat3_t, mat4_t
}
enum  VariableSamplerType {
  unknown_sampler_t = -1, sampler1D_t = 0, sampler2D_t, sampler3D_t,
  samplerCube_t, sampler1DShadow_t, sampler2DShadow_t, samplerMax,
  unknown_sampler_t = -1, sampler1D_t = 0, sampler2D_t, sampler3D_t,
  samplerCube_t, sampler1DShadow_t, sampler2DShadow_t, samplerMax
}
enum  BindingType {
  BINDING_TYPE_UNIFORM = (1 << 0), BINDING_TYPE_ATTRIBUTE = (1 << 1), BINDING_TYPE_SAMPLER = (1 << 2), BINDING_TYPE_UNIFORM = (1 << 0),
  BINDING_TYPE_ATTRIBUTE = (1 << 1), BINDING_TYPE_SAMPLER = (1 << 2)
}

Functions

 DECLARE_STL_TYPEDEF (std::vector< Shader * >, ShaderVector)
 DECLARE_STL_TYPEDEF (std::vector< ShaderVariable * >, VariableVector)
 DECLARE_STL_TYPEDEF2 (std::map< std::string, ShaderVariable * >, VariableMap)
std::ostream & operator<< (std::ostream &os, const ShaderSource &source)
std::ostream & operator<< (std::ostream &os, const ShaderVariable &var)

Variables

const GLhandle GLinvalid = GL_INVALID_VALUE
const VariableHandle GLinvalidHandle = -1


Detailed Description

LigbLShader is a library wrapping the functionality of OpenGL shaders (GLSL / cg) into a framework with several characteristic goals:.

Note:
LibGLShader requires OpenGL v2.0 or later

Typedef Documentation

typedef GLuint LibGLShader::GLhandle

typedef ShaderSourceRep::const_iterator LibGLShader::ShaderSourceConstIter

typedef ShaderSourceRep::iterator LibGLShader::ShaderSourceIter

typedef std::vector< std::string > LibGLShader::ShaderSourceRep


Enumeration Type Documentation

Enumerator:
BINDING_TYPE_UNIFORM  Uniform variables are constant per-primitive (per glBegin/glEnd block) ReadOnly in VertShader, GeomShader, and FragShader
BINDING_TYPE_ATTRIBUTE  Attribute variables are constant per-vertex ReadOnly in VertShader; Not available in FragShader TODO: Find out about GeomShader support
BINDING_TYPE_SAMPLER  Sampler variables bind textures to lookup functions and should be viewed as a special case of Uniform variables ReadOnly in VertShader and FragShader TODO: Find out about GeomShader support
BINDING_TYPE_UNIFORM  Uniform variables are constant per-primitive (per glBegin/glEnd block) ReadOnly in VertShader, GeomShader, and FragShader
BINDING_TYPE_ATTRIBUTE  Attribute variables are constant per-vertex ReadOnly in VertShader; Not available in FragShader TODO: Find out about GeomShader support
BINDING_TYPE_SAMPLER  Sampler variables bind textures to lookup functions and should be viewed as a special case of Uniform variables ReadOnly in VertShader and FragShader TODO: Find out about GeomShader support

Enumerator:
BINDING_TYPE_UNIFORM  Uniform variables are constant per-primitive (per glBegin/glEnd block) ReadOnly in VertShader, GeomShader, and FragShader
BINDING_TYPE_ATTRIBUTE  Attribute variables are constant per-vertex ReadOnly in VertShader; Not available in FragShader TODO: Find out about GeomShader support
BINDING_TYPE_SAMPLER  Sampler variables bind textures to lookup functions and should be viewed as a special case of Uniform variables ReadOnly in VertShader and FragShader TODO: Find out about GeomShader support
BINDING_TYPE_UNIFORM  Uniform variables are constant per-primitive (per glBegin/glEnd block) ReadOnly in VertShader, GeomShader, and FragShader
BINDING_TYPE_ATTRIBUTE  Attribute variables are constant per-vertex ReadOnly in VertShader; Not available in FragShader TODO: Find out about GeomShader support
BINDING_TYPE_SAMPLER  Sampler variables bind textures to lookup functions and should be viewed as a special case of Uniform variables ReadOnly in VertShader and FragShader TODO: Find out about GeomShader support

Enumerator:
SHADER_TYPE_VERTEX 
SHADER_TYPE_GEOMETRY 
SHADER_TYPE_FRAGMENT 
SHADER_TYPE_INVALID 
SHADER_TYPE_VERTEX 
SHADER_TYPE_GEOMETRY 
SHADER_TYPE_FRAGMENT 
SHADER_TYPE_INVALID 

Enumerator:
SHADER_TYPE_VERTEX 
SHADER_TYPE_GEOMETRY 
SHADER_TYPE_FRAGMENT 
SHADER_TYPE_INVALID 
SHADER_TYPE_VERTEX 
SHADER_TYPE_GEOMETRY 
SHADER_TYPE_FRAGMENT 
SHADER_TYPE_INVALID 

Enumerator:
unknown_sampler_t 
sampler1D_t  GL_SAMPLER_1D, GL_SAMPLER_2D, GL_SAMPLER_3D.
sampler2D_t 
sampler3D_t 
samplerCube_t  GL_SAMPLER_CUBE.
sampler1DShadow_t  GL_SAMPLER_1D_SHADOW, GL_SAMPLER_2D_SHADOW.
sampler2DShadow_t 
samplerMax 
unknown_sampler_t 
sampler1D_t  GL_SAMPLER_1D, GL_SAMPLER_2D, GL_SAMPLER_3D.
sampler2D_t 
sampler3D_t 
samplerCube_t  GL_SAMPLER_CUBE.
sampler1DShadow_t  GL_SAMPLER_1D_SHADOW, GL_SAMPLER_2D_SHADOW.
sampler2DShadow_t 
samplerMax 

Enumerator:
unknown_sampler_t 
sampler1D_t  GL_SAMPLER_1D, GL_SAMPLER_2D, GL_SAMPLER_3D.
sampler2D_t 
sampler3D_t 
samplerCube_t  GL_SAMPLER_CUBE.
sampler1DShadow_t  GL_SAMPLER_1D_SHADOW, GL_SAMPLER_2D_SHADOW.
sampler2DShadow_t 
samplerMax 
unknown_sampler_t 
sampler1D_t  GL_SAMPLER_1D, GL_SAMPLER_2D, GL_SAMPLER_3D.
sampler2D_t 
sampler3D_t 
samplerCube_t  GL_SAMPLER_CUBE.
sampler1DShadow_t  GL_SAMPLER_1D_SHADOW, GL_SAMPLER_2D_SHADOW.
sampler2DShadow_t 
samplerMax 

Enumerator:
unknown_var_t 
float_t  GL_FLOAT, GL_FLOAT_VEC2, GL_FLOAT_VEC3, GL_FLOAT_VEC4.
vec2_t 
vec3_t 
vec4_t 
int_t  GL_INT, GL_INT_VEC2, GL_INT_VEC3, GL_INT_VEC4.
ivec2_t 
ivec3_t 
ivec4_t 
bool_t  GL_BOOL, GL_BOOL_VEC2, GL_BOOL_VEC3, GL_BOOL_VEC4.
bvec2_t 
bvec3_t 
bvec4_t 
mat2_t  GL_FLOAT_MAT2, GL_FLOAT_MAT3, GL_FLOAT_MAT4.
mat3_t 
mat4_t 
unknown_var_t 
float_t  GL_FLOAT, GL_FLOAT_VEC2, GL_FLOAT_VEC3, GL_FLOAT_VEC4.
vec2_t 
vec3_t 
vec4_t 
int_t  GL_INT, GL_INT_VEC2, GL_INT_VEC3, GL_INT_VEC4.
ivec2_t 
ivec3_t 
ivec4_t 
bool_t  GL_BOOL, GL_BOOL_VEC2, GL_BOOL_VEC3, GL_BOOL_VEC4.
bvec2_t 
bvec3_t 
bvec4_t 
mat2_t  GL_FLOAT_MAT2, GL_FLOAT_MAT3, GL_FLOAT_MAT4.
mat3_t 
mat4_t 

Enumerator:
unknown_var_t 
float_t  GL_FLOAT, GL_FLOAT_VEC2, GL_FLOAT_VEC3, GL_FLOAT_VEC4.
vec2_t 
vec3_t 
vec4_t 
int_t  GL_INT, GL_INT_VEC2, GL_INT_VEC3, GL_INT_VEC4.
ivec2_t 
ivec3_t 
ivec4_t 
bool_t  GL_BOOL, GL_BOOL_VEC2, GL_BOOL_VEC3, GL_BOOL_VEC4.
bvec2_t 
bvec3_t 
bvec4_t 
mat2_t  GL_FLOAT_MAT2, GL_FLOAT_MAT3, GL_FLOAT_MAT4.
mat3_t 
mat4_t 
unknown_var_t 
float_t  GL_FLOAT, GL_FLOAT_VEC2, GL_FLOAT_VEC3, GL_FLOAT_VEC4.
vec2_t 
vec3_t 
vec4_t 
int_t  GL_INT, GL_INT_VEC2, GL_INT_VEC3, GL_INT_VEC4.
ivec2_t 
ivec3_t 
ivec4_t 
bool_t  GL_BOOL, GL_BOOL_VEC2, GL_BOOL_VEC3, GL_BOOL_VEC4.
bvec2_t 
bvec3_t 
bvec4_t 
mat2_t  GL_FLOAT_MAT2, GL_FLOAT_MAT3, GL_FLOAT_MAT4.
mat3_t 
mat4_t 

Enumerator:
VERBOSITY_QUIET 
VERBOSITY_NORMAL 
VERBOSITY_ALL 
VERBOSITY_QUIET 
VERBOSITY_NORMAL 
VERBOSITY_ALL 

Enumerator:
VERBOSITY_QUIET 
VERBOSITY_NORMAL 
VERBOSITY_ALL 
VERBOSITY_QUIET 
VERBOSITY_NORMAL 
VERBOSITY_ALL 


Function Documentation

LibGLShader::DECLARE_STL_TYPEDEF ( std::vector< ShaderVariable * >  ,
VariableVector   
)

LibGLShader::DECLARE_STL_TYPEDEF ( std::vector< Shader * >  ,
ShaderVector   
)

LibGLShader::DECLARE_STL_TYPEDEF2 ( std::map< std::string, ShaderVariable * >  ,
VariableMap   
)

std::ostream & LibGLShader::operator<< ( std::ostream &  os,
const ShaderVariable &  var 
)

std::ostream & LibGLShader::operator<< ( std::ostream &  os,
const ShaderSource &  source 
)


Variable Documentation

const GLhandle LibGLShader::GLinvalid = GL_INVALID_VALUE


Generated on Sat Sep 20 04:06:21 2008 for CS123Support by  doxygen 1.5.6