diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-10-21 11:22:53 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-10-21 11:22:53 -0700 |
commit | d053b704b9892947e2f524358cfaf09b46120cf2 (patch) | |
tree | c972167b274c193c931427857e7f885b6197c246 /src | |
parent | 25c6032a589f751573d0623645163fcd03192fc2 (diff) |
listen to glut events on glutInit, so it works even without main loop
Diffstat (limited to 'src')
-rw-r--r-- | src/library_glut.js | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/src/library_glut.js b/src/library_glut.js index b146cf47..6069b484 100644 --- a/src/library_glut.js +++ b/src/library_glut.js @@ -270,6 +270,21 @@ var LibraryGLUT = { glutInit: function(argcp, argv) { // Ignore arguments GLUT.initTime = Date.now(); + + window.addEventListener("keydown", GLUT.onKeydown, true); + window.addEventListener("keyup", GLUT.onKeyup, true); + window.addEventListener("mousemove", GLUT.onMousemove, true); + window.addEventListener("mousedown", GLUT.onMouseButtonDown, true); + window.addEventListener("mouseup", GLUT.onMouseButtonUp, true); + + __ATEXIT__.push({ func: function() { + window.removeEventListener("keydown", GLUT.onKeydown, true); + window.removeEventListener("keyup", GLUT.onKeyup, true); + window.removeEventListener("mousemove", GLUT.onMousemove, true); + window.removeEventListener("mousedown", GLUT.onMouseButtonDown, true); + window.removeEventListener("mouseup", GLUT.onMouseButtonUp, true); + Module["canvas"].width = Module["canvas"].height = 1; + } }); }, glutInitWindowSize: function(width, height) { @@ -408,22 +423,6 @@ var LibraryGLUT = { glutMainLoop__deps: ['$GLUT', 'glutReshapeWindow', 'glutPostRedisplay'], glutMainLoop: function() { - - window.addEventListener("keydown", GLUT.onKeydown, true); - window.addEventListener("keyup", GLUT.onKeyup, true); - window.addEventListener("mousemove", GLUT.onMousemove, true); - window.addEventListener("mousedown", GLUT.onMouseButtonDown, true); - window.addEventListener("mouseup", GLUT.onMouseButtonUp, true); - - __ATEXIT__.push({ func: function() { - window.removeEventListener("keydown", GLUT.onKeydown, true); - window.removeEventListener("keyup", GLUT.onKeyup, true); - window.removeEventListener("mousemove", GLUT.onMousemove, true); - window.removeEventListener("mousedown", GLUT.onMouseButtonDown, true); - window.removeEventListener("mouseup", GLUT.onMouseButtonUp, true); - Module["canvas"].width = Module["canvas"].height = 1; - } }); - _glutReshapeWindow(Module['canvas'].width, Module['canvas'].height); _glutPostRedisplay(); throw 'GLUT mainloop called, simulating infinite loop by throwing so we get right into the JS event loop'; |