summaryrefslogtreecommitdiff
path: root/x11-libs/cairo/files
diff options
context:
space:
mode:
authorRené Neumann <rene.neumann@in.tum.de>2012-05-07 11:03:50 +0200
committerRené Neumann <rene.neumann@in.tum.de>2012-05-07 11:03:50 +0200
commitfdf205a0d9e84275bc74cdd2ba8dd65dfb7bb343 (patch)
treed7399d51fd6bc54ef74bf350a2ddeb9f965709a6 /x11-libs/cairo/files
parent04229674316b171286b42c59a29a3661ce4d08ab (diff)
downloadoverlay-fdf205a0d9e84275bc74cdd2ba8dd65dfb7bb343.tar.gz
overlay-fdf205a0d9e84275bc74cdd2ba8dd65dfb7bb343.tar.bz2
overlay-fdf205a0d9e84275bc74cdd2ba8dd65dfb7bb343.zip
Cairo from portage tree
Diffstat (limited to '')
-rw-r--r--x11-libs/cairo/files/cairo-1.10.2-qt-surface.patch55
-rw-r--r--x11-libs/cairo/files/cairo-1.2.4-lcd-cleartype-like.diff275
-rw-r--r--x11-libs/cairo/files/cairo-1.8.10-libpng14.patch11
-rw-r--r--x11-libs/cairo/files/cairo-respect-fontconfig.patch13
4 files changed, 55 insertions, 299 deletions
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)