2011-08-09 12 views
3

私のアプリにはいくつかの異なるOpenGLコンテキストがあり、すべて同じシェーダーセットを使用しています。現時点では、再コンパイル、シェーダのリンクなどを各コンテキストごとに1回、複数回行います。私はこれをスピードアップしようとしており、EAGLSharegroupに出会った。EAGLSharegroupとコンテキスト間でシェーダを共有できますか?

documentation for EAGLSharegroupは、「現在、sharegroupはテクスチャ、バッファ、フレームバッファ、およびレンダバッファを管理しています」と述べていますが、シェーダとプログラムオブジェクトについては何も言及していません。ドキュメントが最新でないか、これらのオブジェクトを共有するだけでは機能しないかどうかはわかりません。

this questionの回答によると、うまくいきますが、それを裏付けるものは何も見つかりません。

私はそれを試みましたが、それはシミュレータ上で動作するようです(実際のデバイスではまだ試していません)。私はうず虫を経験していますか、あるいは私はこの行動に頼ることができますか?私はそれに頼ることができたいと思っていますが、私ができる公式の文書は見つかりません。

答えて

2

私はiExperienceを持っていませんが、コンテキスト共有がデスクトップGL(私が想定している)のように機能するならば、シェイダーを含むすべてのリソースを共有する必要があります。

1

私のために働く。シェイダープログラムを別のスレッドで別のコンテキストでコンパイルしてリンクします。この別のコンテキストは、私のプライマリコンテキストと同じ共有グループを使用します。シェーダは、このプライマリコンテキストを使用してメインスレッド上で正しく動作します。

関連する問題