summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--graphics/cairo/Makefile5
-rw-r--r--graphics/cairo/PLIST4
-rw-r--r--graphics/cairo/distinfo15
-rw-r--r--graphics/cairo/patches/patch-aa10
-rw-r--r--graphics/cairo/patches/patch-ab14
-rw-r--r--graphics/cairo/patches/patch-ac33
-rw-r--r--graphics/cairo/patches/patch-ae128
7 files changed, 87 insertions, 122 deletions
diff --git a/graphics/cairo/Makefile b/graphics/cairo/Makefile
index 0ec4a4c1144..f1ef38f8dff 100644
--- a/graphics/cairo/Makefile
+++ b/graphics/cairo/Makefile
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.54 2007/03/29 12:00:44 dmcmahill Exp $
+# $NetBSD: Makefile,v 1.55 2007/06/08 07:20:52 wiz Exp $
-DISTNAME= cairo-1.4.2
-PKGREVISION= 1
+DISTNAME= cairo-1.4.6
CATEGORIES= graphics
MASTER_SITES= http://cairographics.org/releases/
diff --git a/graphics/cairo/PLIST b/graphics/cairo/PLIST
index 4787a249d96..0e0063aa2ed 100644
--- a/graphics/cairo/PLIST
+++ b/graphics/cairo/PLIST
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.15 2007/03/20 15:29:18 drochner Exp $
+@comment $NetBSD: PLIST,v 1.16 2007/06/08 07:20:53 wiz Exp $
${CARBON}include/cairo/cairo-atsui.h
include/cairo/cairo-deprecated.h
include/cairo/cairo-features.h
@@ -36,7 +36,7 @@ share/gtk-doc/html/cairo/bindings-patterns.html
share/gtk-doc/html/cairo/bindings-return-values.html
share/gtk-doc/html/cairo/bindings-streams.html
share/gtk-doc/html/cairo/bindings-surfaces.html
-share/gtk-doc/html/cairo/cairo-Error-handling.html
+share/gtk-doc/html/cairo/cairo-Error-Handling.html
share/gtk-doc/html/cairo/cairo-Font-Options.html
share/gtk-doc/html/cairo/cairo-FreeType-Fonts.html
share/gtk-doc/html/cairo/cairo-Image-Surfaces.html
diff --git a/graphics/cairo/distinfo b/graphics/cairo/distinfo
index aaa373c9206..d4d24679e0d 100644
--- a/graphics/cairo/distinfo
+++ b/graphics/cairo/distinfo
@@ -1,9 +1,8 @@
-$NetBSD: distinfo,v 1.33 2007/04/05 13:12:07 drochner Exp $
+$NetBSD: distinfo,v 1.34 2007/06/08 07:20:53 wiz Exp $
-SHA1 (cairo-1.4.2.tar.gz) = 9e7a323fc7d81d5011044d7eb22db3bf26ff7314
-RMD160 (cairo-1.4.2.tar.gz) = 53ad2e60507e181cb754991c1fe8f8de47f366a3
-Size (cairo-1.4.2.tar.gz) = 3081092 bytes
-SHA1 (patch-aa) = a5bcc788ba51b1943b6f37678437491a46a7b45c
-SHA1 (patch-ab) = 02ab6fef56431729db98691e9ed9c879c625f016
-SHA1 (patch-ac) = fc4a279c4a76fa66dc64718d152621b2e7a2e63c
-SHA1 (patch-ae) = 55c4c5992059e96c96ac022028fe9fed811909fa
+SHA1 (cairo-1.4.6.tar.gz) = bfd1532e10789fc4f87a196540c049d88c6ece42
+RMD160 (cairo-1.4.6.tar.gz) = 144ba5422c414070ceb691dcd59fa887f82697b1
+Size (cairo-1.4.6.tar.gz) = 3181592 bytes
+SHA1 (patch-aa) = 79c04674fde56522e1f09e5896fcef4c6b6a0d36
+SHA1 (patch-ab) = 45e59cffeade4019b860e1e2e93a9b264324e961
+SHA1 (patch-ae) = 42d23551af85adcbb9645f26dbdee7f8b9d72fa9
diff --git a/graphics/cairo/patches/patch-aa b/graphics/cairo/patches/patch-aa
index c068f5f888e..52e3b00e7ba 100644
--- a/graphics/cairo/patches/patch-aa
+++ b/graphics/cairo/patches/patch-aa
@@ -1,8 +1,8 @@
-$NetBSD: patch-aa,v 1.9 2007/03/20 15:29:18 drochner Exp $
+$NetBSD: patch-aa,v 1.10 2007/06/08 07:20:53 wiz Exp $
---- src/Makefile.in.orig 2007-03-06 09:21:16.000000000 +0000
+--- src/Makefile.in.orig 2007-05-01 20:25:14.000000000 +0000
+++ src/Makefile.in
-@@ -235,7 +235,7 @@ CAIRO_CAN_TEST_PDF_SURFACE_FALSE = @CAIR
+@@ -244,7 +244,7 @@ CAIRO_CAN_TEST_PDF_SURFACE_FALSE = @CAIR
CAIRO_CAN_TEST_PDF_SURFACE_TRUE = @CAIRO_CAN_TEST_PDF_SURFACE_TRUE@
CAIRO_CAN_TEST_SVG_SURFACE_FALSE = @CAIRO_CAN_TEST_SVG_SURFACE_FALSE@
CAIRO_CAN_TEST_SVG_SURFACE_TRUE = @CAIRO_CAN_TEST_SVG_SURFACE_TRUE@
@@ -11,10 +11,10 @@ $NetBSD: patch-aa,v 1.9 2007/03/20 15:29:18 drochner Exp $
CAIRO_HAS_ATSUI_FONT_FALSE = @CAIRO_HAS_ATSUI_FONT_FALSE@
CAIRO_HAS_ATSUI_FONT_TRUE = @CAIRO_HAS_ATSUI_FONT_TRUE@
CAIRO_HAS_BEOS_SURFACE_FALSE = @CAIRO_HAS_BEOS_SURFACE_FALSE@
-@@ -272,7 +272,7 @@ CAIRO_HAS_XLIB_SURFACE_FALSE = @CAIRO_HA
- CAIRO_HAS_XLIB_SURFACE_TRUE = @CAIRO_HAS_XLIB_SURFACE_TRUE@
+@@ -282,7 +282,7 @@ CAIRO_HAS_XLIB_SURFACE_TRUE = @CAIRO_HAS
CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE = @CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE@
CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE = @CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@
+ CAIRO_LDADD = @CAIRO_LDADD@
-CAIRO_LIBS = @CAIRO_LIBS@
+CAIRO_LIBS = @CAIRO_LIBS@ ${PTHREAD_LDFLAGS} ${PTHREAD_LIBS}
CAIRO_NONPKGCONFIG_CFLAGS = @CAIRO_NONPKGCONFIG_CFLAGS@
diff --git a/graphics/cairo/patches/patch-ab b/graphics/cairo/patches/patch-ab
index bc3fa54375c..c5bfaed2708 100644
--- a/graphics/cairo/patches/patch-ab
+++ b/graphics/cairo/patches/patch-ab
@@ -1,13 +1,13 @@
-$NetBSD: patch-ab,v 1.6 2007/03/20 15:29:18 drochner Exp $
+$NetBSD: patch-ab,v 1.7 2007/06/08 07:20:53 wiz Exp $
---- test/Makefile.in.orig 2007-03-06 09:21:17.000000000 +0000
+--- test/Makefile.in.orig 2007-05-01 20:25:15.000000000 +0000
+++ test/Makefile.in
-@@ -50,7 +50,7 @@ host_triplet = @host@
- @CAIRO_HAS_XLIB_SURFACE_TRUE@am__append_6 = xlib-surface
- @CAIRO_HAS_MULTI_PAGE_SURFACES_TRUE@am__append_7 = multi-page
+@@ -52,7 +52,7 @@ host_triplet = @host@
@CAIRO_HAS_PDF_SURFACE_TRUE@@CAIRO_HAS_PS_SURFACE_TRUE@@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_8 = fallback-resolution
+ EXTRA_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_11) \
+ $(am__EXEEXT_12) $(am__EXEEXT_15)
-@HAVE_PTHREAD_TRUE@am__append_9 = -lpthread
+@HAVE_PTHREAD_TRUE@am__append_9 = ${PTHREAD_LDFLAGS} ${PTHREAD_LIBS}
@CAIRO_CAN_TEST_PDF_SURFACE_TRUE@am__append_10 = pdf2png$(EXEEXT)
- @CAIRO_CAN_TEST_SVG_SURFACE_TRUE@am__append_11 = svg2png$(EXEEXT)
- EXTRA_PROGRAMS = $(am__EXEEXT_9) $(am__EXEEXT_12)
+ @CAIRO_CAN_TEST_PDF_SURFACE_TRUE@@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_11 = pdf2svg$(EXEEXT)
+ @CAIRO_CAN_TEST_SVG_SURFACE_TRUE@am__append_12 = svg2png$(EXEEXT)
diff --git a/graphics/cairo/patches/patch-ac b/graphics/cairo/patches/patch-ac
deleted file mode 100644
index a4c71569fde..00000000000
--- a/graphics/cairo/patches/patch-ac
+++ /dev/null
@@ -1,33 +0,0 @@
-$NetBSD: patch-ac,v 1.6 2007/04/05 13:12:07 drochner Exp $
-
-See https://bugs.freedesktop.org/show_bug.cgi?id=10441
-Instead of the patch there which relies on things like __hpux__
-we use the configure test results.
-
---- test/pdiff/pdiff.c.orig 2007-03-19 21:08:04.000000000 +0100
-+++ test/pdiff/pdiff.c
-@@ -20,7 +20,23 @@
- #include <math.h>
- #include <stdio.h>
- #include <stdlib.h>
--#include <stdint.h>
-+
-+#if HAVE_CONFIG_H
-+#include "config.h"
-+#endif
-+
-+#ifdef HAVE_STDINT_H
-+# include <stdint.h>
-+#else
-+# ifdef HAVE_INTTYPES_H
-+# include <inttypes.h>
-+# else
-+# ifdef HAVE_SYS_INT_TYPES_H
-+# include <sys/int_types.h>
-+# endif
-+# endif
-+#endif
-+
- #include "pdiff.h"
-
- #ifndef M_PI
diff --git a/graphics/cairo/patches/patch-ae b/graphics/cairo/patches/patch-ae
index 18cdf7d1a79..6f61050e321 100644
--- a/graphics/cairo/patches/patch-ae
+++ b/graphics/cairo/patches/patch-ae
@@ -1,40 +1,40 @@
-$NetBSD: patch-ae,v 1.6 2007/03/20 15:29:22 drochner Exp $
+$NetBSD: patch-ae,v 1.7 2007/06/08 07:20:53 wiz Exp $
Fixes cairo on 8-bit pseudo color and other 8-bit displays.
See https://bugs.freedesktop.org/show_bug.cgi?id=4945
---- src/cairo-xlib-surface.c.orig 2007-03-02 01:04:59.000000000 +0000
-+++ src/cairo-xlib-surface.c
-@@ -82,6 +82,8 @@ _cairo_xlib_surface_show_glyphs (void
+--- src/cairo-xlib-surface-private.h-orig 2007-05-02 14:43:14.184165000 +0800
++++ src/cairo-xlib-surface-private.h 2007-05-02 14:50:38.143706000 +0800
+@@ -39,6 +39,14 @@
- #define CAIRO_ASSUME_PIXMAP 20
+ typedef struct _cairo_xlib_surface cairo_xlib_surface_t;
-+struct clut_r3g3b2;
++struct clut_r3g3b2 {
++ struct clut_r3g3b2 *next;
++ Display *dpy;
++ Colormap cmap;
++ uint32_t clut[256];
++ unsigned char ilut[256];
++};
+
struct _cairo_xlib_surface {
cairo_surface_t base;
-@@ -127,6 +129,8 @@ struct _cairo_xlib_surface {
- int num_clip_rects;
-
- XRenderPictFormat *xrender_format;
+@@ -88,6 +96,8 @@ struct _cairo_xlib_surface {
+ cairo_filter_t filter;
+ int repeat;
+ XTransform xtransform;
+
+ struct clut_r3g3b2 *clut;
};
- #define CAIRO_SURFACE_RENDER_AT_LEAST(surface, major, minor) \
-@@ -503,6 +507,82 @@ _swap_ximage_to_native (XImage *ximage)
+ #endif /* CAIRO_XLIB_SURFACE_PRIVATE_H */
+--- src/cairo-xlib-surface.c-orig 2007-05-02 14:55:09.281677000 +0800
++++ src/cairo-xlib-surface.c 2007-05-02 14:53:31.401179000 +0800
+@@ -446,6 +446,74 @@ _swap_ximage_to_native (XImage *ximage)
}
}
-+struct clut_r3g3b2 {
-+ struct clut_r3g3b2 *next;
-+ Display *dpy;
-+ Colormap cmap;
-+ uint32_t clut[256];
-+ unsigned char ilut[256];
-+};
-+
+static struct clut_r3g3b2 * _get_clut_r3g3b2(Display *dpy, Colormap cmap) {
+ static struct clut_r3g3b2 *first = NULL;
+ int i,j, min, d;
@@ -106,12 +106,11 @@ See https://bugs.freedesktop.org/show_bug.cgi?id=4945
static cairo_status_t
_get_image_surface (cairo_xlib_surface_t *surface,
cairo_rectangle_int16_t *interest_rect,
-@@ -656,6 +736,35 @@ _get_image_surface (cairo_xlib_surface_t
+@@ -607,6 +675,36 @@ _get_image_surface (cairo_xlib_surface_t
}
else
{
-+
-+ if(surface->clut != NULL) {
++ if (surface->clut != NULL) {
+
+ /*
+ * Otherwise, we construct a buffer containing RGB24 data
@@ -122,7 +121,7 @@ See https://bugs.freedesktop.org/show_bug.cgi?id=4945
+ int i,j;
+
+ data = (uint32_t*)malloc(ximage->height * ximage->width * 4);
-+ if(data == NULL) {
++ if (data == NULL) {
+ printf("Cannot allocate RGB buffer\n");
+ goto FAIL;
+ }
@@ -130,19 +129,21 @@ See https://bugs.freedesktop.org/show_bug.cgi?id=4945
+ clut = surface->clut->clut;
+ src8 = (uint8_t*) ximage->data;
+ dst = data;
-+ for(j = 0; j < ximage->height; j++) {
-+ for(i = 0; i < ximage->width; i++)
++ for (j = 0; j < ximage->height; j++) {
++ for (i = 0; i < ximage->width; i++)
+ *dst++ = clut[src8[i]];
+ src8 += ximage->bytes_per_line;
+ }
+ free(ximage->data);
+ image = (cairo_image_surface_t*)
-+ cairo_image_surface_create_for_data((unsigned char *)data, CAIRO_FORMAT_RGB24, ximage->width, ximage->height, ximage->width*4);
++ cairo_image_surface_create_for_data ((unsigned char *)data,
++ CAIRO_FORMAT_RGB24, ximage->width, ximage->height,
++ ximage->width*4);
+ } else {
/*
* XXX This can't work. We must convert the data to one of the
* supported pixman formats. Pixman needs another function
-@@ -668,6 +777,8 @@ _get_image_surface (cairo_xlib_surface_t
+@@ -619,6 +717,8 @@ _get_image_surface (cairo_xlib_surface_t
ximage->width,
ximage->height,
ximage->bytes_per_line);
@@ -151,11 +152,10 @@ See https://bugs.freedesktop.org/show_bug.cgi?id=4945
if (image->base.status)
goto FAIL;
}
-@@ -742,6 +853,32 @@ _cairo_xlib_surface_ensure_gc (cairo_xli
- _cairo_xlib_surface_set_gc_clip_rects (surface);
+@@ -698,6 +798,31 @@ _cairo_xlib_surface_ensure_gc (cairo_xli
+ return CAIRO_STATUS_SUCCESS;
}
-+
+static int
+_make_space_for(unsigned char ** buf, int *size, int *stride, int width, int height, int Bpp)
+{
@@ -184,48 +184,48 @@ See https://bugs.freedesktop.org/show_bug.cgi?id=4945
static cairo_status_t
_draw_image_surface (cairo_xlib_surface_t *surface,
cairo_image_surface_t *image,
-@@ -754,21 +891,54 @@ _draw_image_surface (cairo_xlib_surface_
+@@ -710,22 +835,54 @@ _draw_image_surface (cairo_xlib_surface_
{
XImage ximage;
unsigned int bpp, alpha, red, green, blue;
+ unsigned int depth = image->depth;
+ unsigned int stride = image->stride;
int native_byte_order = _native_byte_order_lsb () ? LSBFirst : MSBFirst;
+ cairo_status_t status;
pixman_format_get_masks (pixman_image_get_format (image->pixman_image),
&bpp, &alpha, &red, &green, &blue);
++ if (surface->clut != NULL) {
++ static unsigned char *buf = NULL;
++ static int size = 0;
++ int i, j;
++ unsigned char *data, *ilut;
++ uint32_t *src;
++ uint8_t *dst8;
+
-+ if(surface->clut != NULL) {
-+ static unsigned char *buf = NULL;
-+ static int size = 0;
-+ int i, j;
-+ unsigned char *data, *ilut;
-+ uint32_t *src;
-+ uint8_t *dst8;
-+
-+ if (_make_space_for(&buf, &size, &stride, image->width, image->height, 1))
++ if (_make_space_for(&buf, &size, &stride, image->width, image->height, 1))
+ return CAIRO_STATUS_NO_MEMORY;
-+ data = buf;
-+ src = (uint32_t*)image->data;
-+ ilut = surface->clut->ilut;
-+ for(j=0;j<image->height;j++) {
++ data = buf;
++ src = (uint32_t*)image->data;
++ ilut = surface->clut->ilut;
++ for (j=0;j<image->height;j++) {
+ dst8 = data + j * stride;
-+ for(i=0;i<image->width;i++) {
-+ dst8[i] = ilut[ ((*src >> 16) & 0xe0) |
-+ ((*src >> 11) & 0x1c) |
-+ ((*src >> 6) & 0x03) ];
-+ src++;
++ for (i=0;i<image->width;i++) {
++ dst8[i] = ilut[ ((*src >> 16) & 0xe0) |
++ ((*src >> 11) & 0x1c) |
++ ((*src >> 6) & 0x03) ];
++ src++;
+ }
-+ }
-+ alpha = red = green = blue = 0;
-+ depth = bpp = 8;
-+ ximage.data = data;
++ }
++ alpha = red = green = blue = 0;
++ depth = bpp = 8;
++ ximage.data = data;
+
+ } else {
-+ ximage.data = (char *)image->data;
++ ximage.data = (char *)image->data;
+ }
-+
++
ximage.width = image->width;
ximage.height = image->height;
ximage.format = ZPixmap;
@@ -242,17 +242,17 @@ See https://bugs.freedesktop.org/show_bug.cgi?id=4945
ximage.bits_per_pixel = bpp;
ximage.red_mask = red;
ximage.green_mask = green;
-@@ -1899,7 +2069,13 @@ _cairo_xlib_surface_create_internal (Dis
+@@ -1885,6 +2042,13 @@ _cairo_xlib_surface_create_internal (Dis
surface->have_clip_rects = FALSE;
- surface->clip_rects = NULL;
+ surface->clip_rects = surface->embedded_clip_rects;
surface->num_clip_rects = 0;
+ surface->clut = NULL;
-
-+ if (xrender_format == NULL &&
-+ (visual->class == PseudoColor || visual->class == StaticColor)) {
-+ surface->clut = _get_clut_r3g3b2(dpy,
-+ DefaultColormapOfScreen(surface->screen));
++
++ if (xrender_format == NULL &&
++ (visual->class == PseudoColor || visual->class == StaticColor)) {
++ surface->clut = _get_clut_r3g3b2(dpy,
++ DefaultColormapOfScreen(surface->screen));
+ }
+
return (cairo_surface_t *) surface;
}
-