2011-10-27 12 views
4

私はJava OpenGL(jogl)で簡単なプログラムを作っています。 display()メソッドでは、スレッドの名前を出力しており、出力にはAWTスレッドと表示されています。 OpenGLは独自のスレッドを使用していませんか?JOGL - OpenGLはグラフィックをレンダリングするのにAWTスレッドを使用しますか?

+0

私はJOGLは、AWTフレームを使用して考えますものをレンダリングする。 – skyuzo

答えて

3

主に使用しているバージョンによって異なります。

初期のバージョン1.0と1.1では、joglはデフォルトでレンダリングに別のスレッドを使用しました。 バージョン1.1.1の場合、AWTスレッドを使用するようにデフォルトに切り替えられました。

これは手動でAWTスレッドの外側マルチスレッドレンダリング(キャンバスに1つずつ)を強制するためにAWTスレッドまたは-Djogl.1thread=falseにシングルスレッドレンダリングを強制的に-Djogl.1thread=trueを使用してコマンドラインから制御することができます。

Joglの新しいバージョンでは、AWTスレッドの外部でレンダリングを実行するNEWTというカスタムツールキットが提供されています。

JOGL 1.0/1.1.1スレッドの動作がここで説明されていますセクションのhttp://download.java.net/media/jogl/doc/userguide/「マルチスレッドの問題」

スレッドイモリの詳細については、ここで見つけることができます:http://jogamp.org/jogl/doc/NEWT-Overview.html

0

OpenGLライブラリは、ネイティブjavaディスプレイと汎用フレームにフックすることで動作します。 AWTスレッドで新しいキャンバスを作成し、Display用の新しいスレッドを作成し、新しいスレッド内で新しいキャンバスをdisplayparentとして設定すると、ディスプレイはAWTスレッドで実行されません。

関連する問題