Hey guys,<br>Some updated numbers: <a href="http://blogs.gnome.org/view/xan/2006/11/23/0">http://blogs.gnome.org/view/xan/2006/11/23/0</a><br><br>Another excellent release according to my tests, thanks everyone!<br><br>Cheers, Xan
<br><br>P.S: still no oprofile love, but it's coming.<br><br><div><span class="gmail_quote">On 11/23/06, <b class="gmail_sendername">Carl Worth</b> &lt;<a href="mailto:cworth@cworth.org">cworth@cworth.org</a>&gt; wrote:</span>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">[If you're not familiar with cairo at all, skip down to the final<br>paragraphs explaining &quot;What is cairo&quot;]
<br><br>A new cairo snapshot 1.3.4 is now available from:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://cairographics.org/snapshots/cairo-1.3.4.tar.gz">http://cairographics.org/snapshots/cairo-1.3.4.tar.gz</a><br><br>&nbsp;&nbsp;&nbsp;&nbsp;which can be verified with:
<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://cairographics.org/snapshots/cairo-1.3.4.tar.gz.sha1">http://cairographics.org/snapshots/cairo-1.3.4.tar.gz.sha1</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0c412d56c01ea5fcbcfeafdfc6f23b3772a9711e&nbsp;&nbsp;cairo-1.3.4.tar.gz<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://cairographics.org/snapshots/cairo-1.3.4.tar.gz.sha1.asc">http://cairographics.org/snapshots/cairo-1.3.4.tar.gz.sha1.asc</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(signed by Carl Worth)<br><br>&nbsp;&nbsp;Additionally, a git clone of the source tree:
<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;git clone git://git.cairographics.org/git/cairo<br><br>&nbsp;&nbsp;&nbsp;&nbsp;will include a signed 1.3.4 tag which points to a commit named:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;143c56cb12ee5d0b0fbc5e4039dd4fc88764254d<br><br>&nbsp;&nbsp;&nbsp;&nbsp;which can be verified with:
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;git verify-tag 1.3.4<br><br>&nbsp;&nbsp;&nbsp;&nbsp;and can be checked out with a command such as:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;git checkout -b build 1.3.4<br><br>What's new since 1.3.2?<br>=======================<br>This is the second development snapshot in the 
1.3 series. It comes<br>one week after the 1.3.2 snapshot.<br><br>This snapshot has a couple of significant performance improvements,<br>and also adds new support for producing multi-page SVG output, (when<br>targeting SVG 
1.2)---thanks to Emmanuel Pacaud. The details of the<br>performance improvements are as follows:<br><br>1. The long-awaited &quot;new tessellator&quot;.<br><br>&nbsp;&nbsp; The credit for this being an improvement goes to Joonas Pihlaja. He
<br>&nbsp;&nbsp; took my really slow code and really put it through its paces to get<br>&nbsp;&nbsp; the dramatic performance improvement seen below (up to 38x faster<br>&nbsp;&nbsp; on realistic cases, and more than 10x faster for the zrusin_another<br>
&nbsp;&nbsp; test).<br><br>&nbsp;&nbsp; His own writeup of the work he did is quite thorough, but more than<br>&nbsp;&nbsp; can be quoted here. Please see his post for the interesting details:<br><br>&nbsp;&nbsp; <a href="http://lists.freedesktop.org/archives/cairo/2006-November/008483.html">
http://lists.freedesktop.org/archives/cairo/2006-November/008483.html</a><br><br>&nbsp;&nbsp; (Though note that this snapshot also includes some additional,<br>&nbsp;&nbsp; significant improvements that were only sketched out in that<br>&nbsp;&nbsp; email---see &quot;Generating fewer trapezoids&quot;).
<br><br>2. More floating-point improvements<br><br>&nbsp;&nbsp; Daniel Amelang continues to work the magic he began in the 1.3.2<br>&nbsp;&nbsp; snapshot. This time he short-circuits floating-point<br>&nbsp;&nbsp; transformations by identity matrices and applies the earlier
<br>&nbsp;&nbsp; floating-to-fixed-point technique to the problem of rounding.<br><br>&nbsp;&nbsp; The improvements here will primarily benefit text performance, and<br>&nbsp;&nbsp; will benefit platforms without hardware floating-point more than<br>&nbsp;&nbsp; those that have it, (some text tests show 20% improvement on an x86
<br>&nbsp;&nbsp; machine and closer to 80% improvement on arm).<br><br>The performance chart comparing 1.3.2 to 1.3.4 really speaks for<br>itself, (this is on an x86 laptop). This is quite a lot of progress<br>for one week:<br><br>
 xlib-rgb&nbsp;&nbsp;&nbsp;&nbsp;stroke_similar_rgba_over-256&nbsp;&nbsp; 74.99 1.45% -&gt;&nbsp;&nbsp; 2.03 68.38%: 36.86x speedup<br>¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨<br> xlib-rgb&nbsp;&nbsp;stroke_similar_rgba_source-256&nbsp;&nbsp; 78.23 1.43% -&gt;&nbsp;&nbsp; 3.30 67.05%: 23.71x speedup
