896 B
896 B
OpenGLBuffer::SetData
void SetData(const void* data, size_t size, size_t offset = 0) override;
设置缓冲区数据。支持部分更新:当 offset == 0 且 size 等于缓冲区大小时,使用 glBufferData 替换整个缓冲区;否则使用 glBufferSubData 进行部分更新。
参数:
data- 要写入的数据指针size- 数据大小(字节)offset- 缓冲区内的偏移量(默认 0)
示例:
// 更新整个缓冲区
buffer.SetData(vertices, sizeof(vertices));
// 部分更新
buffer.SetData(newVertices, sizeof(newVertices), sizeof(vertices));
注意: 动态缓冲区使用 GL_DYNAMIC_DRAW,静态缓冲区使用 GL_STATIC_DRAW。
相关文档
- OpenGLBuffer 总览 - 返回类总览
- Map - 映射缓冲区方式写入
- Initialize - 初始化缓冲区