[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