gpt4 book ai didi

ios - OpenGL 渲染在 App Backgrounded 后不恢复

转载 作者:行者123 更新时间:2023-11-29 11:55:45 25 4
gpt4 key购买 nike

我正在使用 OpenGL ES 在 CADisplayLink 上渲染场景:

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

如果我将应用置于后台并转到 Spring Board,当我恢复应用时,渲染会继续。

但是,如果我将应用置于后台,打开另一个应用(例如日历),当我将该应用带回前台时,屏幕将不再呈现。如果我使用 Xcode 暂停执行,或在渲染管道中的断点处停止,DisplayLink 仍在运行并执行我的 OpenGL 渲染代码。

有什么想法吗?

最佳答案

当应用程序进入后台并返回时,OpenGL ES 上下文不能保证超时维护。应用程序必须处理这个问题,因为如果另一个应用程序加载 OpenGL ES,操作系统可能会删除上下文。

Your OpenGL ES app is in the background when the user launches another OpenGL ES app. If that app needs more memory than is available on the device, the system silently and automatically terminates your app without requiring it to perform any additional work.

此信息来自 Apple 文档 OpenGLES Programming Guide

关于ios - OpenGL 渲染在 App Backgrounded 后不恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39176920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com