diff options
author | Behdad Esfahbod <behdad@behdad.org> | 2012-04-05 02:13:12 -0400 |
---|---|---|
committer | Behdad Esfahbod <behdad@behdad.org> | 2012-04-05 02:13:12 -0400 |
commit | 1a3f245ee6a4bc7427d81756b8bf8a0a72ac97fe (patch) | |
tree | d5372e05431b658db754126a82267cca14c4ba95 | |
parent | bcafbea2fccaaeb05cbeabbc84bf89fc234266c0 (diff) |
Fix glutIdleFunc()
glutIdleFunc() is auto-repeating until cancelled.
-rw-r--r-- | src/library_glut.js | 11 | ||||
-rw-r--r-- | tests/hello_world_gles.c | 2 |
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[] = |