Module: Demos Branch: master Commit: 1222800fd2037d5e1b3c781bb70443dbb9743095 URL: http://cgit.freedesktop.org/mesa/demos/commit/?id=1222800fd2037d5e1b3c781bb70443dbb9743095
Author: Chia-I Wu <olva...@gmail.com> Date: Thu Dec 2 16:38:09 2010 +0800 egl/eglut: Avoid busy looping. next_event should block unless there is an idle callback. --- src/egl/eglut/eglut_x11.c | 11 +++++++++-- 1 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/egl/eglut/eglut_x11.c b/src/egl/eglut/eglut_x11.c index 78a7b86..af3eb2c 100644 --- a/src/egl/eglut/eglut_x11.c +++ b/src/egl/eglut/eglut_x11.c @@ -183,11 +183,18 @@ next_event(struct eglut_window *win) XEvent event; if (!XPending(_eglut->native_dpy)) { - if (_eglut->idle_cb) + /* there is an idle callback */ + if (_eglut->idle_cb) { _eglut->idle_cb(); - return; + return; + } + + /* the app requests re-display */ + if (_eglut->redisplay) + return; } + /* block for next event */ XNextEvent(_eglut->native_dpy, &event); switch (event.type) { _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit