Cinder  0.9.1
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Friends | List of all members
cinder::gl::GlslProg Class Reference

#include <GlslProg.h>

Classes

struct  Attribute
 
struct  Format
 
struct  Uniform
 

Public Types

typedef std::map< std::string, UniformSemanticUniformSemanticMap
 
typedef std::map< std::string, geom::AttribAttribSemanticMap
 

Public Member Functions

 ~GlslProg ()
 
void bind () const
 
GLuint getHandle () const
 
void uniform (const std::string &name, bool data) const
 
void uniform (const std::string &name, int data) const
 
void uniform (const std::string &name, float data) const
 
void uniform (const std::string &name, uint32_t data) const
 
void uniform (int location, uint32_t data) const
 
void uniform (int location, bool data) const
 
void uniform (int location, int data) const
 
void uniform (int location, float data) const
 
void uniform (const std::string &name, const vec2 &data) const
 
void uniform (const std::string &name, const vec3 &data) const
 
void uniform (const std::string &name, const vec4 &data) const
 
void uniform (int location, const vec2 &data) const
 
void uniform (int location, const vec3 &data) const
 
void uniform (int location, const vec4 &data) const
 
void uniform (const std::string &name, const ivec2 &data) const
 
void uniform (const std::string &name, const ivec3 &data) const
 
void uniform (const std::string &name, const ivec4 &data) const
 
void uniform (int location, const ivec2 &data) const
 
void uniform (int location, const ivec3 &data) const
 
void uniform (int location, const ivec4 &data) const
 
void uniform (const std::string &name, const uvec2 &data) const
 
void uniform (const std::string &name, const uvec3 &data) const
 
void uniform (const std::string &name, const uvec4 &data) const
 
void uniform (int location, const uvec2 &data) const
 
void uniform (int location, const uvec3 &data) const
 
void uniform (int location, const uvec4 &data) const
 
void uniform (const std::string &name, const mat2 &data, bool transpose=false) const
 
void uniform (const std::string &name, const mat3 &data, bool transpose=false) const
 
void uniform (const std::string &name, const mat4 &data, bool transpose=false) const
 
void uniform (int location, const mat2 &data, bool transpose=false) const
 
void uniform (int location, const mat3 &data, bool transpose=false) const
 
void uniform (int location, const mat4 &data, bool transpose=false) const
 
void uniform (const std::string &name, const uint32_t *data, int count) const
 
void uniform (int location, const uint32_t *data, int count) const
 
void uniform (const std::string &name, const int *data, int count) const
 
void uniform (int location, const int *data, int count) const
 
void uniform (const std::string &name, const float *data, int count) const
 
void uniform (int location, const float *data, int count) const
 
void uniform (const std::string &name, const ivec2 *data, int count) const
 
void uniform (const std::string &name, const vec2 *data, int count) const
 
void uniform (const std::string &name, const vec3 *data, int count) const
 
void uniform (const std::string &name, const vec4 *data, int count) const
 
void uniform (int location, const ivec2 *data, int count) const
 
void uniform (int location, const vec2 *data, int count) const
 
void uniform (int location, const vec3 *data, int count) const
 
void uniform (int location, const vec4 *data, int count) const
 
void uniform (const std::string &name, const mat2 *data, int count, bool transpose=false) const
 
void uniform (const std::string &name, const mat3 *data, int count, bool transpose=false) const
 
void uniform (const std::string &name, const mat4 *data, int count, bool transpose=false) const
 
void uniform (int location, const mat2 *data, int count, bool transpose=false) const
 
void uniform (int location, const mat3 *data, int count, bool transpose=false) const
 
void uniform (int location, const mat4 *data, int count, bool transpose=false) const
 
bool hasAttribSemantic (geom::Attrib semantic) const
 
GLint getAttribSemanticLocation (geom::Attrib semantic) const
 
GLint operator[] (geom::Attrib sem) const
 
GLint getAttribLocation (const std::string &name) const
 
const std::vector< Attribute > & getActiveAttributes () const
 
const AttributefindAttrib (const std::string &name) const
 
const AttributefindAttrib (geom::Attrib semantic) const
 
GLint getUniformLocation (const std::string &name) const
 
const std::vector< Uniform > & getActiveUniforms () const
 
const UniformfindUniform (const std::string &name, int *resultLocation) const
 
