【发布时间】:2011-04-06 10:42:17
【问题描述】:
我正在 iPad(或 iPhone、iPod Touch)主屏幕上使用 OpenGL ES 进行渲染,并且我想在外部屏幕上进行渲染,并且只要用户连接一个(并在外部屏幕断开连接时返回主屏幕)。我使用了一个库来进行 OpenGL 调用(至少是那些与平台无关的,即不像 EAGL 和 CAEAGL 那样的集成),但几乎没有状态。最好的方法是什么(就性能而言,然后是维护)?
- 我不认为它受支持,即使支持,我也不建议将 CAEAGLLayer 支持的视图移至新窗口
- 否则,我因此有两个可绘制对象。我应该保留一个 EAGLContext,将其与主屏幕的 CAEAGLLayer 分离,然后将其附加到外接显示器的 CAEAGLLayer(当用户断开外接显示器时反之)?
- 我是否应该有两个上下文,并尝试继续使用相同的包装库实例(因此必须重新配置它,尽管由于屏幕方面不同,即使我保留一个上下文也必须在一定程度上比、像素纵横比等)
- 我是否应该有两个上下文,以及每个上下文一个包装库实例(优点是我可以使库实例成为我的自定义 CAEAGLLayer 支持的 UIView 的 ivar)。
- 我是否应该使用两个上下文但使用一个共享组以便共享某些资源?
Apple 推荐什么(如果有推荐的话)?你们是怎么做到的(不要告诉我这是一个不常见的功能!)?
【问题讨论】:
-
一周过去了,没有任何答复。 FWIW,我决定使用两个可绘制对象,暂时一个上下文。
标签: iphone opengl-es external-display