Is JOGL restricted to one thread?
いいえ、JOGL 自体は 1 つのスレッドにバインドされていません。AWT GLCanvas のみです。後者は、その GLAutoDrawable 実装の 1 つです。AWT GLCanvas は、AWT EDT で実行するためにネイティブ リソースの操作が必要な AWT 自体が原因で制限されています。
How to work with JOGL lock free?
「ほぼ」ロックなしで動作するには、 NEWTを使用できます。NEWT を使用すると、複数のスレッドから複数のウィンドウをレンダリングできますが、相互にブロックすることはありません..干渉などもありません。また、NEWT イベント処理はレンダリングに干渉しません。
Example of multithreading use
OpenGL のマルチスレッド使用の別の例 (JOGL を使用するかどうかに関係なく) は、共有オフスクリーン OpenGL コンテキスト [オンスクリーン コンテキストを使用] を保持する専用スレッドからテクスチャまたはその他の GL 関連リソースを埋めることです。専用スレッドは、レンダリング ループに利用可能なリソースなどを知らせることができます。多くのドローアブル ファクトリ メソッドが公開されている GLDrawableFactory を見てください。Note: offscreen mode can be selected via the GLCapabilities.
You may like to browse through out unit tests in one of the
git repos
.
Pls check class 'TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT' and
shared OpenGL context tests include the name 'Shared'.