| OLD | NEW | 
|---|
| (Empty) |  | 
|  | 1 Overview of changes leading to 0.9.14 | 
|  | 2 Thursday, March 21, 2013 | 
|  | 3 ===================================== | 
|  | 4 | 
|  | 5 - Build fixes. | 
|  | 6 - Fix time-consuming sanitize with malicious fonts. | 
|  | 7 - Implement hb_buffer_deserialize_glyphs() for both json and text. | 
|  | 8 - Do not ignore Hangul filler characters. | 
|  | 9 - Indic fixes: | 
|  | 10   * Fix Malayalam pre-base reordering interaction with post-forms. | 
|  | 11   * Further adjust ZWJ handling.  Should fix known regressions from | 
|  | 12     0.9.13. | 
|  | 13 | 
|  | 14 | 
|  | 15 Overview of changes leading to 0.9.13 | 
|  | 16 Thursday, February 25, 2013 | 
|  | 17 ===================================== | 
|  | 18 | 
|  | 19 - Build fixes. | 
|  | 20 - Ngapi HarfBuzz Hackfest in London (February 2013): | 
|  | 21   * Fixed all known Indic bugs, | 
|  | 22   * New Win8-style Myanmar shaper, | 
|  | 23   * New South-East Asian shaper for Tai Tham, Cham, and New Tai Lue, | 
|  | 24   * Smartly ignore Default_Ignorable characters (joiners, etc) wheb | 
|  | 25     matching GSUB/GPOS lookups, | 
|  | 26   * Fix 'Phags-Pa U+A872 shaping, | 
|  | 27   * Fix partial disabling of default-on features, | 
|  | 28   * Allow disabling of TrueType kerning. | 
|  | 29 - Fix possible crasher with broken fonts with overlapping tables. | 
|  | 30 - Removed generated files from git again.  So, one needs ragel to | 
|  | 31   bootstrap from the git tree. | 
|  | 32 | 
|  | 33 API changes: | 
|  | 34 - hb_shape() and related APIs now abort if buffer direction is | 
|  | 35   HB_DIRECTION_INVALID.  Previously, hb_shape() was calling | 
|  | 36   hb_buffer_guess_segment_properties() on the buffer before | 
|  | 37   shaping.  The heuristics in that function are fragile.  If the | 
|  | 38   user really wants the old behvaior, they can call that function | 
|  | 39   right before calling hb_shape() to get the old behavior. | 
|  | 40 - hb_blob_create_sub_blob() always creates sub-blob with | 
|  | 41   HB_MEMORY_MODE_READONLY.  See comments for the reason. | 
|  | 42 | 
|  | 43 | 
|  | 44 Overview of changes leading to 0.9.12 | 
|  | 45 Thursday, January 18, 2013 | 
|  | 46 ===================================== | 
|  | 47 | 
|  | 48 - Build fixes for Sun compiler. | 
|  | 49 - Minor bug fix. | 
|  | 50 | 
|  | 51 Overview of changes leading to 0.9.11 | 
|  | 52 Thursday, January 10, 2013 | 
|  | 53 ===================================== | 
|  | 54 | 
|  | 55 - Build fixes. | 
|  | 56 - Fix GPOS mark attachment with null Anchor offsets. | 
|  | 57 - [Indic] Fix old-spec reordering of viramas if sequence ends in one. | 
|  | 58 - Fix multi-threaded shaper data creation crash. | 
|  | 59 - Add atomic ops for Solaris. | 
|  | 60 | 
|  | 61 API changes: | 
|  | 62 - Rename hb_buffer_clear() to hb_buffer_clear_contents(). | 
|  | 63 | 
|  | 64 | 
|  | 65 Overview of changes leading to 0.9.10 | 
|  | 66 Thursday, January 3, 2013 | 
|  | 67 ===================================== | 
|  | 68 | 
|  | 69 - [Indic] Fixed rendering of Malayalam dot-reph | 
|  | 70 - Updated OT language tags. | 
|  | 71 - Updated graphite2 backend. | 
|  | 72 - Improved hb_ot_layout_get_size_params() logic. | 
|  | 73 - Improve hb-shape/hb-view help output. | 
|  | 74 - Fixed hb-set.h implementation to not crash. | 
|  | 75 - Fixed various issues with hb_ot_layout_collect_lookups(). | 
|  | 76 - Various build fixes. | 
|  | 77 | 
|  | 78 New API: | 
|  | 79 | 
|  | 80 hb_graphite2_face_get_gr_face() | 
|  | 81 hb_graphite2_font_get_gr_font() | 
|  | 82 hb_coretext_face_get_cg_font() | 
|  | 83 | 
|  | 84 Modified API: | 
|  | 85 | 
|  | 86 hb_ot_layout_get_size_params() | 
|  | 87 | 
|  | 88 | 
|  | 89 Overview of changes leading to 0.9.9 | 
|  | 90 Wednesday, December 5, 2012 | 
|  | 91 ==================================== | 
|  | 92 | 
|  | 93 - Fix build on Windows. | 
|  | 94 - Minor improvements. | 
|  | 95 | 
|  | 96 | 
|  | 97 Overview of changes leading to 0.9.8 | 
|  | 98 Tuesday, December 4, 2012 | 
|  | 99 ==================================== | 
|  | 100 | 
|  | 101 | 
|  | 102 - Actually implement hb_shape_plan_get_shaper (). | 
|  | 103 - Make UCDB data tables const. | 
|  | 104 - Lots of internal refactoring in OTLayout tables. | 
|  | 105 - Flesh out hb_ot_layout_lookup_collect_glyphs(). | 
|  | 106 | 
|  | 107 New API: | 
|  | 108 | 
|  | 109 hb_ot_layout_collect_lookups() | 
|  | 110 hb_ot_layout_get_size_params() | 
|  | 111 | 
|  | 112 | 
|  | 113 Overview of changes leading to 0.9.7 | 
|  | 114 Sunday, November 21, 2012 | 
|  | 115 ==================================== | 
|  | 116 | 
|  | 117 | 
|  | 118 HarfBuzz "All-You-Can-Eat-Sushi" (aka Vancouver) Hackfest and follow-on fixes. | 
|  | 119 | 
|  | 120 - Fix Arabic contextual joining using pre-context text. | 
|  | 121 - Fix Sinhala "split matra" mess. | 
|  | 122 - Fix Khmer shaping with broken fonts. | 
|  | 123 - Implement Thai "PUA" shaping for old fonts. | 
|  | 124 - Do NOT route Kharoshthi script through the Indic shaper. | 
|  | 125 - Disable fallback positioning for Indic and Thai shapers. | 
|  | 126 - Misc fixes. | 
|  | 127 | 
|  | 128 | 
|  | 129 hb-shape / hb-view changes: | 
|  | 130 | 
|  | 131 - Add --text-before and --text-after | 
|  | 132 - Add --bot / --eot / --preserve-default-ignorables | 
|  | 133 - hb-shape --output-format=json | 
|  | 134 | 
|  | 135 | 
|  | 136 New API: | 
|  | 137 | 
|  | 138 hb_buffer_clear() | 
|  | 139 | 
|  | 140 hb_buffer_flags_t | 
|  | 141 | 
|  | 142 HB_BUFFER_FLAGS_DEFAULT | 
|  | 143 HB_BUFFER_FLAG_BOT | 
|  | 144 HB_BUFFER_FLAG_EOT | 
|  | 145 HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES | 
|  | 146 | 
|  | 147 hb_buffer_set_flags() | 
|  | 148 hb_buffer_get_flags() | 
|  | 149 | 
|  | 150 HB_BUFFER_SERIALIZE_FLAGS | 
|  | 151 hb_buffer_serialize_glyphs() | 
|  | 152 hb_buffer_deserialize_glyphs() | 
|  | 153 hb_buffer_serialize_list_formats() | 
|  | 154 | 
|  | 155 hb_set_add_range() | 
|  | 156 hb_set_del_range() | 
|  | 157 hb_set_get_population() | 
|  | 158 hb_set_next_range() | 
|  | 159 | 
|  | 160 hb_face_[sg]et_glyph_count() | 
|  | 161 | 
|  | 162 hb_segment_properties_t | 
|  | 163 HB_SEGMENT_PROPERTIES_DEFAULT | 
|  | 164 hb_segment_properties_equal() | 
|  | 165 hb_segment_properties_hash() | 
|  | 166 | 
|  | 167 hb_buffer_set_segment_properties() | 
|  | 168 hb_buffer_get_segment_properties() | 
|  | 169 | 
|  | 170 hb_ot_layout_glyph_class_t | 
|  | 171 hb_ot_layout_get_glyph_class() | 
|  | 172 hb_ot_layout_get_glyphs_in_class() | 
|  | 173 | 
|  | 174 hb_shape_plan_t | 
|  | 175 hb_shape_plan_create() | 
|  | 176 hb_shape_plan_create_cached() | 
|  | 177 hb_shape_plan_get_empty() | 
|  | 178 hb_shape_plan_reference() | 
|  | 179 hb_shape_plan_destroy() | 
|  | 180 hb_shape_plan_set_user_data() | 
|  | 181 hb_shape_plan_get_user_data() | 
|  | 182 hb_shape_plan_execute() | 
|  | 183 hb_shape_plan_get_shaper() | 
|  | 184 | 
|  | 185 hb_ot_shape_plan_collect_lookups() | 
|  | 186 | 
|  | 187 | 
|  | 188 API changes: | 
|  | 189 | 
|  | 190 - Remove "mask" parameter from hb_buffer_add(). | 
|  | 191 - Rename hb_ot_layout_would_substitute_lookup() and hb_ot_layout_substitute_clos
     ure_lookup(). | 
