3

レンダリングごとにその場で頂点配列を生成していますが、後で配列を削除したいと思います。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?

それ以外の場合、頂点配列を削除しても安全な時期をどのように判断できますか?

4

2 に答える 2

8

はい、すぐにコピーされるので、呼び出しが完了したら、配列で好きなことを行うことができます。

また、dirkgently が指摘したようdelete[] vpに、配列を削除するには を使用する必要があります。

于 2010-02-06T11:43:59.027 に答える
2

はい、glDrawArrays を呼び出した後に頂点配列を削除できます。しかし、opengl は頂点データをメモリに保存しません。頂点配列を使用し、フレーム バッファーに描画します。次回同じ頂点を描画する場合は、頂点配列を再度 glDrawArrays に提供する必要があります。

于 2012-01-05T07:26:29.500 に答える