我可以在调用glDrawArrays后删除OpenGL顶点数组吗?

Ozg*_*tak 3 c++ opengl lifetime vertex-array

我在每个渲染上动态生成顶点数组,然后我想删除数组.是否glDrawArrays立即将顶点数组复制到服务器?因此在调用后删除顶点数组是否安全glDrawArrays

float * vp = GetVertices(); // Regenerated on each render
glVertexPointer(3, GL_FLOAT, 3 * sizeof(float), vp);
glDrawArrays(GL_TRIANGLES, 0, nVertices);
delete[] vp; // Can I do this?
Run Code Online (Sandbox Code Playgroud)

否则,如何确定何时删除顶点数组是否安全?

Pet*_*der 8

是的,它会被立即复制,所以一旦你完成了这个电话,你就可以对阵列做任何你喜欢的事了.

另外,正如dirkgently指出的那样,您需要使用delete[] vp删除数组.