cocos2d-x  3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
GLProgram Class Reference

GLProgram Class that implements a glProgram. More...

#include <CCGLProgram.h>

Inheritance diagram for GLProgram:
Ref

Classes

struct  flag_struct
 

Public Types

enum  {
  VERTEX_ATTRIB_POSITION, VERTEX_ATTRIB_COLOR, VERTEX_ATTRIB_TEX_COORD, VERTEX_ATTRIB_TEX_COORD1,
  VERTEX_ATTRIB_TEX_COORD2, VERTEX_ATTRIB_TEX_COORD3, VERTEX_ATTRIB_NORMAL, VERTEX_ATTRIB_BLEND_WEIGHT,
  VERTEX_ATTRIB_BLEND_INDEX, VERTEX_ATTRIB_MAX, VERTEX_ATTRIB_TEX_COORDS = VERTEX_ATTRIB_TEX_COORD
}
 Enum the preallocated vertex attribute. More...
 
enum  {
  UNIFORM_AMBIENT_COLOR, UNIFORM_P_MATRIX, UNIFORM_MV_MATRIX, UNIFORM_MVP_MATRIX,
  UNIFORM_NORMAL_MATRIX, UNIFORM_TIME, UNIFORM_SIN_TIME, UNIFORM_COS_TIME,
  UNIFORM_RANDOM01, UNIFORM_SAMPLER0, UNIFORM_SAMPLER1, UNIFORM_SAMPLER2,
  UNIFORM_SAMPLER3, UNIFORM_MAX
}
 Preallocated uniform handle. More...
 

Public Member Functions

 GLProgram ()
 Constructor. More...
 
 GLProgram ()
 Constructor. More...
 
 GLProgram ()
 Constructor. More...
 
virtual ~GLProgram ()
 Destructor. More...
 
local ~GLProgram ()
 Destructor. More...
 
void bindAttribLocation (const std::string &attributeName, GLuint index) const
 It will add a new attribute to the shader by calling glBindAttribLocation. More...
 
var bindAttribLocation ( var attributeName, var index)
 It will add a new attribute to the shader by calling glBindAttribLocation. More...
 
local bindAttribLocation ( local attributeName, local index)
 It will add a new attribute to the shader by calling glBindAttribLocation. More...
 
GLint getAttribLocation (const std::string &attributeName) const
 Calls glGetAttribLocation. More...
 
var getAttribLocation ( var attributeName)
 Calls glGetAttribLocation. More...
 
local getAttribLocation ( local attributeName)
 Calls glGetAttribLocation. More...
 
GLint getUniformLocation (const std::string &attributeName) const
 Calls glGetUniformLocation(). More...
 
bool link ()
 links the glProgram More...
 
var link ()
 links the glProgram More...
 
local link ()
 links the glProgram More...
 
void use ()
 it will call glUseProgram() More...
 
var use ()
 it will call glUseProgram() More...
 
local use ()
 it will call glUseProgram() More...
 
void updateUniforms ()
 It will create 4 uniforms: More...
 
var updateUniforms ()
 It will create 4 uniforms: More...
 
local updateUniforms ()
 It will create 4 uniforms: More...
 
GLint getUniformLocationForName (const char *name) const
 calls retrieves the named uniform location for this shader program. More...
 
local getUniformLocationForName ( local name)
 calls retrieves the named uniform location for this shader program. More...
 
void setUniformLocationWith1i (GLint location, GLint i1)
 calls glUniform1i only if the values are different than the previous call for this same shader program. More...
 
local setUniformLocationI32 ( local location, local i1)
 calls glUniform1i only if the values are different than the previous call for this same shader program. More...
 
void setUniformLocationWith2i (GLint location, GLint i1, GLint i2)
 calls glUniform2i only if the values are different than the previous call for this same shader program. More...
 
local setUniformLocationWith2i ( local location, local i1, local i2)
 calls glUniform2i only if the values are different than the previous call for this same shader program. More...
 
void setUniformLocationWith3i (GLint location, GLint i1, GLint i2, GLint i3)
 calls glUniform3i only if the values are different than the previous call for this same shader program. More...
 
local setUniformLocationWith3i ( local location, local i1, local i2, local i3)
 calls glUniform3i only if the values are different than the previous call for this same shader program. More...
 
void setUniformLocationWith4i (GLint location, GLint i1, GLint i2, GLint i3, GLint i4)
 calls glUniform4i only if the values are different than the previous call for this same shader program. More...
 
local setUniformLocationWith4i ( local location, local i1, local i2, local i3, local i4)
 calls glUniform4i only if the values are different than the previous call for this same shader program. More...
 
void setUniformLocationWith2iv (GLint location, GLint *ints, unsigned int numberOfArrays)
 calls glUniform2iv only if the values are different than the previous call for this same shader program. More...
 
void setUniformLocationWith3iv (GLint location, GLint *ints, unsigned int numberOfArrays)
 calls glUniform3iv only if the values are different than the previous call for this same shader program. More...
 
var setUniformLocationWith3iv ( var location, var ints, var numberOfArrays)
 calls glUniform3iv only if the values are different than the previous call for this same shader program. More...
 
local setUniformLocationWith3iv ( local location, local ints, local numberOfArrays)
 calls glUniform3iv only if the values are different than the previous call for this same shader program. More...
 
void setUniformLocationWith4iv (GLint location, GLint *ints, unsigned int numberOfArrays)
 calls glUniform4iv only if the values are different than the previous call for this same shader program. More...
 
var setUniformLocationWith4iv ( var location, var ints, var numberOfArrays)
 calls glUniform4iv only if the values are different than the previous call for this same shader program. More...
 
local setUniformLocationWith4iv ( local location, local ints, local numberOfArrays)
 calls glUniform4iv only if the values are different than the previous call for this same shader program. More...
 
void setUniformLocationWith1f (GLint location, GLfloat f1)
 calls glUniform1f only if the values are different than the previous call for this same shader program. More...
 
local setUniformLocationWith1f ( local location, local f1)
 calls glUniform1f only if the values are different than the previous call for this same shader program. More...
 
void setUniformLocationWith2f (GLint location, GLfloat f1, GLfloat f2)
 calls glUniform2f only if the values are different than the previous call for this same shader program. More...
 
local setUniformLocationWith2f ( local location, local f1, local f2)
 calls glUniform2f only if the values are different than the previous call for this same shader program. More...
 
void setUniformLocationWith3f (GLint location, GLfloat f1, GLfloat f2, GLfloat f3)
 calls glUniform3f only if the values are different than the previous call for this same shader program. More...
 
void setUniformLocationWith4f (GLint location, GLfloat f1, GLfloat f2, GLfloat f3, GLfloat f4)
 calls glUniform4f only if the values are different than the previous call for this same shader program. More...
 
void setUniformLocationWith1fv (GLint location, const GLfloat *floats, unsigned int numberOfArrays)
 calls glUniformfv only if the values are different than the previous call for this same shader program. More...
 
void setUniformLocationWith2fv (GLint location, const GLfloat *floats, unsigned int numberOfArrays)
 calls glUniform2fv only if the values are different than the previous call for this same shader program. More...
 
void setUniformLocationWith3fv (GLint location, const GLfloat *floats, unsigned int numberOfArrays)
 calls glUniform3fv only if the values are different than the previous call for this same shader program. More...
 
void setUniformLocationWith4fv (GLint location, const GLfloat *floats, unsigned int numberOfArrays)
 calls glUniform4fv only if the values are different than the previous call for this same shader program. More...
 
void setUniformLocationWithMatrix2fv (GLint location, const GLfloat *matrixArray, unsigned int numberOfMatrices)
 calls glUniformMatrix2fv only if the values are different than the previous call for this same shader program. More...
 
void setUniformLocationWithMatrix3fv (GLint location, const GLfloat *matrixArray, unsigned int numberOfMatrices)
 calls glUniformMatrix3fv only if the values are different than the previous call for this same shader program. More...
 
void setUniformLocationWithMatrix4fv (GLint location, const GLfloat *matrixArray, unsigned int numberOfMatrices)
 calls glUniformMatrix4fv only if the values are different than the previous call for this same shader program. More...
 
UniformgetUniform (const std::string &name)
var getUniform ( var name)
local getUniform ( local name)
VertexAttribgetVertexAttrib (const std::string &name)
- Public Member Functions inherited from Ref
void retain ()
 Retains the ownership. More...
 
void release ()
 Releases the ownership immediately. More...
 
Refautorelease ()
 Releases the ownership sometime soon automatically. More...
 
unsigned int getReferenceCount () const
 Returns the Ref's current reference count. More...
 
virtual ~Ref ()
 Destructor. More...
 

Static Public Attributes

static const char * UNIFORM_NAME_ALPHA_TEST_VALUE
 Alpha test value uniform. More...
 
