Когда я поворачиваю свое устройство и мое приложение получает APP_CMD_CONFIG_CHANGED
, я пытаюсь обновить окно просмотра OpenGL следующим образом:
EGLint width;
EGLint height;
eglQuerySurface(display,surface,EGL_WIDTH,&width);
eglQuerySurface(display,surface,EGL_HEIGHT,&height);
glViewport(0,0,width,height);
MY_LOG_MACRO2("New window size: %d x %d",width,height);
Это работает примерно в 20% случаев.Другие 80% времени ширина и высота являются предыдущими значениями.Другими словами, большую часть времени, когда я переключаю свое устройство в альбомный режим, размер портрета регистрируется.И когда я возвращаюсь к портрету, размер ландшафта записывается в журнал.
Мне не особо повезло с получением размера от ANativeWindow
.
Что мне делатьполучить правильный размер окна после поворота?
Обновление:
При ожидании нескольких кадров после APP_CMD_CONFIG_CHANGED
размер всегда будет правильным.Запрос размера каждого кадра, без учета APP_CMD_CONFIG_CHANGED
, и проверка, изменился ли он, кажется, работает, но чувствует себя неправильно.