私のアプリケーションはOpenGLを多用しており、画像の処理、シーンのレンダリング、プレビューの表示などに使用されています。ただし、Appleの公式ドキュメント「OpenGLESプログラミングガイドfor iOS」としてマルチタスクを実装した後も、奇妙なクラッシュが発生しました。散発的にアップ。デバッグナビゲータスタックトレースには、「sgxPatchDeferredFramebufferOffsets」、「presentRenderbuffer EXC_BAD_ACCESS」、「gpus_ReturnNotPermittedKillClient」などが表示されます。
それで、OpenGLESマルチタスクを正確に実装する必要があるものを知りたいと思います。
=============更新:問題は解決しました============
あなたの答え、CStreel、そして助けようとした他の人たちに感謝します。
「iOS用OpenGLESプログラミングガイド」の「バックグラウンドアプリケーションがグラフィックスハードウェアでコマンドを実行しない可能性がある」の部分を2回目に読んだ後、この問題について新たに理解しました。
私のアプリの大きな問題は、通知メソッドにOpenGLESマルチタスクを実装すべきではないということです。デリゲートメソッドとは異なり、通知メソッドは非同期で呼び出されるため、アプリケーションがすでにバックグラウンドに移動している場合、これらの停止アニメーションアクションとglFinish()呼び出しは有効にならない場合があります。これは、一連のOpenGL ES関連のアクションを実行しているときにすぐにロック画面ボタンを押すと、より頻繁に発生する可能性があります。
他に問題が見つかった場合は、お気軽にご連絡ください。