Перерисовка NDK SurfaceView была повреждена при повороте экрана - PullRequest
0 голосов
/ 27 апреля 2020

Я использую SurfaceView с ndk + openGL, когда я нажимаю кнопку поворота экрана эмулятора, я получаю событие SurfaceChanged от SurfaceHolder.Callback, затем я отправляю сообщение перерисовки через Handler, а Handler перерисовывает aws экран с новым отображать метрики через собственный код JNI, но отображение не работает, как показано на рисунке.

Я уверен, что собственный код рисования OpenGL уже dr aws один кадр, после нажатия кнопки поворота и до завершения поворота экрана sh, но не знаю, почему дисплей неисправен.

Я не очень знаком с android, может кто-нибудь мне помочь. спасибо.

РЕДАКТИРОВАТЬ: когда я делаю некоторые сенсорные события для запуска новых кадров, дисплей был исправлен. так что я думаю, есть ли событие rotate fini sh, поэтому я могу заставить нарисовать один кадр, чтобы решить эту проблему.

enter image description here

1 Ответ

1 голос
/ 28 апреля 2020

Проблема решена.

Переопределить метод surfaceRedrawNeeded для SurfaceHolder.Callback2, он будет вызван после завершения вращения.

...