我像这样创建我的 VBO:
glGenBuffersARB(1,&polyvbo);
glBindBufferARB(GL_ARRAY_BUFFER_ARB,polyvbo);
glBufferDataARB(GL_ARRAY_BUFFER_ARB,sizeof(GLfloat) * tempvct.size(),&tempvct[0],GL_DYNAMIC_COPY);
然后更新它我只是做同样的事情:
glBindBufferARB(GL_ARRAY_BUFFER_ARB,polyvbo);
glBufferDataARB(GL_ARRAY_BUFFER_ARB,sizeof(GLfloat) * tempvct.size(),&tempvct[0],GL_DYNAMIC_COPY);
(不用说,tempvct中的数据有变化)
我只是想知道上面是否会产生内存泄漏。我需要删除vbo并重新创建它,还是会自动删除旧的并更新?
谢谢
最佳答案
它不会导致内存泄漏,因为缓冲区未重新分配。
但是为什么不使用 glBufferSubData()
呢?它可能会快得多,并且基本上做同样的事情。
关于c++ - 这会导致内存泄漏吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3146048/