繁体   English   中英

我可以在调用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?

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

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

另外,正如dirkgently指出的,你需要使用delete[] vp来删除一个数组。

是的,您可以在调用glDrawArrays后删除顶点数组。 但是opengl不会将顶点数据存储在它的内存中。 它将只使用顶点数组并绘制帧缓冲区。 所以下次如果你想绘制相同的顶点,那么你必须再次为glDrawArrays提供顶点数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM