首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPhone:如何在CFRunLoop中确定项目的优先级(与OpenGL相关)

iPhone:如何在CFRunLoop中确定项目的优先级(与OpenGL相关)
EN

Stack Overflow用户
提问于 2009-12-09 18:33:41
回答 1查看 675关注 0票数 1

我有一个OpenGL应用程序,它是渲染密集型的,也通过超文本传输协议获取东西。

遵循苹果的OpenGL示例,我最初使用NSTimer作为我的主绘制循环,然后发现(像其他人一样)这真的不是一个好主意(因为当缓慢的绘制导致绘制计时器堆积时,您有时会在处理触摸事件时遇到巨大的延迟)。

所以现在我使用的是http://www.idevgames.com/forum/showthread.php?t=17058用户godexsoft给出的策略(godexsoft搜索帖子)。具体地说,我的render run循环位于主线程上,包含以下内容:

代码语言:javascript
复制
while( CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.01f, FALSE) == 
     kCFRunLoopRunHandledSource);

这一行允许像触摸事件和与通信相关的事件在帧的渲染之间发生。它是有效的,但我想进一步改进它。有没有办法让触摸事件优先于其他事件(比如与通信相关的事件)?如果我可以这样做,我可以减少0.01f的数字,并获得更好的帧率。(我知道这可能意味着通信需要更长的时间才能恢复,但不滞后的触摸事件非常重要)。

EN

回答 1

Stack Overflow用户

发布于 2009-12-10 02:42:08

这并没有直接回答您的问题,但是您是否考虑过使用CADisplayLink来安排重绘?它是在iPhone OS 3.1中引入的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1873004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档