问题1
如果在某个VAO下创建了顶点缓冲对象,那么一旦该VAO被删除,这些缓冲对象是否也会被删除?
例如:
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);
当之后调用
glDeleteVertexArrays(1, &VAO);
时,bufferObject
是否也会被删除?我问这个问题是因为我看到一些例子没有删除这些缓冲区对象。
问题2
我可以为缓冲区对象分配的最大内存量是多少?它必须是系统相关的,但我似乎找不到一个估计值。当视频内存不够大时会发生什么?我怎么知道呢?