static const char * ATTRIBUTE_NAME_NORMAL
 Attribute normal. More...
 
static const char * ATTRIBUTE_NAME_BLEND_WEIGHT
 Attribute blend weight. More...
 
var ATTRIBUTE_NAME_BLEND_WEIGHT
 Attribute blend weight. More...
 
local ATTRIBUTE_NAME_BLEND_WEIGHT
 Attribute blend weight. More...
 
static const char * ATTRIBUTE_NAME_BLEND_INDEX
 Attribute blend index. More...
 
var ATTRIBUTE_NAME_BLEND_INDEX
 Attribute blend index. More...
 
local ATTRIBUTE_NAME_BLEND_INDEX
 Attribute blend index. More...
 
Built Shader types
static const char * SHADER_NAME_POSITION_TEXTURE_COLOR
 Built in shader for 2d. More...
 
static const char * SHADER_NAME_POSITION_TEXTURE_COLOR_NO_MVP
 Built in shader for 2d. More...
 
static const char * SHADER_NAME_POSITION_TEXTURE_ALPHA_TEST
 Built in shader for 2d. More...
 
var SHADER_NAME_POSITION_TEXTURE_ALPHA_TEST
 Built in shader for 2d. More...
 
local SHADER_NAME_POSITION_TEXTURE_ALPHA_TEST
 Built in shader for 2d. More...
 
static const char * SHADER_NAME_POSITION_TEXTURE_ALPHA_TEST_NO_MV
 Built in shader for 2d. More...
 
static const char * SHADER_NAME_POSITION_COLOR
 Built in shader for 2d. More...
 
var SHADER_NAME_POSITION_COLOR
 Built in shader for 2d. More...
 
local SHADER_NAME_POSITION_COLOR
 Built in shader for 2d. More...
 
static const char * SHADER_NAME_POSITION_COLOR_TEXASPOINTSIZE
 Built in shader for 2d. More...
 
static const char * SHADER_NAME_POSITION_COLOR_NO_MVP
 Built in shader for 2d. More...
 
static const char * SHADER_NAME_POSITION_COLOR_NO_MVP_GRAYĆ„SCALE
 Built in shader for 2d. More...
 
static const char * SHADER_NAME_POSITION_TEXTURE
 Built in shader for 2d. More...
 
local SHADER_NAME_POSITION_TEXTURE
 Built in shader for 2d. More...
 
static const char * SHADER_NAME_POSITION_TEXTURE_U_COLOR
 Built in shader for 2d. More...
 
static const char * SHADER_NAME_POSITION_TEXTURE_A8_COLOR
 Built in shader for 2d. More...
 
var SHADER_NAME_POSITION_TEXTURE_A8_COLOR
 Built in shader for 2d. More...
 
local SHADER_NAME_POSITION_TEXTURE_A8_COLOR
 Built in shader for 2d. More...
 
static const char * SHADER_NAME_POSITION_U_COLOR
 Built in shader for 2d. More...
 
var SHADER_NAME_POSITION_U_COLOR
 Built in shader for 2d. More...
 
local SHADER_NAME_POSITION_U_COLOR
 Built in shader for 2d. More...
 
static const char * SHADER_NAME_POSITION_LENGTH_TEXTURE_COLOR
 Built in shader for draw a sector with 90 degrees with center at bottom left point. More...
 
var SHADER_NAME_POSITION_LENGTH_TEXTURE_COLOR
 Built in shader for draw a sector with 90 degrees with center at bottom left point. More...
 
local SHADER_NAME_POSITION_LENGTH_TEXTURE_COLOR
 Built in shader for draw a sector with 90 degrees with center at bottom left point. More...
 
static const char * SHADER_NAME_LABEL_NORMAL
static const char * SHADER_NAME_LABEL_OUTLINE
var SHADER_NAME_LABEL_OUTLINE
local SHADER_NAME_LABEL_OUTLINE
static const char * SHADER_NAME_LABEL_DISTANCEFIELD_NORMAL
var SHADER_NAME_LABEL_DISTANCEFIELD_NORMAL
local SHADER_NAME_LABEL_DISTANCEFIELD_NORMAL
static const char * SHADER_NAME_LABEL_DISTANCEFIELD_GLOW
var SHADER_NAME_LABEL_DISTANCEFIELD_GLOW
local SHADER_NAME_LABEL_DISTANCEFIELD_GLOW
static const char * SHADER_3D_POSITION
 Built in shader used for 3D, support Position vertex attribute, with color specified by a uniform. More...
 
var SHADER_3D_POSITION
 Built in shader used for 3D, support Position vertex attribute, with color specified by a uniform. More...
 
local SHADER_3D_POSITION
 Built in shader used for 3D, support Position vertex attribute, with color specified by a uniform. More...
 
static const char * SHADER_3D_POSITION_TEXTURE
 Built in shader used for 3D, support Position and Texture vertex attribute, with color specified by a uniform. More...
 
var SHADER_3D_POSITION_TEXTURE
 Built in shader used for 3D, support Position and Texture vertex attribute, with color specified by a uniform. More...
 
local SHADER_3D_POSITION_TEXTURE
 Built in shader used for 3D, support Position and Texture vertex attribute, with color specified by a uniform. More...
 
static const char * SHADER_3D_SKINPOSITION_TEXTURE
 Built in shader used for 3D, support Position (Skeletal animation by hardware skin) and Texture vertex attribute, with color specified by a uniform. More...
 
static const char * SHADER_3D_POSITION_NORMAL
 Built in shader used for 3D, support Position and Normal vertex attribute, used in lighting. More...
 
static const char * SHADER_3D_POSITION_NORMAL_TEXTURE
 Built in shader used for 3D, support Position, Normal, Texture vertex attribute, used in lighting. More...
 
var SHADER_3D_POSITION_NORMAL_TEXTURE
 Built in shader used for 3D, support Position, Normal, Texture vertex attribute, used in lighting. More...
 
local SHADER_3D_POSITION_NORMAL_TEXTURE
 Built in shader used for 3D, support Position, Normal, Texture vertex attribute, used in lighting. More...
 
static const char * SHADER_3D_SKINPOSITION_NORMAL_TEXTURE
 Built in shader used for 3D, support Position(skeletal animation by hardware skin), Normal, Texture vertex attribute, used in lighting. More...
 
static const char * SHADER_3D_PARTICLE_TEXTURE
 Built in shader for particles, support Position and Texture, with a color specified by a uniform. More...
 
static const char * SHADER_3D_PARTICLE_COLOR
 Built in shader for particles, support Position, with a color specified by a uniform. More...
 
var SHADER_3D_PARTICLE_COLOR
 Built in shader for particles, support Position, with a color specified by a uniform. More...
 
local SHADER_3D_PARTICLE_COLOR
 Built in shader for particles, support Position, with a color specified by a uniform. More...
 
Built uniform names
static const char * UNIFORM_NAME_AMBIENT_COLOR
 Ambient Color uniform. More...
 
var UNIFORM_NAME_AMBIENT_COLOR
 Ambient Color uniform. More...
 
local UNIFORM_NAME_AMBIENT_COLOR
 Ambient Color uniform. More...
 
static const char * UNIFORM_NAME_P_MATRIX
 Projection Matrix uniform. More...
 
var UNIFORM_NAME_P_MATRIX
 Projection Matrix uniform. More...
 
local UNIFORM_NAME_P_MATRIX
 Projection Matrix uniform. More...
 
static const char * UNIFORM_NAME_MV_MATRIX
 Model view matrix uniform. More...
 
var UNIFORM_NAME_MV_MATRIX
 Model view matrix uniform. More...
 
local UNIFORM_NAME_MV_MATRIX
 Model view matrix uniform. More...
 
static const char * UNIFORM_NAME_MVP_MATRIX
 Model view projection uniform. More...
 
var UNIFORM_NAME_MVP_MATRIX
 Model view projection uniform. More...
 
local UNIFORM_NAME_MVP_MATRIX
 Model view projection uniform. More...
 
static const char * UNIFORM_NAME_NORMAL_MATRIX
 Normal matrix uniform. More...
 
var UNIFORM_NAME_NORMAL_MATRIX
 Normal matrix uniform. More...
 
local UNIFORM_NAME_NORMAL_MATRIX
 Normal matrix uniform. More...
 
static const char * UNIFORM_NAME_TIME
 Time uniform. More...
 
var UNIFORM_NAME_TIME
 Time uniform. More...
 
local UNIFORM_NAME_TIME
 Time uniform. More...
 
static const char * UNIFORM_NAME_SIN_TIME
 Sin time uniform. More...
 
var UNIFORM_NAME_SIN_TIME
 Sin time uniform. More...
 
local UNIFORM_NAME_SIN_TIME
 Sin time uniform. More...
 
