OpenGL Program Object
Shader Object
创建和使用Shader Object的API:
GLuint glCreateShader(GLenum shaderType);
void glShaderSource(GLuint shader, GLsizei count, const GLchar **string, const GLint *length);
void glCompileShader(GLunit shader);
Shader Stage
OpenGL里没有专门的Shader Stage Object去封装Stage相关的状态。但是事实上,一个或多个特定类型的Shader Object(s)组成一个特定的Shader Stage, 多个Shader Stages链接成一个Program Object. 只不过大多情况下,一个Shader Stage只来自于一个Shader Object,但是多个同一类型的Shader Objects组成一个Program Object的一个Shader Stage是完全符合OpenGL规范的。
Program Object
创建和使用Program Object的API:
GLuint glCreateProgram();
void glAttachShader(GLuint program, GLuint shader);