summaryrefslogtreecommitdiff
path: root/src/cairo-xlib-display.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-08-13 01:34:12 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2012-08-17 13:58:09 +0100
commit0bfd2acd35547fc2bd0de99cc67d153f0170697d (patch)
treec59ffaad038cb57115c68505b36aa6bc15d88fa7 /src/cairo-xlib-display.c
parent140fafed89508c4685f3a464c9dbe8df769f2411 (diff)
downloadcairo-0bfd2acd35547fc2bd0de99cc67d153f0170697d.tar.gz
xlib: Implement SHM fallbacks and fast upload paths
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/cairo-xlib-display.c')
-rw-r--r--src/cairo-xlib-display.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/cairo-xlib-display.c b/src/cairo-xlib-display.c
index 06242ff16..bfe616812 100644
--- a/src/cairo-xlib-display.c
+++ b/src/cairo-xlib-display.c
@@ -95,6 +95,8 @@ _cairo_xlib_display_destroy (void *abstract_display)
{
cairo_xlib_display_t *display = abstract_display;
+ _cairo_xlib_display_fini_shm (display);
+
free (display);
}
@@ -147,15 +149,18 @@ static const cairo_device_backend_t _cairo_xlib_device_backend = {
_cairo_xlib_display_destroy,
};
-
static void _cairo_xlib_display_select_compositor (cairo_xlib_display_t *display)
{
+#if 1
if (display->render_major > 0 || display->render_minor >= 4)
display->compositor = _cairo_xlib_traps_compositor_get ();
else if (display->render_major > 0 || display->render_minor >= 0)
display->compositor = _cairo_xlib_mask_compositor_get ();
else
display->compositor = _cairo_xlib_core_compositor_get ();
+#else
+ display->compositor = _cairo_xlib_fallback_compositor_get ();
+#endif
}
/**
@@ -263,6 +268,8 @@ _cairo_xlib_device_create (Display *dpy)
display->force_precision = -1;
+ _cairo_xlib_display_init_shm (display);
+
/* Prior to Render 0.10, there is no protocol support for gradients and
* we call function stubs instead, which would silently consume the drawing.
*/