CVDisplayLink вместо NSTimer - PullRequest
8 голосов
/ 18 ноября 2009

Я начал реализовывать cvDisplayLink для управления циклом рендеринга вместо nstimer, как подробно описано в этом техническом примечании https://developer.apple.com/library/archive/qa/qa1385/_index.html

Лучше ли выполнять фактический рендеринг внутри самого обратного вызова displaylink, или я должен вместо этого вызвать setNeedsDisplay для представления и позволить основному потоку выполнить рендеринг?

Чтобы выполнить рендеринг непосредственно в обратном вызове, мне нужно заблокировать контекст opengl, которого я надеялся избежать.

Можно ли использовать cvDisplayLink для синхронизации и по-прежнему выполнять рендеринг в главном потоке?

Заранее спасибо за любые отзывы ....

1 Ответ

3 голосов
/ 20 ноября 2009

Нет внутренней проблемы с блокировкой контекста; он должен быть без присмотра и быстро разблокироваться. Перерисовка в главном потоке через -setNeedsDisplay: может привести к пропуску окна VBL только из-за циклического выполнения цикла выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...