summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2013-02-12 10:11:12 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2013-02-12 10:11:12 +0000
commit14237f11439831377b59e8ea5717de5dd3e19e73 (patch)
tree7c8371bc8bef06b9793b1b9fc81ce1e8b7871a14
parent7f3cca458a7546f913533f693b581325228aba4e (diff)
spans: Mark the surface as cleared in preparing for recording surface playback
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--src/cairo-spans-compositor.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/cairo-spans-compositor.c b/src/cairo-spans-compositor.c
index cb3e973d..6eb9b42a 100644
--- a/src/cairo-spans-compositor.c
+++ b/src/cairo-spans-compositor.c
@@ -589,11 +589,16 @@ composite_aligned_boxes (const cairo_spans_compositor_t *compositor,
/* XXX could also do tiling repeat modes... */
/* first clear the area about to be overwritten */
- if (! dst->is_clear)
+ if (! dst->is_clear) {
status = compositor->fill_boxes (dst,
CAIRO_OPERATOR_CLEAR,
CAIRO_COLOR_TRANSPARENT,
boxes);
+ if (unlikely (status))
+ return status;
+
+ dst->is_clear = TRUE;
+ }
recording_clip = _cairo_clip_from_boxes (boxes);
status = _cairo_recording_surface_replay_with_clip (unwrap_source (source),