compositor-x11: Use x11 egl platform
authorBenjamin Franzke <benjaminfranzke@googlemail.com>
Sun, 20 Feb 2011 18:58:42 +0000 (19:58 +0100)
committerBenjamin Franzke <benjaminfranzke@googlemail.com>
Tue, 1 Mar 2011 10:14:03 +0000 (11:14 +0100)
compositor/compositor-x11.c
configure.ac

index 4365c0a..ae68a1c 100644 (file)
@@ -34,6 +34,9 @@
 #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>
@@ -48,6 +51,7 @@
 struct x11_compositor {
        struct wlsc_compositor   base;
 
+       Display                 *dpy;
        xcb_connection_t        *conn;
        xcb_screen_t            *screen;
        xcb_cursor_t             null_cursor;
@@ -220,7 +224,6 @@ x11_compositor_init_egl(struct x11_compositor *c)
 {
        EGLint major, minor;
        const char *extensions;
-       drm_magic_t magic;
        static const EGLint context_attribs[] = {
                EGL_CONTEXT_CLIENT_VERSION, 2,
                EGL_NONE
@@ -229,15 +232,7 @@ x11_compositor_init_egl(struct x11_compositor *c)
        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;
@@ -754,7 +749,9 @@ x11_compositor_create(struct wl_display *display, int width, int height)
                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;
index 8b159dc..c833312 100644 (file)
@@ -18,7 +18,7 @@ AC_PROG_RANLIB
 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],