【发布时间】:2012-05-16 12:10:32
【问题描述】:
我有两个 UIView,每个都有自己独立的 renderBuffers 和 frameBuffers。它们属于不同的 ViewController。我已经通过 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 的简单方法,我会全力以赴。 :)
非常感谢!
【问题讨论】:
-
你正在尝试的应该工作。问题是纹理 ID 为 0。这基本上意味着没有纹理。
-
啊哈,所以它可能在渲染后失效了?我显然是opengl的新手。 :)
-
哈哈,后来我无意中在代码中使其无效,实际上将其设置为 0。哎呀!我把它拿出来了,它起作用了!太棒了。
标签: iphone ios opengl-es textures texture2d