From 057a832f9e806f9321648e47ee314a62e82e6ba4 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Mon, 11 Aug 2008 03:28:32 -0400 Subject: [configure.in,NEWS] Release 1.7.2 --- NEWS | 218 +++++++++++++++++++++++++++++++++++++++++++++++++---------- configure.in | 6 +- 2 files changed, 186 insertions(+), 38 deletions(-) diff --git a/NEWS b/NEWS index 0924a1522..c0bca687b 100644 --- a/NEWS +++ b/NEWS @@ -1,38 +1,186 @@ -- User fonts: This is new API allowing the user of cairo API to provide - drawings for glyphs in a font. This is most useful in implementing - fonts in non-standard formats, like SVG fonts and Flash fonts, but can - also be used by games and other application to draw "funky" fonts. - See test/user-font.c and test/user-font-proxy.c for usage examples. - - Note that user font API changed a bit just before this release. - -- show_text_glyphs: This is new API allowing the caller of cairo to mark - text glyphs with their original text. The PDF backend implements this - new API and latest Pango master uses it. The result is (when bugs are - fixed) that complex text can be copied out of pangocairo's PDF output - correctly and reliably. There are bugs to fix though. A few poppler - bugs, and some more in cairo and pango. - - To test show_text_glyph, just grab pango master & this cairo snapshot and - print text in gedit. Open in acroread or evince, select all, copy, paste - in gedit and compare. The Arabic text with diacritic marks is particularly - showing bad. Try with pango/pango-view/HELLO.txt if you are brave - enough. The Indic text is showing improvements, but is still coming out - buggy. - -- text_to_glyphs API: This is mostly useful in combination with user-fonts. - -The result of the above three changes combined is that when you render text -using cairo_show_text() and a user font, the resulting PDF file is perfectly -text extractable. Something one could not do with cairo before. - -- Toy font face constructor and getters: Mostly for API completion, but - also useful for higher level (like Pango) to hook into what the user - has set using cairo_select_font_face(), making that toy API a bit more - useful. - -- LCD subpixel filtering using FreeType, with different filters. Original - patch by David Turner. +Release 1.7.2 (2008-08-11 Behdad Esfahbod ) +============================================================== +The cairo community is finally ready to announce availability of the 1.7.2 +snapshot of the cairo graphics library. This is embarrissingly the first +snapshot in the 1.7 unstable series of cairo, leading to the eventual release +of cairo 1.8, currently planned for late September. + +This snapshot comes four months after the 1.6.4 release. We have done a +really bad job on getting development stapshots out this cycle, but +hopefully all the API changes for 1.8 are now finished and the remaining +weeks will be spent on bug-fixing. There is more than 400 commits worth +of changes in this snapshot, and those can use some testing. Read on! + +Text, text, and more text! +-------------------------- +The dominant theme of this release, and 1.8 in general, is improvements +around cairo text API. Here is a high-level list of changes with text +handling: + +User fonts +---------- +This is new API allowing the user of cairo API to provide drawings for glyphs +in a font. This is most useful in implementing fonts in non-standard formats, +like SVG fonts and Flash fonts, but can also be used by games and other +applications to draw "funky" fonts. See test/user-font.c and +test/user-font-proxy.c for usage examples. This is based on early work by +Kristian Høgsberg. Thanks Kristian! + +show_text_glyphs +---------------- +This new API allows the caller of cairo to mark text glyphs with their +original text. The PDF backend implements this new API and latest Pango +master uses it. The result is (when bugs are fixed) that complex text can be +copied out of pangocairo's PDF output correctly and reliably. There are bugs +to fix though. A few poppler bugs, and some more in cairo and pango. + +To test show_text_glyph, just grab pango master and this cairo snapshot and +print text in gedit. Open in acroread or evince, select all, copy, paste +in gedit and compare. The Arabic text with diacritic marks is particularly +showing bad. Try with pango/pango-view/HELLO.txt if you are brave +enough. The Indic text is showing improvements, but is still coming out +buggy. + +LCD subpixel filtering using FreeType +------------------------------------- +FreeType 2.3.5 added support for various LCD subpixel filtering, and +fontconfig 2.6.0 added support for configuring LCD filter on a font by font +basis. Cairo now relies on FreeType and fontconfig for subpixel filtering. +This work is based on David Turner's original patch to cairo, maintained +and tested by Sylvain Pasche and others. Thanks all! + +Toy font face constructor and getter +------------------------------------ +Mostly for API completion, but also useful for higher level (like Pango) to +hook into what the user has set using cairo_select_font_face(), making that +toy API a bit more useful. + +FreeType: respecting FC_FT_FACE +------------------------------- +Previously it was impossible to instruct cairo to do emboldening on a font +face object created from an FT_Face. Cairo now respects and uses the +FC_FT_FACE fontconfig pattern element, so emboldening can be achieved by +using cairo_ft_font_face_create_for_pattern() and a carefully crafted pattern +using FC_FT_FACE and FC_EMBOLDEN. + + +PS/PDF: More efficient output +----------------------------- +Adrian Johnson has been busy fixing all kinds of bugs in PS and PDF +backends, as well making them generate much more compact output by avoiding +things like re-emitting the color or linestyle on every drawing operation. +Thanks Adrian! + + +Xlib: Dithering +--------------- +Cairo now does simple dithering when rendering to legacy X servers. This is +mostly visible with 8-bit visuals. + +Xlib: Avoid rendering glyphs out of surface bounds +-------------------------------------------------- +This seemingly harmless change manifested a bug with OpenOffice.org 3 versions +where OO.o was passing bogus surface extents to cairo, resulting in no text +rendered in OO.o. Please contact your distro's OO.o maintainers if you see +this bug and point them to the following URL: + + https://bugs.freedesktop.org/show_bug.cgi?id=16209 + +Xlib: Improved performance with Xrender-less X servers +------------------------------------------------------ +Cairo now performs better on remote, Xrender-less X servers by being smarter +about using X core protocol facilities instead of falling back to doing all +rendering on the client side. + + +Directfb: backend improvements +------------------------------ +The directfb backend, though still unsupported, has seen a good deal of +improvements. Thanks Vlad! + + +Bug fixing and optimizations +---------------------------- +Countless bugs have been fixed and optimizations made, many of them thanks to +Chris Wilson. Thanks Chris! + + +API additions +------------- + +cairo_show_text_glyphs + + This is a new text rendering API. Being a more advanced version of + cairo_show_glyphs(), it is aimed for use by higher-level text toolkits like + Pango, and enables better text extraction from output generated by backends + like PDF and SVG. The PDF backend already implements it, and the upcoming + Pango release will use it. + + To make that API work, a bunch of other additions were made: + +cairo_glyph_allocate +cairo_glyph_free +cairo_text_cluster_t +cairo_text_cluster_allocate +cairo_text_cluster_free +cairo_has_show_text_glyphs + + +cairo_user_font_face_create + + This is the "user" font face constructor, accompanied by a variety of method + signatures, getters, and setters for a callback-based font backend: + +CAIRO_FONT_TYPE_USER +cairo_user_scaled_font_init_func_t +cairo_user_scaled_font_render_glyph_func_t +cairo_user_scaled_font_text_to_glyphs_func_t +cairo_user_scaled_font_unicode_to_glyph_func_t +cairo_user_font_face_set_init_func +cairo_user_font_face_set_render_glyph_func +cairo_user_font_face_set_text_to_glyphs_func +cairo_user_font_face_set_unicode_to_glyph_func +cairo_user_font_face_get_init_func +cairo_user_font_face_get_render_glyph_func +cairo_user_font_face_get_text_to_glyphs_func +cairo_user_font_face_get_unicode_to_glyph_func + + +cairo_scaled_font_text_to_glyphs + + We were previously reluctant to provide this function as text-to-glyphs + support in cairo was limited to "toy" font functionality, not really + interesting for real-world text processing. However, with user-fonts + landing, this API is needed to expose full access to how user-fonts + convert text to glyphs. This is expected to be used by text toolkits like + Pango, as well as "proxy" user-font implementations. + + +cairo_lcd_filter_t +cairo_font_options_set_lcd_filter +cairo_font_options_get_lcd_filter + + These add the possibility to choose between various available LCD subpixel + filters. The available filter values are modeled after what FreeType + provides. + + +cairo_toy_font_face_create +cairo_toy_font_face_get_family +cairo_toy_font_face_get_slant +cairo_toy_font_face_get_weight + + These provide access to functionality and settings provided by + cairo_select_font_face(). + + +cairo_scaled_font_get_scale_matrix +cairo_surface_get_fallback_resolution + + For API completeness. + + +Various new values for cairo_status_t enum Known issues: diff --git a/configure.in b/configure.in index 94aaf467b..b19526f46 100644 --- a/configure.in +++ b/configure.in @@ -7,7 +7,7 @@ dnl For the micro number: odd => in-progress development (from git) dnl even => tar-file snapshot or release m4_define(cairo_version_major, 1) m4_define(cairo_version_minor, 7) -m4_define(cairo_version_micro, 1) +m4_define(cairo_version_micro, 2) AC_INIT([cairo], cairo_version_major.cairo_version_minor.cairo_version_micro, @@ -27,7 +27,7 @@ dnl =========================================================================== # libtool shared library version # Increment if the interface has additions, changes, removals. -m4_define(LT_CURRENT, 20) +m4_define(LT_CURRENT, 21) # Increment any time the source changes; set to # 0 if you increment CURRENT @@ -36,7 +36,7 @@ m4_define(LT_REVISION, 0) # Increment if any interfaces have been added; set to 0 # if any interfaces have been removed. removal has # precedence over adding, so set to 0 if both happened. -m4_define(LT_AGE, 18) +m4_define(LT_AGE, 19) dnl =========================================================================== -- cgit v1.2.3