From: Benjamin Otte Date: Sun, 6 Jun 2021 17:56:35 +0000 (+0200) Subject: x11: Pass the display, not the screen X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~3^2~9^2~42 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=1d448a2b8a2aa264966b22f7a692e7783deed39f;p=gtk4.git x11: Pass the display, not the screen Screens are on their way out. --- diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index 5bdbe2ffda..a58510bf5f 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -1346,11 +1346,11 @@ gdk_x11_display_init_gl (GdkX11Display *self) if (!GDK_DISPLAY_DEBUG_CHECK (display, GL_GLX)) { /* We favour EGL */ - if (gdk_x11_screen_init_egl (self->screen)) + if (gdk_x11_display_init_egl (self)) return; } - if (gdk_x11_screen_init_glx (self->screen)) + if (gdk_x11_display_init_glx (self)) return; } diff --git a/gdk/x11/gdkglcontext-egl.c b/gdk/x11/gdkglcontext-egl.c index c59812bc1f..8d4dff9483 100644 --- a/gdk/x11/gdkglcontext-egl.c +++ b/gdk/x11/gdkglcontext-egl.c @@ -566,17 +566,13 @@ gdk_x11_gl_context_egl_init (GdkX11GLContextEGL *self) } gboolean -gdk_x11_screen_init_egl (GdkX11Screen *screen) +gdk_x11_display_init_egl (GdkX11Display *display_x11) { - GdkDisplay *display = GDK_SCREEN_DISPLAY (screen); - GdkX11Display *display_x11 = GDK_X11_DISPLAY (display); + GdkDisplay *display = GDK_DISPLAY (display_x11); EGLDisplay edpy; Display *dpy; int major, minor; - if (display_x11->have_egl) - return TRUE; - dpy = gdk_x11_display_get_xdisplay (display); if (!epoxy_has_egl ()) diff --git a/gdk/x11/gdkglcontext-glx.c b/gdk/x11/gdkglcontext-glx.c index bc6d66a7e5..3bdfe431ea 100644 --- a/gdk/x11/gdkglcontext-glx.c +++ b/gdk/x11/gdkglcontext-glx.c @@ -1200,27 +1200,23 @@ gdk_x11_display_get_glx_version (GdkDisplay *display, } /*< private > - * gdk_x11_screen_init_glx: - * @screen: an X11 screen + * gdk_x11_display_init_glx: + * @display_x11: an X11 display that has not been inited yet. * * Initializes the cached GLX state for the given @screen. * - * It's safe to call this function multiple times. + * This function must be called exactly once during initialization. * * Returns: %TRUE if GLX was initialized */ gboolean -gdk_x11_screen_init_glx (GdkX11Screen *screen) +gdk_x11_display_init_glx (GdkX11Display *display_x11) { - GdkDisplay *display = GDK_SCREEN_DISPLAY (screen); - GdkX11Display *display_x11 = GDK_X11_DISPLAY (display); + GdkDisplay *display = GDK_DISPLAY (display_x11); Display *dpy; int error_base, event_base; int screen_num; - if (display_x11->have_glx) - return TRUE; - dpy = gdk_x11_display_get_xdisplay (display); if (!epoxy_has_glx (dpy)) @@ -1229,7 +1225,7 @@ gdk_x11_screen_init_glx (GdkX11Screen *screen) if (!glXQueryExtension (dpy, &error_base, &event_base)) return FALSE; - screen_num = screen->screen_num; + screen_num = display_x11->screen->screen_num; display_x11->have_glx = TRUE; diff --git a/gdk/x11/gdkglcontext-x11.h b/gdk/x11/gdkglcontext-x11.h index eaba65df2a..97583133f2 100644 --- a/gdk/x11/gdkglcontext-x11.h +++ b/gdk/x11/gdkglcontext-x11.h @@ -34,7 +34,7 @@ #include #include "gdkglcontextprivate.h" -#include "gdkdisplayprivate.h" +#include "gdkdisplay-x11.h" #include "gdkvisual-x11.h" #include "gdksurface.h" #include "gdkinternals.h" @@ -74,7 +74,7 @@ gboolean gdk_x11_display_make_gl_context_current (GdkDisplay *display, typedef struct _GdkX11GLContextGLX GdkX11GLContextGLX; -gboolean gdk_x11_screen_init_glx (GdkX11Screen *screen); +gboolean gdk_x11_display_init_glx (GdkX11Display *display_x11); GType gdk_x11_gl_context_glx_get_type (void) G_GNUC_CONST; GdkX11GLContext * gdk_x11_gl_context_glx_new (GdkSurface *surface, @@ -92,7 +92,8 @@ gboolean gdk_x11_gl_context_glx_make_current (GdkDisplay * typedef struct _GdkX11GLContextEGL GdkX11GLContextEGL; -gboolean gdk_x11_screen_init_egl (GdkX11Screen *screen); +gboolean gdk_x11_display_init_egl (GdkX11Display *display_x11); + GType gdk_x11_gl_context_egl_get_type (void) G_GNUC_CONST; GdkX11GLContext * gdk_x11_gl_context_egl_new (GdkSurface *surface, gboolean attached,