summaryrefslogtreecommitdiff
path: root/src/cairo-xlib-source.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-xlib-source.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-xlib-source.c')
-rw-r--r--src/cairo-xlib-source.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/cairo-xlib-source.c b/src/cairo-xlib-source.c
index dec762224..ac0fdf8b7 100644
--- a/src/cairo-xlib-source.c
+++ b/src/cairo-xlib-source.c
@@ -259,7 +259,7 @@ render_pattern (cairo_xlib_surface_t *dst,
{
Display *dpy = dst->display->display;
cairo_xlib_surface_t *src;
- cairo_surface_t *image;
+ cairo_image_surface_t *image;
cairo_status_t status;
cairo_rectangle_int_t map_extents;
@@ -276,11 +276,11 @@ render_pattern (cairo_xlib_surface_t *dst,
map_extents = *extents;
map_extents.x = map_extents.y = 0;
- image = cairo_surface_map_to_image (&src->base, &map_extents);
- status = _cairo_surface_offset_paint (image, extents->x, extents->y,
+ image = _cairo_surface_map_to_image (&src->base, &map_extents);
+ status = _cairo_surface_offset_paint (&image->base, extents->x, extents->y,
CAIRO_OPERATOR_SOURCE, pattern,
NULL);
- cairo_surface_unmap_image (&src->base, image);
+ status = _cairo_surface_unmap_image (&src->base, image);
if (unlikely (status)) {
cairo_surface_destroy (&src->base);
return _cairo_surface_create_in_error (status);
@@ -913,7 +913,7 @@ surface_source (cairo_xlib_surface_t *dst,
int *src_x, int *src_y)
{
cairo_xlib_surface_t *src;
- cairo_surface_t *image;
+ cairo_image_surface_t *image;
cairo_surface_pattern_t local_pattern;
cairo_status_t status;
cairo_rectangle_int_t upload, limit, map_extents;
@@ -946,12 +946,12 @@ surface_source (cairo_xlib_surface_t *dst,
map_extents = upload;
map_extents.x = map_extents.y = 0;
- image = cairo_surface_map_to_image (&src->base, &map_extents);
- status = _cairo_surface_paint (image,
+ image = _cairo_surface_map_to_image (&src->base, &map_extents);
+ status = _cairo_surface_paint (&image->base,
CAIRO_OPERATOR_SOURCE,
&local_pattern.base,
NULL);
- cairo_surface_unmap_image (&src->base, image);
+ status = _cairo_surface_unmap_image (&src->base, image);
_cairo_pattern_fini (&local_pattern.base);
if (unlikely (status)) {