如何在HTML5画布上获得vsync回调?

时间:2011-05-17 02:39:45

标签: html5 canvas callback vsync

如何在HTML5画布上 vsync 回调?

2 个答案:

答案 0 :(得分:8)

没有这样的事情。浏览器应该注意执行相应的同步,您可以使用requestAnimationFrame()来帮助它 - 例如,请参阅http://paulirish.com/2011/requestanimationframe-for-smart-animating/http://webstuff.nfshost.com/anim-timing/Overview.html#dfn-sample-all-animations

答案 1 :(得分:2)

* 2017年新答案*

虽然这是一个陈旧的2011年答案,而且时间准确,但旧的答案是"没有这样的事情"现在有点过时了。

目前,截至2017年,requestAnimationFrame()现在已广泛应用于刷新周期,因此它现在已成为VSYNC回调。

每当浏览器性能不受限制(例如快速桌面)时,它在120Hz游戏监视器上每秒有120次回调,因此它现在可以扩展以监控所有Web浏览器的刷新率(除了少数例外,例如Microsoft IE / Edge&# 39; s 105Hz限制)。

在Chrome中,requestAnimationFrame()的time参数是VSYNC时间,根据www.vsynctester.com,requestAnimationFrame()的现代实现现在已成为事实VSYNC回调 - 它通常在之后立即回调之前的VSYNC页面翻转,为下一个刷新周期(或窗口合成管理器)渲染帧。

P.S。我现在是W3C Web平台工作组的特邀专家,目前有一个修改HTML 5.2 DRAFT 8的提交,以澄清rAF()同步到刷新周期。此外,我还撰写了一篇文章,用于进一步改进HTML 5.2或更高版本的VSYNC API:http://www.blurbusters.com/blur-busters-working-on-changes-to-html-5-2/