From: Carl Worth <firstname.lastname@example.org> Date: Fri, 12 Jun 2009 12:25:50 -0700 To: email@example.com Subject: cairo snapshot 1.9.2 now available A new cairo snapshot 1.9.2 is now available. This is a snapshot of current development leading up to an eventual 1.10 release. Since this is a development snapshot, (not a "release"), one should not expect cairo 1.9.2 to meet the same high standards as major cairo releases. In particular: * Any new API in this release may change before 1.10 We think we've got the new API right, but we reserve the right to change things as new problems are discovered. * The test suite is known to not pass, which indicates likely bugs * There's a serious bug in PDF output related to the new "COW snapshots" feature, (see more on this below). When the same image is used on multiple pages it can appear in the wrong position on pages after the first, (appearing in the same position as on the first page). * Plenty of other bugs are possible. As always, we appreciate anyone willing to give our half-finished code a look, and we will greatly appreciate feedback and bug reports. Have fun with cairo, everybody! -Carl PS. I'd like to extend special notice to some particularly prolific cairo contributors. Adrian Johnson, Behdad Esfahbod, Jeff Muizelaar, M Joonas Pihlaja, and Søren Sandmann Pedersen have each contributed on the order of 50 commits to this release. And Chris Wilson has made a phenomenal 500 commits! Well done, everybody. Where to get cairo 1.9.2 ======================== http://cairographics.org/snapshots/cairo-1.9.2.tar.gz which can be verified with: http://cairographics.org/snapshots/cairo-1.9.2.tar.gz.sha1 0dc542447fc46d77a3106afff4445d6e668d76e6 cairo-1.9.2.tar.gz http://cairographics.org/snapshots/cairo-1.9.2.tar.gz.sha1.asc (signed by Carl Worth) Additionally, a git clone of the source tree: git clone git://git.cairographics.org/git/cairo will include a signed 1.9.2 tag which points to a commit named: e9b9d2a7c17ca4b2bc2991fdc4893aed850578db which can be verified with: git verify-tag 1.9.2 and can be checked out with a command such as: git checkout -b build 1.9.2 What's new in cairo 1.9.2 (compared to cairo 1.8.x) =================================================== API additions: cairo_surface_set_mime_data() cairo_surface_get_mime_data() Should this take unsigned int, unsigned long or size_t for the length parameter? (Some datasets may be >4GiB in size.) Associate an alternate, compressed, representation for a surface. Currently: "image/jp2" (JPEG2000) is understood by PDF >= 1.5 "image/jpeg" is understood by PDF,PS,SVG,win32-printing. "image/png" is understood by SVG. cairo_pdf_version_t cairo_pdf_surface_restrict_to_version() cairo_pdf_get_versions() cairo_pdf_version_to_string() Similar to restrict to version and level found in SVG and PS, these limit the features used in the output to comply with the PDF specification for that version. CAIRO_STATUS_INVALID_SIZE Indicates that the request surface size is not supported by the backend. This generally indicates that the request is too large. CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED Indicates that a required callback for a user-font was not implemented. CAIRO_STATUS_LAST_STATUS This is a special value to indicate the number of status values enumerated at compile time. (This may differ to the number known at run-time.) The built-in twin font is now called "@cairo:" and supports a limited set of options like "@cairo:mono". Where are these specified? cairo_in_fill() now uses HTML Canvas semantics, all edges are inside. New experimental backends: CairoScript New utility: cairo-trace and cairo-perf-trace cairo-trace generates a human-readable, replayable, compact(-ish!) representation of the sequences of drawing commands made by an application. Under the util/cairo-script directory is a library to replay traces. perf/cairo-perf-trace replays traces against multiple backends and makes useful benchmark reports. This is integrated with 'make perf'. You may collect your own traces or take advantage of traces collected by the community: git://git.cairographics.org/git/cairo-traces (Put this into perf/cairo-traces to run these as part of "make perf".) There is additional WIP in building a debugging tool for cairo applications based on CairoScript (currently very preliminary, mostly serves to show that GtkSourceView is too slow) : people.freedesktop.org:~ickle/sphinx Test suite overhaul: The test suite is undergoing an overhaul, primarily to improve its speed and utility. (Expect more changes in the near future to improve XFAIL handling.) Optimisations: polygon rasterisation! Joonas implemented the Tor polygon scan converter, on typical geometry is about 30% faster for the image backend. Bovine Polaroids! For those not in on the joke, this is the long awaited "copy-on-write snapshot" or "COW snapshot" support. The user-visible feature is that including the same image multiple times into a PDF file should result in only a single instance of that image in the final output. This is unlike previous versions of cairo which would generate very large PDF files with multiple copies of the same image. Adrian says that the PDF is not quite working as well as it should yet, so we hope for futher improvements before cairo 1.10. Bug fixes: EXTEND_PAD. Better handling of large scale-factors on image patterns. Emit /Interpolate for PS,PDF images. Global glyph cache - cap on the total number of inactive glyphs, should prove fairer for fonts with larger glyph sets. Compilation without fontconfig Improved handling of low-bitdepth sources (e.g. copying the contents of 16-bit xserver windows) Regressions: cairo_traps_extract_region >10x slower. Fix pending. Still to come: Region tracking API (ssp) for damage tracking, hit testing etc mime-surface An expiremental OpenGL backend? Tweaks to tessellator, allocations of patterns, delayed initialisation of the xlib backend (reduce the cairo overhead of render_bench by ~80%).