【问题标题】:Can I mix OpenglES with standard Cocoa widgets on an iPhone app?我可以在 iPhone 应用程序上将 OpenglES 与标准 Cocoa 小部件混合使用吗?
【发布时间】:2023-03-09 08:56:01
【问题描述】:

如果这是可能的,很高兴看到一些例子!

谢谢, 瑞

【问题讨论】:

  • 我的意思是,在同一个屏幕上同时拥有小部件和 opengl-es 上下文。

标签: iphone objective-c cocoa opengl-es


【解决方案1】:

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

例如,您可以查看我的Molecules 应用程序的源代码,我在其中将两个 UIButtons 放置在我的 OpenGL ES 视图之上。

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

【讨论】:

    【解决方案2】:

    是的,有可能,毕竟 OpenGL ES 上下文只是在另一个 UIView 子类中。问题是 Apple 不建议将 Cocoa Touch 对象和 OpenGL ES 视图混合使用,因为性能会大幅下降。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多