Screens are on their way out.
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;
}
}
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 ())
}
/*< 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))
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;
#include <epoxy/glx.h>
#include "gdkglcontextprivate.h"
-#include "gdkdisplayprivate.h"
+#include "gdkdisplay-x11.h"
#include "gdkvisual-x11.h"
#include "gdksurface.h"
#include "gdkinternals.h"
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,
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,