summaryrefslogtreecommitdiff
path: root/src/cairo-fallback-compositor.c
diff options
context:
space:
mode:
authorAndrea Canciani <ranma42@gmail.com>2012-01-11 17:17:29 +0100
committerAndrea Canciani <ranma42@gmail.com>2012-05-26 16:07:00 +0200
commit13b7364836e14b811bbeb3ba0849e6d6c0fb1dd3 (patch)
treef1d23a82bfa9d7ef0c4bc4251e767c0579aef50e /src/cairo-fallback-compositor.c
parent37c5c2dbe55f64ee84ab248eb0072d5d7c5145cc (diff)
downloadcairo-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.c56
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 = {