]> git.proxmox.com Git - mirror_qemu.git/commitdiff
ui/gtk: use GtkGlArea on wayland only
authorGerd Hoffmann <kraxel@redhat.com>
Tue, 6 Mar 2018 09:09:49 +0000 (10:09 +0100)
committerGerd Hoffmann <kraxel@redhat.com>
Mon, 12 Mar 2018 08:00:34 +0000 (09:00 +0100)
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

ui/gtk.c

index 856429a02fbcd0386290e5c241899ddf58393823..4a1622b88722029f4a481e7db71c25472c207f29 100644 (file)
--- 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
     }