OpenGL ES 2.0 работает только один раз

#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. Эх… Я переопределил оба метода и оставил их пустыми… приносим извинения за то, что отняли у вас время. Исправлено.