问题 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
我可以为缓冲区对象分配的最大内存量是多少?当然,它必须取决于系统,但我似乎无法找到它的估计值。当显存不够大时会发生什么?我怎么会知道?