A new cairo snapshot 1.5.8 is now available from: http://cairographics.org/snapshots/cairo-1.5.8.tar.gz which can be verified with: http://cairographics.org/snapshots/cairo-1.5.8.tar.gz.sha1 8ab70db0eec1db3b730537d9076ddabf7e0ba537 cairo-1.5.8.tar.gz http://cairographics.org/snapshots/cairo-1.5.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.5.8 tag which points to a commit named: 4ccb8cb29546432858e778e1b88cada1327f6f45 which can be verified with: git verify-tag 1.5.8 and can be checked out with a command such as: git checkout -b build 1.5.8 This is the fourth snapshot in cairo's unstable 1.5 series. It comes 2 weeks after the 1.5.6 snapshot. It adds a few new API functions. Most notably all callers of cairo_image_surface_create_for_data should now be calling cairo_format_stride_for_width to compute a legal stride value. With this snapshot we are getting extrmely close to a final 1.6.0 release. We would appreciate as much testing as possible so that we can eliminate bugs before that release rather than after. So give this snapshot a try and let us know how things go for you. And have fun with cairo! -Carl Changes in cairo 1.5.8 since 1.5.6 ================================== New API in cairo 1.5.8 ---------------------- We've added a new function that should be called to compute a legal stride value before allocating data to be used with cairo_image_surface_create_for_data: int cairo_format_stride_for_width (cairo_format_t format, int width); We've also added a new cairo_path_extents function that can be used to compute a bounding box for geometry such as a single line segment, (contrast with cairo_path_extents and cairo_stroke_extents): void cairo_path_extents (cairo_t *cr, double *x1, double *y1, double *x2, double *y2); And finally, we've added a function to allow for querying the XRenderPictFormat of a cairo-xlib surface: XRenderPictFormat * cairo_xlib_surface_get_xrender_format (cairo_surface_t *surface); API changes ----------- Fix return types of cairo_surface_show_page and cairo_surface_copy_page. This is an API change to functions that are new in the 1.5 series, so not an API break compared to any stable cairo release, (1.0.x, 1.2.x, 1.4.x). Change the return type of cairo_get_current_point() from void to cairo_status_t. This allows the caller to receive a CAIRO_STATUS_NO_CURRENT_POINT value to distinguish the a current point at the origin from no current point existing. Performance improvement ----------------------- Improve performance of clipping by using an optimized code path internally, (with the ADD operator instead of IN). General bug fixes ----------------- Fix various cairo_*_extents functions to initialize the return-value variables even in the case of a cairo_t in error. Treat NULL as a legitimate value for cairo_font_options_t*. [XXX: On discussion afterwards, we decided against this change so we plan to remove this again before 1.6.0] Fix rendering with CAIRO_ANTIALIAS_NONE to be more predictable, (that is, to avoid seams appearing when geometry and imagery share an identical edge). Portions of this fix are in the pixman library and will appear in a future release of that library. Avoid triggering an error for a font size of 0. Miscellaneous changes --------------------- Require pixman >= 0.9.6. There has been a tremendous amount improvement to cairo's documentation. We're delighted that 100% of the public API has at least some documentation in the API reference manual. Many thanks to Behdad Esfahbod and Nis Martensen for leading this effort. cairo-pdf and cairo-ps ---------------------- Eliminate failure when a Type 1 font is embedded with an explicit glyph 0. cairo-pdf --------- Implement a more correct and more efficient approach for patterns with an extend mode of CAIRO_EXTEND_REFLECT. cairo-ps -------- Fix image masks to properly pack and pad mask bits. cairo-quartz ------------ Take care to only use DrawTiledImage for integer-aligned images, (and use slower paths to get the correct result in other cases). cairo-win32 ----------- Fix for older versions of mingw. Improve the handling of the clipping with the win32 and win32-printing surfaces. Fix rendering of non black/white text. 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 include stroking and filling cubic Bézier 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 versions of cairo can always be found at: http://cairographics.org/download Documentation on using cairo and frequently-asked questions: http://cairographics.org/documentation http://cairographics.org/FAQ Mailing lists for contacting cairo users and developers: http://cairographics.org/lists Roadmap and unscheduled things to do, (please feel free to help out): http://cairographics.org/roadmap http://cairographics.org/todo List of all changes from cairo 1.5.6 to 1.5.8 ============================================= Adrian Johnson (5): win32-printing: define GRADIENT_FILL_RECT_H bug #14107 Fix PDF extend-reflect test failure Type1-subset: Add newline to the end of the font Fix PS/PDF Type 1 font embedding when glyph 0 is used Fix undefined macro that was preventing the tests from compiling Behdad Esfahbod (62): [cairo-fixed/wideint-private.h] Split out typedefs from prototypes [cairoint.h] Move MSC inline macros into cairo-compiler-private.h [cairo-operator] Remove unused cairo-operator.c [cairo-path-stroke] Use M_SQRT2 for constant value [test] Only summarize check results for the tests tested! [ROADMAP] Add item: Make cairo-ft respect FC_FT_FACE pattern element [test] Also check for reference images listed in Makefile.am but missing [test] Minor fix for check-ref-dups rule [cairo-scaled-font] Don't err on font size 0 [cairo-scaled-font] Oops, return err if not handling it [cairo-scaled-font] Don't err on font size 0, really [cairo-scaled-font] Unbreak it after my recent commit [configure.in] Require pixman >= 0.9.6 [cairo-scaled-font] Fix bug in glyphs bounding box computation [test] Test that cairo_text_extents() and cairo_scaled_font_text_extents() match [test/text-zero-len] Test text and font extents for font size 0 [test/bitmap-font] Test under all combinations of hinting, test font metrics too [cairo-ft] Fix font metrics computation for bitmap fonts and no metrics-hinting [.gitignore] Add check-has-hidden-symbols.i [cairo-ft] Disable embedded bitmaps if hinting style NONE is requested [cairo_surface_show/copy_page()] Make them return void, like cairo_show/copy_page() do [cairo-pdf-operators] Reformat typedef to not confuse gtk-doc [doc] Update for recent API changes [doc] Update list of private header files Change cairo_get_current_point() to return cairo_status_t instead of void [src] Fix make check [test/font-matrix-translation] Fix function signature [src] Fix gtk-doc warnings [doc] Add Long_Description and some See_Also for all chapters [cairo_operator_t] Improve docs [doc] Expand a couple nicks to full enum names [src/check-*] Shut make up [doc] Update templates for recently added APIs [doc] Another enum nick expansion [doc] Make sure all macro names in docs are prefixed by % [doc] Make sure all type names in docs are prefixed by # [doc] Improve docs for new API [doc/public/check-doc-coverage.sh] Test that doc coverage is 100% [doc] Minor improvement [doc] Improve syntax [src/check-doc-syntax.sh] Check for various doc syntax consistency rules [doc] Make sure all function names in docs are followed by () [doc] Replace 'NOTE' by 'Note' and add it to test [doc] Stricter syntax check for type names, update test [doc] Fix typo [doc] Document the surface type of win32-printing surface being different [doc] Rename cairo-font.sgml to cairo-font-face.sgml [configure.in] Add commented-out #undef's for disable stable backends in cairo-features.h [doc] More syntax fixes [doc] Remove excess paranthesis [configure.in] Generate a cairo-no-features.h with macros for disabled supported backends [doc] Document CAIRO_HAS_* macros. We now finally have real 100% coverage. [configure.in] Minor change to cairo-features.h comments to make tests pass [src/check-doc-syntax.sh] Skip test if GNU grep is not available [doc] Run check-doc-syntax.sh for SGML docs too [cairo_image_surface_create_for_data] Document stride error status [Makefile.am] Remove ROADMAP and TODO from dist files [cairo-image-surface.c] Cleanup stride checking and improve docs [Makefile.am] Minor wording change [doc] Fix cairo_operator_t docs to make Carl (and Keith) happy [cairo_operator_t] Mark DestAtop unbounded and document boundedness [src/Makefile.am] Reorganize Bertram Felgenhauer (3): anchor pattern transformations at the pattern origin update reference images for some non-aa testcases improve comments for the pixman transformation anchoring math. Brian Ewins (5): [path-fixed] add _cairo_path_fixed_interpret_flat [path-fixed] make _cairo_path_fixed_bounds use _cairo_path_fixed_interpret_flat [cairo] Add cairo_path_extents() [path] Use new interpret_flat infrastructure for path_count. [path] use new interpret_flat infrastructure for path_populate Carl Worth (41): Increment version to 1.5.7 after the 1.5.6 snapshot Remove some gratuitous assert statements Quiet a warning about switch without some cairo_surface_type_t enum values Add a1-image-sample and a1-traps-sample tests Clarify documentation of cairo_{fill,stroke,path}_extents Define repeated string literal once Correct near-pangram to be an actual pangram Fix cairo_path_extents to ignore lone cairo_move_to points. Add cairo_path_extents testing to several cases missing it Test and document extents of degenerate "dots" Rename trailing_move_to_point to move_to_point Add new rectilinear-miter-limit test to demonstrate bug Disable rectilinear stroke optimization for small miter limit values Test and document that fill rule has no effect on cairo_path_extents Make Carl return from his time-traveling expedition Remove ROADMAP and TODO, mentioning their URLs in README Rename cairo_format_width to cairo_format_bits_per_pixel and correct its logic Add cairo_image_surface_stride_for_width Rename cairo_image_surface_stride_for_width to cairo_format_stride_for_width Clarify the documentation of stride within cairo_image_surface_create_for_data Add missing cairo_private (for _pixman_format_to_masks) Add new API cairo_xlib_surface_get_render_format Return NULL from cairo_xlib_surface_get_xrender_format without an error Add get-xrender-format test to test cairo_xlib_surface_get_xrender_format Test the no-Render-extension-available case in get-xrender-format Add pdf-specific reference images for meta-surface-pattern Add documentation for cairo_filter_t Add example to documentation of cairo_pattern_set_filter Fix some documentation typos Fix bitmap-font test by using near-equality for double comparison Add missing libcairo_font_subset_sources to fix the build Initialize return values for cairo_*_extents in case of error wAdd proper error propagation to _cairo_matrix_compute_scale_factors Fix typo in printf arguments in error message NEWS: Add notes for the 1.5.8 snapshot Remove extend-pad-similar test case Add doc/public test scripts to EXTRA_DIST check-doc-syntax.sh: Fix for non-srcdir builds (such as make distcheck) Add a1-image-sample and a1-traps-sample reference images to the dist list Increment cairo version to 1.5.8 and libtool version to 16:0:14 Add some more reference images to REFERENCE_IMAGES Chris Wilson (21): [Makefile.am] Further massage lcov paths for srcdir != builddir. [test/dash-curve] Add a new test case for dashes along splines. [cairo-path-stroke] Convert degenerate splines into lines. [Makefile.am] Couple check-ref-missing into release-check [Makefile.am] Another path massage for lcov. [test/get-path-extents] Check extents of degenerate paths. [cairo-analysis-surface] Return the nil surface rather than NULL. [cairo-region] Review status propagation. [test/in-fill-trapezoid] Add test to exercise _cairo_trap_contains(). [test/in-fill-trapezoid] Add a few holes. [test/text-zero-len] Test the public cairo_scaled_font_* with NULLs. [text] Set the extents on the error paths. [test/get-path-extents] Exercise cairo_scaled_font_text_extents() [cairo-xlib] Remove the NULL safeguards. [cairo-scaled-font] Typo. [cairo-scaled-font] Propagate the error to the font. [cairo-{ps,pdf}-surface] Assert the font is supported during emission. [test/extend-*] Add various cairo_pattern_set_extend() test cases. [cairo-font-options] Check for a NULL cairo_font_options_t [cairo-font-options] Use cairo_font_options_status() rather open-coding. [cairo-font-options] Treat NULL as a default cairo_font_options_t Jeff Muizelaar (1): Use ADD instead of IN for clipping. Nis Martensen (6): [cairo-surface] Fix doc typo Describe cairo_operator_t, add link to operators/ wiki page Add index of new symbols in 1.6 remove empty tutorial stub and one level of structuring re-indent xml after removal of structuring level Fix typos Peter Weilbacher (2): [cairo-ft] Add FC_PIXEL_SIZE as double, not int [cairo-ft] Fix typo in comment Vladimir Vukicevic (9): Fix usage of cairo_rectangle_int16_t leading to memory corruption cairo_point_int32_t is really int32_t, not int16_t [win32] Better tracking of initial clip [win32] Print non-black/white text correctly in show_glyphs [quartz] Clean up unused APIs a bit [quartz] Do dynamic symbol lookups for 10.4/10.5 optimization symbols [ps] Pad image mask lines out to full lines [win32] Fix initial clip region test [quartz] only use DrawTiledImage if transformed image is integer aligned
Attachment:
pgpEKUtEijYis.pgp
Description: PGP signature