diff options
author | Andrea Canciani <ranma42@gmail.com> | 2012-01-11 17:17:29 +0100 |
---|---|---|
committer | Andrea Canciani <ranma42@gmail.com> | 2012-05-26 16:07:00 +0200 |
commit | 13b7364836e14b811bbeb3ba0849e6d6c0fb1dd3 (patch) | |
tree | f1d23a82bfa9d7ef0c4bc4251e767c0579aef50e /src/cairo-fallback-compositor.c | |
parent | 37c5c2dbe55f64ee84ab248eb0072d5d7c5145cc (diff) | |
download | cairo-13b7364836e14b811bbeb3ba0849e6d6c0fb1dd3.tar.gz |
surface: Use the internal map/unmap
In many places Cairo maps/unmaps surfaces to perform operations on the
raw image, but it doesn't care about the format being invalid. All of
these are appropriate users of _cairo_surface_map_to_image().
Diffstat (limited to 'src/cairo-fallback-compositor.c')
-rw-r--r-- | src/cairo-fallback-compositor.c | 56 |
1 files changed, 31 insertions, 25 deletions
diff --git a/src/cairo-fallback-compositor.c b/src/cairo-fallback-compositor.c index efc8a79ad..3f6199fe2 100644 --- a/src/cairo-fallback-compositor.c +++ b/src/cairo-fallback-compositor.c @@ -42,6 +42,7 @@ #include "cairoint.h" #include "cairo-compositor-private.h" +#include "cairo-image-surface-private.h" #include "cairo-surface-offset-private.h" /* high-level compositor interface */ @@ -50,41 +51,43 @@ static cairo_int_status_t _cairo_fallback_compositor_paint (const cairo_compositor_t *_compositor, cairo_composite_rectangles_t *extents) { - cairo_surface_t *image; + cairo_image_surface_t *image; cairo_int_status_t status; TRACE ((stderr, "%s\n", __FUNCTION__)); - image = cairo_surface_map_to_image (extents->surface, &extents->unbounded); - status = _cairo_surface_offset_paint (image, + + image = _cairo_surface_map_to_image (extents->surface, &extents->unbounded); + + status = _cairo_surface_offset_paint (&image->base, extents->unbounded.x, extents->unbounded.y, extents->op, &extents->source_pattern.base, extents->clip); - cairo_surface_unmap_image (extents->surface, image); - return status; + return _cairo_surface_unmap_image (extents->surface, image); } static cairo_int_status_t _cairo_fallback_compositor_mask (const cairo_compositor_t *_compositor, cairo_composite_rectangles_t *extents) { - cairo_surface_t *image; + cairo_image_surface_t *image; cairo_int_status_t status; TRACE ((stderr, "%s\n", __FUNCTION__)); - image = cairo_surface_map_to_image (extents->surface, &extents->unbounded); - status = _cairo_surface_offset_mask (image, + + image = _cairo_surface_map_to_image (extents->surface, &extents->unbounded); + + status = _cairo_surface_offset_mask (&image->base, extents->unbounded.x, extents->unbounded.y, extents->op, &extents->source_pattern.base, &extents->mask_pattern.base, extents->clip); - cairo_surface_unmap_image (extents->surface, image); - return status; + return _cairo_surface_unmap_image (extents->surface, image); } static cairo_int_status_t @@ -97,12 +100,14 @@ _cairo_fallback_compositor_stroke (const cairo_compositor_t *_compositor, double tolerance, cairo_antialias_t antialias) { - cairo_surface_t *image; + cairo_image_surface_t *image; cairo_int_status_t status; TRACE ((stderr, "%s\n", __FUNCTION__)); - image = cairo_surface_map_to_image (extents->surface, &extents->unbounded); - status = _cairo_surface_offset_stroke (image, + + image = _cairo_surface_map_to_image (extents->surface, &extents->unbounded); + + status = _cairo_surface_offset_stroke (&image->base, extents->unbounded.x, extents->unbounded.y, extents->op, @@ -112,9 +117,8 @@ _cairo_fallback_compositor_stroke (const cairo_compositor_t *_compositor, tolerance, antialias, extents->clip); - cairo_surface_unmap_image (extents->surface, image); - return status; + return _cairo_surface_unmap_image (extents->surface, image); } static cairo_int_status_t @@ -125,12 +129,14 @@ _cairo_fallback_compositor_fill (const cairo_compositor_t *_compositor, double tolerance, cairo_antialias_t antialias) { - cairo_surface_t *image; + cairo_image_surface_t *image; cairo_int_status_t status; TRACE ((stderr, "%s\n", __FUNCTION__)); - image = cairo_surface_map_to_image (extents->surface, &extents->unbounded); - status = _cairo_surface_offset_fill (image, + + image = _cairo_surface_map_to_image (extents->surface, &extents->unbounded); + + status = _cairo_surface_offset_fill (&image->base, extents->unbounded.x, extents->unbounded.y, extents->op, @@ -138,9 +144,8 @@ _cairo_fallback_compositor_fill (const cairo_compositor_t *_compositor, path, fill_rule, tolerance, antialias, extents->clip); - cairo_surface_unmap_image (extents->surface, image); - return status; + return _cairo_surface_unmap_image (extents->surface, image); } static cairo_int_status_t @@ -151,21 +156,22 @@ _cairo_fallback_compositor_glyphs (const cairo_compositor_t *_compositor, int num_glyphs, cairo_bool_t overlap) { - cairo_surface_t *image; + cairo_image_surface_t *image; cairo_int_status_t status; TRACE ((stderr, "%s\n", __FUNCTION__)); - image = cairo_surface_map_to_image (extents->surface, &extents->unbounded); - status = _cairo_surface_offset_glyphs (image, + + image = _cairo_surface_map_to_image (extents->surface, &extents->unbounded); + + status = _cairo_surface_offset_glyphs (&image->base, extents->unbounded.x, extents->unbounded.y, extents->op, &extents->source_pattern.base, scaled_font, glyphs, num_glyphs, extents->clip); - cairo_surface_unmap_image (extents->surface, image); - return status; + return _cairo_surface_unmap_image (extents->surface, image); } const cairo_compositor_t _cairo_fallback_compositor = { |