2つのUIViewがあり、それぞれに独自のrenderBuffersとframeBuffersがあります。それらは異なるViewControllerに属します。私はすでにNSNotificationCenter経由で接続しているので、すべて設定されています。別のクラスのテクスチャをレンダリングする 'iOS用OpenGL ES 2.0のRenderBuffer/FrameBuffer
基本的には、ClassAViewのframeBufferのテクスチャをClassBViewのframeBufferにレンダリングするだけです。それはかなり簡単なはずのようにこれは私がClassAViewに結合した食感に渡してみました...ようだ:
glBindTexture(GL_TEXTURE_2D, myClassATexture);
そして言う後、画面をタップし、私はClassBViewにテクスチャを見逃してみてください。
// in ClassA:
[classBView addTexture:myClassATexture];
// In ClassB's addTexture method:
myClassBTexture = newTexture
glClear, glBindTexture, etc...
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
[self presentFramebuffer];
しかし、結果として黒い画面が表示されます。私はNSLog myClassATextureにしようとしましたが、それは "0"を印刷しています。
とにかく、既にClassAにレンダリングされたテクスチャをClassBに渡して効果的に渡す方法はありますか?
私はiOS 5.0をターゲットにしています.iOS 5を必要とする簡単な方法があれば、私はすべて耳にします。 :)
ありがとうございました!
あなたがしようとしているのはうまくいくはずです。問題は、テクスチャIDが0であるということです。 – user1118321
ああ、それはレンダリングされた後に無効になっているかもしれません。私は明らかにOpenGLを初めて使う人です。 :) – taber
私は意図せずに後でコード内で無効にしたので、効果的に0に設定しました。私はそれを取り出し、それは動作します!驚くばかり。 – taber