summaryrefslogtreecommitdiff
path: root/extra/cairo/revert-xlib-Simplify-source-creation-by-use-of-map-to-image.patch
diff options
context:
space:
mode:
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.patch144
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