<br>¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨‚<br> xlib-rgba&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tessellate-256-100&nbsp;&nbsp;820.42 0.15% -&gt;&nbsp;&nbsp;35.06 2.84%: 23.40x speedup<br>¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨…<br>image-rgba&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tessellate-256-100&nbsp;&nbsp;819.55 0.32% -&gt;&nbsp;&nbsp;35.04 
3.56%: 23.39x speedup<br>¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨…<br> xlib-rgb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stroke_image_rgba_over-256&nbsp;&nbsp; 78.10 1.43% -&gt;&nbsp;&nbsp; 4.33 65.56%: 18.04x speedup<br>¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€<br> xlib-rgb&nbsp;&nbsp;&nbsp;&nbsp;stroke_image_rgba_source-256&nbsp;&nbsp; 80.11 1.63%
 -&gt;&nbsp;&nbsp; 5.75 63.99%: 13.94x speedup<br>¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€¨€<br> xlib-rgba&nbsp;&nbsp;zrusin_another_tessellate-415&nbsp;&nbsp; 89.22 0.35% -&gt;&nbsp;&nbsp; 8.38 5.23%: 10.65x speedup<br>¨€¨€¨€¨€¨€¨€¨€¨€¨€¨ƒ<br>image-rgba&nbsp;&nbsp;zrusin_another_tessellate-415&nbsp;&nbsp; 87.38 0.89% -&gt;&nbsp;&nbsp; 
8.37 5.22%: 10.44x speedup<br>¨€¨€¨€¨€¨€¨€¨€¨€¨€¨…<br>image-rgba&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zrusin_another_fill-415&nbsp;&nbsp;117.67 1.34% -&gt;&nbsp;&nbsp;12.88 2.77%:&nbsp;&nbsp;9.14x speedup<br>¨€¨€¨€¨€¨€¨€¨€¨€¨‡<br> xlib-rgba&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zrusin_another_fill-415&nbsp;&nbsp;140.52 1.57% -&gt;&nbsp;&nbsp;15.79 2.88%:
&nbsp;&nbsp;8.90x speedup<br>¨€¨€¨€¨€¨€¨€¨€¨<br>image-rgba&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tessellate-64-100&nbsp;&nbsp;&nbsp;&nbsp;9.68 3.42% -&gt;&nbsp;&nbsp; 1.42 0.60%:&nbsp;&nbsp;6.82x speedup<br>¨€¨€¨€¨€¨€¨<br> xlib-rgba&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tessellate-64-100&nbsp;&nbsp;&nbsp;&nbsp;9.78 4.35% -&gt;&nbsp;&nbsp; 1.45 0.83%:&nbsp;&nbsp;6.72x speedup
<br>¨€¨€¨€¨€¨€¨‚<br> xlib-rgb&nbsp;&nbsp;&nbsp;&nbsp; stroke_linear_rgba_over-256&nbsp;&nbsp; 46.01 2.44% -&gt;&nbsp;&nbsp; 7.74 54.51%:&nbsp;&nbsp;5.94x speedup<br>¨€¨€¨€¨€¨€<br> xlib-rgb&nbsp;&nbsp; stroke_linear_rgba_source-256&nbsp;&nbsp; 48.09 2.15% -&gt;&nbsp;&nbsp; 9.14 53.00%:&nbsp;&nbsp;5.26x speedup<br>¨€¨€¨€¨€¨†<br>
 xlib-rgb&nbsp;&nbsp;&nbsp;&nbsp; stroke_radial_rgba_over-256&nbsp;&nbsp; 50.96 2.34% -&gt;&nbsp;&nbsp;12.46 47.99%:&nbsp;&nbsp;4.09x speedup<br>¨€¨€¨€¨‡<br> xlib-rgb&nbsp;&nbsp; stroke_radial_rgba_source-256&nbsp;&nbsp; 53.06 1.57% -&gt;&nbsp;&nbsp;13.96 46.57%:&nbsp;&nbsp;3.80x speedup<br>¨€¨€¨‚<br>image-rgba&nbsp;&nbsp;paint_similar_rgba_source-256&nbsp;&nbsp;&nbsp;&nbsp;
