2011-07-14 6 views
0

LWJGLを使用してOpenGLでゲーム用の3Dエディタを作成しています。私はそれが必要なときにエディタをレンダリングするだけです。しかし、一度だけレンダリングしてDislplay.update()に画像の不具合を継続して呼び出すと、しばしばwhileループではなくDislplay.update()を呼び出すと、プログラムが応答を停止し、ウィンドウがオフになります。なぜこれがこのことか回避策を知っていますか?Display.update()を呼び出すとプログラムがクラッシュする

答えて

0

私はちょっと遊んだのちに自分自身を理解しました。ディスプレイを更新するたびに、バッファが交換されるため、毎秒バッファを手動で交換して、同じバッファを使用し続けるか、または2回レンダーします。各バッファに対して1回。

render(); 
Display.swapBuffers(); 
render(); 

、その後、あなたが正常に表示を更新します:あなたはこれを行うだろう、あなたの画像をレンダリングするrender()メソッドを持っている場合たとえば

+0

このような回避策は、バッファスワップが真のスワップである場合にのみ機能します。それが破壊的なブリットなら、あなたは運が去っています。これを回避するには、完成したレンダリングをテクスチャにコピーし、アイドル状態の表示ハンドラでこのテクスチャをビューポートを四角で塗りつぶすだけにします。ところで、あなたは自分の答えを受け入れて、解決されている問題に印を付けることができます。あなたはもちろん評判はありません。 – datenwolf

関連する問題