[gtk/ebassi/egl-display-get: 2/3] x11: Add EGLDisplay getter




commit c630045c73d6ff52d81f30391c8184b680f29497
Author: Emmanuele Bassi <ebassi gnome org>
Date:   Tue May 11 12:25:38 2021 +0100

    x11: Add EGLDisplay getter
    
    Getting an EGLDisplay object is messy; might as well expose the function
    we use internally to save some time.

 gdk/x11/gdkglcontext-egl.c | 17 ++++++++++++++++-
 gdk/x11/gdkx11glcontext.h  |  3 +++
 2 files changed, 19 insertions(+), 1 deletion(-)
---
diff --git a/gdk/x11/gdkglcontext-egl.c b/gdk/x11/gdkglcontext-egl.c
index 1836f19057..380767f0b9 100644
--- a/gdk/x11/gdkglcontext-egl.c
+++ b/gdk/x11/gdkglcontext-egl.c
@@ -84,12 +84,27 @@ drawable_info_free (gpointer data)
   g_free (info);
 }
 
-static EGLDisplay
+/**
+ * gdk_x11_display_get_egl_display:
+ * @display: (type GdkX11Display): an X11 display
+ *
+ * Retrieves the EGL display connection object for the given GDK display.
+ *
+ * Returns: (nullable): the EGL display object
+ *
+ * Since: 4.4
+ */
+gpointer
 gdk_x11_display_get_egl_display (GdkDisplay *display)
 {
   EGLDisplay edpy = NULL;
   Display *dpy;
 
+  g_return_val_if_fail (GDK_IS_X11_DISPLAY (display), NULL);
+
+  if (GDK_X11_DISPLAY (display)->have_glx)
+    return NULL;
+
   edpy = g_object_get_data (G_OBJECT (display), "-gdk-x11-egl-display");
   if (edpy != NULL)
     return edpy;
diff --git a/gdk/x11/gdkx11glcontext.h b/gdk/x11/gdkx11glcontext.h
index 34cbd70d75..173f6acac7 100644
--- a/gdk/x11/gdkx11glcontext.h
+++ b/gdk/x11/gdkx11glcontext.h
@@ -48,6 +48,9 @@ gboolean        gdk_x11_display_get_egl_version (GdkDisplay *display,
                                                  int        *major,
                                                  int        *minor);
 
+GDK_AVAILABLE_IN_4_4
+gpointer        gdk_x11_display_get_egl_display (GdkDisplay *display);
+
 G_END_DECLS
 
 #endif /* __GDK_X11_GL_CONTEXT_H__ */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]