static const char * UNIFORM_NAME_COS_TIME
 Cos time uniform. More...
 
var UNIFORM_NAME_COS_TIME
 Cos time uniform. More...
 
local UNIFORM_NAME_COS_TIME
 Cos time uniform. More...
 
static const char * UNIFORM_NAME_RANDOM01
 Random number uniform. More...
 
var UNIFORM_NAME_RANDOM01
 Random number uniform. More...
 
local UNIFORM_NAME_RANDOM01
 Random number uniform. More...
 
static const char * UNIFORM_NAME_SAMPLER0
 Sampler uniform 0-3, used for textures. More...
 
var UNIFORM_NAME_SAMPLER0
 Sampler uniform 0-3, used for textures. More...
 
local UNIFORM_NAME_SAMPLER0
 Sampler uniform 0-3, used for textures. More...
 
static const char * UNIFORM_NAME_SAMPLER1
var UNIFORM_NAME_SAMPLER1
local UNIFORM_NAME_SAMPLER1
static const char * UNIFORM_NAME_SAMPLER2
var UNIFORM_NAME_SAMPLER2
local UNIFORM_NAME_SAMPLER2
static const char * UNIFORM_NAME_SAMPLER3
var UNIFORM_NAME_SAMPLER3
local UNIFORM_NAME_SAMPLER3
Built Attribute names
static const char * ATTRIBUTE_NAME_COLOR
 Attribute color. More...
 
var ATTRIBUTE_NAME_COLOR
 Attribute color. More...
 
local ATTRIBUTE_NAME_COLOR
 Attribute color. More...
 
static const char * ATTRIBUTE_NAME_POSITION
 Attribute position. More...
 
var ATTRIBUTE_NAME_POSITION
 Attribute position. More...
 
local ATTRIBUTE_NAME_POSITION
 Attribute position. More...
 
static const char * ATTRIBUTE_NAME_TEX_COORD
var ATTRIBUTE_NAME_TEX_COORD
local ATTRIBUTE_NAME_TEX_COORD
static const char * ATTRIBUTE_NAME_TEX_COORD1
var ATTRIBUTE_NAME_TEX_COORD1
local ATTRIBUTE_NAME_TEX_COORD1
static const char * ATTRIBUTE_NAME_TEX_COORD2
var ATTRIBUTE_NAME_TEX_COORD2
local ATTRIBUTE_NAME_TEX_COORD2
static const char * ATTRIBUTE_NAME_TEX_COORD3
var ATTRIBUTE_NAME_TEX_COORD3
local ATTRIBUTE_NAME_TEX_COORD3

Friends

class GLProgramState
bool initWithPrecompiledProgramByteArray (const GLchar *vShaderByteArray, const GLchar *fShaderByteArray)
static GLProgramcreateWithPrecompiledProgramByteArray (const GLchar *vShaderByteArray, const GLchar *fShaderByteArray)
local createWithPrecompiledProgramByteArray ( local vShaderByteArray, local fShaderByteArray)
bool initWithByteArrays (const GLchar *vShaderByteArray, const GLchar *fShaderByteArray)
static GLProgramcreateWithByteArrays (const GLchar *vShaderByteArray, const GLchar *fShaderByteArray)
local initWithString. ( local vShaderByteArray, local fShaderByteArray)
bool initWithFilenames (const std::string &vShaderFilename, const std::string &fShaderFilename)
static GLProgramcreateWithFilenames (const std::string &vShaderFilename, const std::string &fShaderFilename)
var init ( var vShaderFilename, var fShaderFilename)
local init ( local vShaderFilename, local fShaderFilename)
GLuint _program
 OpenGL handle for program. More...
 
GLuint _vertShader
 OpenGL handle for vertex shader. More...
 
var _vertShader
 OpenGL handle for vertex shader. More...
 
local _vertShader
 OpenGL handle for vertex shader. More...
 
GLuint _fragShader
 OpenGL handle for fragment shader. More...
 
var _fragShader
 OpenGL handle for fragment shader. More...
 
local _fragShader
 OpenGL handle for fragment shader. More...
 
GLint _builtInUniforms [UNIFORM_MAX]
 Built in uniforms. More...
 
var _builtInUniforms ()
 Built in uniforms. More...
 
local _builtInUniforms ()
 Built in uniforms. More...
 
bool _hasShaderCompiler
 Indicate whether it has a offline shader compiler or not. More...
 
var _hasShaderCompiler
 Indicate whether it has a offline shader compiler or not. More...
 
local _hasShaderCompiler
 Indicate whether it has a offline shader compiler or not. More...
 
std::string _shaderId
 Shader ID in precompiled shaders on Windows phone. More...
 
struct
cocos2d::GLProgram::flag_struct 
_flags
var _flags
local _flags
std::unordered_map
< std::string, Uniform
_userUniforms
 User defined Uniforms. More...
 
std::unordered_map
< std::string, VertexAttrib
_vertexAttribs
 User defined vertex attributes. More...
 
std::unordered_map< GLint,
std::pair< GLvoid *, unsigned
int > > 
_hashForUniforms
 Hash value of uniforms for quick access. More...
 
Director_director
void setUniformsForBuiltins ()
var setUniformsForBuiltins ()
local setUniformsForBuiltins ()
void setUniformsForBuiltins (const Mat4 &modelView)
var setUniformsForBuiltins ( var modelView)
local setUniformsForBuiltins ( local modelView)
std::string getVertexShaderLog () const
 @] More...
 
var getVertexShaderLog ()
 @] More...
 
local getVertexShaderLog ()
 @] More...
 
std::string getFragmentShaderLog () const
 returns the fragmentShader error log More...
 
var getFragmentShaderLog ()
 returns the fragmentShader error log More...
 
local getFragmentShaderLog ()
 returns the fragmentShader error log More...
 
std::string getProgramLog () const
 returns the program error log More...
 
void reset ()
 Reload all shaders, this function is designed for android when opengl context lost, so don't call it. More...
 
var reset ()
 Reload all shaders, this function is designed for android when opengl context lost, so don't call it. More...
 
local reset ()
 Reload all shaders, this function is designed for android when opengl context lost, so don't call it. More...
 
const GLuint getProgram () const
var getProgram ()
local getProgram ()
bool initWithVertexShaderByteArray (const GLchar *vertexByteArray, const GLchar *fragByteArray)
var initWithVertexShaderByteArray ( var vertexByteArray, var fragByteArray)
local initWithVertexShaderByteArray ( local vertexByteArray, local fragByteArray)
bool initWithVertexShaderFilename (const std::string &vertexFilename, const std::string &fragFilename)
local initWithVertexShaderFilename ( local vertexFilename, local fragFilename)
void addAttribute (const std::string &attributeName, GLuint index) const
bool updateUniformLocation (GLint location, const GLvoid *data, unsigned int bytes)
 Update the uniform data in location. More...
 
var updateUniformLocation ( var location, var data, var bytes)
 Update the uniform data in location. More...
 
local updateUniformLocation ( local location, local data, local bytes)
 Update the uniform data in location. More...
 
virtual std::string getDescription () const
 Get a general description of the shader. More...
 
void bindPredefinedVertexAttribs ()
 Bind the predefined vertex attributes to their specific slot. More...
 
local bindPredefinedVertexAttribs ()
 Bind the predefined vertex attributes to their specific slot. More...
 
void parseVertexAttribs ()
 Parse user defined Vertex Attributes automatically. More...
 
var parseVertexAttribs ()
 Parse user defined Vertex Attributes automatically. More...
 
local parseVertexAttribs ()
 Parse user defined Vertex Attributes automatically. More...
 
void parseUniforms ()
 Parse user defined uniform automatically. More...
 
var parseUniforms ()
 Parse user defined uniform automatically. More...
 
local parseUniforms ()
 Parse user defined uniform automatically. More...
 
bool compileShader (GLuint *shader, GLenum type, const GLchar *source)
 Compile the shader sources. More...
 
var compileShader ( var shader, var type, var source)
 Compile the shader sources. More...
 
local compileShader ( local shader, local type, local source)
 Compile the shader sources. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Ref
 Ref ()
 Constructor. More...
 
 Ref ()
 Constructor. More...
 
- Protected Attributes inherited from Ref
unsigned int _referenceCount
 count of references More...
 
local _referenceCount
 count of references More...
 

Detailed Description

GLProgram Class that implements a glProgram.

Since
v2.0.0

Member Enumeration Documentation

anonymous enum

Enum the preallocated vertex attribute.

Enumerator
VERTEX_ATTRIB_POSITION 

Index 0 will be used as Position.

VERTEX_ATTRIB_COLOR 

Index 1 will be used as Color.

VERTEX_ATTRIB_TEX_COORD 

Index 2 will be used as Tex coord unit 0.

VERTEX_ATTRIB_TEX_COORD1 

