8

glutMainLoop()単純なループ ( whileor など)に置き換えてfor、このループですべてのコールバックを呼び出すことはできますか?

私はこれを行っており、画像は正常に表示されていますが、ウィンドウ (画像が表示されている) が応答していません (移動できません)。

glutMainLoop()コールバック以上のものを呼び出しますか?

4

3 に答える 3

22

FreeGLUT を使用している場合は、glutMainLoopEvent. イベントループの処理を 1 サイクル行うため、ループ内で呼び出すことができます。

while(...)
{
  glutMainLoopEvent();
  //do other stuff.
}
于 2012-05-21T11:07:42.167 に答える
1

glutMainLoopまた、すべてのウィンドウ通信を処理するため、それを置き換える場合は、そのための(別の)ライブラリを使用するか、オペレーティングシステムからの通信を解決するシステム固有のコードを作成する必要があります。ただし、少なくともMS Windowsの場合、インターネット上には多くの例があります。

Win32の主な機能に関するMSDNアークティックルは次のとおりです。

于 2012-05-21T10:59:37.573 に答える
1

glutMainLoop() はコールバック以上のものを呼び出しますか?

はい、グラフィック システムからイベントを取得するなど、イベント管理全体を担当します。次に、イベント データを使用してコールバックを呼び出します。

独自のイベント処理を行いたい場合は、GLUT を使用しないでください。イベントへの下位レベルのアクセスを提供し、すべてのイベントのディスパッチを行うことを期待する他のフレームワークがあります。GLFWとSDLを見てください。

于 2012-05-21T14:44:30.610 に答える