调用glDrawArrays之后,我可以删除OpenGL顶点数组吗?(Can I delete OpenGL vertex arrays after calling glDrawArrays?)
我在每个渲染上动态生成顶点数组,然后我想在之后删除数组。 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?否则,我怎样才能确定何时删除顶点数组是安全的?
I am generating the vertex arrays on the fly on each render and I want to delete the arrays afterwards. Does glDrawArrays immediately copy the vertex arrays to the server? Hence is it safe to delete the vertex arrays after calling 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?Otherwise, how can I determine when it is safe to delete the vertex arrays?
最满意答案
是的,它会立即被复制,所以一旦你完成了呼叫,你可以做任何你喜欢的阵列。
另外,正如Dirkgently指出的,你需要使用delete[] vp来删除一个数组。
Yes, it is copied immediately, so once you've done the call you can do whatever you like with the array.
Also, as dirkgently pointed out, you need to use delete[] vp to delete an array.
更多推荐
发布评论