繁体   English   中英

CADisplaylink模拟器与物理设备之间的差异

[英]CADisplaylink differences between simulator and physical device

我一直在使用GLKView构建基于OpenGL的应用程序,并通过CADisplaylink触发了渲染方法。

到目前为止,至少在模拟器上是如此。.但是,当我在物理设备上运行它时,我的更新例程仅触发一次-在启动时。

我知道模拟器和物理设备之间有很多区别,但是我希望有人可以对CADisplaylink特有的东西有所了解,是什么导致它无法启动?

我的设置如下:

view.enableSetNeedsDisplay = NO;
CADisplayLink* displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(render:)];

displayLink.frameInterval=1;
[displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];

因此,事实证明我的displayLink仍在运行,但是它从未有过在设备上触发一次的机会-另一个基于计时器的事件正在同一runloop上触发,消耗了所有可用的CPU时间。

这并未在模拟器中显示出来,因为它在模拟器中的运行速度明显快得多,并且从未遭受竞争。

限制计时器事件使displayLink能够再次触发,所以我现在的挑战是将计时器事件与另一个线程/运行循环分离-与displayLink完全无关。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM