Я создал Air Native Extension для iOS, который открывает GLKViewController с GLKView внутри для рендеринга 3D-контента, все это прекрасно работает. Когда ViewController отклонен, приложение AIR прекратило рендеринг. Взаимодействие все еще работает (поэтому приложение не заморожено), но рендеринг остановился на последнем кадре, пока не откроется контроллер представления собственного расширения.Исходное расширение iOS AIR с OpenGLES вызывает приложение для замораживания
Это код из метода viewDidLoad моего взгляда контроллера (это все подкласс):
GLKView* view = (GLKView*)self.view;
if(view.context == nil)
{
EAGLContext *context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
if (!context)
{
NSLog(@"Failed to create ES context");
return;
}
view.context = context; //Removing this fixes flash!
}
Когда я прокомментирую view.context = context
линию, то вспышка будет продолжать оказывать штраф (но, очевидно, что я больше не имею контекст и не может отображать).
Я полагаю, что Flash теряет EAGLContext, когда GLKView устанавливает текущий контекст и не сбрасывает его. Есть ли способ, который я могу исправить или избежать этого?
Я попытался сохранить текущий EAGLContext перед открытием контроллера вида, а затем сбросить его, когда контроллер вида закрыт, но это не сработало.