A new cairo snapshot 1.3.8 is now available from:
http://cairographics.org/snapshots/cairo-1.3.8.tar.gz
which can be verified with:
http://cairographics.org/snapshots/cairo-1.3.8.tar.gz.sha1
c2e939f56eb10e1ca90be1a03e4ee6145be37172 cairo-1.3.8.tar.gz
http://cairographics.org/snapshots/cairo-1.3.8.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.3.8 tag which points to a commit named:
129b55f5fcc4c2ae5b63ac6eb73fce8a708e4874
which can be verified with:
git verify-tag 1.3.8
and can be checked out with a command such as:
git checkout -b build 1.3.8
This is the fourth development snapshot in the 1.3 series. It comes just slightly more than one week after the 1.3.6 snapshot.
After the bug fixes in 1.3.6, we're back to our original program of weekly snapshots, each one faster than the one from the week before. Cairo 1.3.8 brings a 2x improvement in the speed of rendering linear gradients (thanks to David Turner), and a significant reduction in X traffic when rendering text (thanks to Xan Lopez and Behdad Esfahbod), making cairo behave very much like Xft does.
A few other things in the 1.3.8 snapshot worth noting include a more forgiving image comparator in the test suite, (using the "perceptual diff" metric and GPL implementation by Hector Yee), a bug fix for broken linking on x86_64 (thanks to M Joonas Pihlaja) and an even better implementation of _cairo_lround, (not faster, but supporting a more complete input range), from Daniel Amelang.
http://pdiff.sourceforge.net/
Have fun with cairo, everybody!
-Carl
Shortlog of changes since 1.3.6
===============================
Behdad Esfahbod (18):
[.gitignore] Add big-trap
[test] Break the "make clean" target into serveral rm calls
[docs] Document various CAIRO_VERSION_* macros
[doc/public/Makefile.am] Move the list of private headers generatable
[docs] Hook various new API into cairo-sections.txt
[docs] Document CAIRO_VERSION_STRING.
[doc] Minor wording improvement.
[pixman] Remove unused slim_internal.h
[slim] Define slim macros to dummy prototypes for non-gcc compilers (
#9150)
[docs] Generate index of new symbols in 1.4
[docs] Update templates
[FreeType] Do not return large structs from functions
[FreeType] Remove "UNSUPPORTED" show_glyphs stub and NULL its entry
Add/remove const to cairo_glyph_t* arguments consistently
[cairoint] Define CAIRO_STACK_BUFFER_SIZE (defaults to 2kb)
[cairo-gstate] Use a local buffer on the stack for small glyph operat
ions
Cache rounded glyph advance values
[Xlib] Rewrite an optimized cairo_xlib_show_glyphs()
Carl Worth (31):
Bump version to 1.3.7 after making 1.3.6 snapshot
test: Simplify buffer_diff by handling device offset in advance
pdiff: Factor out a comparison function that doesn't read the 'args'
structure
pdiff: Teach pdiff code to accept cairo image surfaces
test: Rework buffer_diff interface as new compare_surfaces
pdiff: Compile pdiff algorithm as a libtool convenience library
pdiff: Fix line endings
pdiff: Re-indent all code
pdiff: Delete all trailing whitespace.
pdiff: Convert C++-style comments to good old-fashioned C-style comme
nts
pdiff: Rewrite Laplacian pyramid code from C++ to C
pdiff: Move function that depends on command-line argument class to s
ame file as main
pdiff: Rip out unused ImgDiff code, (dropping -output option)
pdiff: Rewrite main program to use cairo-based pdiff_compare interface
pdiff: Remove old, unused Yee_Compare interface
pdiff: Add .gitignore for perceptualdiff binary
pdiff: Remove intermingled statements and declarations
pdiff: Remove hideous C++ reference passing
pdiff: Remove RGBAImage classes now that we're just using cairo image
surfaces
pdiff: Remove all uses of std::string
pdiff: Fix return value from perceptualdiff program
pdiff: Replace CompareArgs class with args_t struct
pdiff: Rename everything to .c and fix an last littele C++ isms.
pdiff: Remove casts since we're out of the land of X++ where void* is
stupidly broken
Hook up pdiff to the test suite now that its written in C
test: Remove svg-specific reference images no longer needed thanks to
pdiff
test: Remove ps-specific reference images no longer needed thanks to
pdiff
Fix 'make distcheck' after recent file removals
Fix a couple of more stale images holding up 'make distcheck'
NEWS: Add notes for cairo 1.3.8 snapshot
Increment cairo version to 1.3.8 (and libtool versioning to 12:2:10)
Dan Amelang (2):
Change _cairo_lround to correctly handle edge cases previously missed
Don't use the GNU-only grep option "-a"
David Turner (1):
Optimize gradient computations
M Joonas Pihlaja (5):
tessellator bug fix: linking fails on x86_64 due to superfluous inlin
e attribute.
Change license of tessellator tests to the MIT license.
Replace point sampling in the fill-degenerate-sort-order with renderi
ng.
Rework the in-fill-empty-trapezoid test to not use the cairo_test() f
ramework.
test: random-intersections
Peter Weilbacher (1):
Add OS/2 backend and its requirement to INSTALL and README, following
the example of BeOS.
What is cairo
=============
Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window System, win32, and image buffers, as well as PDF, PostScript, and SVG file output. Experimental backends include OpenGL (through glitz), Quartz, XCB, BeOS, OS/2, and DirectFB.
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 including stroking and filling cubic B=E9zier splines, transforming and compositing translucent images, and antialiased text rendering. All drawing operations can be transformed by any affine transformation (scale, rotation, shear, etc.).
Cairo has been designed to let you draw anything you want in a modern 2D graphical user interface. At the same time, the cairo API has been designed to be as fun and easy to learn as possible. If you're not having fun while programming with cairo, then we have failed somewhere---let us know and we'll try to fix it next time around.
Cairo is free software and is available to be redistributed and/or modified under the terms of either the GNU Lesser General Public License (LGPL) version 2.1 or the Mozilla Public License (MPL) version 1.1.
Where to get more information about cairo
=========================================
The primary source of information about cairo is:
http://cairographics.org/
The latest releases of cairo can be found at:
http://cairographics.org/releases
Snapshots of in-development versions of cairo:
http://cairographics.org/snapshots
The programming manual for using cairo:
http://cairographics.org/manual
Mailing lists for contacting cairo users and developers:
http://cairographics.org/lists
Answers to some frequently asked questions about cairo:
http://cairographics.org/FAQ
http://cairographics.org/snapshots/cairo-1.3.8.tar.gz
which can be verified with:
http://cairographics.org/snapshots/cairo-1.3.8.tar.gz.sha1
c2e939f56eb10e1ca90be1a03e4ee6145be37172 cairo-1.3.8.tar.gz
http://cairographics.org/snapshots/cairo-1.3.8.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.3.8 tag which points to a commit named:
129b55f5fcc4c2ae5b63ac6eb73fce8a708e4874
which can be verified with:
git verify-tag 1.3.8
and can be checked out with a command such as:
git checkout -b build 1.3.8
This is the fourth development snapshot in the 1.3 series. It comes just slightly more than one week after the 1.3.6 snapshot.
After the bug fixes in 1.3.6, we're back to our original program of weekly snapshots, each one faster than the one from the week before. Cairo 1.3.8 brings a 2x improvement in the speed of rendering linear gradients (thanks to David Turner), and a significant reduction in X traffic when rendering text (thanks to Xan Lopez and Behdad Esfahbod), making cairo behave very much like Xft does.
A few other things in the 1.3.8 snapshot worth noting include a more forgiving image comparator in the test suite, (using the "perceptual diff" metric and GPL implementation by Hector Yee), a bug fix for broken linking on x86_64 (thanks to M Joonas Pihlaja) and an even better implementation of _cairo_lround, (not faster, but supporting a more complete input range), from Daniel Amelang.
http://pdiff.sourceforge.net/
Have fun with cairo, everybody!
-Carl
Shortlog of changes since 1.3.6
===============================
Behdad Esfahbod (18):
[.gitignore] Add big-trap
[test] Break the "make clean" target into serveral rm calls
[docs] Document various CAIRO_VERSION_* macros
[doc/public/Makefile.am] Move the list of private headers generatable
[docs] Hook various new API into cairo-sections.txt
[docs] Document CAIRO_VERSION_STRING.
[doc] Minor wording improvement.
[pixman] Remove unused slim_internal.h
[slim] Define slim macros to dummy prototypes for non-gcc compilers (
#9150)
[docs] Generate index of new symbols in 1.4
[docs] Update templates
[FreeType] Do not return large structs from functions
[FreeType] Remove "UNSUPPORTED" show_glyphs stub and NULL its entry
Add/remove const to cairo_glyph_t* arguments consistently
[cairoint] Define CAIRO_STACK_BUFFER_SIZE (defaults to 2kb)
[cairo-gstate] Use a local buffer on the stack for small glyph operat
ions
Cache rounded glyph advance values
[Xlib] Rewrite an optimized cairo_xlib_show_glyphs()
Carl Worth (31):
Bump version to 1.3.7 after making 1.3.6 snapshot
test: Simplify buffer_diff by handling device offset in advance
pdiff: Factor out a comparison function that doesn't read the 'args'
structure
pdiff: Teach pdiff code to accept cairo image surfaces
test: Rework buffer_diff interface as new compare_surfaces
pdiff: Compile pdiff algorithm as a libtool convenience library
pdiff: Fix line endings
pdiff: Re-indent all code
pdiff: Delete all trailing whitespace.
pdiff: Convert C++-style comments to good old-fashioned C-style comme
nts
pdiff: Rewrite Laplacian pyramid code from C++ to C
pdiff: Move function that depends on command-line argument class to s
ame file as main
pdiff: Rip out unused ImgDiff code, (dropping -output option)
pdiff: Rewrite main program to use cairo-based pdiff_compare interface
pdiff: Remove old, unused Yee_Compare interface
pdiff: Add .gitignore for perceptualdiff binary
pdiff: Remove intermingled statements and declarations
pdiff: Remove hideous C++ reference passing
pdiff: Remove RGBAImage classes now that we're just using cairo image
surfaces
pdiff: Remove all uses of std::string
pdiff: Fix return value from perceptualdiff program
pdiff: Replace CompareArgs class with args_t struct
pdiff: Rename everything to .c and fix an last littele C++ isms.
pdiff: Remove casts since we're out of the land of X++ where void* is
stupidly broken
Hook up pdiff to the test suite now that its written in C
test: Remove svg-specific reference images no longer needed thanks to
pdiff
test: Remove ps-specific reference images no longer needed thanks to
pdiff
Fix 'make distcheck' after recent file removals
Fix a couple of more stale images holding up 'make distcheck'
NEWS: Add notes for cairo 1.3.8 snapshot
Increment cairo version to 1.3.8 (and libtool versioning to 12:2:10)
Dan Amelang (2):
Change _cairo_lround to correctly handle edge cases previously missed
Don't use the GNU-only grep option "-a"
David Turner (1):
Optimize gradient computations
M Joonas Pihlaja (5):
tessellator bug fix: linking fails on x86_64 due to superfluous inlin
e attribute.
Change license of tessellator tests to the MIT license.
Replace point sampling in the fill-degenerate-sort-order with renderi
ng.
Rework the in-fill-empty-trapezoid test to not use the cairo_test() f
ramework.
test: random-intersections
Peter Weilbacher (1):
Add OS/2 backend and its requirement to INSTALL and README, following
the example of BeOS.
What is cairo
=============
Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window System, win32, and image buffers, as well as PDF, PostScript, and SVG file output. Experimental backends include OpenGL (through glitz), Quartz, XCB, BeOS, OS/2, and DirectFB.
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 including stroking and filling cubic B=E9zier splines, transforming and compositing translucent images, and antialiased text rendering. All drawing operations can be transformed by any affine transformation (scale, rotation, shear, etc.).
Cairo has been designed to let you draw anything you want in a modern 2D graphical user interface. At the same time, the cairo API has been designed to be as fun and easy to learn as possible. If you're not having fun while programming with cairo, then we have failed somewhere---let us know and we'll try to fix it next time around.
Cairo is free software and is available to be redistributed and/or modified under the terms of either the GNU Lesser General Public License (LGPL) version 2.1 or the Mozilla Public License (MPL) version 1.1.
Where to get more information about cairo
=========================================
The primary source of information about cairo is:
http://cairographics.org/
The latest releases of cairo can be found at:
http://cairographics.org/releases
Snapshots of in-development versions of cairo:
http://cairographics.org/snapshots
The programming manual for using cairo:
http://cairographics.org/manual
Mailing lists for contacting cairo users and developers:
http://cairographics.org/lists
Answers to some frequently asked questions about cairo:
http://cairographics.org/FAQ