diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-05-05 20:13:27 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-05-05 20:13:27 -0700 |
commit | 747ab04f3992b120d279b9e2cbe9f6b507afd86c (patch) | |
tree | 7d5dff53f43eda790de804ea967158d1ac99ced7 | |
parent | 3de35bb24b392c85e0c2bc646d1150048fa336ec (diff) |
make sdl event handling work in closure, and add testing
-rw-r--r-- | src/library_sdl.js | 14 | ||||
-rwxr-xr-x | tests/runner.py | 3 | ||||
-rw-r--r-- | tests/sdl_mouse.c | 10 |
3 files changed, 14 insertions, 13 deletions
diff --git a/src/library_sdl.js b/src/library_sdl.js index 22d810ac..94d4ef87 100644 --- a/src/library_sdl.js +++ b/src/library_sdl.js @@ -28,13 +28,7 @@ var LibrarySDL = { mouseX: 0, mouseY: 0, - DOMEventToSDLEvent: { - 'keydown': 0x300, - 'keyup': 0x301, - 'mousedown': 0x401, - 'mouseup': 0x402, - 'mousemove': 0x400 - }, + DOMEventToSDLEvent: {}, keyCodes: { // DOM code ==> SDL code. See https://developer.mozilla.org/en/Document_Object_Model_%28DOM%29/KeyboardEvent and SDL_keycode.h 38: 1106, // up arrow @@ -438,6 +432,12 @@ var LibrarySDL = { }); SDL.keyboardState = _malloc(0x10000); _memset(SDL.keyboardState, 0, 0x10000); + // Initialize this structure carefully for closure + SDL.DOMEventToSDLEvent['keydown'] = 0x300; + SDL.DOMEventToSDLEvent['keyup'] = 0x301; + SDL.DOMEventToSDLEvent['mousedown'] = 0x401; + SDL.DOMEventToSDLEvent['mouseup'] = 0x402; + SDL.DOMEventToSDLEvent['mousemove'] = 0x400; return 0; // success }, diff --git a/tests/runner.py b/tests/runner.py index 6e086200..557d1b4d 100755 --- a/tests/runner.py +++ b/tests/runner.py @@ -7110,10 +7110,11 @@ elif 'browser' in str(sys.argv): Module['canvas'].dispatchEvent(event1); } } + window['simulateMouseEvent'] = simulateMouseEvent; ''') open(os.path.join(self.get_dir(), 'sdl_mouse.c'), 'w').write(self.with_report_result(open(path_from_root('tests', 'sdl_mouse.c')).read())) - Popen(['python', EMCC, os.path.join(self.get_dir(), 'sdl_mouse.c'), '-o', 'page.html', '--pre-js', 'pre.js']).communicate() + Popen(['python', EMCC, os.path.join(self.get_dir(), 'sdl_mouse.c'), '-O2', '--minify', '0', '-o', 'page.html', '--pre-js', 'pre.js']).communicate() self.run_browser('page.html', '', '/report_result?740') def test_sdl_audio(self): diff --git a/tests/sdl_mouse.c b/tests/sdl_mouse.c index 7fc14638..eb4aa425 100644 --- a/tests/sdl_mouse.c +++ b/tests/sdl_mouse.c @@ -49,11 +49,11 @@ int main() { SDL_Rect rect = { 0, 0, 600, 450 }; SDL_FillRect(screen, &rect, 0x2244ffff); - emscripten_run_script("simulateMouseEvent(10, 20, -1)"); // move from 0,0 to 10,20 - emscripten_run_script("simulateMouseEvent(10, 20, 0)"); // click - emscripten_run_script("simulateMouseEvent(10, 20, 0)"); // click some more, but this one should be ignored through PeepEvent - emscripten_run_script("simulateMouseEvent(30, 77, -1)"); // move some more - emscripten_run_script("simulateMouseEvent(30, 77, 1)"); // trigger the end + emscripten_run_script("window.simulateMouseEvent(10, 20, -1)"); // move from 0,0 to 10,20 + emscripten_run_script("window.simulateMouseEvent(10, 20, 0)"); // click + emscripten_run_script("window.simulateMouseEvent(10, 20, 0)"); // click some more, but this one should be ignored through PeepEvent + emscripten_run_script("window.simulateMouseEvent(30, 77, -1)"); // move some more + emscripten_run_script("window.simulateMouseEvent(30, 77, 1)"); // trigger the end emscripten_set_main_loop(one, 0); |