我已经开始实现cvDisplayLink来驱动渲染循环而不是nstimer,详见本技术说明https://developer.apple.com/library/archive/qa/qa1385/_index.html
在displaylink回调本身中进行实际渲染是否更好,或者我应该在视图上调用setNeedsDisplay并让主线程进行渲染?
为了直接在回调中呈现,我需要锁定opengl上下文,这是我希望避免的。
是否可以使用cvDisplayLink进行计时并仍在主线程上呈现?
提前感谢任何反馈......
答案 0 :(得分:3)
锁定上下文没有内在问题;它应该是无竞争的并且快速解锁。通过-setNeedsDisplay:
重新绘制主线程,有可能因为runloop往返而错过了VBL窗口。