|  | 192 - hb-set.h API const correction. | 
|  | 193 - Renamed hb_set_min/max() to hb_set_get_min/max(). | 
|  | 194 - Rename hb_ot_layout_feature_get_lookup_indexes() to hb_ot_layout_feature_get_l
     ookups(). | 
|  | 195 - Rename hb_buffer_guess_properties() to hb_buffer_guess_segment_properties(). | 
|  | 196 | 
|  | 197 | 
|  | 198 | 
|  | 199 Overview of changes leading to 0.9.6 | 
|  | 200 Sunday, November 13, 2012 | 
|  | 201 ==================================== | 
|  | 202 | 
|  | 203 - Don't clear pre-context text if no new context is provided. | 
|  | 204 - Fix ReverseChainingSubstLookup, which was totally borked. | 
|  | 205 - Adjust output format of hb-shape a bit. | 
|  | 206 - Include config.h.in in-tree.  Makes it easier for alternate build systems. | 
|  | 207 - Fix hb_buffer_set_length(buffer, 0) invalid memory allocation. | 
|  | 208 - Use ICU LayoutEngine's C API instead of C++.  Avoids much headache. | 
|  | 209 - Drop glyphs for all of Unicode Default_Ignorable characters. | 
|  | 210 - Misc build fixes. | 
|  | 211 | 
|  | 212 Arabic shaper: | 
|  | 213 - Enable 'dlig' and 'mset' features in Arabic shaper. | 
|  | 214 - Implement 'Phags-pa shaping, improve Mongolian. | 
|  | 215 | 
|  | 216 Indic shaper: | 
|  | 217 - Decompose Sinhala split matras the way old HarfBuzz / Pango did. | 
|  | 218 - Initial support for Consonant Medials. | 
|  | 219 - Start adding new-style Myanmar shaping. | 
|  | 220 - Make reph and 'pref' logic introspect the font. | 
|  | 221 - Route Meetei-Mayek through the Indic shaper. | 
|  | 222 - Don't apply 'liga' in Indic shaper. | 
|  | 223 - Improve Malayalam pre-base reordering Ra interaction with Chillus. | 
|  | 224 | 
|  | 225 | 
|  | 226 | 
|  | 227 Overview of changes leading to 0.9.5 | 
|  | 228 Sunday, October 14, 2012 | 
|  | 229 ==================================== | 
|  | 230 | 
|  | 231 - Synthetic-GSUB Arabic fallback shaping. | 
|  | 232 | 
|  | 233 - Misc Indic improvements. | 
|  | 234 | 
|  | 235 - Add build system support for pthread. | 
|  | 236 | 
|  | 237 - Imported UCDN for in-tree Unicode callbacks implementation. | 
|  | 238 | 
|  | 239 - Context-aware Arabic joining. | 
|  | 240 | 
|  | 241 - Misc other fixes. | 
|  | 242 | 
|  | 243 - New API: | 
|  | 244 | 
|  | 245   hb_feature_to/from-string() | 
|  | 246   hb_buffer_[sg]et_content_type() | 
|  | 247 | 
|  | 248 | 
|  | 249 | 
|  | 250 Overview of changes leading to 0.9.4 | 
|  | 251 Tuesday, Sep 03, 2012 | 
|  | 252 ==================================== | 
|  | 253 | 
|  | 254 - Indic improvements with old-spec Malayalam. | 
|  | 255 | 
|  | 256 - Better fallback glyph positioning, specially with Thai / Lao marks. | 
|  | 257 | 
|  | 258 - Implement dotted-circle insertion. | 
|  | 259 | 
|  | 260 - Better Arabic fallback shaping / ligation. | 
|  | 261 | 
|  | 262 - Added ICU LayoutEngine backend for testing.  Call it by the 'icu_le' name. | 
|  | 263 | 
|  | 264 - Misc fixes. | 
|  | 265 | 
|  | 266 | 
|  | 267 | 
|  | 268 Overview of changes leading to 0.9.3 | 
|  | 269 Friday, Aug 18, 2012 | 
|  | 270 ==================================== | 
|  | 271 | 
|  | 272 - Fixed fallback mark positioning for left-to-right text. | 
|  | 273 | 
|  | 274 - Improve mark positioning for the remaining combining classes. | 
|  | 275 | 
|  | 276 - Unbreak Thai and fallback Arabic shaping. | 
|  | 277 | 
|  | 278 - Port Arabic shaper to shape-plan caching. | 
|  | 279 | 
|  | 280 - Use new ICU normalizer functions. | 
|  | 281 | 
|  | 282 | 
|  | 283 | 
|  | 284 Overview of changes leading to 0.9.2 | 
|  | 285 Friday, Aug 10, 2012 | 
|  | 286 ==================================== | 
|  | 287 | 
|  | 288 - Over a thousand commits!  This is the first major release of HarfBuzz. | 
|  | 289 | 
|  | 290 - HarfBuzz is feature-complete now!  It should be in par, or better, than | 
|  | 291   both Pango's shapers and old HarfBuzz / Qt shapers. | 
|  | 292 | 
|  | 293 - New Indic shaper, supporting main Indic scripts, Sinhala, and Khmer. | 
|  | 294 | 
|  | 295 - Improved Arabic shaper, with fallback Arabic shaping, supporting Arabic, | 
|  | 296   Sinhala, N'ko, Mongolian, and Mandaic. | 
|  | 297 | 
|  | 298 - New Thai / Lao shaper. | 
|  | 299 | 
|  | 300 - Tibetan / Hangul support in the generic shaper. | 
|  | 301 | 
|  | 302 - Synthetic GDEF support for fonts without a GDEF table. | 
|  | 303 | 
|  | 304 - Fallback mark positioning for fonts without a GPOS table. | 
|  | 305 | 
|  | 306 - Unicode normalization shaping heuristic during glyph mapping. | 
|  | 307 | 
|  | 308 - New experimental Graphite2 backend. | 
|  | 309 | 
|  | 310 - New Uniscribe backend (primarily for testing). | 
|  | 311 | 
|  | 312 - New CoreText backend (primarily for testing). | 
|  | 313 | 
|  | 314 - Major optimization and speedup. | 
|  | 315 | 
|  | 316 - Test suites and testing infrastructure (work in progress). | 
|  | 317 | 
|  | 318 - Greatly improved hb-view cmdline tool. | 
|  | 319 | 
|  | 320 - hb-shape cmdline tool. | 
|  | 321 | 
|  | 322 - Unicode 6.1 support. | 
|  | 323 | 
|  | 324 Summary of API changes: | 
|  | 325 | 
|  | 326 o Changed API: | 
|  | 327 | 
|  | 328   - Users are expected to only include main header files now (ie. hb.h, | 
|  | 329     hb-glib.h, hb-ft.h, ...) | 
|  | 330 | 
|  | 331   - All struct tag names had their initial underscore removed. | 
|  | 332     Ie. "struct _hb_buffer_t" is "struct hb_buffer_t" now. | 
|  | 333 | 
|  | 334   - All set_user_data() functions now take a "replace" boolean parameter. | 
|  | 335 | 
|  | 336   - hb_buffer_create() takes zero arguments now. | 
|  | 337     Use hb_buffer_pre_allocate() to pre-allocate. | 
|  | 338 | 
|  | 339   - hb_buffer_add_utf*() now accept -1 for length parameteres, | 
|  | 340     meaning "nul-terminated". | 
|  | 341 | 
|  | 342   - hb_direction_t enum values changed. | 
|  | 343 | 
|  | 344   - All *_from_string() APIs now take a length parameter to allow for | 
|  | 345     non-nul-terminated strings. A -1 length means "nul-terminated". | 
|  | 346 | 
|  | 347   - Typedef for hb_language_t changed. | 
|  | 348 | 
|  | 349   - hb_get_table_func_t renamed to hb_reference_table_func_t. | 
|  | 350 | 
|  | 351   - hb_ot_layout_table_choose_script() | 
|  | 352 | 
|  | 353   - Various renames in hb-unicode.h. | 
|  | 354 | 
|  | 355 o New API: | 
|  | 356 | 
|  | 357   - hb_buffer_guess_properties() | 
|  | 358     Automatically called by hb_shape(). | 
|  | 359 | 
|  | 360   - hb_buffer_normalize_glyphs() | 
|  | 361 | 
|  | 362   - hb_tag_from_string() | 
|  | 363 | 
|  | 364   - hb-coretext.h | 
|  | 365 | 
|  | 366   - hb-uniscribe.h | 
|  | 367 | 
|  | 368   - hb_face_reference_blob() | 
|  | 369   - hb_face_[sg]et_index() | 
|  | 370   - hb_face_set_upem() | 
|  | 371 | 
|  | 372   - hb_font_get_glyph_name_func_t | 
|  | 373     hb_font_get_glyph_from_name_func_t | 
|  | 374     hb_font_funcs_set_glyph_name_func() | 
|  | 375     hb_font_funcs_set_glyph_from_name_func() | 
|  | 376     hb_font_get_glyph_name() | 
|  | 377     hb_font_get_glyph_from_name() | 
|  | 378     hb_font_glyph_to_string() | 
|  | 379     hb_font_glyph_from_string() | 
|  | 380 | 
|  | 381   - hb_font_set_funcs_data() | 
|  | 382 | 
|  | 383   - hb_ft_font_set_funcs() | 
|  | 384   - hb_ft_font_get_face() | 
|  | 385 | 
|  | 386   - hb-gobject.h (work in progress) | 
|  | 387 | 
|  | 388   - hb_ot_shape_glyphs_closure() | 
|  | 389     hb_ot_layout_substitute_closure_lookup() | 
|  | 390 | 
|  | 391   - hb-set.h | 
|  | 392 | 
|  | 393   - hb_shape_full() | 
|  | 394 | 
|  | 395   - hb_unicode_combining_class_t | 
|  | 396 | 
|  | 397   - hb_unicode_compose_func_t | 
|  | 398     hb_unicode_decompose_func_t | 
|  | 399     hb_unicode_decompose_compatibility_func_t | 
|  | 400     hb_unicode_funcs_set_compose_func() | 
|  | 401     hb_unicode_funcs_set_decompose_func() | 
|  | 402     hb_unicode_funcs_set_decompose_compatibility_func() | 
|  | 403     hb_unicode_compose() | 
|  | 404     hb_unicode_decompose() | 
|  | 405     hb_unicode_decompose_compatibility() | 
|  | 406 | 
|  | 407 o Removed API: | 
|  | 408 | 
|  | 409   - hb_ft_get_font_funcs() | 
|  | 410 | 
|  | 411   - hb_ot_layout_substitute_start() | 
|  | 412     hb_ot_layout_substitute_lookup() | 
|  | 413     hb_ot_layout_substitute_finish() | 
|  | 414     hb_ot_layout_position_start() | 
|  | 415     hb_ot_layout_position_lookup() | 
|  | 416     hb_ot_layout_position_finish() | 
|  | 417 | 
|  | 418 | 
|  | 419 | 
|  | 420 Overview of changes leading to 0.6.0 | 
|  | 421 Friday, May 27, 2011 | 
|  | 422 ==================================== | 
|  | 423 | 
|  | 424 - Vertical text support in GPOS | 
|  | 425 - Almost all API entries have unit tests now, under test/ | 
|  | 426 - All thread-safety issues are fixed | 
|  | 427 | 
|  | 428 Summary of API changes follows. | 
|  | 429 | 
|  | 430 | 
|  | 431 * Simple Types API: | 
|  | 432 | 
|  | 433   o New API: | 
|  | 434     HB_LANGUAGE_INVALID | 
|  | 435     hb_language_get_default() | 
|  | 436     hb_direction_to_string() | 
|  | 437     hb_direction_from_string() | 
|  | 438     hb_script_get_horizontal_direction() | 
|  | 439     HB_UNTAG() | 
|  | 440 | 
|  | 441   o Renamed API: | 
|  | 442     hb_category_t renamed to hb_unicode_general_category_t | 
|  | 443 | 
|  | 444   o Changed API: | 
|  | 445     hb_language_t is a typed pointers now | 
|  | 446 | 
|  | 447   o Removed API: | 
|  | 448     HB_TAG_STR() | 
|  | 449 | 
|  | 450 | 
|  | 451 * Use ISO 15924 tags for hb_script_t: | 
|  | 452 | 
|  | 453   o New API: | 
|  | 454     hb_script_from_iso15924_tag() | 
|  | 455     hb_script_to_iso15924_tag() | 
|  | 456     hb_script_from_string() | 
|  | 457 | 
|  | 458   o Changed API: | 
|  | 459     HB_SCRIPT_* enum members changed value. | 
|  | 460 | 
|  | 461 | 
|  | 462 * Buffer API streamlined: | 
|  | 463 | 
|  | 464   o New API: | 
|  | 465     hb_buffer_reset() | 
|  | 466     hb_buffer_set_length() | 
|  | 467     hb_buffer_allocation_successful() | 
|  | 468 | 
|  | 469   o Renamed API: | 
|  | 470     hb_buffer_ensure() renamed to hb_buffer_pre_allocate() | 
|  | 471     hb_buffer_add_glyph() renamed to hb_buffer_add() | 
|  | 472 | 
|  | 473   o Removed API: | 
|  | 474     hb_buffer_clear() | 
|  | 475     hb_buffer_clear_positions() | 
|  | 476 | 
|  | 477   o Changed API: | 
|  | 478     hb_buffer_get_glyph_infos() takes an out length parameter now | 
|  | 479     hb_buffer_get_glyph_positions() takes an out length parameter now | 
|  | 480 | 
|  | 481 | 
|  | 482 * Blob API streamlined: | 
|  | 483 | 
|  | 484   o New API: | 
|  | 485     hb_blob_get_data() | 
|  | 486     hb_blob_get_data_writable() | 
|  | 487 | 
|  | 488   o Renamed API: | 
|  | 489     hb_blob_create_empty() renamed to hb_blob_get_empty() | 
|  | 490 | 
|  | 491   o Removed API: | 
|  | 492     hb_blob_lock() | 
|  | 493     hb_blob_unlock() | 
|  | 494     hb_blob_is_writable() | 
|  | 495     hb_blob_try_writable() | 
|  | 496 | 
|  | 497   o Changed API: | 
|  | 498     hb_blob_create() takes user_data before destroy now | 
|  | 499 | 
|  | 500 | 
|  | 501 * Unicode functions API: | 
|  | 502 | 
|  | 503   o Unicode function vectors can subclass other unicode function vectors now. | 
|  | 504     Unimplemented callbacks in the subclass automatically chainup to the parent. | 
|  | 505 | 
|  | 506   o All hb_unicode_funcs_t callbacks take a user_data now.  Their setters | 
|  | 507     take a user_data and its respective destroy callback. | 
|  | 508 | 
|  | 509   o New API: | 
|  | 510     hb_unicode_funcs_get_empty() | 
|  | 511     hb_unicode_funcs_get_default() | 
|  | 512     hb_unicode_funcs_get_parent() | 
|  | 513 | 
|  | 514   o Changed API: | 
|  | 515     hb_unicode_funcs_create() now takes a parent_funcs. | 
|  | 516 | 
|  | 517   o Removed func getter functions: | 
|  | 518     hb_unicode_funcs_get_mirroring_func() | 
|  | 519     hb_unicode_funcs_get_general_category_func() | 
|  | 520     hb_unicode_funcs_get_script_func() | 
|  | 521     hb_unicode_funcs_get_combining_class_func() | 
|  | 522     hb_unicode_funcs_get_eastasian_width_func() | 
|  | 523 | 
|  | 524 | 
|  | 525 * Face API: | 
|  | 526 | 
|  | 527   o Renamed API: | 
|  | 528     hb_face_get_table() renamed to hb_face_reference_table() | 
|  | 529     hb_face_create_for_data() renamed to hb_face_create() | 
|  | 530 | 
|  | 531   o Changed API: | 
|  | 532     hb_face_create_for_tables() takes user_data before destroy now | 
|  | 533     hb_face_reference_table() returns empty blob instead of NULL | 
|  | 534     hb_get_table_func_t accepts the face as first parameter now | 
|  | 535 | 
|  | 536 * Font API: | 
|  | 537 | 
|  | 538   o Fonts can subclass other fonts now.  Unimplemented callbacks in the | 
|  | 539     subclass automatically chainup to the parent.  When chaining up, | 
|  | 540     scale is adjusted if the parent font has a different scale. | 
|  | 541 | 
|  | 542   o All hb_font_funcs_t callbacks take a user_data now.  Their setters | 
|  | 543     take a user_data and its respective destroy callback. | 
|  | 544 | 
|  | 545   o New API: | 
|  | 546     hb_font_get_parent() | 
|  | 547     hb_font_funcs_get_empty() | 
|  | 548     hb_font_create_sub_font() | 
|  | 549 | 
|  | 550   o Removed API: | 
|  | 551     hb_font_funcs_copy() | 
|  | 552     hb_font_unset_funcs() | 
|  | 553 | 
|  | 554   o Removed func getter functions: | 
|  | 555     hb_font_funcs_get_glyph_func() | 
|  | 556     hb_font_funcs_get_glyph_advance_func() | 
|  | 557     hb_font_funcs_get_glyph_extents_func() | 
|  | 558     hb_font_funcs_get_contour_point_func() | 
|  | 559     hb_font_funcs_get_kerning_func() | 
|  | 560 | 
|  | 561   o Changed API: | 
|  | 562     hb_font_create() takes a face and references it now | 
|  | 563     hb_font_set_funcs() takes user_data before destroy now | 
|  | 564     hb_font_set_scale() accepts signed integers now | 
|  | 565     hb_font_get_contour_point_func_t now takes glyph first, then point_index | 
|  | 566     hb_font_get_glyph_func_t returns a success boolean now | 
|  | 567 | 
|  | 568 | 
|  | 569 * Changed object model: | 
|  | 570 | 
|  | 571   o All object types have a _get_empty() now: | 
|  | 572     hb_blob_get_empty() | 
|  | 573     hb_buffer_get_empty() | 
|  | 574     hb_face_get_empty() | 
|  | 575     hb_font_get_empty() | 
|  | 576     hb_font_funcs_get_empty() | 
|  | 577     hb_unicode_funcs_get_empty() | 
|  | 578 | 
|  | 579   o Added _set_user_data() and _get_user_data() for all object types: | 
|  | 580     hb_blob_get_user_data() | 
|  | 581     hb_blob_set_user_data() | 
|  | 582     hb_buffer_get_user_data() | 
|  | 583     hb_buffer_set_user_data() | 
|  | 584     hb_face_get_user_data() | 
|  | 585     hb_face_set_user_data() | 
|  | 586     hb_font_funcs_get_user_data() | 
|  | 587     hb_font_funcs_set_user_data() | 
|  | 588     hb_font_get_user_data() | 
|  | 589     hb_font_set_user_data() | 
|  | 590     hb_unicode_funcs_get_user_data() | 
|  | 591     hb_unicode_funcs_set_user_data() | 
|  | 592 | 
|  | 593   o Removed the _get_reference_count() from all object types: | 
|  | 594     hb_blob_get_reference_count() | 
|  | 595     hb_buffer_get_reference_count() | 
|  | 596     hb_face_get_reference_count() | 
|  | 597     hb_font_funcs_get_reference_count() | 
|  | 598     hb_font_get_reference_count() | 
|  | 599     hb_unicode_funcs_get_reference_count() | 
|  | 600 | 
|  | 601   o Added _make_immutable() and _is_immutable() for all object types except for 
     buffer: | 
