2012-05-08 9 views
0

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を必要とする簡単な方法があれば、私はすべて耳にします。 :)

ありがとうございました!

+0

あなたがしようとしているのはうまくいくはずです。問題は、テクスチャIDが0であるということです。 – user1118321

+0

ああ、それはレンダリングされた後に無効になっているかもしれません。私は明らかにOpenGLを初めて使う人です。 :) – taber

+0

私は意図せずに後でコード内で無効にしたので、効果的に0に設定しました。私はそれを取り出し、それは動作します!驚くばかり。 – taber

答えて

0

テクスチャIDが0の場合はテクスチャがないことを示しますので、後で使用するにはテクスチャIDが正しくコピーされていることを確認する必要があります。

関連する問題