20

これが私の現在のセットアップです。SDL (現在 Linux) を使用して OpenGL レンダリングを行っています。SDL ( SDL_Init) を初期化し、メイン スレッドでアプリケーション ウィンドウ ( SDL_CreateWindow) を作成して、それを 2 番目のスレッドに渡します。この 2 番目のスレッドは、そこから OpenGL コンテキストを作成し ( SDL_GL_CreateContext)、レンダリング ループを開始します。一方、メイン スレッドはイベントをリッスンします。GL 呼び出しはこの 2 番目のスレッドに完全に限定されていることに注意することが重要だと思います。実際、私のアプリケーション ロジックのほとんどはそこで行われます。メイン スレッドは、SDL 経由で受信するイベントの処理のみを担当します。

もともと私はこれを逆に行っていましたが、OSX とおそらく Windows のメイン スレッド以外ではイベントを処理できないことが判明したため、将来的にはこの 2 つに互換性があるように切り替えました。

これが OSX/Windows で動作しないという懸念はありますか? Linuxでは、私は何も持っていませんでした。コンテキストの共有と複数のスレッドからの GL 呼び出しに関する情報はインターネット上にたくさんありますが、私がやりたいのは、メイン スレッドではない 1 つのスレッドで OpenGL を実行することだけです。自分のアプリケーションのコーディングを続けて、後でそれが他の場所では機能しないことがわかるようにしたくありません。

4

2 に答える 2