2013-01-14 20 views
0

我试图在my application中同时使用多个OpenGL上下文。在三个UITableViewCells中有三个OpenGL上下文,这是一个相当混乱的设置。 UITableView本身显示在全屏GLKView上方的UIPopoverView中(见下文)。背景中的上下文使用OpenGL ES 2.0,较小的使用OpenGL ES 1.1。较小的上下文是同一个共享组的成员。在后台的人不是。具有不同API的多个OpenGL上下文

也许令人惊讶的是,这实际上按预期工作!而且非常可靠。我只在其中一个环境中遇到问题,而且很少。如果我删除这一个上下文,一切正常。然而,在极少数情况下,我在[context presentRenderbuffer:GL_RENDERBUFFER_OES];的电话中遇到异常情况。

我的问题有点宽泛,但我想知道我应该在这种情况下寻找什么?其他人是否同时成功使用OpenGL ES 1.1和2.0?

(我看了一下OpenGL ES的分析仪器,但无法找到任何看起来严重。)

Screenshot of the Exoplanet App

+2

可能不是1.1和2.0问题,因为这些问题通常可以和平共处。你有没有偶尔的情况,你在绘画/礼物时有错误的背景?你可以通过这种方式在现在之前放置'expectedContext == [EAGLContext currentContext]'来判断它是否触发。 –

+0

我相信我一直这样做,但我会再次检查。 – hanno

+0

我想你可能是对的;-)。检查... – hanno

回答

0

本Zotto是正确的,它只是做的事情确保正确的上下文在每个子程序中设置。由于存在多个上下文,所以很难发现错误。导致非法操作的OpenGL视图(设置了错误的上下文)不是崩溃的那个。

相关问题