Index 3 will be used as Tex coord unit 1.

VERTEX_ATTRIB_TEX_COORD2 

Index 4 will be used as Tex coord unit 2.

VERTEX_ATTRIB_TEX_COORD3 

Index 5 will be used as Tex coord unit 3.

VERTEX_ATTRIB_NORMAL 

Index 6 will be used as Normal.

VERTEX_ATTRIB_BLEND_WEIGHT 

Index 7 will be used as Blend weight for hardware skin.

VERTEX_ATTRIB_BLEND_INDEX 

Index 8 will be used as Blend index.

VERTEX_ATTRIB_MAX 
VERTEX_ATTRIB_TEX_COORDS 
var enum

Enum the preallocated vertex attribute.

Enumerator
VERTEX_ATTRIB_POSITION 

Index 0 will be used as Position.

VERTEX_ATTRIB_COLOR 

Index 1 will be used as Color.

VERTEX_ATTRIB_TEX_COORD 

Index 2 will be used as Tex coord unit 0.

VERTEX_ATTRIB_TEX_COORD1 

Index 3 will be used as Tex coord unit 1.

VERTEX_ATTRIB_TEX_COORD2 

Index 4 will be used as Tex coord unit 2.

VERTEX_ATTRIB_TEX_COORD3 

Index 5 will be used as Tex coord unit 3.

VERTEX_ATTRIB_NORMAL 

Index 6 will be used as Normal.

VERTEX_ATTRIB_BLEND_WEIGHT 

Index 7 will be used as Blend weight for hardware skin.

VERTEX_ATTRIB_BLEND_INDEX 

Index 8 will be used as Blend index.

VERTEX_ATTRIB_MAX 
VERTEX_ATTRIB_TEX_COORDS 
local enum

Enum the preallocated vertex attribute.

Enumerator
VERTEX_ATTRIB_POSITION 

Index 0 will be used as Position.

VERTEX_ATTRIB_COLOR 

Index 1 will be used as Color.

VERTEX_ATTRIB_TEX_COORD 

Index 2 will be used as Tex coord unit 0.

VERTEX_ATTRIB_TEX_COORD1 

Index 3 will be used as Tex coord unit 1.

VERTEX_ATTRIB_TEX_COORD2 

Index 4 will be used as Tex coord unit 2.

VERTEX_ATTRIB_TEX_COORD3 

Index 5 will be used as Tex coord unit 3.

VERTEX_ATTRIB_NORMAL 

Index 6 will be used as Normal.

VERTEX_ATTRIB_BLEND_WEIGHT 

Index 7 will be used as Blend weight for hardware skin.

VERTEX_ATTRIB_BLEND_INDEX 

Index 8 will be used as Blend index.

VERTEX_ATTRIB_MAX 
VERTEX_ATTRIB_TEX_COORDS 
anonymous enum

Preallocated uniform handle.

Enumerator
UNIFORM_AMBIENT_COLOR 

Ambient color.

UNIFORM_P_MATRIX 

Projection matrix.

UNIFORM_MV_MATRIX 

Model view matrix.

UNIFORM_MVP_MATRIX 

Model view projection matrix.

UNIFORM_NORMAL_MATRIX 

Normal matrix.

UNIFORM_TIME 

Time.

UNIFORM_SIN_TIME 

sin(Time).

UNIFORM_COS_TIME 

cos(Time).

UNIFORM_RANDOM01 

Random number.

UNIFORM_SAMPLER0 

Sampler 0-3, used for texture.

UNIFORM_SAMPLER1 
UNIFORM_SAMPLER2 
UNIFORM_SAMPLER3 
UNIFORM_MAX 
var enum

Preallocated uniform handle.

Enumerator
UNIFORM_AMBIENT_COLOR 

Ambient color.

UNIFORM_P_MATRIX 

Projection matrix.

UNIFORM_MV_MATRIX 

Model view matrix.

UNIFORM_MVP_MATRIX 

Model view projection matrix.

UNIFORM_NORMAL_MATRIX 

Normal matrix.

UNIFORM_TIME 

Time.

UNIFORM_SIN_TIME 

sin(Time).

UNIFORM_COS_TIME 

cos(Time).

UNIFORM_RANDOM01 

Random number.

UNIFORM_SAMPLER0 

Sampler 0-3, used for texture.

UNIFORM_SAMPLER1 
UNIFORM_SAMPLER2 
UNIFORM_SAMPLER3 
UNIFORM_MAX 
local enum

Preallocated uniform handle.

Enumerator
UNIFORM_AMBIENT_COLOR 

Ambient color.

UNIFORM_P_MATRIX 

Projection matrix.

UNIFORM_MV_MATRIX 

Model view matrix.

UNIFORM_MVP_MATRIX 

Model view projection matrix.

UNIFORM_NORMAL_MATRIX 

Normal matrix.

UNIFORM_TIME 

Time.

UNIFORM_SIN_TIME 

sin(Time).

UNIFORM_COS_TIME 

cos(Time).

UNIFORM_RANDOM01 

Random number.

UNIFORM_SAMPLER0 

Sampler 0-3, used for texture.

UNIFORM_SAMPLER1 
UNIFORM_SAMPLER2 
UNIFORM_SAMPLER3 
UNIFORM_MAX 

Constructor & Destructor Documentation

GLProgram ( )

Constructor.

var GLProgram ( )

Constructor.

local GLProgram ( )

Constructor.

virtual ~GLProgram ( )
virtual

Destructor.

var ~GLProgram ( )
virtual

Destructor.

local ~GLProgram ( )
virtual

Destructor.

Member Function Documentation

void addAttribute ( const std::string &  attributeName,
GLuint  index 
) const
inline
var addAttribute ( var  attributeName,
var  index 
)
inline
local addAttribute ( local  attributeName,
local  index 
)
inline
void bindAttribLocation ( const std::string &  attributeName,
GLuint  index 
) const

It will add a new attribute to the shader by calling glBindAttribLocation.

var bindAttribLocation ( var  attributeName,
var  index 
)

It will add a new attribute to the shader by calling glBindAttribLocation.

local bindAttribLocation ( local  attributeName,
local  index 
)

It will add a new attribute to the shader by calling glBindAttribLocation.

void bindPredefinedVertexAttribs ( )
protected

Bind the predefined vertex attributes to their specific slot.

var bindPredefinedVertexAttribs ( )
protected

Bind the predefined vertex attributes to their specific slot.

local bindPredefinedVertexAttribs ( )
protected

Bind the predefined vertex attributes to their specific slot.

bool compileShader ( GLuint *  shader,
GLenum  type,
const GLchar source 
)
protected

Compile the shader sources.

var compileShader ( var  shader,
var  type,
var  source 
)
protected

Compile the shader sources.

local compileShader ( local  shader,
local  type,
local  source 
)
protected

Compile the shader sources.

static GLProgram*
createWithByteArrays
( const GLchar vShaderByteArray,
const GLchar fShaderByteArray 
)
static

Create or Initializes the GLProgram with a vertex and fragment with bytes array.

var initWithString. ( var  vShaderByteArray,
var  fShaderByteArray 
)
static

Create or Initializes the GLProgram with a vertex and fragment with bytes array.

local initWithString. ( local  vShaderByteArray,
local  fShaderByteArray 
)
static

Create or Initializes the GLProgram with a vertex and fragment with bytes array.

static GLProgram*
createWithFilenames
( const std::string &  vShaderFilename,
const std::string &  fShaderFilename 
)
static

Create or Initializes the GLProgram with a vertex and fragment with contents of filenames.

var init ( var  vShaderFilename,
var  fShaderFilename 
)
static

Create or Initializes the GLProgram with a vertex and fragment with contents of filenames.

local init ( local  vShaderFilename,
local  fShaderFilename 
)
static

Create or Initializes the GLProgram with a vertex and fragment with contents of filenames.

static GLProgram*
createWithPrecompiledProgramByteArray
( const GLchar vShaderByteArray,
const GLchar fShaderByteArray 
)
static

Initializes the CCGLProgram with precompiled shader program.

var
createWithPrecompiledProgramByteArray
( var  vShaderByteArray,
var  fShaderByteArray 
)
static

Initializes the CCGLProgram with precompiled shader program.

local
createWithPrecompiledProgramByteArray
( local  vShaderByteArray,
local  fShaderByteArray 
)
static

Initializes the CCGLProgram with precompiled shader program.

GLint getAttribLocation ( const std::string &  attributeName) const

Calls glGetAttribLocation.

var getAttribLocation ( var  attributeName)

Calls glGetAttribLocation.

local getAttribLocation ( local  attributeName)

Calls glGetAttribLocation.

virtual std::string getDescription ( ) const
protectedvirtual

Get a general description of the shader.

var getDescription ( )
protectedvirtual

Get a general description of the shader.

local getDescription ( )
protectedvirtual

