diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2017-11-13 11:24:31 +0100 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2017-11-13 16:58:04 +0100 |
commit | ed2d66f6e780e2146fcc9c6aaa119442d609a6fa (patch) | |
tree | d4f3c9f180b67da70aee432e60639ec917d847d0 /platform | |
parent | a8047c876f7f82cbce82c5210a865991f83caa26 (diff) | |
download | mupdf-ed2d66f6e780e2146fcc9c6aaa119442d609a6fa.tar.xz |
gl: Fix busy loop.
glutMainLoopEvent does not sleep for events, so use glutMainLoop instead
and destroy the window when 'q' is pressed rather than just setting the
quit flag.
Diffstat (limited to 'platform')
-rw-r--r-- | platform/gl/gl-main.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/platform/gl/gl-main.c b/platform/gl/gl-main.c index a07512d8..38c7c937 100644 --- a/platform/gl/gl-main.c +++ b/platform/gl/gl-main.c @@ -176,6 +176,7 @@ static float oldzoom = DEFRES, currentzoom = DEFRES; static float oldrotate = 0, currentrotate = 0; static fz_matrix page_ctm, page_inv_ctm; static int loaded = 0; +static int window = 0; static int isfullscreen = 0; static int showoutline = 0; @@ -1343,6 +1344,12 @@ static void run_main_loop(void) do_app(); + if (doquit) + { + glutDestroyWindow(window); + return; + } + canvas_w = window_w - canvas_x; canvas_h = window_h - canvas_y; @@ -1636,7 +1643,7 @@ int main(int argc, char **argv) glutInitWarningFunc(on_warning); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); glutInitWindowSize(page_tex.w, page_tex.h); - glutCreateWindow(title); + window = glutCreateWindow(title); glutReshapeFunc(on_reshape); glutDisplayFunc(on_display); @@ -1666,8 +1673,7 @@ int main(int argc, char **argv) render_page(); update_title(); - while (!doquit) - glutMainLoopEvent(); + glutMainLoop(); ui_finish_fonts(ctx); |