std::string getShaderLog (GLuint handle) const
 
std::vector< fs::path > getIncludedFiles () const
 
const std::string & getLabel () const
 
void setLabel (const std::string &label)
 
template<typename T >
string cppTypeToGlslTypeName ()
 
template<>
void uniformFunc (int location, const uint32_t &data) const
 
template<>
void uniformFunc (int location, const uvec2 &data) const
 
template<>
void uniformFunc (int location, const uvec3 &data) const
 
template<>
void uniformFunc (int location, const uvec4 &data) const
 
template<>
void uniformFunc (int location, const uint32_t *data, int count) const
 
template<>
void uniformFunc (int location, const int &data) const
 
template<>
void uniformFunc (int location, const ivec2 &data) const
 
template<>
void uniformFunc (int location, const ivec3 &data) const
 
template<>
void uniformFunc (int location, const ivec4 &data) const
 
template<>
void uniformFunc (int location, const int *data, int count) const
 
template<>
void uniformFunc (int location, const ivec2 *data, int count) const
 
template<>
void uniformFunc (int location, const float &data) const
 
template<>
void uniformFunc (int location, const vec2 &data) const
 
template<>
void uniformFunc (int location, const vec3 &data) const
 
template<>
void uniformFunc (int location, const vec4 &data) const
 
template<>
void uniformMatFunc (int location, const mat2 &data, bool transpose) const
 
template<>
void uniformMatFunc (int location, const mat3 &data, bool transpose) const
 
template<>
void uniformMatFunc (int location, const mat4 &data, bool transpose) const
 
template<>
void uniformFunc (int location, const float *data, int count) const
 
template<>
void uniformFunc (int location, const vec2 *data, int count) const
 
template<>
void uniformFunc (int location, const vec3 *data, int count) const
 
template<>
void uniformFunc (int location, const vec4 *data, int count) const
 
template<>
void uniformMatFunc (int location, const mat2 *data, int count, bool transpose) const
 
template<>
void uniformMatFunc (int location, const mat3 *data, int count, bool transpose) const
 
template<>
void uniformMatFunc (int location, const mat4 *data, int count, bool transpose) const
 

Static Public Member Functions

static GlslProgRef create (const Format &format)
 
static GlslProgRef create (DataSourceRef vertexShader, DataSourceRef fragmentShader=DataSourceRef(), DataSourceRef geometryShader=DataSourceRef(), DataSourceRef tessEvalShader=DataSourceRef(), DataSourceRef tessCtrlShader=DataSourceRef())
 
static GlslProgRef create (const std::string &vertexShader, const std::string &fragmentShader=std::string(), const std::string &geometryShader=std::string(), const std::string &tessEvalShader=std::string(), const std::string &tessCtrlShader=std::string())
 
static UniformSemanticMapgetDefaultUniformNameToSemanticMap ()
 
static AttribSemanticMapgetDefaultAttribNameToSemanticMap ()
 

Protected Member Functions

 GlslProg (const Format &format)
 
void bindImpl () const
 
void loadShader (const std::string &shaderSource, const fs::path &shaderPath, GLint shaderType)
 
void attachShaders ()
 
void link ()
 
void cacheActiveAttribs ()
 
AttributefindAttrib (const std::string &name)
 
void cacheActiveUniforms ()
 
const UniformfindUniform (int location, int *resultLocation) const
 
template<typename LookUp , typename T >
void uniformImpl (const LookUp &lookUp, const T &data) const
 
template<typename T >
void uniformFunc (int location, const T &data) const
 
template<typename LookUp , typename T >
void uniformMatImpl (const LookUp &lookUp, const T &data, bool transpose) const
 
template<typename T >
void uniformMatFunc (int location, const T &data, bool transpose) const
 
template<typename LookUp , typename T >
void uniformImpl (const LookUp &lookUp, const T *data, int count) const
 
template<typename T >
void uniformFunc (int location, const T *data, int count) const
 
template<typename LookUp , typename T >
void uniformMatImpl (const LookUp &lookUp, const T *data, int count, bool transpose) const
 
template<typename T >
void uniformMatFunc (int location, const T *data, int count, bool transpose) const
 
void logMissingUniform (const std::string &name) const
 
void logMissingUniform (int location) const
 
