diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2010-01-22 21:26:26 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-01-22 23:01:52 +0000 |
commit | 1236c41072a7966eda7db48a381fd0508e5289be (patch) | |
tree | a381bd7fc6d8b0ea95fc0b57cc9af92ce2c32873 /configure.ac | |
parent | 77afe8491ed7038a8399c01f10d8f062a7239225 (diff) |
xcb: Refresh.
Still an experimental backend, it's now a little too late to stabilise
for 1.10, but this should represent a major step forward in its feature
set and an attempt to catch up with all the bug fixes that have been
performed on xlib. Notably not tested yet (and expected to be broken)
are mixed-endian connections and low bitdepth servers (the dithering
support has not been copied over for instance). However, it seems robust
enough for daily use...
Of particular note in this update is that the xcb surface is now capable
of subverting the xlib surface through the ./configure --enable-xlib-xcb
option. This replaces the xlib surface with a proxy that forwards all
operations to an equivalent xcb surface whilst preserving the cairo-xlib
API that is required for compatibility with the existing applications,
for instance GTK+ and Mozilla. Also you can experiment with enabling a
DRM bypass, though you need to be extremely foolhardy to do so.
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/configure.ac b/configure.ac index d704353f..f94d9c17 100644 --- a/configure.ac +++ b/configure.ac @@ -109,10 +109,22 @@ CAIRO_ENABLE_SURFACE_BACKEND(xlib_xrender, Xlib Xrender, auto, [ dnl =========================================================================== CAIRO_ENABLE_SURFACE_BACKEND(xcb, XCB, no, [ - xcb_REQUIRES="xcb >= 0.9.92 xcb-render >= 0.9.92 xcb-renderutil" - PKG_CHECK_MODULES(xcb, $xcb_REQUIRES, , [AC_MSG_RESULT(no) - use_xcb="no (requires $xcb_REQUIRES http://xcb.freedesktop.org)"]) + xcb_REQUIRES="xcb >= 0.9.92 xcb-render >= 0.9.92 xcb-shm xcb-dri2" + PKG_CHECK_MODULES(xcb, $xcb_REQUIRES, , + [AC_MSG_RESULT(no) + use_xcb="no (requires $xcb_REQUIRES http://xcb.freedesktop.org)"]) +]) + +CAIRO_ENABLE_FUNCTIONS(xlib_xcb, Xlib/XCB, no, [ + if test "x$use_xcb" == "xyes" -a "x$use_xlib" == "xyes"; then + xlib_xcb_REQUIRES="x11-xcb" + PKG_CHECK_MODULES(xlib_xcb, $xlib_xcb_REQUIRES, , + [use_xlib_xcb="no (requires $xlib_xcb_REQUIRES http://xcb.freedesktop.org)"]) + else + use_xlib_xcb="no (requires both --enable-xlib and --enable-xcb)" + fi ]) +AM_CONDITIONAL(BUILD_XLIB_XCB, test "x$use_xlib_xcb" = "xyes") dnl =========================================================================== @@ -241,6 +253,14 @@ CAIRO_ENABLE_SURFACE_BACKEND(gallium, Gallium3D, no, [ fi ]) +CAIRO_ENABLE_FUNCTIONS(xcb_drm, XCB/DRM, no, [ + if test "x$use_xcb" == "xyes" -a "x$use_drm" == "xyes"; then + use_xcb_drm="yes" + else + use_xcb_drm="no (requires both --enable-xcb and --enable-drm)" + fi +]) + dnl =========================================================================== CAIRO_ENABLE_FUNCTIONS(png, PNG, yes, [ |