diff options
Diffstat (limited to 'extra/cairo/revert-xlib-Simplify-source-creation-by-use-of-map-to-image.patch')
-rw-r--r-- | extra/cairo/revert-xlib-Simplify-source-creation-by-use-of-map-to-image.patch | 144 |
1 files changed, 0 insertions, 144 deletions
diff --git a/extra/cairo/revert-xlib-Simplify-source-creation-by-use-of-map-to-image.patch b/extra/cairo/revert-xlib-Simplify-source-creation-by-use-of-map-to-image.patch deleted file mode 100644 index ffd324252..000000000 --- a/extra/cairo/revert-xlib-Simplify-source-creation-by-use-of-map-to-image.patch +++ /dev/null @@ -1,144 +0,0 @@ -From a73e7ff0186176bc82cd3ae1432c054c1fd3aebd Mon Sep 17 00:00:00 2001 -From: Chris Wilson <chris@chris-wilson.co.uk> -Date: Sun, 06 Jan 2013 11:29:27 +0000 -Subject: xlib: Simplify source creation by use of map-to-image - -We were open-coding the functionality of map-to-image inside the source -creation routines. so refactor to actually use map-to-image instead. - -Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> ---- -diff --git a/src/cairo-xlib-source.c b/src/cairo-xlib-source.c -index e312222..d08052a 100644 ---- a/src/cairo-xlib-source.c -+++ b/src/cairo-xlib-source.c -@@ -898,9 +898,6 @@ surface_source (cairo_xlib_surface_t *dst, - cairo_surface_pattern_t local_pattern; - cairo_status_t status; - cairo_rectangle_int_t upload, limit; -- cairo_matrix_t m; -- pixman_format_code_t format; -- int draw_x, draw_y; - - src = pattern->surface; - if (src->type == CAIRO_SURFACE_TYPE_IMAGE && -@@ -910,7 +907,6 @@ surface_source (cairo_xlib_surface_t *dst, - - cairo_surface_reference (src); - --prepare_shm_image: - proxy = malloc (sizeof(*proxy)); - if (unlikely (proxy == NULL)) { - cairo_surface_destroy (src); -@@ -954,46 +950,47 @@ prepare_shm_image: - } - } - -- if (_cairo_surface_is_image (src)) -- format = ((cairo_image_surface_t *)src)->pixman_format; -- else -- format = _cairo_format_to_pixman_format_code (_cairo_format_from_content (src->content)); -- src = _cairo_xlib_surface_create_shm (dst, format, -- upload.width, upload.height); -- if (src == NULL) { -- if (_cairo_surface_is_image (pattern->surface)) { -- draw_x = upload.x; -- draw_y = upload.y; -- src = cairo_surface_reference (pattern->surface); -- goto skip_paint; -- } -- -- src = _cairo_image_surface_create_with_pixman_format (NULL, -- format, -- upload.width, -- upload.height, -- 0); -+ xsrc = (cairo_xlib_surface_t *) -+ _cairo_surface_create_similar_scratch (&dst->base, -+ src->content, -+ upload.width, -+ upload.height); -+ if (xsrc->base.type != CAIRO_SURFACE_TYPE_XLIB) { -+ cairo_surface_destroy (src); -+ cairo_surface_destroy (&xsrc->base); -+ return None; - } - -- _cairo_pattern_init_for_surface (&local_pattern, pattern->surface); -- cairo_matrix_init_translate (&local_pattern.base.matrix, -- upload.x, upload.y); -+ if (_cairo_surface_is_image (src)) { -+ status = _cairo_xlib_surface_draw_image (xsrc, (cairo_image_surface_t *)src, -+ upload.x, upload.y, -+ upload.width, upload.height, -+ 0, 0); -+ } else { -+ cairo_image_surface_t *image; - -- status = _cairo_surface_paint (src, -- CAIRO_OPERATOR_SOURCE, -- &local_pattern.base, -- NULL); -- _cairo_pattern_fini (&local_pattern.base); -+ image = _cairo_surface_map_to_image (&xsrc->base, NULL); - -- if (unlikely (status)) { -- cairo_surface_destroy (src); -- return _cairo_surface_create_in_error (status); -+ _cairo_pattern_init_for_surface (&local_pattern, pattern->surface); -+ cairo_matrix_init_translate (&local_pattern.base.matrix, -+ upload.x, upload.y); -+ -+ status = _cairo_surface_paint (&image->base, -+ CAIRO_OPERATOR_SOURCE, -+ &local_pattern.base, -+ NULL); -+ _cairo_pattern_fini (&local_pattern.base); -+ -+ status = _cairo_surface_unmap_image (&xsrc->base, image); -+ if (unlikely (status)) { -+ cairo_surface_destroy (src); -+ return _cairo_surface_create_in_error (status); -+ } - } - -- draw_x = draw_y = 0; --skip_paint: - _cairo_pattern_init_static_copy (&local_pattern.base, &pattern->base); - if (upload.x | upload.y) { -+ cairo_matrix_t m; - cairo_matrix_init_translate (&m, -upload.x, -upload.y); - cairo_matrix_multiply (&local_pattern.base.matrix, - &local_pattern.base.matrix, -@@ -1001,29 +998,6 @@ skip_paint: - } - - *src_x = *src_y = 0; -- if (src->device == dst->base.device && -- _cairo_xlib_shm_surface_get_pixmap (src)) { -- pattern = &local_pattern; -- goto prepare_shm_image; -- } -- -- xsrc = (cairo_xlib_surface_t *) -- _cairo_surface_create_similar_scratch (&dst->base, -- src->content, -- upload.width, -- upload.height); -- if (xsrc->base.type != CAIRO_SURFACE_TYPE_XLIB) { -- cairo_surface_destroy (src); -- cairo_surface_destroy (&xsrc->base); -- return None; -- } -- -- status = _cairo_xlib_surface_draw_image (xsrc, (cairo_image_surface_t *)src, -- draw_x, draw_y, -- upload.width, upload.height, -- 0, 0); -- cairo_surface_destroy (src); -- - _cairo_xlib_surface_ensure_picture (xsrc); - if (! picture_set_properties (xsrc->display, - xsrc->picture, --- -cgit v0.9.0.2-2-gbebe |