summaryrefslogtreecommitdiff
path: root/progs/egl/eglut/eglut.c
diff options
context:
space:
mode:
Diffstat (limited to 'progs/egl/eglut/eglut.c')
-rw-r--r--progs/egl/eglut/eglut.c28
1 files changed, 24 insertions, 4 deletions
diff --git a/progs/egl/eglut/eglut.c b/progs/egl/eglut/eglut.c
index 0bfd5d5b06..b9b5e6e5a8 100644
--- a/progs/egl/eglut/eglut.c
+++ b/progs/egl/eglut/eglut.c
@@ -195,6 +195,13 @@ eglutInit(int argc, char **argv)
_eglut->init_time = _eglutNow();
printf("EGL_VERSION = %s\n", eglQueryString(_eglut->dpy, EGL_VERSION));
+ if (_eglut->verbose) {
+ printf("EGL_VENDOR = %s\n", eglQueryString(_eglut->dpy, EGL_VENDOR));
+ printf("EGL_EXTENSIONS = %s\n",
+ eglQueryString(_eglut->dpy, EGL_EXTENSIONS));
+ printf("EGL_CLIENT_APIS = %s\n",
+ eglQueryString(_eglut->dpy, EGL_CLIENT_APIS));
+ }
}
int
@@ -247,14 +254,27 @@ _eglutFini(void)
_eglutNativeFiniDisplay();
}
+void
+eglutDestroyWindow(int win)
+{
+ struct eglut_window *window = _eglut->current;
+
+ if (window->index != win)
+ return;
+
+ /* XXX it causes some bug in st/egl KMS backend */
+ if ( _eglut->surface_type != EGL_SCREEN_BIT_MESA)
+ eglMakeCurrent(_eglut->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
+
+ _eglutDestroyWindow(_eglut->current);
+}
+
static void
_eglutDefaultKeyboard(unsigned char key)
{
if (key == 27) {
- /* XXX it causes some bug in st/egl KMS backend */
- if ( _eglut->surface_type != EGL_SCREEN_BIT_MESA)
- eglMakeCurrent(_eglut->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
- _eglutDestroyWindow(_eglut->current);
+ if (_eglut->current)
+ eglutDestroyWindow(_eglut->current->index);
_eglutFini();
exit(0);