diff --git gdk/x11/gdkdisplay-x11.c gdk/x11/gdkdisplay-x11.c index 84a45dc..685a1f9 100644 --- gdk/x11/gdkdisplay-x11.c +++ gdk/x11/gdkdisplay-x11.c @@ -56,7 +56,9 @@ #include #include +#ifdef HAVE_EGL #include +#endif #include #include @@ -2916,6 +2918,7 @@ visual_is_rgba (XVisualInfo *visinfo) visinfo->visual->blue_mask == 0x0000ff; } +#ifdef HAVE_EGL static guint gdk_x11_display_rate_egl_config (GdkDisplay *display, gpointer egl_display, @@ -2942,7 +2945,9 @@ gdk_x11_display_rate_egl_config (GdkDisplay *display, return distance; } +#endif +#ifdef HAVE_EGL static gboolean gdk_x11_display_init_gl_backend (GdkX11Display *self, Visual **out_visual, @@ -2997,6 +3002,26 @@ gdk_x11_display_init_gl_backend (GdkX11Display *self, return TRUE; } +#else /* HAVE_EGL */ + +static gboolean +gdk_x11_display_init_gl_backend (GdkX11Display *self, + Visual **out_visual, + int *out_depth, + GError **error) +{ + GdkDisplay *display = GDK_DISPLAY (self); + Display *dpy = gdk_x11_display_get_xdisplay (GDK_DISPLAY (self)); + XVisualInfo *visinfo; + int visualid; + + if (gdk_x11_display_init_glx (self, out_visual, out_depth, error)) + return TRUE; + else + return FALSE; +} +#endif /* HAVE_EGL */ + static GdkGLContext * gdk_x11_display_init_gl (GdkDisplay *display, @@ -3011,8 +3036,12 @@ gdk_x11_display_init_gl (GdkDisplay *display, if (self->glx_config != NULL) return g_object_new (GDK_TYPE_X11_GL_CONTEXT_GLX, "surface", self->leader_gdk_surface, NULL); + +#ifdef HAVE_EGL else if (gdk_display_get_egl_display (display)) return g_object_new (GDK_TYPE_X11_GL_CONTEXT_EGL, "surface", self->leader_gdk_surface, NULL); +#endif + else g_return_val_if_reached (NULL); } @@ -3048,7 +3077,10 @@ gdk_x11_display_class_init (GdkX11DisplayClass * class) display_class->get_keymap = gdk_x11_display_get_keymap; display_class->init_gl = gdk_x11_display_init_gl; + +#ifdef HAVE_EGL display_class->rate_egl_config = gdk_x11_display_rate_egl_config; +#endif display_class->get_default_seat = gdk_x11_display_get_default_seat; diff --git gdk/x11/meson.build gdk/x11/meson.build index 58d12bb..1e5f9c7 100644 --- gdk/x11/meson.build +++ gdk/x11/meson.build @@ -8,7 +8,6 @@ gdk_x11_public_sources = files([ 'gdkdevicemanager-x11.c', 'gdkdevicemanager-xi2.c', 'gdkdisplay-x11.c', - 'gdkglcontext-egl.c', 'gdkglcontext-glx.c', 'gdkglcontext-x11.c', 'gdkkeys-x11.c', diff --git gtk/inspector/general.c gtk/inspector/general.c index 951ce98..7f51083 100644 --- gtk/inspector/general.c +++ gtk/inspector/general.c @@ -40,8 +40,10 @@ #ifdef GDK_WINDOWING_X11 #include "x11/gdkx.h" #include +#ifdef HAVE_EGL #include #endif +#endif #ifdef GDK_WINDOWING_WIN32 #include "win32/gdkwin32.h" @@ -289,7 +291,7 @@ append_wgl_extension_row (GtkInspectorGeneral *gen, } #endif -#if defined(GDK_WINDOWING_WAYLAND) || defined (GDK_WINDOWING_X11) || (defined (GDK_WINDOWING_WIN32) && defined(GDK_WIN32_ENABLE_EGL)) +#if defined(GDK_WINDOWING_WAYLAND) || (defined (GDK_WINDOWING_X11) && defined (HAVE_EGL)) || (defined (GDK_WINDOWING_WIN32) && defined(GDK_WIN32_ENABLE_EGL)) static void append_egl_extension_row (GtkInspectorGeneral *gen, EGLDisplay dpy, @@ -341,7 +343,7 @@ init_gl (GtkInspectorGeneral *gen) return; } -#if defined(GDK_WINDOWING_X11) || defined(GDK_WINDOWING_WAYLAND) || (defined(GDK_WINDOWING_WIN32) && defined(GDK_WIN32_ENABLE_EGL)) +#if defined(GDK_WINDOWING_WAYLAND) || (defined (GDK_WINDOWING_X11) && defined (HAVE_EGL)) || (defined (GDK_WINDOWING_WIN32) && defined(GDK_WIN32_ENABLE_EGL)) EGLDisplay egl_display = get_egl_display (gen->display); if (egl_display) {