我可以在iPhone应用程序中将OpenglES与标准Cocoa小部件混合使用吗?

时间:2010-06-16 22:07:46

标签: iphone objective-c cocoa opengl-es

如果可以的话,看一些例子会很高兴!

谢谢, 瑞

2 个答案:

答案 0 :(得分:6)

This question提出了一些非常相似的内容,正如我所说,让OpenGL ES内容与UIKit控件共存是微不足道的。 OpenGL ES内容位于支持UIView的CAEAGLLayer中,UIView是普通视图层次结构的一部分。您可以轻松地将其他UIView叠加在其上。

有关此示例,您可以查看我的Molecules应用程序的源代码,其中我将两个UIButton放在我的OpenGL ES视图之上。

在我的基准测试中,通过在OpenGL ES视图上放置其他视图,您将失去约1-5%的OpenGL帧速率,这并不太可怕。您不想做的是使您的OpenGL ES上下文不透明,并尝试将其叠加在其他视图元素之上,因为您会看到渲染速度显着下降。

答案 1 :(得分:1)

是的,在所有OpenGL ES上下文都在另一个UIView子类之后,这是可能的。事实上,由于性能大幅下降,Apple不建议混合使用Cocoa Touch对象和OpenGL ES视图。