|  | 602     hb_blob_make_immutable() | 
|  | 603     hb_blob_is_immutable() | 
|  | 604     hb_face_make_immutable() | 
|  | 605     hb_face_is_immutable() | 
|  | 606 | 
|  | 607 | 
|  | 608 * Changed API for vertical text support | 
|  | 609 | 
|  | 610   o The following callbacks where removed: | 
|  | 611     hb_font_get_glyph_advance_func_t | 
|  | 612     hb_font_get_kerning_func_t | 
|  | 613 | 
|  | 614   o The following new callbacks added instead: | 
|  | 615     hb_font_get_glyph_h_advance_func_t | 
|  | 616     hb_font_get_glyph_v_advance_func_t | 
|  | 617     hb_font_get_glyph_h_origin_func_t | 
|  | 618     hb_font_get_glyph_v_origin_func_t | 
|  | 619     hb_font_get_glyph_h_kerning_func_t | 
|  | 620     hb_font_get_glyph_v_kerning_func_t | 
|  | 621 | 
|  | 622   o The following API removed as such: | 
|  | 623     hb_font_funcs_set_glyph_advance_func() | 
|  | 624     hb_font_funcs_set_kerning_func() | 
|  | 625     hb_font_get_glyph_advance() | 
|  | 626     hb_font_get_kerning() | 
|  | 627 | 
|  | 628   o New API added instead: | 
|  | 629     hb_font_funcs_set_glyph_h_advance_func() | 
|  | 630     hb_font_funcs_set_glyph_v_advance_func() | 
|  | 631     hb_font_funcs_set_glyph_h_origin_func() | 
|  | 632     hb_font_funcs_set_glyph_v_origin_func() | 
|  | 633     hb_font_funcs_set_glyph_h_kerning_func() | 
|  | 634     hb_font_funcs_set_glyph_v_kerning_func() | 
|  | 635     hb_font_get_glyph_h_advance() | 
|  | 636     hb_font_get_glyph_v_advance() | 
|  | 637     hb_font_get_glyph_h_origin() | 
|  | 638     hb_font_get_glyph_v_origin() | 
|  | 639     hb_font_get_glyph_h_kerning() | 
|  | 640     hb_font_get_glyph_v_kerning() | 
|  | 641 | 
|  | 642   o The following higher-leve API added for convenience: | 
|  | 643     hb_font_get_glyph_advance_for_direction() | 
|  | 644     hb_font_get_glyph_origin_for_direction() | 
|  | 645     hb_font_add_glyph_origin_for_direction() | 
|  | 646     hb_font_subtract_glyph_origin_for_direction() | 
|  | 647     hb_font_get_glyph_kerning_for_direction() | 
|  | 648     hb_font_get_glyph_extents_for_origin() | 
|  | 649     hb_font_get_glyph_contour_point_for_origin() | 
|  | 650 | 
|  | 651 | 
|  | 652 * OpenType Layout API: | 
|  | 653 | 
|  | 654   o New API: | 
|  | 655     hb_ot_layout_position_start() | 
|  | 656     hb_ot_layout_substitute_start() | 
|  | 657     hb_ot_layout_substitute_finish() | 
|  | 658 | 
|  | 659 | 
|  | 660 * Glue code: | 
|  | 661 | 
|  | 662   o New API: | 
|  | 663     hb_glib_script_to_script() | 
|  | 664     hb_glib_script_from_script() | 
|  | 665     hb_icu_script_to_script() | 
|  | 666     hb_icu_script_from_script() | 
|  | 667 | 
|  | 668 | 
|  | 669 * Version API added: | 
|  | 670 | 
|  | 671   o New API: | 
|  | 672     HB_VERSION_MAJOR | 
|  | 673     HB_VERSION_MINOR | 
|  | 674     HB_VERSION_MICRO | 
|  | 675     HB_VERSION_STRING | 
|  | 676     HB_VERSION_CHECK() | 
|  | 677     hb_version() | 
|  | 678     hb_version_string() | 
|  | 679     hb_version_check() | 
|  | 680 | 
|  | 681 | 
| OLD | NEW | 
|---|