aboutsummaryrefslogtreecommitdiff
path: root/src/library_browser.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-09-09 18:33:48 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-09-09 18:33:48 -0700
commit24e61522f29d3796c0a1d2736d6008006b2e4ad6 (patch)
tree8f730aba89278f06856275a4c6f7c226d8082f5a /src/library_browser.js
parentb12e4059465169ae9302c3565b08fc30e9132781 (diff)
parent953ebf768763fe93a0af76f5007d1f69f91d6440 (diff)
Merge branch 'incoming'
Diffstat (limited to 'src/library_browser.js')
-rw-r--r--src/library_browser.js31
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();