Get a general description of the shader.

std::string getFragmentShaderLog ( ) const

returns the fragmentShader error log

var getFragmentShaderLog ( )

returns the fragmentShader error log

local getFragmentShaderLog ( )

returns the fragmentShader error log

const GLuint getProgram ( ) const
inline
var getProgram ( )
inline
local getProgram ( )
inline
std::string getProgramLog ( ) const

returns the program error log

var getProgramLog ( )

returns the program error log

local getProgramLog ( )

returns the program error log

Uniform* getUniform ( const std::string &  name)

Get the uniform or vertex attribute by string name in shader, return null if it does not exist.

var getUniform ( var  name)

Get the uniform or vertex attribute by string name in shader, return null if it does not exist.

local getUniform ( local  name)

Get the uniform or vertex attribute by string name in shader, return null if it does not exist.

GLint getUniformLocation ( const std::string &  attributeName) const

Calls glGetUniformLocation().

var getUniformLocation ( var  attributeName)

Calls glGetUniformLocation().

local getUniformLocation ( local  attributeName)

Calls glGetUniformLocation().

GLint getUniformLocationForName ( const char *  name) const

calls retrieves the named uniform location for this shader program.

var getUniformLocationForName ( var  name)

calls retrieves the named uniform location for this shader program.

local getUniformLocationForName ( local  name)

calls retrieves the named uniform location for this shader program.

VertexAttrib* getVertexAttrib ( const std::string &  name)
var getVertexAttrib ( var  name)
local getVertexAttrib ( local  name)
std::string getVertexShaderLog ( ) const

@]

returns the vertexShader error log

var getVertexShaderLog ( )

@]

returns the vertexShader error log

local getVertexShaderLog ( )

@]

returns the vertexShader error log

bool initWithByteArrays ( const GLchar vShaderByteArray,
const GLchar fShaderByteArray 
)
var initWithByteArrays ( var  vShaderByteArray,
var  fShaderByteArray 
)
local initWithByteArrays ( local  vShaderByteArray,
local  fShaderByteArray 
)
bool initWithFilenames ( const std::string &  vShaderFilename,
const std::string &  fShaderFilename 
)
var initWithFilenames ( var  vShaderFilename,
var  fShaderFilename 
)
local initWithFilenames ( local  vShaderFilename,
local  fShaderFilename 
)
bool
initWithPrecompiledProgramByteArray
( const GLchar vShaderByteArray,
const GLchar fShaderByteArray 
)
var
initWithPrecompiledProgramByteArray
( var  vShaderByteArray,
var  fShaderByteArray 
)
local
initWithPrecompiledProgramByteArray
( local  vShaderByteArray,
local  fShaderByteArray 
)
bool initWithVertexShaderByteArray ( const GLchar vertexByteArray,
const GLchar fragByteArray 
)
inline
var initWithVertexShaderByteArray ( var  vertexByteArray,
var  fragByteArray 
)
inline
local initWithVertexShaderByteArray ( local  vertexByteArray,
local  fragByteArray 
)
inline
bool initWithVertexShaderFilename ( const std::string &  vertexFilename,
const std::string &  fragFilename 
)
inline
var initWithVertexShaderFilename ( var  vertexFilename,
var  fragFilename 
)
inline
local initWithVertexShaderFilename ( local  vertexFilename,
local  fragFilename 
)
inline
bool link ( )

links the glProgram

var link ( )

links the glProgram

local link ( )

links the glProgram

void parseUniforms ( )
protected

Parse user defined uniform automatically.

var parseUniforms ( )
protected

Parse user defined uniform automatically.

local parseUniforms ( )
protected

Parse user defined uniform automatically.

void parseVertexAttribs ( )
protected

Parse user defined Vertex Attributes automatically.

var parseVertexAttribs ( )
protected

Parse user defined Vertex Attributes automatically.

local parseVertexAttribs ( )
protected

Parse user defined Vertex Attributes automatically.

void reset ( )

Reload all shaders, this function is designed for android when opengl context lost, so don't call it.

var reset ( )

Reload all shaders, this function is designed for android when opengl context lost, so don't call it.

local reset ( )

Reload all shaders, this function is designed for android when opengl context lost, so don't call it.

void setUniformLocationWith1f ( GLint  location,
GLfloat  f1 
)

calls glUniform1f only if the values are different than the previous call for this same shader program.

In js or lua,please use setUniformLocationF32

local setUniformLocationWith1f ( local  location,
local  f1 
)

calls glUniform1f only if the values are different than the previous call for this same shader program.

In js or lua,please use setUniformLocationF32

void setUniformLocationWith1fv ( GLint  location,
const GLfloat *  floats,
unsigned int  numberOfArrays 
)

calls glUniformfv only if the values are different than the previous call for this same shader program.

var setUniformLocationWith1fv ( var  location,
var  floats,
var  numberOfArrays 
)

calls glUniformfv only if the values are different than the previous call for this same shader program.

local setUniformLocationWith1fv ( local  location,
local  floats,
local  numberOfArrays 
)

calls glUniformfv only if the values are different than the previous call for this same shader program.

void setUniformLocationWith1i ( GLint  location,
GLint  i1 
)

calls glUniform1i only if the values are different than the previous call for this same shader program.

var setUniformLocationI32 ( var  location,
var  i1 
)

calls glUniform1i only if the values are different than the previous call for this same shader program.

local setUniformLocationI32 ( local  location,
local  i1 
)

calls glUniform1i only if the values are different than the previous call for this same shader program.

void setUniformLocationWith2f ( GLint  location,
GLfloat  f1,
GLfloat  f2 
)

calls glUniform2f only if the values are different than the previous call for this same shader program.

In js or lua,please use setUniformLocationF32

local setUniformLocationWith2f ( local  location,
local  f1,
local  f2 
)

calls glUniform2f only if the values are different than the previous call for this same shader program.

In js or lua,please use setUniformLocationF32

void setUniformLocationWith2fv ( GLint  location,
const GLfloat *  floats,
unsigned int  numberOfArrays 
)

calls glUniform2fv only if the values are different than the previous call for this same shader program.

var setUniformLocationWith2fv ( var  location,
var  floats,
var  numberOfArrays 
)

calls glUniform2fv only if the values are different than the previous call for this same shader program.

local setUniformLocationWith2fv ( local  location,
local  floats,
local  numberOfArrays 
)

calls glUniform2fv only if the values are different than the previous call for this same shader program.

void setUniformLocationWith2i ( GLint  location,
GLint  i1,
GLint  i2 
)

calls glUniform2i only if the values are different than the previous call for this same shader program.

var setUniformLocationWith2i ( var  location,
var  i1,
var  i2 
)

calls glUniform2i only if the values are different than the previous call for this same shader program.

local setUniformLocationWith2i ( local  location,
local  i1,
local  i2 
)

calls glUniform2i only if the values are different than the previous call for this same shader program.

void setUniformLocationWith2iv ( GLint  location,
GLint *  ints,
unsigned int  numberOfArrays 
)

calls glUniform2iv only if the values are different than the previous call for this same shader program.

var setUniformLocationWith2iv ( var  location,
var  ints,
var  numberOfArrays 
)

calls glUniform2iv only if the values are different than the previous call for this same shader program.

local setUniformLocationWith2iv ( local  location,
local  ints,
local  numberOfArrays 
)

calls glUniform2iv only if the values are different than the previous call for this same shader program.

void setUniformLocationWith3f ( GLint  location,
GLfloat  f1,
GLfloat  f2,
GLfloat  f3 
)

calls glUniform3f only if the values are different than the previous call for this same shader program.

In js or lua,please use setUniformLocationF32

local setUniformLocationWith3f ( local  location,
local  f1,
local  f2,
local  f3 
)

calls glUniform3f only if the values are different than the previous call for this same shader program.

In js or lua,please use setUniformLocationF32

void setUniformLocationWith3fv ( GLint  location,
const GLfloat *  floats,
unsigned int  numberOfArrays 
)

calls glUniform3fv only if the values are different than the previous call for this same shader program.

var setUniformLocationWith3fv ( var  location,
var  floats,
var  numberOfArrays 
)

calls glUniform3fv only if the values are different than the previous call for this same shader program.

local setUniformLocationWith3fv ( local  location,
local  floats,
local  numberOfArrays 
)

calls glUniform3fv only if the values are different than the previous call for this same shader program.

void setUniformLocationWith3i ( GLint  location,
GLint  i1,
GLint  i2,
GLint  i3 
)

calls glUniform3i only if the values are different than the previous call for this same shader program.

var setUniformLocationWith3i ( var  location,
var  i1,
var  i2,
var  i3 
)

calls glUniform3i only if the values are different than the previous call for this same shader program.

local setUniformLocationWith3i ( local  location,
local  i1,
local  i2,
local  i3 
)

