Re: cairo release 1.14.0 now available
Krzysztof Kosiński <[email protected]>
| Newsgroups | gmane.comp.lib.cairo |
|---|---|
| Message-ID | <CAFLw2WRnXZxWKdz+DRfppqwfW2h5C3bXkVThLmN17d1tj9LVvQ@mail.gmail.com> |
Excellent, congratulations on the release! Regards, Krzysztof 2014-10-14 5:31 GMT+02:00 Bryce Harrington <[email protected]>: > 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 <[email protected]>) > ==================================================================== > 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 - [email protected] > 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 > [email protected] > http://lists.cairographics.org/mailman/listinfo/cairo -- cairo mailing list [email protected] http://lists.cairographics.org/mailman/listinfo/cairo