Rotação da tela do iOS OpenGL ES enquanto a barra de aplicativos em segundo plano é visível
Meu aplicativo usaGLKit
para renderizar cena 3D comOpenGL ES
.
Tudo funciona bem, exceto uma coisa. Quando eu lanço meu aplicativo no iPad e exibo a barra de aplicativos em segundo plano (com duplo clique no botão "Home") e depois mudo a orientação do dispositivo, a cena é atualizada incorretamente (a última imagem renderizada é simplesmente esticada para preencher o novo retângulo).
Eu encontrei o motivo. Quando a barra de aplicativos em segundo plano aparece,GLKViewController's
paused
está configurado paraYES
automaticamente (o delegado do aplicativo recebe-applicationWillResignActive:
) e nenhuma renderização acontece até que esta barra seja fechada.
Eu encontrei em guias da Apple (Guia de programação OpenGL ES para iOS / Implementando uma aplicação OpenGL ES com reconhecimento de multitarefa) que depois de receber-applicationWillResignActive:
aplicativo deve parar a renderização GL ou será encerrado. Então parece que está tudo bem, exceto renderização ruim após a rotação :)
Eu verifiquei alguns jogos OpenGL. Eles também ficaram "pausados" quando essa barra foi exibida, mas de alguma forma atualizou corretamente a cena pausada na rotação do dispositivo. Como eles conseguem isso?