#android #opengl-es #opengl-es-2.0
#Android #opengl-es #opengl-es-2.0
Вопрос:
Я успешно рисую простые фигуры на своем GLSurfaceView
OpenGL ES 2.0. Пока я не использую никаких текстур. Проблема в том, что при повторном запуске во второй раз действие с GLSurfaceView
пустым (черным) экраном фигуры больше не рисуются. Мне нужно переустановить все приложение, чтобы оно снова заработало. У меня нет никаких специальных методов onPause
, onResume
поэтому я предполагаю, что новый экземпляр GLSurfaceView
должен перерисовывать экран при каждом повторном запуске приложения.
Кто-нибудь знает, чего мне здесь не хватает?
Ответ №1:
У меня нет никаких специальных методов
onPause
amp;onResume
Вероятно, это ваша проблема. Вам необходимо следовать документации GLSurfaceView, в частности тому, что говорится в разделе «Жизненный цикл активности»:
GLSurfaceView должен быть уведомлен, когда действие приостанавливается и возобновляется. Клиенты GLSurfaceView должны вызывать onPause() при приостановке действия и onResume() при возобновлении действия. Эти вызовы позволяют GLSurfaceView приостанавливать и возобновлять поток рендеринга, а также позволяют GLSurfaceView освобождать и воссоздавать отображение OpenGL.
Комментарии:
1. Эх… Я переопределил оба метода и оставил их пустыми… приносим извинения за то, что отняли у вас время. Исправлено.