Пустой экран на Resume () после уничтожения контекста, Android - PullRequest
0 голосов
/ 05 августа 2011

Для нашей игры на ОС Android мы в основном использовали ndk для написания нашей игры и тонкую оболочку Java, чтобы мы могли поддерживать все устройства с аппаратным обеспечением Gles 2.0.

Наша реализация довольно стандартна,используя переопределения GLSurfaceView, мы: * создаем / возобновляем часть игры на c ++ onSurfaceChanged (), * визуализируем onDrawFrame (), * информируем движок о потере gl Context в destroyContex (), который обычно происходит, когда приложение приостанавливается или разрушается.

Когда контекст gl воссоздается (при возобновлении - onSurfaceChanged ()), мы возвращаем информацию в игру и перезагружаем все ресурсы gl обратно. За время между onSurfaceChanged () и первым onDrawFrame через экранчерный, но я заметил довольно много 3D-игр, у которых нет такой проблемы (например, Gun Bros), они также, кажется, не перезагружают свои ресурсы (если у них нет всей памяти и быстро загружают их обратно).

Любая информация о том, почему это происходит?

1 Ответ

0 голосов
/ 12 августа 2011

Просто идея, но если вы сбросите экран с помощью glReadPixels или аналогичного метода в destroyContext (), а затем первым делом сделаете в onSurfaceChanged () его загрузку и отрисовку, вы покажете пользователю действительное изображение перед вашимсначала onDrawFrame.

...