0.12 1.57% -&gt;&nbsp;&nbsp; 0.08 9.92%:&nbsp;&nbsp;1.42x speedup<br>¨…<br>image-rgba&nbsp;&nbsp;&nbsp;&nbsp;paint_image_rgba_source-256&nbsp;&nbsp;&nbsp;&nbsp;0.12 2.49% -&gt;&nbsp;&nbsp; 0.08 10.70%:&nbsp;&nbsp;1.41x speedup<br>¨…<br>image-rgba&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;world_map-800&nbsp;&nbsp;356.28 0.46% -&gt; 275.72
 1.15%:&nbsp;&nbsp;1.29x speedup<br>¨†<br> xlib-rgba&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;world_map-800&nbsp;&nbsp;456.81 0.39% -&gt; 357.95 1.39%:&nbsp;&nbsp;1.28x speedup<br>¨†<br>image-rgb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tessellate-16-100&nbsp;&nbsp;&nbsp;&nbsp;0.09 0.57% -&gt;&nbsp;&nbsp; 0.07 3.43%:&nbsp;&nbsp;1.23x speedup<br>
¨†<br>image-rgba&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tessellate-16-100&nbsp;&nbsp;&nbsp;&nbsp;0.09 0.06% -&gt;&nbsp;&nbsp; 0.07 2.46%:&nbsp;&nbsp;1.23x speedup<br>¨†<br>image-rgba&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text_solid_rgb_over-256&nbsp;&nbsp;&nbsp;&nbsp;5.39 4.01% -&gt;&nbsp;&nbsp; 4.47 0.70%:&nbsp;&nbsp;1.21x speedup<br>¨†<br>image-rgba&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text_solid_rgba_over-256&nbsp;&nbsp;&nbsp;&nbsp;
5.37 0.82% -&gt;&nbsp;&nbsp; 4.45 0.75%:&nbsp;&nbsp;1.21x speedup<br>¨†<br>image-rgba&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text_image_rgb_over-64&nbsp;&nbsp;&nbsp;&nbsp; 0.78 0.10% -&gt;&nbsp;&nbsp; 0.65 0.74%:&nbsp;&nbsp;1.20x speedup<br>¨†<br>image-rgba&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text_image_rgba_over-64&nbsp;&nbsp;&nbsp;&nbsp; 0.78 0.29% -&gt;&nbsp;&nbsp; 0.65
 0.68%:&nbsp;&nbsp;1.19x speedup<br>¨†<br>image-rgb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text_solid_rgb_over-64&nbsp;&nbsp;&nbsp;&nbsp; 0.76 2.45% -&gt;&nbsp;&nbsp; 0.63 0.81%:&nbsp;&nbsp;1.19x speedup<br>¨†<br>image-rgba&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text_solid_rgba_over-64&nbsp;&nbsp;&nbsp;&nbsp; 0.76 0.33% -&gt;&nbsp;&nbsp; 0.64 0.66%:&nbsp;&nbsp;1.19x speedup<br>
