[cairo] cairo release 1.14.0 now available

Krzysztof KosiƄski tweenk.pl at gmail.com
Tue Oct 14 06:28:19 PDT 2014


Excellent, congratulations on the release!

Regards, Krzysztof

2014-10-14 5:31 GMT+02:00 Bryce Harrington <bryce at osg.samsung.com>:
> A new cairo release 1.14.0 is now available from:
>
>   http://cairographics.org/releases/cairo-1.14.0.tar.xz
>
>     which can be verified with:
>
>     http://cairographics.org/releases/cairo-1.14.0.tar.xz.sha1
>     53cf589b983412ea7f78feee2e1ba9cea6e3ebae  cairo-1.14.0.tar.xz
>
>     http://cairographics.org/releases/cairo-1.14.0.tar.xz.sha1.asc
>     (signed by Bryce Harrington)
>
>   Additionally, a git clone of the source tree:
>
>   git clone git://git.cairographics.org/git/cairo
>
>     will include a signed 1.14.0 tag which points to a commit named:
>     f6fd372a8b31a0bebbdfe36090d6ffc7bab9a2f8
>
>     which can be verified with:
>     git verify-tag 1.14.0
>
>     and can be checked out with a command such as:
>     git checkout -b build 1.14.0
>
>
> Release 1.14.0 (2014-10-13 Bryce Harrington <bryce at osg.samsung.com>)
> ====================================================================
> Hard to believe it's been over a year since our last release, but it's
> not for lack of activity.  This release includes contributions of a wide
> assortment of bug fixes, build system improvements, warnings cleanups,
> codebase refactoring, test suite repairs, and static analysis work.
>
> This release is lighter on features (compared with 1.12.10) but includes
> a highly demanded rehaul of our image downscaling functionality, which
> solves a serious problem experienced by Inkscape users when shrinking
> embedded bitmaps in SVG files.  The new scaling algorithms are used by
> the image backend and by other backends as needed for fallbacks.
>
>
> Features
> --------
>
>   Filtering improvements for the image backend, in particular
>   down-scaling of images produces filtered images that depend on all the
>   pixels of the source. When using the image backend you get the
>   following settings:
>
>   CAIRO_FILTER_GOOD: uses a box filter for scales less than .75 in
>     either direction. For scales larger than this, the same filter as
>     CAIRO_FILTER_BILINEAR is used.
>
>   CAIRO_FILTER_BEST: uses a Catmull-Rom filter always. When upscaling
>     more than 2x this will produce anti-aliased square pixels, similar
>     to OS/X.
>
>   CAIRO_FILTER_GAUSSIAN: uses PIXMAN_FILTER_BEST, which in current
>     pixman is the same as BILINEAR. (This is subject to change in the
>     future).
>
>   xlib and xcb also use the image fallback for GOOD/BEST filters, but
>   note that other backends do not implement these filtering fixes yet,
>   however other actions may cause them to use an image fallback which
>   will cause these filters to be used.
>
>   Improve handling of device transformation and scaling, allowing Cairo
>   to now support scaling at a device level, permitting easier, more
>   transparent HiDPI support.
>
>   Support JBIG2 mime data in PDF.  This allows embedding of more
>   compressed JPEG formats within PDF, rather than including the full
>   uncompressed image.  Also, reduce the number of transparency groups
>   used by PDF to keep the file size small and viewing/printing of the
>   PDF fast.
>
>   Expand the embedding section to include stencil mask support.
>
>   Reorder font declarations to be in natural order.
>
>   Update the Skia backend to build against current Skia (as of June
>   2014).
>
>   Drop Link-Time Optimization (LTO) support from build system.  This
>   seems to have caused much trouble for unclear benefit, and most
>   distros are reverting or disabling it anyway.
>
>   Optimize VBO size on GL to 1M and to 16k for EGL.  This improves
>   (theoretical) performance for desktop GLX use cases while avoiding
>   hitting VBO memory size limitations on embedded devices.
>
> API Changes
> -----------
>
>   cairo_surface_set_device_scale, cairo_surface_get_device_scale:
>
>     Sets a scale that is multiplied to the device coordinates
>     determined by the CTM when drawing to @surface. One common use for
>     this is to render to very high resolution display devices at a scale
>     factor, so that code that assumes 1 pixel will be a certain size
>     will still work.
>
>   cairo_egl_device_get_display, cairo_egl_device_get_context:
>
>     Support get/set of EGLContext and EGLDisplay for egl-based cairo
>     devices, similar to GLX.
>
> Dependency Changes
> ------------------
>
>   Cairo now requires glib 2.14 for its gobject helper functions,
>   and pixman 0.30 for downscaling.
>
>
> Bug fixes
> ---------
>
>   Don't embed CMYK Jpeg images in svg.
>
>   Fix tests to place output in proper location.
>
>   Fix determination of alpha for all surfaces when recording.
>
>   Extend oversize check to cairo_gl_surface_create_for_texture, so an
>   error surface is returned if the texture is too large to render to.
>
>   Fix embedding of mime data in PDF and PS files.
>
>   Remove useless error handling in *_reply() functions in XCB.
>
>   Fix a double-free exposed by multithreaded apps creating and
>   destroying the same font concurrently.
>   https://bugs.freedesktop.org/show_bug.cgi?id=69470
>
>   Fix corrupt stacks produced by bugs in operand emission for trace.
>
>   Fix out of bounds array access in format cache for xlib
>
>   Don't rename glyphs used by seac operator.  This can cause certain
>   combined characters to use their decorations (e.g. umlauts on ö) to be
>   lost during printing of PDFs using evince.
>   https://bugs.freedesktop.org/show_bug.cgi?id=70364
>
>   Fix crash on calling cairo_create with a finished surface
>
>   Fix SSIZE_T definition problem when making with MSYS on Windows7
>
>   Fix one off issue in gl context cleanup
>
>   Fix usage of CAIRO_STACK_ARRAY_LENGTH
>
>   Fix rectangle stroke with non rectilinear pen
>
>   Fix imagemask with pattern source failure on some printers.  This bug
>   could cause files converted using pdftops to fail for example on Ricoh
>   printers, or opening in Adobe Distiller on Windows.
>   https://bugs.freedesktop.org/show_bug.cgi?id=69485
>
>   Fix whitespace in font names
>
>   Fix page size in generated PDFs.  When printing using pdftocairo on
>   larger page sizes, such as 11x17, the image would be cropped to letter
>   size.
>   https://bugs.freedesktop.org/show_bug.cgi?id=73452
>
>   Fix path-currentpoint test by preserving current-point in
>   copy_path()/append_path() sequence
>
>   Fix generation of HTML in code docs for
>   cairo-format-stride-for-width.  Raw HTML code was being passed
>   to the browser, instead of displaying normally.
>   https://bugs.freedesktop.org/show_bug.cgi?id=63257
>
>   Fix spelling of "tessellator" throughout code.  We're using the
>   American rather than British spelling of this word.
>   https://bugs.freedesktop.org/show_bug.cgi?id=50411
>
>   Fix crash in pixman_image_composite32
>
>   Fix crash when trying to modify a (const) all-clipped cairo_clip_t
>   https://bugs.freedesktop.org/show_bug.cgi?id=75819
>
>   Add check_composite method to all compositors, to fix crashes in the
>   test suite.
>
>   Fix crash in Firefox when scrolling on certain pages.
>
>   Fix memory leaks found by static analysis.
>
>   Fix build of any2ppm if fork is not available.
>
>   Fix broken build for Qt backend, due to missing libstdc++.
>
>   Fix typo in two cairo_uint128 functions.  Fixes potential build issues
>   on systems without a uint128 type.
>
>   Fix build when --enable-pdf=no
>
>   Fix cache_frozen assertions for Win32 print.
>
>   Correctly check for xcb image surface for inplace upload
>
>   Fix webkit-based web browser crashes due to empty boxes by skipping
>   over them when tesselating.
>
>   Make pixman, libpng, and zlib paths commandline configurable for win32
>   builds.
>
>   Fix image scale on Win32 when GDI scale is not identity.
>
>   Fix float endian configure test when using clang -O4
>
>   Fix compilation with Android bionic libc
>
>   Don't try to build util/sphinx on Windows
>
>   Fix loss of precision when emitting joins.  This was caused by
>   discrepancies in line gradients when passing trapezoids around.
>
>   Fix loss of precision and associated rendering issues in
>   cairo-tor-scan-converter from projection onto sample grid.
>
>   Fix pixman oversampling of neighbouring edges within a cell by
>   eliminating self-intersections for the pixman traps compositor.
>
>   Fix multi-line string splitting in PDFs
>
>   Various cleanups and fixes to warnings, documentation, tests, and
>   build system.  Improve error handling and return value checks.
>   Cleanup XFAIL tests and reference images.  Cover recently added
>   functionality.
>
>
> --
> Bryce Harrington
> Senior Open Source Developer  -  bryce at osg.samsung.com
> Open Source Group             -  Samsung Research America
>
>
>
> ------------------------------------------------------------------------
>
> Cairo - Multi-platform 2D graphics library
> http://cairographics.org
>
> What is cairo
> =============
> Cairo is a 2D graphics library with support for multiple output
> devices. Currently supported output targets include the X Window
> System (via both Xlib and XCB), quartz, win32, and image buffers,
> as well as PDF, PostScript, and SVG file output. Experimental backends
> include OpenGL, 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 changes in this release:
>
> Adrian Johnson (24):
>       Downscaling requires pixman 0.30
>       svg: Don't embed CMYK Jpeg images
>       pdf: avoid making groups a transparency group if not required
>       pdf: fix embedding of mime data that has been broken since 0a10982f
>       ps: fix embedding of mime data
>       pdf: support JBIG2 mime data
>       test: update mime-data to test jbig2 mime types
>       pdf: combine source and mask images into single image
>       pdf: Support stencil masks with jpeg/jpx/jbig2 embedding
>       pdf: stencil masks may be opaque
>       type1-subset: don't rename glyphs used by seac operator
>       pdf/ps: avoid outputting excess decimal places in matrices
>       Add test for rectangle path optimization with non rectilinear pen
>       pdf: fix rectangle stroke with non rectilinear pen
>       Add test for paint with alpha and clipping bug
>       ps: remove duplicate /Interpolate from image dictionary
>       ps: fix imagemask with pattern source failure on some printers
>       ps: use setpagedevice to set page size
>       ps: cairo_set_page_size does not need to be in eps output
>       ps: add font DSC comments
>       type1: strip space from end of font name
>       win32 printing: fix image scale when GDI scale is not identity
>       Fix compilation with bionic libc
>       pdf: don't use '\' to split strings across multiple lines
>
> Alexander Larsson (10):
>       gstate: Respect device transform in stroke
>       default-context: Inherit device scale in push_group surface
>       subsurface: Handle device scales
>       gstate: Move device-scale font scaling to gstate
>       gstate: Handle device scale on surface as source
>       surface: expose the device scale
>       tests: Add device scale test to "full" testrun similar to offsets
>       surface: Opencode create_similar
>       surface: Merge scratch construction into _cairo_surface_create_scratch
>       surface: Inherit device scale in cairo_surface_create_similar()
>
> Andrea Canciani (2):
>       quartz: Fix build
>       quartz-image: Fix build
>
> Behdad Esfahbod (9):
>       Check for XRenderSolidFill()
>       [tests] Add path-currentpoint
>       Preserve current-point in copy_path()/append_path() sequence
>       Revert "[ft] Fix memory bug in copying bitmaps"
>       chmod a+x cairo-trace
>       [trace] Don't print FC_CHARSET, FC_LANG, and FC_CAPABILITY
>       [cairo-trace] Work around fontconfig :charset= parse format change
>       Binary mode in any2ppm
>       More binary mode for Windows
>
> Benjamin Otte (1):
>       xlib: Fix typo in documentation
>
> Bill Spitzak (8):
>       V6 image: Use convolution filters for sample reconstruction when downscaling
>       V5: Use NEAREST filter when possible
>       image: Move filter decision to _cairo_pattern_analyze_filter
>       xlib: Add symbols to indicate if XRender supports GOOD/BEST filtering
>       xlib: Use image fallback for GOOD/BEST filters
>       xcb: Add switches for whether XRender supports GOOD/BEST filtering
>       xcb: Use image fallback for GOOD/BEST filters
>       image: Corrected extents calculations
>
> Bryce Harrington (65):
>       test: Add test for image downscaling
>       test: Test a variety of scales when downscaling
>       test: Exercise image scaling quality when downscaling
>       test: Move cairo_pattern_set_filter to after cairo_set_source_surface
>       test:  Drop unnecessary math.h include
>       Fix SSIZE_T definition problem when making with MSYS on Windows7
>       test:  Replace deprecated rsvg_init() in any2ppm test
>       test:  Handle error in fgets call in ps-eps test
>       test:  Drop unused path variable in two recently added tests
>       cairo-trace:  Stringify CAIRO_STATUS_JBIG2_GLOBAL_MISSING
>       cairo-script: Error if asked to decompress with missing compression lib
>       cairo-script: Compare status with CSI enums
>       perf: Guarantee path width is non-negative
>       test: Quell warning for inclusion of old rsvg header files
>       test: Quell warning for deprecated g_type_init()
>       xml: Drop unused variable
>       xml: constify source objects for emit routines
>       mesh: Avoid theoretical infinite loops
>       gl: Handle PIXMAN_a8r8g8b8_sRGB format in switch
>       image: Fix bad HTML generation in code docs for cairo-format-stride-for-width
>       Add explanation to enum _cairo_int_status
>       Add explanation to _cairo_surface_create_in_error
>       Add comment to explain _cairo_edge_compute_intersection_*
>       Correct spelling of "tessellator" throughout code
>       gitignore: Ignore generated tmpl dir in public docs
>       doc: Add missing sections and symbols for public docs
>       doc: Drop a couple quartz routines which distcheck claims don't exist
>       Mark recently added _cairo_output_stream_print_matrix private symbol
>       surface: Make parameter naming consistent between header and impl
>       Document that libglib2.0-doc is needed to avoid some xref warnings
>       skia: Add section definitions and code docs for skia backend
>       perf: Refactor some common macros to cairo-perf.h
>       NEWS: Add bug links and reword feature and bug descriptions
>       Fix segfault in firefox when scrolling on certain pages
>       .gitignore: Ignore two generated files in build/
>       configure.ac: Quell warnings about AM_PROG_AR when using automake 1.12
>       configure.ac: Add a --disable-lto configure option
>       configure.ac: Fix broken build for Qt backend
>       cairo-wideint:  Fix typo in two cairo_uint128 functions
>       xlib: Fix mispelling in a comment
>       Disable font options for xcb.
>       NEWS:  Bring up to date with recent bug fixes.
>       README:  Update required dependencies
>       AUTHORS: Add Ravi, myself, and a couple other frequent contributors
>       NEWS: Drop unfinished thought
>       cairo-gl: Make VBO size run-time settable
>       gl: Track the VBO size as a property of the ctx
>       gl: Increase default VBO size on GL to 1M
>       NEWS: Note that downscaling changes only affect image + fallback
>       Don't return NULL to clients when getting image
>       Don't return NULL to clients when getting device
>       build:  Fix float endian configure test when using clang -O4
>       NEWS: Revise downscaling feature description
>       sphinx: Add ickle's explanation of what sphinx does
>       quartz: Check for quartz surface type before conversion
>       Declare as private the new cairo_lines_compare_at_y symbol
>       Get make check back to a happy spot
>       test: Fix error message to specify the executable that was missing
>       test: Add an update-refs.sh script to update reference images
>       test: Update pixman downscaling 95 reference images
>       NEWS: Update with latest changes and finalize for release
>       NEWS: Flesh out docs for new APIs
>       1.14.0 release
>       pattern: Restore dropped inclusion of cairoint.h
>       Start 1.14.1 development
>
> Bryce W. Harrington (10):
>       test: Don't ignore test output files left in test directory
>       test: Fix several tests to place output files in the output directory
>       test: Make cairo_test_mkdir() usable throughout tests.
>       test: Ensure output dirs exist, falling back to current dir if needed
>       svg, test: Refer to output filename by variable, not a hardcoded value
>       gitignore: Ignore build chaff when configuring with --enable-gtk-doc
>       test: Comma separate keywords
>       test: Space out keywords for clarity
>       test: Document use of -k and CAIRO_TEST_TARGET to run test subsets
>       NEWS: Summarize recent changes
>
> Chris Wilson (35):
>       Post-release version bump
>       Bump version for new development tree, 1.13.1
>       spans,traps: Undo device transform from source matrix for recording replays
>       test: Allow CAIRO_TEST_MODE to independently enable extended testing
>       trace: Record set-device-scale
>       script: Add support for replaying device-scale
>       test/pixman-downscale: Open-code fmin()
>       font: Push the last reference dec into the backend->destroy() callback
>       trace: Fix operand emission
>       win32: Reorder font declarations to be in natural order
>       clip: Do not modify the special all-clipped cairo_clip_t
>       xlib: Undo debug hack to force fallbacks
>       traps,xcb: Prefilter zero-area boxes when converting traps
>       traps,xcb: Set the box count after filtering
>       arc: Insert the initial point on the arc
>       test: Exercise stroking bugs with xlib/trapezoids
>       test/coverage: Exercise invariance under mirror symmetry
>       stroke,traps: Emit join without loss of precision
>       test: Remove redundant reference images
>       tor: Fix loss of precision from projection onto sample grid
>       test: Include coverage in the normal test run
>       tor: Review full-row walker
>       test: Remove more duplicated reference images
>       test: Explicitly flip the reference image for recordflip
>       test: Add another coverage example demonstrating the seams in tor
>       test: Fix coverage-abutting
>       test: Add a simple rasteriser to check fidelity of edge rendering
>       test/simple: Tighten sanity checks in reference image generator
>       tor: Perform analytic coverage over the pixel not sample points
>       tor: Enable analytic processing for starting rows
>       test: Refresh reference images for tor rendering changes
>       image: Eliminate self-intersections for the pixman traps compositor
>       test: Add whole flipped replays
>       test: Teach check-preprocessor-syntax.sh about -inlines.h
>       test: Fix conflation of different device scales in index.html
>
> David Weiß (1):
>       made paths to pixman, libpng and zlib configurable by commandline for win32 builds
>
> Eric Le Bihan (1):
>       test: fix build of any2ppm if fork not available
>
> Henry Song (1):
>       gl: Fix one off issue in context cleanup
>
> Jeff Muizelaar (2):
>       Don't use __FUNCTION__ as a string literal
>       clang-cl: Use size of the pointer explicitly
>
> Koji Egashira (1):
>       image: Add NULL checks for return value of _pixman_image_for_color()
>
> Kouhei Sutou (1):
>       cairo_create(): Add finished surface check
>
> Krzysztof Kosiński (1):
>       image: Use convolution filters for sample reconstruction when downscaling
>
> Lukáš Lalinský (1):
>       xcb: Initialize font options from Xft resources
>
> Maks Naumov (3):
>       Fix width and height args for _cairo_xcb_connection_copy_area()
>       Fix font x_scale value in _compute_transform()
>       Fix _cairo_mesh_pattern_equal() when cairo_mesh_patch_t structs are different
>
> Marc-André Lureau (1):
>       build-sys: do not try to build util/sphinx on Windows
>
> Marek Kasik (1):
>       font: Generate PDFs with correct font names
>
> Martin Robinson (1):
>       gl: Extend oversize check to cairo_gl_surface_create_for_texture
>
> Ravi Nanjundappa (22):
>       perf: Refactor some macros to cairo-perf.h
>       test and util: maintain consistency in the usage of ARRAY_LENGTH macro
>       boilerplate: Maintain consistency in the usage of switch cases
>       glx: Use GLX_NONE in place of None
>       test : Maintain consistency in the usage of xcalloc
>       vg: Use EGL_NONE and GLX_NONE in place of None
>       src : Fix warn_unused_result warnings from gcc
>       xcb: make use of _cairo_surface_is_xcb to check for surface type
>       skia: update the source to build with the latest skia
>       .gitignore: Ignore the generated profile data files from callgrind tool in test/
>       skia : Add Debug support for skia backend
>       test : build fix when --enable-pdf=no
>       test: Selective execution of Cairo tests based on FORMAT option
>       test: improve selective execution of Cairo tests based on FORMAT option
>       README : Update README file related to usage of FORMAT make variable
>       configure.ac: configuration check to enable either gl or glesv2, not both at the same time
>       src: Fix memory issue reported by cppcheck static analysis tool
>       test: Fix null pointer issue reported by cppcheck static analysis tool
>       qt: Suppress warnings in qt backend build
>       test: Add test oversized egl surfaces
>       src: check the surface backend for NULL
>       test: Add test for egl-surface-source
>
> Rodrigo Rivas Costa (1):
>       win32 print: fix cache_frozen assertions
>
> Ryan Lortie (1):
>       cairo-version: fix docs build
>
> Sylvestre Ledru (3):
>       Remove some useless declarations found by scan-build, the LLVM/clang static analyzer
>       Remove some potential double free
>       Fix some memory leaks found by scan-build, the LLVM/Clang static analyzer
>
> Søren Sandmann Pedersen (1):
>       _cairo_color_double_to_short(): Use standard rounding algorithm
>
> Uli Schlachter (23):
>       recording: Fix unitialized variable 'free_me'
>       recording: Correctly determine alpha of all surfaces
>       cairo-gobject: Require at least glib 2.14
>       check-doc-syntax: Don't hardcode path to awk
>       image: Handle PIXMAN_a8r8g8b8_sRGB in switch
>       test/multi-page: Fix use-after-free
>       xcb: Remove useless error handling
>       fill_reduces_to_source(): Handle failure of color_to_pixel()
>       Remove XFAIL_TESTS from Makefile.am
>       README: Don't mention XFAIL_TESTS anymore
>       Revert "[xlib] Fast-path the likely case of retrieving a known xrender_format"
>       cairo-xlib: Fix out of bounds array access in format cache
>       Correct usage of CAIRO_STACK_ARRAY_LENGTH
>       cairo svg: Use \n instead of /n in bitmap fonts
>       clip: Fix handling of special all-clipped cairo_clip_t
>       Fix warnings from check-doc-syntax.sh
>       mask compositor: Set a check_composite method
>       mesh-rasterize: Fix number of iterations
>       pthread-same-source: Add ref image generation
>       pthread-same-source: Refresh reference images
>       Revert "image: Use convolution filters for sample reconstruction when downscaling"
>       Remove LTO support
>       xcb: Correctly check for image surface for inplace upload
>
> egag (1):
>       Fixes stroke-clipped, i.c. of a dashed stroke
>
> jimmyfrasche (2):
>       Pattern document clarification
>       Add more info to cairo_surface_set_mime_data docs.
>
>
>
> ----- End forwarded message -----
> --
> cairo mailing list
> cairo at cairographics.org
> http://lists.cairographics.org/mailman/listinfo/cairo


More information about the cairo mailing list