Mercurial > hgrepos > Python2 > PyMuPDF
comparison mupdf-source/thirdparty/harfbuzz/NEWS @ 2:b50eed0cc0ef upstream
ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4.
The directory name has changed: no version number in the expanded directory now.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:43:07 +0200 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1:1d09e1dec1d9 | 2:b50eed0cc0ef |
|---|---|
| 1 Overview of changes leading to 6.0.0 | |
| 2 Friday, December 16, 2022 | |
| 3 ==================================== | |
| 4 - A new API have been added to pre-process the face and speed up future | |
| 5 subsetting operations on that face. Provides up to a 95% reduction in | |
| 6 subsetting times when the same face is subset more than once. | |
| 7 | |
| 8 For more details and benchmarks, see: | |
| 9 https://github.com/harfbuzz/harfbuzz/blob/main/docs/subset-preprocessing.md | |
| 10 | |
| 11 (Garret Rieger, Behdad Esfahbod) | |
| 12 | |
| 13 - Shaping have been speedup by skipping entire lookups when the buffer contents | |
| 14 don't intersect with the lookup. Shows up to a 10% speedup in shaping some | |
| 15 fonts. (Behdad Esfahbod) | |
| 16 | |
| 17 - A new experimental feature, “Variable Composites” (enabled by passing | |
| 18 -Dexperimental_api=true to meson), is also featured in this release. | |
| 19 This technology enables drastic compression of fonts in the Chinese, | |
| 20 Japanese, Korean, and other writing systems, by reusing the OpenType Font | |
| 21 Variations technology for encoding “smart components” into the font. | |
| 22 | |
| 23 The specification for these extensions to the font format can be found in: | |
| 24 https://github.com/harfbuzz/boring-expansion-spec/blob/glyf1/glyf1.md | |
| 25 | |
| 26 A test variable-font with ~7160 Hangul syllables derived from the | |
| 27 NotoSerifKR-VF font has been built, with existing OpenType technology, as | |
| 28 well as with the new Variable Composites (VarComposites) technology. The | |
| 29 VarComposites font is over 90% smaller than the OpenType version of the font! | |
| 30 Both fonts can be obtained from the “smarties” repository: | |
| 31 https://github.com/behdad/smarties/tree/3.0/fonts/hangul/serif | |
| 32 | |
| 33 When building HarfBuzz with experimental features enabled, you can test | |
| 34 the “smarties” font with a sample character like this: | |
| 35 | |
| 36 $ hb-view butchered-hangul-serif-smarties-variable.ttf -u AE01 --variations=wght=700 | |
| 37 | |
| 38 (Behdad Esfahbod) | |
| 39 | |
| 40 - The HarfBuzz subsetter can now drop axes by pinning them to specific values | |
| 41 (also referred to as instancing). There are a couple of restrictions | |
| 42 currently: | |
| 43 | |
| 44 - Only works with TrueType (“glyf”) based fonts. “CFF2” fonts are not yet | |
| 45 supported. | |
| 46 - Only supports the case where all axes in a font are pinned. | |
| 47 | |
| 48 (Garret Rieger, Qunxin Liu) | |
| 49 | |
| 50 - Miscellaneous fixes and improvements. | |
| 51 | |
| 52 (Behdad Esfahbod, Christoph Reiter, David Corbett, Eli Schwartz, Garret | |
| 53 Rieger, Joel Auterson, Jordan Petridis, Khaled Hosny, Lorenz Wildberg, | |
| 54 Marco Rebhan, Martin Storsjö, Matthias Clasen, Qunxin Liu, Satadru Pramanik) | |
| 55 | |
| 56 | |
| 57 - New API | |
| 58 +hb_subset_input_pin_axis_location() | |
| 59 +hb_subset_input_pin_axis_to_default() | |
| 60 +hb_subset_preprocess() | |
| 61 | |
| 62 | |
| 63 Overview of changes leading to 5.3.1 | |
| 64 Wednesday, October 19, 2022 | |
| 65 ==================================== | |
| 66 - Subsetter repacker fixes. (Garret Rieger) | |
| 67 - Adjust Grapheme clusters for Katakana voiced sound marks. (Behdad Esfahbod) | |
| 68 - New “hb-subset” option “--preprocess-face”. (Garret Rieger) | |
| 69 | |
| 70 | |
| 71 Overview of changes leading to 5.3.0 | |
| 72 Saturday, October 8, 2022 | |
| 73 "Women, Life, Freedom" #MahsaAmini | |
| 74 ==================================== | |
| 75 - Don’t add glyphs from dropped MATH or COLR tables to the subset glyphs. | |
| 76 (Khaled Hosny) | |
| 77 - Map “rlig” to appropriate AAT feature selectors. (Jonathan Kew) | |
| 78 - Update USE data files to latest version. (David Corbett) | |
| 79 - Check “CBDT” extents first before outline tables, to help with fonts that | |
| 80 also include an empty “glyf” table. (Khaled Hosny) | |
| 81 - More work towards variable font instancing in the subsetter. (Qunxin Liu) | |
| 82 - Subsetter repacker improvements. (Garret Rieger) | |
| 83 - New API: | |
| 84 +hb_ot_layout_lookup_get_optical_bound() | |
| 85 +hb_face_builder_sort_tables() | |
| 86 | |
| 87 | |
| 88 Overview of changes leading to 5.2.0 | |
| 89 Saturday, September 17, 2022 | |
| 90 ==================================== | |
| 91 - Fix regressions in hb-ft font functions for FT_Face’s with transformation | |
| 92 matrix. (Behdad Esfahbod) | |
| 93 - The experimental hb-repacker API now supports splitting several GPOS subtable | |
| 94 types when needed. (Garret Rieger) | |
| 95 - The HarfBuzz extensions to OpenType font format are now opt-in behind | |
| 96 build-time flags. (Behdad Esfahbod) | |
| 97 - The experimental hb-subset variable fonts instantiation API can now | |
| 98 instantiate more font tables and arbitrary axis locations. (Qunxin Liu) | |
| 99 - Unicode 15 support. (David Corbett) | |
| 100 - Various documentation improvements. (Behdad Esfahbod, Matthias Clasen) | |
| 101 - The hb-view command line tool now detects WezTerm inline images support. | |
| 102 (Wez Furlong) | |
| 103 - Fix FreeType and ICU dependency lookup with meson. (Xavier Claessens) | |
| 104 | |
| 105 - New API: | |
| 106 +HB_SCRIPT_KAWI | |
| 107 +HB_SCRIPT_NAG_MUNDARI | |
| 108 | |
| 109 | |
| 110 Overview of changes leading to 5.1.0 | |
| 111 Sunday, July 31, 2022 | |
| 112 ==================================== | |
| 113 - More extensive buffer tracing messages. (Behdad Esfahbod) | |
| 114 - Fix hb-ft regression in bitmap fonts rendering. (Behdad Esfahbod) | |
| 115 - Support extension promotion of lookups in hb-subset-repacker. (Garret Rieger) | |
| 116 - A new HB_GLYPH_FLAG_SAFE_TO_INSERT_TATWEEL for scripts that use elongation | |
| 117 (e.g. Arabic) to signify where it is safe to insert tatweel glyph without | |
| 118 interrupting shaping. (Behdad Esfahbod) | |
| 119 - Add “--safe-to-insert-tatweel” to “hb-shape” tool. (Behdad Esfahbod) | |
| 120 | |
| 121 - New API | |
| 122 +HB_GLYPH_FLAG_SAFE_TO_INSERT_TATWEEL | |
| 123 +HB_BUFFER_FLAG_PRODUCE_SAFE_TO_INSERT_TATWEEL | |
| 124 | |
| 125 | |
| 126 Overview of changes leading to 5.0.1 | |
| 127 Saturday, July 23, 2022 | |
| 128 ==================================== | |
| 129 - Fix version 2 “avar” table with hb-ft. (Behdad Esfahbod) | |
| 130 | |
| 131 | |
| 132 Overview of changes leading to 5.0.0 | |
| 133 Saturday, July 23, 2022 | |
| 134 ==================================== | |
| 135 - Support fonts with more than 65535 glyphs in “GDEF”, “GSUB”, and “GPOS” | |
| 136 tables. This is part of https://github.com/be-fonts/boring-expansion-spec to | |
| 137 extend OpenType in a backward-compatible way. | |
| 138 (Behdad Esfahbod, Garret Rieger) | |
| 139 - Complete support for more than 65535 glyphs in “glyf” table that started in | |
| 140 4.0.0 release. Part of boring-expansion-spec. (Behdad Esfahbod) | |
| 141 - Support version 2 of “avar” table. Part of boring-expansion-spec. | |
| 142 (Behdad Esfahbod) | |
| 143 - Fix mark attachment on multiple substitutions in some cases. | |
| 144 (Behdad Esfahbod) | |
| 145 - Fix application of “calt”, “rclt”, and “ccmp” features to better match | |
| 146 Uniscribe behaviour with some Arabic fonts. (Behdad Esfahbod) | |
| 147 - Improvement to interaction between multiple cursive attachments. | |
| 148 (Behdad Esfahbod) | |
| 149 - Improve multiple mark interactions in Hebrew. (Behdad Esfahbod) | |
| 150 - Implement language-specific forms in AAT shaping. (Behdad Esfahbod) | |
| 151 - Fix variation of “VORG” table. (Behdad Esfahbod) | |
| 152 - Support for specific script tags to be retained in the subsetter, and add | |
| 153 “--layout-scripts” option to “hb-subset” tool. (Garret Rieger) | |
| 154 - Accept space as delimiter for --features/--variations in command line tools. | |
| 155 - Improve subsetting of “COLR” table. (Qunxin Liu) | |
| 156 - Improved fuzzing coverage for ot-math API. (Frédéric Wang) | |
| 157 - Fix “kern” table version 2 (AAT) sanitization on 32-bit systems. | |
| 158 (Behdad Esfahbod) | |
| 159 - Allow negative glyph advances from “graphite2” shaper. (Stephan Bergmann) | |
| 160 - Implement loading (color) bitmap fonts with hb-ft. (Behdad Esfahbod) | |
| 161 - Fix regression in hb-ft when changing font size. (Behdad Esfahbod) | |
| 162 - Fix build on GCC < 7. (Kleis Auke Wolthuizen) | |
| 163 - Dynamically load dwrite.dll on windows if “directwrite” shaper is enabled. | |
| 164 (Luca Bacci) | |
| 165 - Provide a single-file harfbuzz-subset.cc file for easier alternate building | |
| 166 of hb-subset library, similar to harfbuzz.cc. (Khaled Hosny) | |
| 167 | |
| 168 - New API | |
| 169 +HB_SUBSET_SETS_LAYOUT_SCRIPT_TAG | |
| 170 +hb_language_matches() | |
| 171 | |
| 172 | |
| 173 Overview of changes leading to 4.4.1 | |
| 174 Wednesday, June 29, 2022 | |
| 175 ==================================== | |
| 176 - Fix test failure with some compilers. | |
| 177 - Fix Telugu and Kannada kerning regression. | |
| 178 | |
| 179 | |
| 180 Overview of changes leading to 4.4.0 | |
| 181 Monday, June 27, 2022 | |
| 182 ==================================== | |
| 183 - Caching of variable fonts shaping, in particular when using HarfBuzz’s own | |
| 184 font loading functions (ot). Bringing performance of variable shaping in par | |
| 185 with non-variable fonts shaping. (Behdad Esfahbod) | |
| 186 - Caching of format 2 “Contextual Substitution” and “Chained Contexts | |
| 187 Substitution” lookups. Resulting in up to 20% speedup of lookup-heavy fonts | |
| 188 like Gulzar or Noto Nastaliq Urdu. (Behdad Esfahbod) | |
| 189 - Improved ANSI output from hb-view. (Behdad Esfahbod) | |
| 190 - Support for shaping legacy, pre-OpenType Windows 3.1-era, Arabic fonts that | |
| 191 relied on a fixed PUA encoding. (Khaled Hosny, Behdad Esfahbod) | |
| 192 - Sinhala script is now shaped by the USE shaper instead of “indic” one. | |
| 193 (Behdad Esfahbod, David Corbett) | |
| 194 - Thai shaper improvements. (David Corbett) | |
| 195 - hb-ot-name API supports approximate BCP-47 language matching, for example | |
| 196 asking for “en_US” in a font that has only “en” names will return them. | |
| 197 (Behdad Esfahbod) | |
| 198 - Optimized TrueType glyph shape loading. (Behdad Esfahbod) | |
| 199 - Fix subsetting of HarfBuzz faces created via hb_face_create_for_tables(). | |
| 200 (Garret Rieger) | |
| 201 - Add 32 bit var store support to the subsetter. (Garret Rieger) | |
| 202 | |
| 203 - New API | |
| 204 +HB_BUFFER_FLAG_DEFINED | |
| 205 +HB_BUFFER_SERIALIZE_FLAG_DEFINED | |
| 206 +hb_font_changed() | |
| 207 +hb_font_get_serial() | |
| 208 +hb_ft_hb_font_changed() | |
| 209 +hb_set_hash() | |
| 210 +hb_map_copy() | |
| 211 +hb_map_hash() | |
| 212 | |
| 213 | |
| 214 Overview of changes leading to 4.3.0 | |
| 215 Friday, May 20, 2022 | |
| 216 ==================================== | |
| 217 - Major speed up in loading and subsetting fonts, especially in | |
| 218 handling CFF table. Subsetting some fonts is now 3 times faster. | |
| 219 (Behdad Esfahbod, Garret Rieger) | |
| 220 - Speed up blending CFF2 table. (Behdad Esfahbod) | |
| 221 - Speed up hb_ot_tags_from_language(). (Behdad Esfahbod, David Corbett) | |
| 222 - Fix USE classification of U+10A38 to fix multiple marks on single Kharoshthi | |
| 223 base. (David Corbett) | |
| 224 - Fix parsing of empty CFF Index. (Behdad Esfahbod) | |
| 225 - Fix subsetting CPAL table with partial palette overlaps. (Garret Rieger) | |
| 226 | |
| 227 - New API | |
| 228 +hb_map_is_equal() (Behdad Esfahbod) | |
| 229 | |
| 230 | |
| 231 Overview of changes leading to 4.2.1 | |
| 232 Sunday, April 24, 2022 | |
| 233 ==================================== | |
| 234 - Make sure hb_blob_create_from_file_or_fail() always returns nullptr in case | |
| 235 of failure and not empty blob sometimes. (Khaled Hosny) | |
| 236 - Add --passthrough-tables option to hb-subset. (Cosimo Lupo) | |
| 237 - Reinstate a pause after basic features in Khmer shaper, fixing a regression | |
| 238 introduced in previous release. (Behdad Esfahbod) | |
| 239 - Better handling of Regional_Indicator when shaped with RTL-native scripts, | |
| 240 reverting earlier fix that caused regressions in AAT shaping. (Behdad Esfahbod) | |
| 241 | |
| 242 | |
| 243 Overview of changes leading to 4.2.0 | |
| 244 Wednesday, March 30, 2022 | |
| 245 ==================================== | |
| 246 - Source code reorganization, splitting large hb-ot-layout files into smaller, | |
| 247 per-subtable ones under OT/Layout/*. Code for more tables will follow suit in | |
| 248 later releases. (Garret Rieger, Behdad Esfahbod) | |
| 249 - Revert Indic shaper change in previous release that broke some fonts and | |
| 250 instead make per-syllable restriction of “GSUB” application limited to | |
| 251 script-specific Indic features, while applying them and discretionary | |
| 252 features in one go. (Behdad Esfahbod) | |
| 253 - Fix decoding of private in gvar table. (Behdad Esfahbod) | |
| 254 - Fix handling of contextual lookups that delete too many glyphs. (Behdad Esfahbod) | |
| 255 - Make “morx” deleted glyphs don’t block “GPOS” application. (Behdad Esfahbod) | |
| 256 - Various build fixes. (Chun-wei Fan, Khaled Hosny) | |
| 257 | |
| 258 - New API | |
| 259 +hb_set_next_many() (Andrew John) | |
| 260 | |
| 261 | |
| 262 Overview of changes leading to 4.1.0 | |
| 263 Wednesday, March 23, 2022 | |
| 264 ==================================== | |
| 265 - Various OSS-Fuzz fixes. (Behdad Esfahbod) | |
| 266 - Make fallback vertical-origin match FreeType’s. (Behdad Esfahbod) | |
| 267 - Treat visible viramas like dependent vowels in USE shaper. (David Corbett) | |
| 268 - Apply presentation forms features and discretionary features in one go in | |
| 269 Indic shaper, which seems to match Uniscribe and CoreText behaviour. | |
| 270 (Behdad Esfahbod, David Corbett) | |
| 271 - Various bug fixes. | |
| 272 | |
| 273 - New API | |
| 274 +hb_set_add_sorted_array() (Andrew John) | |
| 275 | |
| 276 | |
| 277 Overview of changes leading to 4.0.1 | |
| 278 Friday, March 11, 2022 | |
| 279 ==================================== | |
| 280 - Update OpenType to AAT mappings for “hist” and “vrtr” features. | |
| 281 (Florian Pircher) | |
| 282 - Update IANA Language Subtag Registry to 2022-03-02. (David Corbett) | |
| 283 - Update USE shaper to allow any non-numeric tail in a symbol cluster, and | |
| 284 remove obsolete data overrides. (David Corbett) | |
| 285 - Fix handling of baseline variations to return correctly scaled values. | |
| 286 (Matthias Clasen) | |
| 287 - A new experimental hb_subset_repack_or_fail() to repack an array of objects, | |
| 288 eliminating offset overflows. The API is not available unless HarfBuzz is | |
| 289 built with experimental APIs enabled. (Qunxin Liu) | |
| 290 | |
| 291 - New experimental API | |
| 292 +hb_link_t | |
| 293 +hb_object_t | |
| 294 +hb_subset_repack_or_fail() | |
| 295 | |
| 296 | |
| 297 Overview of changes leading to 4.0.0 | |
| 298 Tuesday, March 1, 2022 | |
| 299 ==================================== | |
| 300 - New public API to create subset plan and gather information on things like | |
| 301 glyph mappings in the final subset. The plan can then be passed on to perform | |
| 302 the subsetting operation. (Garret Rieger) | |
| 303 - Draw API for extracting glyph shapes have been extended and finalized and is | |
| 304 no longer an experimental API. The draw API supports glyf, CFF and CFF2 | |
| 305 glyph outlines tables, and applies variation settings set on the font as well | |
| 306 as synthetic slant. The new public API is not backward compatible with the | |
| 307 previous, non-public, experimental API. (Behdad Esfahbod) | |
| 308 - The hb-view tool will use HarfBuzz draw API to render the glyphs instead of | |
| 309 cairo-ft when compiled with Cairo 1.17.5 or newer, setting HB_DRAW | |
| 310 environment variable to 1 or 0 will force using or not use the draw API, | |
| 311 respectively. (Behdad Esfahbod) | |
| 312 - The hb-shape and hb-view tools now default to using HarfBuzz’s own font | |
| 313 loading functions (ot) instead of FreeType ones (ft). They also have a new | |
| 314 option, --font-slant, to apply synthetic slant to the font. (Behdad Esfahbod) | |
| 315 - HarfBuzz now supports more than 65535 (the OpenType limit) glyph shapes and | |
| 316 metrics. See https://github.com/be-fonts/boring-expansion-spec/issues/6 and | |
| 317 https://github.com/be-fonts/boring-expansion-spec/issues/7 for details. | |
| 318 (Behdad Esfahbod) | |
| 319 - New API to get the dominant horizontal baseline tag for a given script. | |
| 320 (Behdad Esfahbod) | |
| 321 - New API to get the baseline positions from the font, and synthesize missing | |
| 322 ones. As well as new API to get font metrics and synthesize missing ones. | |
| 323 (Matthias Clasen) | |
| 324 - Improvements to finding dependencies on Windows when building with Visual | |
| 325 Studio. (Chun-wei Fan) | |
| 326 - New buffer flag, HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT, that must be set | |
| 327 during shaping for HB_GLYPH_FLAG_UNSAFE_TO_CONCAT flag to be reliably | |
| 328 produced. This is to limit the performance hit of producing this flag to when | |
| 329 it is actually needed. (Behdad Esfahbod) | |
| 330 - Documentation improvements. (Matthias Clasen) | |
| 331 | |
| 332 - New API | |
| 333 - General: | |
| 334 +HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT | |
| 335 +hb_var_num_t | |
| 336 | |
| 337 - Draw: | |
| 338 +hb_draw_funcs_t | |
| 339 +hb_draw_funcs_create() | |
| 340 +hb_draw_funcs_reference() | |
| 341 +hb_draw_funcs_destroy() | |
| 342 +hb_draw_funcs_is_immutable() | |
| 343 +hb_draw_funcs_make_immutable() | |
| 344 +hb_draw_move_to_func_t | |
| 345 +hb_draw_funcs_set_move_to_func() | |
| 346 +hb_draw_line_to_func_t | |
| 347 +hb_draw_funcs_set_line_to_func() | |
| 348 +hb_draw_quadratic_to_func_t | |
| 349 +hb_draw_funcs_set_quadratic_to_func() | |
| 350 +hb_draw_cubic_to_func_t | |
| 351 +hb_draw_funcs_set_cubic_to_func() | |
| 352 +hb_draw_close_path_func_t | |
| 353 +hb_draw_funcs_set_close_path_func() | |
| 354 +hb_draw_state_t | |
| 355 +HB_DRAW_STATE_DEFAULT | |
| 356 +hb_draw_move_to() | |
| 357 +hb_draw_line_to() | |
| 358 +hb_draw_quadratic_to() | |
| 359 +hb_draw_cubic_to() | |
| 360 +hb_draw_close_path() | |
| 361 +hb_font_get_glyph_shape_func_t | |
| 362 +hb_font_funcs_set_glyph_shape_func() | |
| 363 +hb_font_get_glyph_shape() | |
| 364 | |
| 365 - OpenType layout | |
| 366 +HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_CENTRAL | |
| 367 +HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_CENTRAL | |
| 368 +hb_ot_layout_get_horizontal_baseline_tag_for_script() | |
| 369 +hb_ot_layout_get_baseline_with_fallback() | |
| 370 | |
| 371 - Metrics: | |
| 372 +hb_ot_metrics_get_position_with_fallback() | |
| 373 | |
| 374 - Subset: | |
| 375 +hb_subset_plan_t | |
| 376 +hb_subset_plan_create_or_fail() | |
| 377 +hb_subset_plan_reference() | |
| 378 +hb_subset_plan_destroy() | |
| 379 +hb_subset_plan_set_user_data() | |
| 380 +hb_subset_plan_get_user_data() | |
| 381 +hb_subset_plan_execute_or_fail() | |
| 382 +hb_subset_plan_unicode_to_old_glyph_mapping() | |
| 383 +hb_subset_plan_new_to_old_glyph_mapping() | |
| 384 +hb_subset_plan_old_to_new_glyph_mapping() | |
| 385 | |
| 386 | |
| 387 Overview of changes leading to 3.4.0 | |
| 388 Sunday, February 13, 2022 | |
| 389 ==================================== | |
| 390 - Perform sanity checks on shaping results is now part of “harfbuzz” library | |
| 391 and can be enabled by setting the buffer flag HB_BUFFER_FLAG_VERIFY. | |
| 392 (Behdad Esfahbod) | |
| 393 - Arabic Mark Transient Reordering Algorithm have been updated to revision 6. | |
| 394 (Khaled Hosny) | |
| 395 - ISO 15924 code for mathematical notation, ‘Zmth’, now maps to the OpenType | |
| 396 ‘math’ tag. (Alexis King) | |
| 397 - It is now possible to get at once all math kerning values for a given glyph | |
| 398 at a given corner. (Alexis King) | |
| 399 - Fix locale_t portability issues on systems the typedef’s it to a void | |
| 400 pointer. (Behdad Esfahbod) | |
| 401 | |
| 402 - New API: | |
| 403 +HB_BUFFER_FLAG_VERIFY | |
| 404 +HB_OT_TAG_MATH_SCRIPT | |
| 405 +HB_SCRIPT_MATH | |
| 406 +hb_ot_math_kern_entry_t | |
| 407 +hb_ot_math_get_glyph_kernings() | |
| 408 | |
| 409 - Deprecated API | |
| 410 +HB_OT_MATH_SCRIPT | |
| 411 | |
| 412 | |
| 413 Overview of changes leading to 3.3.2 | |
| 414 Sunday, February 6, 2022 | |
| 415 ==================================== | |
| 416 - Revert splitting of pair positioning values introduced in 3.3.0 as it proved | |
| 417 problematic. (Behdad Esfahbod) | |
| 418 | |
| 419 | |
| 420 Overview of changes leading to 3.3.1 | |
| 421 Monday, January 31, 2022 | |
| 422 ==================================== | |
| 423 - Fix heap-use-after-free in harfbuzz-subset introduced in previous release. | |
| 424 (Garret Rieger) | |
| 425 | |
| 426 | |
| 427 Overview of changes leading to 3.3.0 | |
| 428 Monday, January 31, 2022 | |
| 429 ==================================== | |
| 430 - Improved documentation. (Matthias Clasen) | |
| 431 - Internal code cleanup, using C++ standard library more. (Behdad Esfahbod) | |
| 432 - The low 16-bits of face index will be used by hb_face_create() to select a | |
| 433 face inside a font collection file format, while the high 16-bits will be | |
| 434 used by hb_font_create() to load the named instance. (Behdad Esfahbod) | |
| 435 - Glyph positions and other font metrics now apply synthetic slant set by | |
| 436 hb_font_set_synthetic_slant(), for improved positioning for synthetically | |
| 437 slanted fonts. (Behdad Esfahbod) | |
| 438 - Fixed unintentional locale dependency in hb_variation_to_string() for decimal | |
| 439 point representation. (Matthias Clasen) | |
| 440 - When applying pair positioning (kerning) the positioning value is split | |
| 441 between the two sides of the pair for improved cursor positioning between | |
| 442 such pairs. (Behdad Esfahbod) | |
| 443 - Introduced new HB_GLYPH_FLAG_UNSAFE_TO_CONCAT, to be used in conjunction | |
| 444 with HB_GLYPH_FLAG_UNSAFE_TO_BREAK for optimizing re-shaping during line | |
| 445 breaking. Check the documentation for further details. (Behdad Esfahbod) | |
| 446 - Improved handling of macrolanguages when mapping BCP 47 codes to OpenType | |
| 447 tags. (David Corbett) | |
| 448 | |
| 449 - New API: | |
| 450 +HB_GLYPH_FLAG_UNSAFE_TO_CONCAT | |
| 451 +hb_segment_properties_overlay() | |
| 452 +hb_buffer_create_similar() | |
| 453 +hb_font_set_synthetic_slant() | |
| 454 +hb_font_get_synthetic_slant() | |
| 455 +hb_font_get_var_coords_design() | |
| 456 | |
| 457 | |
| 458 Overview of changes leading to 3.2.0 | |
| 459 Friday, November 26, 2021 | |
| 460 ==================================== | |
| 461 “harfbuzz” library improvements: | |
| 462 - Fixed shaping of Apple Color Emoji flags in right-to-left context. (Behdad Esfahbod) | |
| 463 - Fixed positioning of CFF fonts in HB_TINY profile. (Behdad Esfahbod) | |
| 464 - OpenType 1.9 language tags update. (David Corbett) | |
| 465 - Add HB_NO_VERTICAL config option. | |
| 466 - Add HB_CONFIG_OVERRIDE_H for easier configuration. (Behdad Esfahbod) | |
| 467 | |
| 468 “harfbuzz-subset” library improvements: | |
| 469 - Improved packing of cmap, loca, and Ligature tables. (Garret Rieger) | |
| 470 - Significantly improved overflow-resolution strategy in the repacker. (Garret Rieger) | |
| 471 | |
| 472 | |
| 473 Overview of changes leading to 3.1.2 | |
| 474 Friday, November 26, 2021 | |
| 475 ==================================== | |
| 476 - hb-shape / hb-view: revert treating text on the commandline as single | |
| 477 paragraph (was introduced in 3.0.0); add new --single-par to do that. | |
| 478 (Behdad Esfahbod) | |
| 479 - Subsetter bug fixes. (Garret Rieger, Qunxin Liu, Behdad Esfahbod) | |
| 480 | |
| 481 | |
| 482 Overview of changes leading to 3.1.1 | |
| 483 Wednesday, November 8, 2021 | |
| 484 ==================================== | |
| 485 - Work around GCC cast-align error/warning on some platforms. (Behdad Esfahbod) | |
| 486 - Documentation improvements. (Matthias Clasen) | |
| 487 | |
| 488 | |
| 489 Overview of changes leading to 3.1.0 | |
| 490 Wednesday, November 3, 2021 | |
| 491 ==================================== | |
| 492 - Better offset-overflow handling in the subsetter library. (Garret Rieger) | |
| 493 - Improved Unicode 14 properties in the USE shaper, and various other USE | |
| 494 shaper fixes. (David Corbett) | |
| 495 - MATH and COLR v1 tables subsetting support, and various other subsetter fixes. | |
| 496 (Qunxin Liu) | |
| 497 - Support for Pwo Karen / Ason Chin medial la. (Simon Cozens) | |
| 498 - Apply GPOS positioning when substituting with morx table, if kerx is missing. | |
| 499 (Behdad Esfahbod) | |
| 500 - Apply calt and clig features across syllable boundaries in Indic shaper. | |
| 501 (Behdad Esfahbod) | |
| 502 - meson option for enabling Graphite 2 has been renamed to graphite2. | |
| 503 - Build and documentation fixes. | |
| 504 | |
| 505 - New API: | |
| 506 +hb_buffer_set_not_found_glyph() | |
| 507 +hb_buffer_get_not_found_glyph() | |
| 508 | |
| 509 | |
| 510 Overview of changes leading to 3.0.0 | |
| 511 Friday, September 17, 2021 | |
| 512 ==================================== | |
| 513 - Unicode 14.0 support (David Corbett). | |
| 514 - The hb-subset API and the harfbuzz-subset library's ABI are now declared | |
| 515 stable. The harfbuzz-subset library would not have been possible without the | |
| 516 work of Garret Rieger and Qunxin Liu from Google Fonts, and the earlier work | |
| 517 of Michiharu Ariza from Adobe. | |
| 518 - The hb-style API is now stable and no longer experimental. | |
| 519 | |
| 520 - New API: | |
| 521 +hb_style_tag_t | |
| 522 +hb_style_get_value() | |
| 523 +hb_subset_input_t | |
| 524 +hb_subset_flags_t | |
| 525 +hb_subset_sets_t | |
| 526 +hb_subset_input_create_or_fail() | |
| 527 +hb_subset_input_reference() | |
| 528 +hb_subset_input_destroy() | |
| 529 +hb_subset_input_set_user_data() | |
| 530 +hb_subset_input_get_user_data() | |
| 531 +hb_subset_input_unicode_set() | |
| 532 +hb_subset_input_glyph_set() | |
| 533 +hb_subset_input_set() | |
| 534 +hb_subset_input_get_flags() | |
| 535 +hb_subset_input_set_flags() | |
| 536 +hb_subset_or_fail() | |
| 537 | |
| 538 - Removed old unstable harfbuzz-subset API: | |
| 539 -hb_subset_input_nameid_set() | |
| 540 -hb_subset_input_namelangid_set() | |
| 541 -hb_subset_input_layout_features_set() | |
| 542 -hb_subset_input_no_subset_tables_set() | |
| 543 -hb_subset_input_drop_tables_set() | |
| 544 -hb_subset_input_set_drop_hints() | |
| 545 -hb_subset_input_get_drop_hints() | |
| 546 -hb_subset_input_set_desubroutinize() | |
| 547 -hb_subset_input_get_desubroutinize() | |
| 548 -hb_subset_input_set_retain_gids() | |
| 549 -hb_subset_input_get_retain_gids() | |
| 550 -hb_subset_input_set_name_legacy() | |
| 551 -hb_subset_input_get_name_legacy() | |
| 552 -hb_subset_input_set_overlaps_flag() | |
| 553 -hb_subset_input_get_overlaps_flag() | |
| 554 -hb_subset_input_set_notdef_outline() | |
| 555 -hb_subset_input_get_notdef_outline() | |
| 556 -hb_subset_input_set_no_prune_unicode_ranges() | |
| 557 -hb_subset_input_get_no_prune_unicode_ranges() | |
| 558 -hb_subset() | |
| 559 | |
| 560 | |
| 561 Overview of changes leading to 2.9.1 | |
| 562 Tuesday, September 7, 2021 | |
| 563 ==================================== | |
| 564 - Final subset API is in place and if no issues are discovered, it will be the | |
| 565 stable subset API of HarfBuzz 3.0.0. Old API is kept to ease transition, but | |
| 566 will be removed in 3.0.0. | |
| 567 - Various fuzzer-found bug fixes. | |
| 568 - hb_buffer_append() now handles the pre- and post-context which previously | |
| 569 were left unchanged in the destination buffer. | |
| 570 - hb-view / hb-shape now accept following new arguments: | |
| 571 o --unicodes-before/after: takes a list of hex numbers that represent Unicode | |
| 572 codepoints. | |
| 573 - Undeprecated API: | |
| 574 hb_set_invert() | |
| 575 | |
| 576 | |
| 577 Overview of changes leading to 2.9.0 | |
| 578 Wednesday, August 18, 2021 | |
| 579 History Repeats Itself (Afghanistan) | |
| 580 ==================================== | |
| 581 - Subsetter API is being stabilized, with the first stable API to happen in | |
| 582 3.0.0 release (https://github.com/harfbuzz/harfbuzz/issues/3078). | |
| 583 - Support multiple variation axes with same tag, aka HOI. | |
| 584 - The “coretext” testing shaper now passes font variations to CoreText. | |
| 585 - hb-shape/hb-view does not break line at new lines unless text is read from | |
| 586 file. | |
| 587 - hb-view and hb-subset has a --batch now, similar to hb-shape. | |
| 588 - The --batch mode now uses ; as argument separator instead of : used previously. | |
| 589 - The --batch in hb-shape does not expect 0th argument anymore. That is, the | |
| 590 lines read are interpreted as argv[1:], instead of argv[0:]. | |
| 591 - The --batch option has been undocumented. We are ready to document it; send | |
| 592 feedback if you find it useful. | |
| 593 - hb-subset got arguments revamps. Added much-requested --gids-file, --glyphs, | |
| 594 --glyphs-file, --unicodes-file, supporting ranges in --unicodes. | |
| 595 - Various bug fixes. | |
| 596 | |
| 597 | |
| 598 Overview of changes leading to 2.8.2 | |
| 599 Tuesday, July 8, 2021 | |
| 600 ==================================== | |
| 601 - Shaping LTR digits for RTL scripts now makes the native direction of the | |
| 602 digits LTR, applying shaping and positioning rules on the same glyph order as | |
| 603 Uniscribe. (Jonathan Kew, Khaled Hosny). | |
| 604 - Subsetting COLR v1 and CPAL tables is now supported. (Garret Rieger, Qunxin Liu) | |
| 605 - Various fixes and improvements to the subsetter. (Garret Rieger, Qunxin Liu, Behdad) | |
| 606 - When applying morx table, mark glyph widths should not be zeroed. (Jonathan Kew) | |
| 607 - GPOS is preferred over kerx, if GSUB was applied. (Behdad) | |
| 608 - Regional_Indicator pairs are grouped together when clustering. (Behdad) | |
| 609 - New API: | |
| 610 +hb_blob_create_or_fail() | |
| 611 +hb_blob_create_from_file_or_fail() | |
| 612 +hb_set_copy() | |
| 613 | |
| 614 | |
| 615 Overview of changes leading to 2.8.1 | |
| 616 Tuesday, May 4, 2021 | |
| 617 ==================================== | |
| 618 - Subsetter now fully supports GSUB/GPOS/GDEF tables (including variations); as | |
| 619 such, layout tables are retained by subsetter by default. (Garret Rieger, Qunxin Liu) | |
| 620 - Build scripts no longer check for FontConfig as HarfBuzz does not use it. | |
| 621 - hb-view supports iTerm2 and kitty inline image protocols (Khaled Hosny), | |
| 622 it can also use Chafa for terminal graphics if available (Hans Petter Jansson). | |
| 623 | |
| 624 Overview of changes leading to 2.8.0 | |
| 625 Tuesday, March 16, 2021 | |
| 626 ==================================== | |
| 627 - Shape joining scripts other than Arabic/Syriac using the Universal Shaping Engine. | |
| 628 Previously these were shaped using the generalized Arabic shaper. (David Corbett) | |
| 629 - Fix regression in shaping of U+0B55 ORIYA SIGN OVERLINE. (David Corbett) | |
| 630 - Update language tags. (David Corbett) | |
| 631 - Variations: reduce error: do not round each interpolated delta. (Just van Rossum) | |
| 632 - Documentation improvements. (Khaled Hosny, Nathan Willis) | |
| 633 - Subsetter improvements: subsets most, if not all, lookup types now. (Garret Rieger, Qunxin Liu) | |
| 634 - Fuzzer-found fixes and other improvements when memory failures happen. (Behdad) | |
| 635 - Removed most atomic implementations now that we have C++11 atomic impl. (Behdad) | |
| 636 - General codebase upkeep; using more C++11 features: constexpr constructors, etc. (Behdad) | |
| 637 | |
| 638 | |
| 639 Overview of changes leading to 2.7.4 | |
| 640 Sunday, December 27, 2020 | |
| 641 ==================================== | |
| 642 - Fix missing --enable-introspection configure option from previous release | |
| 643 tarball. | |
| 644 - Documentation updates. | |
| 645 | |
| 646 | |
| 647 Overview of changes leading to 2.7.3 | |
| 648 Wednesday, December 23, 2020 | |
| 649 ==================================== | |
| 650 - Update USE shaper to 2020-08-13 specification, and other improvements. | |
| 651 - Don’t disable liga feature in myanmar shaper, to match Uniscribe. | |
| 652 - Improvements to language and script tags handling. | |
| 653 - Update language system tag registry to OpenType 1.8.4 | |
| 654 - Support for serializing and deserializing Unicode buffers. Serialized buffers | |
| 655 are now delimited with `<>` or `[]` based on whether it is a Unicode or | |
| 656 glyphs buffer. | |
| 657 - Increase buffer work limits to handle fonts with many complex lookups. | |
| 658 - Handle more shaping operations in trace output. | |
| 659 - Memory access fixes. | |
| 660 - More OOM fixes. | |
| 661 - Improved documentation. | |
| 662 - Build system improvements. | |
| 663 - New API: | |
| 664 +hb_buffer_has_positions() | |
| 665 +hb_buffer_serialize() | |
| 666 +hb_buffer_serialize_unicode() | |
| 667 +hb_buffer_deserialize_unicode() | |
| 668 | |
| 669 | |
| 670 Overview of changes leading to 2.7.2 | |
| 671 Saturday, August 29, 2020 | |
| 672 ==================================== | |
| 673 - Fix a regression in the previous release that caused a crash with Kaithi. | |
| 674 - More OOM fixes. | |
| 675 | |
| 676 | |
| 677 Overview of changes leading to 2.7.1 | |
| 678 Thursday, August 13, 2020 | |
| 679 ==================================== | |
| 680 - ot-funcs now handles variable empty glyphs better when hvar/vvar isn't present. | |
| 681 - Reverted a GDEF processing regression. | |
| 682 - A couple of fixes to handle OOM better. | |
| 683 | |
| 684 | |
| 685 Overview of changes leading to 2.7.0 | |
| 686 Saturday, July 25, 2020 | |
| 687 ==================================== | |
| 688 - Use an implementation for round that always rounds up, some minor fluctuations | |
| 689 are expected on var font specially when hb-ot callback is used. | |
| 690 - Fix an AAT's `kerx` issue on broken rendering of Devanagari Sangam MN. | |
| 691 - Remove AAT's `lcar` table support from _get_ligature_carets API, not even much | |
| 692 use on macOS installed fonts (only two files). GDEF support is the recommended | |
| 693 one and expected to work properly after issues fixed two releases ago. | |
| 694 - Minor memory fixes to handle OOM better specially in hb-ft. | |
| 695 - Minor .so files versioning scheme change and remove stable/unstable scheme | |
| 696 differences, was never used in practice (always default to stable scheme). | |
| 697 - We are now suggesting careful packaging of the library using meson, | |
| 698 https://github.com/harfbuzz/harfbuzz/wiki/Notes-on-migration-to-meson | |
| 699 for more information. | |
| 700 - Distribution package URL is changed, either use GitHub generated tarballs, | |
| 701 `https://github.com/harfbuzz/harfbuzz/archive/$pkgver.tar.gz` | |
| 702 or, even more preferably use commit hash of the release and git checkouts like, | |
| 703 `git+https://github.com/harfbuzz/harfbuzz#commit=$commit` | |
| 704 | |
| 705 | |
| 706 Overview of changes leading to 2.6.8 | |
| 707 Monday, June 22, 2020 | |
| 708 ==================================== | |
| 709 - New API to fetch glyph alternates from GSUB table. | |
| 710 - hb-coretext build fix for macOS < 10.10. | |
| 711 - Meson build fixes, cmake port removal is postponed but please prepare for | |
| 712 it and give us feedback. | |
| 713 Autotools is still our main build system however please consider | |
| 714 experimenting with meson also for packaging the library. | |
| 715 - New API: | |
| 716 +hb_ot_layout_lookup_get_glyph_alternates() | |
| 717 | |
| 718 | |
| 719 Overview of changes leading to 2.6.7 | |
| 720 Wednesday, June 3, 2020 | |
| 721 ==================================== | |
| 722 - Update to Unicode 13.0.0. | |
| 723 - Fix hb_ot_layout_get_ligature_carets for fonts without lcar table, it was | |
| 724 completely broken for all the other fonts since 2.1.2. | |
| 725 - As a part of our migration to meson, this release will be the last one | |
| 726 to provide cmake port files but autotools still is our main build system. | |
| 727 There is a possibility that the next version or the after be released | |
| 728 using meson. | |
| 729 | |
| 730 | |
| 731 Overview of changes leading to 2.6.6 | |
| 732 Tuesday, May 12, 2020 | |
| 733 ==================================== | |
| 734 - A fix in AAT kerning for Geeza Pro. | |
| 735 - Better support for resource fork fonts on macOS. | |
| 736 | |
| 737 | |
| 738 Overview of changes leading to 2.6.5 | |
| 739 Friday, April 17, 2020 | |
| 740 ==================================== | |
| 741 - Add experimental meson build system. Autotools is still the primary | |
| 742 and supported build system. | |
| 743 - AAT is now always preferred for horizontal scripts when both AAT and OT | |
| 744 layout tables exist at the same time. | |
| 745 - Subsetter improvements. | |
| 746 - New API: | |
| 747 +hb_ft_font_lock_face() | |
| 748 +hb_ft_font_unlock_face() | |
| 749 | |
| 750 | |
| 751 Overview of changes leading to 2.6.4 | |
| 752 Monday, October 29, 2019 | |
| 753 ==================================== | |
| 754 - Small bug fix. | |
| 755 - Build fixes. | |
| 756 | |
| 757 | |
| 758 Overview of changes leading to 2.6.3 | |
| 759 Monday, October 28, 2019 | |
| 760 ==================================== | |
| 761 - Misc small fixes, mostly to build-related issues. | |
| 762 - New API: | |
| 763 +hb_font_get_nominal_glyphs() | |
| 764 | |
| 765 | |
| 766 Overview of changes leading to 2.6.2 | |
| 767 Monday, September 30, 2019 | |
| 768 ==================================== | |
| 769 - Misc small fixes, mostly to build-related issues. | |
| 770 | |
| 771 | |
| 772 Overview of changes leading to 2.6.1 | |
| 773 Thursday, August 22, 2019 | |
| 774 ==================================== | |
| 775 - Fix regression with hb_font_create_sub_font scaling introduced in 2.6.0. | |
| 776 - Change interpretation of font PTEM size / CoreText font size handling. | |
| 777 See https://github.com/harfbuzz/harfbuzz/pull/1484 | |
| 778 - hb-ot-font: Prefer symbol cmap subtable if present. | |
| 779 - Apply 'dist'/'abvm'/'blwm' features to all scripts. | |
| 780 - Drop experimental DirectWrite API. | |
| 781 | |
| 782 | |
| 783 Overview of changes leading to 2.6.0 | |
| 784 Tuesday, August 13, 2019 | |
| 785 ==================================== | |
| 786 - New OpenType metrics, baseline, and metadata table access APIs. | |
| 787 - New API to set font variations to a named-instance. | |
| 788 - New hb-gdi.h header and API for creating hb_face_t from HFONT. | |
| 789 - Amalgam: Provide a single-file harfbuzz.cc file for easier alternate building. | |
| 790 - More size-reduction configurable options, enabled by HB_TINY. | |
| 791 - New API: | |
| 792 +hb_font_set_var_named_instance() | |
| 793 +hb_gdi_face_create() | |
| 794 +hb_ot_layout_baseline_tag_t | |
| 795 +hb_ot_layout_get_baseline() | |
| 796 +hb_ot_meta_tag_t | |
| 797 +hb_ot_meta_get_entry_tags() | |
| 798 +hb_ot_meta_reference_entry() | |
| 799 +hb_ot_metrics_tag_t | |
| 800 +hb_ot_metrics_get_position() | |
| 801 +hb_ot_metrics_get_variation() | |
| 802 +hb_ot_metrics_get_x_variation() | |
| 803 +hb_ot_metrics_get_y_variation() | |
| 804 | |
| 805 | |
| 806 Overview of changes leading to 2.5.3 | |
| 807 Wednesday, June 26, 2019 | |
| 808 ==================================== | |
| 809 - Fix UCD script data for Unicode 10+ scripts. This was broken since 2.5.0. | |
| 810 - More optimizations for HB_TINY. | |
| 811 | |
| 812 | |
| 813 Overview of changes leading to 2.5.2 | |
| 814 Thursday, June 20, 2019 | |
| 815 ==================================== | |
| 816 - More hb-config.hh facilities to shrink library size, namely when built as | |
| 817 HB_TINY. | |
| 818 - New documentation of custom configurations in CONFIG.md. | |
| 819 - Fix build on gcc 4.8. That's supported again. | |
| 820 - Universal Shaping Engine improvements thanks to David Corbett. | |
| 821 - API Changes: Undeprecate some horizontal-kerning API and re-enable in hb-ft, | |
| 822 such that Type1 fonts will continue kerning. | |
| 823 | |
| 824 | |
| 825 Overview of changes leading to 2.5.1 | |
| 826 Friday, May 31, 2019 | |
| 827 ==================================== | |
| 828 - Fix build with various versions of Visual Studio. | |
| 829 - Improved documentation, thanks to Nathan Willis. | |
| 830 - Bugfix in subsetting glyf table. | |
| 831 - Improved scripts for cross-compiling for Windows using mingw. | |
| 832 - Rename HB_MATH_GLYPH_PART_FLAG_EXTENDER to HB_OT_MATH_GLYPH_PART_FLAG_EXTENDER. | |
| 833 A deprecated macro is added for backwards-compatibility. | |
| 834 | |
| 835 | |
| 836 Overview of changes leading to 2.5.0 | |
| 837 Friday, May 24, 2019 | |
| 838 ==================================== | |
| 839 - This release does not include much functional changes, but includes major internal | |
| 840 code-base changes. We now require C++11. Support for gcc 4.8 and earlier has been | |
| 841 dropped. | |
| 842 - New hb-config.hh facility for compiling smaller library for embedded and web usecases. | |
| 843 - New Unicode Character Database implementation that is half the size of previously-used | |
| 844 UCDN. | |
| 845 - Subsetter improvements. | |
| 846 - Improved documentation, thanks to Nathan Willis. | |
| 847 - Misc shaping fixes. | |
| 848 | |
| 849 | |
| 850 Overview of changes leading to 2.4.0 | |
| 851 Monday, March 25, 2019 | |
| 852 ==================================== | |
| 853 - Unicode 12. | |
| 854 - Misc fixes. | |
| 855 - Subsetter improvements. | |
| 856 - New API: | |
| 857 HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE | |
| 858 hb_directwrite_face_create() | |
| 859 | |
| 860 | |
| 861 Overview of changes leading to 2.3.1 | |
| 862 Wednesday, January 30, 2019 | |
| 863 ==================================== | |
| 864 - AAT bug fixes. | |
| 865 - Misc internal housekeeping cleanup. | |
| 866 | |
| 867 | |
| 868 Overview of changes leading to 2.3.0 | |
| 869 Thursday, December 20, 2018 | |
| 870 ==================================== | |
| 871 - Fix regression on big-endian architectures. Ouch! | |
| 872 - Misc bug and build fixes. | |
| 873 - Fix subsetting of simple GSUB/GDEF. | |
| 874 - Merge CFF / CFF2 support contributed by Adobe. This mostly involves | |
| 875 the subsetter, but also get_glyph_extents on CFF fonts. | |
| 876 | |
| 877 New API in hb-aat.h: | |
| 878 +hb_aat_layout_has_substitution() | |
| 879 +hb_aat_layout_has_positioning() | |
| 880 +hb_aat_layout_has_tracking() | |
| 881 | |
| 882 | |
| 883 Overview of changes leading to 2.2.0 | |
| 884 Thursday, November 29, 2018 | |
| 885 ==================================== | |
| 886 - Misc shaping bug fixes. | |
| 887 - Add font variations named-instance API. | |
| 888 - Deprecate font variations axis enumeration API and add replacement. | |
| 889 - AAT shaping improvements: | |
| 890 o Fixed 'kern' table Format 2 implementation. | |
| 891 o Implement 'feat' table API for feature detection. | |
| 892 o Blacklist 'GSUB' table of fonts from 'MUTF' foundry that also have 'morx'. | |
| 893 | |
| 894 New API: | |
| 895 +hb_aat_layout_feature_type_t | |
| 896 +hb_aat_layout_feature_selector_t | |
| 897 +hb_aat_layout_get_feature_types() | |
| 898 +hb_aat_layout_feature_type_get_name_id | |
| 899 +hb_aat_layout_feature_selector_info_t | |
| 900 +HB_AAT_LAYOUT_NO_SELECTOR_INDEX | |
| 901 +hb_aat_layout_feature_type_get_selector_infos() | |
| 902 +hb_ot_var_axis_flags_t | |
| 903 +hb_ot_var_axis_info_t | |
| 904 +hb_ot_var_get_axis_infos() | |
| 905 +hb_ot_var_find_axis_info() | |
| 906 +hb_ot_var_get_named_instance_count() | |
| 907 +hb_ot_var_named_instance_get_subfamily_name_id() | |
| 908 +hb_ot_var_named_instance_get_postscript_name_id() | |
| 909 +hb_ot_var_named_instance_get_design_coords() | |
| 910 | |
| 911 Deprecated API: | |
| 912 +HB_OT_VAR_NO_AXIS_INDEX | |
| 913 +hb_ot_var_axis_t | |
| 914 +hb_ot_var_get_axes() | |
| 915 +hb_ot_var_find_axis() | |
| 916 | |
| 917 | |
| 918 Overview of changes leading to 2.1.3 | |
| 919 Friday, November 16, 2018 | |
| 920 ==================================== | |
| 921 - Fix AAT 'mort' shaping, which was broken in 2.1.2 | |
| 922 | |
| 923 | |
| 924 Overview of changes leading to 2.1.2 | |
| 925 Friday, November 16, 2018 | |
| 926 ==================================== | |
| 927 - Various internal changes. | |
| 928 - AAT shaping improvements: | |
| 929 o Implement kern table Format 1 state-machine-based kerning. | |
| 930 o Implement cross-stream kerning (cursive positioning, etc). | |
| 931 o Ignore emptyish GSUB tables (zero scripts) if morx present. | |
| 932 o Don't apply GPOS if morx is being applied. Matches Apple. | |
| 933 | |
| 934 | |
| 935 -Overview of changes leading to 2.1.1 | |
| 936 Monday, November 5, 2018 | |
| 937 ==================================== | |
| 938 - AAT improvements: | |
| 939 o Implement 'mort' table. | |
| 940 o Implement 'kern' subtables Format 1 and Format 3. | |
| 941 | |
| 942 | |
| 943 Overview of changes leading to 2.1.0 | |
| 944 Tuesday, October 30, 2018 | |
| 945 ==================================== | |
| 946 - AAT shaping improvements: | |
| 947 o Allow user controlling AAT features, for whole buffer only currently. | |
| 948 o Several 'morx' fixes. | |
| 949 o Implement tuple-kerns in 'kerx'; Fixes kerning with Apple default | |
| 950 San Francisco fonts. | |
| 951 - Support for color fonts: | |
| 952 o COLR/CPAL API to fetch color layers. | |
| 953 o SVG table to fetch SVG documents. | |
| 954 o CBDT/sbix API to fetch PNG images. | |
| 955 - New 'name' table API. | |
| 956 - hb-ot-font now uses 'VORG' table to correctly position CFF glyphs | |
| 957 in vertical layout. | |
| 958 - Various fuzzer-found bug fixes. | |
| 959 | |
| 960 Changed API: | |
| 961 | |
| 962 A type and a macro added in 2.0.0 were renamed: | |
| 963 | |
| 964 hb_name_id_t -> hb_ot_name_id_t | |
| 965 HB_NAME_ID_INVALID -> HB_OT_NAME_ID_INVALID | |
| 966 | |
| 967 New API: | |
| 968 | |
| 969 +hb_color_t | |
| 970 +HB_COLOR | |
| 971 +hb_color_get_alpha() | |
| 972 +hb_color_get_red() | |
| 973 +hb_color_get_green() | |
| 974 +hb_color_get_blue() | |
| 975 +hb_ot_color_has_palettes() | |
| 976 +hb_ot_color_palette_get_count() | |
| 977 +hb_ot_color_palette_get_name_id() | |
| 978 +hb_ot_color_palette_color_get_name_id() | |
| 979 +hb_ot_color_palette_flags_t | |
| 980 +hb_ot_color_palette_get_flags() | |
| 981 +hb_ot_color_palette_get_colors() | |
| 982 +hb_ot_color_has_layers() | |
| 983 +hb_ot_color_layer_t | |
| 984 +hb_ot_color_glyph_get_layers() | |
| 985 +hb_ot_color_has_svg() | |
| 986 +hb_ot_color_glyph_reference_svg() | |
| 987 +hb_ot_color_has_png() | |
| 988 +hb_ot_color_glyph_reference_png() | |
| 989 | |
| 990 +hb_ot_name_id_t | |
| 991 +HB_OT_NAME_ID_INVALID | |
| 992 +HB_OT_NAME_ID_COPYRIGHT | |
| 993 +HB_OT_NAME_ID_FONT_FAMILY | |
| 994 +HB_OT_NAME_ID_FONT_SUBFAMILY | |
| 995 +HB_OT_NAME_ID_UNIQUE_ID | |
| 996 +HB_OT_NAME_ID_FULL_NAME | |
| 997 +HB_OT_NAME_ID_VERSION_STRING | |
| 998 +HB_OT_NAME_ID_POSTSCRIPT_NAME | |
| 999 +HB_OT_NAME_ID_TRADEMARK | |
| 1000 +HB_OT_NAME_ID_MANUFACTURER | |
| 1001 +HB_OT_NAME_ID_DESIGNER | |
| 1002 +HB_OT_NAME_ID_DESCRIPTION | |
| 1003 +HB_OT_NAME_ID_VENDOR_URL | |
| 1004 +HB_OT_NAME_ID_DESIGNER_URL | |
| 1005 +HB_OT_NAME_ID_LICENSE | |
| 1006 +HB_OT_NAME_ID_LICENSE_URL | |
| 1007 +HB_OT_NAME_ID_TYPOGRAPHIC_FAMILY | |
| 1008 +HB_OT_NAME_ID_TYPOGRAPHIC_SUBFAMILY | |
| 1009 +HB_OT_NAME_ID_MAC_FULL_NAME | |
| 1010 +HB_OT_NAME_ID_SAMPLE_TEXT | |
| 1011 +HB_OT_NAME_ID_CID_FINDFONT_NAME | |
| 1012 +HB_OT_NAME_ID_WWS_FAMILY | |
| 1013 +HB_OT_NAME_ID_WWS_SUBFAMILY | |
| 1014 +HB_OT_NAME_ID_LIGHT_BACKGROUND | |
| 1015 +HB_OT_NAME_ID_DARK_BACKGROUND | |
| 1016 +HB_OT_NAME_ID_VARIATIONS_PS_PREFIX | |
| 1017 +hb_ot_name_entry_t | |
| 1018 +hb_ot_name_list_names() | |
| 1019 +hb_ot_name_get_utf8() | |
| 1020 +hb_ot_name_get_utf16() | |
| 1021 +hb_ot_name_get_utf32() | |
| 1022 | |
| 1023 | |
| 1024 Overview of changes leading to 2.0.2 | |
| 1025 Saturday, October 20, 2018 | |
| 1026 ==================================== | |
| 1027 - Fix two minor memory access issues in AAT tables. | |
| 1028 | |
| 1029 | |
| 1030 Overview of changes leading to 2.0.1 | |
| 1031 Friday, October 19, 2018 | |
| 1032 ==================================== | |
| 1033 - Fix hb-version.h reported release version that went wrong (1.8.0) | |
| 1034 with previous release. | |
| 1035 - Fix extrapolation in 'trak' table. | |
| 1036 - Fix hb-font infinite-recursion issue with some font funcs and | |
| 1037 subclassed fonts. | |
| 1038 - Implement variation-kerning format in kerx table, although without | |
| 1039 variation. | |
| 1040 - Fix return value of hb_map_is_empty(). | |
| 1041 | |
| 1042 | |
| 1043 Overview of changes leading to 2.0.0 | |
| 1044 Thursday, October 18, 2018 | |
| 1045 ==================================== | |
| 1046 - Added AAT shaping support (morx/kerx/trak). | |
| 1047 Automatically used if GSUB/GPOS are not available respectively. | |
| 1048 Set HB_OPTIONS=aat env var to have morx/kerx preferred over | |
| 1049 GSUB/GPOS. | |
| 1050 - Apply TrueType kern table internally, instead of relying on | |
| 1051 hb_font_t callbacks. | |
| 1052 - Khmer shaper significantly rewritten to better match Uniscribe. | |
| 1053 - Indic3 tags ('dev3', etc) are passed to USE shaper. | |
| 1054 - .dfont Mac font containers implemented. | |
| 1055 - Script- and language-mapping revamped to better use BCP 47. | |
| 1056 - Misc USE and Indic fixes. | |
| 1057 - Misc everything fixes. | |
| 1058 - Too many things to list. Biggest release since 0.9.1, with | |
| 1059 over 500 commits in just over 5 weeks! Didn't intend it to | |
| 1060 be a big release. Just happened to become. | |
| 1061 - hb-ft now locks underlying FT_Face during use. | |
| 1062 | |
| 1063 API changes: | |
| 1064 | |
| 1065 - Newly-created hb_font_t's now have our internal "hb-ot-font" | |
| 1066 callbacks set on them, so they should work out of the box | |
| 1067 without any callbacks set. If callbacks are set, everything | |
| 1068 is back to what it was before, the fallback callbacks are | |
| 1069 null. If you to get the internal implementation modified, | |
| 1070 sub_font it. | |
| 1071 | |
| 1072 - New hb_font_funcs_set_nominal_glyphs_func() allows speeding | |
| 1073 up character to glyph mapping. | |
| 1074 | |
| 1075 New API: | |
| 1076 +HB_FEATURE_GLOBAL_START | |
| 1077 +HB_FEATURE_GLOBAL_END | |
| 1078 +hb_buffer_set_invisible_glyph() | |
| 1079 +hb_buffer_get_invisible_glyph() | |
| 1080 +hb_font_funcs_set_nominal_glyphs_func() | |
| 1081 +hb_ot_layout_table_select_script() | |
| 1082 +hb_ot_layout_script_select_language() | |
| 1083 +hb_ot_layout_feature_get_name_ids() | |
| 1084 +hb_ot_layout_feature_get_characters() | |
| 1085 +hb_name_id_t | |
| 1086 +HB_NAME_ID_INVALID | |
| 1087 +HB_OT_MAX_TAGS_PER_SCRIPT | |
| 1088 +hb_ot_tags_from_script_and_language() | |
| 1089 +hb_ot_tags_to_script_and_language() | |
| 1090 | |
| 1091 Deprecated API: | |
| 1092 -hb_font_funcs_set_glyph_func() | |
| 1093 -hb_unicode_eastasian_width_func_t | |
| 1094 -hb_unicode_funcs_set_eastasian_width_func() | |
| 1095 -hb_unicode_eastasian_width() | |
| 1096 -hb_unicode_decompose_compatibility_func_t | |
| 1097 -HB_UNICODE_MAX_DECOMPOSITION_LEN | |
| 1098 -hb_unicode_funcs_set_decompose_compatibility_func() | |
| 1099 -hb_unicode_decompose_compatibility() | |
| 1100 -hb_font_funcs_set_glyph_h_kerning_func() | |
| 1101 -hb_font_funcs_set_glyph_v_kerning_func() | |
| 1102 -hb_font_get_glyph_h_kerning() | |
| 1103 -hb_font_get_glyph_v_kerning() | |
| 1104 -hb_font_get_glyph_kerning_for_direction() | |
| 1105 -hb_ot_layout_table_choose_script() | |
| 1106 -hb_ot_layout_script_find_language() | |
| 1107 -hb_ot_tags_from_script() | |
| 1108 -hb_ot_tag_from_language() | |
| 1109 | |
| 1110 | |
| 1111 Overview of changes leading to 1.9.0 | |
| 1112 Monday, September 10, 2018 | |
| 1113 ==================================== | |
| 1114 - Added 'cmap' API to hb_face_t. | |
| 1115 - Face-builder API. | |
| 1116 - hb-ot-font re-creation should be much leaner now, as the | |
| 1117 font tables it uses are cached on hb_face_t now. | |
| 1118 - Internal source header file name changes: | |
| 1119 hb-*-private.hh is renamed to hb-*.hh. | |
| 1120 | |
| 1121 New API: | |
| 1122 +HB_UNICODE_MAX | |
| 1123 +hb_face_collect_unicodes() | |
| 1124 +hb_face_collect_variation_selectors() | |
| 1125 +hb_face_collect_variation_unicodes() | |
| 1126 +hb_face_builder_create() | |
| 1127 +hb_face_builder_add_table() | |
| 1128 | |
| 1129 | |
| 1130 Overview of changes leading to 1.8.8 | |
| 1131 Tuesday, August 14, 2018 | |
| 1132 ==================================== | |
| 1133 - Fix hb-icu crash on architectures where compare_exchange_weak() can | |
| 1134 fail falsely. This bug was introduced in 1.8.4. | |
| 1135 https://bugs.chromium.org/p/chromium/issues/detail?id=873568 | |
| 1136 - More internal refactoring of atomic operations and singletons. | |
| 1137 - API changes: | |
| 1138 The following functions do NOT reference their return value before | |
| 1139 returning: | |
| 1140 * hb_unicode_funcs_get_default() | |
| 1141 * hb_glib_get_unicode_funcs() | |
| 1142 * hb_icu_get_unicode_funcs() | |
| 1143 This is consistent with their naming ("get", instead of "reference") | |
| 1144 as well as how they are used in the wild (ie. no one calls destroy() | |
| 1145 on their return value.) | |
| 1146 | |
| 1147 | |
| 1148 Overview of changes leading to 1.8.7 | |
| 1149 Wednesday, August 8, 2018 | |
| 1150 ==================================== | |
| 1151 - Fix assertion failure with GDEF-blacklisted fonts. | |
| 1152 | |
| 1153 | |
| 1154 Overview of changes leading to 1.8.6 | |
| 1155 Tuesday, August 7, 2018 | |
| 1156 ==================================== | |
| 1157 - Internal code shuffling. | |
| 1158 - New API to speed up getting advance widths for implementations | |
| 1159 that have heavy overhead in get_h_advance callback: | |
| 1160 +hb_font_funcs_set_glyph_h_advances_func | |
| 1161 +hb_font_funcs_set_glyph_v_advances_func | |
| 1162 +hb_font_get_glyph_advances_for_direction | |
| 1163 +hb_font_get_glyph_h_advances | |
| 1164 +hb_font_get_glyph_h_advances_func_t | |
| 1165 +hb_font_get_glyph_v_advances | |
| 1166 +hb_font_get_glyph_v_advances_func_t | |
| 1167 | |
| 1168 | |
| 1169 Overview of changes leading to 1.8.5 | |
| 1170 Wednesday, August 1, 2018 | |
| 1171 ==================================== | |
| 1172 - Major Khmer shaper improvements to better match Microsoft. | |
| 1173 - Indic bug fixes. | |
| 1174 - Internal improvements to atomic operations. | |
| 1175 | |
| 1176 | |
| 1177 Overview of changes leading to 1.8.4 | |
| 1178 Tuesday, July 17, 2018 | |
| 1179 ==================================== | |
| 1180 - Fix build on non-C++11. | |
| 1181 - Use C++-style GCC atomics and C++11 atomics. | |
| 1182 | |
| 1183 | |
| 1184 Overview of changes leading to 1.8.3 | |
| 1185 Wednesday, July 11, 2018 | |
| 1186 ==================================== | |
| 1187 - A couple of Indic / USE bug fixes. | |
| 1188 - Disable vectorization, as it was causing unaligned access bus error on | |
| 1189 certain 32bit architectures. | |
| 1190 | |
| 1191 | |
| 1192 Overview of changes leading to 1.8.2 | |
| 1193 Tuesday, July 3, 2018 | |
| 1194 ==================================== | |
| 1195 - Fix infinite loop in Khmer shaper. | |
| 1196 - Improve hb_blob_create_from_file() for streams. | |
| 1197 | |
| 1198 | |
| 1199 Overview of changes leading to 1.8.1 | |
| 1200 Tuesday, June 12, 2018 | |
| 1201 ==================================== | |
| 1202 - Fix hb-version.h file generation; last two releases went out with wrong ones. | |
| 1203 - Add correctness bug in hb_set_t operations, introduced in 1.7.7. | |
| 1204 - Remove HB_SUBSET_BUILTIN build option. Not necessary. | |
| 1205 | |
| 1206 | |
| 1207 Overview of changes leading to 1.8.0 | |
| 1208 Tuesday, June 5, 2018 | |
| 1209 ==================================== | |
| 1210 - Update to Unicode 11.0.0. | |
| 1211 | |
| 1212 | |
| 1213 Overview of changes leading to 1.7.7 | |
| 1214 Tuesday, June 5, 2018 | |
| 1215 ==================================== | |
| 1216 - Lots of internal changes, but not yet exposed externally. | |
| 1217 - All HarfBuzz objects are significantly smaller in size now. | |
| 1218 - Sinhala: Position repha on top of post-consonant, not base. | |
| 1219 This better matches Windows 10 behavior, which was changed | |
| 1220 from previous Windows versions. | |
| 1221 - New build options: | |
| 1222 o New cpp macro HB_NO_ATEXIT | |
| 1223 o New cpp macro HB_SUBSET_BUILTIN | |
| 1224 - Significant libharfbuzz-subset changes. API subject to change. | |
| 1225 - New API in libharfbuzz: | |
| 1226 | |
| 1227 +hb_blob_create_from_file() | |
| 1228 +hb_face_count() | |
| 1229 | |
| 1230 A hashmap implementation: | |
| 1231 +hb-map.h | |
| 1232 +HB_MAP_VALUE_INVALID | |
| 1233 +hb_map_t | |
| 1234 +hb_map_create() | |
| 1235 +hb_map_get_empty() | |
| 1236 +hb_map_reference() | |
| 1237 +hb_map_destroy() | |
| 1238 +hb_map_set_user_data() | |
| 1239 +hb_map_get_user_data() | |
| 1240 +hb_map_allocation_successful() | |
| 1241 +hb_map_clear() | |
| 1242 +hb_map_is_empty() | |
| 1243 +hb_map_get_population() | |
| 1244 +hb_map_set() | |
| 1245 +hb_map_get() | |
| 1246 +hb_map_del() | |
| 1247 +hb_map_has() | |
| 1248 | |
| 1249 | |
| 1250 Overview of changes leading to 1.7.6 | |
| 1251 Wednesday, March 7, 2018 | |
| 1252 ==================================== | |
| 1253 | |
| 1254 - Fix to hb_set_t binary operations. Ouch. | |
| 1255 - New experimental harfbuzz-subset library. All of hb-subset.h | |
| 1256 is experimental right now and API WILL change. | |
| 1257 | |
| 1258 - New API: | |
| 1259 hb_blob_copy_writable_or_fail() | |
| 1260 HB_OT_TAG_BASE | |
| 1261 hb_set_previous() | |
| 1262 hb_set_previous_range() | |
| 1263 | |
| 1264 | |
| 1265 Overview of changes leading to 1.7.5 | |
| 1266 Tuesday, January 30, 2018 | |
| 1267 ==================================== | |
| 1268 | |
| 1269 - Separate Khmer shaper from Indic. | |
| 1270 - First stab at AAT morx. Not hooked up. | |
| 1271 - Misc bug fixes. | |
| 1272 | |
| 1273 | |
| 1274 Overview of changes leading to 1.7.4 | |
| 1275 Wednesday, December 20, 2017 | |
| 1276 ==================================== | |
| 1277 | |
| 1278 - Fix collect_glyphs() regression caused by hb_set_t changes. | |
| 1279 | |
| 1280 | |
| 1281 Overview of changes leading to 1.7.3 | |
| 1282 Monday, December 18, 2017 | |
| 1283 ==================================== | |
| 1284 | |
| 1285 - hb_set_t performance tuning and optimizations. | |
| 1286 - Speed up collect_glyphs() and reject garbage data. | |
| 1287 - In hb_coretext_font_create() set font point-size (ptem). | |
| 1288 - Misc fixes. | |
| 1289 | |
| 1290 | |
| 1291 Overview of changes leading to 1.7.2 | |
| 1292 Monday, December 4, 2017 | |
| 1293 ==================================== | |
| 1294 | |
| 1295 - Optimize hb_set_add_range(). | |
| 1296 - Misc fixes. | |
| 1297 - New API: | |
| 1298 hb_coretext_font_create() | |
| 1299 | |
| 1300 | |
| 1301 Overview of changes leading to 1.7.1 | |
| 1302 Tuesday, November 14, 2017 | |
| 1303 ==================================== | |
| 1304 | |
| 1305 - Fix atexit object destruction regression. | |
| 1306 - Fix minor integer-overflow. | |
| 1307 | |
| 1308 | |
| 1309 Overview of changes leading to 1.7.0 | |
| 1310 Monday, November 13, 2017 | |
| 1311 ==================================== | |
| 1312 | |
| 1313 - Minor Indic fixes. | |
| 1314 - Implement kerning and glyph names in hb-ot-font. | |
| 1315 - Various DSO optimization re .data and .bss sizes. | |
| 1316 - Make C++11 optional; build fixes. | |
| 1317 - Mark all other backends "unsafe-to-break". | |
| 1318 - Graphite fix. | |
| 1319 | |
| 1320 | |
| 1321 Overview of changes leading to 1.6.3 | |
| 1322 Thursday, October 26th, 2017 | |
| 1323 ==================================== | |
| 1324 | |
| 1325 - Fix hb_set_t some more. Should be solid now. | |
| 1326 - Implement get_glyph_name() for hb-ot-font. | |
| 1327 - Misc fixes. | |
| 1328 | |
| 1329 | |
| 1330 Overview of changes leading to 1.6.2 | |
| 1331 Monday, October 23nd, 2017 | |
| 1332 ==================================== | |
| 1333 | |
| 1334 - Yesterday's release had a bad crasher; don't use it. That's what | |
| 1335 happens when one works on Sunday... | |
| 1336 https://github.com/harfbuzz/harfbuzz/issues/578 | |
| 1337 - Build fixes for FreeBSD and Chrome Android. | |
| 1338 | |
| 1339 | |
| 1340 Overview of changes leading to 1.6.1 | |
| 1341 Sunday, October 22nd, 2017 | |
| 1342 ==================================== | |
| 1343 | |
| 1344 - Don't skip over COMBINING GRAPHEME JOINER when ligating, etc. | |
| 1345 To be refined: https://github.com/harfbuzz/harfbuzz/issues/554 | |
| 1346 - Faster hb_set_t implementation. | |
| 1347 - Don't use deprecated ICU API. | |
| 1348 - Fix undefined-behavior in Myanmar shaper, introduced in 1.6.0 | |
| 1349 - Deprecated API: | |
| 1350 hb_set_invert() | |
| 1351 | |
| 1352 | |
| 1353 Overview of changes leading to 1.6.0 | |
| 1354 Friday, October the 13th, 2017 | |
| 1355 ==================================== | |
| 1356 | |
| 1357 - Update to Unicode 10. | |
| 1358 | |
| 1359 - Various Indic and Universal Shaping Engine fixes as a result of | |
| 1360 HarfBuzz Hackfest with Jonathan Kew at Web Engines Hackfest at | |
| 1361 the Igalia offices in A Coruña, Spain. Thanks Igalia for having | |
| 1362 us! | |
| 1363 | |
| 1364 - Implement Unicode Arabic Mark Ordering Algorithm UTR#53. | |
| 1365 | |
| 1366 - Implement optical sizing / tracking in CoreText backend, using | |
| 1367 new API hb_font_set_ptem(). | |
| 1368 | |
| 1369 - Allow notifying hb_font_t that underlying FT_Face changed sizing, | |
| 1370 using new API hb_ft_font_changed(). | |
| 1371 | |
| 1372 - More Graphite backend RTL fixes. | |
| 1373 | |
| 1374 - Fix caching of variable font shaping plans. | |
| 1375 | |
| 1376 - hb-view / hb-shape now accept following new arguments: | |
| 1377 | |
| 1378 o --unicodes: takes a list of hex numbers that represent Unicode | |
| 1379 codepoints. | |
| 1380 | |
| 1381 New API: | |
| 1382 +hb_face_get_table_tags() | |
| 1383 +hb_font_set_ptem() | |
| 1384 +hb_font_get_ptem() | |
| 1385 +hb_ft_font_changed() | |
| 1386 | |
| 1387 | |
| 1388 Overview of changes leading to 1.5.1 | |
| 1389 Tuesday, September 5, 2017 | |
| 1390 ==================================== | |
| 1391 | |
| 1392 - Fix "unsafe-to-break" in fallback shaping and other corner cases. | |
| 1393 All our tests pass with --verify now, meaning unsafe-to-break API | |
| 1394 works as expected. | |
| 1395 - Add --unicodes to hb-view / hb-shape. | |
| 1396 - [indic] Treat Consonant_With_Stacker as consonant. This will need | |
| 1397 further tweaking. | |
| 1398 - hb_buffer_diff() tweaks. | |
| 1399 | |
| 1400 | |
| 1401 Overview of changes leading to 1.5.0 | |
| 1402 Wednesday, August 23, 2017 | |
| 1403 ==================================== | |
| 1404 | |
| 1405 - Misc new API, for appending a buffer to another, and for comparing | |
| 1406 contents of two buffers for types of differences. | |
| 1407 | |
| 1408 - New "unsafe-to-break" API. Can be used to speed up reshaping | |
| 1409 in line-breaking situations. Essentially, after shaping, it returns | |
| 1410 positions in the input string (some of the cluster boundaries) that | |
| 1411 are "safe to break" in that if the text is segmented at that position | |
| 1412 and two sides reshaped and concatenated, the shaping result is | |
| 1413 exactly the same as shaping the text in one piece. | |
| 1414 | |
| 1415 hb-view and hb-shape and hb-shape now take --verify, which verifies | |
| 1416 the above property. | |
| 1417 | |
| 1418 Some corner cases of the implementation are still not quite working. | |
| 1419 Those will be fixed in subsequent releases. | |
| 1420 | |
| 1421 - New API: | |
| 1422 | |
| 1423 hb_buffer_append() | |
| 1424 | |
| 1425 hb_glyph_flags_t | |
| 1426 HB_GLYPH_FLAG_UNSAFE_TO_BREAK | |
| 1427 HB_GLYPH_FLAG_DEFINED | |
| 1428 hb_glyph_info_get_glyph_flags() | |
| 1429 | |
| 1430 HB_BUFFER_SERIALIZE_FLAG_GLYPH_FLAGS | |
| 1431 | |
| 1432 hb_buffer_diff_flags_t | |
| 1433 HB_BUFFER_DIFF_FLAG_EQUAL | |
| 1434 HB_BUFFER_DIFF_FLAG_CONTENT_TYPE_MISMATCH | |
| 1435 HB_BUFFER_DIFF_FLAG_LENGTH_MISMATCH | |
| 1436 HB_BUFFER_DIFF_FLAG_NOTDEF_PRESENT | |
| 1437 HB_BUFFER_DIFF_FLAG_DOTTED_CIRCLE_PRESENT | |
| 1438 HB_BUFFER_DIFF_FLAG_CODEPOINT_MISMATCH | |
| 1439 HB_BUFFER_DIFF_FLAG_CLUSTER_MISMATCH | |
| 1440 HB_BUFFER_DIFF_FLAG_GLYPH_FLAGS_MISMATCH | |
| 1441 HB_BUFFER_DIFF_FLAG_POSITION_MISMATCH | |
| 1442 hb_buffer_diff | |
| 1443 | |
| 1444 | |
| 1445 Overview of changes leading to 1.4.8 | |
| 1446 Tuesday, August 8, 2017 | |
| 1447 ==================================== | |
| 1448 | |
| 1449 - Major fix to avar table handling. | |
| 1450 - Rename hb-shape --show-message to --trace. | |
| 1451 - Build fixes. | |
| 1452 | |
| 1453 | |
| 1454 Overview of changes leading to 1.4.7 | |
| 1455 Tuesday, July 18, 2017 | |
| 1456 ==================================== | |
| 1457 | |
| 1458 - Multiple Indic, Tibetan, and Cham fixes. | |
| 1459 - CoreText: Allow disabling kerning. | |
| 1460 - Adjust Arabic feature order again. | |
| 1461 - Misc build fixes. | |
| 1462 | |
| 1463 | |
| 1464 Overview of changes leading to 1.4.6 | |
| 1465 Sunday, April 23, 2017 | |
| 1466 ==================================== | |
| 1467 | |
| 1468 - Graphite2: Fix RTL positioning issue. | |
| 1469 - Backlist GDEF of more versions of Padauk and Tahoma. | |
| 1470 - New, experimental, cmake alternative build system. | |
| 1471 | |
| 1472 | |
| 1473 Overview of changes leading to 1.4.5 | |
| 1474 Friday, March 10, 2017 | |
| 1475 ==================================== | |
| 1476 | |
| 1477 - Revert "Fix Context lookup application when moving back after a glyph..." | |
| 1478 This introduced memory access problems. To be fixed properly soon. | |
| 1479 | |
| 1480 | |
| 1481 Overview of changes leading to 1.4.4 | |
| 1482 Sunday, March 5, 2017 | |
| 1483 ==================================== | |
| 1484 | |
| 1485 - Fix Context lookup application when moving back after a glyph deletion. | |
| 1486 - Fix buffer-overrun in Bengali. | |
| 1487 | |
| 1488 | |
| 1489 Overview of changes leading to 1.4.3 | |
| 1490 Saturday, February 25, 2017 | |
| 1491 ==================================== | |
| 1492 | |
| 1493 - Route Adlam script to Arabic shaper. | |
| 1494 - Misc fixes. | |
| 1495 - New API: | |
| 1496 hb_font_set_face() | |
| 1497 - Deprecate API: | |
| 1498 hb_graphite2_font_get_gr_font() | |
| 1499 | |
| 1500 | |
| 1501 Overview of changes leading to 1.4.2 | |
| 1502 Monday, January 23, 2017 | |
| 1503 ==================================== | |
| 1504 | |
| 1505 - Implement OpenType Font Variation tables avar/fvar/HVAR/VVAR. | |
| 1506 - hb-shape and hb-view now accept --variations. | |
| 1507 - New API: | |
| 1508 | |
| 1509 hb_variation_t | |
| 1510 hb_variation_from_string() | |
| 1511 hb_variation_to_string() | |
| 1512 | |
| 1513 hb_font_set_variations() | |
| 1514 hb_font_set_var_coords_design() | |
| 1515 hb_font_get_var_coords_normalized() | |
| 1516 | |
| 1517 hb-ot-var.h: | |
| 1518 hb_ot_var_axis_t | |
| 1519 hb_ot_var_has_data() | |
| 1520 hb_ot_var_get_axis_count() | |
| 1521 hb_ot_var_get_axes() | |
| 1522 hb_ot_var_find_axis() | |
| 1523 hb_ot_var_normalize_variations() | |
| 1524 hb_ot_var_normalize_coords() | |
| 1525 | |
| 1526 - MVAR to be implemented later. Access to named instances to be | |
| 1527 implemented later as well. | |
| 1528 | |
| 1529 - Misc fixes. | |
| 1530 | |
| 1531 | |
| 1532 Overview of changes leading to 1.4.1 | |
| 1533 Thursday, January 5, 2017 | |
| 1534 ==================================== | |
| 1535 | |
| 1536 - Always build and use UCDN for Unicode data by default. | |
| 1537 Reduces dependence on version of Unicode data in glib, | |
| 1538 specially in the Windows bundles we are shipping, which | |
| 1539 have very old glib. | |
| 1540 | |
| 1541 | |
| 1542 Overview of changes leading to 1.4.0 | |
| 1543 Thursday, January 5, 2017 | |
| 1544 ==================================== | |
| 1545 | |
| 1546 - Merged "OpenType GX" branch which adds core of support for | |
| 1547 OpenType 1.8 Font Variations. To that extent, the relevant | |
| 1548 new API is: | |
| 1549 | |
| 1550 New API: | |
| 1551 hb_font_set_var_coords_normalized() | |
| 1552 | |
| 1553 with supporting API: | |
| 1554 | |
| 1555 New API: | |
| 1556 HB_OT_LAYOUT_NO_VARIATIONS_INDEX | |
| 1557 hb_ot_layout_table_find_feature_variations() | |
| 1558 hb_ot_layout_feature_with_variations_get_lookups() | |
| 1559 hb_shape_plan_create2() | |
| 1560 hb_shape_plan_create_cached2() | |
| 1561 | |
| 1562 Currently variations in GSUB/GPOS/GDEF are fully supported, | |
| 1563 and no other tables are supported. In particular, fvar/avar | |
| 1564 are NOT supported, hence the hb_font_set_var_coords_normalized() | |
| 1565 taking normalized coordinates. API to take design coordinates | |
| 1566 will be added in the future. | |
| 1567 | |
| 1568 HVAR/VVAR/MVAR support will also be added to hb-ot-font in the | |
| 1569 future. | |
| 1570 | |
| 1571 - Fix regression in GDEF glyph class processing. | |
| 1572 - Add decompositions for Chakma, Limbu, and Balinese in USE shaper. | |
| 1573 - Misc fixes. | |
| 1574 | |
| 1575 | |
| 1576 Overview of changes leading to 1.3.4 | |
| 1577 Monday, December 5, 2016 | |
| 1578 ==================================== | |
| 1579 | |
| 1580 - Fix vertical glyph origin in hb-ot-font. | |
| 1581 - Implement CBDT/CBLC color font glyph extents in hb-ot-font. | |
| 1582 | |
| 1583 | |
| 1584 Overview of changes leading to 1.3.3 | |
| 1585 Wednesday, September 28, 2016 | |
| 1586 ==================================== | |
| 1587 | |
| 1588 - Implement parsing of OpenType MATH table. | |
| 1589 New API: | |
| 1590 HB_OT_TAG_MATH | |
| 1591 HB_OT_MATH_SCRIPT | |
| 1592 hb_ot_math_constant_t | |
| 1593 hb_ot_math_kern_t | |
| 1594 hb_ot_math_glyph_variant_t | |
| 1595 hb_ot_math_glyph_part_flags_t | |
| 1596 hb_ot_math_glyph_part_t | |
| 1597 hb_ot_math_has_data | |
| 1598 hb_ot_math_get_constant | |
| 1599 hb_ot_math_get_glyph_italics_correction | |
| 1600 hb_ot_math_get_glyph_top_accent_attachment | |
| 1601 hb_ot_math_get_glyph_kerning | |
| 1602 hb_ot_math_is_glyph_extended_shape | |
| 1603 hb_ot_math_get_glyph_variants | |
| 1604 hb_ot_math_get_min_connector_overlap | |
| 1605 hb_ot_math_get_glyph_assembly | |
| 1606 | |
| 1607 | |
| 1608 Overview of changes leading to 1.3.2 | |
| 1609 Wednesday, September 27, 2016 | |
| 1610 ==================================== | |
| 1611 | |
| 1612 - Fix build of hb-coretext on older OS X versions. | |
| 1613 | |
| 1614 | |
| 1615 Overview of changes leading to 1.3.1 | |
| 1616 Wednesday, September 7, 2016 | |
| 1617 ==================================== | |
| 1618 | |
| 1619 - Blacklist bad GDEF of more fonts (Padauk). | |
| 1620 - More CoreText backend crash fixes with OS X 10.9.5. | |
| 1621 - Misc fixes. | |
| 1622 | |
| 1623 | |
| 1624 Overview of changes leading to 1.3.0 | |
| 1625 Thursday, July 21, 2016 | |
| 1626 ==================================== | |
| 1627 | |
| 1628 - Update to Unicode 9.0.0 | |
| 1629 - Move Javanese from Indic shaper to Universal Shaping Engine. | |
| 1630 - Allow MultipleSubst to delete a glyph (matching Windows engine). | |
| 1631 - Update Universal Shaping Engine to latest draft from Microsoft. | |
| 1632 - DirectWrite backend improvements. Note: this backend is for testing ONLY. | |
| 1633 - CoreText backend improvements with unreachable fonts. | |
| 1634 - Implement symbol fonts (cmap 3.0.0) in hb-ft and hb-ot-font. | |
| 1635 - Blacklist bad GDEF of more fonts (Tahoma & others). | |
| 1636 - Misc fixes. | |
| 1637 | |
| 1638 | |
| 1639 Overview of changes leading to 1.2.7 | |
| 1640 Monday, May 2, 2016 | |
| 1641 ==================================== | |
| 1642 | |
| 1643 - Blacklist another version of Times New Roman (Bold) Italic from Windows 7. | |
| 1644 - Fix Mongolian Free Variation Selectors shaping with certain fonts. | |
| 1645 - Fix Tibetan shorthand contractions shaping. | |
| 1646 - Improved list of language tag mappings. | |
| 1647 - Unbreak build on Windows CE. | |
| 1648 - Make 'glyf' table loading lazy in hb-ot-font. | |
| 1649 | |
| 1650 | |
| 1651 Overview of changes leading to 1.2.6 | |
| 1652 Friday, April 8, 2016 | |
| 1653 ==================================== | |
| 1654 | |
| 1655 - Blacklist GDEF table of another set of Times New Roman (Bold) Italic. | |
| 1656 - DirectWrite backend improvements. Note: DirectWrite backend is | |
| 1657 exclusively for our internal testing and should NOT be used in any | |
| 1658 production system whatsoever. | |
| 1659 | |
| 1660 | |
| 1661 Overview of changes leading to 1.2.5 | |
| 1662 Monday, April 4, 2016 | |
| 1663 ==================================== | |
| 1664 | |
| 1665 - Fix GDEF mark-filtering-set, which was broken in 1.2.3. | |
| 1666 | |
| 1667 | |
| 1668 Overview of changes leading to 1.2.4 | |
| 1669 Thursday, March 17, 2016 | |
| 1670 ==================================== | |
| 1671 | |
| 1672 - Synthesize GDEF glyph class for any glyph that does not have one in GDEF. | |
| 1673 I really hope we don't discover broken fonts that shape badly with this | |
| 1674 change. | |
| 1675 - Misc build and other minor fixes. | |
| 1676 - API changes: | |
| 1677 - Added HB_NDEBUG. It's fine for production systems to define this to | |
| 1678 disable high-overhead debugging checks. However, I also reduced the | |
| 1679 overhead of those checks, so it's a non-issue right now. You can | |
| 1680 forget it. Just not defining anything at all is fine. | |
| 1681 | |
| 1682 | |
| 1683 Overview of changes leading to 1.2.3 | |
| 1684 Thursday, February 25, 2016 | |
| 1685 ==================================== | |
| 1686 | |
| 1687 - Blacklist GDEF table of certain versions of Times New Roman (Bold) Italic, | |
| 1688 due to bug in glyph class of ASCII double-quote character. This should | |
| 1689 address "regression" introduced in 1.2.0 when we switched mark zeroing | |
| 1690 in most shapers from BY_UNICODE_LATE to BY_GDEF_LATE. | |
| 1691 This fourth release in a week should finally stabilize things... | |
| 1692 | |
| 1693 - hb-ot-font's get_glyph() implementation saw some optimizations. Though, | |
| 1694 might be really hard to measure in real-world situations. | |
| 1695 | |
| 1696 - Also, two rather small API changes: | |
| 1697 | |
| 1698 We now disable some time-consuming internal bookkeeping if built with NDEBUG | |
| 1699 defined. This is a first time that we use NDEBUG to disable debug code. If | |
| 1700 there exist production systems that do NOT want to enable NDEBUG, please let | |
| 1701 me know and I'll add HB_NDEBUG. | |
| 1702 | |
| 1703 Added get_nominal_glyph() and get_variation_glyph() instead of get_glyph() | |
| 1704 | |
| 1705 New API: | |
| 1706 - hb_font_get_nominal_glyph_func_t | |
| 1707 - hb_font_get_variation_glyph_func_t | |
| 1708 - hb_font_funcs_set_nominal_glyph_func() | |
| 1709 - hb_font_funcs_set_variation_glyph_func() | |
| 1710 - hb_font_get_nominal_glyph() | |
| 1711 - hb_font_get_variation_glyph() | |
| 1712 | |
| 1713 Deprecated API: | |
| 1714 - hb_font_get_glyph_func_t | |
| 1715 - hb_font_funcs_set_glyph_func() | |
| 1716 | |
| 1717 Clients that implement their own font-funcs are encouraged to replace | |
| 1718 their get_glyph() implementation with a get_nominal_glyph() and | |
| 1719 get_variation_glyph() pair. The variation version can assume that | |
| 1720 variation_selector argument is not zero. Old (deprecated) functions | |
| 1721 will continue working indefinitely using internal gymnastics; it is | |
| 1722 just more efficient to use the new functions. | |
| 1723 | |
| 1724 | |
| 1725 Overview of changes leading to 1.2.2 | |
| 1726 Wednesday, February 24, 2016 | |
| 1727 ==================================== | |
| 1728 | |
| 1729 - Fix regression with mark positioning with fonts that have | |
| 1730 non-zero mark advances. This was introduced in 1.2.0 while | |
| 1731 trying to make mark and cursive attachments to work together. | |
| 1732 I have partially reverted that, so this version is much more | |
| 1733 like what we had before. All clients who updated to 1.2.0 | |
| 1734 should update to this version. | |
| 1735 | |
| 1736 | |
| 1737 Overview of changes leading to 1.2.1 | |
| 1738 Tuesday, February 23, 2016 | |
| 1739 ==================================== | |
| 1740 | |
| 1741 - CoreText: Fix bug with wrong scale if font scale was changed later. | |
| 1742 https://github.com/libass/libass/issues/212 | |
| 1743 - CoreText: Drastically speed up font initialization. | |
| 1744 - CoreText: Fix tiny leak. | |
| 1745 - Group ZWJ/ZWNJ with previous syllable under cluster-level=0. | |
| 1746 https://github.com/harfbuzz/harfbuzz/issues/217 | |
| 1747 - Add test/shaping/README.md about how to add tests to the suite. | |
| 1748 | |
| 1749 | |
| 1750 Overview of changes leading to 1.2.0 | |
| 1751 Friday, February 19, 2016 | |
| 1752 ==================================== | |
| 1753 | |
| 1754 - Fix various issues (hangs mostly) in case of memory allocation failure. | |
| 1755 - Change mark zeroing types of most shapers from BY_UNICODE_LATE to | |
| 1756 BY_GDEF_LATE. This seems to be what Uniscribe does. | |
| 1757 - Change mark zeroing of USE shaper from NONE to BY_GDEF_EARLY. That's | |
| 1758 what Windows does. | |
| 1759 - Allow GPOS cursive connection on marks, and fix the interaction with | |
| 1760 mark attachment. This work resulted in some changes to how mark | |
| 1761 attachments work. See: | |
| 1762 https://github.com/harfbuzz/harfbuzz/issues/211 | |
| 1763 https://github.com/harfbuzz/harfbuzz/commit/86c68c7a2c971efe8e35b1f1bd99401dc8b688d2 | |
| 1764 - Graphite2 shaper: improved negative advance handling (eg. Nastaliq). | |
| 1765 - Add nmake-based build system for Windows. | |
| 1766 - Minor speedup. | |
| 1767 - Misc. improvements. | |
| 1768 | |
| 1769 | |
| 1770 Overview of changes leading to 1.1.3 | |
| 1771 Monday, January 11, 2016 | |
| 1772 ==================================== | |
| 1773 | |
| 1774 - Ported Indic shaper to Unicode 8.0 data. | |
| 1775 - Universal Shaping Engine fixes. | |
| 1776 - Speed up CoreText shaper when font fallback happens in CoreText. | |
| 1777 - Documentation improvements, thanks to Khaled Hosny. | |
| 1778 - Very rough directwrite shaper for testing, thanks to Ebrahim Byagowi. | |
| 1779 - Misc bug fixes. | |
| 1780 - New API: | |
| 1781 | |
| 1782 * Font extents: | |
| 1783 hb_font_extents_t | |
| 1784 hb_font_get_font_extents_func_t | |
| 1785 hb_font_get_font_h_extents_func_t | |
| 1786 hb_font_get_font_v_extents_func_t | |
| 1787 hb_font_funcs_set_font_h_extents_func | |
| 1788 hb_font_funcs_set_font_v_extents_func | |
| 1789 hb_font_get_h_extents | |
| 1790 hb_font_get_v_extents | |
| 1791 hb_font_get_extents_for_direction | |
| 1792 | |
| 1793 * Buffer message (aka debug): | |
| 1794 hb_buffer_message_func_t | |
| 1795 hb_buffer_set_message_func() | |
| 1796 Actual message protocol to be fleshed out later. | |
| 1797 | |
| 1798 | |
| 1799 Overview of changes leading to 1.1.2 | |
| 1800 Wednesday, November 26, 2015 | |
| 1801 ==================================== | |
| 1802 | |
| 1803 - Fix badly-broken fallback shaper that affected terminology. | |
| 1804 https://github.com/harfbuzz/harfbuzz/issues/187 | |
| 1805 - Fix y_scaling in Graphite shaper. | |
| 1806 - API changes: | |
| 1807 * An unset glyph_h_origin() function in font-funcs now (sensibly) | |
| 1808 implies horizontal origin at 0,0. Ie, the nil callback returns | |
| 1809 true instead of false. As such, implementations that have a | |
| 1810 glyph_h_origin() that simply returns true, can remove that function | |
| 1811 with HarfBuzz >= 1.1.2. This results in a tiny speedup. | |
| 1812 | |
| 1813 | |
| 1814 Overview of changes leading to 1.1.1 | |
| 1815 Wednesday, November 24, 2015 | |
| 1816 ==================================== | |
| 1817 | |
| 1818 - Build fixes, specially for hb-coretext. | |
| 1819 | |
| 1820 | |
| 1821 Overview of changes leading to 1.1.0 | |
| 1822 Wednesday, November 18, 2015 | |
| 1823 ==================================== | |
| 1824 | |
| 1825 - Implement 'stch' stretch feature for Syriac Abbreviation Mark. | |
| 1826 https://github.com/harfbuzz/harfbuzz/issues/141 | |
| 1827 - Disable use of decompose_compatibility() callback. | |
| 1828 - Implement "shaping" of various Unicode space characters, even | |
| 1829 if the font does not support them. | |
| 1830 https://github.com/harfbuzz/harfbuzz/issues/153 | |
| 1831 - If font does not support U+2011 NO-BREAK HYPHEN, fallback to | |
| 1832 U+2010 HYPHEN. | |
| 1833 - Changes resulting from libFuzzer continuous fuzzing: | |
| 1834 * Reject font tables that need more than 8 edits, | |
| 1835 * Bound buffer growth during shaping to 32x, | |
| 1836 * Fix assertions and other issues at OOM / buffer max-growth. | |
| 1837 - Misc fixes and optimizations. | |
| 1838 - API changes: | |
| 1839 * All fonts created with hb_font_create() now inherit from | |
| 1840 (ie. have parent) hb_font_get_empty(). | |
| 1841 | |
| 1842 | |
| 1843 Overview of changes leading to 1.0.6 | |
| 1844 Thursday, October 15, 2015 | |
| 1845 ==================================== | |
| 1846 | |
| 1847 - Reduce max nesting level in OT lookups from 8 to 6. | |
| 1848 Should not affect any real font as far as I know. | |
| 1849 - Fix memory access issue in ot-font. | |
| 1850 - Revert default load-flags of fonts created using hb_ft_font_create() | |
| 1851 back to FT_LOAD_DEFAULT|FT_LOAD_NO_HINTING. This was changed in | |
| 1852 last release (1.0.5), but caused major issues, so revert. | |
| 1853 https://github.com/harfbuzz/harfbuzz/issues/143 | |
| 1854 | |
| 1855 | |
| 1856 Overview of changes leading to 1.0.5 | |
| 1857 Tuesday, October 13, 2015 | |
| 1858 ==================================== | |
| 1859 | |
| 1860 - Fix multiple memory access bugs discovered using libFuzzer. | |
| 1861 https://github.com/harfbuzz/harfbuzz/issues/139 | |
| 1862 Everyone should upgrade to this version as soon as possible. | |
| 1863 We now have continuous fuzzing set up, to avoid issues like | |
| 1864 these creeping in again. | |
| 1865 - Misc fixes. | |
| 1866 | |
| 1867 - New API: | |
| 1868 * hb_font_set_parent(). | |
| 1869 * hb_ft_font_[sg]et_load_flags() | |
| 1870 The default flags for fonts created using hb_ft_font_create() | |
| 1871 has changed to default to FT_LOAD_DEFAULT now. Previously it | |
| 1872 was defaulting to FT_LOAD_DFEAULT|FT_LOAD_NO_HINTING. | |
| 1873 | |
| 1874 - API changes: | |
| 1875 * Fonts now default to units-per-EM as their scale, instead of 0. | |
| 1876 * hb_font_create_sub_font() does NOT make parent font immutable | |
| 1877 anymore. hb_font_make_immutable() does. | |
| 1878 | |
| 1879 | |
| 1880 Overview of changes leading to 1.0.4 | |
| 1881 Wednesday, September 30, 2015 | |
| 1882 ==================================== | |
| 1883 | |
| 1884 - Fix minor out-of-bounds read error. | |
| 1885 | |
| 1886 | |
| 1887 Overview of changes leading to 1.0.3 | |
| 1888 Tuesday, September 1, 2015 | |
| 1889 ==================================== | |
| 1890 | |
| 1891 - Start of user documentation, from Simon Cozens! | |
| 1892 - Implement glyph_extents() for TrueType fonts in hb-ot-font. | |
| 1893 - Improve GPOS cursive attachments with conflicting lookups. | |
| 1894 - More fixes for cluster-level = 1. | |
| 1895 - Uniscribe positioning fix. | |
| 1896 | |
| 1897 | |
| 1898 Overview of changes leading to 1.0.2 | |
| 1899 Wednesday, August 19, 2015 | |
| 1900 ==================================== | |
| 1901 | |
| 1902 - Fix shaping with cluster-level > 0. | |
| 1903 - Fix Uniscribe backend font-size scaling. | |
| 1904 - Declare dependencies in harfbuzz.pc. | |
| 1905 FreeType is not declared though, to avoid bugs in pkg-config | |
| 1906 0.26 with recursive dependencies. | |
| 1907 - Slightly improved debug infrastructure. More to come later. | |
| 1908 - Misc build fixes. | |
| 1909 | |
| 1910 | |
| 1911 Overview of changes leading to 1.0.1 | |
| 1912 Monday, July 27, 2015 | |
| 1913 ==================================== | |
| 1914 | |
| 1915 - Fix out-of-bounds access in USE shaper. | |
| 1916 | |
| 1917 | |
| 1918 Overview of changes leading to 1.0.0 | |
| 1919 Sunday, July 26, 2015 | |
| 1920 ==================================== | |
| 1921 | |
| 1922 - Implement Universal Shaping Engine: | |
| 1923 https://www.microsoft.com/typography/OpenTypeDev/USE/intro.htm | |
| 1924 http://blogs.windows.com/bloggingwindows/2015/02/23/windows-shapes-the-worlds-languages/ | |
| 1925 - Bump version to 1.0.0. The soname was NOT bumped. | |
| 1926 | |
| 1927 | |
| 1928 Overview of changes leading to 0.9.42 | |
| 1929 Thursday, July 26, 2015 | |
| 1930 ===================================== | |
| 1931 | |
| 1932 - New API to allow for retrieving finer-grained cluster | |
| 1933 mappings if the client desires to handle them. Default | |
| 1934 behavior is unchanged. | |
| 1935 - Fix cluster merging when removing default-ignorables. | |
| 1936 - Update to Unicode 8.0 | |
| 1937 - hb-graphite2 fixes. | |
| 1938 - Misc fixes. | |
| 1939 - Removed HB_NO_MERGE_CLUSTERS hack. | |
| 1940 - New API: | |
| 1941 hb_buffer_cluster_level_t enum | |
| 1942 hb_buffer_get_cluster_level() | |
| 1943 hb_buffer_set_cluster_level() | |
| 1944 hb-shape / hb-view --cluster-level | |
| 1945 | |
| 1946 | |
| 1947 Overview of changes leading to 0.9.41 | |
| 1948 Thursday, June 18, 2015 | |
| 1949 ===================================== | |
| 1950 | |
| 1951 - Fix hb-coretext with trailing whitespace in right-to-left. | |
| 1952 - New API: hb_buffer_reverse_range(). | |
| 1953 - Allow implementing atomic ops in config.h. | |
| 1954 - Fix hb_language_t in language bindings. | |
| 1955 - Misc fixes. | |
| 1956 | |
| 1957 | |
| 1958 Overview of changes leading to 0.9.40 | |
| 1959 Friday, March 20, 2015 | |
| 1960 ===================================== | |
| 1961 | |
| 1962 - Another hb-coretext crasher fix. Ouch! | |
| 1963 - Happy Norouz! | |
| 1964 | |
| 1965 | |
| 1966 Overview of changes leading to 0.9.39 | |
| 1967 Wednesday, March 4, 2015 | |
| 1968 ===================================== | |
| 1969 | |
| 1970 - Critical hb-coretext fixes. | |
| 1971 - Optimizations and refactoring; no functional change | |
| 1972 expected. | |
| 1973 - Misc build fixes. | |
| 1974 | |
| 1975 | |
| 1976 Overview of changes leading to 0.9.38 | |
| 1977 Friday, January 23, 2015 | |
| 1978 ===================================== | |
| 1979 | |
| 1980 - Fix minor out-of-bounds access in Indic shaper. | |
| 1981 - Change New Tai Lue shaping engine from South-East Asian to default, | |
| 1982 reflecting change in Unicode encoding model. | |
| 1983 - Add hb-shape --font-size. Can take up to two numbers for separate | |
| 1984 x / y size. | |
| 1985 - Fix CoreText and FreeType scale issues with negative scales. | |
| 1986 - Reject blobs larger than 2GB. This might break some icu-le-hb clients | |
| 1987 that need security fixes. See: | |
| 1988 http://www.icu-project.org/trac/ticket/11450 | |
| 1989 - Avoid accessing font tables during face destruction, in casce rogue | |
| 1990 clients released face data already. | |
| 1991 - Fix up gobject-introspection a bit. Python bindings kinda working. | |
| 1992 See README.python. | |
| 1993 - Misc fixes. | |
| 1994 - API additions: | |
| 1995 hb_ft_face_create_referenced() | |
| 1996 hb_ft_font_create_referenced() | |
| 1997 | |
| 1998 | |
| 1999 Overview of changes leading to 0.9.37 | |
| 2000 Wednesday, December 17, 2014 | |
| 2001 ===================================== | |
| 2002 | |
| 2003 - Fix out-of-bounds access in Context lookup format 3. | |
| 2004 - Indic: Allow ZWJ/ZWNJ before syllable modifiers. | |
| 2005 | |
| 2006 | |
| 2007 Overview of changes leading to 0.9.36 | |
| 2008 Thursday, November 20, 2014 | |
| 2009 ===================================== | |
| 2010 | |
| 2011 - First time that three months went by without a release since | |
| 2012 0.9.2 was released on August 10, 2012! | |
| 2013 - Fix performance bug in hb_ot_collect_glyphs(): | |
| 2014 https://bugzilla.mozilla.org/show_bug.cgi?id=1090869 | |
| 2015 - Add basic vertical-text support to hb-ot-font. | |
| 2016 - Misc build fixes. | |
| 2017 | |
| 2018 | |
| 2019 Overview of changes leading to 0.9.35 | |
| 2020 Saturday, August 13, 2014 | |
| 2021 ===================================== | |
| 2022 | |
| 2023 - Fix major shape-plan caching bug when more than one shaper were | |
| 2024 provided to hb_shape_full() (as exercised by XeTeX). | |
| 2025 http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1246370.html | |
| 2026 - Fix Arabic fallback shaping regression. This was broken in 0.9.32. | |
| 2027 - Major hb-coretext fixes. That backend is complete now, including | |
| 2028 respecing buffer direction and language, down to vertical writing. | |
| 2029 - Build fixes for Windows CE. Should build fine now. | |
| 2030 - Misc fixes: | |
| 2031 Use atexit() only if it's safe to call from shared library | |
| 2032 https://bugs.freedesktop.org/show_bug.cgi?id=82246 | |
| 2033 Mandaic had errors in its Unicode Joining_Type | |
| 2034 https://bugs.freedesktop.org/show_bug.cgi?id=82306 | |
| 2035 - API changes: | |
| 2036 | |
| 2037 * hb_buffer_clear_contents() does not reset buffer flags now. | |
| 2038 | |
| 2039 After 763e5466c0a03a7c27020e1e2598e488612529a7, one doesn't | |
| 2040 need to set flags for different pieces of text. The flags now | |
| 2041 are something the client sets up once, depending on how it | |
| 2042 actually uses the buffer. As such, don't clear it in | |
| 2043 clear_contents(). | |
| 2044 | |
| 2045 I don't expect any changes to be needed to any existing client. | |
| 2046 | |
| 2047 | |
| 2048 Overview of changes leading to 0.9.34 | |
| 2049 Saturday, August 2, 2014 | |
| 2050 ===================================== | |
| 2051 | |
| 2052 - hb_feature_from_string() now accepts CSS font-feature-settings format. | |
| 2053 - As a result, hb-shape / hb-view --features also accept CSS-style strings. | |
| 2054 Eg, "'liga' off" is accepted now. | |
| 2055 - Add old-spec Myanmar shaper: | |
| 2056 https://bugs.freedesktop.org/show_bug.cgi?id=81775 | |
| 2057 - Don't apply 'calt' in Hangul shaper. | |
| 2058 - Fix mark advance zeroing for Hebrew shaper: | |
| 2059 https://bugs.freedesktop.org/show_bug.cgi?id=76767 | |
| 2060 - Implement Windows-1256 custom Arabic shaping. Only built on Windows, | |
| 2061 and requires help from get_glyph(). Used by Firefox. | |
| 2062 https://bugzilla.mozilla.org/show_bug.cgi?id=1045139 | |
| 2063 - Disable 'liga' in vertical text. | |
| 2064 - Build fixes. | |
| 2065 - API changes: | |
| 2066 | |
| 2067 * Make HB_BUFFER_FLAG_BOT/EOT easier to use. | |
| 2068 | |
| 2069 Previously, we expected users to provide BOT/EOT flags when the | |
| 2070 text *segment* was at paragraph boundaries. This meant that for | |
| 2071 clients that provide full paragraph to HarfBuzz (eg. Pango), they | |
| 2072 had code like this: | |
| 2073 | |
| 2074 hb_buffer_set_flags (hb_buffer, | |
| 2075 (item_offset == 0 ? HB_BUFFER_FLAG_BOT : 0) | | |
| 2076 (item_offset + item_length == paragraph_length ? | |
| 2077 HB_BUFFER_FLAG_EOT : 0)); | |
| 2078 | |
| 2079 hb_buffer_add_utf8 (hb_buffer, | |
| 2080 paragraph_text, paragraph_length, | |
| 2081 item_offset, item_length); | |
| 2082 | |
| 2083 After this change such clients can simply say: | |
| 2084 | |
| 2085 hb_buffer_set_flags (hb_buffer, | |
| 2086 HB_BUFFER_FLAG_BOT | HB_BUFFER_FLAG_EOT); | |
| 2087 | |
| 2088 hb_buffer_add_utf8 (hb_buffer, | |
| 2089 paragraph_text, paragraph_length, | |
| 2090 item_offset, item_length); | |
| 2091 | |
| 2092 Ie, HarfBuzz itself checks whether the segment is at the beginning/end | |
| 2093 of the paragraph. Clients that only pass item-at-a-time to HarfBuzz | |
| 2094 continue not setting any flags whatsoever. | |
| 2095 | |
| 2096 Another way to put it is: if there's pre-context text in the buffer, | |
| 2097 HarfBuzz ignores the BOT flag. If there's post-context, it ignores | |
| 2098 EOT flag. | |
| 2099 | |
| 2100 | |
| 2101 Overview of changes leading to 0.9.33 | |
| 2102 Tuesday, July 22, 2014 | |
| 2103 ===================================== | |
| 2104 | |
| 2105 - Turn off ARabic 'cswh' feature that was accidentally turned on. | |
| 2106 - Add HB_TAG_MAX_SIGNED. | |
| 2107 - Make hb_face_make_immutable() really make face immutable! | |
| 2108 - Windows build fixes. | |
| 2109 | |
| 2110 | |
| 2111 Overview of changes leading to 0.9.32 | |
| 2112 Thursday, July 17, 2014 | |
| 2113 ===================================== | |
| 2114 | |
| 2115 - Apply Arabic shaping features in spec order exactly. | |
| 2116 - Another fix for Mongolian free variation selectors. | |
| 2117 - For non-Arabic scripts in Arabic shaper apply 'rlig' and 'calt' | |
| 2118 together. | |
| 2119 - Minor adjustment to U+FFFD logic. | |
| 2120 - Fix hb-coretext build. | |
| 2121 | |
| 2122 | |
| 2123 Overview of changes leading to 0.9.31 | |
| 2124 Wednesday, July 16, 2014 | |
| 2125 ===================================== | |
| 2126 | |
| 2127 - Only accept valid UTF-8/16/32; we missed many cases before. | |
| 2128 - Better shaping of invalid UTF-8/16/32. Falls back to | |
| 2129 U+FFFD REPLACEMENT CHARACTER now. | |
| 2130 - With all changes in this release, the buffer will contain fully | |
| 2131 valid Unicode after hb_buffer_add_utf8/16/32 no matter how | |
| 2132 broken the input is. This can be overridden though. See below. | |
| 2133 - Fix Mongolian Variation Selectors for fonts without GDEF. | |
| 2134 - Fix minor invalid buffer access. | |
| 2135 - Accept zh-Hant and zh-Hans language tags. hb_ot_tag_to_language() | |
| 2136 now uses these instead of private tags. | |
| 2137 - Build fixes. | |
| 2138 - New API: | |
| 2139 * hb_buffer_add_codepoints(). This does what hb_buffer_add_utf32() | |
| 2140 used to do, ie. no validity check on the input at all. add_utf32 | |
| 2141 now replaces invalid Unicode codepoints with the replacement | |
| 2142 character (see below). | |
| 2143 * hb_buffer_set_replacement_codepoint() | |
| 2144 * hb_buffer_get_replacement_codepoint() | |
| 2145 Previously, in hb_buffer_add_utf8 and hb_buffer_add_utf16, when | |
| 2146 we detected broken input, we replaced that with (hb_codepoint_t)-1. | |
| 2147 This has changed to use U+FFFD now, but can be changed using these | |
| 2148 new API. | |
| 2149 | |
| 2150 | |
| 2151 Overview of changes leading to 0.9.30 | |
| 2152 Wednesday, July 9, 2014 | |
| 2153 ===================================== | |
| 2154 | |
| 2155 - Update to Unicode 7.0.0: | |
| 2156 * New scripts Manichaean and Psalter Pahlavi are shaped using | |
| 2157 Arabic shaper. | |
| 2158 * All the other new scripts to through the generic shaper for | |
| 2159 now. | |
| 2160 - Minor Indic improvements. | |
| 2161 - Fix graphite2 backend cluster mapping [crasher!] | |
| 2162 - API changes: | |
| 2163 * New HB_SCRIPT_* values for Unicode 7.0 scripts. | |
| 2164 * New function hb_ot_layout_language_get_required_feature(). | |
| 2165 - Build fixes. | |
| 2166 | |
| 2167 | |
| 2168 Overview of changes leading to 0.9.29 | |
| 2169 Thursday, May 29, 2014 | |
| 2170 ===================================== | |
| 2171 | |
| 2172 - Implement cmap in hb-ot-font.h. No variation-selectors yet. | |
| 2173 - Myanmar: Allow MedialYa+Asat. | |
| 2174 - Various Indic fixes: | |
| 2175 * Support most characters in Extended Devanagary and Vedic | |
| 2176 Unicode blocks. | |
| 2177 * Allow digits and a some punctuation as consonant placeholders. | |
| 2178 - Build fixes. | |
| 2179 | |
| 2180 | |
| 2181 Overview of changes leading to 0.9.28 | |
| 2182 Monday, April 28, 2014 | |
| 2183 ===================================== | |
| 2184 | |
| 2185 - Unbreak old-spec Indic shaping. (bug 76705) | |
| 2186 - Fix shaping of U+17DD and U+0FC6. | |
| 2187 - Add HB_NO_MERGE_CLUSTERS build option. NOT to be enabled by default | |
| 2188 for shipping libraries. It's an option for further experimentation | |
| 2189 right now. When we are sure how to do it properly, we will add | |
| 2190 public run-time API for the functionality. | |
| 2191 - Build fixes. | |
| 2192 | |
| 2193 | |
| 2194 Overview of changes leading to 0.9.27 | |
| 2195 Tuesday, March 18, 2014 | |
| 2196 ===================================== | |
| 2197 | |
| 2198 - Don't use "register" storage class specifier | |
| 2199 - Wrap definition of free_langs() with HAVE_ATEXIT | |
| 2200 - Add coretext_aat shaper and hb_coretext_face_create() constructor | |
| 2201 - If HAVE_ICU_BUILTIN is defined, use hb-icu Unicode callbacks | |
| 2202 - Add Myanmar test case from OpenType Myanmar spec | |
| 2203 - Only do fallback Hebrew composition if no GPOS 'mark' available | |
| 2204 - Allow bootstrapping without gtk-doc | |
| 2205 - Use AM_MISSING_PROG for ragel and git | |
| 2206 - Typo in ucdn's Makefile.am | |
| 2207 - Improve MemoryBarrier() implementation | |
| 2208 | |
| 2209 | |
| 2210 Overview of changes leading to 0.9.26 | |
| 2211 Thursday, January 30, 2014 | |
| 2212 ===================================== | |
| 2213 | |
| 2214 - Misc fixes. | |
| 2215 - Fix application of 'rtlm' feature. | |
| 2216 - Automatically apply frac/numr/dnom around U+2044 FRACTION SLASH. | |
| 2217 - New header: hb-ot-shape.h | |
| 2218 - Uniscribe: fix scratch-buffer accounting. | |
| 2219 - Reorder Tai Tham SAKOT to after tone-marks. | |
| 2220 - Add Hangul shaper. | |
| 2221 - New files: | |
| 2222 hb-ot-shape-complex-hangul.cc | |
| 2223 hb-ot-shape-complex-hebrew.cc | |
| 2224 hb-ot-shape-complex-tibetan.cc | |
| 2225 - Disable 'cswh' feature in Arabic shaper. | |
| 2226 - Coretext: better handle surrogate pairs. | |
| 2227 - Add HB_TAG_MAX and _HB_SCRIPT_MAX_VALUE. | |
| 2228 | |
| 2229 | |
| 2230 Overview of changes leading to 0.9.25 | |
| 2231 Wednesday, December 4, 2013 | |
| 2232 ===================================== | |
| 2233 | |
| 2234 - Myanmar shaper improvements. | |
| 2235 - Avoid font fallback in CoreText backend. | |
| 2236 - Additional OpenType language tag mappiongs. | |
| 2237 - More aggressive shape-plan caching. | |
| 2238 - Build with / require automake 1.13. | |
| 2239 - Build with libtool 2.4.2.418 alpha to support ppc64le. | |
| 2240 | |
| 2241 | |
| 2242 Overview of changes leading to 0.9.24 | |
| 2243 Tuesday, November 13, 2013 | |
| 2244 ===================================== | |
| 2245 | |
| 2246 - Misc compiler warning fixes with clang. | |
| 2247 - No functional changes. | |
| 2248 | |
| 2249 | |
| 2250 Overview of changes leading to 0.9.23 | |
| 2251 Monday, October 28, 2013 | |
| 2252 ===================================== | |
| 2253 | |
| 2254 - "Udupi HarfBuzz Hackfest", Paris, October 14..18 2013. | |
| 2255 - Fix (Chain)Context recursion with non-monotone lookup positions. | |
| 2256 - Misc Indic bug fixes. | |
| 2257 - New Javanese / Buginese shaping, similar to Windows 8.1. | |
| 2258 | |
| 2259 | |
| 2260 Overview of changes leading to 0.9.22 | |
| 2261 Thursday, October 3, 2013 | |
| 2262 ===================================== | |
| 2263 | |
| 2264 - Fix use-after-end-of-scope in hb_language_from_string(). | |
| 2265 - Fix hiding of default_ignorables if font doesn't have space glyph. | |
| 2266 - Protect against out-of-range lookup indices. | |
| 2267 | |
| 2268 - API Changes: | |
| 2269 | |
| 2270 * Added hb_ot_layout_table_get_lookup_count() | |
| 2271 | |
| 2272 | |
| 2273 Overview of changes leading to 0.9.21 | |
| 2274 Monday, September 16, 2013 | |
| 2275 ===================================== | |
| 2276 | |
| 2277 - Rename gobject-introspection library name from harfbuzz to HarfBuzz. | |
| 2278 - Remove (long disabled) hb-old and hb-icu-le test shapers. | |
| 2279 - Misc gtk-doc and gobject-introspection annotations. | |
| 2280 - Misc fixes. | |
| 2281 - API changes: | |
| 2282 | |
| 2283 * Add HB_SET_VALUE_INVALID | |
| 2284 | |
| 2285 Overview of changes leading to 0.9.20 | |
| 2286 Thursday, August 29, 2013 | |
| 2287 ===================================== | |
| 2288 | |
| 2289 General: | |
| 2290 - Misc substitute_closure() fixes. | |
| 2291 - Build fixes. | |
| 2292 | |
| 2293 Documentation: | |
| 2294 - gtk-doc boilerplate integrated. Docs are built now, but | |
| 2295 contain no contents. By next release hopefully we have | |
| 2296 some content in. Enable using --enable-gtk-doc. | |
| 2297 | |
| 2298 GObject and Introspection: | |
| 2299 - Added harfbuzz-gobject library (hb-gobject.h) that has type | |
| 2300 bindings for all HarfBuzz objects and enums. Enable using | |
| 2301 --with-gobject. | |
| 2302 - Added gobject-introspection boilerplate. Nothing useful | |
| 2303 right now. Work in progress. Gets enabled automatically if | |
| 2304 --with-gobject is used. Override with --disable-introspection. | |
| 2305 | |
| 2306 OpenType shaper: | |
| 2307 - Apply 'mark' in Myanmar shaper. | |
| 2308 - Don't apply 'dlig' by default. | |
| 2309 | |
| 2310 Uniscribe shaper: | |
| 2311 - Support user features. | |
| 2312 - Fix loading of fonts that are also installed on the system. | |
| 2313 - Fix shaping of Arabic Presentation Forms. | |
| 2314 - Fix build with wide chars. | |
| 2315 | |
| 2316 CoreText shaper: | |
| 2317 - Support user features. | |
| 2318 | |
| 2319 Source changes: | |
| 2320 - hb_face_t code moved to hb-face.h / hb-face.cc. | |
| 2321 - Added hb-deprecated.h. | |
| 2322 | |
| 2323 API changes: | |
| 2324 - Added HB_DISABLE_DEPRECATED. | |
| 2325 - Deprecated HB_SCRIPT_CANADIAN_ABORIGINAL; replaced by | |
| 2326 HB_SCRIPT_CANADIAN_SYLLABICS. | |
| 2327 - Deprecated HB_BUFFER_FLAGS_DEFAULT; replaced by | |
| 2328 HB_BUFFER_FLAG_DEFAULT. | |
| 2329 - Deprecated HB_BUFFER_SERIALIZE_FLAGS_DEFAULT; replaced by | |
| 2330 HB_BUFFER_SERIALIZE_FLAG_DEFAULT. | |
| 2331 | |
| 2332 | |
| 2333 Overview of changes leading to 0.9.19 | |
| 2334 Tuesday, July 16, 2013 | |
| 2335 ===================================== | |
| 2336 | |
| 2337 - Build fixes. | |
| 2338 - Better handling of multiple variation selectors in a row. | |
| 2339 - Pass on variation selector to GSUB if not consumed by cmap. | |
| 2340 - Fix undefined memory access. | |
| 2341 - Add Javanese config to Indic shaper. | |
| 2342 - Misc bug fixes. | |
| 2343 | |
| 2344 Overview of changes leading to 0.9.18 | |
| 2345 Tuesday, May 28, 2013 | |
| 2346 ===================================== | |
| 2347 | |
| 2348 New build system: | |
| 2349 | |
| 2350 - All unneeded code is all disabled by default, | |
| 2351 | |
| 2352 - Uniscribe and CoreText shapers can be enabled with their --with options, | |
| 2353 | |
| 2354 - icu_le and old shapers cannot be enabled for now, | |
| 2355 | |
| 2356 - glib, freetype, and cairo will be detected automatically. | |
| 2357 They can be force on/off'ed with their --with options, | |
| 2358 | |
| 2359 - icu and graphite2 are default off, can be enabled with their --with | |
| 2360 options, | |
| 2361 | |
| 2362 Moreover, ICU support is now build into a separate library: | |
| 2363 libharfbuzz-icu.so, and a new harfbuzz-icu.pc is shipped for it. | |
| 2364 Distros can enable ICU now without every application on earth | |
| 2365 getting linked to via libharfbuzz.so. | |
| 2366 | |
| 2367 For distros I recommend that they make sure they are building --with-glib | |
| 2368 --with-freetype --with-cairo, --with-icu, and optionally --with-graphite2; | |
| 2369 And package harfbuzz and harfbuzz-icu separately. | |
| 2370 | |
| 2371 | |
| 2372 Overview of changes leading to 0.9.17 | |
| 2373 Monday, May 20, 2013 | |
| 2374 ===================================== | |
| 2375 | |
| 2376 - Build fixes. | |
| 2377 - Fix bug in hb_set_get_min(). | |
| 2378 - Fix regression with Arabic mark positioning / width-zeroing. | |
| 2379 | |
| 2380 Overview of changes leading to 0.9.16 | |
| 2381 Friday, April 19, 2013 | |
| 2382 ===================================== | |
| 2383 | |
| 2384 - Major speedup in OpenType lookup processing. With the Amiri | |
| 2385 Arabic font, this release is over 3x faster than previous | |
| 2386 release. All scripts / languages should see this speedup. | |
| 2387 | |
| 2388 - New --num-iterations option for hb-shape / hb-view; useful for | |
| 2389 profiling. | |
| 2390 | |
| 2391 Overview of changes leading to 0.9.15 | |
| 2392 Friday, April 05, 2013 | |
| 2393 ===================================== | |
| 2394 | |
| 2395 - Build fixes. | |
| 2396 - Fix crasher in graphite2 shaper. | |
| 2397 - Fix Arabic mark width zeroing regression. | |
| 2398 - Don't compose Hangul jamo into Unicode syllables. | |
| 2399 | |
| 2400 | |
| 2401 Overview of changes leading to 0.9.14 | |
| 2402 Thursday, March 21, 2013 | |
| 2403 ===================================== | |
| 2404 | |
| 2405 - Build fixes. | |
| 2406 - Fix time-consuming sanitize with malicious fonts. | |
| 2407 - Implement hb_buffer_deserialize_glyphs() for both json and text. | |
| 2408 - Do not ignore Hangul filler characters. | |
| 2409 - Indic fixes: | |
| 2410 * Fix Malayalam pre-base reordering interaction with post-forms. | |
| 2411 * Further adjust ZWJ handling. Should fix known regressions from | |
| 2412 0.9.13. | |
| 2413 | |
| 2414 | |
| 2415 Overview of changes leading to 0.9.13 | |
| 2416 Thursday, February 25, 2013 | |
| 2417 ===================================== | |
| 2418 | |
| 2419 - Build fixes. | |
| 2420 - Ngapi HarfBuzz Hackfest in London (February 2013): | |
| 2421 * Fixed all known Indic bugs, | |
| 2422 * New Win8-style Myanmar shaper, | |
| 2423 * New South-East Asian shaper for Tai Tham, Cham, and New Tai Lue, | |
| 2424 * Smartly ignore Default_Ignorable characters (joiners, etc) wheb | |
| 2425 matching GSUB/GPOS lookups, | |
| 2426 * Fix 'Phags-Pa U+A872 shaping, | |
| 2427 * Fix partial disabling of default-on features, | |
| 2428 * Allow disabling of TrueType kerning. | |
| 2429 - Fix possible crasher with broken fonts with overlapping tables. | |
| 2430 - Removed generated files from git again. So, one needs ragel to | |
| 2431 bootstrap from the git tree. | |
| 2432 | |
| 2433 API changes: | |
| 2434 - hb_shape() and related APIs now abort if buffer direction is | |
| 2435 HB_DIRECTION_INVALID. Previously, hb_shape() was calling | |
| 2436 hb_buffer_guess_segment_properties() on the buffer before | |
| 2437 shaping. The heuristics in that function are fragile. If the | |
| 2438 user really wants the old behvaior, they can call that function | |
| 2439 right before calling hb_shape() to get the old behavior. | |
| 2440 - hb_blob_create_sub_blob() always creates sub-blob with | |
| 2441 HB_MEMORY_MODE_READONLY. See comments for the reason. | |
| 2442 | |
| 2443 | |
| 2444 Overview of changes leading to 0.9.12 | |
| 2445 Thursday, January 18, 2013 | |
| 2446 ===================================== | |
| 2447 | |
| 2448 - Build fixes for Sun compiler. | |
| 2449 - Minor bug fix. | |
| 2450 | |
| 2451 Overview of changes leading to 0.9.11 | |
| 2452 Thursday, January 10, 2013 | |
| 2453 ===================================== | |
| 2454 | |
| 2455 - Build fixes. | |
| 2456 - Fix GPOS mark attachment with null Anchor offsets. | |
| 2457 - [Indic] Fix old-spec reordering of viramas if sequence ends in one. | |
| 2458 - Fix multi-threaded shaper data creation crash. | |
| 2459 - Add atomic ops for Solaris. | |
| 2460 | |
| 2461 API changes: | |
| 2462 - Rename hb_buffer_clear() to hb_buffer_clear_contents(). | |
| 2463 | |
| 2464 | |
| 2465 Overview of changes leading to 0.9.10 | |
| 2466 Thursday, January 3, 2013 | |
| 2467 ===================================== | |
| 2468 | |
| 2469 - [Indic] Fixed rendering of Malayalam dot-reph | |
| 2470 - Updated OT language tags. | |
| 2471 - Updated graphite2 backend. | |
| 2472 - Improved hb_ot_layout_get_size_params() logic. | |
| 2473 - Improve hb-shape/hb-view help output. | |
| 2474 - Fixed hb-set.h implementation to not crash. | |
| 2475 - Fixed various issues with hb_ot_layout_collect_lookups(). | |
| 2476 - Various build fixes. | |
| 2477 | |
| 2478 New API: | |
| 2479 | |
| 2480 hb_graphite2_face_get_gr_face() | |
| 2481 hb_graphite2_font_get_gr_font() | |
| 2482 hb_coretext_face_get_cg_font() | |
| 2483 | |
| 2484 Modified API: | |
| 2485 | |
| 2486 hb_ot_layout_get_size_params() | |
| 2487 | |
| 2488 | |
| 2489 Overview of changes leading to 0.9.9 | |
| 2490 Wednesday, December 5, 2012 | |
| 2491 ==================================== | |
| 2492 | |
| 2493 - Fix build on Windows. | |
| 2494 - Minor improvements. | |
| 2495 | |
| 2496 | |
| 2497 Overview of changes leading to 0.9.8 | |
| 2498 Tuesday, December 4, 2012 | |
| 2499 ==================================== | |
| 2500 | |
| 2501 | |
| 2502 - Actually implement hb_shape_plan_get_shaper (). | |
| 2503 - Make UCDB data tables const. | |
| 2504 - Lots of internal refactoring in OTLayout tables. | |
| 2505 - Flesh out hb_ot_layout_lookup_collect_glyphs(). | |
| 2506 | |
| 2507 New API: | |
| 2508 | |
| 2509 hb_ot_layout_collect_lookups() | |
| 2510 hb_ot_layout_get_size_params() | |
| 2511 | |
| 2512 | |
| 2513 Overview of changes leading to 0.9.7 | |
| 2514 Sunday, November 21, 2012 | |
| 2515 ==================================== | |
| 2516 | |
| 2517 | |
| 2518 HarfBuzz "All-You-Can-Eat-Sushi" (aka Vancouver) Hackfest and follow-on fixes. | |
| 2519 | |
| 2520 - Fix Arabic contextual joining using pre-context text. | |
| 2521 - Fix Sinhala "split matra" mess. | |
| 2522 - Fix Khmer shaping with broken fonts. | |
| 2523 - Implement Thai "PUA" shaping for old fonts. | |
| 2524 - Do NOT route Kharoshthi script through the Indic shaper. | |
| 2525 - Disable fallback positioning for Indic and Thai shapers. | |
| 2526 - Misc fixes. | |
| 2527 | |
| 2528 | |
| 2529 hb-shape / hb-view changes: | |
| 2530 | |
| 2531 - Add --text-before and --text-after | |
| 2532 - Add --bot / --eot / --preserve-default-ignorables | |
| 2533 - hb-shape --output-format=json | |
| 2534 | |
| 2535 | |
| 2536 New API: | |
| 2537 | |
| 2538 hb_buffer_clear() | |
| 2539 | |
| 2540 hb_buffer_flags_t | |
| 2541 | |
| 2542 HB_BUFFER_FLAGS_DEFAULT | |
| 2543 HB_BUFFER_FLAG_BOT | |
| 2544 HB_BUFFER_FLAG_EOT | |
| 2545 HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES | |
| 2546 | |
| 2547 hb_buffer_set_flags() | |
| 2548 hb_buffer_get_flags() | |
| 2549 | |
| 2550 HB_BUFFER_SERIALIZE_FLAGS | |
| 2551 hb_buffer_serialize_glyphs() | |
| 2552 hb_buffer_deserialize_glyphs() | |
| 2553 hb_buffer_serialize_list_formats() | |
| 2554 | |
| 2555 hb_set_add_range() | |
| 2556 hb_set_del_range() | |
| 2557 hb_set_get_population() | |
| 2558 hb_set_next_range() | |
| 2559 | |
| 2560 hb_face_[sg]et_glyph_count() | |
| 2561 | |
| 2562 hb_segment_properties_t | |
| 2563 HB_SEGMENT_PROPERTIES_DEFAULT | |
| 2564 hb_segment_properties_equal() | |
| 2565 hb_segment_properties_hash() | |
| 2566 | |
| 2567 hb_buffer_set_segment_properties() | |
| 2568 hb_buffer_get_segment_properties() | |
| 2569 | |
| 2570 hb_ot_layout_glyph_class_t | |
| 2571 hb_ot_layout_get_glyph_class() | |
| 2572 hb_ot_layout_get_glyphs_in_class() | |
| 2573 | |
| 2574 hb_shape_plan_t | |
| 2575 hb_shape_plan_create() | |
| 2576 hb_shape_plan_create_cached() | |
| 2577 hb_shape_plan_get_empty() | |
| 2578 hb_shape_plan_reference() | |
| 2579 hb_shape_plan_destroy() | |
| 2580 hb_shape_plan_set_user_data() | |
| 2581 hb_shape_plan_get_user_data() | |
| 2582 hb_shape_plan_execute() | |
| 2583 hb_shape_plan_get_shaper() | |
| 2584 | |
| 2585 hb_ot_shape_plan_collect_lookups() | |
| 2586 | |
| 2587 | |
| 2588 API changes: | |
| 2589 | |
| 2590 - Remove "mask" parameter from hb_buffer_add(). | |
| 2591 - Rename hb_ot_layout_would_substitute_lookup() and hb_ot_layout_substitute_closure_lookup(). | |
| 2592 - hb-set.h API const correction. | |
| 2593 - Renamed hb_set_min/max() to hb_set_get_min/max(). | |
| 2594 - Rename hb_ot_layout_feature_get_lookup_indexes() to hb_ot_layout_feature_get_lookups(). | |
| 2595 - Rename hb_buffer_guess_properties() to hb_buffer_guess_segment_properties(). | |
| 2596 | |
| 2597 | |
| 2598 | |
| 2599 Overview of changes leading to 0.9.6 | |
| 2600 Sunday, November 13, 2012 | |
| 2601 ==================================== | |
| 2602 | |
| 2603 - Don't clear pre-context text if no new context is provided. | |
| 2604 - Fix ReverseChainingSubstLookup, which was totally borked. | |
| 2605 - Adjust output format of hb-shape a bit. | |
| 2606 - Include config.h.in in-tree. Makes it easier for alternate build systems. | |
| 2607 - Fix hb_buffer_set_length(buffer, 0) invalid memory allocation. | |
| 2608 - Use ICU LayoutEngine's C API instead of C++. Avoids much headache. | |
| 2609 - Drop glyphs for all of Unicode Default_Ignorable characters. | |
| 2610 - Misc build fixes. | |
| 2611 | |
| 2612 Arabic shaper: | |
| 2613 - Enable 'dlig' and 'mset' features in Arabic shaper. | |
| 2614 - Implement 'Phags-pa shaping, improve Mongolian. | |
| 2615 | |
| 2616 Indic shaper: | |
| 2617 - Decompose Sinhala split matras the way old HarfBuzz / Pango did. | |
| 2618 - Initial support for Consonant Medials. | |
| 2619 - Start adding new-style Myanmar shaping. | |
| 2620 - Make reph and 'pref' logic introspect the font. | |
| 2621 - Route Meetei-Mayek through the Indic shaper. | |
| 2622 - Don't apply 'liga' in Indic shaper. | |
| 2623 - Improve Malayalam pre-base reordering Ra interaction with Chillus. | |
| 2624 | |
| 2625 | |
| 2626 | |
| 2627 Overview of changes leading to 0.9.5 | |
| 2628 Sunday, October 14, 2012 | |
| 2629 ==================================== | |
| 2630 | |
| 2631 - Synthetic-GSUB Arabic fallback shaping. | |
| 2632 | |
| 2633 - Misc Indic improvements. | |
| 2634 | |
| 2635 - Add build system support for pthread. | |
| 2636 | |
| 2637 - Imported UCDN for in-tree Unicode callbacks implementation. | |
| 2638 | |
| 2639 - Context-aware Arabic joining. | |
| 2640 | |
| 2641 - Misc other fixes. | |
| 2642 | |
| 2643 - New API: | |
| 2644 | |
| 2645 hb_feature_to/from-string() | |
| 2646 hb_buffer_[sg]et_content_type() | |
| 2647 | |
| 2648 | |
| 2649 | |
| 2650 Overview of changes leading to 0.9.4 | |
| 2651 Tuesday, Sep 03, 2012 | |
| 2652 ==================================== | |
| 2653 | |
| 2654 - Indic improvements with old-spec Malayalam. | |
| 2655 | |
| 2656 - Better fallback glyph positioning, specially with Thai / Lao marks. | |
| 2657 | |
| 2658 - Implement dotted-circle insertion. | |
| 2659 | |
| 2660 - Better Arabic fallback shaping / ligation. | |
| 2661 | |
| 2662 - Added ICU LayoutEngine backend for testing. Call it by the 'icu_le' name. | |
| 2663 | |
| 2664 - Misc fixes. | |
| 2665 | |
| 2666 | |
| 2667 | |
| 2668 Overview of changes leading to 0.9.3 | |
| 2669 Friday, Aug 18, 2012 | |
| 2670 ==================================== | |
| 2671 | |
| 2672 - Fixed fallback mark positioning for left-to-right text. | |
| 2673 | |
| 2674 - Improve mark positioning for the remaining combining classes. | |
| 2675 | |
| 2676 - Unbreak Thai and fallback Arabic shaping. | |
| 2677 | |
| 2678 - Port Arabic shaper to shape-plan caching. | |
| 2679 | |
| 2680 - Use new ICU normalizer functions. | |
| 2681 | |
| 2682 | |
| 2683 | |
| 2684 Overview of changes leading to 0.9.2 | |
| 2685 Friday, Aug 10, 2012 | |
| 2686 ==================================== | |
| 2687 | |
| 2688 - Over a thousand commits! This is the first major release of HarfBuzz. | |
| 2689 | |
| 2690 - HarfBuzz is feature-complete now! It should be in par, or better, than | |
| 2691 both Pango's shapers and old HarfBuzz / Qt shapers. | |
| 2692 | |
| 2693 - New Indic shaper, supporting main Indic scripts, Sinhala, and Khmer. | |
| 2694 | |
| 2695 - Improved Arabic shaper, with fallback Arabic shaping, supporting Arabic, | |
| 2696 Sinhala, N'ko, Mongolian, and Mandaic. | |
| 2697 | |
| 2698 - New Thai / Lao shaper. | |
| 2699 | |
| 2700 - Tibetan / Hangul support in the generic shaper. | |
| 2701 | |
| 2702 - Synthetic GDEF support for fonts without a GDEF table. | |
| 2703 | |
| 2704 - Fallback mark positioning for fonts without a GPOS table. | |
| 2705 | |
| 2706 - Unicode normalization shaping heuristic during glyph mapping. | |
| 2707 | |
| 2708 - New experimental Graphite2 backend. | |
| 2709 | |
| 2710 - New Uniscribe backend (primarily for testing). | |
| 2711 | |
| 2712 - New CoreText backend (primarily for testing). | |
| 2713 | |
| 2714 - Major optimization and speedup. | |
| 2715 | |
| 2716 - Test suites and testing infrastructure (work in progress). | |
| 2717 | |
| 2718 - Greatly improved hb-view cmdline tool. | |
| 2719 | |
| 2720 - hb-shape cmdline tool. | |
| 2721 | |
| 2722 - Unicode 6.1 support. | |
| 2723 | |
| 2724 Summary of API changes: | |
| 2725 | |
| 2726 o Changed API: | |
| 2727 | |
| 2728 - Users are expected to only include main header files now (ie. hb.h, | |
| 2729 hb-glib.h, hb-ft.h, ...) | |
| 2730 | |
| 2731 - All struct tag names had their initial underscore removed. | |
| 2732 Ie. "struct _hb_buffer_t" is "struct hb_buffer_t" now. | |
| 2733 | |
| 2734 - All set_user_data() functions now take a "replace" boolean parameter. | |
| 2735 | |
| 2736 - hb_buffer_create() takes zero arguments now. | |
| 2737 Use hb_buffer_pre_allocate() to pre-allocate. | |
| 2738 | |
| 2739 - hb_buffer_add_utf*() now accept -1 for length parameters, | |
| 2740 meaning "nul-terminated". | |
| 2741 | |
| 2742 - hb_direction_t enum values changed. | |
| 2743 | |
| 2744 - All *_from_string() APIs now take a length parameter to allow for | |
| 2745 non-nul-terminated strings. A -1 length means "nul-terminated". | |
| 2746 | |
| 2747 - Typedef for hb_language_t changed. | |
| 2748 | |
| 2749 - hb_get_table_func_t renamed to hb_reference_table_func_t. | |
| 2750 | |
| 2751 - hb_ot_layout_table_choose_script() | |
| 2752 | |
| 2753 - Various renames in hb-unicode.h. | |
| 2754 | |
| 2755 o New API: | |
| 2756 | |
| 2757 - hb_buffer_guess_properties() | |
| 2758 Automatically called by hb_shape(). | |
| 2759 | |
| 2760 - hb_buffer_normalize_glyphs() | |
| 2761 | |
| 2762 - hb_tag_from_string() | |
| 2763 | |
| 2764 - hb-coretext.h | |
| 2765 | |
| 2766 - hb-uniscribe.h | |
| 2767 | |
| 2768 - hb_face_reference_blob() | |
| 2769 - hb_face_[sg]et_index() | |
| 2770 - hb_face_set_upem() | |
| 2771 | |
| 2772 - hb_font_get_glyph_name_func_t | |
| 2773 hb_font_get_glyph_from_name_func_t | |
| 2774 hb_font_funcs_set_glyph_name_func() | |
| 2775 hb_font_funcs_set_glyph_from_name_func() | |
| 2776 hb_font_get_glyph_name() | |
| 2777 hb_font_get_glyph_from_name() | |
| 2778 hb_font_glyph_to_string() | |
| 2779 hb_font_glyph_from_string() | |
| 2780 | |
| 2781 - hb_font_set_funcs_data() | |
| 2782 | |
| 2783 - hb_ft_font_set_funcs() | |
| 2784 - hb_ft_font_get_face() | |
| 2785 | |
| 2786 - hb-gobject.h (work in progress) | |
| 2787 | |
| 2788 - hb_ot_shape_glyphs_closure() | |
| 2789 hb_ot_layout_substitute_closure_lookup() | |
| 2790 | |
| 2791 - hb-set.h | |
| 2792 | |
| 2793 - hb_shape_full() | |
| 2794 | |
| 2795 - hb_unicode_combining_class_t | |
| 2796 | |
| 2797 - hb_unicode_compose_func_t | |
| 2798 hb_unicode_decompose_func_t | |
| 2799 hb_unicode_decompose_compatibility_func_t | |
| 2800 hb_unicode_funcs_set_compose_func() | |
| 2801 hb_unicode_funcs_set_decompose_func() | |
| 2802 hb_unicode_funcs_set_decompose_compatibility_func() | |
| 2803 hb_unicode_compose() | |
| 2804 hb_unicode_decompose() | |
| 2805 hb_unicode_decompose_compatibility() | |
| 2806 | |
| 2807 o Removed API: | |
| 2808 | |
| 2809 - hb_ft_get_font_funcs() | |
| 2810 | |
| 2811 - hb_ot_layout_substitute_start() | |
| 2812 hb_ot_layout_substitute_lookup() | |
| 2813 hb_ot_layout_substitute_finish() | |
| 2814 hb_ot_layout_position_start() | |
| 2815 hb_ot_layout_position_lookup() | |
| 2816 hb_ot_layout_position_finish() | |
| 2817 | |
| 2818 | |
| 2819 | |
| 2820 Overview of changes leading to 0.6.0 | |
| 2821 Friday, May 27, 2011 | |
| 2822 ==================================== | |
| 2823 | |
| 2824 - Vertical text support in GPOS | |
| 2825 - Almost all API entries have unit tests now, under test/ | |
| 2826 - All thread-safety issues are fixed | |
| 2827 | |
| 2828 Summary of API changes follows. | |
| 2829 | |
| 2830 | |
| 2831 * Simple Types API: | |
| 2832 | |
| 2833 o New API: | |
| 2834 HB_LANGUAGE_INVALID | |
| 2835 hb_language_get_default() | |
| 2836 hb_direction_to_string() | |
| 2837 hb_direction_from_string() | |
| 2838 hb_script_get_horizontal_direction() | |
| 2839 HB_UNTAG() | |
| 2840 | |
| 2841 o Renamed API: | |
| 2842 hb_category_t renamed to hb_unicode_general_category_t | |
| 2843 | |
| 2844 o Changed API: | |
| 2845 hb_language_t is a typed pointers now | |
| 2846 | |
| 2847 o Removed API: | |
| 2848 HB_TAG_STR() | |
| 2849 | |
| 2850 | |
| 2851 * Use ISO 15924 tags for hb_script_t: | |
| 2852 | |
| 2853 o New API: | |
| 2854 hb_script_from_iso15924_tag() | |
| 2855 hb_script_to_iso15924_tag() | |
| 2856 hb_script_from_string() | |
| 2857 | |
| 2858 o Changed API: | |
| 2859 HB_SCRIPT_* enum members changed value. | |
| 2860 | |
| 2861 | |
| 2862 * Buffer API streamlined: | |
| 2863 | |
| 2864 o New API: | |
| 2865 hb_buffer_reset() | |
| 2866 hb_buffer_set_length() | |
| 2867 hb_buffer_allocation_successful() | |
| 2868 | |
| 2869 o Renamed API: | |
| 2870 hb_buffer_ensure() renamed to hb_buffer_pre_allocate() | |
| 2871 hb_buffer_add_glyph() renamed to hb_buffer_add() | |
| 2872 | |
| 2873 o Removed API: | |
| 2874 hb_buffer_clear() | |
| 2875 hb_buffer_clear_positions() | |
| 2876 | |
| 2877 o Changed API: | |
| 2878 hb_buffer_get_glyph_infos() takes an out length parameter now | |
| 2879 hb_buffer_get_glyph_positions() takes an out length parameter now | |
| 2880 | |
| 2881 | |
| 2882 * Blob API streamlined: | |
| 2883 | |
| 2884 o New API: | |
| 2885 hb_blob_get_data() | |
| 2886 hb_blob_get_data_writable() | |
| 2887 | |
| 2888 o Renamed API: | |
| 2889 hb_blob_create_empty() renamed to hb_blob_get_empty() | |
| 2890 | |
| 2891 o Removed API: | |
| 2892 hb_blob_lock() | |
| 2893 hb_blob_unlock() | |
| 2894 hb_blob_is_writable() | |
| 2895 hb_blob_try_writable() | |
| 2896 | |
| 2897 o Changed API: | |
| 2898 hb_blob_create() takes user_data before destroy now | |
| 2899 | |
| 2900 | |
| 2901 * Unicode functions API: | |
| 2902 | |
| 2903 o Unicode function vectors can subclass other unicode function vectors now. | |
| 2904 Unimplemented callbacks in the subclass automatically chainup to the parent. | |
| 2905 | |
| 2906 o All hb_unicode_funcs_t callbacks take a user_data now. Their setters | |
| 2907 take a user_data and its respective destroy callback. | |
| 2908 | |
| 2909 o New API: | |
| 2910 hb_unicode_funcs_get_empty() | |
| 2911 hb_unicode_funcs_get_default() | |
| 2912 hb_unicode_funcs_get_parent() | |
| 2913 | |
| 2914 o Changed API: | |
| 2915 hb_unicode_funcs_create() now takes a parent_funcs. | |
| 2916 | |
| 2917 o Removed func getter functions: | |
| 2918 hb_unicode_funcs_get_mirroring_func() | |
| 2919 hb_unicode_funcs_get_general_category_func() | |
| 2920 hb_unicode_funcs_get_script_func() | |
| 2921 hb_unicode_funcs_get_combining_class_func() | |
| 2922 hb_unicode_funcs_get_eastasian_width_func() | |
| 2923 | |
| 2924 | |
| 2925 * Face API: | |
| 2926 | |
| 2927 o Renamed API: | |
| 2928 hb_face_get_table() renamed to hb_face_reference_table() | |
| 2929 hb_face_create_for_data() renamed to hb_face_create() | |
| 2930 | |
| 2931 o Changed API: | |
| 2932 hb_face_create_for_tables() takes user_data before destroy now | |
| 2933 hb_face_reference_table() returns empty blob instead of NULL | |
| 2934 hb_get_table_func_t accepts the face as first parameter now | |
| 2935 | |
| 2936 * Font API: | |
| 2937 | |
| 2938 o Fonts can subclass other fonts now. Unimplemented callbacks in the | |
| 2939 subclass automatically chainup to the parent. When chaining up, | |
| 2940 scale is adjusted if the parent font has a different scale. | |
| 2941 | |
| 2942 o All hb_font_funcs_t callbacks take a user_data now. Their setters | |
| 2943 take a user_data and its respective destroy callback. | |
| 2944 | |
| 2945 o New API: | |
| 2946 hb_font_get_parent() | |
| 2947 hb_font_funcs_get_empty() | |
| 2948 hb_font_create_sub_font() | |
| 2949 | |
| 2950 o Removed API: | |
| 2951 hb_font_funcs_copy() | |
| 2952 hb_font_unset_funcs() | |
| 2953 | |
| 2954 o Removed func getter functions: | |
| 2955 hb_font_funcs_get_glyph_func() | |
| 2956 hb_font_funcs_get_glyph_advance_func() | |
| 2957 hb_font_funcs_get_glyph_extents_func() | |
| 2958 hb_font_funcs_get_contour_point_func() | |
| 2959 hb_font_funcs_get_kerning_func() | |
| 2960 | |
| 2961 o Changed API: | |
| 2962 hb_font_create() takes a face and references it now | |
| 2963 hb_font_set_funcs() takes user_data before destroy now | |
| 2964 hb_font_set_scale() accepts signed integers now | |
| 2965 hb_font_get_contour_point_func_t now takes glyph first, then point_index | |
| 2966 hb_font_get_glyph_func_t returns a success boolean now | |
| 2967 | |
| 2968 | |
| 2969 * Changed object model: | |
| 2970 | |
| 2971 o All object types have a _get_empty() now: | |
| 2972 hb_blob_get_empty() | |
| 2973 hb_buffer_get_empty() | |
| 2974 hb_face_get_empty() | |
| 2975 hb_font_get_empty() | |
| 2976 hb_font_funcs_get_empty() | |
| 2977 hb_unicode_funcs_get_empty() | |
| 2978 | |
| 2979 o Added _set_user_data() and _get_user_data() for all object types: | |
| 2980 hb_blob_get_user_data() | |
| 2981 hb_blob_set_user_data() | |
| 2982 hb_buffer_get_user_data() | |
| 2983 hb_buffer_set_user_data() | |
| 2984 hb_face_get_user_data() | |
| 2985 hb_face_set_user_data() | |
| 2986 hb_font_funcs_get_user_data() | |
| 2987 hb_font_funcs_set_user_data() | |
| 2988 hb_font_get_user_data() | |
| 2989 hb_font_set_user_data() | |
| 2990 hb_unicode_funcs_get_user_data() | |
| 2991 hb_unicode_funcs_set_user_data() | |
| 2992 | |
| 2993 o Removed the _get_reference_count() from all object types: | |
| 2994 hb_blob_get_reference_count() | |
| 2995 hb_buffer_get_reference_count() | |
| 2996 hb_face_get_reference_count() | |
| 2997 hb_font_funcs_get_reference_count() | |
| 2998 hb_font_get_reference_count() | |
| 2999 hb_unicode_funcs_get_reference_count() | |
| 3000 | |
| 3001 o Added _make_immutable() and _is_immutable() for all object types except for buffer: | |
| 3002 hb_blob_make_immutable() | |
| 3003 hb_blob_is_immutable() | |
| 3004 hb_face_make_immutable() | |
| 3005 hb_face_is_immutable() | |
| 3006 | |
| 3007 | |
| 3008 * Changed API for vertical text support | |
| 3009 | |
| 3010 o The following callbacks where removed: | |
| 3011 hb_font_get_glyph_advance_func_t | |
| 3012 hb_font_get_kerning_func_t | |
| 3013 | |
| 3014 o The following new callbacks added instead: | |
| 3015 hb_font_get_glyph_h_advance_func_t | |
| 3016 hb_font_get_glyph_v_advance_func_t | |
| 3017 hb_font_get_glyph_h_origin_func_t | |
| 3018 hb_font_get_glyph_v_origin_func_t | |
| 3019 hb_font_get_glyph_h_kerning_func_t | |
| 3020 hb_font_get_glyph_v_kerning_func_t | |
| 3021 | |
| 3022 o The following API removed as such: | |
| 3023 hb_font_funcs_set_glyph_advance_func() | |
| 3024 hb_font_funcs_set_kerning_func() | |
| 3025 hb_font_get_glyph_advance() | |
| 3026 hb_font_get_kerning() | |
| 3027 | |
| 3028 o New API added instead: | |
| 3029 hb_font_funcs_set_glyph_h_advance_func() | |
| 3030 hb_font_funcs_set_glyph_v_advance_func() | |
| 3031 hb_font_funcs_set_glyph_h_origin_func() | |
| 3032 hb_font_funcs_set_glyph_v_origin_func() | |
| 3033 hb_font_funcs_set_glyph_h_kerning_func() | |
| 3034 hb_font_funcs_set_glyph_v_kerning_func() | |
| 3035 hb_font_get_glyph_h_advance() | |
| 3036 hb_font_get_glyph_v_advance() | |
| 3037 hb_font_get_glyph_h_origin() | |
| 3038 hb_font_get_glyph_v_origin() | |
| 3039 hb_font_get_glyph_h_kerning() | |
| 3040 hb_font_get_glyph_v_kerning() | |
| 3041 | |
| 3042 o The following higher-leve API added for convenience: | |
| 3043 hb_font_get_glyph_advance_for_direction() | |
| 3044 hb_font_get_glyph_origin_for_direction() | |
| 3045 hb_font_add_glyph_origin_for_direction() | |
| 3046 hb_font_subtract_glyph_origin_for_direction() | |
| 3047 hb_font_get_glyph_kerning_for_direction() | |
| 3048 hb_font_get_glyph_extents_for_origin() | |
| 3049 hb_font_get_glyph_contour_point_for_origin() | |
| 3050 | |
| 3051 | |
| 3052 * OpenType Layout API: | |
| 3053 | |
| 3054 o New API: | |
| 3055 hb_ot_layout_position_start() | |
| 3056 hb_ot_layout_substitute_start() | |
| 3057 hb_ot_layout_substitute_finish() | |
| 3058 | |
| 3059 | |
| 3060 * Glue code: | |
| 3061 | |
| 3062 o New API: | |
| 3063 hb_glib_script_to_script() | |
| 3064 hb_glib_script_from_script() | |
| 3065 hb_icu_script_to_script() | |
| 3066 hb_icu_script_from_script() | |
| 3067 | |
| 3068 | |
| 3069 * Version API added: | |
| 3070 | |
| 3071 o New API: | |
| 3072 HB_VERSION_MAJOR | |
| 3073 HB_VERSION_MINOR | |
| 3074 HB_VERSION_MICRO | |
| 3075 HB_VERSION_STRING | |
| 3076 HB_VERSION_CHECK() | |
| 3077 hb_version() | |
| 3078 hb_version_string() | |
| 3079 hb_version_check() | |
| 3080 | |
| 3081 |
