我的應用程序是一個重要的OpenGL,用於處理圖像,渲染場景,顯示預覽等。然而,在我將多任務實現爲Apple的官方文檔「適用於iOS的OpenGL ES編程指南」,奇怪的崩潰仍然偶爾出現。調試導航堆棧跟蹤顯示類似「sgxPatchDeferredFramebufferOffsets」,「presentRenderbuffer EXC_BAD_ACCESS」,「gpus_ReturnNotPermittedKillClient」等OpenGL ES應用程序在鎖定屏幕或進入背景時崩潰
所以,我想知道究竟應該實行OpenGL ES的多任務。
============= UPDATE:問題就迎刃而解了============
謝謝您的回答,CStreel,和其他人誰試圖幫助。
在閱讀'後臺應用程序不能執行圖形硬件上的命令'部分'iOS的OpenGL ES編程指南'後,我一直一行一行地對這個問題有了新的認識。
我的應用程序的大問題是我不應該在通知方法中實現OpenGL ES多任務。因爲與委託方法不同,通知方法將被異步調用,所以當應用程序已經移動到後臺時,這些停止動畫操作和glFinish()調用可能不會生效。當我執行一系列OpenGL ES相關操作時,當我點擊鎖屏按鈕時,這可能會更頻繁地發生。
如果你們發現了一些其他問題,請隨時與我聯繫。
如果您從後臺的串行隊列中調用OpenGL ES,問題仍然存在。即使在告訴定時器停止射擊之後,一個塊仍然會完成並且可能導致崩潰。 http://stackoverflow.com/questions/19215554/how-to-stop-opengl-drawing-when-calling-opengl-from-background – openfrog