diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2012-08-17 20:57:04 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2012-08-17 23:20:01 +0100 |
commit | bc38108947a684fb6e7af99a48ebc8f79d05856a (patch) | |
tree | 90a4964699a955902f7616dfd158f09679f86f12 /src/cairo-xlib-surface-shm.c | |
parent | 4af7a1c8637f3008a2265e063ab990eec07e02dd (diff) | |
download | cairo-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.c | 8 |
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); |