如何在python中正确删除VBO?

时间:2012-03-17 15:39:02

标签: python opengl vbo pyglet

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

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

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

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

哪个电话是正确的?删除VBO还会释放GPU上的内存吗?

1 个答案:

答案 0 :(得分:3)

我不会编写Python,所以请使用那些盐,但glDeleteBuffers()的规范需要许多缓冲区和一组缓冲区名称。所以应该是pointer(vbo_id)。在C中,它与glGenBuffers()相同,所以我在Python中假设相同的东西。原因是第二个参数是缓冲区名称数组,而不仅仅是缓冲区名称。