使用CVDisplayLink替代NSTimer

8
我已经开始实现cvDisplayLink来驱动渲染循环,而不是使用nstimer,详见这篇技术笔记:https://developer.apple.com/library/archive/qa/qa1385/_index.html
在displaylink回调函数中进行实际渲染是否更好,还是应该调用视图的setNeedsDisplay方法,让主线程进行渲染呢?
为了直接在回调函数中进行渲染,我需要锁定opengl上下文,但我希望避免这种情况。
是否可能使用cvDisplayLink进行计时,并仍然在主线程上进行渲染?
感谢您提前的反馈。

技术说明链接已损坏。 - Barry Wark
1个回答

3

锁定上下文本身并没有固有的问题;它应该是无争用的,并且可以快速解锁。通过-setNeedsDisplay:在主线程上重新绘制可能由于运行循环回传而错过VBL窗口。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接