diff options
author | René Neumann <rene.neumann@in.tum.de> | 2012-05-07 11:03:50 +0200 |
---|---|---|
committer | René Neumann <rene.neumann@in.tum.de> | 2012-05-07 11:03:50 +0200 |
commit | fdf205a0d9e84275bc74cdd2ba8dd65dfb7bb343 (patch) | |
tree | d7399d51fd6bc54ef74bf350a2ddeb9f965709a6 /x11-libs/cairo | |
parent | 04229674316b171286b42c59a29a3661ce4d08ab (diff) | |
download | overlay-fdf205a0d9e84275bc74cdd2ba8dd65dfb7bb343.tar.gz overlay-fdf205a0d9e84275bc74cdd2ba8dd65dfb7bb343.tar.bz2 overlay-fdf205a0d9e84275bc74cdd2ba8dd65dfb7bb343.zip |
Cairo from portage tree
Diffstat (limited to '')
-rw-r--r-- | x11-libs/cairo/Manifest | 6 | ||||
-rw-r--r-- | x11-libs/cairo/cairo-1.10.2-r2.ebuild (renamed from x11-libs/cairo/cairo-1.10.2-r1.ebuild) | 12 | ||||
-rw-r--r-- | x11-libs/cairo/files/cairo-1.10.2-qt-surface.patch | 55 | ||||
-rw-r--r-- | x11-libs/cairo/files/cairo-1.2.4-lcd-cleartype-like.diff | 275 | ||||
-rw-r--r-- | x11-libs/cairo/files/cairo-1.8.10-libpng14.patch | 11 | ||||
-rw-r--r-- | x11-libs/cairo/files/cairo-respect-fontconfig.patch | 13 |
6 files changed, 63 insertions, 309 deletions
diff --git a/x11-libs/cairo/Manifest b/x11-libs/cairo/Manifest index 14afcb4..fe595dd 100644 --- a/x11-libs/cairo/Manifest +++ b/x11-libs/cairo/Manifest @@ -1,8 +1,6 @@ AUX cairo-1.10.0-buggy_gradients.patch 581 RMD160 077fb7a18c2840c0d637d2161ca9d244cb69608b SHA1 45f4b6a834cb9f1c153f092fba18416d257d71c7 SHA256 3b622bb250b996ea5f5adc5c899af343e0efba5c477fa0e51fdbb720a8dd1b18 AUX cairo-1.10.2-interix.patch 1235 RMD160 83803df650e8381649b11bd3c81dd0c6ee5f8e53 SHA1 d6b731fc8aa0c9461e62a9afc1431782d3af433b SHA256 d915d69e2eb96f6a4bef1de0c493ed9face7b5d6a79194ab9f2a7f3d85b799ea -AUX cairo-1.2.4-lcd-cleartype-like.diff 7244 RMD160 e50d5bf17cbead688a8b808a78fe4104c09af52e SHA1 f63131fd75bb496db59e3ce6bc755bbfb70baacb SHA256 4926d20d2b6b5071a5bf9ee9a12a36fef69510ebebd717c1dab151fe650f173a -AUX cairo-1.8.10-libpng14.patch 426 RMD160 f97e4f2d1e65e2c6a90c5fddbce66caeb4337bba SHA1 bb029f710432af7b24175aa941fc7cd3187ef767 SHA256 b090f829d3b9fb69b83bfa094552335b8382988d60ce7e46558c4069b8bca532 +AUX cairo-1.10.2-qt-surface.patch 2687 RMD160 9ffc2924070a7dfa917a2b05b11de1fcca571dab SHA1 6ce6a6047d6f8420ea3044d036e7d10c6ac98c61 SHA256 fb96199ec7a4cf8527726be8d0333ed883183b56960832218eca1c9ef2e05dbd AUX cairo-1.8.8-interix.patch 619 RMD160 9bb28c5a88aa1f2776d32ac7020aef4ba93872b5 SHA1 857a4d2be0118a6d2d0d80388b5963a5f768341d SHA256 505be82a1a0b7f963cb49ff85ecf1fa1389a4e43621df76b91fc1529616b2299 -AUX cairo-respect-fontconfig.patch 538 RMD160 2686a46bc6fcdc1961686bdc36bfdf91c23c507e SHA1 745a4ca5d2a84714714b4ab2907a8d06d3322e1d SHA256 1732f21adfe5ab291d987b7537b13470266253f599901a4707d27fd2b3d66734 DIST cairo-1.10.2.tar.gz 23558405 RMD160 8c8de00120398fe2b3a60a08ff59a464b2eebf47 SHA1 ccce5ae03f99c505db97c286a0c9a90a926d3c6e SHA256 32018c7998358eebc2ad578ff8d8559d34fc80252095f110a572ed23d989fc41 -EBUILD cairo-1.10.2-r1.ebuild 4196 RMD160 d1e0700106fb6740f5f9c9d6162a21176a51d599 SHA1 393a3d739a59488c38db42e44c43d90b9d4ae52e SHA256 d15a22f0cf9b181547d682fd713c8d6293cbfdd003ecf8a982a01c9024a39ef5 +EBUILD cairo-1.10.2-r2.ebuild 4204 RMD160 c92634748ba9e8960f4c941f51d4981b7c03b940 SHA1 1b6c8cfa1932848309bb5cfa639a47b804d97538 SHA256 fd686a7a0f39eac0bda07560c3b1b618ce1e3be379d7f02111cb45146714b9d6 diff --git a/x11-libs/cairo/cairo-1.10.2-r1.ebuild b/x11-libs/cairo/cairo-1.10.2-r2.ebuild index 570c90a..bc33459 100644 --- a/x11-libs/cairo/cairo-1.10.2-r1.ebuild +++ b/x11-libs/cairo/cairo-1.10.2-r2.ebuild @@ -1,6 +1,6 @@ -# Copyright 1999-2011 Gentoo Foundation +# Copyright 1999-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/x11-libs/cairo/cairo-1.10.2-r1.ebuild,v 1.13 2011/07/13 09:05:48 mduft Exp $ +# $Header: /var/cvsroot/gentoo-x86/x11-libs/cairo/cairo-1.10.2-r2.ebuild,v 1.6 2012/05/05 09:21:15 maekke Exp $ EAPI=3 @@ -15,7 +15,7 @@ HOMEPAGE="http://cairographics.org/" LICENSE="|| ( LGPL-2.1 MPL-1.1 )" SLOT="0" -KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +KEYWORDS="~alpha amd64 arm ~hppa ~ia64 ~mips ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~x86-fbsd x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" IUSE="X aqua debug directfb doc drm gallium +glib opengl openvg qt4 static-libs +svg xcb" # Test causes a circular depend on gtk+... since gtk+ needs cairo but test needs gtk+ so we need to block it @@ -30,7 +30,7 @@ RDEPEND="media-libs/fontconfig glib? ( dev-libs/glib:2 ) opengl? ( virtual/opengl ) openvg? ( media-libs/mesa[gallium] ) - qt4? ( >=x11-libs/qt-gui-4.4:4 ) + qt4? ( >=x11-libs/qt-gui-4.8:4 ) svg? ( dev-libs/libxml2 ) X? ( >=x11-libs/libXrender-0.6 @@ -47,7 +47,7 @@ RDEPEND="media-libs/fontconfig x11-libs/xcb-util )" DEPEND="${RDEPEND} - dev-util/pkgconfig + virtual/pkgconfig >=sys-devel/libtool-2 doc? ( >=dev-util/gtk-doc-1.6 @@ -65,7 +65,7 @@ src_prepare() { epatch "${FILESDIR}"/${PN}-1.8.8-interix.patch epatch "${FILESDIR}"/${PN}-1.10.0-buggy_gradients.patch epatch "${FILESDIR}"/${P}-interix.patch - epatch "${FILESDIR}"/${PN}-respect-fontconfig.patch + epatch "${FILESDIR}"/${P}-qt-surface.patch # Slightly messed build system YAY if [[ ${PV} == *9999* ]]; then diff --git a/x11-libs/cairo/files/cairo-1.10.2-qt-surface.patch b/x11-libs/cairo/files/cairo-1.10.2-qt-surface.patch new file mode 100644 index 0000000..cf0b57a --- /dev/null +++ b/x11-libs/cairo/files/cairo-1.10.2-qt-surface.patch @@ -0,0 +1,55 @@ +diff -ruN cairo-1.10.2-0-vanilla/src/cairo-qt-surface.cpp cairo-1.10.2/src/cairo-qt-surface.cpp +--- cairo-1.10.2-0-vanilla/src/cairo-qt-surface.cpp 2010-12-25 15:21:34.000000000 +0100 ++++ cairo-1.10.2/src/cairo-qt-surface.cpp 2011-12-20 22:59:30.000000000 +0100 +@@ -61,7 +61,9 @@ + #include <QtGui/QX11Info> + #include <QtCore/QVarLengthArray> + +-#if (QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)) || defined(QT_GLYPHS_API_BACKPORT) ++#if (QT_VERSION >= QT_VERSION_CHECK(4, 8, 0)) ++#include <QtGui/QGlyphRun> ++#elif (QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)) || defined(QT_GLYPHS_API_BACKPORT) + extern void qt_draw_glyphs(QPainter *, const quint32 *glyphs, const QPointF *positions, int count); + #endif + +@@ -1370,7 +1372,39 @@ + cairo_clip_t *clip, + int *remaining_glyphs) + { +-#if (QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)) || defined(QT_GLYPHS_API_BACKPORT) ++#if (QT_VERSION >= QT_VERSION_CHECK(4, 8, 0)) && !defined(QT_NO_RAWFONT) ++ cairo_qt_surface_t *qs = (cairo_qt_surface_t *) abstract_surface; ++ ++ // pick out the colour to use from the cairo source ++ cairo_solid_pattern_t *solid = (cairo_solid_pattern_t*) source; ++ // documentation says you have to freeze the cache, but I don't believe it ++ _cairo_scaled_font_freeze_cache(scaled_font); ++ ++ QColor tempColour(solid->color.red * 255, solid->color.green * 255, solid->color.blue * 255); ++ QVector<QPointF> positions(num_glyphs); ++ QVector<unsigned int> glyphss(num_glyphs); ++ FT_Face face = cairo_ft_scaled_font_lock_face (scaled_font); ++ const FT_Size_Metrics& ftMetrics = face->size->metrics; ++ QFont font(face->family_name); ++ font.setStyleStrategy(QFont::NoFontMerging); ++ font.setBold(face->style_flags & FT_STYLE_FLAG_BOLD); ++ font.setItalic(face->style_flags & FT_STYLE_FLAG_ITALIC); ++ font.setKerning(face->face_flags & FT_FACE_FLAG_KERNING); ++ font.setPixelSize(ftMetrics.y_ppem); ++ cairo_ft_scaled_font_unlock_face(scaled_font); ++ qs->p->setFont(font); ++ qs->p->setPen(tempColour); ++ for (int currentGlyph = 0; currentGlyph < num_glyphs; currentGlyph++) { ++ positions.append(QPointF(glyphs[currentGlyph].x, glyphs[currentGlyph].y)); ++ glyphss.append(glyphs[currentGlyph].index); ++ } ++ QGlyphRun qglyphs; ++ qglyphs.setGlyphIndexes(glyphss); ++ qglyphs.setPositions(positions); ++ qs->p->drawGlyphRun(QPointF(), qglyphs); ++ _cairo_scaled_font_thaw_cache(scaled_font); ++ return CAIRO_INT_STATUS_SUCCESS; ++#elif (QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)) || defined(QT_GLYPHS_API_BACKPORT) + cairo_qt_surface_t *qs = (cairo_qt_surface_t *) abstract_surface; + + // pick out the colour to use from the cairo source diff --git a/x11-libs/cairo/files/cairo-1.2.4-lcd-cleartype-like.diff b/x11-libs/cairo/files/cairo-1.2.4-lcd-cleartype-like.diff deleted file mode 100644 index 2f908b8..0000000 --- a/x11-libs/cairo/files/cairo-1.2.4-lcd-cleartype-like.diff +++ /dev/null @@ -1,275 +0,0 @@ -diff -rup libcairo-1.2.4.orig/src/cairo-ft-font.c libcairo-1.2.4/src/cairo-ft-font.c ---- libcairo-1.2.4.orig/src/cairo-ft-font.c 2006-08-22 21:40:02.802247352 +0800 -+++ libcairo-1.2.4/src/cairo-ft-font.c 2006-08-22 21:40:39.443677008 +0800 -@@ -53,6 +53,8 @@ - #include FT_SYNTHESIS_H - #endif - -+#define FIR_FILTER 1 -+ - #define DOUBLE_TO_26_6(d) ((FT_F26Dot6)((d) * 64.0)) - #define DOUBLE_FROM_26_6(t) ((double)(t) / 64.0) - #define DOUBLE_TO_16_16(d) ((FT_Fixed)((d) * 65536.0)) -@@ -492,6 +494,8 @@ _cairo_ft_unscaled_font_destroy (void *a - } - } - -+static const int fir_filter[5] = { 0x1C, 0x38, 0x55, 0x38, 0x1C }; -+ - static cairo_bool_t - _has_unlocked_face (void *entry) - { -@@ -779,7 +783,220 @@ _get_bitmap_surface (FT_Bitmap *bi - } - format = CAIRO_FORMAT_A8; - break; -- case CAIRO_ANTIALIAS_SUBPIXEL: { -+ case CAIRO_ANTIALIAS_SUBPIXEL: -+#ifdef FIR_FILTER -+ { -+ unsigned char* line; -+ unsigned char* bufBitmap; -+ int pitch; -+ unsigned char *data_rgba; -+ unsigned int width_rgba, stride_rgba; -+ int vmul = 1; -+ int hmul = 1; -+ -+ switch (font_options->subpixel_order) { -+ case CAIRO_SUBPIXEL_ORDER_DEFAULT: -+ case CAIRO_SUBPIXEL_ORDER_RGB: -+ case CAIRO_SUBPIXEL_ORDER_BGR: -+ default: -+ width /= 3; -+ hmul = 3; -+ break; -+ case CAIRO_SUBPIXEL_ORDER_VRGB: -+ case CAIRO_SUBPIXEL_ORDER_VBGR: -+ vmul = 3; -+ height /= 3; -+ break; -+ } -+ /* -+ * Filter the glyph to soften the color fringes -+ */ -+ width_rgba = width; -+ stride = bitmap->pitch; -+ stride_rgba = (width_rgba * 4 + 3) & ~3; -+ data_rgba = calloc (1, stride_rgba * height); -+ -+ /* perform in-place FIR filtering in either the horizontal or -+ * vertical direction. We're going to modify the RGB graymap, -+ * but that's ok, because we either own it, or its part of -+ * the FreeType glyph slot, which will not be used anymore. -+ */ -+ pitch = bitmap->pitch; -+ line = (unsigned char*)bitmap->buffer; -+ if ( pitch < 0 ) -+ line -= pitch*(height-1); -+ -+ bufBitmap = line; -+ -+ switch (font_options->subpixel_order) { -+ case CAIRO_SUBPIXEL_ORDER_DEFAULT: -+ case CAIRO_SUBPIXEL_ORDER_RGB: -+ case CAIRO_SUBPIXEL_ORDER_BGR: -+ { -+ int h; -+ -+ for ( h = height; h > 0; h--, line += pitch ) { -+ int pix[6] = { 0, 0, 0, 0, 0, 0 }; -+ unsigned char* p = line; -+ unsigned char* limit = line + width*3; -+ int nn, val, val2; -+ -+ val = p[0]; -+ for (nn = 0; nn < 3; nn++) -+ pix[2 + nn] += val * fir_filter[nn]; -+ -+ val = p[1]; -+ for (nn = 0; nn < 4; nn++) -+ pix[1 + nn] += val * fir_filter[nn]; -+ -+ p += 2; -+ -+ for ( ; p < limit; p++ ) { -+ val = p[0]; -+ for (nn = 0; nn < 5; nn++) -+ pix[nn] += val * fir_filter[nn]; -+ -+ val2 = pix[0] / 256; -+ val2 |= -(val2 >> 8); -+ p[-2] = (unsigned char)val2; -+ -+ for (nn = 0; nn < 5; nn++) -+ pix[nn] = pix[nn + 1]; -+ } -+ for (nn = 0; nn < 2; nn++ ) { -+ val2 = pix[nn] / 256; -+ val2 |= -(val2 >> 8); -+ p[nn - 2] = (unsigned char)val2; -+ } -+ } -+ } -+ break; -+ case CAIRO_SUBPIXEL_ORDER_VRGB: -+ case CAIRO_SUBPIXEL_ORDER_VBGR: -+ { -+ int w; -+ -+ for (w = 0; w < width; w++ ) { -+ int pix[6] = { 0, 0, 0, 0, 0, 0 }; -+ unsigned char* p = bufBitmap + w; -+ unsigned char* limit = bufBitmap + w + height*3*pitch; -+ int nn, val, val2; -+ -+ val = p[0]; -+ for (nn = 0; nn < 3; nn++) -+ pix[2 + nn] += val*fir_filter[nn]; -+ -+ val = p[pitch]; -+ for (nn = 0; nn < 4; nn++ ) -+ pix[1 + nn] += val * fir_filter[nn]; -+ -+ p += 2*pitch; -+ for ( ; p < limit; p += pitch ) { -+ val = p[0]; -+ for (nn = 0; nn < 5; nn++ ) -+ pix[nn] += val * fir_filter[nn]; -+ -+ val2 = pix[0] / 256; -+ val2 |= -(val2 >> 8); -+ p[-2 * pitch] = (unsigned char)val2; -+ -+ for (nn = 0; nn < 5; nn++) -+ pix[nn] = pix[nn+1]; -+ } -+ -+ for (nn = 0; nn < 2; nn++) { -+ val2 = pix[nn] / 256; -+ val2 |= -(val2 >> 8); -+ p[(nn - 2) * pitch] = (unsigned char)val2; -+ } -+ } -+ } -+ break; -+ default: /* shouldn't happen */ -+ break; -+ } -+ -+ /* now copy the resulting graymap into an ARGB32 image */ -+ { -+ unsigned char* in_line = bufBitmap; -+ unsigned char* out_line = data_rgba; -+ int h = height; -+ -+ switch (font_options->subpixel_order) { -+ case CAIRO_SUBPIXEL_ORDER_DEFAULT: -+ case CAIRO_SUBPIXEL_ORDER_RGB: -+ for ( ; h > 0; h--, in_line += pitch, out_line += stride_rgba) { -+ unsigned char* in = in_line; -+ int* out = (int*)out_line; -+ int w; -+ -+ for (w = width; w > 0; w--, in += 3, out += 1) { -+ int r = in[0]; -+ int g = in[1]; -+ int b = in[2]; -+ -+ out[0] = (g << 24) | (r << 16) | (g << 8) | b; -+ } -+ } -+ break; -+ case CAIRO_SUBPIXEL_ORDER_BGR: -+ for ( ; h > 0; h--, in_line += pitch, out_line += stride_rgba) { -+ unsigned char* in = in_line; -+ int* out = (int*)out_line; -+ int w; -+ -+ for (w = width; w > 0; w--, in += 3, out += 1) { -+ int r = in[2]; -+ int g = in[1]; -+ int b = in[0]; -+ -+ out[0] = (g << 24) | (r << 16) | (g << 8) | b; -+ } -+ } -+ break; -+ case CAIRO_SUBPIXEL_ORDER_VRGB: -+ for ( ; h > 0; h--, in_line += pitch*3, out_line += stride_rgba) { -+ unsigned char* in = in_line; -+ int* out = (int*)out_line; -+ int w; -+ -+ for (w = width; w > 0; w--, in += 1, out += 1) { -+ int r = in[0]; -+ int g = in[pitch]; -+ int b = in[pitch*2]; -+ -+ out[0] = (g << 24) | (r << 16) | (g << 8) | b; -+ } -+ } -+ break; -+ case CAIRO_SUBPIXEL_ORDER_VBGR: -+ for ( ; h > 0; h--, in_line += pitch*3, out_line += stride_rgba) { -+ unsigned char* in = in_line; -+ int* out = (int*)out_line; -+ int w; -+ -+ for (w = width; w > 0; w--, in += 1, out += 1) { -+ int r = in[2*pitch]; -+ int g = in[pitch]; -+ int b = in[0]; -+ -+ out[0] = (g << 24) | (r << 16) | (g << 8) | b; -+ } -+ } -+ break; -+ } -+ } -+ -+ if (own_buffer) -+ free (bitmap->buffer); -+ data = data_rgba; -+ stride = stride_rgba; -+ format = CAIRO_FORMAT_ARGB32; -+ subpixel = TRUE; -+ break; -+ } -+#else /* !FIR_FILTER */ -+ { - int x, y; - unsigned char *in_line, *out_line, *in; - unsigned int *out; -@@ -871,6 +1088,7 @@ _get_bitmap_surface (FT_Bitmap *bi - subpixel = TRUE; - break; - } -+#endif /* !FIR_FILTER */ - } - break; - case FT_PIXEL_MODE_GRAY2: -@@ -986,12 +1204,22 @@ _render_glyph_outline (FT_Face - matrix.xx *= 3; - hmul = 3; - subpixel = TRUE; -+#ifdef FIR_FILTER -+ cbox.xMin -= 64; -+ cbox.xMax += 64; -+ width += 2; -+#endif - break; - case CAIRO_SUBPIXEL_ORDER_VRGB: - case CAIRO_SUBPIXEL_ORDER_VBGR: - matrix.yy *= 3; - vmul = 3; - subpixel = TRUE; -+#ifdef FIR_FILTER -+ cbox.yMin -= 64; -+ cbox.yMax += 64; -+ height += 2; -+#endif - break; - } - FT_Outline_Transform (outline, &matrix); -Only in libcairo-1.2.4/src: cairo-ft-font.c.orig diff --git a/x11-libs/cairo/files/cairo-1.8.10-libpng14.patch b/x11-libs/cairo/files/cairo-1.8.10-libpng14.patch deleted file mode 100644 index 1872367..0000000 --- a/x11-libs/cairo/files/cairo-1.8.10-libpng14.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- configure.ac -+++ configure.ac -@@ -161,7 +161,7 @@ - AC_ARG_VAR([png_REQUIRES], [module name for libpng to search for using pkg-config]) - if test "x$png_REQUIRES" = x; then - # libpng13 is GnuWin32's libpng-1.2.8 :-( -- for l in libpng12 libpng13 libpng10 libpng; do -+ for l in libpng14 libpng12 libpng13 libpng10 libpng; do - if $PKG_CONFIG --exists $l ; then - png_REQUIRES=$l - use_png=yes diff --git a/x11-libs/cairo/files/cairo-respect-fontconfig.patch b/x11-libs/cairo/files/cairo-respect-fontconfig.patch deleted file mode 100644 index b0a1b29..0000000 --- a/x11-libs/cairo/files/cairo-respect-fontconfig.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- cairo-1.7.6-orig/src/cairo-ft-font.c 2008-09-29 21:43:13.000000000 +0100 -+++ cairo-1.7.6/src/cairo-ft-font.c 2008-09-29 21:52:19.000000000 +0100 -@@ -1705,7 +1705,9 @@ - options->base.subpixel_order = other->base.subpixel_order; - } - -- if (options->base.hint_style == CAIRO_HINT_STYLE_DEFAULT) -+ options->base.hint_style = CAIRO_HINT_STYLE_DEFAULT; -+ -+ if (other->base.hint_style != CAIRO_HINT_STYLE_DEFAULT) - options->base.hint_style = other->base.hint_style; - - if (other->base.hint_style == CAIRO_HINT_STYLE_NONE) |