Как я могу получить обратный вызов vsync на холсте HTML5? - PullRequest
5 голосов
/ 17 мая 2011

Как я могу vsync обратный вызов на холсте HTML5?

Ответы [ 2 ]

8 голосов
/ 17 мая 2011

Нет такой вещи. Браузер должен позаботиться о правильной синхронизации, и вы можете помочь ему, используя requestAnimationFrame() - см., Например, http://paulirish.com/2011/requestanimationframe-for-smart-animating/ и http://webstuff.nfshost.com/anim-timing/Overview.html#dfn-sample-all-animations

2 голосов
/ 12 мая 2017

* НОВЫЙ 2017 ответ *

Хотя это старый ответ 2011 года, и точный для своего времени, старый ответ «Нет такой вещи» сейчас несколько устарел.

В настоящее время, начиная с 2017 года, requestAnimationFrame () теперь широко используется для синхронизации с циклами обновления, поэтому теперь он по умолчанию стал обратным вызовом VSYNC.

Он имеет 120 обратных вызовов в секунду на игровых мониторах с частотой 120 Гц, когда производительность браузера не ограничена (например, быстрые рабочие столы), поэтому теперь он масштабируется для мониторинга частоты обновления во всех веб-браузерах (за некоторыми исключениями, такими как Microsoft IE)./ Край 105 Гц).

В Chrome параметр времени requestAnimationFrame () равен времени VSYNC, и, согласно www.vsynctester.com, современные реализации requestAnimationFrame () теперь стали обратным вызовом VSYNC defacto - этообычно вызывается сразу после предыдущего переворачивания страницы VSYNC, чтобы отобразить фрейм для следующего цикла обновления (или менеджера компоновки окон, если на то пошло).

PS Теперь я приглашенный эксперт в W3C Web Platform Working Groupи в настоящее время есть один коммит в модификации HTML 5.2 DRAFT 8 для уточнения синхронизации rAF () для циклов обновления.Также есть статья, которую я написал для дальнейшего улучшения API VSYNC для HTML 5.2 или более поздней версии: http://www.blurbusters.com/blur-busters-working-on-changes-to-html-5-2/

...