calls glUniform3i only if the values are different than the previous call for this same shader program.

void setUniformLocationWith3iv ( GLint  location,
GLint *  ints,
unsigned int  numberOfArrays 
)

calls glUniform3iv only if the values are different than the previous call for this same shader program.

var setUniformLocationWith3iv ( var  location,
var  ints,
var  numberOfArrays 
)

calls glUniform3iv only if the values are different than the previous call for this same shader program.

local setUniformLocationWith3iv ( local  location,
local  ints,
local  numberOfArrays 
)

calls glUniform3iv only if the values are different than the previous call for this same shader program.

void setUniformLocationWith4f ( GLint  location,
GLfloat  f1,
GLfloat  f2,
GLfloat  f3,
GLfloat  f4 
)

calls glUniform4f only if the values are different than the previous call for this same shader program.

In js or lua,please use setUniformLocationF32

local setUniformLocationWith4f ( local  location,
local  f1,
local  f2,
local  f3,
local  f4 
)

calls glUniform4f only if the values are different than the previous call for this same shader program.

In js or lua,please use setUniformLocationF32

void setUniformLocationWith4fv ( GLint  location,
const GLfloat *  floats,
unsigned int  numberOfArrays 
)

calls glUniform4fv only if the values are different than the previous call for this same shader program.

var setUniformLocationWith4fv ( var  location,
var  floats,
var  numberOfArrays 
)

calls glUniform4fv only if the values are different than the previous call for this same shader program.

local setUniformLocationWith4fv ( local  location,
local  floats,
local  numberOfArrays 
)

calls glUniform4fv only if the values are different than the previous call for this same shader program.

void setUniformLocationWith4i ( GLint  location,
GLint  i1,
GLint  i2,
GLint  i3,
GLint  i4 
)

calls glUniform4i only if the values are different than the previous call for this same shader program.

var setUniformLocationWith4i ( var  location,
var  i1,
var  i2,
var  i3,
var  i4 
)

calls glUniform4i only if the values are different than the previous call for this same shader program.

local setUniformLocationWith4i ( local  location,
local  i1,
local  i2,
local  i3,
local  i4 
)

calls glUniform4i only if the values are different than the previous call for this same shader program.

void setUniformLocationWith4iv ( GLint  location,
GLint *  ints,
unsigned int  numberOfArrays 
)

calls glUniform4iv only if the values are different than the previous call for this same shader program.

var setUniformLocationWith4iv ( var  location,
var  ints,
var  numberOfArrays 
)

calls glUniform4iv only if the values are different than the previous call for this same shader program.

local setUniformLocationWith4iv ( local  location,
local  ints,
local  numberOfArrays 
)

calls glUniform4iv only if the values are different than the previous call for this same shader program.

void
setUniformLocationWithMatrix2fv
( GLint  location,
const GLfloat *  matrixArray,
unsigned int  numberOfMatrices 
)

calls glUniformMatrix2fv only if the values are different than the previous call for this same shader program.

var setUniformLocationWithMatrix2fv ( var  location,
var  matrixArray,
var  numberOfMatrices 
)

calls glUniformMatrix2fv only if the values are different than the previous call for this same shader program.

local
setUniformLocationWithMatrix2fv
( local  location,
local  matrixArray,
local  numberOfMatrices 
)

calls glUniformMatrix2fv only if the values are different than the previous call for this same shader program.

void
setUniformLocationWithMatrix3fv
( GLint  location,
const GLfloat *  matrixArray,
unsigned int  numberOfMatrices 
)

calls glUniformMatrix3fv only if the values are different than the previous call for this same shader program.

var setUniformLocationWithMatrix3fv ( var  location,
var  matrixArray,
var  numberOfMatrices 
)

calls glUniformMatrix3fv only if the values are different than the previous call for this same shader program.

local
setUniformLocationWithMatrix3fv
( local  location,
local  matrixArray,
local  numberOfMatrices 
)

calls glUniformMatrix3fv only if the values are different than the previous call for this same shader program.

void
setUniformLocationWithMatrix4fv
( GLint  location,
const GLfloat *  matrixArray,
unsigned int  numberOfMatrices 
)

calls glUniformMatrix4fv only if the values are different than the previous call for this same shader program.

var setUniformLocationWithMatrix4fv ( var  location,
var  matrixArray,
var  numberOfMatrices 
)

calls glUniformMatrix4fv only if the values are different than the previous call for this same shader program.

local
setUniformLocationWithMatrix4fv
( local  location,
local  matrixArray,
local  numberOfMatrices 
)

calls glUniformMatrix4fv only if the values are different than the previous call for this same shader program.

void setUniformsForBuiltins ( )

will update the builtin uniforms if they are different than the previous call for this same shader program.

Parameters
modelViewmodelView matrix applied to the built in uniform of the shader.
var setUniformsForBuiltins ( )

will update the builtin uniforms if they are different than the previous call for this same shader program.

Parameters
modelViewmodelView matrix applied to the built in uniform of the shader.
local setUniformsForBuiltins ( )

will update the builtin uniforms if they are different than the previous call for this same shader program.

Parameters
modelViewmodelView matrix applied to the built in uniform of the shader.
void setUniformsForBuiltins ( const Mat4 modelView)
var setUniformsForBuiltins ( var  modelView)
local setUniformsForBuiltins ( local  modelView)
bool updateUniformLocation ( GLint  location,
const GLvoid *  data,
unsigned int  bytes 
)
protected

Update the uniform data in location.

Parameters
locationThe location of the uniform.
dataUpdated data. bytes Data length in bytes to update.
var updateUniformLocation ( var  location,
var  data,
var  bytes 
)
protected

Update the uniform data in location.

Parameters
locationThe location of the uniform.
dataUpdated data. bytes Data length in bytes to update.
local updateUniformLocation ( local  location,
local  data,
local  bytes 
)
protected

Update the uniform data in location.

Parameters
locationThe location of the uniform.
dataUpdated data. bytes Data length in bytes to update.
void updateUniforms ( )

It will create 4 uniforms:

  • kUniformPMatrix
  • kUniformMVMatrix
  • kUniformMVPMatrix
  • GLProgram::UNIFORM_SAMPLER

And it will bind "GLProgram::UNIFORM_SAMPLER" to 0

var updateUniforms ( )

It will create 4 uniforms:

  • kUniformPMatrix
  • kUniformMVMatrix
  • kUniformMVPMatrix
  • GLProgram::UNIFORM_SAMPLER

And it will bind "GLProgram::UNIFORM_SAMPLER" to 0

local updateUniforms ( )

It will create 4 uniforms:

  • kUniformPMatrix
  • kUniformMVMatrix
  • kUniformMVPMatrix
  • GLProgram::UNIFORM_SAMPLER

And it will bind "GLProgram::UNIFORM_SAMPLER" to 0

void use ( )

it will call glUseProgram()

var use ( )

it will call glUseProgram()

local use ( )

it will call glUseProgram()

Friends And Related Function Documentation

friend class GLProgramState
friend
var GLProgramState
friend
local GLProgramState
friend

Member Data Documentation

GLint _builtInUniforms[UNIFORM_MAX]
protected

Built in uniforms.

GLint _builtInUniforms[UNIFORM_MAX]
protected

Built in uniforms.

GLint _builtInUniforms[UNIFORM_MAX]
protected

Built in uniforms.

Director* _director
protected
var _director
protected
local _director
protected
struct
cocos2d::GLProgram::flag_struct
_flags
protected
var _flags
protected
local _flags
protected
GLuint _fragShader
protected

OpenGL handle for fragment shader.

var _fragShader
protected

OpenGL handle for fragment shader.

local _fragShader
protected

OpenGL handle for fragment shader.

std::unordered_map<GLint,
std::pair<GLvoid*, unsigned
int> > _hashForUniforms
protected

Hash value of uniforms for quick access.

var _hashForUniforms
protected

Hash value of uniforms for quick access.

local _hashForUniforms
protected

Hash value of uniforms for quick access.

bool _hasShaderCompiler
protected

Indicate whether it has a offline shader compiler or not.

var _hasShaderCompiler
protected

Indicate whether it has a offline shader compiler or not.

local _hasShaderCompiler
protected

Indicate whether it has a offline shader compiler or not.

GLuint _program
protected

OpenGL handle for program.

var _program
protected

OpenGL handle for program.

local _program
protected

OpenGL handle for program.

std::string _shaderId
protected

Shader ID in precompiled shaders on Windows phone.

var _shaderId
protected

Shader ID in precompiled shaders on Windows phone.

local _shaderId
protected

Shader ID in precompiled shaders on Windows phone.

std::unordered_map<std::string,
Uniform> _userUniforms
protected

User defined Uniforms.

var _userUniforms
protected

User defined Uniforms.

local _userUniforms
protected

