diff options
Diffstat (limited to 'src/library_browser.js')
-rw-r--r-- | src/library_browser.js | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/library_browser.js b/src/library_browser.js index 50a8fc6f..b800292c 100644 --- a/src/library_browser.js +++ b/src/library_browser.js @@ -234,6 +234,10 @@ mergeInto(LibraryManager.library, { } #endif var ctx; + var errorInfo = '?'; + function onContextCreationError(event) { + errorInfo = event.statusMessage || errorInfo; + } try { if (useWebGL) { var contextAttributes = { @@ -251,10 +255,6 @@ mergeInto(LibraryManager.library, { contextAttributes.preserveDrawingBuffer = true; #endif - var errorInfo = '?'; - function onContextCreationError(event) { - errorInfo = event.statusMessage || errorInfo; - } canvas.addEventListener('webglcontextcreationerror', onContextCreationError, false); try { ['experimental-webgl', 'webgl'].some(function(webglId) { @@ -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; |