aboutsummaryrefslogtreecommitdiff
path: root/ui/gtk.c
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2018-03-06 10:09:49 +0100
committerGerd Hoffmann <kraxel@redhat.com>2018-03-12 09:00:34 +0100
commit4c70280592f5357c66f95173ec907920f48c99fa (patch)
treec6b448795c29ade6d176b2840f8691e4740c9849 /ui/gtk.c
parent2f92f37c9ecaa2a51f75455046b4d1b665db5c12 (diff)
downloadqemu-4c70280592f5357c66f95173ec907920f48c99fa.zip
qemu-4c70280592f5357c66f95173ec907920f48c99fa.tar.gz
qemu-4c70280592f5357c66f95173ec907920f48c99fa.tar.bz2
ui/gtk: use GtkGlArea on wayland only
For dma-buf support we need a egl context. The gtk x11 backend uses glx contexts though. We can't use the GtkGlArea widget on x11 because of that, so use our own gtk-egl code instead. wayland continues to use the GtkGlArea widget. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-id: 20180306090951.22932-5-kraxel@redhat.com
Diffstat (limited to 'ui/gtk.c')
-rw-r--r--ui/gtk.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/ui/gtk.c b/ui/gtk.c
index 856429a..4a1622b 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -2440,12 +2440,15 @@ static void early_gtk_display_init(DisplayOptions *opts)
assert(opts->type == DISPLAY_TYPE_GTK);
if (opts->has_gl && opts->gl) {
#if defined(CONFIG_OPENGL)
-#if defined(CONFIG_GTK_GL)
- gtk_use_gl_area = true;
- gtk_gl_area_init();
-#else
- gtk_egl_init();
+#if defined(CONFIG_GTK_GL) && defined(GDK_WINDOWING_WAYLAND)
+ if (GDK_IS_WAYLAND_DISPLAY(gdk_display_get_default())) {
+ gtk_use_gl_area = true;
+ gtk_gl_area_init();
+ }
#endif
+ {
+ gtk_egl_init();
+ }
#endif
}