summaryrefslogtreecommitdiff
path: root/src/cairo-xlib-surface-shm.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-08-17 20:57:04 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2012-08-17 23:20:01 +0100
commitbc38108947a684fb6e7af99a48ebc8f79d05856a (patch)
tree90a4964699a955902f7616dfd158f09679f86f12 /src/cairo-xlib-surface-shm.c
parent4af7a1c8637f3008a2265e063ab990eec07e02dd (diff)
downloadcairo-bc38108947a684fb6e7af99a48ebc8f79d05856a.tar.gz
xlib/shm: Limit use of the impromptu fallback pixmap for uploads
We want to avoid unnecessary readback and so only want to use the ShmPixmap when uploading the complete surface. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/cairo-xlib-surface-shm.c')
-rw-r--r--src/cairo-xlib-surface-shm.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/cairo-xlib-surface-shm.c b/src/cairo-xlib-surface-shm.c
index 7d9a3e1b3..cdb91c836 100644
--- a/src/cairo-xlib-surface-shm.c
+++ b/src/cairo-xlib-surface-shm.c
@@ -791,7 +791,8 @@ static void dec_idle (cairo_surface_t *surface)
}
cairo_surface_t *
-_cairo_xlib_surface_get_shm (cairo_xlib_surface_t *surface)
+_cairo_xlib_surface_get_shm (cairo_xlib_surface_t *surface,
+ cairo_bool_t overwrite)
{
if (surface->fallback) {
assert (surface->base.damage);
@@ -836,6 +837,11 @@ _cairo_xlib_surface_get_shm (cairo_xlib_surface_t *surface)
surface->shm->damage = _cairo_damage_create ();
}
+ if (overwrite) {
+ _cairo_damage_destroy (surface->base.damage);
+ surface->base.damage = _cairo_damage_create ();
+ }
+
if (!surface->base.is_clear && surface->base.damage->dirty)
_cairo_xlib_surface_update_shm (surface);