2013-01-14 19 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視圖(設置了錯誤的上下文)不是崩潰的那個。

相關問題