- 缓冲区对象 Buffer Objects
- 创建和绑定缓冲区对象 Creating and Binding Buffer Objects
- 创建缓冲对象数据存储 Creating Buffer Object Data Stores
- 修改缓冲对象数据存储 Modifying Buffer Object Data Stores
- Clear缓冲对象数据存储 Clear Buffer Object Data Stores
- 映射映射缓冲数据 Mapping Buffer Data
- 刷新映射缓冲数据 Flush Buffer Data
- 取消映射缓冲数据 Unmapping Buffer Data
- 使缓冲区数据无效 Invalidating Buffer Data
- 缓冲区间复制 Copying Between Buffers
- 缓冲对象查询 Buffer Object Queries
void glBufferSubData( enum target, intptr offset,sizeiptr size, const void *data );
void glNamedBufferSubData( uint buffer, intptr offset,sizeiptr size, const void *data );
glBufferSubData
和 glNamedBufferSubData
是 OpenGL 中用于修改缓冲对象数据存储区中部分或全部数据的命令。
-
对于
glBufferSubData
函数,需要指定目标(target),该目标是缓冲对象当前绑定到的目标类型,必须是表6.1列出的值之一。通过这个函数,你可以修改与特定目标类型相关联的缓冲对象的数据。 -
对于
glNamedBufferSubData
函数,直接通过名称(buffer)来指定要修改的缓冲对象。
在两个函数中,参数 offset
和 size
都是用来指示缓冲对象内将被替换数据的范围,以基本机器单位为单位。而 data
参数则指向客户端内存中长度为 size
个基本机器单位的区域,其中包含用来替换缓冲区指定范围内的新数据。
总结来说,这两个函数都允许开发者更新已分配的缓冲对象中的部分内容,而不是整个重新分配和填充新的数据。这对于需要频繁局部修改缓冲内容的情况非常有用。