2013-01-11 8 views
8

In base alla domanda this, glDeleteBuffers contrassegna la memoria video del buffer come libera. Ma quando chiamo glDeleteVertexArrays su un VAO, questa chiamata cancellerà tutti i VBO, collegati con questo VAO?glDeleteVertexArray porta alla cancellazione dei VBO, associati all'eliminazione di VAO?

Se no, quando devo eliminare VBO? Prima di cancellare il VAO o dopo?

+0

Si prega di non chiamarli "VBO" s. Gli oggetti buffer possono [fare un * lotto * altro] (http://www.opengl.org/wiki/Buffer_Object#General_use) di memorizzare i dati dei vertici. –

+0

Mentre questo è vero, VBO è molto comune e comprensibile tra i principianti. Per non parlare della terminologia del vertice non sembra significare * posizione * qualsiasi in terra OpenGL. –

risposta

11

Ma quando chiamo glDeleteVertexArrays su un VAO, questa chiamata eliminerà tutti i VBO, collegati a questo VAO?

No. Semplicemente non le farà più riferimento. E se hai cancellato quegli oggetti buffer e nessun altro oggetto li fa riferimento (FYI: i VAO non sono le sole cose che possono fare riferimento agli oggetti buffer), e non sono legati a nessun contesto, quindi il loro archivio verrà distrutto.