diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-09-09 18:33:48 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-09-09 18:33:48 -0700 |
commit | 24e61522f29d3796c0a1d2736d6008006b2e4ad6 (patch) | |
tree | 8f730aba89278f06856275a4c6f7c226d8082f5a /src/library_browser.js | |
parent | b12e4059465169ae9302c3565b08fc30e9132781 (diff) | |
parent | 953ebf768763fe93a0af76f5007d1f69f91d6440 (diff) |
Merge branch 'incoming'
Diffstat (limited to 'src/library_browser.js')
-rw-r--r-- | src/library_browser.js | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/src/library_browser.js b/src/library_browser.js index e6a8b7c6..bf235493 100644 --- a/src/library_browser.js +++ b/src/library_browser.js @@ -10,10 +10,6 @@ mergeInto(LibraryManager.library, { $Browser: { mainLoop: { scheduler: null, -#if PROFILE_MAIN_LOOP - meanTime: 0, - lastReport: 0, -#endif shouldPause: false, paused: false, queue: [], @@ -383,8 +379,14 @@ mergeInto(LibraryManager.library, { emscripten_set_main_loop: function(func, fps) { Module['noExitRuntime'] = true; +#if PROFILE_MAIN_LOOP + Module['totalTime'] = 0; + Module['iterations'] = 0; + Module['maxTime'] = 0; +#endif + var jsFunc = FUNCTION_TABLE[func]; - var wrapper = function() { + Browser.mainLoop.runner = function() { if (Browser.mainLoop.queue.length > 0) { var start = Date.now(); var blocker = Browser.mainLoop.queue.shift(); @@ -402,7 +404,7 @@ mergeInto(LibraryManager.library, { } console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + ' ms'); //, left: ' + Browser.mainLoop.remainingBlockers); Browser.mainLoop.updateStatus(); - setTimeout(wrapper, 0); + setTimeout(Browser.mainLoop.runner, 0); return; } if (Browser.mainLoop.shouldPause) { @@ -415,15 +417,14 @@ mergeInto(LibraryManager.library, { #if PROFILE_MAIN_LOOP var start = performance.now(); #endif + jsFunc(); + #if PROFILE_MAIN_LOOP - var now = performance.now(); - var time = now - start; - Browser.mainLoop.meanTime = (Browser.mainLoop.meanTime*9 + time)/10; - if (now - Browser.mainLoop.lastReport > 1000) { - console.log('main loop time: ' + Browser.mainLoop.meanTime); - Browser.mainLoop.lastReport = now; - } + var time = performance.now() - start; + Module['totalTime'] += time; + Module['iterations']++; + Module['maxTime'] = Math.max(Module['maxTime'], time); #endif if (Browser.mainLoop.shouldPause) { @@ -436,11 +437,11 @@ mergeInto(LibraryManager.library, { } if (fps && fps > 0) { Browser.mainLoop.scheduler = function() { - setTimeout(wrapper, 1000/fps); // doing this each time means that on exception, we stop + setTimeout(Browser.mainLoop.runner, 1000/fps); // doing this each time means that on exception, we stop } } else { Browser.mainLoop.scheduler = function() { - Browser.requestAnimationFrame(wrapper); + Browser.requestAnimationFrame(Browser.mainLoop.runner); } } Browser.mainLoop.scheduler(); |