《高效学习OpenGL》之缓冲区对象 glGenBuffers(), glBindBuffer(), glBufferData(),glMapBuffer()
来源:互联网 发布:mac系统numbers教程 编辑:程序博客网 时间:2024/05/21 21:37
更多精彩图形学视频教程,请访问 http://www.oxox.work/
1.创建缓冲区对象
void glGenBuffers(GLsizei n, GLuint *buffers);//在buffers数组中返回当前n个未使用的名称,表示缓冲区对象GLboolean glIsBuffer(GLuint buffer);//判断是否是缓冲区对象
2.激活缓冲区对象
void glBindBuffer(GLenum target, GLuint buffer);//指定当前活动缓冲区的对象
3.用数据分配和初始化缓冲区对象
void glBufferData(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);//target:可以是GL_ARRAY_BUFFER()(顶点数据)或GL_ELEMENT_ARRAY_BUFFER(索引数据)//size:存储相关数据所需的内存容量//data:用于初始化缓冲区对象,可以是一个指向客户区内存的指针,也可以是NULL//usage:数据在分配之后如何进行读写,如GL_STREAM_READ,GL_STREAM_DRAW,GL_STREAM_COPY,如图
4.更新缓冲区数据值
GLvoid *glMapBuffer(GLenum target, GLenum access);//提供对缓冲区对象包含的整个数据集合的更新//access:GL_READ_ONLY,GL_WRITE_ONLY,GL_READ_WRITEGLboolean *glUnMapBuffer(GLenum target);//表示当前绑定缓冲区对象的更新已经完成,与glMapBuffer()结合使用
5.在缓冲区对象之间复制数据
void glCopyBufferSubData(GLenum readbuffer, GLenum writebufferGLintptr readoffset, GLintptr writeoffset, GLsizeiptr size);//把数据从readbuffer相关联的缓冲区对象复制到writebuffer的缓冲区对象//从readoffset开始移动size个数据的数量到wirteoffset中
6.清除缓冲区对象
void glDeleteBuffers(GLsizei n, GLuint *buffers);
1 0
- 《高效学习OpenGL》之缓冲区对象 glGenBuffers(), glBindBuffer(), glBufferData(),glMapBuffer()
- opengl缓冲区对象,glBufferSubData,glMapBuffer
- glBindBuffer,glBufferData,glBufferSubData
- OPENGL之GLBindBuffer
- 《高效学习OpenGL》 之 累积缓冲区 glAccum()
- OpenGL学习八:缓冲区对象
- OpenGL缓冲区对象之UBO
- OpenGL缓冲区对象之VBO
- OpenGL缓冲区对象之FBO
- OpenGL缓冲区对象之EBO
- OpenGL缓冲区对象之VAO
- OpenGL缓冲区对象之VAO
- OpenGL缓冲区对象之EBO
- OpenGL缓冲区对象之FBO
- OpenGL缓冲区对象之VBO
- OpenGL缓冲区对象之UBO
- OpenGL缓冲区对象之VAO
- OpenGL缓冲区对象之UBO
- Android开发中请求URL中参数含有中文和空格的解决方法
- char*,const char*和string的相互转换
- atoi和itoa的实现
- 设计模式汇总
- linux内核模块的安装与卸载
- 《高效学习OpenGL》之缓冲区对象 glGenBuffers(), glBindBuffer(), glBufferData(),glMapBuffer()
- 使用wxWidgets如何获得所有的字体
- 【编程工具系列】在Windows下使用gcc编译器
- 去除字符串中的数字,字符串不多于30
- Android中onNewIntent()方法触发和使用
- MySQL语法大全
- [Mugeda HTML5技术教程之17] 理解Mugeda访问统计结果
- C++ Primer总结与内容拓展(第六章)
- select count(*) 和 count(1),count(列名)区别