OpenGL Vertex Array / Buffer Objekte
Frage 1
Werden Vertex-Pufferobjekte, die unter einer bestimmten VAO erstellt wurden, nach dem Löschen der VAO gelöscht?
Ein Beispiel:
glGenBuffers(1, &bufferObject);
glGenVertexArrays(1, &VAO);
glBindVertexArray(VAO);
glBindBuffer(GL_ARRAY_BUFFER, bufferObject);
glBufferData(GL_ARRAY_BUFFER, sizeof(someVertices), someVertices,
GL_STATIC_DRAW);
glEnableVertexAttribArray(positionAttrib);
glVertexAttribPointer(positionAttrib, 3, GL_FLOAT, GL_FALSE, 0, NULL);
Beim späteren AnrufenglDeleteVertexArrays(1, &VAO);
, werdenbufferObject
auch gelöscht werden?
Der Grund, den ich frage, ist, dass ich einige Beispiele über das Web gesehen habe, die diese Pufferobjekte nicht gelöscht haben.
Frage 2
Wie viel Speicher kann ich maximal für Pufferobjekte reservieren? Es muss natürlich systemabhängig sein, aber ich kann keine Schätzung dafür finden. Was passiert, wenn der Video-RAM nicht groß genug ist? Woher soll ich das wissen?