Как правильно удалить VBO в Python? - PullRequest
2 голосов
/ 17 марта 2012

Мне было интересно, как правильно удалить объект буфера вершин в 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?

1 Ответ

3 голосов
/ 17 марта 2012

Я не пишу на Python, поэтому возьмите его с этой крупицей соли, но спецификация для glDeleteBuffers() требует количество буферов и массив имен буферов.Так что, вероятно, должно быть pointer(vbo_id).В C это то же самое, что и glGenBuffers(), поэтому я бы предположил то же самое в Python.Причина в том, что вторым параметром является массив имен буферов, а не просто имя буфера.

...