void logUniformWrongType (const std::string &name, GLenum uniformType, const std::string &userType) const
 
template<typename T >
bool validateUniform (const Uniform &uniform, int uniformLocation, const T &val) const
 
template<typename T >
bool validateUniform (const Uniform &uniform, int uniformLocation, const T *val, int count) const
 
bool checkUniformValueCache (const Uniform &uniform, int location, const void *val, int count) const
 
template<typename T >
bool checkUniformType (GLenum uniformType) const
 
template<typename T >
bool checkUniformType (GLenum uniformType, std::string &typeName) const
 
template<>
void uniformFunc (int location, const bool &data) const
 

Static Protected Member Functions

template<typename T >
static std::string cppTypeToGlslTypeName ()
 

Protected Attributes

GLuint mHandle
 
std::vector< AttributemAttributes
 
std::vector< UniformmUniforms
 
std::unique_ptr< UniformValueCache > mUniformValueCache
 
std::set< std::string > mLoggedUniformNames
 
std::set< int > mLoggedUniformLocations
 
std::string mLabel
 
std::unique_ptr< ShaderPreprocessormShaderPreprocessor
 
std::vector< fs::path > mShaderPreprocessorIncludedFiles
 

Friends

class Context
 
std::ostream & operator<< (std::ostream &os, const GlslProg &rhs)
 

Member Typedef Documentation

Constructor & Destructor Documentation

cinder::gl::GlslProg::~GlslProg ( )
cinder::gl::GlslProg::GlslProg ( const Format format)
protected

Member Function Documentation

GlslProgRef cinder::gl::GlslProg::create ( const Format format)
static
GlslProgRef cinder::gl::GlslProg::create ( DataSourceRef  vertexShader,
DataSourceRef  fragmentShader = DataSourceRef(),
DataSourceRef  geometryShader = DataSourceRef(),
DataSourceRef  tessEvalShader = DataSourceRef(),
DataSourceRef  tessCtrlShader = DataSourceRef() 
)
static
GlslProgRef cinder::gl::GlslProg::create ( const std::string &  vertexShader,
const std::string &  fragmentShader = std::string(),
const std::string &  geometryShader = std::string(),
const std::string &  tessEvalShader = std::string(),
const std::string &  tessCtrlShader = std::string() 
)
static
void cinder::gl::GlslProg::bind ( ) const
GLuint cinder::gl::GlslProg::getHandle ( ) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
bool  data 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
int  data 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
float  data 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
uint32_t  data 
) const
void cinder::gl::GlslProg::uniform ( int  location,
uint32_t  data 
) const
void cinder::gl::GlslProg::uniform ( int  location,
bool  data 
) const
void cinder::gl::GlslProg::uniform ( int  location,
int  data 
) const
void cinder::gl::GlslProg::uniform ( int  location,
float  data 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
const vec2 &  data 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
const vec3 &  data 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
const vec4 &  data 
) const
void cinder::gl::GlslProg::uniform ( int  location,
const vec2 &  data 
) const
void cinder::gl::GlslProg::uniform ( int  location,
const vec3 &  data 
) const
void cinder::gl::GlslProg::uniform ( int  location,
const vec4 &  data 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
const ivec2 &  data 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
const ivec3 &  data 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
const ivec4 &  data 
) const
void cinder::gl::GlslProg::uniform ( int  location,
const ivec2 &  data 
) const
void cinder::gl::GlslProg::uniform ( int  location,
const ivec3 &  data 
) const
void cinder::gl::GlslProg::uniform ( int  location,
const ivec4 &  data 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
const uvec2 &  data 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
const uvec3 &  data 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
const uvec4 &  data 
) const
void cinder::gl::GlslProg::uniform ( int  location,
const uvec2 &  data 
) const
void cinder::gl::GlslProg::uniform ( int  location,
const uvec3 &  data 
) const
void cinder::gl::GlslProg::uniform ( int  location,
const uvec4 &  data 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
const mat2 &  data,
bool  transpose = false 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
const mat3 &  data,
bool  transpose = false 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
const mat4 &  data,
bool  transpose = false 
) const
void cinder::gl::GlslProg::uniform ( int  location,
const mat2 &  data,
bool  transpose = false 
) const
void cinder::gl::GlslProg::uniform ( int  location,
const mat3 &  data,
bool  transpose = false 
) const
void cinder::gl::GlslProg::uniform ( int  location,
const mat4 &  data,
bool  transpose = false 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
const uint32_t *  data,
int  count 
) const
void cinder::gl::GlslProg::uniform ( int  location,
const uint32_t *  data,
int  count 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
const int *  data,
int  count 
) const
void cinder::gl::GlslProg::uniform ( int  location,
const int *  data,
int  count 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
const float *  data,
int  count 
) const
void cinder::gl::GlslProg::uniform ( int  location,
const float *  data,
int  count 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
const ivec2 *  data,
int  count 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
const vec2 *  data,
int  count 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
const vec3 *  data,
int  count 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
const vec4 *  data,
int  count 
) const
void cinder::gl::GlslProg::uniform ( int  location,
const ivec2 *  data,
int  count 
) const
void cinder::gl::GlslProg::uniform ( int  location,
const vec2 *  data,
int  count 
) const
void cinder::gl::GlslProg::uniform ( int  location,
const vec3 *  data,
int  count 
) const
void cinder::gl::GlslProg::uniform ( int  location,
const vec4 *  data,
int  count 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
const mat2 *  data,
int  count,
bool  transpose = false 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
const mat3 *  data,
int  count,
bool  transpose = false 
) const
void cinder::gl::GlslProg::uniform ( const std::string &  name,
const mat4 *  data,
int  count,
bool  transpose = false 
) const
void cinder::gl::GlslProg::uniform ( int  location,
const mat2 *  data,
int  count,
bool  transpose = false 
) const
void cinder::gl::GlslProg::uniform ( int  location,
const mat3 *  data,
int  count,
bool  transpose = false 
) const
void cinder::gl::GlslProg::uniform ( int  location,
const mat4 *  data,
int  count,
bool  transpose = false 
) const
bool cinder::gl::GlslProg::hasAttribSemantic ( geom::Attrib  semantic) const
GLint cinder::gl::GlslProg::getAttribSemanticLocation ( geom::Attrib  semantic) const
GLint cinder::gl::GlslProg::operator[] ( geom::Attrib  sem) const
GlslProg::UniformSemanticMap & cinder::gl::GlslProg::getDefaultUniformNameToSemanticMap ( )
static

