From e6389f991914fa19a62322627c368204ee30fede Mon Sep 17 00:00:00 2001 From: ToadKing Date: Tue, 10 Sep 2013 22:48:24 -0400 Subject: [PATCH] [EMSCRIPTEN] chrome fixes --- emscripten/library_rwebaudio.js | 13 ++++++++++--- emscripten/library_rwebinput.js | 23 ++++++++--------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/emscripten/library_rwebaudio.js b/emscripten/library_rwebaudio.js index 73448afbf9..4e7594ec45 100644 --- a/emscripten/library_rwebaudio.js +++ b/emscripten/library_rwebaudio.js @@ -1,7 +1,7 @@ //"use strict"; var LibraryRWebAudio = { - $RA__deps: ['$Browser'], + $RA__deps: ['$Browser', 'usleep'], $RA: { BUFFER_SIZE: 256, @@ -12,17 +12,24 @@ var LibraryRWebAudio = { bufOffset: 0, startTime: 0, nonblock: false, + currentTimeWorkaround: false, setStartTime: function() { if (RA.context.currentTime) { RA.startTime = window['performance']['now']() - RA.context.currentTime * 1000; - if (RA.startTime === 0) throw 'startTime is 0'; + var time1 = RA.context.currentTime; + _usleep(50); + if (time1 === RA.context.currentTime) { + RA.currentTimeWorkaround = true; + if (RA.startTime === 0) throw 'startTime is 0'; + } Module["resumeMainLoop"](); } else window['setTimeout'](RA.setStartTime, 0); }, getCurrentPerfTime: function() { - if (RA.startTime) return (window['performance']['now']() - RA.startTime) / 1000; + if (!RA.currentTimeWorkaround) return RA.context.currentTime; + else if (RA.startTime) return (window['performance']['now']() - RA.startTime) / 1000; else throw 'getCurrentPerfTime() called before start time set'; }, diff --git a/emscripten/library_rwebinput.js b/emscripten/library_rwebinput.js index 3ca2fd9cd1..7f45a747d8 100644 --- a/emscripten/library_rwebinput.js +++ b/emscripten/library_rwebinput.js @@ -23,22 +23,17 @@ var LibraryRWebInput = { break; case 'mouseup': case 'mousedown': - var l, r; - - if (event.buttons & 1) l = 1; - else l = 0; - - if (event.buttons & 2) r = 1; - else r = 0; - + var value; + var offset; + if (event.button === 0) offset = 40; + else if (event.button === 2) offset = 41; + else break; + if (event.type === 'mouseup') value = 0; + else value = 1; for (i = 0; i < RI.contexts.length; i++) { - {{{ makeSetValue('RI.contexts[i].state', '40', 'l', 'i8') }}}; - {{{ makeSetValue('RI.contexts[i].state', '41', 'r', 'i8') }}}; + {{{ makeSetValue('RI.contexts[i].state', 'offset', 'value', 'i8') }}}; } break; - case 'click': - e.preventDefault(); - break; case 'keyup': case 'keydown': var key = event.keyCode; @@ -70,7 +65,6 @@ var LibraryRWebInput = { document.addEventListener('mousemove', RI.eventHandler, false); document.addEventListener('mouseup', RI.eventHandler, false); document.addEventListener('mousedown', RI.eventHandler, false); - document.addEventListener('click', RI.eventHandler, false); document.addEventListener('blur', RI.eventHandler, false); document.addEventListener('onvisbilitychange', RI.eventHandler, false); } @@ -103,7 +97,6 @@ var LibraryRWebInput = { document.removeEventListener('mousemove', RI.eventHandler, false); document.removeEventListener('mouseup', RI.eventHandler, false); document.removeEventListener('mousedown', RI.eventHandler, false); - document.removeEventListener('click', RI.eventHandler, false); document.removeEventListener('blur', RI.eventHandler, false); document.removeEventListener('onvisbilitychange', RI.eventHandler, false); }