summaryrefslogtreecommitdiff
path: root/src/cairo-surface-fallback.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2010-04-29 15:37:32 +0200
committerBenjamin Otte <otte@redhat.com>2010-04-29 15:38:25 +0200
commit6288ad719da898c4a75cdc6527f5a41d4c900e57 (patch)
treeec6c75570fa76c0795c9fc8e142a368cd4347f01 /src/cairo-surface-fallback.c
parentb0760826f30f63637561b353e7eed1913036da2d (diff)
downloadcairo-6288ad719da898c4a75cdc6527f5a41d4c900e57.tar.gz
fallback: translate extents regions properly
The extents clip regions that were created for unbounded operators were not translated properly. This has been changed now. This is a followup to 9ce8bef9d6e6d773dd1f4b184916ed5c96c3541d.
Diffstat (limited to 'src/cairo-surface-fallback.c')
-rw-r--r--src/cairo-surface-fallback.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/cairo-surface-fallback.c b/src/cairo-surface-fallback.c
index 5149a96e7..f3016a1b7 100644
--- a/src/cairo-surface-fallback.c
+++ b/src/cairo-surface-fallback.c
@@ -549,6 +549,7 @@ _composite_traps_draw_func (void *closure,
extents_region = cairo_region_create_rectangle (extents);
if (unlikely (extents_region->status))
return extents_region->status;
+ cairo_region_translate (extents_region, -dst_x, -dst_y);
clip_region = extents_region;
}
@@ -976,14 +977,14 @@ CLEANUP_BOXES:
}
static cairo_status_t
-_cairo_surface_mask_draw_func (void *closure,
- cairo_operator_t op,
- const cairo_pattern_t *src,
- cairo_surface_t *dst,
- int dst_x,
- int dst_y,
+_cairo_surface_mask_draw_func (void *closure,
+ cairo_operator_t op,
+ const cairo_pattern_t *src,
+ cairo_surface_t *dst,
+ int dst_x,
+ int dst_y,
const cairo_rectangle_int_t *extents,
- cairo_region_t *clip_region)
+ cairo_region_t *clip_region)
{
cairo_pattern_t *mask = closure;
cairo_status_t status;
@@ -994,6 +995,7 @@ _cairo_surface_mask_draw_func (void *closure,
extents_region = cairo_region_create_rectangle (extents);
if (unlikely (extents_region->status))
return extents_region->status;
+ cairo_region_translate (extents_region, -dst_x, -dst_y);
clip_region = extents_region;
}
@@ -1309,6 +1311,7 @@ _cairo_surface_old_show_glyphs_draw_func (void *closure
extents_region = cairo_region_create_rectangle (extents);
if (unlikely (extents_region->status))
return extents_region->status;
+ cairo_region_translate (extents_region, -dst_x, -dst_y);
clip_region = extents_region;
}