2011-01-28 4 views
0

私はこの質問に誰も尋ねていません。もし誰かがそれを見つけられなかったなら、私に知らせてください。glReadPixels()を使用したTVOutManager

私はiPad/iPhoneの画面を外部ディスプレイにミラーリングするためのTVOutManagerと似たソリューションを探しています。 TVOutManagerはうまく動作しますが、アニメーションやOpenGLコンテンツは表示されません。上のコードのreadmeファイルで、RobはglReadPixels()を使用するAppleのQAを言い、明らかにそのトリックを行います。しかし、私はどのようにそれを実装するか分からない。 QAのコードスニペットは、特定のビューに対してのみ機能します。複数のOpenGLビューでウィンドウ全体をキャプチャするにはどうすればよいですか?

答えて

1

OpenGLビューが複数ある場合は、複数のEAGLContextおよび/またはフレームバッファ(各ビューに1つ)があります。描画が現在のコンテキストで現在のフレームバッファに描画するのと同じ方法で、glReadPixelsは現在のコンテキストで現在のフレームバッファを読み取ります。

基本的に、すべてのビューを次のフレームを描画するように設定する必要があります(ただし、クリアコールなし)。次にglReadPixels()を呼び出します。

+0

Hm。しかし、個々のOpenGLビューから画面全体をどのように構成すればよいですか? – hanno

+0

各glReadPixels()から取得するバッファをマージする必要があります。画面サイズで画像を作成し、ビューごとに位置とサイズを取得します。 glGet()(http://www.opengl.org/sdk/docs/man/xhtml/glGet.xml)とGL_VIEWPORTは、OpenGLコンテキストが全体ビューに描画されない場合に使用できます。 OpenGLでは、1回の呼び出しで複数のコンテキストにアクセスすることはできません。 – fbafelipe

+0

ありがとうございます。それは私が望んでいた答えではありませんが:-( – hanno

関連する問題