diff options
author | Alexander Larsson <alexl@redhat.com> | 2013-08-27 14:46:16 +0200 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2013-09-05 16:11:09 +0100 |
commit | bc792a5e0e196dd9761649b14c9206465b42ef1d (patch) | |
tree | 78ffa8e991f1fed99a16fc06cce80bddb8d8a3b5 /src/cairo-xlib-source.c | |
parent | bdccf4fe51bca785f73205ccd26c4d020669e312 (diff) | |
download | cairo-bc792a5e0e196dd9761649b14c9206465b42ef1d.tar.gz |
surface: Merge scratch construction into _cairo_surface_create_scratch
We merge _cairo_surface_create_similar_scratch and
_cairo_surface_create_similar_solid into a single function named
_cairo_surface_create_scratch, to avoid confusion with
cairo_surface_create_similar which now will have a different
behaviour wrt the sizes and the device-scale.
_create_scratch assumes the width and height are in backend
coordinates, while create_similar does not.
Diffstat (limited to 'src/cairo-xlib-source.c')
-rw-r--r-- | src/cairo-xlib-source.c | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/src/cairo-xlib-source.c b/src/cairo-xlib-source.c index 746001ed4..8275da3d8 100644 --- a/src/cairo-xlib-source.c +++ b/src/cairo-xlib-source.c @@ -288,10 +288,11 @@ render_pattern (cairo_xlib_surface_t *dst, cairo_rectangle_int_t map_extents; src = (cairo_xlib_surface_t *) - _cairo_surface_create_similar_scratch (&dst->base, - is_mask ? CAIRO_CONTENT_ALPHA : CAIRO_CONTENT_COLOR_ALPHA, - extents->width, - extents->height); + _cairo_surface_create_scratch (&dst->base, + is_mask ? CAIRO_CONTENT_ALPHA : CAIRO_CONTENT_COLOR_ALPHA, + extents->width, + extents->height, + NULL); if (src->base.type != CAIRO_SURFACE_TYPE_XLIB) { cairo_surface_destroy (&src->base); return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); @@ -750,10 +751,11 @@ subsurface_source (cairo_xlib_surface_t *dst, source = &src->embedded_source; } else { src = (cairo_xlib_surface_t *) - _cairo_surface_create_similar_scratch (&dst->base, - sub->base.content, - sub->extents.width, - sub->extents.height); + _cairo_surface_create_scratch (&dst->base, + sub->base.content, + sub->extents.width, + sub->extents.height, + NULL); if (src->base.type != CAIRO_SURFACE_TYPE_XLIB) { cairo_surface_destroy (&src->base); return _cairo_surface_create_in_error (CAIRO_STATUS_NO_MEMORY); @@ -898,10 +900,11 @@ record_source (cairo_xlib_surface_t *dst, } src = (cairo_xlib_surface_t *) - _cairo_surface_create_similar_scratch (&dst->base, - pattern->surface->content, - upload.width, - upload.height); + _cairo_surface_create_scratch (&dst->base, + pattern->surface->content, + upload.width, + upload.height, + NULL); if (src->base.type != CAIRO_SURFACE_TYPE_XLIB) { cairo_surface_destroy (&src->base); return _cairo_surface_create_in_error (CAIRO_STATUS_NO_MEMORY); @@ -1001,10 +1004,11 @@ surface_source (cairo_xlib_surface_t *dst, } xsrc = (cairo_xlib_surface_t *) - _cairo_surface_create_similar_scratch (&dst->base, - src->content, - upload.width, - upload.height); + _cairo_surface_create_scratch (&dst->base, + src->content, + upload.width, + upload.height, + NULL); if (xsrc->base.type != CAIRO_SURFACE_TYPE_XLIB) { cairo_surface_destroy (src); cairo_surface_destroy (&xsrc->base); |