User defined Uniforms.

std::unordered_map<std::string,
VertexAttrib> _vertexAttribs
protected

User defined vertex attributes.

var _vertexAttribs
protected

User defined vertex attributes.

local _vertexAttribs
protected

User defined vertex attributes.

GLuint _vertShader
protected

OpenGL handle for vertex shader.

var _vertShader
protected

OpenGL handle for vertex shader.

local _vertShader
protected

OpenGL handle for vertex shader.

const char*
ATTRIBUTE_NAME_BLEND_INDEX
static

Attribute blend index.

var ATTRIBUTE_NAME_BLEND_INDEX
static

Attribute blend index.

local ATTRIBUTE_NAME_BLEND_INDEX
static

Attribute blend index.

const char*
ATTRIBUTE_NAME_BLEND_WEIGHT
static

Attribute blend weight.

var ATTRIBUTE_NAME_BLEND_WEIGHT
static

Attribute blend weight.

local ATTRIBUTE_NAME_BLEND_WEIGHT
static

Attribute blend weight.

const char* ATTRIBUTE_NAME_COLOR
static

Attribute color.

var ATTRIBUTE_NAME_COLOR
static

Attribute color.

local ATTRIBUTE_NAME_COLOR
static

Attribute color.

const char* ATTRIBUTE_NAME_NORMAL
static

Attribute normal.

var ATTRIBUTE_NAME_NORMAL
static

Attribute normal.

local ATTRIBUTE_NAME_NORMAL
static

Attribute normal.

const char* ATTRIBUTE_NAME_POSITION
static

Attribute position.

var ATTRIBUTE_NAME_POSITION
static

Attribute position.

local ATTRIBUTE_NAME_POSITION
static

Attribute position.

const char*
ATTRIBUTE_NAME_TEX_COORD
static

Attribute Texcoord 0-3.

var ATTRIBUTE_NAME_TEX_COORD
static

Attribute Texcoord 0-3.

local ATTRIBUTE_NAME_TEX_COORD
static

Attribute Texcoord 0-3.

const char*
ATTRIBUTE_NAME_TEX_COORD1
static
var ATTRIBUTE_NAME_TEX_COORD1
static
local ATTRIBUTE_NAME_TEX_COORD1
static
const char*
ATTRIBUTE_NAME_TEX_COORD2
static
var ATTRIBUTE_NAME_TEX_COORD2
static
local ATTRIBUTE_NAME_TEX_COORD2
static
const char*
ATTRIBUTE_NAME_TEX_COORD3
static
var ATTRIBUTE_NAME_TEX_COORD3
static
local ATTRIBUTE_NAME_TEX_COORD3
static
const char*
SHADER_3D_PARTICLE_COLOR
static

Built in shader for particles, support Position, with a color specified by a uniform.

var SHADER_3D_PARTICLE_COLOR
static

Built in shader for particles, support Position, with a color specified by a uniform.

local SHADER_3D_PARTICLE_COLOR
static

Built in shader for particles, support Position, with a color specified by a uniform.

const char*
SHADER_3D_PARTICLE_TEXTURE
static

Built in shader for particles, support Position and Texture, with a color specified by a uniform.

var SHADER_3D_PARTICLE_TEXTURE
static

Built in shader for particles, support Position and Texture, with a color specified by a uniform.

local SHADER_3D_PARTICLE_TEXTURE
static

Built in shader for particles, support Position and Texture, with a color specified by a uniform.

const char* SHADER_3D_POSITION
static

Built in shader used for 3D, support Position vertex attribute, with color specified by a uniform.

var SHADER_3D_POSITION
static

Built in shader used for 3D, support Position vertex attribute, with color specified by a uniform.

local SHADER_3D_POSITION
static

Built in shader used for 3D, support Position vertex attribute, with color specified by a uniform.

const char*
SHADER_3D_POSITION_NORMAL
static

Built in shader used for 3D, support Position and Normal vertex attribute, used in lighting.

with color specified by a uniform.

var SHADER_3D_POSITION_NORMAL
static

Built in shader used for 3D, support Position and Normal vertex attribute, used in lighting.

with color specified by a uniform.

local SHADER_3D_POSITION_NORMAL
static

Built in shader used for 3D, support Position and Normal vertex attribute, used in lighting.

with color specified by a uniform.

const char*
SHADER_3D_POSITION_NORMAL_TEXTURE
static

Built in shader used for 3D, support Position, Normal, Texture vertex attribute, used in lighting.

with color specified by a uniform.

var
SHADER_3D_POSITION_NORMAL_TEXTURE
static

Built in shader used for 3D, support Position, Normal, Texture vertex attribute, used in lighting.

with color specified by a uniform.

local
SHADER_3D_POSITION_NORMAL_TEXTURE
static

Built in shader used for 3D, support Position, Normal, Texture vertex attribute, used in lighting.

with color specified by a uniform.

const char*
SHADER_3D_POSITION_TEXTURE
static

Built in shader used for 3D, support Position and Texture vertex attribute, with color specified by a uniform.

var SHADER_3D_POSITION_TEXTURE
static

Built in shader used for 3D, support Position and Texture vertex attribute, with color specified by a uniform.

local SHADER_3D_POSITION_TEXTURE
static

Built in shader used for 3D, support Position and Texture vertex attribute, with color specified by a uniform.

const char*
SHADER_3D_SKINPOSITION_NORMAL_TEXTURE
static

Built in shader used for 3D, support Position(skeletal animation by hardware skin), Normal, Texture vertex attribute, used in lighting.

with color specified by a uniform.

var
SHADER_3D_SKINPOSITION_NORMAL_TEXTURE
static

Built in shader used for 3D, support Position(skeletal animation by hardware skin), Normal, Texture vertex attribute, used in lighting.

with color specified by a uniform.

local
SHADER_3D_SKINPOSITION_NORMAL_TEXTURE
static

Built in shader used for 3D, support Position(skeletal animation by hardware skin), Normal, Texture vertex attribute, used in lighting.

with color specified by a uniform.

const char*
SHADER_3D_SKINPOSITION_TEXTURE
static

Built in shader used for 3D, support Position (Skeletal animation by hardware skin) and Texture vertex attribute, with color specified by a uniform.

var SHADER_3D_SKINPOSITION_TEXTURE
static

Built in shader used for 3D, support Position (Skeletal animation by hardware skin) and Texture vertex attribute, with color specified by a uniform.

local
SHADER_3D_SKINPOSITION_TEXTURE
static

Built in shader used for 3D, support Position (Skeletal animation by hardware skin) and Texture vertex attribute, with color specified by a uniform.

const char*
SHADER_NAME_LABEL_DISTANCEFIELD_GLOW
static
var
SHADER_NAME_LABEL_DISTANCEFIELD_GLOW
static
local
SHADER_NAME_LABEL_DISTANCEFIELD_GLOW
static
const char*
SHADER_NAME_LABEL_DISTANCEFIELD_NORMAL
static
var
SHADER_NAME_LABEL_DISTANCEFIELD_NORMAL
static
local
SHADER_NAME_LABEL_DISTANCEFIELD_NORMAL
static
const char*
SHADER_NAME_LABEL_NORMAL
static

Built in shader for label and label with effects.

var SHADER_NAME_LABEL_NORMAL
static

Built in shader for label and label with effects.

local SHADER_NAME_LABEL_NORMAL
static

Built in shader for label and label with effects.

const char*
SHADER_NAME_LABEL_OUTLINE
static
var SHADER_NAME_LABEL_OUTLINE
static
local SHADER_NAME_LABEL_OUTLINE
static
const char*
SHADER_NAME_POSITION_COLOR
static

Built in shader for 2d.

Support Position, Color vertex attribute.

var SHADER_NAME_POSITION_COLOR
static

Built in shader for 2d.

Support Position, Color vertex attribute.

local SHADER_NAME_POSITION_COLOR
static

Built in shader for 2d.

Support Position, Color vertex attribute.

const char*
SHADER_NAME_POSITION_COLOR_NO_MVP
static

Built in shader for 2d.

Support Position, Color vertex attribute, without multiply vertex by MVP matrix.

var
SHADER_NAME_POSITION_COLOR_NO_MVP
static

Built in shader for 2d.

Support Position, Color vertex attribute, without multiply vertex by MVP matrix.

local
SHADER_NAME_POSITION_COLOR_NO_MVP
static

Built in shader for 2d.

Support Position, Color vertex attribute, without multiply vertex by MVP matrix.

const char*
SHADER_NAME_POSITION_COLOR_NO_MVP_GRAYĆ„SCALE
static

Built in shader for 2d.

Support Position, Color vertex attribute, without multiply vertex by MVP matrix and have a grey scale fragment shader.

var ALE
static

Built in shader for 2d.

Support Position, Color vertex attribute, without multiply vertex by MVP matrix and have a grey scale fragment shader.