¨†<br>image-rgba&nbsp;&nbsp;&nbsp;&nbsp; text_similar_rgba_over-256&nbsp;&nbsp;&nbsp;&nbsp;5.99 4.72% -&gt;&nbsp;&nbsp; 5.04 1.09%:&nbsp;&nbsp;1.19x speedup<br>¨†<br><br>We should point out that there is some potential for slowdown in this<br>snapshot. The following are the worst slowdowns reported by the cairo
<br>performance suite when comparing 1.3.2 to 1.3.4:<br><br>image-rgba&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;subimage_copy-256&nbsp;&nbsp;&nbsp;&nbsp;0.01 0.87% -&gt;&nbsp;&nbsp; 0.01 3.61%:&nbsp;&nbsp;1.45x slowdown<br>¨„<br> xlib-rgb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;paint_solid_rgb_over-256&nbsp;&nbsp;&nbsp;&nbsp;0.31 10.23% -&gt;&nbsp;&nbsp; 
0.38 0.33%:&nbsp;&nbsp;1.26x slowdown<br>¨†<br>image-rgba&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; box-outline-fill-100&nbsp;&nbsp;&nbsp;&nbsp;0.01 0.30% -&gt;&nbsp;&nbsp; 0.01 2.52%:&nbsp;&nbsp;1.21x slowdown<br>¨†<br>image-rgba&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_solid_rgb_over-64&nbsp;&nbsp;&nbsp;&nbsp; 0.20 1.22% -&gt;&nbsp;&nbsp; 0.22 1.59%:&nbsp;&nbsp;1.12x slowdown
<br>¨‡<br>image-rgb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fill_similar_rgb_over-64&nbsp;&nbsp;&nbsp;&nbsp; 0.21 1.04% -&gt;&nbsp;&nbsp; 0.24 1.06%:&nbsp;&nbsp;1.11x slowdown<br>¨‡<br>image-rgba&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_image_rgb_over-64&nbsp;&nbsp;&nbsp;&nbsp; 0.21 1.19% -&gt;&nbsp;&nbsp; 0.24 0.72%:&nbsp;&nbsp;1.11x slowdown<br>¨‡<br>image-rgba&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_similar_rgb_over-64&nbsp;&nbsp;&nbsp;&nbsp; 
0.21 0.18% -&gt;&nbsp;&nbsp; 0.24 0.30%:&nbsp;&nbsp;1.11x slowdown<br>¨‡<br>image-rgb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_solid_rgba_over-64&nbsp;&nbsp;&nbsp;&nbsp; 0.22 1.66% -&gt;&nbsp;&nbsp; 0.24 1.15%:&nbsp;&nbsp;1.11x slowdown<br>¨‡<br>image-rgb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fill_image_rgb_over-64&nbsp;&nbsp;&nbsp;&nbsp; 0.21 0.14% -&gt;&nbsp;&nbsp; 0.24
 0.80%:&nbsp;&nbsp;1.11x slowdown<br>¨‡<br>image-rgba&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fill_image_rgba_over-64&nbsp;&nbsp;&nbsp;&nbsp; 0.22 1.34% -&gt;&nbsp;&nbsp; 0.25 0.20%:&nbsp;&nbsp;1.11x slowdown<br>¨‡<br>image-rgba&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fill_solid_rgba_over-64&nbsp;&nbsp;&nbsp;&nbsp; 0.22 1.48% -&gt;&nbsp;&nbsp; 0.24 0.95%:&nbsp;&nbsp;1.11x slowdown
