Мое приложение Android opengl падает после сна - PullRequest
1 голос
/ 23 октября 2011

Я знаю, что это то, чему я должен был научиться, прежде чем перейти на opengl es 1.0 из программного чертежа, но я не смог найти никакой информации по этому вопросу ...

Мое приложение opengl вылетает после переходаспать, если ничего не трогать какое-то время ... Интересно, это потому, что я не выгружаю текстуры или буферы вершин / цветов / текстур / индексов до того, как он засыпает ... Я действительно не уверен, каксделайте это или даже если это поможет ... может кто-нибудь направит меня или подскажет краткое руководство по правилам того, что должно быть перезагружено, уничтожено и так далее?Я действительно смущен всем этим ...

Я не знаю, если это полезно, но мой основной класс расширяет GLSurfaceView и реализует "Renderer", который загружает все текстуры и объекты буфера в onScreenCreated и исправляет масштабирование экрана.на onSurfaceChanged.В основном действии (с которым связан основной класс) переопределение onResume и onPause, вызывающее поверхностные команды onResume и onPause openGL ...

Любая подсказка, что может быть неправильным, будет очень полезна ...Мой игровой движок наполовину закодирован, но я боюсь, что такой сбой просто остановит мои текущие и будущие проекты.

Я использую Froyo (android 2.2) и openGL ES 1.0.

ошибка распечатки из logcat:

10-24 03: 13: 41.988: ОШИБКА / AndroidRuntime (9888): ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: GLThread 26

10-24 03:13:41.988: ОШИБКА / AndroidRuntime (9888): java.lang.IllegalThreadStateException: поток уже запущен.

10-24 03: 13: 41.988: ОШИБКА / AndroidRuntime (9888): в java.lang.Thread.start (Thread.java:1322)

10-24 03: 13: 41.988: ОШИБКА / AndroidRuntime (9888): на or.gl.m5.Screen.onSurfaceCreated (Screen.java:161)

10-24 03: 13: 41.988: ОШИБКА / AndroidRuntime (9888): в android.opengl.GLSurfaceView $ GLThread.guardedRun (GLSurf)aceView.java:1317)

10-24 03: 13: 41.988: ОШИБКА / AndroidRuntime (9888): в android.opengl.GLSurfaceView $ GLThread.run (GLSurfaceView.java:1116)

1 Ответ

2 голосов
/ 23 октября 2011

Не видя следа стека или каких-либо исключений, которые он выбрасывает, довольно сложно что-то сказать.Но в любом случае я даю дикое предположение, что он падает, потому что вам нужно перезагрузить текстуры после возобновления активности.Текстуры, которые вы ранее создали, становятся недействительными, когда ваш вид переходит в фоновый режим.

...