[cairo-commit] src/cairo-xcb-surface-render.c

Uli Schlachter psychon at kemper.freedesktop.org
Tue Aug 2 13:36:33 PDT 2011


 src/cairo-xcb-surface-render.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

New commits:
commit 7b5b29cc0ffc44066589d371d872e355ce56343b
Author: Uli Schlachter <psychon at znc.in>
Date:   Tue Aug 2 22:34:54 2011 +0200

    xcb: Handle deferred clear in _upload_image_inplace
    
    Fixes: clip-device-offset, image-surface-source,
    composite-integer-translate-source, move-to-show-surface,
    source-surface-scale-paint, translate-show-surface, perhaps even more?
    
    Signed-off-by: Uli Schlachter <psychon at znc.in>

diff --git a/src/cairo-xcb-surface-render.c b/src/cairo-xcb-surface-render.c
index 364e5c0..e08ca68 100644
--- a/src/cairo-xcb-surface-render.c
+++ b/src/cairo-xcb-surface-render.c
@@ -2692,11 +2692,16 @@ _upload_image_inplace (cairo_xcb_surface_t *surface,
     if (! cairo_boxes_for_each_box (boxes, image_contains_box, &icb))
 	return CAIRO_INT_STATUS_UNSUPPORTED;
 
+    if (surface->deferred_clear) {
+	status = _cairo_xcb_surface_clear (surface);
+	if (unlikely (status))
+	    return status;
+    }
+
     status = _cairo_xcb_connection_acquire (surface->connection);
     if (unlikely (status))
 	return status;
 
-
     iub.surface = surface;
     iub.image = image;
     iub.gc = _cairo_xcb_screen_get_gc (surface->screen,


More information about the cairo-commit mailing list