我想知道如何在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上的内存吗?
答案 0 :(得分:3)
我不会编写Python,所以请使用那些盐,但glDeleteBuffers()
的规范需要许多缓冲区和一组缓冲区名称。所以应该是pointer(vbo_id)
。在C中,它与glGenBuffers()
相同,所以我在Python中假设相同的东西。原因是第二个参数是缓冲区名称数组,而不仅仅是缓冲区名称。