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 /src/cairo-xcb.h | |
parent | 77afe8491ed7038a8399c01f10d8f062a7239225 (diff) | |
download | cairo-1236c41072a7966eda7db48a381fd0508e5289be.tar.gz |
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 'src/cairo-xcb.h')
-rw-r--r-- | src/cairo-xcb.h | 41 |
1 files changed, 32 insertions, 9 deletions
diff --git a/src/cairo-xcb.h b/src/cairo-xcb.h index 1b6d2e69f..a1e9da171 100644 --- a/src/cairo-xcb.h +++ b/src/cairo-xcb.h @@ -1,6 +1,7 @@ /* cairo - a vector graphics library with display and print output * * Copyright © 2002 University of Southern California + * Copyright © 2009 Intel Corporation * * This library is free software; you can redistribute it and/or * modify it either under the terms of the GNU Lesser General Public @@ -32,6 +33,7 @@ * * Contributor(s): * Carl D. Worth <cworth@cworth.org> + * Chris Wilson <chris@chris-wilson.co.uk> */ #ifndef CAIRO_XCB_H @@ -42,28 +44,49 @@ #if CAIRO_HAS_XCB_SURFACE #include <xcb/xcb.h> +#include <xcb/render.h> CAIRO_BEGIN_DECLS cairo_public cairo_surface_t * -cairo_xcb_surface_create (xcb_connection_t *c, +cairo_xcb_surface_create (xcb_connection_t *connection, xcb_drawable_t drawable, - xcb_visualtype_t *visual, - int width, - int height); + xcb_visualtype_t *visual, + int width, + int height); cairo_public cairo_surface_t * -cairo_xcb_surface_create_for_bitmap (xcb_connection_t *c, - xcb_pixmap_t bitmap, - xcb_screen_t *screen, - int width, - int height); +cairo_xcb_surface_create_for_bitmap (xcb_connection_t *connection, + xcb_screen_t *screen, + xcb_pixmap_t bitmap, + int width, + int height); + +cairo_public cairo_surface_t * +cairo_xcb_surface_create_with_xrender_format (xcb_connection_t *connection, + xcb_screen_t *screen, + xcb_drawable_t drawable, + xcb_render_pictforminfo_t *format, + int width, + int height); cairo_public void cairo_xcb_surface_set_size (cairo_surface_t *surface, int width, int height); +/* debug interface */ + +cairo_public void +cairo_xcb_device_debug_cap_xshm_version (cairo_device_t *device, + int major_version, + int minor_version); + +cairo_public void +cairo_xcb_device_debug_cap_xrender_version (cairo_device_t *device, + int major_version, + int minor_version); + CAIRO_END_DECLS #else /* CAIRO_HAS_XCB_SURFACE */ |