2013-01-11 3 views
8

Nach this Frage, markiert glDeleteBuffers Puffer Videospeicher als frei. Aber wenn ich glDeleteVertexArrays auf einem VAO aufruft, löscht dieser Aufruf alle VBOs, die mit diesem VAO verknüpft sind?Führt glDeleteVertexArrays zur Löschung von VBOs, die mit dem Löschen von VAO verbunden sind?

Wenn nein, wann sollte ich VBOs löschen? Bevor Sie den VAO löschen oder danach?

+0

Bitte nennen Sie sie nicht "VBO" s. Pufferobjekte können [do a * lot * more] (http://www.opengl.org/wiki/Buffer_Object#General_use) als Scheitelpunktdaten speichern. –

+0

Während dies wahr ist, ist VBO eine sehr häufige und verständliche Anfänger. Ganz zu schweigen von der Terminologie von Vertex scheint nicht * Position * jede in OpenGL Land zu bedeuten. –

Antwort

11

Aber wenn ich glDeleteVertexArrays auf einem VAO anrufen, wird dieser Anruf löschen Sie alle VBOs, mit diesem VAO verknüpft?

Nein. Es wird einfach nicht mehr auf sie verweisen. Und wenn Sie diese Pufferobjekte gelöscht haben und keine anderen Objekte auf sie verweisen (FYI: VAOs sind nicht die einzigen Dinge, die Pufferobjekte referenzieren können), und sie sind an keinen Kontext gebunden, dann wird ihr Speicher zerstört.

Verwandte Themen