Default mapping from uniform name to semantic. Can be modified via the reference. Not thread-safe.

GlslProg::AttribSemanticMap & cinder::gl::GlslProg::getDefaultAttribNameToSemanticMap ( )
static

Default mapping from attribute name to semantic. Can be modified via the reference. Not thread-safe.

GLint cinder::gl::GlslProg::getAttribLocation ( const std::string &  name) const

Returns the attrib location of the Attribute that matches name.

const std::vector<Attribute>& cinder::gl::GlslProg::getActiveAttributes ( ) const

Returns a const reference to the Active Attribute cache.

const GlslProg::Attribute * cinder::gl::GlslProg::findAttrib ( const std::string &  name) const

Returns a const pointer to the Attribute that matches name. Returns nullptr if the attrib doesn't exist.

const GlslProg::Attribute * cinder::gl::GlslProg::findAttrib ( geom::Attrib  semantic) const

Returns a const pointer to the Attribute that matches semantic. Returns nullptr if the attrib doesn't exist.

GLint cinder::gl::GlslProg::getUniformLocation ( const std::string &  name) const

Returns the uniform location of the Uniform that matches name.

const std::vector<Uniform>& cinder::gl::GlslProg::getActiveUniforms ( ) const

Returns a const reference to the Active Uniform cache.

const GlslProg::Uniform * cinder::gl::GlslProg::findUniform ( const std::string &  name,
int *  resultLocation 
) const

Returns a const pointer to the Uniform that matches name. Returns nullptr if the uniform doesn't exist. The uniform location (accounting for indices, like "example[2]") is stored in resultLocation if it's non-null.

std::string cinder::gl::GlslProg::getShaderLog ( GLuint  handle) const
std::vector<fs::path> cinder::gl::GlslProg::getIncludedFiles ( ) const

