我在主 iPad(或 iPhone、iPod Touch)屏幕上使用 OpenGL ES 进行渲染,我想在外部屏幕上进行渲染,一旦用户连接,内容就会“移动”到外部屏幕上(并在外部屏幕断开连接时返回主屏幕)。我使用了一个库来进行 OpenGL 调用(至少是那些与平台无关的,即不像 EAGL 和 CAEAGL 那样的集成),但几乎没有状态。什么是最好的方法(就性能而言,然后是维护)去做呢?
- 我不认为它受支持,即使支持,我也不建议将 CAEAGLLayer 支持的视图移至新窗口
- 否则,我因此有两个可绘制对象。我是否应该保留一个 EAGLContext,将其与主屏幕的 CAEAGLLayer 分离,并将其附加到外部显示器的 CAEAGLLayer(当用户断开外部显示器时,反之亦然)?
- 我是否应该有两个上下文,并尝试并继续使用相同的包装库实例(因此必须重新配置它,尽管即使我保留一个上下文,它也必须在一定程度上,由于不同的屏幕纵横比,像素纵横比等)
- 我是否应该有两个上下文,以及每个上下文的一个包装器库实例(优点是我可以使库实例成为我的自定义 CAEAGLLayer 支持的 UIView 的 ivar)。
- 我应该使用两个上下文但使用一个共享组以便可以共享一些资源吗?
Apple 推荐什么(如果有推荐的话)?你们是怎么做到的(不要告诉我这是一个不常见的功能!)?