diff options
author | Alon Zakai <alonzakai@gmail.com> | 2014-02-18 17:46:30 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2014-02-18 17:56:13 -0800 |
commit | 133b7ebbdd39cfa04231d39e84ee178db9dd527b (patch) | |
tree | ba2d148890b471b851d6bb5d3607c350007ffddb /src | |
parent | 9a864d50be044455bcb7626898e58abc406215d9 (diff) |
add a version of emscripten_set_main_loop where the main loop takes an argument; fixes #2114
Diffstat (limited to 'src')
-rw-r--r-- | src/library_browser.js | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/library_browser.js b/src/library_browser.js index 50a8fc6f..46082281 100644 --- a/src/library_browser.js +++ b/src/library_browser.js @@ -752,7 +752,7 @@ mergeInto(LibraryManager.library, { document.body.appendChild(script); }, - emscripten_set_main_loop: function(func, fps, simulateInfiniteLoop) { + emscripten_set_main_loop: function(func, fps, simulateInfiniteLoop, arg) { Module['noExitRuntime'] = true; Browser.mainLoop.runner = function Browser_mainLoop_runner() { @@ -803,7 +803,11 @@ mergeInto(LibraryManager.library, { } try { - Runtime.dynCall('v', func); + if (typeof arg !== 'undefined') { + Runtime.dynCall('vi', func, [arg]); + } else { + Runtime.dynCall('v', func); + } } catch (e) { if (e instanceof ExitStatus) { return; @@ -843,6 +847,11 @@ mergeInto(LibraryManager.library, { } }, + emscripten_set_main_loop_arg__deps: ['emscripten_set_main_loop'], + emscripten_set_main_loop_arg: function(func, arg, fps, simulateInfiniteLoop) { + _emscripten_set_main_loop(func, fps, simulateInfiniteLoop, arg); + }, + emscripten_cancel_main_loop: function() { Browser.mainLoop.scheduler = null; Browser.mainLoop.shouldPause = true; |