summaryrefslogtreecommitdiff
path: root/src/cairo-image-source.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2011-09-17 12:01:49 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2011-09-17 12:01:49 +0100
commitcea41a61c104f235c1f896207115507aed93d9ea (patch)
tree9abfdabe85142280e96d2396f6b0d88488cf51a3 /src/cairo-image-source.c
parent09b42c748e9dbcc923560c7d8bf5298fbffe95ef (diff)
downloadcairo-cea41a61c104f235c1f896207115507aed93d9ea.tar.gz
image: intersect the source extents with the replay extents for EXTEND_NONE
Fixes up the boundary on EXTEND_NONE replays. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/cairo-image-source.c')
-rw-r--r--src/cairo-image-source.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/cairo-image-source.c b/src/cairo-image-source.c
index c6c53457e..4c2c1d253 100644
--- a/src/cairo-image-source.c
+++ b/src/cairo-image-source.c
@@ -639,8 +639,11 @@ _pixman_image_for_recording (cairo_image_surface_t *dst,
} else
extend = CAIRO_EXTEND_NONE;
- if (extend == CAIRO_EXTEND_NONE)
+ if (extend == CAIRO_EXTEND_NONE) {
limit = *extents;
+ if (! _cairo_rectangle_intersect (&limit, sample))
+ return _pixman_transparent_image ();
+ }
if (dst->base.content == source->content)
clone = cairo_image_surface_create (dst->format,