Returns a list of included files (via the #include directive) detected and parsed by the ShaderPreprocessor.

const std::string& cinder::gl::GlslProg::getLabel ( ) const

Returns the debugging label associated with the Program.

void cinder::gl::GlslProg::setLabel ( const std::string &  label)

Sets the debugging label associated with the Program. Calls glObjectLabel() when available.

void cinder::gl::GlslProg::bindImpl ( ) const
protected
void cinder::gl::GlslProg::loadShader ( const std::string &  shaderSource,
const fs::path &  shaderPath,
GLint  shaderType 
)
protected
void cinder::gl::GlslProg::attachShaders ( )
protected
void cinder::gl::GlslProg::link ( )
protected
void cinder::gl::GlslProg::cacheActiveAttribs ( )
protected

Caches all active Attributes after linking.

GlslProg::Attribute * cinder::gl::GlslProg::findAttrib ( const std::string &  name)
protected

Returns a pointer to the Attribute that matches name. Returns nullptr if the attrib doesn't exist.

void cinder::gl::GlslProg::cacheActiveUniforms ( )
protected

Caches all active Uniforms after linrking.

const GlslProg::Uniform * cinder::gl::GlslProg::findUniform ( int  location,
int *  resultLocation 
) const
protected

Returns a pointer to the Uniform that matches location. Returns nullptr if the uniform doesn't exist.

template<typename LookUp , typename T >
void cinder::gl::GlslProg::uniformImpl ( const LookUp &  lookUp,
const T &  data 
) const
protected

Performs the finding, validation, and implementation of single uniform variables. Ends by calling the location variant uniform function.

template<typename T >
void cinder::gl::GlslProg::uniformFunc ( int  location,
const T &  data 
) const
protected
template<typename LookUp , typename T >
void cinder::gl::GlslProg::uniformMatImpl ( const LookUp &  lookUp,
const T &  data,
bool  transpose 
) const
protected

Performs the finding, validation, and implementation of single uniform Matrix variables. Ends by calling the location variant uniform function.

template<typename T >
void cinder::gl::GlslProg::uniformMatFunc ( int  location,
const T &  data,
bool  transpose 
) const
protected
template<typename LookUp , typename T >
void cinder::gl::GlslProg::uniformImpl ( const LookUp &  lookUp,
const T *  data,
int  count 
) const
protected

Performs the finding, validation, and implementation of multiple uniform variables. Ends by calling the location variant uniform function.

template<typename T >
void cinder::gl::GlslProg::uniformFunc ( int  location,
const T *  data,
int  count 
) const
protected
template<typename LookUp , typename T >
void cinder::gl::GlslProg::uniformMatImpl ( const LookUp &  lookUp,
const T *  data,
int  count,
bool  transpose 
) const
protected

Performs the finding, validation, and implementation of multiple uniform Matrix variables. Ends by calling the location variant uniform function.

template<typename T >
void cinder::gl::GlslProg::uniformMatFunc ( int  location,
const T *  data,
int  count,
bool  transpose 
) const
protected
void cinder::gl::GlslProg::logMissingUniform ( const std::string &  name) const
protected

Logs an error and caches the name.

void cinder::gl::GlslProg::logMissingUniform ( int  location) const
protected

Logs an error and caches the name.

void cinder::gl::GlslProg::logUniformWrongType ( const std::string &  name,
GLenum  uniformType,
const std::string &  userType 
) const
protected

Logs a warning and caches the name.

template<typename T >
bool cinder::gl::GlslProg::validateUniform ( const Uniform uniform,
int  uniformLocation,
const T &  val 
) const
protected

Checks the validity of the settings on this uniform, specifically type and value.

template<typename T >
bool cinder::gl::GlslProg::validateUniform ( const Uniform uniform,
int  uniformLocation,
const T *  val,
int  count 
) const
protected

Checks the validity of the settings on this uniform, specifically type and value.

bool cinder::gl::GlslProg::checkUniformValueCache ( const Uniform uniform,
int  location,
const void *  val,
int  count 
) const
protected

Implementing later for CPU Uniform Buffer Cache.

template<typename T >
bool cinder::gl::GlslProg::checkUniformType ( GLenum  uniformType) const
protected

Checks the type of the uniform against the provided type of data in validateUniform. If the provided type, uniformType, and the type T match this function returns true, otherwise it returns false.

template<typename T >
bool cinder::gl::GlslProg::checkUniformType ( GLenum  uniformType,
std::string &  typeName 
) const
protected
template<typename T >
static std::string cinder::gl::GlslProg::cppTypeToGlslTypeName ( )
staticprotected
template<typename T >
string cinder::gl::GlslProg::cppTypeToGlslTypeName ( )
template<>
void cinder::gl::GlslProg::uniformFunc ( int  location,
const bool &  data 
) const
protected
template<>
void cinder::gl::GlslProg::uniformFunc ( int  location,
const uint32_t &  data 
) const
template<>
void cinder::gl::GlslProg::uniformFunc ( int  location,
const uvec2 &  data 
) const
template<>
void cinder::gl::GlslProg::uniformFunc ( int  location,
const uvec3 &  data 
) const
template<>
void cinder::gl::GlslProg::uniformFunc ( int  location,
const uvec4 &  data 
) const
template<>
void cinder::gl::GlslProg::uniformFunc ( int  location,
const uint32_t *  data,
int  count 
) const
template<>
void cinder::gl::GlslProg::uniformFunc ( int  location,
const int &  data 
) const
template<>
void cinder::gl::GlslProg::uniformFunc ( int  location,
const ivec2 &  data 
) const
template<>
void cinder::gl::GlslProg::uniformFunc ( int  location,
const ivec3 &  data 
) const
template<>
void cinder::gl::GlslProg::uniformFunc ( int  location,
const ivec4 &  data 
) const
template<>
void cinder::gl::GlslProg::uniformFunc ( int  location,
const int *  data,
int  count 
) const
template<>
void cinder::gl::GlslProg::uniformFunc ( int  location,
const ivec2 *  data,
int  count 
) const
template<>
void cinder::gl::GlslProg::uniformFunc ( int  location,
const float &  data 
) const
template<>
void cinder::gl::GlslProg::uniformFunc ( int  location,
const vec2 &  data 
) const
template<>
void cinder::gl::GlslProg::uniformFunc ( int  location,
const vec3 &  data 
) const
template<>
void cinder::gl::GlslProg::uniformFunc ( int  location,
const vec4 &  data 
) const
template<>
void cinder::gl::GlslProg::uniformMatFunc ( int  location,
const mat2 &  data,
bool  transpose 
) const
template<>
void cinder::gl::GlslProg::uniformMatFunc ( int  location,
const mat3 &  data,
bool  transpose 
) const
template<>
void cinder::gl::GlslProg::uniformMatFunc ( int  location,
const mat4 &  data,
bool  transpose 
) const
template<>
void cinder::gl::GlslProg::uniformFunc ( int  location,
const float *  data,
int  count 
) const
template<>
void cinder::gl::GlslProg::uniformFunc ( int  location,
const vec2 *  data,
int  count 
) const
template<>
void cinder::gl::GlslProg::uniformFunc ( int  location,
const vec3 *  data,
int  count 
) const
template<>
void cinder::gl::GlslProg::uniformFunc ( int  location,
const vec4 *  data,
int  count 
) const
template<>
void cinder::gl::GlslProg::uniformMatFunc ( int  location,
const mat2 *  data,
int  count,
bool  transpose 
) const
template<>
void cinder::gl::GlslProg::uniformMatFunc ( int  location,
const mat3 *  data,
int  count,
bool  transpose 
) const
template<>
void cinder::gl::GlslProg::uniformMatFunc ( int  location,
const mat4 *  data,
int  count,
bool  transpose 
) const

Friends And Related Function Documentation

friend class Context
friend
std::ostream& operator<< ( std::ostream &  os,
const GlslProg rhs 
)
friend

Member Data Documentation

GLuint cinder::gl::GlslProg::mHandle
protected
std::vector<Attribute> cinder::gl::GlslProg::mAttributes
protected
std::vector<Uniform> cinder::gl::GlslProg::mUniforms
protected
std::unique_ptr<UniformValueCache> cinder::gl::GlslProg::mUniformValueCache
mutableprotected
std::set<std::string> cinder::gl::GlslProg::mLoggedUniformNames
mutableprotected
std::set<int> cinder::gl::GlslProg::mLoggedUniformLocations
mutableprotected
std::string cinder::gl::GlslProg::mLabel
protected
std::unique_ptr<ShaderPreprocessor> cinder::gl::GlslProg::mShaderPreprocessor
protected
std::vector<fs::path> cinder::gl::GlslProg::mShaderPreprocessorIncludedFiles
protected

The documentation for this class was generated from the following files: