呼び出しの実際的な違いを区別するのに苦労しています glFlush()
としglFinish()
。
ドキュメントはと言うglFlush()
とglFinish()
1の違いは、され、それらはすべて実行されます保証することができますようにOpenGLにバッファリングされたすべての操作をプッシュしますglFlush()
リターンがすぐ場合などglFinish()
ブロックすべての操作が完了するまで。
定義を読んだ後、それを使用glFlush()
すると、OpenGLに実行できるよりも多くの操作をOpenGLに送信するという問題が発生する可能性があると考えました。だから、試してみるために、glFinish()
ために、はa glFlush()
とloました。見たところ、私のプログラムは(私の知る限り)実行されましたが、まったく同じです。フレームレート、リソース使用量、すべてが同じでした。
したがって、2つの呼び出しの間に大きな違いがあるのか、それとも私のコードで2つの呼び出しに違いがないのかと思います。または、一方を他方に対して使用する必要がある場合。また、OpenGLが次のような呼び出しを行うこともわかりましたglIsDone()
aのすべてのバッファリングされたコマンドglFlush()
が完了したかどうかを確認する(そのため、実行可能な速度よりも速くOpenGLに操作を送信しないでください)が、そのような関数を見つけることができませんでした。
私のコードは典型的なゲームループです:
while (running) {
process_stuff();
render_stuff();
}