local ALE
static

Built in shader for 2d.

Support Position, Color vertex attribute, without multiply vertex by MVP matrix and have a grey scale fragment shader.

const char*
SHADER_NAME_POSITION_COLOR_TEXASPOINTSIZE
static

Built in shader for 2d.

Support Position, Color, Texture vertex attribute. texture coordinate will used as point size.

var
SHADER_NAME_POSITION_COLOR_TEXASPOINTSIZE
static

Built in shader for 2d.

Support Position, Color, Texture vertex attribute. texture coordinate will used as point size.

local
SHADER_NAME_POSITION_COLOR_TEXASPOINTSIZE
static

Built in shader for 2d.

Support Position, Color, Texture vertex attribute. texture coordinate will used as point size.

const char*
SHADER_NAME_POSITION_LENGTH_TEXTURE_COLOR
static

Built in shader for draw a sector with 90 degrees with center at bottom left point.

var
SHADER_NAME_POSITION_LENGTH_TEXTURE_COLOR
static

Built in shader for draw a sector with 90 degrees with center at bottom left point.

local
SHADER_NAME_POSITION_LENGTH_TEXTURE_COLOR
static

Built in shader for draw a sector with 90 degrees with center at bottom left point.

const char*
SHADER_NAME_POSITION_TEXTURE
static

Built in shader for 2d.

Support Position, Texture vertex attribute.

var SHADER_NAME_POSITION_TEXTURE
static

Built in shader for 2d.

Support Position, Texture vertex attribute.

local SHADER_NAME_POSITION_TEXTURE
static

Built in shader for 2d.

Support Position, Texture vertex attribute.

const char*
SHADER_NAME_POSITION_TEXTURE_A8_COLOR
static

Built in shader for 2d.

Support Position, Texture and Color vertex attribute. but alpha will be the multiplication of color attribute and texture.

var
SHADER_NAME_POSITION_TEXTURE_A8_COLOR
static

Built in shader for 2d.

Support Position, Texture and Color vertex attribute. but alpha will be the multiplication of color attribute and texture.

local
SHADER_NAME_POSITION_TEXTURE_A8_COLOR
static

Built in shader for 2d.

Support Position, Texture and Color vertex attribute. but alpha will be the multiplication of color attribute and texture.

const char*
SHADER_NAME_POSITION_TEXTURE_ALPHA_TEST
static

Built in shader for 2d.

Support Position, Texture vertex attribute, but include alpha test.

var
SHADER_NAME_POSITION_TEXTURE_ALPHA_TEST
static

Built in shader for 2d.

Support Position, Texture vertex attribute, but include alpha test.

local
SHADER_NAME_POSITION_TEXTURE_ALPHA_TEST
static

Built in shader for 2d.

Support Position, Texture vertex attribute, but include alpha test.

const char*
SHADER_NAME_POSITION_TEXTURE_ALPHA_TEST_NO_MV
static

Built in shader for 2d.

Support Position, Texture and Color vertex attribute, include alpha test and without multiply vertex by MVP matrix.

var
SHADER_NAME_POSITION_TEXTURE_ALPHA_TEST_NO_MV
static

Built in shader for 2d.

Support Position, Texture and Color vertex attribute, include alpha test and without multiply vertex by MVP matrix.

local
SHADER_NAME_POSITION_TEXTURE_ALPHA_TEST_NO_MV
static

Built in shader for 2d.

Support Position, Texture and Color vertex attribute, include alpha test and without multiply vertex by MVP matrix.

const char*
SHADER_NAME_POSITION_TEXTURE_COLOR
static

Built in shader for 2d.

Support Position, Texture and Color vertex attribute.

var
SHADER_NAME_POSITION_TEXTURE_COLOR
static

Built in shader for 2d.

Support Position, Texture and Color vertex attribute.

local
SHADER_NAME_POSITION_TEXTURE_COLOR
static

Built in shader for 2d.

Support Position, Texture and Color vertex attribute.

const char*
SHADER_NAME_POSITION_TEXTURE_COLOR_NO_MVP
static

Built in shader for 2d.

Support Position, Texture and Color vertex attribute, but without multiply vertex by MVP matrix.

var
SHADER_NAME_POSITION_TEXTURE_COLOR_NO_MVP
static

Built in shader for 2d.

Support Position, Texture and Color vertex attribute, but without multiply vertex by MVP matrix.

local
SHADER_NAME_POSITION_TEXTURE_COLOR_NO_MVP
static

Built in shader for 2d.

Support Position, Texture and Color vertex attribute, but without multiply vertex by MVP matrix.

const char*
SHADER_NAME_POSITION_TEXTURE_U_COLOR
static

Built in shader for 2d.

Support Position, Texture vertex attribute. with a specified uniform as color

var
SHADER_NAME_POSITION_TEXTURE_U_COLOR
static

Built in shader for 2d.

Support Position, Texture vertex attribute. with a specified uniform as color

local
SHADER_NAME_POSITION_TEXTURE_U_COLOR
static

Built in shader for 2d.

Support Position, Texture vertex attribute. with a specified uniform as color

const char*
SHADER_NAME_POSITION_U_COLOR
static

Built in shader for 2d.

Support Position, with color specified by a uniform.

var SHADER_NAME_POSITION_U_COLOR
static

Built in shader for 2d.

Support Position, with color specified by a uniform.

local SHADER_NAME_POSITION_U_COLOR
static

Built in shader for 2d.

Support Position, with color specified by a uniform.

const char*
UNIFORM_NAME_ALPHA_TEST_VALUE
static

Alpha test value uniform.

var UNIFORM_NAME_ALPHA_TEST_VALUE
static

Alpha test value uniform.

local UNIFORM_NAME_ALPHA_TEST_VALUE
static

Alpha test value uniform.

const char*
UNIFORM_NAME_AMBIENT_COLOR
static

Ambient Color uniform.

var UNIFORM_NAME_AMBIENT_COLOR
static

Ambient Color uniform.

local UNIFORM_NAME_AMBIENT_COLOR
static

Ambient Color uniform.

const char* UNIFORM_NAME_COS_TIME
static

Cos time uniform.

var UNIFORM_NAME_COS_TIME
static

Cos time uniform.

local UNIFORM_NAME_COS_TIME
static

Cos time uniform.

const char* UNIFORM_NAME_MV_MATRIX
static

Model view matrix uniform.

var UNIFORM_NAME_MV_MATRIX
static

Model view matrix uniform.

local UNIFORM_NAME_MV_MATRIX
static

Model view matrix uniform.

const char* UNIFORM_NAME_MVP_MATRIX
static

Model view projection uniform.

var UNIFORM_NAME_MVP_MATRIX
static

Model view projection uniform.

local UNIFORM_NAME_MVP_MATRIX
static

Model view projection uniform.

const char*
UNIFORM_NAME_NORMAL_MATRIX
static

Normal matrix uniform.

var UNIFORM_NAME_NORMAL_MATRIX
static

Normal matrix uniform.

local UNIFORM_NAME_NORMAL_MATRIX
static

Normal matrix uniform.

const char* UNIFORM_NAME_P_MATRIX
static

Projection Matrix uniform.

var UNIFORM_NAME_P_MATRIX
static

Projection Matrix uniform.

local UNIFORM_NAME_P_MATRIX
static

Projection Matrix uniform.

const char* UNIFORM_NAME_RANDOM01
static

Random number uniform.

var UNIFORM_NAME_RANDOM01
static

Random number uniform.

local UNIFORM_NAME_RANDOM01
static

Random number uniform.

const char* UNIFORM_NAME_SAMPLER0
static

Sampler uniform 0-3, used for textures.

var UNIFORM_NAME_SAMPLER0
static

Sampler uniform 0-3, used for textures.

local UNIFORM_NAME_SAMPLER0
static

Sampler uniform 0-3, used for textures.

const char* UNIFORM_NAME_SAMPLER1
static
var UNIFORM_NAME_SAMPLER1
static
local UNIFORM_NAME_SAMPLER1
static
const char* UNIFORM_NAME_SAMPLER2
static
var UNIFORM_NAME_SAMPLER2
static
local UNIFORM_NAME_SAMPLER2
static
const char* UNIFORM_NAME_SAMPLER3
static
var UNIFORM_NAME_SAMPLER3
static
local UNIFORM_NAME_SAMPLER3
static
const char* UNIFORM_NAME_SIN_TIME
static

Sin time uniform.

var UNIFORM_NAME_SIN_TIME
static

Sin time uniform.

local UNIFORM_NAME_SIN_TIME
static

Sin time uniform.

const char* UNIFORM_NAME_TIME
static

Time uniform.

var UNIFORM_NAME_TIME
static

Time uniform.

local UNIFORM_NAME_TIME
static

Time uniform.


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