Я использую 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.
Любые идеи, почему?
Я знаю приложения несут ответственность за сохранение своего состояния - в случае, если они прекращаются. Но вы предлагаете, чтобы Calendar запускал экземпляр OpenGL ES? Кажется странным - на самом деле, когда я запускаю календарь, он просто показывает свой экран приветствия (так как я его раньше не использовал). –
Не пытаюсь сказать, что приложение Calendar использует OpenGLES, но есть много факторов, почему контекст OpenGLEs удаляется. Может быть одна причина, по которой вы передаете команду GL после того, как приложение переходит в фоновый режим. Это очень вероятно, чтобы убить ваш контекст. – codetiger