[cairo-commit] [cairo-www] 2 commits - src/news
Carl Worth
cworth at freedesktop.org
Tue Oct 30 22:48:57 PDT 2007
src/news/cairo-1.5.2.mdwn | 307 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 307 insertions(+)
New commits:
commit 4336b5f62adface0145e31c4d0607a543d987065
Merge: 55add5e... 2debe93...
Author: Carl Worth <cworth at cworth.org>
Date: Tue Oct 30 22:52:58 2007 -0700
Merge branch 'master' of annarchy.freedesktop.org:/srv/cairo.freedesktop.org/wiki
commit 55add5eb9d0d646e1817494e2322339c24ec932c
Author: Carl Worth <cworth at cworth.org>
Date: Tue Oct 30 22:52:48 2007 -0700
Add cairo-1.5.2 announcement
diff --git a/src/news/cairo-1.5.2.mdwn b/src/news/cairo-1.5.2.mdwn
new file mode 100644
index 0000000..998e3d9
--- /dev/null
+++ b/src/news/cairo-1.5.2.mdwn
@@ -0,0 +1,307 @@
+[[meta title="cairo 1.5.2 snapshot available"]]
+[[meta date="2007-10-30"]]
+
+ From: Carl Worth <cworth at cworth.org>
+ Date: Tue, 30 Oct 2007 22:47:52 -0700
+ To: cairo-announce at cairographics.org
+ Cc: gnome-announce-list at gnome.org
+ Subject: cairo snapshot 1.5.2 now available
+
+ A new cairo snapshot 1.5.2 is now available from:
+
+ http://cairographics.org/snapshots/cairo-1.5.2.tar.gz
+
+ which can be verified with:
+
+ http://cairographics.org/snapshots/cairo-1.5.2.tar.gz.sha1
+ 39d6593433ce4896a065a6c4ad2882a5cc1fe05a cairo-1.5.2.tar.gz
+
+ http://cairographics.org/snapshots/cairo-1.5.2.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.2 tag which points to a commit named:
+ ee5dc04aaf81d6ce9c496c7966ceebfbd6ab12fb
+
+ which can be verified with:
+ git verify-tag 1.5.2
+
+ and can be checked out with a command such as:
+ git checkout -b build 1.5.2
+
+ This is the first snapshot in cairo's unstable 1.5 series. It comes 4
+ months after the 1.4.10 release. This snapshot includes significant
+ improvements to PDF and PostScript output, which is one of the things
+ in which we're most interested in getting feedback. There are a couple
+ of minor API additions, and several optimizations, (primarily in the
+ "print/vector" backends). And there are dozens of bug fixes and
+ robustness improvements.
+
+ NOTE: This is a snapshot of in-progress development, not a "release".
+ So it is expected that there will be more rough edges than one would
+ find in a major release. For example, various tests in the test suite
+ are currently failing against the PDF backend, and we'll get those
+ fixed before the 1.6 release. But you're likely to notice more
+ improvements than problems, so give this snapshot a try and let us
+ know how it goes for you. Read more below for many details on the
+ exciting things in cairo 1.5.2 compared to cairo 1.4.10.
+
+ Have fun with cairo!
+
+ -Carl
+
+ Snapshot 1.5.2 (2007-10-30 Carl Worth <cworth at cworth.org>)
+ ==========================================================
+ This is the first snapshot in cairo's unstable 1.5 series. It comes 4
+ months after the 1.4.10 release. This snapshot includes significant
+ improvements to PDF and PostScript output, which is one of the things
+ in which we're most interested in getting feedback. There are a couple
+ of minor API additions, and several optimizations, (primarily in the
+ "print/vector" backends). And there are dozens of bug fixes and
+ robustness improvements.
+
+ New dependency on external pixman library
+ -----------------------------------------
+ A significant change in this snapshot compared to all previous cairo
+ releases is that cairo now depends on an external "pixman" library for
+ its software rendering. Previously this same code was compiled
+ internally as part of cairo, but now the code is separate so that both
+ cairo and the X server can now share common code, (thanks very much to
+ Søren Sandmann for his work on separating pixman and maintaining it).
+
+ So users will need to acquire and build pixman before being able to
+ build cairo. The current release is 0.9.6 and can be obtained from
+ here:
+
+ http://cairographics.org/releases/pixman-0.9.6.tar.gz
+
+ which can be verified with:
+
+ http://cairographics.org/releases/pixman-0.9.6.tar.gz.sha1
+ 66f01a682c64403a3d7a855ba5aa609ed93bcb9e pixman-0.9.6.tar.gz
+
+ http://cairographics.org/releases/pixman-0.9.6.tar.gz.sha1.asc
+ (signed by Carl Worth)
+
+ Major PDF/PostScript improvements
+ ---------------------------------
+ Adrian Johnson has done some long-awaited work to make cairo's PDF and
+ PostScript output more interesting than ever before. First, many
+ operations that previously triggered image fallbacks will now be
+ rendered as native vectors. These operations include:
+
+ PDF: cairo_push_group, cairo_surface_create_similar,
+ cairo_mask, A8/A1 surface sources, repeating/reflecting linear
+ gradients.
+
+ PostScript: cairo_push_group, cairo_surface_create_similar,
+ gradients, bilevel alpha masks, (for example, all values either 0 or
+ 255 for an A8 mask).
+
+ Not only that, but when an image fallback is required, it will now be
+ limited to only the necessary region. For example, a tiny translucent
+ image overlaying a small portion of text would previously caused an
+ entire PostScript page to be rendered as a giant image. Now, the
+ majority of that page will be nice text, and there will only be a tiny
+ image in the output.
+
+ Additionally, the PostScript output now carefully encodes text so that
+ if it is subsequently converted to PDF, the text will be
+ selectable.
+
+ This is very exciting progress, and we're hoping to hear from users
+ during the 1.5 series about how things have improved, (for example,
+ inkscape users doing cairo-based PDF export: please let us know how
+ things look). And feel free to pass your thanks along to Adrian for his excellent work.
+
+ NOTE: This much improved PDF output makes more sophisticated use of
+ functionality in the PDF specification. This means that cairo's output
+ will sometimes expose bugs in some free software PDF viewers, (evince,
+ poppler, and xpdf, for example), that are not yet ready for such PDF
+ files. We're working with the poppler maintainers to get these bugs
+ fixed as quickly as possible. In the meantime, please double-check
+ with other PDF viewers if cairo-generated PDF files are not being
+ rendered correctly. It may be due to a bug in the viewer rather than
+ in the PDF file that cairo has created.
+
+ Robustness improvements
+ -----------------------
+ Chris Wilson has made the largest contribution by far to cairo 1.5.2,
+ (in number of commits). His more than 150 commits include a huge
+ number of fixes to increase cairo's robustness. These fixes make cairo
+ more robust against invalid and degenerate input, (NaN, empty path,
+ etc.), against size-0 malloc calls, against memory leaks on
+ error-recovery paths, and against other failures during error
+ handling. He also implemented atomic operations to cairo, and used
+ them to fix cairo's previously non-thread-safe reference counting,
+ again improving robustness.
+
+ Chris has put a tremendous amount of time and effort into writing
+ analysis tools for this work, and in running those tools and fixing
+ the problems they report. We're very grateful for this work, and hope
+ that all cairo users appreciate the more robust implementation that
+ results from it.
+
+ This work is largely thankless, so it might make sense to notice
+ sometime that cairo has been running quite smoothly for you, and when
+ you do, send a quick "thank you" off to Chris Wilson, since it
+ is all definitely running smoother thanks to his work.
+
+ New API
+ -------
+ There are no major additions to cairo's core API. The only new,
+ generic functions are:
+
+ void
+ cairo_surface_copy_page (cairo_surface_t *surface);
+
+ void
+ cairo_surface_show_page (cairo_surface_t *surface);
+
+ which can now be used much more conveniently than the existing
+ cairo_copy_page and cairo_show_page functions in some
+ situations. These functions act identically, but require only a
+ cairo_surface_t* and not a cairo_t*.
+
+ All other API additions are specific to particular backends.
+
+ New cairo-win32 API (new font face function and "win32 printing" surface)
+ -------------------------------------------------------------------------
+ There is a new function for creating a win32 font face for both a
+ logfontw and an hfont together. This complements the existing
+ functions for creating a font face from one or the other:
+
+ cairo_font_face_t *
+ cairo_win32_font_face_create_for_logfontw_hfont (LOGFONTW *logfont,
+ HFONT font);
+
+ There is also a new "win32 printing" surface:
+
+ cairo_surface_t *
+ cairo_win32_printing_surface_create (HDC hdc);
+
+ This interface looks identical to the original
+ cairo_win32_surface_create, (both accept and HDC), but the behavior of
+ this new surface is very different. It should only be called with a
+ printing DC, and will result in all drawing commands being stored into
+ a meta-surface and emitted after each page is complete, with analysis
+ to do as minimal image-based fallbacks as necessary. The behavior and
+ implementation shares much with the PDF and PostScript backends.
+
+ New cairo-ps API (EPS and PostScript level control)
+ ---------------------------------------------------
+ An often requested feature has been the ability to generate
+ Encapsulated PostScript (EPS) with cairo. We have that now with the
+ following very simple API. Just do cairo_ps_surface_create as usual
+ then call this function with a true value:
+
+ void
+ cairo_ps_surface_set_eps (cairo_surface_t *surface,
+ cairo_bool_t eps);
+
+ [NOTE: As always with snapshots, it's possible---though not very
+ likely---that the API could still be modified before a final
+ release. For example, this is the first public cairo function that
+ accepts a Boolean parameter. I'm generally opposed to Boolean
+ parameters, but this is probably the one case where I'm willing to
+ accept one, (namely a "set" function that accepts a single Boolean).]
+
+ Also, it is now possible to control what PostScript level to target,
+ (either level 2 or level 3), with the following new API:
+
+ typedef enum _cairo_ps_level {
+ CAIRO_PS_LEVEL_2,
+ CAIRO_PS_LEVEL_3
+ } cairo_ps_level_t;
+
+ void
+ cairo_ps_surface_restrict_to_level (cairo_surface_t *surface,
+ cairo_ps_level_t level);
+
+ void
+ cairo_ps_get_levels (cairo_ps_level_t const **levels,
+ int *num_levels);
+
+ const char *
+ cairo_ps_level_to_string (cairo_ps_level_t level);
+
+ Improvement for cairo-quartz
+ ----------------------------
+ Brian Ewins had contributed several improvements to cairo-quartz. These
+ include an implementation of EXTEND_NONE for linear and radial
+ gradients, (so this extend mode will no longer trigger image fallbacks
+ for these gradients), as well as native surface-mask clipping, (only
+ on OS X 10.4+ where the CGContextClipToMask function is available).
+
+ He also fixed a semantic mismatch between cairo and quartz for dashing
+ with an odd number of entries in the dash array.
+
+ We're grateful for Brian since not many quartz-specific improvements
+ to cairo would be happening without him.
+
+ Optimizations
+ -------------
+ Optimize SVG output for when the same path is both filled and stroked,
+ and avoid unnecessary identity matrix in SVG output. (Emmanuel Pacaud).
+
+ Optimize PS output to take less space (Ken Herron).
+
+ Make PS output more compliant with DSC recommendations (avoid initclip
+ and copy_page) (Adrian Johnson).
+
+ Make PDF output more compact (Adrian Johnson).
+
+ Release glyph surfaces after uploading them to the X server, (should
+ save some memory for many xlib-using cairo application). (Behdad
+ Esfahbod).
+
+ Optimize cairo-win32 to use fewer GDI objects (Vladimir Vukicevic).
+
+ win32-printing: Avoid falling back to images when alpha == 255
+ everywhere. (Adrian Johnson).
+
+ win32-printing: Avoid falling back for cairo_push_group and
+ cairo_surface_create_similar. (Adrian Johnson)
+
+ Bug fixes
+ ---------
+ Avoid potential integer overflows when allocating large buffers
+ (Vladimir Vukicevic).
+
+ Preparations to allow the 16.16 fixed-point format to change to
+ 24.8 (Vladimir Vukicevic).
+
+ Fix bugs for unsupported X server visuals (rgb565, rgb555, bgr888, and
+ abgr8888). (Carl Worth and Vladimir Vukicevic)
+
+ Fix bugs in PDF gradients (Adrian Johnson).
+
+ Fix cairo-xlib to build without requiring Xrender header
+ files (Behdad Esfahbod).
+
+ Make cairo more resilient in the case of glyphs not being available in
+ the current font. (Behdad Esfahbod)
+
+ Prevent crashes when both atsui and ft font backends are compiled in
+ (Brian Ewins).
+
+ Make font subsetting code more robust against fonts that don't include
+ optional tables (Adrian Johnson).
+
+ Fix CFF subsetting bug, (which manifested by generating PDF files that
+ Apple's Preview viewer could not read) (Adrian Johnson).
+
+ Fixed error handling for quartz and ATSUI backends (Brian Ewins).
+
+ Avoid rounding problems by pre-transforming to avoid integer-only
+ restrictions on transformation in GDI (Adrian Johnson).
+
+ Fixed an obscure bug (#7245) computing extents for some stroked
+ paths (Carl Worth).
+
+ Fix crashes due to extreme transformation of the pen, (seems to show
+ up in many .swf files for some reason) (Carl Worth).
+
\ No newline at end of file
More information about the cairo-commit
mailing list