gpt4 book ai didi

iphone - iOS 上的 OpenGL ES 和外部显示器

转载 作者:行者123 更新时间:2023-12-03 19:14:24 26 4
gpt4 key购买 nike

我正在 iPad(或 iPhone、iPod Touch)主屏幕上使用 OpenGL ES 进行渲染,并且我想在外部屏幕上进行渲染,一旦内容“移动”到外部屏幕,用户连接一个(并在外部屏幕断开连接时返回主屏幕)。我使用一个库来进行 OpenGL 调用(至少是那些与平台无关的调用,即不是像 EAGL 和 CAEAGL 这样的集成),但几乎没有状态。最好的方法是什么(在性能方面,然后在维护方面)?

  • 我不认为它受支持,即使支持,我也不认为建议将 CAEAGLLayer 支持的 View 移至新窗口
  • 否则,我有两个可绘制对象。我是否应该保留一个 EAGLContext,将其与主屏幕的 CAEAGLLayer 分离,然后将其附加到外部显示器的 CAEAGLLayer(当用户断开外部显示器的连接时则相反)?
  • 我是否应该有两个上下文,并尝试并继续使用相同的包装器库实例(因此必须重新配置,尽管由于屏幕方面不同,即使我保留一个上下文,它也必须在一定程度上)比例、像素长宽比等)
  • 我是否应该有两个上下文,并且每个上下文都有一个包装器库实例(优点是我可以使该库实例成为我的自定义 CAEAGLLayer 支持的 UIView 的 ivar)。
  • 我应该使用两个上下文但使用共享组以便可以共享某些资源吗?

Apple 有什么建议(如果有的话)?你们是怎么做到的(别告诉我这是一个不常见的功能!)?

最佳答案

它适用于一个上下文和两个可绘制对象。只需要小心,在与旧的 CAEAGLLayer 分离之前销毁渲染缓冲区,并使用新的 CAEAGLLayer 重新分配一个新的渲染缓冲区;大多数执行此操作的代码都在 Xcode 中 OpenGL ES 应用程序模板的 EAGLView 类中提供。当然,需要使用新图层的大小重新配置正在绘制 OpenGL 的对象。

关于iphone - iOS 上的 OpenGL ES 和外部显示器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5565034/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com