Program:
1。 GLuint glCreateProgram( void );//創(chuàng)建
2。 void glDeleteProgram( GLuint program );//銷毀
3。 void glGetProgramiv(
GLuint program,
GLenum pname,
GLint *params
); //獲取參數(shù)
4。void glGetProgramInfoLog(
GLuint program,
GLsizei maxLength,
GLsizei *length,
GLchar *infoLog
);//獲取Log信息,Log信息在program鏈接或確認(rèn)時(shí)會(huì)更新
5。void glLinkProgram(
GLuint program
);//鏈接
6。void glValidateProgram(
GLuint program
);//確認(rèn),通常只在開發(fā)時(shí)時(shí)有用
7。GLboolean glIsProgram(
GLuint program
);//判斷是否是program object
8。void glUseProgram(
GLuint program
);//將program安裝到當(dāng)前狀態(tài)中
9。void glGetAttachedShaders(
GLuint program,
GLsizei maxCount,
GLsizei *count,
GLuint *shaders
);//獲取附加的shader列表
Shader:
1。GLuint glCreateShader(
GLenum shaderType
);//創(chuàng)建
2。void glDeleteShader(
GLuint shader
);//銷毀
3。void glShaderSource(
GLuint shader,
GLsizei count,
const GLchar **string,
const GLint *length
);//為shader填充/替換源碼,源碼可由多個(gè)字符串組成
4。void glCompileShader(
GLuint shader
);//編譯
5。void glGetShaderiv(
GLuint shader,
GLenum pname,
GLint *params
);//獲取參數(shù)
6。void glGetShaderInfoLog(
GLuint shader,
GLsizei maxLength,
GLsizei *length,
GLchar *infoLog
);//獲取Log信息,只在編譯后更新
7。void glGetShaderSource(
GLuint shader,
GLsizei bufSize,
GLsizei *length,
GLchar *source
);//獲取源碼,源碼長度可以先用glGetShader(GL_SHADER_SOURCE_LENGTH)獲取
8。GLboolean glIsShader(
GLuint shader
);//判斷是否是shader object
9。void glAttachShader(
GLuint program,
GLuint shader
);//將一個(gè)shader附加到program
10。void glDetachShader(
GLuint program,
GLuint shader
);//將shader從program中去除
Uniform參數(shù)
1。GLint glGetUniformLocation(
GLuint program,
const GLchar *name
); //獲取Uniform變量的位置,它在編譯后決定
2。glUniform{1|2|3|4}{f|i}, glUniformMatrix{2|3|4}fv ,glUniform{1|2|3|4}{f|i}v
//設(shè)置Uniform變量值
3。void glGetUniform{f|i}v(
GLuint program,
GLint location,
GLint *params
);//獲取uniform當(dāng)前值
4。void glGetActiveUniform(
GLuint program,
GLuint index,
GLsizei bufSize,
GLsizei *length,
GLint *size,
GLenum *type,
GLchar *name
);//獲取uniform變量熟悉
Attribute變量
1。void glBindAttribLocation(
GLuint program,
GLuint index,
const GLchar *name
);//綁定一個(gè)自定義屬性變量位置
2。void glGetActiveAttrib(
GLuint program,
GLuint index,
GLsizei bufSize,
GLsizei *length,
GLint *size,
GLenum *type,
GLchar *name
);//獲取屬性變量屬性
3。GLint glGetAttribLocation(
GLuint program,
const GLchar *name
);//獲取熟悉變量位置
4。glVertexAttrib
//設(shè)置一個(gè)屬性變量的值
5。glVertexAttribPointer
//設(shè)置一個(gè)屬性變量數(shù)組
6。glGetVertexAttribdv, glGetVertexAttribfv, glGetVertexAttribiv
//獲取一個(gè)屬性變量值
7。glGetVertexAttribPointer
//獲取一個(gè)屬性數(shù)組
8。void glEnableVertexAttribArray(
GLuint index
);//使能一個(gè)屬性數(shù)組
9。void glDisableVertexAttribArray(
GLuint index
);//禁用一個(gè)屬性數(shù)組