x11: Add EGLDisplay getter

Getting an EGLDisplay object is messy; might as well expose the function
we use internally to save some time.
This commit is contained in:
Emmanuele Bassi
2021-05-11 12:25:38 +01:00
parent 6189e343f3
commit abc2d7e4a9
2 changed files with 21 additions and 1 deletions

View File

@@ -84,12 +84,29 @@ 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.
*
* This function returns `NULL` if GDK is using GLX.
*
* 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;

View File

@@ -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__ */