[arch-commits] Commit in lib32-cairo/repos (4 files)
Laurent Carlier
lcarlier at nymeria.archlinux.org
Sun Feb 10 20:14:23 UTC 2013
Date: Sunday, February 10, 2013 @ 21:14:23
Author: lcarlier
Revision: 84116
archrelease: copy trunk to multilib-testing-x86_64
Added:
lib32-cairo/repos/multilib-testing-x86_64/
lib32-cairo/repos/multilib-testing-x86_64/PKGBUILD
(from rev 84115, lib32-cairo/trunk/PKGBUILD)
lib32-cairo/repos/multilib-testing-x86_64/revert-xlib-Simplify-source-creation-by-use-of-map-to-image.patch
(from rev 84115, lib32-cairo/trunk/revert-xlib-Simplify-source-creation-by-use-of-map-to-image.patch)
lib32-cairo/repos/multilib-testing-x86_64/revert-xlib-map-to-image-requires-an-extents.patch
(from rev 84115, lib32-cairo/trunk/revert-xlib-map-to-image-requires-an-extents.patch)
-------------------------------------------------------------------+
PKGBUILD | 40 ++
revert-xlib-Simplify-source-creation-by-use-of-map-to-image.patch | 144 ++++++++++
revert-xlib-map-to-image-requires-an-extents.patch | 24 +
3 files changed, 208 insertions(+)
Copied: lib32-cairo/repos/multilib-testing-x86_64/PKGBUILD (from rev 84115, lib32-cairo/trunk/PKGBUILD)
===================================================================
--- multilib-testing-x86_64/PKGBUILD (rev 0)
+++ multilib-testing-x86_64/PKGBUILD 2013-02-10 20:14:23 UTC (rev 84116)
@@ -0,0 +1,40 @@
+# $Id$
+# Maintainer: Ionut Biru <ibiru at archlinux.org>
+
+_pkgbasename=cairo
+pkgname=lib32-$_pkgbasename
+pkgver=1.12.14
+pkgrel=1
+pkgdesc="Cairo vector graphics library (32-bit)"
+arch=('x86_64')
+url="http://cairographics.org/"
+license=('LGPL' 'MPL')
+depends=('lib32-libpng' 'lib32-libxext' 'lib32-libxrender' 'lib32-fontconfig'
+ 'lib32-pixman' 'lib32-glib2' ${_pkgbasename})
+makedepends=('gcc-multilib')
+source=(http://cairographics.org/releases/${_pkgbasename}-${pkgver}.tar.xz)
+sha1sums=('9106ab09b2e7b9f90521b18dd4a7e9577eba6c15')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --libdir=/usr/lib32 \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static \
+ --enable-tee
+ # --enable-gl # need lib32-egl
+ # --disable-xlib-xcb
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
Copied: lib32-cairo/repos/multilib-testing-x86_64/revert-xlib-Simplify-source-creation-by-use-of-map-to-image.patch (from rev 84115, lib32-cairo/trunk/revert-xlib-Simplify-source-creation-by-use-of-map-to-image.patch)
===================================================================
--- multilib-testing-x86_64/revert-xlib-Simplify-source-creation-by-use-of-map-to-image.patch (rev 0)
+++ multilib-testing-x86_64/revert-xlib-Simplify-source-creation-by-use-of-map-to-image.patch 2013-02-10 20:14:23 UTC (rev 84116)
@@ -0,0 +1,144 @@
+From a73e7ff0186176bc82cd3ae1432c054c1fd3aebd Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris at 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 at 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
Copied: lib32-cairo/repos/multilib-testing-x86_64/revert-xlib-map-to-image-requires-an-extents.patch (from rev 84115, lib32-cairo/trunk/revert-xlib-map-to-image-requires-an-extents.patch)
===================================================================
--- multilib-testing-x86_64/revert-xlib-map-to-image-requires-an-extents.patch (rev 0)
+++ multilib-testing-x86_64/revert-xlib-map-to-image-requires-an-extents.patch 2013-02-10 20:14:23 UTC (rev 84116)
@@ -0,0 +1,24 @@
+From dd20c1f4d6419238bbb37fb93a48986f83c6e6c2 Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris at chris-wilson.co.uk>
+Date: Wed, 09 Jan 2013 12:38:09 +0000
+Subject: xlib: map-to-image requires an extents
+
+Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
+---
+diff --git a/src/cairo-xlib-source.c b/src/cairo-xlib-source.c
+index d08052a..0689d82 100644
+--- a/src/cairo-xlib-source.c
++++ b/src/cairo-xlib-source.c
+@@ -968,8 +968,9 @@ surface_source (cairo_xlib_surface_t *dst,
+ 0, 0);
+ } else {
+ cairo_image_surface_t *image;
++ cairo_rectangle_int_t map_extents = { 0,0, upload.width,upload.height };
+
+- image = _cairo_surface_map_to_image (&xsrc->base, NULL);
++ image = _cairo_surface_map_to_image (&xsrc->base, &map_extents);
+
+ _cairo_pattern_init_for_surface (&local_pattern, pattern->surface);
+ cairo_matrix_init_translate (&local_pattern.base.matrix,
+--
+cgit v0.9.0.2-2-gbebe
More information about the arch-commits
mailing list