aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2012-04-05 02:13:12 -0400
committerBehdad Esfahbod <behdad@behdad.org>2012-04-05 02:13:12 -0400
commit1a3f245ee6a4bc7427d81756b8bf8a0a72ac97fe (patch)
treed5372e05431b658db754126a82267cca14c4ba95
parentbcafbea2fccaaeb05cbeabbc84bf89fc234266c0 (diff)
Fix glutIdleFunc()
glutIdleFunc() is auto-repeating until cancelled.
-rw-r--r--src/library_glut.js11
-rw-r--r--tests/hello_world_gles.c2
2 files changed, 10 insertions, 3 deletions
diff --git a/src/library_glut.js b/src/library_glut.js
index ca22ab87..8bb3cbc1 100644
--- a/src/library_glut.js
+++ b/src/library_glut.js
@@ -2,6 +2,7 @@
var LibraryGLUT = {
$GLUT: {
initTime: null,
+ idleFunc: null,
displayFunc: null,
keyboardFunc: null,
keyboardUpFunc: null,
@@ -265,7 +266,15 @@ var LibraryGLUT = {
},
glutIdleFunc: function(func) {
- window.setTimeout(FUNCTION_TABLE[func], 0);
+ callback = function() {
+ if (GLUT.idleFunc) {
+ FUNCTION_TABLE[GLUT.idleFunc]();
+ window.setTimeout(callback, 0);
+ }
+ }
+ if (!GLUT.idleFunc)
+ window.setTimeout(callback, 0);
+ GLUT.idleFunc = func;
},
glutTimerFunc: function(msec, func, value) {
diff --git a/tests/hello_world_gles.c b/tests/hello_world_gles.c
index 1a8a2db6..2da85b6d 100644
--- a/tests/hello_world_gles.c
+++ b/tests/hello_world_gles.c
@@ -616,8 +616,6 @@ gears_idle(void)
tRate0 = t;
frames = 0;
}
-
- glutIdleFunc (gears_idle);
}
static const char vertex_shader[] =