summaryrefslogtreecommitdiff
path: root/src/cairo-xlib-render-compositor.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2011-10-14 13:21:40 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2011-10-14 13:23:02 +0100
commit10ebda8698425a23f07b3062233500ec22ebc347 (patch)
tree597468674c8a7aa6d09c01bbf0d84cc89f21c59e /src/cairo-xlib-render-compositor.c
parenta8c3a22f2d98d0d1e9fd182857222d304d83dc22 (diff)
downloadcairo-10ebda8698425a23f07b3062233500ec22ebc347.tar.gz
xlib: Reduce the composite traps operator for when the dest is clear
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/cairo-xlib-render-compositor.c')
-rw-r--r--src/cairo-xlib-render-compositor.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/cairo-xlib-render-compositor.c b/src/cairo-xlib-render-compositor.c
index 60d99844f..4088281de 100644
--- a/src/cairo-xlib-render-compositor.c
+++ b/src/cairo-xlib-render-compositor.c
@@ -1517,6 +1517,12 @@ composite_traps (void *abstract_dst,
//X_DEBUG ((display->display, "composite_trapezoids (dst=%x)", (unsigned int) dst->drawable));
+ if (dst->base.is_clear &&
+ (op == CAIRO_OPERATOR_OVER || op == CAIRO_OPERATOR_ADD))
+ {
+ op = CAIRO_OPERATOR_SOURCE;
+ }
+
pict_format =
_cairo_xlib_display_get_xrender_format (display,
antialias == CAIRO_ANTIALIAS_NONE ? CAIRO_FORMAT_A1 : CAIRO_FORMAT_A8);