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