OpenGL函数详解用法

一:关于缓冲区 (排序不代表执行顺序)

// 生成缓冲区对象名称(生成的缓冲标识符的数量,指向生成标识符的内存保存位置)
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)

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值