2

我想知道如何在 python 中正确删除顶点缓冲区对象。我像这样生成我的 VBO:

from ctypes import pointer
vbo_id = GLuint()
glGenBuffers(1, pointer(vbo_id))

有时我不得不删除一个 VBO 并创建一个新的。我想知道删除 VBO的正确方法是什么?我尝试了以下两种方法,但我不知道哪一种是正确的(而且 python 不会抱怨任何一种方式):

glDeleteBuffers(1, pointer(vbo_id))
or 
glDeleteBuffers(1, vbo_id)

哪个调用是正确的?删除 VBO 是否也会释放 GPU 上的内存?

4

1 回答 1

3

我不写 Python,所以要对它持保留态度,但它的规范glDeleteBuffers()需要一些缓冲区和一组缓冲区名称。所以应该是这样pointer(vbo_id)。在 C 中,它与 相同glGenBuffers(),所以我假设在 Python 中也是一样的。原因是第二个参数是缓冲区名称数组,而不仅仅是缓冲区名称。

于 2012-03-17T15:51:20.463 回答