3GとglFramebufferTexture2DOESとglCopyTexImage2D
glFramebufferTexture2DOESを使って、3Gでテクスチャを生成したのですが、上手く行かない事がありました。
一つのテクスチャをフレームバッファと結びつけて、毎フレーム生成する場合は上手く行きます。
ですが、どうもそれ以外では上手く行かない事が起こる事があります。
まるでテクスチャとフレームバッファが結びついていないような結果になってしまいます。
描画のタイミングも絡んでいるようで、描画と描画の間のフレーム数で上手く行ったり、
少しフレーム数を変えると上手く行かなかったり。
もちろん、3GSやシミュレータでは上手く行きますから、どうも3Gの特性に引っかかっているようです。
良く判りませんが、OpenGLES 2.0と何か関わりでもあるでしょうか。
ま、かなり困りました。(笑)
微妙に上手く行ったりするもので、諦めるまでに少々時間がかかってしまいました。
で、代わりになりそうなものを探した所、見つかったのが、glCopyTexImage2D。
フレームバッファの内容をテクスチャにコピーする関数です。
glFramebufferTexture2DOESでテクスチャに結びつけたフレームバッファに描画する代わりに、
いつも描画しているフレームバッファに描画し、その結果をglCopyTexImage2Dで、
テクスチャにコピーするという方法です。
この方法で、安定して3Gでもテクスチャを生成できるようになりました。