在OpenGL ES 2.0 for iOS 5中的另一个类'RenderBuffer / FrameBuffer中渲染纹理

时间:2012-05-08 01:27:33

标签: iphone ios opengl-es textures texture2d

我有两个UIView,每个都有自己独立的renderBuffers和frameBuffers。它们属于不同的ViewControllers。我已经通过NSNotificationCenter连接了它们,所以这一切都已设置好。

我只需要将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,我会全神贯注。 :)

非常感谢!

1 个答案:

答案 0 :(得分:0)

纹理ID为0表示没有纹理,因此您需要确保正确复制纹理ID以便以后使用。

相关问题