2016-08-27 2 views
1

Я использую OpenGL ES, чтобы сделать сцену на CADisplayLink с:OpenGL Рендеринг не Резюмируя после App фоновый

self.displayLink = CADisplayLink(target: self, selector: #selector(self.updateOpenGL)) 
self.displayLink!.frameInterval = 1 
self.displayLink!.addToRunLoop(NSRunLoop.currentRunLoop(), forMode: NSDefaultRunLoopMode) 

If I фоне приложения и перейти к весенней сессии Совета, когда я возвращаюсь в приложение, то рендеринг продолжается.

Но если я использую приложение, откройте еще одно приложение, такое как «Календарь», когда я верну приложение на передний план, на экране больше нет изображения. Если я приостановил выполнение с помощью Xcode или остановился на контрольной точке в конвейе рендеринга, DisplayLink все еще работает и выполняет мой код рендеринга OpenGL.

Любые идеи, почему?

ответ

1

Контекст OpenGL ES не гарантируется, что поддерживается сверхурочное время, когда приложение переходит в фоновый режим и возвращается. Приложение должно справиться с этим, поскольку ОС может удалить контекст, если другое приложение загружает OpenGL ES.

Приложение OpenGL ES находится в фоновом режиме, когда пользователь запускает другое приложение OpenGL ES. Если для этого приложения требуется больше памяти, чем доступно на устройстве , система автоматически отключит ваше приложение , не требуя от него каких-либо дополнительных работ.

Эта информация от Apple, Document OpenGLES Programming Guide

+0

Я знаю приложения несут ответственность за сохранение своего состояния - в случае, если они прекращаются. Но вы предлагаете, чтобы Calendar запускал экземпляр OpenGL ES? Кажется странным - на самом деле, когда я запускаю календарь, он просто показывает свой экран приветствия (так как я его раньше не использовал). –

+0

Не пытаюсь сказать, что приложение Calendar использует OpenGLES, но есть много факторов, почему контекст OpenGLEs удаляется. Может быть одна причина, по которой вы передаете команду GL после того, как приложение переходит в фоновый режим. Это очень вероятно, чтобы убить ваш контекст. – codetiger

Смежные вопросы