を制御するために、私はより良い次のコールバックの実行順序であるかを理解したいと思います:私はGLUTプログラムでメインループを制御したいと思いますどのように細かく供給過剰内側のループ
glutDisplayFunc(drawGLScene);
glutIdleFunc(idle);
glutTimerFunc(TIMER_MS, update, 0);
それは難しいです私がプログラムでglut queueを呼び出す方法を理解することができます。
を制御するために、私はより良い次のコールバックの実行順序であるかを理解したいと思います:私はGLUTプログラムでメインループを制御したいと思いますどのように細かく供給過剰内側のループ
glutDisplayFunc(drawGLScene);
glutIdleFunc(idle);
glutTimerFunc(TIMER_MS, update, 0);
それは難しいです私がプログラムでglut queueを呼び出す方法を理解することができます。
できません。メインループを制御したい場合は、GLFWのようなものを使用する必要があります。 Freeglutは、より現代的なglutの拡張によって、これを可能にするかもしれません。 GLUTが動作する方法は、いくつかのコールバックを指定し、メインループを開始し、必要に応じてコールバックを呼び出します。
フレームの開始時にタイマーコールバックを呼び出すので、フレームのレンダリングが必要なときに表示コールバックを呼び出す可能性があります。アイドルコールバックは、次のフレームをレンダリングする前に待機する必要があるときはいつでも(フレームレートが正確に60fpsに制限されている場合があるため、フレームを.017秒未満でレンダリングする場合は、フレームを画面にプッシュする)。
イベントループを細かく制御したい場合は、すぐにGLUTを放棄してください。 SDL、GLFWを使用するか、ゼロから実行してください。 GLUTの内部動作を理解することは、細かい制御を得るのに役立つものではありません。