CVDisplayLink而不是NSTimer

时间:2009-11-18 17:32:39

标签: objective-c cocoa opengl

我已经开始实现cvDisplayLink来驱动渲染循环而不是nstimer,详见本技术说明https://developer.apple.com/library/archive/qa/qa1385/_index.html

在displaylink回调本身中进行实际渲染是否更好,或者我应该在视图上调用setNeedsDisplay并让主线程进行渲染?

为了直接在回调中呈现,我需要锁定opengl上下文,这是我希望避免的。

是否可以使用cvDisplayLink进行计时并仍在主线程上呈现?

提前感谢任何反馈......

1 个答案:

答案 0 :(得分:3)

锁定上下文没有内在问题;它应该是无竞争的并且快速解锁。通过-setNeedsDisplay:重新绘制主线程,有可能因为runloop往返而错过了VBL窗口。