compositor-x11: Use x11 egl platform

dev
Benjamin Franzke 14 years ago
parent b2d71852fd
commit 3b288afd1a
  1. 19
      compositor/compositor-x11.c
  2. 2
      configure.ac

@ -34,6 +34,9 @@
#include <xcb/dri2.h> #include <xcb/dri2.h>
#include <xcb/xfixes.h> #include <xcb/xfixes.h>
#include <X11/Xlib.h>
#include <X11/Xlib-xcb.h>
#define GL_GLEXT_PROTOTYPES #define GL_GLEXT_PROTOTYPES
#define EGL_EGLEXT_PROTOTYPES #define EGL_EGLEXT_PROTOTYPES
#include <GLES2/gl2.h> #include <GLES2/gl2.h>
@ -48,6 +51,7 @@
struct x11_compositor { struct x11_compositor {
struct wlsc_compositor base; struct wlsc_compositor base;
Display *dpy;
xcb_connection_t *conn; xcb_connection_t *conn;
xcb_screen_t *screen; xcb_screen_t *screen;
xcb_cursor_t null_cursor; xcb_cursor_t null_cursor;
@ -220,7 +224,6 @@ x11_compositor_init_egl(struct x11_compositor *c)
{ {
EGLint major, minor; EGLint major, minor;
const char *extensions; const char *extensions;
drm_magic_t magic;
static const EGLint context_attribs[] = { static const EGLint context_attribs[] = {
EGL_CONTEXT_CLIENT_VERSION, 2, EGL_CONTEXT_CLIENT_VERSION, 2,
EGL_NONE EGL_NONE
@ -229,15 +232,7 @@ x11_compositor_init_egl(struct x11_compositor *c)
if (dri2_connect(c) < 0) if (dri2_connect(c) < 0)
return -1; return -1;
if (drmGetMagic(c->base.drm.fd, &magic)) { c->base.display = eglGetDisplay(c->dpy);
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);
if (c->base.display == NULL) { if (c->base.display == NULL) {
fprintf(stderr, "failed to create display\n"); fprintf(stderr, "failed to create display\n");
return -1; return -1;
@ -754,7 +749,9 @@ x11_compositor_create(struct wl_display *display, int width, int height)
return NULL; return NULL;
memset(c, 0, sizeof *c); 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)) if (xcb_connection_has_error(c->conn))
return NULL; return NULL;

@ -18,7 +18,7 @@ AC_PROG_RANLIB
PKG_PROG_PKG_CONFIG() PKG_PROG_PKG_CONFIG()
PKG_CHECK_MODULES(COMPOSITOR, 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(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(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], PKG_CHECK_MODULES(POPPLER, [poppler-glib gdk-2.0 gio-2.0],

Loading…
Cancel
Save