diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/glut_compatability.cxx | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/glut_compatability.cxx b/src/glut_compatability.cxx index e945f3ff8..97a2cd839 100644 --- a/src/glut_compatability.cxx +++ b/src/glut_compatability.cxx @@ -49,6 +49,8 @@ # define MAXWINDOWS 32 static Fl_Glut_Window *windows[MAXWINDOWS+1]; +static void (*glut_idle_func)() = 0; // global glut idle function + Fl_Glut_Window *glut_window; int glut_menu; void (*glut_menustate_function)(int); @@ -499,6 +501,20 @@ int glutExtensionSupported( const char* extension ) } } +// Add a mechanism to handle adding/removing the glut idle function +// without depending on the (deprecated) set_idle method. +void glutIdleFunc(void (*f)()) +{ + // no change + if(glut_idle_func == f) return; + // remove current idle + if(glut_idle_func) Fl::remove_idle((void (*)(void *))glut_idle_func); + // install new idle func - if one was passed + if(f) Fl::add_idle((void (*)(void *))f); + // record new idle func - even if it is NULL + glut_idle_func = f; +} // glutIdleFunc + #endif // HAVE_GL // |
