天天看点

OpenGL ES Shader相关API 总结【3】——绑定shader绑定Shader

绑定Shader

1.

GLuint glCreateShader(GLenum shaderType)      

功能:创建一个指定类型的shader对象

输入:shader类型

输出:一个该类型的shader对象

2.

void glShaderSource(GLuint shader, GLsizei, count, const GLchar* const* string, const GLint* length)      

功能:更新指定shader对象的源代码

输入:指定shader对象的ID,使用几组字符串对该shader对象进行赋值,字符串数组以及用于存放每个字符串包含字节长度的数组

3.

void glCompleShader(GLuint shader)      

功能:对指定shader对象进行编译

输入:指定shader对象的ID

4.

void glShaderBinary(GLsizei n, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length);      

功能;将预先编译好的shader存入一组shader对象中

输入:一组shader的数量以及shader的指针,预先编译好的shader格式,编译好的shader二进制的位置和长度

5.

GLuint glCreateProgram(void)      

功能:创建一个program,用于把一组shader绑定在一起

输出:一个program对象

6.

void glAttachShader(GLuint program, GLuint shader)      

功能:将一个指定的shader,绑定到一个指定的program上

输入:指定program的ID,以及指定shader的ID

7.

void glDetachShader(GLuint program, GLuint shader)      

功能:将一个指定的shader,从指定的program上解绑

8.

void glLinkProgram(GLuint program)      

功能:将指定的program做链接操作,也就是将Program上绑定的shader互相链接起来

输入:指定Programe的ID

9.

void glUseProgram(GLuint program);      

功能:将指定program将被GPU使用,也就是说:如果OpenGL ES的其他API以及GPU对Program进行操作,那么操作就是这个program

输入:指定program的ID

10. 

void glDeleteProgram(GLuint program);      

功能:删除一个指定的Program

11. 

void glDeleteShader(GLuint shader)      

功能:删除一个指定的shader

输入:指定shader的ID

12.

void glReleaseShaderCompiler(void)      

功能:删除Shader编译器相关的资源

继续阅读