blob: 4503174b78a4ad52d3a1599d7ac2f4cfe899e6ba [file] [log] [blame]
Behdad Esfahbodda43a922012-11-13 13:48:26 -08001Overview of changes leading to 0.9.6
2Sunday, November 13, 2012
3====================================
4
5- Don't clear pre-context text if no new context is provided.
6- Fix ReverseChainingSubstLookup, which was totally borked.
7- Adjust output format of hb-shape a bit.
8- Include config.h.in in-tree. Makes it easier for alternate build systems.
9- Fix hb_buffer_set_length(buffer, 0) invalid memory allocation.
10- Use ICU LayoutEngine's C API instead of C++. Avoids much headache.
11- Drop glyphs for all of Unicode Default_Ignorable characters.
12- Misc build fixes.
13
14Arabic shaper:
15- Enable 'dlig' and 'mset' features in Arabic shaper.
16- Implement 'Phags-pa shaping, improve Mongolian.
17
18Indic shaper:
19- Decompose Sinhala split matras the way old HarfBuzz / Pango did.
20- Initial support for Consonant Medials.
21- Start adding new-style Myanmar shaping.
22- Make reph and 'pref' logic introspect the font.
23- Route Meetei-Mayek through the Indic shaper.
24- Don't apply 'liga' in Indic shaper.
25- Improve Malayalam pre-base reordering Ra interaction with Chillus.
26
27
28
Behdad Esfahbod13c05842012-10-14 18:37:09 -050029Overview of changes leading to 0.9.5
30Sunday, October 14, 2012
31====================================
32
33- Synthetic-GSUB Arabic fallback shaping.
34
35- Misc Indic improvements.
36
37- Add build system support for pthread.
38
39- Imported UCDN for in-tree Unicode callbacks implementation.
40
41- Context-aware Arabic joining.
42
43- Misc other fixes.
44
45- New API:
46
47 hb_feature_to/from-string()
48 hb_buffer_[sg]et_content_type()
49
50
51
Behdad Esfahbodf7e81ce2012-09-04 15:32:37 -040052Overview of changes leading to 0.9.4
53Tuesday, Sep 03, 2012
54====================================
55
56- Indic improvements with old-spec Malayalam.
57
58- Better fallback glyph positioning, specially with Thai / Lao marks.
59
60- Implement dotted-circle insertion.
61
62- Better Arabic fallback shaping / ligation.
63
64- Added ICU LayoutEngine backend for testing. Call it by the 'icu_le' name.
65
66- Misc fixes.
67
68
69
Behdad Esfahbod7fe00d12012-08-18 13:59:46 -040070Overview of changes leading to 0.9.3
71Friday, Aug 18, 2012
72====================================
73
74- Fixed fallback mark positioning for left-to-right text.
75
76- Improve mark positioning for the remaining combining classes.
77
78- Unbreak Thai and fallback Arabic shaping.
79
80- Port Arabic shaper to shape-plan caching.
81
82- Use new ICU normalizer functions.
83
84
85
Behdad Esfahbode297ee42012-08-10 14:49:37 -040086Overview of changes leading to 0.9.2
Behdad Esfahbod9fe76052012-08-15 17:24:28 -040087Friday, Aug 10, 2012
Behdad Esfahbode297ee42012-08-10 14:49:37 -040088====================================
89
90- Over a thousand commits! This is the first major release of HarfBuzz.
91
92- HarfBuzz is feature-complete now! It should be in par, or better, than
93 both Pango's shapers and old HarfBuzz / Qt shapers.
94
95- New Indic shaper, supporting main Indic scripts, Sinhala, and Khmer.
96
97- Improved Arabic shaper, with fallback Arabic shaping, supporting Arabic,
98 Sinhala, N'ko, Mongolian, and Mandaic.
99
100- New Thai / Lao shaper.
101
102- Tibetan / Hangul support in the generic shaper.
103
104- Synthetic GDEF support for fonts without a GDEF table.
105
106- Fallback mark positioning for fonts without a GPOS table.
107
108- Unicode normalization shaping heuristic during glyph mapping.
109
110- New experimental Graphite2 backend.
111
112- New Uniscribe backend (primarily for testing).
113
114- New CoreText backend (primarily for testing).
115
116- Major optimization and speedup.
117
118- Test suites and testing infrastructure (work in progress).
119
120- Greatly improved hb-view cmdline tool.
121
122- hb-shape cmdline tool.
123
124- Unicode 6.1 support.
125
126Summary of API changes:
127
128o Changed API:
129
130 - Users are expected to only include main header files now (ie. hb.h,
131 hb-glib.h, hb-ft.h, ...)
132
133 - All struct tag names had their initial underscore removed.
134 Ie. "struct _hb_buffer_t" is "struct hb_buffer_t" now.
135
136 - All set_user_data() functions now take a "replace" boolean parameter.
137
138 - hb_buffer_create() takes zero arguments now.
139 Use hb_buffer_pre_allocate() to pre-allocate.
140
141 - hb_buffer_add_utf*() now accept -1 for length parameteres,
142 meaning "nul-terminated".
143
144 - hb_direction_t enum values changed.
145
146 - All *_from_string() APIs now take a length parameter to allow for
147 non-nul-terminated strings. A -1 length means "nul-terminated".
148
149 - Typedef for hb_language_t changed.
150
151 - hb_get_table_func_t renamed to hb_reference_table_func_t.
152
153 - hb_ot_layout_table_choose_script()
154
155 - Various renames in hb-unicode.h.
156
157o New API:
158
159 - hb_buffer_guess_properties()
160 Automatically called by hb_shape().
161
162 - hb_buffer_normalize_glyphs()
163
164 - hb_tag_from_string()
165
166 - hb-coretext.h
167
168 - hb-uniscribe.h
169
170 - hb_face_reference_blob()
171 - hb_face_[sg]et_index()
172 - hb_face_set_upem()
173
174 - hb_font_get_glyph_name_func_t
175 hb_font_get_glyph_from_name_func_t
176 hb_font_funcs_set_glyph_name_func()
177 hb_font_funcs_set_glyph_from_name_func()
178 hb_font_get_glyph_name()
179 hb_font_get_glyph_from_name()
180 hb_font_glyph_to_string()
181 hb_font_glyph_from_string()
182
183 - hb_font_set_funcs_data()
184
185 - hb_ft_font_set_funcs()
186 - hb_ft_font_get_face()
187
188 - hb-gobject.h (work in progress)
189
190 - hb_ot_shape_glyphs_closure()
191 hb_ot_layout_substitute_closure_lookup()
192
193 - hb-set.h
194
195 - hb_shape_full()
196
197 - hb_unicode_combining_class_t
198
199 - hb_unicode_compose_func_t
200 hb_unicode_decompose_func_t
201 hb_unicode_decompose_compatibility_func_t
202 hb_unicode_funcs_set_compose_func()
203 hb_unicode_funcs_set_decompose_func()
204 hb_unicode_funcs_set_decompose_compatibility_func()
205 hb_unicode_compose()
206 hb_unicode_decompose()
207 hb_unicode_decompose_compatibility()
208
209o Removed API:
210
211 - hb_ft_get_font_funcs()
212
213 - hb_ot_layout_substitute_start()
214 hb_ot_layout_substitute_lookup()
215 hb_ot_layout_substitute_finish()
216 hb_ot_layout_position_start()
217 hb_ot_layout_position_lookup()
218 hb_ot_layout_position_finish()
219
220
221
Behdad Esfahbodf2455762011-05-25 16:08:06 -0400222Overview of changes leading to 0.6.0
223Friday, May 27, 2011
224====================================
225
226- Vertical text support in GPOS
227- Almost all API entries have unit tests now, under test/
228- All thread-safety issues are fixed
229
230Summary of API changes follows.
231
232
233* Simple Types API:
234
235 o New API:
236 HB_LANGUAGE_INVALID
237 hb_language_get_default()
238 hb_direction_to_string()
239 hb_direction_from_string()
240 hb_script_get_horizontal_direction()
241 HB_UNTAG()
242
243 o Renamed API:
244 hb_category_t renamed to hb_unicode_general_category_t
245
246 o Changed API:
247 hb_language_t is a typed pointers now
248
249 o Removed API:
250 HB_TAG_STR()
251
252
253* Use ISO 15924 tags for hb_script_t:
254
255 o New API:
256 hb_script_from_iso15924_tag()
257 hb_script_to_iso15924_tag()
258 hb_script_from_string()
259
260 o Changed API:
261 HB_SCRIPT_* enum members changed value.
262
263
264* Buffer API streamlined:
265
266 o New API:
267 hb_buffer_reset()
268 hb_buffer_set_length()
269 hb_buffer_allocation_successful()
270
271 o Renamed API:
272 hb_buffer_ensure() renamed to hb_buffer_pre_allocate()
273 hb_buffer_add_glyph() renamed to hb_buffer_add()
274
275 o Removed API:
276 hb_buffer_clear()
277 hb_buffer_clear_positions()
278
279 o Changed API:
280 hb_buffer_get_glyph_infos() takes an out length parameter now
281 hb_buffer_get_glyph_positions() takes an out length parameter now
282
283
284* Blob API streamlined:
285
286 o New API:
287 hb_blob_get_data()
288 hb_blob_get_data_writable()
289
290 o Renamed API:
291 hb_blob_create_empty() renamed to hb_blob_get_empty()
292
293 o Removed API:
294 hb_blob_lock()
295 hb_blob_unlock()
296 hb_blob_is_writable()
297 hb_blob_try_writable()
298
299 o Changed API:
300 hb_blob_create() takes user_data before destroy now
301
302
303* Unicode functions API:
304
305 o Unicode function vectors can subclass other unicode function vectors now.
306 Unimplemented callbacks in the subclass automatically chainup to the parent.
307
308 o All hb_unicode_funcs_t callbacks take a user_data now. Their setters
309 take a user_data and its respective destroy callback.
310
311 o New API:
312 hb_unicode_funcs_get_empty()
313 hb_unicode_funcs_get_default()
314 hb_unicode_funcs_get_parent()
315
316 o Changed API:
317 hb_unicode_funcs_create() now takes a parent_funcs.
318
319 o Removed func getter functions:
320 hb_unicode_funcs_get_mirroring_func()
321 hb_unicode_funcs_get_general_category_func()
322 hb_unicode_funcs_get_script_func()
323 hb_unicode_funcs_get_combining_class_func()
324 hb_unicode_funcs_get_eastasian_width_func()
325
326
327* Face API:
328
329 o Renamed API:
330 hb_face_get_table() renamed to hb_face_reference_table()
331 hb_face_create_for_data() renamed to hb_face_create()
332
333 o Changed API:
334 hb_face_create_for_tables() takes user_data before destroy now
335 hb_face_reference_table() returns empty blob instead of NULL
336 hb_get_table_func_t accepts the face as first parameter now
337
338* Font API:
339
340 o Fonts can subclass other fonts now. Unimplemented callbacks in the
341 subclass automatically chainup to the parent. When chaining up,
342 scale is adjusted if the parent font has a different scale.
343
344 o All hb_font_funcs_t callbacks take a user_data now. Their setters
345 take a user_data and its respective destroy callback.
346
347 o New API:
348 hb_font_get_parent()
349 hb_font_funcs_get_empty()
350 hb_font_create_sub_font()
351
352 o Removed API:
353 hb_font_funcs_copy()
354 hb_font_unset_funcs()
355
356 o Removed func getter functions:
357 hb_font_funcs_get_glyph_func()
358 hb_font_funcs_get_glyph_advance_func()
359 hb_font_funcs_get_glyph_extents_func()
360 hb_font_funcs_get_contour_point_func()
361 hb_font_funcs_get_kerning_func()
362
363 o Changed API:
364 hb_font_create() takes a face and references it now
365 hb_font_set_funcs() takes user_data before destroy now
366 hb_font_set_scale() accepts signed integers now
367 hb_font_get_contour_point_func_t now takes glyph first, then point_index
368 hb_font_get_glyph_func_t returns a success boolean now
369
370
371* Changed object model:
372
373 o All object types have a _get_empty() now:
374 hb_blob_get_empty()
375 hb_buffer_get_empty()
376 hb_face_get_empty()
377 hb_font_get_empty()
378 hb_font_funcs_get_empty()
379 hb_unicode_funcs_get_empty()
380
381 o Added _set_user_data() and _get_user_data() for all object types:
382 hb_blob_get_user_data()
383 hb_blob_set_user_data()
384 hb_buffer_get_user_data()
385 hb_buffer_set_user_data()
386 hb_face_get_user_data()
387 hb_face_set_user_data()
388 hb_font_funcs_get_user_data()
389 hb_font_funcs_set_user_data()
390 hb_font_get_user_data()
391 hb_font_set_user_data()
392 hb_unicode_funcs_get_user_data()
393 hb_unicode_funcs_set_user_data()
394
395 o Removed the _get_reference_count() from all object types:
396 hb_blob_get_reference_count()
397 hb_buffer_get_reference_count()
398 hb_face_get_reference_count()
399 hb_font_funcs_get_reference_count()
400 hb_font_get_reference_count()
401 hb_unicode_funcs_get_reference_count()
402
403 o Added _make_immutable() and _is_immutable() for all object types except for buffer:
404 hb_blob_make_immutable()
405 hb_blob_is_immutable()
406 hb_face_make_immutable()
407 hb_face_is_immutable()
408
409
410* Changed API for vertical text support
411
412 o The following callbacks where removed:
413 hb_font_get_glyph_advance_func_t
414 hb_font_get_kerning_func_t
415
416 o The following new callbacks added instead:
417 hb_font_get_glyph_h_advance_func_t
418 hb_font_get_glyph_v_advance_func_t
419 hb_font_get_glyph_h_origin_func_t
420 hb_font_get_glyph_v_origin_func_t
421 hb_font_get_glyph_h_kerning_func_t
422 hb_font_get_glyph_v_kerning_func_t
423
424 o The following API removed as such:
425 hb_font_funcs_set_glyph_advance_func()
426 hb_font_funcs_set_kerning_func()
427 hb_font_get_glyph_advance()
428 hb_font_get_kerning()
429
430 o New API added instead:
431 hb_font_funcs_set_glyph_h_advance_func()
432 hb_font_funcs_set_glyph_v_advance_func()
433 hb_font_funcs_set_glyph_h_origin_func()
434 hb_font_funcs_set_glyph_v_origin_func()
435 hb_font_funcs_set_glyph_h_kerning_func()
436 hb_font_funcs_set_glyph_v_kerning_func()
437 hb_font_get_glyph_h_advance()
438 hb_font_get_glyph_v_advance()
439 hb_font_get_glyph_h_origin()
440 hb_font_get_glyph_v_origin()
441 hb_font_get_glyph_h_kerning()
442 hb_font_get_glyph_v_kerning()
443
444 o The following higher-leve API added for convenience:
445 hb_font_get_glyph_advance_for_direction()
446 hb_font_get_glyph_origin_for_direction()
447 hb_font_add_glyph_origin_for_direction()
448 hb_font_subtract_glyph_origin_for_direction()
449 hb_font_get_glyph_kerning_for_direction()
450 hb_font_get_glyph_extents_for_origin()
451 hb_font_get_glyph_contour_point_for_origin()
452
453
454* OpenType Layout API:
455
456 o New API:
457 hb_ot_layout_position_start()
458 hb_ot_layout_substitute_start()
459 hb_ot_layout_substitute_finish()
460
461
462* Glue code:
463
464 o New API:
465 hb_glib_script_to_script()
466 hb_glib_script_from_script()
467 hb_icu_script_to_script()
468 hb_icu_script_from_script()
469
470
471* Version API added:
472
473 o New API:
474 HB_VERSION_MAJOR
475 HB_VERSION_MINOR
476 HB_VERSION_MICRO
477 HB_VERSION_STRING
478 HB_VERSION_CHECK()
479 hb_version()
480 hb_version_string()
481 hb_version_check()
482
483