<br>¨‡<br>image-rgb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_similar_rgba_over-64&nbsp;&nbsp;&nbsp;&nbsp; 0.22 1.13% -&gt;&nbsp;&nbsp; 0.25 1.25%:&nbsp;&nbsp;1.10x slowdown<br>¨‡<br><br>The 45% slowdown for subimage_copy is an extreme case. It's unlikely<br>to hit many applications unless they often use cairo_rectangle;
<br>cairo_fill to copy a single pixel at a time. In any case, it shows a<br>worst-case impact of the overhead of the new tessellator. The other<br>slowdowns (~ 10%) are probably more realistic, and still very<br>concerning.
<br><br>We will work to ensure that performance regressions like these are not<br>present from one major release of cairo to the next, (for example,<br>from 1.2 to 1.4).<br><br>But we're putting this 1.3.4 snapshot out there now, even with this
<br>potential slowdown so that people can experiment with it. If you've<br>got complex geometry, we hope you will see some benefit from the new<br>tessellator. If you've got primarily simple geometry, we hope things<br>won't slowdown too much, but please let us know what slowdown you see,
<br>if any, so we can calibrate our performance suite against real-world<br>impacts.<br><br>Log of changes from 1.3.2 to 1.3.4<br>==================================<br>Behdad Esfahbod (4):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[SVG] Define enum _cairo_svg_version.
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[PS] Eliminate compiler warnings about unoptimizable loops<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[PS] Rename n_glyphs to num_glyphs_unsigned<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[SVG] Fix compiler warning<br><br>Carl Worth (18):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Increment cairo version to 1.3.3
 after 1.3.2 snapshot<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ROADMAP: Set cairo 1.4 to early January for sake of Gnome 2.18<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cairo-perf: When iteration count is given on command-line, never execute fewer<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;perf: Add box_outline test case.
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add const qualifier to cairo_path_t* parameter of cairo_append_path<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Require librsvg 2.15.0 (was 2.14.0) for testing of SVG backend.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;test/clip-operator: Use round to pass only integers to cairo_show_glyphs
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;test: Use round to pass only integers to cairo_show_glyphs (in 3 more tests)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;give the big-trap test the XFAIL treatment.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add skip list implementation (many thanks to Keith Packard)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add new tessellator (unused) in 
cairo-bentley-ottmann.c<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adapt new tessellator to match the interface provided by the old tessellator.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Switch from old tessellator to new tessellator<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Make event_queue_insert ignore duplicate intersection events (not duplicate start/stop events)
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add some missing cairo_private decorators<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add Daniel Amelang and Joonas Pihlaja to the AUTHORS file<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NEWS: Add notes for 1.3.4 snapshot<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Increment cairo version to 1.3.4<br><br>Dan Amelang (5):
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add _cairo_matrix_is_translation<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Refactor _cairo_matrix_is_integer_translation<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add and incorporate _cairo_gstate_transform_glyphs_to_backend<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optimize _cairo_matrix_to_pixman_matrix for the common case of an identity matrix
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Change _cairo_matrix_to_pixman_matrix to use a pixman_transform_t as the template, thus avoiding a forced memcpy<br><br>Daniel Amelang (2):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add _cairo_lround for much faster rounding<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Replace existing rounding code with _cairo_lround
<br><br>Emmanuel Pacaud (5):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add SVGPrint support.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Use SVG multipage capability.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;test/pixman-rotate.c: Don't issue a show_page, it's already done in cairo-test.c<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Merge branch 'svgprint'
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SVG: plug a memory leak<br><br>Joonas Pihlaja (11):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A 96 by 64 bit divrem that produces a 32 bit quotient and 64 bit remainder.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Replace the 128 bit divrem by a 96/64 bit one.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Use an LFSR instead of random().
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Special cases for skip list comparators.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Avoid a skip-list lookup when deactivating edges.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Separate start and stop events from intersections (first try.)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tweak comparators.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Malloc less using a free list of nodes.
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Make the skip list check for uniqueness.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sort pointers instead of cairo_bo_events in the tessellator.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;perf: new-tessellator: Deferred trapezoid generation (first try)<br><br>Vladimir Vukicevic (1):
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[test] add big-trap test<br><br>What is cairo<br>=============<br>Cairo is a 2D graphics library with support for multiple output<br>devices. Currently supported output targets include the X Window<br>System, win32, and image buffers, as well as PDF, PostScript, and SVG
<br>file output. Experimental backends include OpenGL (through glitz),<br>Quartz, XCB, BeOS, and DirectFB.<br><br>Cairo is designed to produce consistent output on all output media<br>while taking advantage of display hardware acceleration when available
<br>(for example, through the X Render Extension).<br><br>The cairo API provides operations similar to the drawing operators of<br>PostScript and PDF. Operations in cairo including stroking and filling<br>cubic B¨¦zier splines, transforming and compositing translucent images,
<br>and antialiased text rendering. All drawing operations can be<br>transformed by any affine transformation (scale, rotation, shear,<br>etc.).<br><br>Cairo has been designed to let you draw anything you want in a modern
<br>2D graphical user interface.&nbsp;&nbsp;At the same time, the cairo API has been<br>designed to be as fun and easy to learn as possible. If you're not<br>having fun while programming with cairo, then we have failed<br>somewhere---let us know and we'll try to fix it next time around.
<br><br>Cairo is free software and is available to be redistributed and/or<br>modified under the terms of either the GNU Lesser General Public<br>License (LGPL) version 2.1 or the Mozilla Public License (MPL) version<br>1.1
.<br><br>Where to get more information about cairo<br>=========================================<br>The primary source of information about cairo is:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://cairographics.org/">http://cairographics.org/
</a><br><br>The latest releases of cairo can be found at:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://cairographics.org/releases">http://cairographics.org/releases</a><br><br>Snapshots of in-development versions of cairo:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="http://cairographics.org/snapshots">http://cairographics.org/snapshots</a><br><br>The programming manual for using cairo:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://cairographics.org/manual">http://cairographics.org/manual</a>
<br><br>Mailing lists for contacting cairo users and developers:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://cairographics.org/lists">http://cairographics.org/lists</a><br><br>Answers to some frequently asked questions about cairo:<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://cairographics.org/FAQ">http://cairographics.org/FAQ</a><br><br><br>_______________________________________________<br>cairo-announce mailing list<br><a href="mailto:cairo-announce@cairographics.org">
cairo-announce@cairographics.org</a><br><a href="http://cairographics.org/cgi-bin/mailman/listinfo/cairo-announce">http://cairographics.org/cgi-bin/mailman/listinfo/cairo-announce</a><br><br>_______________________________________________
<br>cairo mailing list<br><a href="mailto:cairo@cairographics.org">cairo@cairographics.org</a><br><a href="http://cairographics.org/cgi-bin/mailman/listinfo/cairo">http://cairographics.org/cgi-bin/mailman/listinfo/cairo</a>
<br><br><br></blockquote></div><br>