14

シーンを1つのスレッドでレンダリングしてから、別のスレッドが所有するウィンドウで結果をブリットしたいと思います。フレームバッファがCPUメモリに読み込まれないようにするために、フレームバッファオブジェクトを使用したいと思います。これまでのところ、これを機能させることができませんでした(白いテクスチャ)。これは、openglではサポートされていないと思われます。

  1. 異なるコンテキスト間でフレームバッファオブジェクトを共有することは可能ですか?
  2. オブジェクトが一度に1つのスレッドによってのみバインドされる場合、異なるスレッド間でフレームバッファーオブジェクトを共有することは可能ですか?

誰かがこれがドキュメントのどこに記載されているかを私に指摘できれば、それはボーナスになります。

4

1 に答える 1

12

異なるコンテキスト間でフレームバッファを共有することはできません。付録D、OpenGL3.3仕様の最初の段落を参照してください。ただし、テクスチャとレンダーバッファを共有することはできます。これにより、必要なものが得られるはずです。

スレッド化について:可能であるはずですが、通常、複数のスレッドからGLコマンドを発行しないことをお勧めします(同期が非常に難しいため)。通常、コンテンツをpixel-buffer-objectにコピーし、それをGLスレッドからマップしてから、他のスレッドからマップされたポインターを使用します。

于 2010-12-08T13:16:01.100 に答える