Я почти закончил создание игры для Android, используя порт 3D-движка irrlicht для Android.
Весь код, за исключением минимальной работы с фреймами для выполнения собственных вызовов и воспроизведения звуков, написан на C ++.
Даже отображение opengles создается в коде c ++ с использованием eglGetDisplay и eglCreateWindowSurface
Проблема, которую мне нужно решить, состоит в том, что когда нажата кнопка home, затем перезапустите игру, экран будет белым.
Из других ответов я обнаружил, что контекст opengl теряется, а затем воссоздается при вызове onSurfaceCreated. Я думал, что могу просто перезагрузить текстуры, но швы работают только для некоторых текстур. Также изменен цвет фона, который не является ресурсом.
Похоже, мне придется полностью перезапустить игру, но это может раздражать пользователя.
В порту Quake 3 есть примечания по этой проблеме, но решение не найдено.
Есть ли где-нибудь пример игры, написанной на нативном коде, которая правильно обрабатывает эту ситуацию?