Управление ресурсами OpenGL на Android - PullRequest
1 голос
/ 15 июля 2011

У меня есть базовый класс Activity, который создает GLSurfaceView и передается классу, производному от Renderer, в его методе SetRenderer. Теперь я знаю, что ресурсы OpenGL могут быть потеряны, когда телефон или планшет переходит в спящий режим (пока что DirectX 9), и что эти ресурсы необходимо воссоздавать, когда телефон возвращается из спящего состояния.

Правильно ли я считаю, что все мои другие занятия, занятия и т. Д. Восстанавливаются в точности так, как они были при пробуждении? Т.е. мне нужно было бы только повторно связать такие вещи, как текстуры, шейдеры, состояние GL и т. д. в методе onSurfaceCreated. Мне не нужно воссоздавать вид или объект рендеринга.

Вызывается ли метод onSurfaceCreated при пробуждении телефона или только один раз при запуске? Уничтожен ли объект GL, который я получаю в onSurfaceCreated (т.е. безопасно ли его хранить и использовать в цикле сна / бодрствования)?

1 Ответ

3 голосов
/ 15 июля 2011

Правильно ли я считаю, что все мои другие занятия, упражнения и т. Д., Восстанавливаются точно так же, как и при пробуждении?

Это зависит от того, была ли активностьубит между этими "пробуждениями".Если действие между этими паузами не было убито, все ваши классы восстанавливаются так, как они были, когда вы прекращали свою деятельность.

Мне бы пришлось только заново связать такие вещи, как текстуры, шейдеры, GLсостояние и так далее в методе onSurfaceCreated.Мне не нужно пересматривать представление или объект визуализации.

Правильно.

Вызывается ли метод onSurfaceCreated при пробуждении телефона или только один раз взапуск?

Он вызывается каждый раз, когда создается новая поверхность, что означает каждый раз, когда ваше приложение выходит из фона на передний план.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...