我像这样创建我的 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/

10-13 01:13