📄 news
字号:
The is_wrapped and is_ellipsized functions return whether the layout had to wrap/ellipsize any paragraphs, as opposed to the get_wrap and get_ellipsize that return the wrap/ellipsize mode set.- Misc new function: pango_parse_enum() This is more a convenience function for internal use, but set public to go with other pango_parse_* functions. Bindings should feel free to ignore this.- New header files: Moved gravity and matrix stuff into their own header files pango-gravity.h and pango-matrix.h. Both are included from pango-types.h.- Vertical text: New attribute types: PANGO_ATTR_GRAVITY PANGO_ATTR_GRAVITY_HINT. New enum type: PangoGravityHint New macro: PANGO_GRAVITY_IS_VERTICAL() New public functions: pango_attr_gravity_new() pango_attr_gravity_hint_new() pango_gravity_hint_get_type pango_context_set_gravity_hint() pango_context_get_gravity_hint() pango_gravity_get_for_matrix() pango_gravity_get_for_script() Removed: pango_matrix_to_gravity() replaced by pango_gravity_get_for_matrix() Gravity API added in previous releases: PangoGravity pango_gravity_get_type pango_context_get_base_gravity pango_context_get_gravity pango_context_set_base_gravity pango_font_description_get_gravity pango_font_description_set_gravity pango_gravity_to_rotation A tip on using the vertical text support: If you just want to get correct behavior in rotated labels (say, vertical Chinese/Japanese, but rotated Latin, etc), all you need to do is to set the context gravity to PANGO_GRAVITY_AUTO. You can do this for example #if defined(PANGO_VERSION_CHECK) && PANGO_VERSION_CHECK(1,15,4) pango_context_set_gravity (context, PANGO_GRAVITY_AUTO); #endifBugs fixed in this release: Bug 395328 – Map kATSDeletedGlyphcode to PANGO_GLYPH_EMPTY Bug 397337 – Use is_ellipsized and is_wrapped to optimize property changes Bug 328585 – Need to know if a layout has unknown glyphs Patch from LingNing Zhang Bug 326693 – PangoLayouts should be query-able about their effective properties (width / wrapped / ellipsized / etc) Bug 397327 – pango-layout.c: 'pango_layout_is_ellipsized' must return a value Bug 323173 – Add layout of mixed direction text for vertical layout Bug 394453 – Use -mms-bitfields Bug 392628 – Don't check for X on win32Overview of changes between 1.15.2 and 1.15.3==============================================- Fix Hangul crasher and other Hangul bugs introduced in 1.15.2- Spell-checked docs- Build fixes- Don't introduce bitfields in public structs. This changes some public API that was broken in the 1.15 series. The new struct is backward compatible with the older Pango series, but not with earlier 1.15.x devel releases.- New Public API: * PangoAnalysis.flags and PANGO_ANALYSIS_FLAGS_CENTERED_BASELINE. These are mostly only useful for the vertical text support in Pango, but language bindings probably want to update their bindings for PangoAnalysis to include these. * New PangoMatrix methods: pango_matrix_transform_distance() pango_matrix_transform_point() pango_matrix_transform_rectangle() pango_matrix_transform_pixel_rectangle() The transform_rectangle methods are particularly useful when an app/toolkit wants to know the extents of a rotated layout in device coordinates. It will be used by Gtk+ for example, and is used by the pango-view tool too. The _pixel_ variant takes a PangoRectangle in device units instead of Pango units. * Unit conversion helpers: pango_units_from_double() pango_units_to_double() pango_extents_to_pixels() The first two just convert between Pango units (fixed precision) and double floating-point numbers. The current implementations are as simple as "(int)floor (d * PANGO_SCALE + 0.5)" and "(double)i / PANGO_SCALE", but the idea is to have optimized versions of these that do not use the FPU in the future. That will be appreciated by embedded devices without FPU units. Since the functionality can be generally useful, the API is made public. The pango_extents_to_pixels() function in conjunction with pango_matrix_transform_rectangle() makes it possible to convert extents to device space and round then, instead of having to transform rounded user-space extents.- Bugs fixed in this release: Bug 351496 – PangoAnalysis::gravity breaks binary compatibility Bug 388702 – Crash when there's no Hangul glyph in the font. Bug 384543 – FcFontMatch misuse Bug 392789 – vpath build fails in basic module Patch from J. Ali Harlow Bug 390877 – Don't feed pango-features.h to glib-mkenums Patch from Yevgen MuntyanOverview of changes between 1.15.1 and 1.15.2==============================================* Engines: - Improved Hangul shaper engine - Improved Indic shaper and language engines - Require libthai >= 0.1.7 for the Thai language engine* Optimizations: - Avoid some floating-point operations. Should cut the number of float ops per expose event in pangocairo to a half. - Cache ink and logical extents for PangoLayout* New Public API: - New, generated, public header file pango-features.h. Included by pango.h. Currently contains the version information. In the future, can be expanded to define which backends have been enabled, etc. - Public macros and functions for compile- and run-time version checking: PANGO_VERSION_ENCODE() PANGO_VERSION_MAJOR PANGO_VERSION_MINOR PANGO_VERSION_MICRO PANGO_VERSION PANGO_VERSION_STRING PANGO_VERSION_CHECK() pango_version() pango_version_string() pango_version_check() The scheme chosen here is a mixture of approaches taken by glib and cairo. The advantage over the glib model is that there are no public variables, but it still gives access to a string and numerical representation of the version number at compile- and run-time. The macros enable conditional compilation of code depending on newer Pango APIs, while the runtime functions allow refusing to run against old versions of the library. - New, readonly, version of methods that give read/write access to the internals of PangoLayout: pango_layout_get_line_readonly() pango_layout_get_lines_readonly() pango_layout_iter_get_line_readonly() pango_layout_iter_get_run_readonly() These should be used when you do not intend to modify the run/line, which is most of the time the case. The only exception known to me is Firefox that adjusts glyph widths to do justification. Most other uses that do not write to the returned structs (or structs accessible from them) should be ported to the new readonly API to benefit from major optimizations (in this case, line extents caching). The list includes, but is not limited to, Gtk+, SWT, ClassPath, gnome-applets, libgnomeprint, xmlroff, GtkMathView, Conglomerate, Dia, Anjuta, wxWindows, The Gimp, and various other applications/libraries: http://www.google.com/codesearch?hl=en&q=+pango_layout_(iter_)%3Fget_(lines%3F%7Crun)%5B%5E_%5D&start=50&sa=N Worth noting here is that, many uses of pango_layout_get_lines() can be replaced by a pango_layout_get_iter() that works both more elegantly and more efficiently. The versioning macros introduced in this release can be used to make code use these new symbols without breaking compilation against older Pango (though, such code compiled with the new Pango cannot be run against an older Pango). - pango_language_get_default(): Note that, this does not make Pango fallback to the default language automatically (yet), but the user can use this function to set the default language of the locale on a context: pango_context_set_language (context, pango_language_get_default()); This essentially deprecates gtk_get_default_language(). The pango-view tool has been updated to use this feature, so it now respects $LANG when choosing fonts. - pango_color_to_string().* Bugs fixed in this release: Bug 326099 – Setting width, indentation and ellipsizing doesn't work as I would expect Bug 385478 – Fix tests on OPD platform Bug 319808 – Patch to let pango support artifical italic, bold and bold italic styles for the fonts which don't have these styles. Patch from James Su Bug 385321 – Worst case expansion for Sinhala Patch from Harshula Red Hat Bug 211574: [hi/ml/si_LK] cursor naviation is wrong when using ZWJ (200d) Patch from LingNing Zhang Red Hat Bug 216424: [te_IN] pango - consonant + dependent vowel (ai) Composed char is not rendering properly Patch from LingNing Zhang Bug 373856 – Wish: Function to convert a GdkColor to a string Patch from Matthew Barnes Red Hat Bug 216850: Issue in combination with vowels (ml_IN) Patch from LingNing Zhang Bug 382437 – tests/testboundaries fails Bug 333982 – Fallback to $LANG whenever NULL PangoLanguage is used Patch from LingNing ZhangOverview of changes between 1.15.0 and 1.15.1==============================================* Add Thai langauage engine. (currently makes tests/testboundary fail.)* Add Lao and improved Thai sample text.* Improved Indic module.* Output correct path for hexboxes in pango_cairo_layout_path().* Implement get_resolution method for the FT2 fontmap. Shouldn't make any difference whatsoever. Open a bug if it does.* Misc small fixes.* Optimizations: - Rework PangoLayout algorithms to avoid calling a recursive call to pango_layout_get_extents(). Avoids one pango_font_get_glyph_extents() call per glyph per layout rendering. We now make 2 such calls. - Don't cache run_logical_rect in PangoLayoutIter. Avoids one pango_font_get_glyph_extents() call per glyph per layout rendering. We are down to 1 now. - Cache line extents. This avoids the final pango_font_get_glyph_extents() call per glyph per layout rendering. Now we don't make any pango_font_get_glyph_extents() calls when rendering a layout (some conditions apply)! - Replace PANGO_IS_RENDERER with PANGO_IS_RENDERER_FAST for most internal uses, that is, just a NULL-check. - Use simple, fast, casts instead of PANGO_CAIRO_*() macros where the object cannot have reached us if it wasn't of the right type.* Bugs fixed in this release: Bug 135683 – Cache glyphstring extents Red Hat Bug 211964: [ta] Rendering issue with Tamil Patch from LingNing Zhang Red Hat Bug 213632: ZWJ (200d) and ZWNJ (200c) showing same output Patch from LingNing Zhang Bug 371388 – Add Thai langauage engine Patch from Theppitak Karoonboonyanan Bug 377975 – bug in _pango_glyph_item_iter_next_cluster Bug 369670 – Checked g_free callsChanges that also appeared between 1.14.7 and 1.14.8=====================================================* Improved thread-safety. Pango is still NOT thread-safe, but this fixes lots of crashes using pangocairo from multiple threads.* Fix out-of-bounds array access.* Improved Indic shaper.* Improved Arabic language engine.* Choose shaper/font for unassigned Unicode codepoints.* Build fixes.* Bugs fixed in this release: Bug 356666 – pango is not thread-safe, nautilus does not honour that Bug 352795 – configure.in: Bug in "checking Whether to write dependencies into .pc files" Bug 350132 – backspacing doesn't work properly for Arabic Bug 330407 – Multiple dependant vowel signs (indic) displayed as one Patch from LingNing ZhangOverview of changes between 1.14.7 and 1.15.0==============================================* Add basic support for vertical text. (PangoGravity and related API)* New PangoCairo example (examples/cairotwisted) to lay text out on a path* Fix various bugs in the way language engines are used. Add simple Arabic and Indic language engines. (Backported to 1.14.6)* Step module interface version up to 1.6.0* Misc small cleanups.* Bugs fixed in this release: Bug 330407 – Multiple dependant vowel signs (indic) displayed as one Bug 359043 – PangoRenderer does not show in API docs Bug 359046 – renderdemo.c unconditionally use GLib 2.12 Bug 357228 – Remove aix specific hack from configure.in Part of Bug 350132 – backspacing doesn't work properly for Arabic Bug 356194 – more pango_get_log_attrs problems Bug 355820 – pango_get_log_attrs broken Bug 352811 – SIGSEGV with pango(cairo)-view on HP-UX Bug 351496 – PangoAnalysis::gravity breaks binary compatibility Bug 351585 – API documentation issues with 2.15 releaseOverview of changes between 1.14.6 and 1.14.7==============================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -