diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-07-20 16:16:16 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-07-20 16:16:16 -0700 |
commit | f2273cc4c24954dd28638a710e144913f1b91d90 (patch) | |
tree | dc860b8b5790b8a5b2900776cd58d386a51c3b6d /src/library_browser.js | |
parent | a4d8b7c20f255fa4218a641ea50cbfd327b055b8 (diff) |
better main loop blockers progress reporting
Diffstat (limited to 'src/library_browser.js')
-rw-r--r-- | src/library_browser.js | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/library_browser.js b/src/library_browser.js index 5461e663..b9570683 100644 --- a/src/library_browser.js +++ b/src/library_browser.js @@ -23,6 +23,19 @@ mergeInto(LibraryManager.library, { } Browser.mainLoop.shouldPause = false; }, + updateStatus: function() { + if (Module['setStatus']) { + if (Browser.mainLoop.queue.length > 0) { + if (Browser.mainLoop.blockersNum && Browser.mainLoop.blockersNum >= Browser.mainLoop.queue.length) { + Module['setStatus']('Please wait.. (' + Browser.mainLoop.queue.length + '/' + Browser.mainLoop.blockersNum + ')'); + } else { + Module['setStatus']('Please wait..'); + } + } else { + Module['setStatus'](''); + } + } + } }, pointerLock: false, moduleContextCreatedCallbacks: [], @@ -251,7 +264,7 @@ mergeInto(LibraryManager.library, { var wrapper = function() { if (Browser.mainLoop.queue.length > 0) { Browser.mainLoop.queue.shift()(); - if (Browser.mainLoop.queue.length == 0 && Module['setStatus']) Module['setStatus'](''); + Browser.mainLoop.updateStatus(); setTimeout(wrapper, 0); return; } @@ -296,8 +309,13 @@ mergeInto(LibraryManager.library, { }, emscripten_push_main_loop_blocker: function(func) { - if (Module['setStatus']) Module['setStatus']('Please wait..'); Browser.mainLoop.queue.push(FUNCTION_TABLE[func]); + Browser.mainLoop.updateStatus(); + }, + + emscripten_set_main_loop_blockers_num: function(num) { + Browser.mainLoop.blockersNum = num; + Browser.mainLoop.updateStatus(); }, emscripten_async_call: function(func, millis) { |