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