一:关于缓冲区 (排序不代表执行顺序)
// 生成缓冲区对象名称(生成的缓冲标识符的数量,指向生成标识符的内存保存位置)
1、 void glGenBuffers(GLsizei n, GLuint * buffers)
// 绑定一个顶点数组对象(指定要绑定的顶点数组的名称)
2、 void glBindVertexArray(GLuint array)
// 绑定一个已命名缓冲区对象(指定缓冲区对象绑定目标,指定缓冲区对象的名称)
3、 void glBindBuffer(GLenum target, GLuint buffer)
// 将缓冲区对象绑定到索引的缓冲区目标(
指定绑定操作的目标,
在由target指定的数组中指定绑定点的索引,
要绑定到指定绑定点的缓冲区对象的名称
)
4、 void glBindBufferBase(GLenum target, GLuint index, GLuint buffer)
// 创建并初始化一个缓冲区对象的数据存储(
指定缓冲区对象的目标,
指定缓冲区对象新的数据存储的字节大小,
指定指向将要复制数据存储进行初始化的数据的地址,
指定数据存储预期使用模式)
5、 void glBufferData(GLenum target, GLsizeiptr size, const void * data, GLenum usage)
// 删除指定的缓冲区对象(
指定要删除的缓冲区对象数量,
指定要删除的缓冲区对象数组
)
6、 void glDeleteBuffers(GLsizei n, const GLuint * buffers)
// 更新缓冲区对象的数据存储的子集(
指定缓冲区对象的目标,
指定进入缓冲区对象的数据存储的偏移量(数据替换将从这里开始,以字节为单位),
指定要替换的数据存储区域的大小(以字节为单位),
指定指向将复制到数据存储中的新数据的指针
)
7、 void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size,
const void * data)
// 删除顶点数组对象(
指定要删除的顶点数组对象的数量,
指定包含n个要删除对象名称的数组地址
)
8、 void glDeleteVertexArrays(GLsizei n, const GLuint *arrays)
// 为像素选择一个颜色缓冲源(
指定一个颜色缓冲区
)
9、 void glReadBuffer(GLenum mode)
// 为像素选择一个颜色缓冲源(
指定帧缓冲区对象的名称,
指定一个颜色缓冲区
)
10、 void glNamedFramebufferReadBuffer(GLuint framebuffer,
GLenum mode)
// 将缓冲区清除为预设值(
指示要清除缓冲区的掩码的按位“或”
)
11、 void glClear(GLbitfield mask)
// 将缓冲区对象中的范围绑定到索引的缓冲区目标(
指定绑定操作的目标,
在由target指定的数组中指定绑定点的索引,
要绑定到指定绑定点的缓冲区对象的名称,
起始偏移量在基本机器单元中进入缓冲对象buffer,
[当用作索引目标时,可以从缓冲区对象中读取的以机器单位表示的数据量]
)
12、 void glBindBufferRange(GLenum target, GLuint index, GLuint buffer,
GLintptr offset, GLsizeiptr size)
二:关于纹理
// 生成纹理(指定生成纹理名称的数量,指定一个存储生成纹理名称的数组)
1、 void glGenTextures(GLsizei n, GLuint * textures)
// 建立一个绑定到目标纹理的有名称的纹理(纹理被绑定的目标类型,标识符)
2、 void glBindTexture(GLenum target, GLuint texture)
// 指定一个二维纹理图像(
指定纹理目标,
指定详细类型(0代表基本图像),
指定纹理中颜色组件的内部格式,
指定纹理图像的宽(所有实现都支持至少1024像素宽的纹理图像),
指定纹理图像的高(所有实现都支持至少1024像素高的2D纹理图像,以及至少256层深的纹理数组),
0(官方规定必须为0),
指定像素数据的格式,
指向内存中的图像数据的指针
)
3、 void glTexImage2D(GLenum target, GLint level, GLint internalformat,
GLsizei width, GLsizei height, GLint border,
GLenum format, GLenum type, const void * data)
// 指定一个二维纹理子图像(
指定纹理绑定到的目标,
指定详细级别编号,
在纹理数组的x方向上指定一个纹理元素的偏移量,
在纹理数组的y方向上指定一个纹理元素的偏移量,
指定纹理子图像的宽度,
指定纹理子图像的高度,
指定像素数据的格式,
指定像素数据的数据类型,
指定指向在内存中图像数据的指针
)
4、 void glTexSubImage2D(GLenum target, GLint level, GLint xoffset,
GLint yoffset, GLsizei width, GLsizei height,
GLenum format, GLenum type, const void * pixels)
// 指定一个三维纹理子图像(
指定纹理绑定到的目标,
指定详细级别编号,
在纹理数组的x方向上指定一个纹理元素的偏移量,
在纹理数组的y方向上指定一个纹理元素的偏移量,
在纹理数组的z方向上指定一个纹理元素的偏移量,
指定纹理子图像的宽度,
指定纹理子图像的高度,
指定纹理子图像的深度,
指定像素数据的格式,
指定像素数据的数据类型,
指定指向在内存中图像数据的指针
)
5、 void glTexSubImage3D(GLenum target, GLint level, GLint xoffset,
GLint yoffset, GLint zoffset, GLsizei width,
GLsizei height, GLsizei depth, GLenum format,
GLenum type, const void * pixels)
// 指定存储二维或一维数组纹理的所有级别(
指定纹理对象,
指定详细级别编号,
指定用于存储纹理图像数据大小的内部格式,
指定纹理的宽度(以像素为单位),
指定纹理的高度(以像素为单位)
)
6、 void glTexStorage2D(GLenum target, GLsizei levels, GLenum internalformat,
GLsizei width, GLsizei height)