gpt4 book ai didi

ios - 当我调用 glFinish() 时,这是否意味着 OpenGL ES 会忽略进一步的调用,直到我调用 -setCurrentContext :?

转载 作者:行者123 更新时间:2023-11-28 22:25:07 25 4
gpt4 key购买 nike

OpenGL ES Programming Guide他们说:

To summarize, your app needs to call the glFinish function to ensure that all previously submitted commands are drained from the command buffer and are executed by OpenGL ES. After it moves into the background, you must avoid all use of OpenGL ES until it moves back into the foreground.

glFinish 是否使 OpenGL ES 忽略所有进一步的函数调用?

或者您还有什么其他方法可以防止您的应用在开始过渡到后台后调用 OpenGL ES 函数?

问题是,如果您使使用 GCD 串行队列触发异步绘图的计时器无效,那么 block 仍然会在进入后台的过程中完成其工作。

最佳答案

glFinish() 将阻塞,直到之前对 OpenGL ES 的所有调用都已完成其功能,从而清除挂起的任务。在执行任何屏幕截图之前调用此函数通常很有帮助。

要在应用程序进入后台时避免 GL 调用,非常简单,而且更多取决于您实现游戏循环的方式。在我们的游戏中,我们使用 bool 变量“isAppActive”,当应用程序进入后台状态时将触发该变量。如果此变量为真,则不会调用游戏循环中的 Draw() 函数。从而避免所有 GL 调用。

关于ios - 当我调用 glFinish() 时,这是否意味着 OpenGL ES 会忽略进一步的调用,直到我调用 -setCurrentContext :?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19215798/

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