我正在开发Android OpenGL ES 1.1游戏,并寻找帮助修复使应用程序随机(经常)崩溃的错误。 App起源于iOS,因此它使用glMapBufferOES填充顶点数组然后绘制。由于它只是OpenGL扩展,我决定删除它并使用glBufferData连续上传数据。
在调用该方法之前,我使用glGenBuffer和glBindBuffer设置顶点缓冲区。我们发现了第一个问题。在上传顶点之前,我总是清除vbo并使用glGenBuffers(1,& vertexVBO);生成new,但在检查其大小(vertexVBO)后,它会在每次上传后继续递增1,2,3,4等。一段时间后,顶点缓冲区的大小为150而不是1.
好像它会导致堆内存损坏。如何防止此溢出并保持vertexVBO大小始终为1?如果我不想使用glMapBufferOES,我是否应该使用VBO?