我一直在使用 GLKView 构建一个基于 OpenGL 的应用程序,渲染方法由 CADisplaylink 触发。
到目前为止一切顺利,至少在模拟器上。但是当我在物理设备上运行它时,我的更新例程只被触发一次 - 在启动时。
我了解模拟器和物理设备之间存在许多差异,但我希望有人可以阐明 CADisplaylink 特有的任何内容以及可能导致它不触发的原因?
我的设置是这样的:
view.enableSetNeedsDisplay = NO;
CADisplayLink* displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(render:)];
displayLink.frameInterval=1;
[displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];