#include <xcb/dri2.h>
#include <xcb/xfixes.h>
+#include <X11/Xlib.h>
+#include <X11/Xlib-xcb.h>
+
#define GL_GLEXT_PROTOTYPES
#define EGL_EGLEXT_PROTOTYPES
#include <GLES2/gl2.h>
struct x11_compositor {
struct wlsc_compositor base;
+ Display *dpy;
xcb_connection_t *conn;
xcb_screen_t *screen;
xcb_cursor_t null_cursor;
{
EGLint major, minor;
const char *extensions;
- drm_magic_t magic;
static const EGLint context_attribs[] = {
EGL_CONTEXT_CLIENT_VERSION, 2,
EGL_NONE
if (dri2_connect(c) < 0)
return -1;
- if (drmGetMagic(c->base.drm.fd, &magic)) {
- fprintf(stderr, "DRI2: failed to get drm magic\n");
- return -1;
- }
-
- if (dri2_authenticate(c, magic) < 0)
- return -1;
-
- c->base.display = eglGetDRMDisplayMESA(c->base.drm.fd);
+ c->base.display = eglGetDisplay(c->dpy);
if (c->base.display == NULL) {
fprintf(stderr, "failed to create display\n");
return -1;
return NULL;
memset(c, 0, sizeof *c);
- c->conn = xcb_connect(0, 0);
+
+ c->dpy = XOpenDisplay(NULL);
+ c->conn = XGetXCBConnection(c->dpy);
if (xcb_connection_has_error(c->conn))
return NULL;
PKG_PROG_PKG_CONFIG()
PKG_CHECK_MODULES(COMPOSITOR,
- [wayland-server wayland-client egl >= 7.10 glesv2 gdk-pixbuf-2.0 libudev >= 136 libdrm >= 2.4.23] pixman-1 xcb-dri2 xcb-xfixes)
+ [wayland-server wayland-client egl >= 7.10 glesv2 gdk-pixbuf-2.0 libudev >= 136 libdrm >= 2.4.23] pixman-1 x11 x11-xcb xcb xcb-dri2 xcb-xfixes)
PKG_CHECK_MODULES(SIMPLE_CLIENT, [egl >= 7.10 glesv2 wayland-client wayland-egl])
PKG_CHECK_MODULES(CLIENT, [wayland-client wayland-egl egl >= 7.10 gl cairo >= 1.10.0 gdk-pixbuf-2.0 glib-2.0 gobject-2.0 xkbcommon])
PKG_CHECK_MODULES(POPPLER, [poppler-glib gdk-2.0 gio-2.0],