aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-10-21 11:22:53 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-10-21 11:22:53 -0700
commitd053b704b9892947e2f524358cfaf09b46120cf2 (patch)
treec972167b274c193c931427857e7f885b6197c246
parent25c6032a589f751573d0623645163fcd03192fc2 (diff)
listen to glut events on glutInit, so it works even without main loop
-rw-r--r--src/library_glut.js31
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';