[英]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?
否则,如何确定何时删除顶点数组是否安全?
是的,它会被立即复制,所以一旦你完成了这个电话,你就可以对阵列做任何你喜欢的事了。
另外,正如dirkgently指出的,你需要使用delete[] vp
来删除一个数组。
是的,您可以在调用glDrawArrays后删除顶点数组。 但是opengl不会将顶点数据存储在它的内存中。 它将只使用顶点数组并绘制帧缓冲区。 所以下次如果你想绘制相同的顶点,那么你必须再次为glDrawArrays提供顶点数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.