glBufferSubData | glClearBufferSubData | glCopyBufferSubData
来源:互联网 发布:php魔术常量有哪些 编辑:程序博客网 时间:2024/05/22 04:52
glBufferSubData
glBufferSubData用来更新一个已有缓冲区对象中的一部分数据
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
参数:
target: 可以参考glBufferData中的描述,用来指定需要更新的缓冲区对象的类型
offset: 指定了更新数据相对于缓冲区对象中原始数据开始位置的偏移量,也就是说要从什么地方开始更新原来的数据(以字节为单位)
size:需要更新的数据量的大小
data:一个指向新数据源的指针,将新的数据源拷贝到缓冲区对象中完成更新
描述:
glBufferSubData用来更新缓冲区对象中的数据,可以更新一部分或者整个缓冲区中的数据(取决于offset和size的取值),如果offset是0,而size正好是用来缓冲区存储数据的大小,那么整个数据就会被新的数据所替换。需要注意的是offset和size必须保证在原来缓冲区对象可以表示的范围之内。(加入原来缓冲区对象中存储了1024个字节,那么offset就不能大于1024,因为这样的话就没法更新数据了)
glClearBufferSubData
glCearBufferSubData 用一个固定的值填充缓冲区对象的一部分(或者全部)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
参数:
target : 指定缓冲区对象的类型,具体类型参考 glBufferData
internalformat : 指定缓冲区对象中的数据的内部存储格式
offset:指定需要替换数据的偏移量(以字节计算)
size:指定需要填充的数据的大小(以字节计算)
format:指定内存中的数据的格式
type:指定类存中数据的类型
data:指定内存中的数据,用来替换掉缓冲区对象中的数据
上述参数中有几个概念需要明确:
1. internalformat: 用来表述缓冲区对象中的数据是那种形式的,可选的取值有:
format和type指定了data中的格式类型
format : 可以取值
GL_RED, GL_RG, GL_RGB,GL_RGBA 来代表一维、二维、三维或四维的数据
type: 指定了数据的类型是GL_FLOAT或者GL_INT或者GL_UNSIGNED_BYTE等
data: 指定用来填充的数据,如果是NULL那么该缓冲区由offset和size指定的区域会被0填充
glCopyBufferSubData将数据从一个缓冲区拷贝到另一个缓冲区
函数原型:
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
参数描述:
readTarget : 源数据的缓冲区类型
writeTarget: 目标数据的缓冲区类型
readOffset: 源数据缓冲区中的数据偏移量(以字节为单位)
writeOffset: 目标数据缓冲区中的数据偏移量(以字节为单位)
size:拷贝的字节数
备注:
1. 拷贝的时候源数据与目标数据不可以出现重叠
2. 拷贝的时候目标数据的缓冲区大小与offset偏移量必须可以容纳源数据的拷贝数据大小
- glBufferSubData | glClearBufferSubData | glCopyBufferSubData
- glClearBufferSubData
- glCopyBufferSubData
- glBufferSubData
- glBufferSubData
- glBindBuffer,glBufferData,glBufferSubData
- opengl缓冲区对象,glBufferSubData,glMapBuffer
- glBufferSubData和glBufferData的关系,glBufferSubData()填充数据后无效果
- OpenGLES - glBufferSubData 更新顶点缓存的一部分数据
- Android 中自定义属性(attr.xml,TypedArray)的使用!
- 使用UIActivityViewController实现AirDrop分享
- jquery的小技巧
- 目标检测方法效果小结
- 完全背包详解
- glBufferSubData | glClearBufferSubData | glCopyBufferSubData
- MVVM模式初体验(使用ReactiveCocoa获取网络数据)
- IE主页被篡改后修复
- 简单的IOS生产者-消费者模型
- Git 上多次commit 合并成一个 patch
- "XXXX" is not translated in "en" (English), "zh" (Chinese)
- Objective-C runtime那些事儿
- 关于高德地图iOS apiKey为空或位数不合要求,请正确设置
- glMapBuffer | glUnmapBuffer