glClear
void glClear(GLbitfield mask);// 清除指定的缓存数据并重设为当前的清除值。mask 是一个可以通过逻辑“或”操作来指定多个数值的参数。// mask:// GL_COLOR_BUFFER_BIT 颜色缓存// GL_DEPTH_BUFFER_BIT 深度缓存// GL_STENCIL_BUFFER_BIT 模板缓存glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除颜色和深度缓存。
glClearColor
void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);// 设置当前使用的清除颜色值(清除屏幕之后,屏幕的颜色),用于RGBA模式下对颜色缓存的清除工作。// red、green、blue、alpha的范围[0, 1]。// 默认的清除颜色是(0, 0, 0, 0),在RGBA 模式下它表示黑色。
glDrawArrays
void glDrawArrays(GLenum mode, GLint first, GLsizei count);// 使用当前绑定的顶点数组元素来建立一系列的几何图元。// 起始位置: first// 结束位置: first + count - 1// mode:构建图元的类型,可以是以下值:// GL_POINTS// GL_LINES// GL_LINE_STRIP// GL_LINE_LOOP// GL_TRIANGLES// GL_TRIANGLE_STRIP// GL_TRIANGLE_FAN// GL_PATCHES
glFlush
void glFlush(void);// 强制之前的OpenGL命令立即执行,这样就可以保证它们在一定时间内全部完成。
glFinish
void glFinish(void);// 强制所有当前的OpenGL命令立即执行,并且等待它们全部完成。
glEnable、glDisable、glIsEnabled
void glEnable(GLenum capability); // 开启一个模式void glDisable(GLenum capability); // 关闭一个模式// capability:// GL_DEPTH_TEST: 深度测试// GL_BLEND: 混合操作开关// GL_RASTERIZER_DISCARD: 用于transform feedback 过程中的高级渲染控制。void glIsDisable(GLenum capability); //capability模式是否启用,返回GL_FALSE、GL_TRUE
glGetUniformLocation
GLint glGetUniformLocation(GLuint program, const char* name);// 返回着色器程序中uniform变量name对应的索引值。// name: C风格字符串,不能有空格// 如果传数组名称,则返回数组的第一个元素// 返回-1:没有找到name对应的uniform变量,// 可能是不存在,也可能name是内部保留的变量名称,比如gl_开头的。// 在链接阶段,编译器会创建一个uniform变量列表,保存了变量的索引,通过索引可以获取uniform变量// 所以索引值一般情况不会发生变化,除非glLinkProgram(),重新链接了着色器程序。
glUniform、glUniformMatrix
设置着色器中uniform变量的值。
void glUniform{1234}{fdi ui}(GLint location, TYPE value);// 设置1~4个float、double、int、uint类型的uniform变量的值。// 第一个uniform变量的索引位置是location。// 比如glUniform4f();void glUniform{1234}{fdi ui}v(GLint location, GLsizei count, const TYPE* values);// 数组版本。// 参数:count:// 给几个uniform变量设值,glUniform*v()形式的都有count// 比如glUniform4fv()void glUniformMatrix{234}{fd}v(GLint location, GLsizei count, GLboolean transpose, const GLfloat* values);// uniform变量是2x2、3x3、4x4的矩阵,矩阵的元素只能是浮点型(float、double),所以是{fd}// 参数:// transpose// GL_TRUE: values中的数据是以行主序读入(类似C的数组)// GL_FALSE: 以列主序读入// 比如glUniformMatrix4fv()void glUniformMatrix{2x3,2x4,3x2,3x4,4x2,4x3}{fd}v(GLint location, GLsizei count,GLboolean transpose, const GLfloat* values);// uniform变量是2x3、2x4、3x2、3x4、4x2、4x3的矩阵。// 比如glUniformMatrix2x3fv()
gl
