在一个应用程序中切换OpenGL ES视图和UIView是否可能/高效?

时间:2009-07-21 10:52:10

标签: iphone cocoa-touch uikit opengl-es

想象一下iPhone应用程序,它以标准的UIView开头,显示一些按钮和内容。然后有一个统计按钮,你点击它,UIView滑开。取而代之的是OpenGL ES视图,并显示了一个很好的统计曲线。

我知道你可以将OpenGL ES和UIView以某种方式混合,但人们说这是一个坏主意。如果整个屏幕全屏是openGL ES ||,这也适用吗?的UIView?

3 个答案:

答案 0 :(得分:2)

在我的应用程序中,我也混合了OpenGL和Cocoa UI元素,没有不好的结果。我甚至将UIView置于OpenGL视图之上,结果表现良好。如果你想看到它,在我的个人资料中你会找到一个链接。

答案 1 :(得分:1)

你绝对可以这样做;我有一个使用UIAlerts和UIActionSheets的OpenGLES应用程序,它工作正常。我想你只是想避免做一些事情,比如拥有一个OpenGL层,然后是一堆UI元素,然后是另一个透明的OpenGL层。

答案 2 :(得分:1)

在iPhone上,你总是渲染到UIView中,这个视图可以像任何其他视图一样拥有子视图。

单个OGL视图与使用导航控制器或核心动画交换许多视图(包括一个OGL视图)之间没有区别。

在OGL视图上设置一些UI按钮或标签不会减慢您的应用程序速度,但您必须确保它们不会覆盖屏幕的大部分并且不会过于频繁地更新其内容。例如,使用快速滚动得分标签,每秒更新20次是不错的主意。在这种情况下,您必须限制更新速度,或使用基于OGL的UI控件。

确保您的OGL视图配置为不透明,并且不使用带alpha的像素格式,除非确实需要。 Alpha混合的OGL视图很慢。