--- - branch: MAIN date: Mon Sep 13 12:23:01 UTC 2010 files: - new: '1.82' old: '1.81' path: pkgsrc/graphics/cairo/Makefile pathrev: pkgsrc/graphics/cairo/Makefile@1.82 type: modified - new: '1.26' old: '1.25' path: pkgsrc/graphics/cairo/PLIST pathrev: pkgsrc/graphics/cairo/PLIST@1.26 type: modified - new: '1.33' old: '1.32' path: pkgsrc/graphics/cairo/buildlink3.mk pathrev: pkgsrc/graphics/cairo/buildlink3.mk@1.33 type: modified - new: '1.52' old: '1.51' path: pkgsrc/graphics/cairo/distinfo pathrev: pkgsrc/graphics/cairo/distinfo@1.52 type: modified - new: '1.5' old: '1.4' path: pkgsrc/graphics/cairo/options.mk pathrev: pkgsrc/graphics/cairo/options.mk@1.5 type: modified - new: '1.14' old: '1.13' path: pkgsrc/graphics/cairo/patches/patch-aa pathrev: pkgsrc/graphics/cairo/patches/patch-aa@1.14 type: modified - new: '1.12' old: '1.11' path: pkgsrc/graphics/cairo/patches/patch-ab pathrev: pkgsrc/graphics/cairo/patches/patch-ab@1.12 type: modified id: 20100913T122301Z.ac2b40250485541109656b5167068bd74b0cfb87 log: "Update to 1.10.0. Add default-on xcb option (implying x11 option).\n\nRelease 1.10.0 (2010-09-06 Chris Wilson )\n===================================================================\nThe cairo community is astounded (and flabbergast) to finally announce\nthe 1.10.0 release of the cairo graphics library. This is a major update\nto cairo, with new features and enhanced functionality which maintains\ncompatibility for applications written using any previous major cairo\nrelease, (1.8, 1.6, 1.4, 1.2, or 1.0). We recommend that anybody using\na previous version of cairo upgrade to cairo 1.10.0.\n\nOne of the more interesting departures for cairo for this release is the\ninclusion of a tracing utility, cairo-trace. cairo-trace generates a\nhuman-readable, replayable, compact representation of the sequences of\ndrawing commands made by an application. This can be used to inspecting\napplications to understand issues and as a means for profiling\nreal-world usage of cairo.\n\nThe traces generated by cairo-trace have been collected in\n\n git://git.cairographics.org/git/cairo-traces\n\nand have driven the performance tuning of cairo over the last couple of\nyears. In particular, the image backend is much faster with a new\npolygon rasterisation and a complete overhaul of the tessellator. Not\nonly is this faster, but also eliminates visual artifacts from\nself-intersecting strokes. Not only has cairo-trace been driving\nperformance improvements within cairo, but as a repeatable means of\ndriving complex graphics it has been used to tune OpenGL, DDX, and\npixman.\n\nCairo's API has been extended to better support printing, notably\nthrough the ability to include a single compressed representation of an\nimage for patterns used throughout a document, leading to dramatic file\nsize reductions. Also the meta-surface used to record the vector\ncommands compromising a drawing sequence is now exposed as a\nCAIRO_SURFACE_TYPE_RECORDING, along with a new surface that is a child of a\nlarger surface, CAIRO_SURFACE_TYPE_SUBSURFACE. One typical usage of a\nsubsurface would be as a source glyph in a texture atlas, or as a\nrestricted subwindow within a canvas.\n\nCairo's API has also resurrected the RGB16 format from the past as\nthe prevalence of 16-bit framebuffers has not diminished and is a\nfore-taste of the extended format support we anticipate in the future.\nIncreasing cairo's utility, we introduce the cairo_region_t for handling\nsets of pixel aligned rectangles commonly used in graphics applications.\nThis is a merger of the GdkRegion and the pixman_region_t, hopefully\nproviding the utility of the former with the speed of the latter.\n\nFurthermore cairo has been reworked to interoperate more closely with\nvarious acceleration architectures, gaining the ability to share\nthose hardware resources through the new cairo_device_t. For instance,\nwith the new OpenGL backend that supersedes the Glitz backend, hardware\nand rendering operations can be shared between a classic OpenGL\napplication mixing libVA for the hardware assisted video decode with\ncairo for high quality overlays all within the same OpenGL canvas.\n\nMany thanks for the hard work of Adrian Johnson, Andrea Canciani, Behdad\nEsfahbod, Benjamin Otte, Carl Worth, Carlos Garcia Campos, Chris Wilson,\nEric Anholt, Jeff Muizelaar, Karl Tomlinson, M Joonas Pihlaja, Søren\nSandmann Pedersen and many others that have contributed over the last\ncouple of years to cairo. Thank you all!\n\nSnapshot 1.9.14 (2010-07-26)\n============================\n\n \ A quiet couple of weeks, hopefully Cairo is seeing widescale deployment and\n \ we are being to see the results of the stabilisation effort. Clipping bugs\n \ seems to have been the order of the last couple of weeks, with a couple\n reported and duly fixed. Thank you Igor Nikitin and Karl Tomlinsion for\n finding those regressions. At this point all that seems to remain to do is\n to fix the outstanding regressions in the PDF backend...\n\nBugs fixes\n----------\n\n Clip doesn't work for text on the image backend\n https://bugs.freedesktop.org/show_bug.cgi?id=29008\n\n \ Add explicit dependency for cxx\n https://bugs.freedesktop.org/show_bug.cgi?id=29114\n\n \ Fix regressions in reporting clip extents\n https://bugs.freedesktop.org/show_bug.cgi?id=29120\n \ https://bugs.freedesktop.org/show_bug.cgi?id=29121\n https://bugs.freedesktop.org/show_bug.cgi?id=29122\n \ https://bugs.freedesktop.org/show_bug.cgi?id=29124\n https://bugs.freedesktop.org/show_bug.cgi?id=29125\n\nSnapshot 1.9.12 (2010-07-12)\n============================\n\n A couple of weeks spent fixing those annoying bugs and cleaning up the build\n system; the list of outstanding tasks to complete for the stable release is\n finally shrinking. The chief bug fixer has been Benjamin Otte who not only\n made sure that the public API is consistent and being tested for its\n consistency, but also ensured that the documentation was up-to-date and\n spent time clarifying cases where even the Cairo developers have come\n unstuck in the past. Many thanks, Benjamin. However, he was not alone,\n as Andrea Canciani continued his fine work in isolating broken corner cases\n and proceeding to fix them, and tidying up the quartz backend. And last, but\n definitely not least, M Joonas Pihlaja tried building Cairo across a\n perverse range of systems and fixed up all the loose bits of code that came\n \ unravelled. Thanks everybody!\n\nAPI Changes\n-----------\n\n cairo_surface_set_mime_data, cairo_surface_get_mime_data:\n\n The length parameter is now an unsigned long (as opposed to an unsigned\n int). The parameter is intended to be an equivalent to a size_t without\n requiring POSIX types and be large enough to store the size of the\n largest possible allocation.\n\n cairo_gl_surface_create_for_texture:\n\n \ This a new surface constructor for cairo-gl that explicitly enables\n render-to-texture for foreign, i.e. application, textures.\n\n cairo_region_xor, cairo_region_xor_rectangle\n\n \ A couple of utility routines add to the region handling interface for\n the purpose of replacing existing GdkRegion functionality.\n\nBugs fixes\n----------\n\n \ https://bugs.launchpad.net/ubuntu/+source/cairo/+bug/600622\n\n Inkscape was caught in the act of attempting to modify a finished surface.\n Unfortunately, we had the ordering of our guards and assertions wrong and\n so an ordinary application error was triggering an assert in Cairo. This\n lead Benjamin to add a test case to ensure that the entire public API\n could handle erroneous input and then proceeded to fix a whole slew of\n uncovered bugs.\n\n https://bugs.freedesktop.org/show_bug.cgi?id=28888\n\n \ A regression introduced by the special casing of uploading images to an\n \ xlib surface in-place which was ignoring the translation applied to the\n \ image.\n\nSnapshot 1.9.10 (2010-06-26)\n============================\n\n The first \"quick\" snapshot in the run up to the stable release. The\n last snapshot was picked up by the bleeding edge distributions and so the\n bug reports have to started to roll in. The most frequent of these are the\n introduction of rendering errors by applications that modify a surface\n without subsequently calling cairo_surface_mark_dirty(). Make sure the\n application developers are aware of increased reliance on strict use of the\n Cairo API before 1.10 is released!\n\n The usual slew of bugs reported and we would like to thank Zoxc for\n contributing the WGL interface for cairo-gl, and finding more build\n \ failures on win32. And it just wouldn't be a 1.9 snapshot unless\n Benjamin Otte improved the error handling within cairo-gl, as well as\n isolating and fixing some more errors in the test suite. The biggest bug of\n the snapshot turned out to be a major sign extension issue that had lain\n hidden for many years and was suddenly exposed by incorrectly rounding\n rectangles when performing non-antialiased rendering. Also to the relief\n of many we have included the downstream patch to honour the user's LCD\n filtering preferences for subpixel rendering of fonts. The interface\n remains private for the time being, whilst the proposed public API is\n finalized.\n\nAPI changes\n-----------\n None.\n\nSnapshot 1.9.8 (2010-06-12)\n===========================\n\n One major API changes since the last snapshot, and a whole slew of bugs\n fixed and inconsistencies eliminated. Far too many bugs fixed to\n individually identify. We need to thank Benjamin Otte for his fantastic\n work on the cairo-gl backend making it faster and more robust, Andrea\n Canciani for finding so many bugs and developing test cases for them, as\n well fixing them. And last but not least we must all thank Adrian Johnson for\n continuing to eliminate bugs and improving the PostScript and PDF backends.\n\n This snapshot represents almost 4 months of bug fixing, bringing Cairo to\n a point where we consider it almost ready to be a candidate for release.\n \ There are a few known bugs left to be fixed, being tracked in\n https://bugs.freedesktop.org/show_bug.cgi?id=24384, so please give Cairo a\n whirl and report any regressions. The plan is to release a new snapshot\n every other week leading to a 1.10 release with a target date of\n 2010-08-16.\n\nAPI additions\n-------------\n CAIRO_FORMAT_RGB16_565\n\n \ 16 bit devices still remain popular, and so with great demand,\n CAIRO_FORMAT_RGB16_565 has been restored enabling applications to create\n and use 16 bit images as sources and render targets.\n\n cairo_surface_create_for_rectangle()\n\n It is common practice to cut an image up into many smaller pieces and use\n each of those as a source - a technique called texture atlasing.\n cairo_surface_create_for_rectangle() extends Cairo to directly support use\n of these subregions of another cairo_surface_t both as a source and as a\n render target.\n\n cairo_region_create()\n cairo_region_create_rectangle()\n \ cairo_region_create_rectangles()\n cairo_region_copy()\n cairo_region_reference()\n \ cairo_region_destroy()\n cairo_region_equal()\n cairo_region_status()\n cairo_region_get_extents()\n \ cairo_region_num_rectangles()\n cairo_region_get_rectangle()\n cairo_region_is_empty()\n \ cairo_region_contains_rectangle()\n cairo_region_contains_point()\n cairo_region_translate()\n \ cairo_region_subtract()\n cairo_region_subtract_rectangle()\n cairo_region_intersect()\n \ cairo_region_intersect_rectangle()\n cairo_region_union()\n cairo_region_union_rectangle()\n\n \ The Cairo region API was actually added a couple of snapshots ago, but we\n \ forgot to mention it at the time. A simple API for the handling of\n rectangular pixel-aligned regions by Soeren Sandmann.\n\nBackend-specific improvements\n-----------------------------\ncairo-gl\n\n \ Benjamin Otte made more than 200 commits in which he refactored the cairo-gl\n \ backend, reducing a lot of code duplication and enabled him to begin working\n \ on improving performance by reducing state changes and associated overhead.\n\ncairo-xlib\n\n \ Access to the underlying connection to the Display is now thread-safe\n enabling cairo-xlib to be used in a multi-threaded application without fear\n of random corruption. Thanks Benjamin Otte!\n\n cairo-xlib will now attempt to use PolyModeImprecise when compositing\n trapezoids (i.e. a fill or a stroke operation with a non-trivial path) which\n should allow hardware drivers more scope for accelerating the operation at\n the cost of potentially incurring minute rendering errors. The mode can be\n forced back to PolyModePrecise by setting the antialias parameter to\n CAIRO_ANTIALIAS_SUBPIXEL.\n\ncairo-svg\n\n \ A notable improvement was contributed by Alexander Shulgin to enable SVG to\n \ reference external image through the use an extended MIME data type.\n\nSnapshot 1.9.6 (2010-02-19)\n===========================\nAPI additions\n-------------\n \ Add cairo_device_t\n\n The device is a generic method for accessing the underlying interface\n with the native graphics subsystem, typically the X connection or\n perhaps the GL context. By exposing a cairo_device_t on a surface and\n its various methods we enable finer control over interoperability with\n \ external interactions of the device by applications. The use case in\n mind is, for example, a multi-threaded gstreamer which needs to serialise\n its own direct access to the device along with Cairo's across many\n threads.\n\n \ Secondly, the cairo_device_t is a unifying API for the mismash of\n backend specific methods for controlling creation of surfaces with\n explicit devices and a convenient hook for debugging and introspection.\n\n The principal components of the API are the memory management of:\n\n cairo_device_reference(),\n \ cairo_device_finish() and\n cairo_device_destroy();\n\n along with a pair of routines for serialising interaction:\n\n cairo_device_acquire() and\n cairo_device_release()\n\n and a method to flush any outstanding accesses:\n\n cairo_device_flush().\n\n The device for a particular surface may be retrieved using:\n\n cairo_surface_get_device().\n\n The device returned is owned by the surface.\n\nAPI changes (to API new in the cairo 1.9.x series)\n--------------------------------------------------\n cairo_recording_surface_create()\n \ cairo_recording_surface_ink_extents()\n\n These are the replacement names for the functions previously named\n cairo_meta_surface_create and cairo_meta_surface_ink_extents.\n\n \ cairo_surface_set_mime_data\n\n This interface is now changed such that the MIME data will be\n detached if the surface is modified at all. This guarantees that\n the MIME data will not become out of synch due to surface\n modifications, and also means that for the MIME data to be useful,\n it must be set after all modifications to the surface are\n complete.\n\nAPI removal (of experiment API)\n-------------------------------\n The cairo-glitz backend is removed entirely, (in favor of the new\n cairo-gl backend). See below for more on cairo-gl.\n\nGeneric fixes\n-------------\n\n Many improvements for drawing of dashed strokes\n\n\tFix incorrect handling of negative offset\n\tFaster computation of first dash (avoids near-infinite looping)\n\tApproximate extremely fine dash patterns with appropriate alpha value\n\n Optimize spans-based renderers for repeated rows, (such as in a rounded rectangle)\n\nBackend-specific improvements\n-----------------------------\ncairo-drm\n\n \ This is a new, direct-rendering backend that supports Intel graphics\n chipsets in the i915 and i965 families. It's still experimental and\n will likely remain that way for a while. It's already got extremely\n good performance on the hardware it supports, so if nothing else\n provides a working proof and performance target for the cairo-gl\n work for Intel graphics.\n\ncairo-gl\n\n Start using GLSL to accelerate many operations. Many thanks to Eric\n Anholt and T. Zachary Laine for this work. For the first time, we\n have what looks like what will be a very compelling OpenGL-based\n backend for cairo (in terms of both quality and performance).\n\n \ See this writeup from Eric for more details on recent progress of\n cairo-gl (which he presented at FOSDEM 2010):\n\n\thttp://anholt.livejournal.com/42146.html\n\ncairo-image\n\n \ The image backend is made dramatically faster (3-5 times faster for\n benchmarks consisting primarily of glyph rendering).\n\ncairo-quartz fixes:\n\n Many fixes from Robert O'Callahan and Andrea Canciani including:\n\n\tFixed gradient pattern painting\n\tImproved A8 image handling\n\tFixes for \"unbounded\" and other compositing operators\n\ncairo-pdf fixes:\n\n Improvements to embedding of JPEG and JPEG2000 data.\n\ncairo-ps fixes:\n\n Fix printing of rotated user fonts.\n\nSnapshot 1.9.4 (2009-10-15)\n===========================\nAPI additions:\n\n cairo_meta_surface_create()\n \ cairo_meta_surface_ink_extents()\n\n Finally exporting the internal meta-surface so that applications\n have a method to record and replay a sequence of drawing commands.\n\n cairo_in_clip()\n\n Determines whether a given point is inside the current clip.\n ??? Should this be called cairo_in_paint() instead? in-clip is the test\n that is performed, but in-paint would be similar to in-fill and in-stroke.\n\nNew utilities:\n\n cairo-test-trace\n\n A companion to cairo-perf-trace, this utility replays a trace against\n multiple targets in parallel and looks for differences in the output,\n and then records any drawing commands that cause a failure.\n Future plans:\n Further minimisation of the fail trace using \"delta debugging\".\n More control over test/reference targets.\n\nBackend improvements:\n\n xlib\n\n Server-side gradients. The theory is that we can offload computation\n of gradients to the GPU and avoid pushing large images over the\n connection. Even if the driver has to fallback and use pixman to render\n a temporary source, it should be able to do so in a more efficient manner\n than Cairo itself. However, cairo-perf suggests otherwise:\n\n On tiny, Celeron/i915:\n\n before: firefox-20090601 211.585\n after: firefox-20090601 270.939\n\n and on tiger, CoreDuo/nvidia:\n\n before: firefox-20090601 70.143\n after: firefox-20090601 87.326\n\n In particular, looking at tiny:\n\n xlib-rgba paint-with-alpha_linear-rgba_over-512 47.11 (47.16 0.05%) -> 123.42 (123.72 0.13%): 2.62x slowdown\n â\x96\x88â\x96\x8B\n xlib-rgba paint-with-alpha_linear3-rgba_over-512 47.27 (47.32 0.04%) -> 123.78 (124.04 0.13%): 2.62x slowdown\n â\x96\x88â\x96\x8B\n\nNew experimental backends:\n\n \ QT\n\n OpenVG - The initial work was done by Ã\x98yvind KolÃ¥s, and made ready for\n inclusion by Pierre Tardy.\n\n OpenGL - An advanced OpenGL compositor. The aim is to write a integrate\n directed rendering using OpenGL at a high-level into Cairo. In\n\t contrast to the previous attempt using Glitz which tried to\n\t implement the RENDER protocol on top of OpenGL, using the\n\t high-level interface should permit greater flexibility and\n\t \ more offloading onto the GPU.\n\t The initial work on the backend was performed by Eric Anholt.\n\nLong standing bugs fixed:\n\n Self-intersecting strokes.\n\n \ A long standing bug where the coverage from overlapping semi-opaque\n strokes (including neighbouring edges) was simply summed in lieu of\n a costly global calculation has been fixed (by performing the costly\n global calculation!) In order to mitigate the extra cost, the\n tessellator has been overhauled and tune, which handles the fallback\n for when we are unable to use the new span rasteriser on the stroke\n (e.g. when using the current RENDER protocol). The large number of\n pixel artefacts that implementing self-intersection elimination\n \ removes is ample justification for the potential performance\n regression. If you unfortunately do suffer a substantial performance\n regression in your application, please consider obtaining a\n cairo-trace and submitting it to us for analysis and inclusion into\n our performance suite.\n\nSpecial thanks:\n\n \ To the AuroraUX team for providing access to one of their OpenSolaris\n machines for cairo and pixman development. http://www.auroraux.org/\n\nSnapshot 1.9.2 (2009-06-12)\n===========================\nAPI additions:\n\n cairo_surface_set_mime_data()\n \ cairo_surface_get_mime_data()\n\n Should this take unsigned int, unsigned long or size_t for the length\n parameter? (Some datasets may be >4GiB in size.)\n\n \ Associate an alternate, compressed, representation for a surface.\n Currently:\n \ \"image/jp2\" (JPEG2000) is understood by PDF >= 1.5\n \"image/jpeg\" is understood by PDF,PS,SVG,win32-printing.\n \"image/png\" is understood by SVG.\n\n cairo_pdf_version_t\n cairo_pdf_surface_restrict_to_version()\n \ cairo_pdf_get_versions()\n cairo_pdf_version_to_string()\n\n Similar to restrict to version and level found in SVG and PS,\n these limit the features used in the output to comply with the PDF\n specification for that version.\n\n \ CAIRO_STATUS_INVALID_SIZE\n Indicates that the request surface size is not supported by the\n backend. This generally indicates that the request is too large.\n\n CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED\n Indicates that a required callback for a user-font was not implemented.\n\n CAIRO_STATUS_LAST_STATUS\n \ This is a special value to indicate the number of status values enumerated\n \ at compile time. (This may differ to the number known at run-time.)\n\n The built-in twin font is now called \"@cairo:\" and supports a limited set\n of options like \"@cairo:mono\". Where are these specified?\n\n cairo_in_fill() now uses HTML Canvas semantics, all edges are inside.\n\nNew experimental backends:\n\n \ CairoScript\n\nNew utility:\n\n cairo-trace and cairo-perf-trace\n\n cairo-trace generates a human-readable, replayable, compact(-ish!)\n representation of the sequences of drawing commands made by an\n application.\n\n Under the util/cairo-script directory is a library to replay traces.\n\n perf/cairo-perf-trace replays traces against multiple backends\n and makes useful benchmark reports. This is integrated with\n 'make perf'. You may collect your own traces or take advantage\n of traces collected by the community:\n\n git://git.cairographics.org/git/cairo-traces\n\n \ (Put this into perf/cairo-traces to run these as part of \"make perf\".)\n\n \ There is additional WIP in building a debugging tool for cairo applications\n \ based on CairoScript (currently very preliminary, mostly serves to show\n \ that GtkSourceView is too slow) :\n\n people.freedesktop.org:~ickle/sphinx\n\nTest suite overhaul:\n\n The test suite is undergoing an overhaul, primarily to improve its speed\n and utility. (Expect more changes in the near future to improve XFAIL\n \ handling.)\n\nOptimisations:\n polygon rasterisation! Joonas implemented the Tor polygon scan converter,\n on typical geometry is about 30% faster for the image backend.\n\n Bovine Polaroids! For those not in on the joke, this is the long\n awaited \"copy-on-write snapshot\" or \"COW snapshot\" support. The\n \ user-visible feature is that including the same image multiple times\n into a PDF file should result in only a single instance of that\n image in the final output. This is unlike previous versions of cairo\n which would generate very large PDF files with multiple copies of\n the same image. Adrian says that the PDF is not quite working as\n well as it should yet, so we hope for futher improvements before\n cairo 1.10.\n\nBug fixes:\n\n EXTEND_PAD.\n\n Better handling of large scale-factors on image patterns.\n\n Emit /Interpolate for PS,PDF images.\n\n \ Global glyph cache - cap on the total number of inactive glyphs,\n should prove fairer for fonts with larger glyph sets.\n\n Compilation without fontconfig\n\n \ Improved handling of low-bitdepth sources (e.g. copying the contents\n of 16-bit xserver windows)\n\nRegressions:\n\n cairo_traps_extract_region >10x slower. Fix pending.\n\nStill to come:\n\n Region tracking API (ssp) for damage tracking, hit testing etc\n mime-surface\n\n An expiremental OpenGL backend?\n\n Tweaks to tessellator, allocations of patterns, delayed\n initialisation of the xlib backend (reduce the cairo overhead of\n render_bench by ~80%).\n" module: pkgsrc subject: 'CVS commit: pkgsrc/graphics/cairo' unixtime: '1284380581' user: wiz