diff options
author | Alon Zakai <alonzakai@gmail.com> | 2014-06-24 15:26:48 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2014-06-24 15:26:48 -0700 |
commit | 295dc2b204b2e01c20b5627a65cdcd658a68fcca (patch) | |
tree | c7d9b702b3dac92075ccce8ce59d8b7a17c5c289 | |
parent | fa60c84391d9ef714ca49ec563783b663e22e0fe (diff) |
implement requestAnimationFrame for workers
-rw-r--r-- | src/proxyWorker.js | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/proxyWorker.js b/src/proxyWorker.js index fdec236b..2919fb10 100644 --- a/src/proxyWorker.js +++ b/src/proxyWorker.js @@ -66,6 +66,24 @@ window.scrollX = window.scrollY = 0; // TODO: proxy these window.WebGLRenderingContext = WebGLWorker; +window.requestAnimationFrame = (function() { + // similar to Browser.requestAnimationFrame + var nextRAF = 0; + return function(func) { + // try to keep 60fps between calls to here + var now = Date.now(); + if (nextRAF === 0) { + nextRAF = now + 1000/60; + } else { + while (now + 2 >= nextRAF) { // fudge a little, to avoid timer jitter causing us to do lots of delay:0 + nextRAF += 1000/60; + } + } + var delay = Math.max(nextRAF - now, 0); + setTimeout(func, delay); + }; +})(); + var webGLWorker = new WebGLWorker(); var document = new EventListener(); |