Upgrade to latest harfbuzz
[framework/uifw/harfbuzz.git] / NEWS
1 Overview of changes leading to 0.6.0
2 Friday, May 27, 2011
3 ====================================
4
5 - Vertical text support in GPOS
6 - Almost all API entries have unit tests now, under test/
7 - All thread-safety issues are fixed
8
9 Summary of API changes follows.
10
11
12 * Simple Types API:
13
14   o New API:
15     HB_LANGUAGE_INVALID
16     hb_language_get_default()
17     hb_direction_to_string()
18     hb_direction_from_string()
19     hb_script_get_horizontal_direction()
20     HB_UNTAG()
21
22   o Renamed API:
23     hb_category_t renamed to hb_unicode_general_category_t
24
25   o Changed API:
26     hb_language_t is a typed pointers now
27
28   o Removed API:
29     HB_TAG_STR()
30
31
32 * Use ISO 15924 tags for hb_script_t:
33
34   o New API:
35     hb_script_from_iso15924_tag()
36     hb_script_to_iso15924_tag()
37     hb_script_from_string()
38
39   o Changed API:
40     HB_SCRIPT_* enum members changed value.
41
42
43 * Buffer API streamlined:
44
45   o New API:
46     hb_buffer_reset()
47     hb_buffer_set_length()
48     hb_buffer_allocation_successful()
49
50   o Renamed API:
51     hb_buffer_ensure() renamed to hb_buffer_pre_allocate()
52     hb_buffer_add_glyph() renamed to hb_buffer_add()
53
54   o Removed API:
55     hb_buffer_clear()
56     hb_buffer_clear_positions()
57
58   o Changed API:
59     hb_buffer_get_glyph_infos() takes an out length parameter now
60     hb_buffer_get_glyph_positions() takes an out length parameter now
61
62
63 * Blob API streamlined:
64
65   o New API:
66     hb_blob_get_data()
67     hb_blob_get_data_writable()
68
69   o Renamed API:
70     hb_blob_create_empty() renamed to hb_blob_get_empty()
71
72   o Removed API:
73     hb_blob_lock()
74     hb_blob_unlock()
75     hb_blob_is_writable()
76     hb_blob_try_writable()
77
78   o Changed API:
79     hb_blob_create() takes user_data before destroy now
80
81
82 * Unicode functions API:
83
84   o Unicode function vectors can subclass other unicode function vectors now.
85     Unimplemented callbacks in the subclass automatically chainup to the parent.
86
87   o All hb_unicode_funcs_t callbacks take a user_data now.  Their setters
88     take a user_data and its respective destroy callback.
89
90   o New API:
91     hb_unicode_funcs_get_empty()
92     hb_unicode_funcs_get_default()
93     hb_unicode_funcs_get_parent()
94
95   o Changed API:
96     hb_unicode_funcs_create() now takes a parent_funcs.
97
98   o Removed func getter functions:
99     hb_unicode_funcs_get_mirroring_func()
100     hb_unicode_funcs_get_general_category_func()
101     hb_unicode_funcs_get_script_func()
102     hb_unicode_funcs_get_combining_class_func()
103     hb_unicode_funcs_get_eastasian_width_func()
104
105
106 * Face API:
107
108   o Renamed API:
109     hb_face_get_table() renamed to hb_face_reference_table()
110     hb_face_create_for_data() renamed to hb_face_create()
111
112   o Changed API:
113     hb_face_create_for_tables() takes user_data before destroy now
114     hb_face_reference_table() returns empty blob instead of NULL
115     hb_get_table_func_t accepts the face as first parameter now
116
117 * Font API:
118
119   o Fonts can subclass other fonts now.  Unimplemented callbacks in the
120     subclass automatically chainup to the parent.  When chaining up,
121     scale is adjusted if the parent font has a different scale.
122
123   o All hb_font_funcs_t callbacks take a user_data now.  Their setters
124     take a user_data and its respective destroy callback.
125
126   o New API:
127     hb_font_get_parent()
128     hb_font_funcs_get_empty()
129     hb_font_create_sub_font()
130
131   o Removed API:
132     hb_font_funcs_copy()
133     hb_font_unset_funcs()
134
135   o Removed func getter functions:
136     hb_font_funcs_get_glyph_func()
137     hb_font_funcs_get_glyph_advance_func()
138     hb_font_funcs_get_glyph_extents_func()
139     hb_font_funcs_get_contour_point_func()
140     hb_font_funcs_get_kerning_func()
141
142   o Changed API:
143     hb_font_create() takes a face and references it now
144     hb_font_set_funcs() takes user_data before destroy now
145     hb_font_set_scale() accepts signed integers now
146     hb_font_get_contour_point_func_t now takes glyph first, then point_index
147     hb_font_get_glyph_func_t returns a success boolean now
148
149
150 * Changed object model:
151
152   o All object types have a _get_empty() now:
153     hb_blob_get_empty()
154     hb_buffer_get_empty()
155     hb_face_get_empty()
156     hb_font_get_empty()
157     hb_font_funcs_get_empty()
158     hb_unicode_funcs_get_empty()
159
160   o Added _set_user_data() and _get_user_data() for all object types:
161     hb_blob_get_user_data()
162     hb_blob_set_user_data()
163     hb_buffer_get_user_data()
164     hb_buffer_set_user_data()
165     hb_face_get_user_data()
166     hb_face_set_user_data()
167     hb_font_funcs_get_user_data()
168     hb_font_funcs_set_user_data()
169     hb_font_get_user_data()
170     hb_font_set_user_data()
171     hb_unicode_funcs_get_user_data()
172     hb_unicode_funcs_set_user_data()
173
174   o Removed the _get_reference_count() from all object types:
175     hb_blob_get_reference_count()
176     hb_buffer_get_reference_count()
177     hb_face_get_reference_count()
178     hb_font_funcs_get_reference_count()
179     hb_font_get_reference_count()
180     hb_unicode_funcs_get_reference_count()
181
182   o Added _make_immutable() and _is_immutable() for all object types except for buffer:
183     hb_blob_make_immutable()
184     hb_blob_is_immutable()
185     hb_face_make_immutable()
186     hb_face_is_immutable()
187
188
189 * Changed API for vertical text support
190
191   o The following callbacks where removed:
192     hb_font_get_glyph_advance_func_t
193     hb_font_get_kerning_func_t
194
195   o The following new callbacks added instead:
196     hb_font_get_glyph_h_advance_func_t
197     hb_font_get_glyph_v_advance_func_t
198     hb_font_get_glyph_h_origin_func_t
199     hb_font_get_glyph_v_origin_func_t
200     hb_font_get_glyph_h_kerning_func_t
201     hb_font_get_glyph_v_kerning_func_t
202
203   o The following API removed as such:
204     hb_font_funcs_set_glyph_advance_func()
205     hb_font_funcs_set_kerning_func()
206     hb_font_get_glyph_advance()
207     hb_font_get_kerning()
208
209   o New API added instead:
210     hb_font_funcs_set_glyph_h_advance_func()
211     hb_font_funcs_set_glyph_v_advance_func()
212     hb_font_funcs_set_glyph_h_origin_func()
213     hb_font_funcs_set_glyph_v_origin_func()
214     hb_font_funcs_set_glyph_h_kerning_func()
215     hb_font_funcs_set_glyph_v_kerning_func()
216     hb_font_get_glyph_h_advance()
217     hb_font_get_glyph_v_advance()
218     hb_font_get_glyph_h_origin()
219     hb_font_get_glyph_v_origin()
220     hb_font_get_glyph_h_kerning()
221     hb_font_get_glyph_v_kerning()
222
223   o The following higher-leve API added for convenience:
224     hb_font_get_glyph_advance_for_direction()
225     hb_font_get_glyph_origin_for_direction()
226     hb_font_add_glyph_origin_for_direction()
227     hb_font_subtract_glyph_origin_for_direction()
228     hb_font_get_glyph_kerning_for_direction()
229     hb_font_get_glyph_extents_for_origin()
230     hb_font_get_glyph_contour_point_for_origin()
231
232
233 * OpenType Layout API:
234
235   o New API:
236     hb_ot_layout_position_start()
237     hb_ot_layout_substitute_start()
238     hb_ot_layout_substitute_finish()
239
240
241 * Glue code:
242
243   o New API:
244     hb_glib_script_to_script()
245     hb_glib_script_from_script()
246     hb_icu_script_to_script()
247     hb_icu_script_from_script()
248
249
250 * Version API added:
251
252   o New API:
253     HB_VERSION_MAJOR
254     HB_VERSION_MINOR
255     HB_VERSION_MICRO
256     HB_VERSION_STRING
257     HB_VERSION_CHECK()
258     hb_version()
259     hb_version_string()
260     hb_version_check()
261
262