x11: Pass the display, not the screen
authorBenjamin Otte <otte@redhat.com>
Sun, 6 Jun 2021 17:56:35 +0000 (19:56 +0200)
committerBenjamin Otte <otte@redhat.com>
Thu, 22 Jul 2021 14:06:05 +0000 (16:06 +0200)
Screens are on their way out.

gdk/x11/gdkdisplay-x11.c
gdk/x11/gdkglcontext-egl.c
gdk/x11/gdkglcontext-glx.c
gdk/x11/gdkglcontext-x11.h

index 5bdbe2ffdad1b7820617cdea5dae055acc9e4a73..a58510bf5fe589ffbe928fa590c6af5660d33f15 100644 (file)
@@ -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;
 }
 
index c59812bc1f9edf895422e1a15d92244abfa48e14..8d4dff948316ce3575bcc4e9ef51face998f17bd 100644 (file)
@@ -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 ())
index bc6d66a7e56dc136cf6f3d7542f7ac89dbf172b7..3bdfe431ea385775a44b0159274db69fda996959 100644 (file)
@@ -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;
 
index eaba65df2a5e8e2cfcadcf9435b1c1af3000d7fc..97583133f277f8c541a10e198a97974b309e1b09 100644 (file)
@@ -34,7 +34,7 @@
 #include <epoxy/glx.h>
 
 #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,