On Sun, Aug 12, 2012 at 04:28:49PM -0400, Brad Smith wrote:
> On Thu, Aug 09, 2012 at 02:41:12AM -0400, Brad Smith wrote:
> > On Wed, Aug 08, 2012 at 04:37:43PM +0200, Eric Faurot wrote:
> > > Hi.
> > > 
> > > This diff updates cairo to 1.12.2 and integrates a bugfix. There is
> > > a known text display problem on some radeon chipsets which is fixed
> > > in an upcoming update of the ati driver.
> > > 
> > > Eric.
> > 
> > Some of the patches can be removed, CONFIGURE_ARGS options removed
> > and I resorted the WANTLIBS. I also updated the DESCR as the feature
> > set has changed a bit since the initial revision of DESCR.
> > 
> > This update could also expose bugs with other DDX drivers but
> > especially the Intel driver.
> 
> An update diff. Gets rid of some files not necessary for the
> modules.
> 
> 
> Index: Makefile
> ===================================================================
> RCS file: /home/cvs/ports/graphics/cairo/Makefile,v
> retrieving revision 1.37
> diff -u -p -r1.37 Makefile
> --- Makefile  1 Nov 2011 20:30:49 -0000       1.37
> +++ Makefile  12 Aug 2012 14:30:58 -0000
> @@ -2,22 +2,22 @@
>  
>  COMMENT=             vector graphics library
>  
> -DISTNAME=            cairo-1.10.2
> -REVISION=            3
> -SHARED_LIBS=         cairo 11.1
> -SHARED_LIBS+=                cairo-trace 0.0
> -SHARED_LIBS+=                cairo-gobject 0.0
> -SHARED_LIBS+=                cairo-script-interpreter 0.0
> +DISTNAME=            cairo-1.12.2
> +SHARED_LIBS+=                cairo 12.0
> +SHARED_LIBS+=                cairo-trace 1.0
> +SHARED_LIBS+=                cairo-gobject 1.0
> +SHARED_LIBS+=                cairo-script-interpreter 1.0
>  CATEGORIES=          graphics
> +EXTRACT_SUFX=                .tar.xz
>  
> -HOMEPAGE=            http://cairographics.org/introduction
> +HOMEPAGE=            http://cairographics.org/
>  
>  MAINTAINER=          Eric Faurot <e...@openbsd.org>
>  
>  WANTLIB=             GL X11 Xau Xdamage Xdmcp Xext Xfixes Xrender \
> -                     Xxf86vm drm expat fontconfig freetype glib-2.0 \
> +                     Xxf86vm drm expat ffi fontconfig freetype glib-2.0 \
>                       gobject-2.0 gthread-2.0 m pcre pixman-1 png \
> -                     pthread-stubs xcb xcb-render xcb-shm z ffi stdc++
> +                     pthread-stubs stdc++ xcb xcb-render xcb-shm z
>  
>  # LGPLv2.1 / MPL 1.1
>  PERMIT_PACKAGE_CDROM=        Yes
> @@ -39,15 +39,12 @@ CONFIGURE_STYLE=  gnu
>  CONFIGURE_ENV=               PTHREAD_LIBS="-pthread"
>  CONFIGURE_ARGS=              --enable-gl \
>                       --enable-tee \
> -                     --enable-xml \
> -                     --enable-xcb
> +                     --enable-xml
>  
>  REGRESS_DEPENDS=     print/ghostscript/gnu
>  
> -.include <bsd.port.mk>
> +post-install:
> +     @rm ${PREFIX}/lib/cairo/*.a
> +     @rm ${PREFIX}/lib/cairo/*.la

I don't think this is right.
We usually do this for modules, but here we also have a shared library in this 
path.

lib/cairo/libcairo-trace.so.${LIBcairo-trace_VERSION}

>  
> -.for i in ${GCC2_ARCHS}
> -. if ${MACHINE_ARCH} == $i
> -PATCH_LIST=  patch-* gcc2-patch-*
> -. endif
> -.endfor
> +.include <bsd.port.mk>
> Index: distinfo
> ===================================================================
> RCS file: /home/cvs/ports/graphics/cairo/distinfo,v
> retrieving revision 1.18
> diff -u -p -r1.18 distinfo
> --- distinfo  5 Jan 2011 13:26:05 -0000       1.18
> +++ distinfo  9 Aug 2012 06:18:05 -0000
> @@ -1,5 +1,2 @@
> -MD5 (cairo-1.10.2.tar.gz) = 8QGp6It4MzeyCy4m39JtXw==
> -RMD160 (cairo-1.10.2.tar.gz) = jI3gASA5j+KzpgoI/1mkZLLuv0c=
> -SHA1 (cairo-1.10.2.tar.gz) = zM5a4D+ZxQXbl8KGoMmpCpJtPG4=
> -SHA256 (cairo-1.10.2.tar.gz) = MgGMeZg1juvCrVeP+NhVnTT8gCUglfEQpXLtI9mJ/EE=
> -SIZE (cairo-1.10.2.tar.gz) = 23558405
> +SHA256 (cairo-1.12.2.tar.xz) = t4a8SnBUK8sJ8tnRPl5qDIZAjL9tHt3l8N6Afuz5P5Y=
> +SIZE (cairo-1.12.2.tar.xz) = 42051584
> Index: patches/gcc2-patch-src_cairo-gl-private_h
> ===================================================================
> RCS file: patches/gcc2-patch-src_cairo-gl-private_h
> diff -N patches/gcc2-patch-src_cairo-gl-private_h
> --- patches/gcc2-patch-src_cairo-gl-private_h 5 Jan 2011 13:26:05 -0000       
> 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,21 +0,0 @@
> -remove unnamed union to please gcc-2.95
> -
> -$OpenBSD: gcc2-patch-src_cairo-gl-private_h,v 1.1 2011/01/05 13:26:05 eric 
> Exp $
> ---- src/cairo-gl-private.h.orig      Mon Jan  3 12:23:14 2011
> -+++ src/cairo-gl-private.h   Mon Jan  3 12:23:40 2011
> -@@ -142,7 +142,6 @@ typedef enum cairo_gl_var_type {
> -  */
> - typedef struct cairo_gl_operand {
> -     cairo_gl_operand_type_t type;
> --    union {
> -     struct {
> -         GLuint tex;
> -         cairo_gl_surface_t *surface;
> -@@ -167,7 +166,6 @@ typedef struct cairo_gl_operand {
> -         float radius_1;
> -             cairo_extend_t extend;
> -     } radial;
> --    };
> -     unsigned int vertex_offset;
> - } cairo_gl_operand_t;
> - 
> Index: patches/patch-configure
> ===================================================================
> RCS file: /home/cvs/ports/graphics/cairo/patches/patch-configure,v
> retrieving revision 1.9
> diff -u -p -r1.9 patch-configure
> --- patches/patch-configure   28 Jun 2011 11:04:40 -0000      1.9
> +++ patches/patch-configure   6 Aug 2012 04:32:04 -0000
> @@ -3,9 +3,9 @@ $OpenBSD: patch-configure,v 1.9 2011/06/
>  Use `Requires', not `Requires.private', because otherwise libraries
>  required for linking aren't exposed.
>  
> ---- configure.orig   Sat Dec 25 15:22:57 2010
> -+++ configure        Tue Jun 28 12:27:44 2011
> -@@ -16983,10 +16983,7 @@ if test "x$PKG_CONFIG" = x; then
> +--- configure.orig   Sun Apr 29 14:49:59 2012
> ++++ configure        Mon Aug  6 00:31:32 2012
> +@@ -17696,10 +17696,7 @@ if test "x$PKG_CONFIG" = x; then
>       as_fn_error $? "pkg-config >= $PKGCONFIG_REQUIRED required but not 
> found (http://pkgconfig.freedesktop.org/)" "$LINENO" 5
>   fi
>   
> Index: patches/patch-src_Makefile_in
> ===================================================================
> RCS file: patches/patch-src_Makefile_in
> diff -N patches/patch-src_Makefile_in
> --- patches/patch-src_Makefile_in     5 Jan 2011 13:26:05 -0000       1.6
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,12 +0,0 @@
> -$OpenBSD: patch-src_Makefile_in,v 1.6 2011/01/05 13:26:05 eric Exp $
> ---- src/Makefile.in.orig     Sat Dec 25 15:22:52 2010
> -+++ src/Makefile.in  Mon Dec 27 10:07:21 2010
> -@@ -2429,7 +2429,7 @@ cairo.def: cairo-features.h $(enabled_cairo_headers)
> -     ) >$@
> -     @ ! grep -q cairo_ERROR $@ || ($(RM) $@; false)
> - 
> --check: headers-standalone
> -+check:
> - 
> - # The pre-processed result is used by check-{def,plt}.sh to determine 
> whether
> - # cairo has been compiled with symbol hiding.
> Index: patches/patch-src_cairo-polygon-reduce_c
> ===================================================================
> RCS file: patches/patch-src_cairo-polygon-reduce_c
> diff -N patches/patch-src_cairo-polygon-reduce_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_cairo-polygon-reduce_c  9 Aug 2012 02:56:26 -0000
> @@ -0,0 +1,265 @@
> +polygon-reduce: Reduce broken stopped-edge continuation
> +
> +This is hopefully a lesser used path and the attempted optimisation to
> +continue a stopped edge with a colinear stopped edge highly unlikely and
> +lost in the noise of the general inefficiency of the routine. As it was
> +broken, rather than attempt to rectify the "optimisation" remove it.
> +
> +$OpenBSD$
> +--- src/cairo-polygon-reduce.c.orig  Thu Apr 19 14:17:58 2012
> ++++ src/cairo-polygon-reduce.c       Sun Aug  5 10:17:23 2012
> +@@ -42,6 +42,8 @@
> + #include "cairo-freelist-private.h"
> + #include "cairo-combsort-inline.h"
> + 
> ++#define DEBUG_POLYGON 0
> ++
> + typedef cairo_point_t cairo_bo_point32_t;
> + 
> + typedef struct _cairo_bo_intersect_ordinate {
> +@@ -114,7 +116,6 @@ typedef struct _cairo_bo_event_queue {
> + 
> + typedef struct _cairo_bo_sweep_line {
> +     cairo_bo_edge_t *head;
> +-    cairo_bo_edge_t *stopped;
> +     int32_t current_y;
> +     cairo_bo_edge_t *current_edge;
> + } cairo_bo_sweep_line_t;
> +@@ -476,8 +477,8 @@ edges_compare_x_for_y (const cairo_bo_edge_t *a,
> + static inline int
> + _line_equal (const cairo_line_t *a, const cairo_line_t *b)
> + {
> +-    return a->p1.x == b->p1.x && a->p1.y == b->p1.y &&
> +-           a->p2.x == b->p2.x && a->p2.y == b->p2.y;
> ++    return (a->p1.x == b->p1.x && a->p1.y == b->p1.y &&
> ++        a->p2.x == b->p2.x && a->p2.y == b->p2.y);
> + }
> + 
> + static int
> +@@ -1024,7 +1025,6 @@ static void
> + _cairo_bo_sweep_line_init (cairo_bo_sweep_line_t *sweep_line)
> + {
> +     sweep_line->head = NULL;
> +-    sweep_line->stopped = NULL;
> +     sweep_line->current_y = INT32_MIN;
> +     sweep_line->current_edge = NULL;
> + }
> +@@ -1139,6 +1139,8 @@ edges_colinear (const cairo_bo_edge_t *a, const cairo_
> +      */
> +     if (a->edge.line.p1.y == b->edge.line.p1.y) {
> +     return a->edge.line.p1.x == b->edge.line.p1.x;
> ++    } else if (a->edge.line.p2.y == b->edge.line.p2.y) {
> ++    return a->edge.line.p2.x == b->edge.line.p2.x;
> +     } else if (a->edge.line.p1.y < b->edge.line.p1.y) {
> +     return edge_compare_for_y_against_x (b,
> +                                          a->edge.line.p1.y,
> +@@ -1205,82 +1207,48 @@ _active_edges_to_polygon (cairo_bo_edge_t            
> *left,
> +                       cairo_polygon_t               *polygon)
> + {
> +     cairo_bo_edge_t *right;
> ++    unsigned int mask;
> + 
> +-    if (fill_rule == CAIRO_FILL_RULE_WINDING) {
> +-    while (left != NULL) {
> +-        int in_out = left->edge.dir;
> ++    if (fill_rule == CAIRO_FILL_RULE_WINDING)
> ++    mask = ~0;
> ++    else
> ++    mask = 1;
> + 
> +-        right = left->next;
> +-        if (left->deferred.right == NULL) {
> +-            while (right != NULL && right->deferred.right == NULL)
> +-                right = right->next;
> ++    while (left != NULL) {
> ++    int in_out = left->edge.dir;
> + 
> +-            if (right != NULL && edges_colinear (left, right)) {
> +-                /* continuation on left */
> +-                left->deferred = right->deferred;
> +-                right->deferred.right = NULL;
> +-            }
> +-        }
> +-
> +-        right = left->next;
> +-        while (right != NULL) {
> +-            if (right->deferred.right != NULL)
> +-                _cairo_bo_edge_end (right, top, polygon);
> +-
> +-            in_out += right->edge.dir;
> +-            if (in_out == 0) {
> +-                cairo_bo_edge_t *next;
> +-                cairo_bool_t skip = FALSE;
> +-
> +-                /* skip co-linear edges */
> +-                next = right->next;
> +-                if (next != NULL)
> +-                    skip = edges_colinear (right, next);
> +-
> +-                if (! skip)
> +-                    break;
> +-            }
> +-
> ++    right = left->next;
> ++    if (left->deferred.right == NULL) {
> ++        while (right != NULL && right->deferred.right == NULL)
> +             right = right->next;
> +-        }
> + 
> +-        _cairo_bo_edge_start_or_continue (left, right, top, polygon);
> +-
> +-        left = right;
> +-        if (left != NULL)
> +-            left = left->next;
> ++        if (right != NULL && edges_colinear (left, right)) {
> ++            /* continuation on left */
> ++            left->deferred = right->deferred;
> ++            right->deferred.right = NULL;
> ++        }
> +     }
> +-    } else {
> +-    while (left != NULL) {
> +-        int in_out = 0;
> + 
> +-        right = left->next;
> +-        while (right != NULL) {
> +-            if (right->deferred.right != NULL)
> +-                _cairo_bo_edge_end (right, top, polygon);
> ++    right = left->next;
> ++    while (right != NULL) {
> ++        if (right->deferred.right != NULL)
> ++            _cairo_bo_edge_end (right, top, polygon);
> + 
> +-            if ((in_out++ & 1) == 0) {
> +-                cairo_bo_edge_t *next;
> +-                cairo_bool_t skip = FALSE;
> +-
> +-                /* skip co-linear edges */
> +-                next = right->next;
> +-                if (next != NULL)
> +-                    skip = edges_colinear (right, next);
> +-
> +-                if (! skip)
> +-                    break;
> +-            }
> +-
> +-            right = right->next;
> ++        in_out += right->edge.dir;
> ++        if ((in_out & mask) == 0) {
> ++            /* skip co-linear edges */
> ++            if (right->next == NULL || !edges_colinear (right, right->next))
> ++                break;
> +         }
> + 
> +-        _cairo_bo_edge_start_or_continue (left, right, top, polygon);
> +-
> +-        left = right;
> +-        if (left != NULL)
> +-            left = left->next;
> ++        right = right->next;
> +     }
> ++
> ++    _cairo_bo_edge_start_or_continue (left, right, top, polygon);
> ++
> ++    left = right;
> ++    if (left != NULL)
> ++        left = left->next;
> +     }
> + }
> + 
> +@@ -1303,12 +1271,6 @@ _cairo_bentley_ottmann_tessellate_bo_edges (cairo_bo_e
> + 
> +     while ((event = _cairo_bo_event_dequeue (&event_queue))) {
> +     if (event->point.y != sweep_line.current_y) {
> +-        for (e1 = sweep_line.stopped; e1; e1 = e1->next) {
> +-            if (e1->deferred.right != NULL)
> +-                 _cairo_bo_edge_end (e1, e1->edge.bottom, polygon);
> +-        }
> +-        sweep_line.stopped = NULL;
> +-
> +         _active_edges_to_polygon (sweep_line.head,
> +                                   sweep_line.current_y,
> +                                   fill_rule, polygon);
> +@@ -1328,23 +1290,6 @@ _cairo_bentley_ottmann_tessellate_bo_edges (cairo_bo_e
> +         if (unlikely (status))
> +             goto unwind;
> + 
> +-        /* check to see if this is a continuation of a stopped edge */
> +-        /* XXX change to an infinitesimal lengthening rule */
> +-        for (left = sweep_line.stopped; left; left = left->next) {
> +-            if (e1->edge.top <= left->edge.bottom &&
> +-                edges_colinear (e1, left))
> +-            {
> +-                e1->deferred = left->deferred;
> +-                if (left->prev != NULL)
> +-                    left->prev = left->next;
> +-                else
> +-                    sweep_line.stopped = left->next;
> +-                if (left->next != NULL)
> +-                    left->next->prev = left->prev;
> +-                break;
> +-            }
> +-        }
> +-
> +         left = e1->prev;
> +         right = e1->next;
> + 
> +@@ -1371,14 +1316,8 @@ _cairo_bentley_ottmann_tessellate_bo_edges (cairo_bo_e
> + 
> +         _cairo_bo_sweep_line_delete (&sweep_line, e1);
> + 
> +-        /* first, check to see if we have a continuation via a fresh edge */
> +-        if (e1->deferred.right != NULL) {
> +-            e1->next = sweep_line.stopped;
> +-            if (sweep_line.stopped != NULL)
> +-                sweep_line.stopped->prev = e1;
> +-            sweep_line.stopped = e1;
> +-            e1->prev = NULL;
> +-        }
> ++        if (e1->deferred.right != NULL)
> ++            _cairo_bo_edge_end (e1, e1->edge.bottom, polygon);
> + 
> +         if (left != NULL && right != NULL) {
> +             status = 
> _cairo_bo_event_queue_insert_if_intersect_below_current_y (&event_queue, 
> left, right);
> +@@ -1420,10 +1359,6 @@ _cairo_bentley_ottmann_tessellate_bo_edges (cairo_bo_e
> +     }
> +     }
> + 
> +-    for (e1 = sweep_line.stopped; e1; e1 = e1->next) {
> +-    if (e1->deferred.right != NULL)
> +-        _cairo_bo_edge_end (e1, e1->edge.bottom, polygon);
> +-    }
> +  unwind:
> +     _cairo_bo_event_queue_fini (&event_queue);
> + 
> +@@ -1447,6 +1382,12 @@ _cairo_polygon_reduce (cairo_polygon_t *polygon,
> +     if (unlikely (0 == num_events))
> +     return CAIRO_STATUS_SUCCESS;
> + 
> ++    if (DEBUG_POLYGON) {
> ++    FILE *file = fopen ("reduce_in.txt", "w");
> ++    _cairo_debug_print_polygon (file, polygon);
> ++    fclose (file);
> ++    }
> ++
> +     events = stack_events;
> +     event_ptrs = stack_event_ptrs;
> +     if (num_events > ARRAY_LENGTH (stack_events)) {
> +@@ -1482,10 +1423,16 @@ _cairo_polygon_reduce (cairo_polygon_t *polygon,
> +                                                      num_events,
> +                                                      fill_rule,
> +                                                      polygon);
> +-     polygon->num_limits = num_limits;
> ++    polygon->num_limits = num_limits;
> + 
> +     if (events != stack_events)
> +     free (events);
> ++
> ++    if (DEBUG_POLYGON) {
> ++    FILE *file = fopen ("reduce_out.txt", "w");
> ++    _cairo_debug_print_polygon (file, polygon);
> ++    fclose (file);
> ++    }
> + 
> +     return status;
> + }
> Index: patches/patch-src_cairo-xlib-display_c
> ===================================================================
> RCS file: patches/patch-src_cairo-xlib-display_c
> diff -N patches/patch-src_cairo-xlib-display_c
> --- patches/patch-src_cairo-xlib-display_c    17 Oct 2010 12:50:53 -0000      
> 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,15 +0,0 @@
> -$OpenBSD: patch-src_cairo-xlib-display_c,v 1.1 2010/10/17 12:50:53 eric Exp $
> ---- src/cairo-xlib-display.c.orig    Sat Oct 16 13:08:38 2010
> -+++ src/cairo-xlib-display.c Sat Oct 16 13:08:56 2010
> -@@ -353,11 +353,7 @@ _cairo_xlib_device_create (Display *dpy)
> -     /* Prior to Render 0.10, there is no protocol support for gradients and
> -      * we call function stubs instead, which would silently consume the 
> drawing.
> -      */
> --#if RENDER_MAJOR == 0 && RENDER_MINOR < 10
> -     display->buggy_gradients = TRUE;
> --#else
> --    display->buggy_gradients = FALSE;
> --#endif
> -     display->buggy_pad_reflect = FALSE;
> -     display->buggy_repeat = FALSE;
> - 
> Index: patches/patch-util_Makefile_in
> ===================================================================
> RCS file: patches/patch-util_Makefile_in
> diff -N patches/patch-util_Makefile_in
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-util_Makefile_in    6 Aug 2012 04:30:17 -0000
> @@ -0,0 +1,11 @@
> +$OpenBSD$
> +--- util/Makefile.in.orig    Sun Jul 29 23:41:25 2012
> ++++ util/Makefile.in Sun Jul 29 23:41:45 2012
> +@@ -61,7 +61,6 @@ check_PROGRAMS =
> + @CAIRO_HAS_INTERPRETER_TRUE@am__append_2 = cairo-script
> + @CAIRO_HAS_TRACE_TRUE@am__append_3 = cairo-trace
> + 
> @CAIRO_HAS_DLSYM_TRUE@@CAIRO_HAS_SCRIPT_SURFACE_TRUE@@CAIRO_HAS_TEE_SURFACE_TRUE@@CAIRO_HAS_TRACE_TRUE@am__append_4
>  = cairo-fdr
> +-@BUILD_SPHINX_TRUE@@CAIRO_HAS_DLSYM_TRUE@@CAIRO_HAS_SCRIPT_SURFACE_TRUE@@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_5
>  = cairo-sphinx
> + @CAIRO_HAS_INTERPRETER_TRUE@am__append_6 = trace-to-xml xml-to-trace
> + 
> + #malloc_stats_la_LIBADD  = $(backtrace_symbols_la_LIBADD) 
> backtrace-symbols.lo
> Index: patches/patch-util_cairo-fdr_Makefile_in
> ===================================================================
> RCS file: patches/patch-util_cairo-fdr_Makefile_in
> diff -N patches/patch-util_cairo-fdr_Makefile_in
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-util_cairo-fdr_Makefile_in  9 Aug 2012 05:26:47 -0000
> @@ -0,0 +1,12 @@
> +$OpenBSD$
> +--- util/cairo-fdr/Makefile.in.orig  Thu Aug  9 01:26:03 2012
> ++++ util/cairo-fdr/Makefile.in       Thu Aug  9 01:26:38 2012
> +@@ -377,7 +377,7 @@ cairo_fdr_la_SOURCES = fdr.c
> + cairo_fdr_la_CPPFLAGS = $(AM_CPPFLAGS)
> + cairo_fdr_la_CFLAGS = $(CAIRO_CFLAGS)
> + cairo_fdr_la_LDFLAGS = -module -no-undefined
> +-cairo_fdr_la_LIBADD = -ldl
> ++cairo_fdr_la_LIBADD = 
> + all: all-am
> + 
> + .SUFFIXES:
> Index: pkg/DESCR
> ===================================================================
> RCS file: /home/cvs/ports/graphics/cairo/pkg/DESCR,v
> retrieving revision 1.1.1.1
> diff -u -p -r1.1.1.1 DESCR
> --- pkg/DESCR 11 Sep 2005 05:05:11 -0000      1.1.1.1
> +++ pkg/DESCR 9 Aug 2012 04:58:46 -0000
> @@ -1,11 +1,15 @@
> -Cairo is a vector graphics library with cross-device output
> -support. Currently supported output targets include the X Window
> -System and in-memory image buffers. PostScript and PDF file output is
> -planned. Cairo is designed to produce identical output on all output
> -media while taking advantage of display hardware acceleration when
> -available (eg. through the X Render Extension).
> +Cairo is a 2D graphics library with support for multiple output devices.
> +Currently supported output targets include the X Window System (via both
> +Xlib and XCB), quartz, win32, and image buffers, as well as PDF,
> +PostScript, and SVG file output. Experimental backends include OpenGL,
> +BeOS, OS/2, and DirectFB.
>  
> -Cairo provides a stateful user-level API with capabilities similar to
> -the PDF 1.4 imaging model. Cairo provides operations including
> -stroking and filling Bezier cubic splines, transforming and
> -compositing translucent images, and antialiased text rendering.
> +Cairo is designed to produce consistent output on all output media while
> +taking advantage of display hardware acceleration when available (for
> +example, through the X Render Extension).
> +
> +The cairo API provides operations similar to the drawing operators of
> +PostScript and PDF. Operations in cairo include stroking and filling
> +cubic Bezier splines, transforming and compositing translucent
> +images, and antialiased text rendering. All drawing operations can be
> +transformed by any affine transformation (scale, rotation, shear, etc.).
> Index: pkg/PFRAG.shared
> ===================================================================
> RCS file: /home/cvs/ports/graphics/cairo/pkg/PFRAG.shared,v
> retrieving revision 1.4
> diff -u -p -r1.4 PFRAG.shared
> --- pkg/PFRAG.shared  11 Oct 2010 08:09:44 -0000      1.4
> +++ pkg/PFRAG.shared  30 Jul 2012 04:45:02 -0000
> @@ -1,4 +1,5 @@
>  @comment $OpenBSD: PFRAG.shared,v 1.4 2010/10/11 08:09:44 eric Exp $
> +lib/cairo/cairo-fdr.so.0.0
>  @lib lib/cairo/libcairo-trace.so.${LIBcairo-trace_VERSION}
>  @lib lib/libcairo-gobject.so.${LIBcairo-gobject_VERSION}
>  @lib 
> lib/libcairo-script-interpreter.so.${LIBcairo-script-interpreter_VERSION}
> Index: pkg/PLIST
> ===================================================================
> RCS file: /home/cvs/ports/graphics/cairo/pkg/PLIST,v
> retrieving revision 1.11
> diff -u -p -r1.11 PLIST
> --- pkg/PLIST 4 May 2011 08:01:56 -0000       1.11
> +++ pkg/PLIST 12 Aug 2012 14:29:51 -0000
> @@ -10,6 +10,7 @@ include/cairo/cairo-gobject.h
>  include/cairo/cairo-pdf.h
>  include/cairo/cairo-ps.h
>  include/cairo/cairo-script-interpreter.h
> +include/cairo/cairo-script.h
>  include/cairo/cairo-svg.h
>  include/cairo/cairo-tee.h
>  include/cairo/cairo-version.h
> @@ -19,8 +20,6 @@ include/cairo/cairo-xlib.h
>  include/cairo/cairo-xml.h
>  include/cairo/cairo.h
>  lib/cairo/
> -lib/cairo/libcairo-trace.a
> -lib/cairo/libcairo-trace.la
>  lib/libcairo-gobject.a
>  lib/libcairo-gobject.la
>  lib/libcairo-script-interpreter.a
> @@ -36,6 +35,7 @@ lib/pkgconfig/cairo-gobject.pc
>  lib/pkgconfig/cairo-pdf.pc
>  lib/pkgconfig/cairo-png.pc
>  lib/pkgconfig/cairo-ps.pc
> +lib/pkgconfig/cairo-script.pc
>  lib/pkgconfig/cairo-svg.pc
>  lib/pkgconfig/cairo-tee.pc
>  lib/pkgconfig/cairo-xcb-shm.pc
> @@ -65,16 +65,19 @@ share/gtk-doc/html/cairo/cairo-Paths.htm
>  share/gtk-doc/html/cairo/cairo-PostScript-Surfaces.html
>  share/gtk-doc/html/cairo/cairo-Quartz-(CGFont)-Fonts.html
>  share/gtk-doc/html/cairo/cairo-Quartz-Surfaces.html
> +share/gtk-doc/html/cairo/cairo-Raster-Sources.html
>  share/gtk-doc/html/cairo/cairo-Recording-Surfaces.html
>  share/gtk-doc/html/cairo/cairo-Regions.html
>  share/gtk-doc/html/cairo/cairo-SVG-Surfaces.html
> +share/gtk-doc/html/cairo/cairo-Script-Surfaces.html
>  share/gtk-doc/html/cairo/cairo-Transformations.html
>  share/gtk-doc/html/cairo/cairo-Types.html
>  share/gtk-doc/html/cairo/cairo-User-Fonts.html
> -share/gtk-doc/html/cairo/cairo-Version-Information.html
>  share/gtk-doc/html/cairo/cairo-Win32-Fonts.html
>  share/gtk-doc/html/cairo/cairo-Win32-Surfaces.html
> +share/gtk-doc/html/cairo/cairo-XCB-Surfaces.html
>  share/gtk-doc/html/cairo/cairo-XLib-Surfaces.html
> +share/gtk-doc/html/cairo/cairo-XLib-XRender-Backend.html
>  share/gtk-doc/html/cairo/cairo-cairo-device-t.html
>  share/gtk-doc/html/cairo/cairo-cairo-font-face-t.html
>  share/gtk-doc/html/cairo/cairo-cairo-font-options-t.html
> @@ -88,10 +91,10 @@ share/gtk-doc/html/cairo/cairo-fonts.htm
>  share/gtk-doc/html/cairo/cairo-support.html
>  share/gtk-doc/html/cairo/cairo-surfaces.html
>  share/gtk-doc/html/cairo/cairo-text.html
> -share/gtk-doc/html/cairo/cairo.devhelp
>  share/gtk-doc/html/cairo/cairo.devhelp2
>  share/gtk-doc/html/cairo/home.png
>  share/gtk-doc/html/cairo/index-1.10.html
> +share/gtk-doc/html/cairo/index-1.12.html
>  share/gtk-doc/html/cairo/index-1.2.html
>  share/gtk-doc/html/cairo/index-1.4.html
>  share/gtk-doc/html/cairo/index-1.6.html
> 
> -- 
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.
> 

-- 
Antoine

Reply via email to