我生成了一个名为object_A
的vbo缓冲区(顶点缓冲区)对象,
我们假设object_A
包含10个顶点(30个浮点数)。
现在,我想使用object_A
更新glMapBuffer
20个顶点(60个浮点数),我可以使用glMapBuffer
吗?
答案 0 :(得分:2)
您无法使用glMapBuffer()
,仅用于将缓冲区的数据映射到客户端地址空间。
如果要调整缓冲区大小,则必须使用glBufferData()
。
glBufferData(GL_ARRAY_BUFFER, 60 * sizeof(GLfloat), NULL, GL_DYNAMIC_DRAW);
如果是因为你想要类似realloc()
的东西(重新分配缓冲区,保留旧内容)。然后,您可以使用glCopyBufferSubData()
并在缓冲区之间复制数据。