Opengl相关API
创建VertexShadere与FragmentShader
创建一个对象,作为shader(着色器)的容器,该函数会返一个容器的句柄,函数原型中的参数shaderType有两种类型,当要创建VertexShader时,开发者应该传入类型GL_VERTEX_SHADER;当要创建FragmentShader时,开发者应该传入GL_FRAGMENT_SHADER类型
GLuint glCreateShader(GLenum shaderType);
为创建的这个shader(着色器)添加源代码,把开发者编写的着色器程序加载到着色器句柄所关联的内存中
void glShaderSource(GLuint shader, int numOfStrings, const char **strings, int *lenOfStrings)
编译该Shader
void glCompileShader(GLuint shader);
验证该Shader是否编译成功了,当返回值为1时,则说明该Shader是编译成功
void glGetShaderiv (GLuint shader, GLenum pname, GLint* params);
如果编译没有成功,那么开发者肯定需要知道到底是着色器代码中的哪一行出了问题
void glGetShaderInfoLog(GLuint object, int maxLen, int *len, char *log);
通过这两个Shader来创建Program(显卡可执行程序)
首先创建一个对象,作为程序的容器,此函数将返回容器的句柄
GLuint glCreateProgram(void)
将把前文编译的Shader附加到刚刚创建的程序中
void glAttachShader(GLuint program, GLuint shader);
链接程序
void glLinkProgram(GLuint program);
检查是否链接成功,查看该程序的状态
glGetProgramiv (GLuint program, GLenum pname, GLint* params);
链接错误,打印链接错误信息
void glGetProgramInfoLog(GLuint object, int maxLen, int *len, char *log);