c++ - 这会导致内存泄漏吗?

标签 c++ c opengl

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

相关文章:

java - 将 QByteArray 反序列化为 Java 数据类型

c - 数组向左旋转(递归)

c++ - C 标准库可扩展性对 C++ 程序有多大影响?

c++ - 切换到 glVertexPointer 后未应用 Cg 着色器

python - Eclipse + PyDev 在大量导入时变得极其缓慢

c++ - opengl c++ 代码中的错误,可能与 cood 系统有关

c++ - 哪个编译器用于函数中的默认模板参数

c++ - 是否可以使用 openMP 以 O(1) 复杂度初始化 vector ? (C++)

c++ - Mingw32 是否支持 std::thread?

C++:0. 和 0.0 之间的区别?