Imported Upstream version 2.6.7
[platform/upstream/harfbuzz.git] / docs / html / harfbuzz-hb-buffer.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>hb-buffer: HarfBuzz Manual</title>
6 <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
7 <link rel="home" href="index.html" title="HarfBuzz Manual">
8 <link rel="up" href="ch12.html" title="Core API">
9 <link rel="prev" href="harfbuzz-hb-blob.html" title="hb-blob">
10 <link rel="next" href="harfbuzz-hb-common.html" title="hb-common">
11 <meta name="generator" content="GTK-Doc V1.32.1 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
16 <td width="100%" align="left" class="shortcuts">
17 <a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
18                   <a href="#harfbuzz-hb-buffer.description" class="shortcut">Description</a></span>
19 </td>
20 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
21 <td><a accesskey="u" href="ch12.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
22 <td><a accesskey="p" href="harfbuzz-hb-blob.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
23 <td><a accesskey="n" href="harfbuzz-hb-common.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
24 </tr></table>
25 <div class="refentry">
26 <a name="harfbuzz-hb-buffer"></a><div class="titlepage"></div>
27 <div class="refnamediv"><table width="100%"><tr>
28 <td valign="top">
29 <h2><span class="refentrytitle"><a name="harfbuzz-hb-buffer.top_of_page"></a>hb-buffer</span></h2>
30 <p>hb-buffer — Input and output buffers</p>
31 </td>
32 <td class="gallery_image" valign="top" align="right"></td>
33 </tr></table></div>
34 <div class="refsect1">
35 <a name="harfbuzz-hb-buffer.functions"></a><h2>Functions</h2>
36 <div class="informaltable"><table class="informaltable" width="100%" border="0">
37 <colgroup>
38 <col width="150px" class="functions_proto_type">
39 <col class="functions_proto_name">
40 </colgroup>
41 <tbody>
42 <tr>
43 <td class="function_type">
44 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="returnvalue">hb_buffer_t</span></a> *
45 </td>
46 <td class="function_name">
47 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-create" title="hb_buffer_create ()">hb_buffer_create</a> <span class="c_punctuation">()</span>
48 </td>
49 </tr>
50 <tr>
51 <td class="function_type">
52 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="returnvalue">hb_buffer_t</span></a> *
53 </td>
54 <td class="function_name">
55 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-reference" title="hb_buffer_reference ()">hb_buffer_reference</a> <span class="c_punctuation">()</span>
56 </td>
57 </tr>
58 <tr>
59 <td class="function_type">
60 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="returnvalue">hb_buffer_t</span></a> *
61 </td>
62 <td class="function_name">
63 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-empty" title="hb_buffer_get_empty ()">hb_buffer_get_empty</a> <span class="c_punctuation">()</span>
64 </td>
65 </tr>
66 <tr>
67 <td class="function_type">
68 <span class="returnvalue">void</span>
69 </td>
70 <td class="function_name">
71 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-destroy" title="hb_buffer_destroy ()">hb_buffer_destroy</a> <span class="c_punctuation">()</span>
72 </td>
73 </tr>
74 <tr>
75 <td class="function_type">
76 <span class="returnvalue">void</span>
77 </td>
78 <td class="function_name">
79 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-reset" title="hb_buffer_reset ()">hb_buffer_reset</a> <span class="c_punctuation">()</span>
80 </td>
81 </tr>
82 <tr>
83 <td class="function_type">
84 <span class="returnvalue">void</span>
85 </td>
86 <td class="function_name">
87 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-clear-contents" title="hb_buffer_clear_contents ()">hb_buffer_clear_contents</a> <span class="c_punctuation">()</span>
88 </td>
89 </tr>
90 <tr>
91 <td class="function_type">
92 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
93 </td>
94 <td class="function_name">
95 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-pre-allocate" title="hb_buffer_pre_allocate ()">hb_buffer_pre_allocate</a> <span class="c_punctuation">()</span>
96 </td>
97 </tr>
98 <tr>
99 <td class="function_type">
100 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
101 </td>
102 <td class="function_name">
103 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-allocation-successful" title="hb_buffer_allocation_successful ()">hb_buffer_allocation_successful</a> <span class="c_punctuation">()</span>
104 </td>
105 </tr>
106 <tr>
107 <td class="function_type">
108 <span class="returnvalue">void</span>
109 </td>
110 <td class="function_name">
111 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-add" title="hb_buffer_add ()">hb_buffer_add</a> <span class="c_punctuation">()</span>
112 </td>
113 </tr>
114 <tr>
115 <td class="function_type">
116 <span class="returnvalue">void</span>
117 </td>
118 <td class="function_name">
119 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-add-codepoints" title="hb_buffer_add_codepoints ()">hb_buffer_add_codepoints</a> <span class="c_punctuation">()</span>
120 </td>
121 </tr>
122 <tr>
123 <td class="function_type">
124 <span class="returnvalue">void</span>
125 </td>
126 <td class="function_name">
127 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-add-utf32" title="hb_buffer_add_utf32 ()">hb_buffer_add_utf32</a> <span class="c_punctuation">()</span>
128 </td>
129 </tr>
130 <tr>
131 <td class="function_type">
132 <span class="returnvalue">void</span>
133 </td>
134 <td class="function_name">
135 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-add-utf16" title="hb_buffer_add_utf16 ()">hb_buffer_add_utf16</a> <span class="c_punctuation">()</span>
136 </td>
137 </tr>
138 <tr>
139 <td class="function_type">
140 <span class="returnvalue">void</span>
141 </td>
142 <td class="function_name">
143 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-add-utf8" title="hb_buffer_add_utf8 ()">hb_buffer_add_utf8</a> <span class="c_punctuation">()</span>
144 </td>
145 </tr>
146 <tr>
147 <td class="function_type">
148 <span class="returnvalue">void</span>
149 </td>
150 <td class="function_name">
151 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-add-latin1" title="hb_buffer_add_latin1 ()">hb_buffer_add_latin1</a> <span class="c_punctuation">()</span>
152 </td>
153 </tr>
154 <tr>
155 <td class="function_type">
156 <span class="returnvalue">void</span>
157 </td>
158 <td class="function_name">
159 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-append" title="hb_buffer_append ()">hb_buffer_append</a> <span class="c_punctuation">()</span>
160 </td>
161 </tr>
162 <tr>
163 <td class="function_type">
164 <span class="returnvalue">void</span>
165 </td>
166 <td class="function_name">
167 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-content-type" title="hb_buffer_set_content_type ()">hb_buffer_set_content_type</a> <span class="c_punctuation">()</span>
168 </td>
169 </tr>
170 <tr>
171 <td class="function_type">
172 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-content-type-t" title="enum hb_buffer_content_type_t"><span class="returnvalue">hb_buffer_content_type_t</span></a>
173 </td>
174 <td class="function_name">
175 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-content-type" title="hb_buffer_get_content_type ()">hb_buffer_get_content_type</a> <span class="c_punctuation">()</span>
176 </td>
177 </tr>
178 <tr>
179 <td class="function_type">
180 <span class="returnvalue">void</span>
181 </td>
182 <td class="function_name">
183 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-direction" title="hb_buffer_set_direction ()">hb_buffer_set_direction</a> <span class="c_punctuation">()</span>
184 </td>
185 </tr>
186 <tr>
187 <td class="function_type">
188 <a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="returnvalue">hb_direction_t</span></a>
189 </td>
190 <td class="function_name">
191 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-direction" title="hb_buffer_get_direction ()">hb_buffer_get_direction</a> <span class="c_punctuation">()</span>
192 </td>
193 </tr>
194 <tr>
195 <td class="function_type">
196 <span class="returnvalue">void</span>
197 </td>
198 <td class="function_name">
199 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-script" title="hb_buffer_set_script ()">hb_buffer_set_script</a> <span class="c_punctuation">()</span>
200 </td>
201 </tr>
202 <tr>
203 <td class="function_type">
204 <a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="returnvalue">hb_script_t</span></a>
205 </td>
206 <td class="function_name">
207 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-script" title="hb_buffer_get_script ()">hb_buffer_get_script</a> <span class="c_punctuation">()</span>
208 </td>
209 </tr>
210 <tr>
211 <td class="function_type">
212 <span class="returnvalue">void</span>
213 </td>
214 <td class="function_name">
215 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-language" title="hb_buffer_set_language ()">hb_buffer_set_language</a> <span class="c_punctuation">()</span>
216 </td>
217 </tr>
218 <tr>
219 <td class="function_type">
220 <a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="returnvalue">hb_language_t</span></a>
221 </td>
222 <td class="function_name">
223 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-language" title="hb_buffer_get_language ()">hb_buffer_get_language</a> <span class="c_punctuation">()</span>
224 </td>
225 </tr>
226 <tr>
227 <td class="function_type">
228 <span class="returnvalue">void</span>
229 </td>
230 <td class="function_name">
231 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-flags" title="hb_buffer_set_flags ()">hb_buffer_set_flags</a> <span class="c_punctuation">()</span>
232 </td>
233 </tr>
234 <tr>
235 <td class="function_type">
236 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-flags-t" title="enum hb_buffer_flags_t"><span class="returnvalue">hb_buffer_flags_t</span></a>
237 </td>
238 <td class="function_name">
239 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-flags" title="hb_buffer_get_flags ()">hb_buffer_get_flags</a> <span class="c_punctuation">()</span>
240 </td>
241 </tr>
242 <tr>
243 <td class="function_type">
244 <span class="returnvalue">void</span>
245 </td>
246 <td class="function_name">
247 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-cluster-level" title="hb_buffer_set_cluster_level ()">hb_buffer_set_cluster_level</a> <span class="c_punctuation">()</span>
248 </td>
249 </tr>
250 <tr>
251 <td class="function_type">
252 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-cluster-level-t" title="enum hb_buffer_cluster_level_t"><span class="returnvalue">hb_buffer_cluster_level_t</span></a>
253 </td>
254 <td class="function_name">
255 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-cluster-level" title="hb_buffer_get_cluster_level ()">hb_buffer_get_cluster_level</a> <span class="c_punctuation">()</span>
256 </td>
257 </tr>
258 <tr>
259 <td class="function_type">
260 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
261 </td>
262 <td class="function_name">
263 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-length" title="hb_buffer_set_length ()">hb_buffer_set_length</a> <span class="c_punctuation">()</span>
264 </td>
265 </tr>
266 <tr>
267 <td class="function_type">unsigned <span class="returnvalue">int</span>
268 </td>
269 <td class="function_name">
270 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-length" title="hb_buffer_get_length ()">hb_buffer_get_length</a> <span class="c_punctuation">()</span>
271 </td>
272 </tr>
273 <tr>
274 <td class="function_type">
275 <span class="returnvalue">void</span>
276 </td>
277 <td class="function_name">
278 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-segment-properties" title="hb_buffer_set_segment_properties ()">hb_buffer_set_segment_properties</a> <span class="c_punctuation">()</span>
279 </td>
280 </tr>
281 <tr>
282 <td class="function_type">
283 <span class="returnvalue">void</span>
284 </td>
285 <td class="function_name">
286 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-segment-properties" title="hb_buffer_get_segment_properties ()">hb_buffer_get_segment_properties</a> <span class="c_punctuation">()</span>
287 </td>
288 </tr>
289 <tr>
290 <td class="function_type">
291 <span class="returnvalue">void</span>
292 </td>
293 <td class="function_name">
294 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-guess-segment-properties" title="hb_buffer_guess_segment_properties ()">hb_buffer_guess_segment_properties</a> <span class="c_punctuation">()</span>
295 </td>
296 </tr>
297 <tr>
298 <td class="function_type">
299 <span class="returnvalue">void</span>
300 </td>
301 <td class="function_name">
302 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-unicode-funcs" title="hb_buffer_set_unicode_funcs ()">hb_buffer_set_unicode_funcs</a> <span class="c_punctuation">()</span>
303 </td>
304 </tr>
305 <tr>
306 <td class="function_type">
307 <a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
308 </td>
309 <td class="function_name">
310 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-unicode-funcs" title="hb_buffer_get_unicode_funcs ()">hb_buffer_get_unicode_funcs</a> <span class="c_punctuation">()</span>
311 </td>
312 </tr>
313 <tr>
314 <td class="function_type">
315 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
316 </td>
317 <td class="function_name">
318 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-user-data" title="hb_buffer_set_user_data ()">hb_buffer_set_user_data</a> <span class="c_punctuation">()</span>
319 </td>
320 </tr>
321 <tr>
322 <td class="function_type">
323 <span class="returnvalue">void</span> *
324 </td>
325 <td class="function_name">
326 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-user-data" title="hb_buffer_get_user_data ()">hb_buffer_get_user_data</a> <span class="c_punctuation">()</span>
327 </td>
328 </tr>
329 <tr>
330 <td class="function_type">
331 <span class="returnvalue">hb_glyph_info_t</span> *
332 </td>
333 <td class="function_name">
334 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-glyph-infos" title="hb_buffer_get_glyph_infos ()">hb_buffer_get_glyph_infos</a> <span class="c_punctuation">()</span>
335 </td>
336 </tr>
337 <tr>
338 <td class="function_type">
339 <a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t" title="hb_glyph_position_t"><span class="returnvalue">hb_glyph_position_t</span></a> *
340 </td>
341 <td class="function_name">
342 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-glyph-positions" title="hb_buffer_get_glyph_positions ()">hb_buffer_get_glyph_positions</a> <span class="c_punctuation">()</span>
343 </td>
344 </tr>
345 <tr>
346 <td class="function_type">
347 <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="returnvalue">hb_codepoint_t</span></a>
348 </td>
349 <td class="function_name">
350 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-invisible-glyph" title="hb_buffer_get_invisible_glyph ()">hb_buffer_get_invisible_glyph</a> <span class="c_punctuation">()</span>
351 </td>
352 </tr>
353 <tr>
354 <td class="function_type">
355 <span class="returnvalue">void</span>
356 </td>
357 <td class="function_name">
358 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-invisible-glyph" title="hb_buffer_set_invisible_glyph ()">hb_buffer_set_invisible_glyph</a> <span class="c_punctuation">()</span>
359 </td>
360 </tr>
361 <tr>
362 <td class="function_type">
363 <span class="returnvalue">void</span>
364 </td>
365 <td class="function_name">
366 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-replacement-codepoint" title="hb_buffer_set_replacement_codepoint ()">hb_buffer_set_replacement_codepoint</a> <span class="c_punctuation">()</span>
367 </td>
368 </tr>
369 <tr>
370 <td class="function_type">
371 <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="returnvalue">hb_codepoint_t</span></a>
372 </td>
373 <td class="function_name">
374 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-replacement-codepoint" title="hb_buffer_get_replacement_codepoint ()">hb_buffer_get_replacement_codepoint</a> <span class="c_punctuation">()</span>
375 </td>
376 </tr>
377 <tr>
378 <td class="function_type">
379 <span class="returnvalue">void</span>
380 </td>
381 <td class="function_name">
382 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-normalize-glyphs" title="hb_buffer_normalize_glyphs ()">hb_buffer_normalize_glyphs</a> <span class="c_punctuation">()</span>
383 </td>
384 </tr>
385 <tr>
386 <td class="function_type">
387 <span class="returnvalue">void</span>
388 </td>
389 <td class="function_name">
390 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-reverse" title="hb_buffer_reverse ()">hb_buffer_reverse</a> <span class="c_punctuation">()</span>
391 </td>
392 </tr>
393 <tr>
394 <td class="function_type">
395 <span class="returnvalue">void</span>
396 </td>
397 <td class="function_name">
398 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-reverse-range" title="hb_buffer_reverse_range ()">hb_buffer_reverse_range</a> <span class="c_punctuation">()</span>
399 </td>
400 </tr>
401 <tr>
402 <td class="function_type">
403 <span class="returnvalue">void</span>
404 </td>
405 <td class="function_name">
406 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-reverse-clusters" title="hb_buffer_reverse_clusters ()">hb_buffer_reverse_clusters</a> <span class="c_punctuation">()</span>
407 </td>
408 </tr>
409 <tr>
410 <td class="function_type">unsigned <span class="returnvalue">int</span>
411 </td>
412 <td class="function_name">
413 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-glyphs" title="hb_buffer_serialize_glyphs ()">hb_buffer_serialize_glyphs</a> <span class="c_punctuation">()</span>
414 </td>
415 </tr>
416 <tr>
417 <td class="function_type">
418 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
419 </td>
420 <td class="function_name">
421 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-deserialize-glyphs" title="hb_buffer_deserialize_glyphs ()">hb_buffer_deserialize_glyphs</a> <span class="c_punctuation">()</span>
422 </td>
423 </tr>
424 <tr>
425 <td class="function_type">
426 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t"><span class="returnvalue">hb_buffer_serialize_format_t</span></a>
427 </td>
428 <td class="function_name">
429 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-from-string" title="hb_buffer_serialize_format_from_string ()">hb_buffer_serialize_format_from_string</a> <span class="c_punctuation">()</span>
430 </td>
431 </tr>
432 <tr>
433 <td class="function_type">const <span class="returnvalue">char</span> *
434 </td>
435 <td class="function_name">
436 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-to-string" title="hb_buffer_serialize_format_to_string ()">hb_buffer_serialize_format_to_string</a> <span class="c_punctuation">()</span>
437 </td>
438 </tr>
439 <tr>
440 <td class="function_type">const <span class="returnvalue">char</span> **
441 </td>
442 <td class="function_name">
443 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-list-formats" title="hb_buffer_serialize_list_formats ()">hb_buffer_serialize_list_formats</a> <span class="c_punctuation">()</span>
444 </td>
445 </tr>
446 <tr>
447 <td class="function_type">
448 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
449 </td>
450 <td class="function_name">
451 <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-equal" title="hb_segment_properties_equal ()">hb_segment_properties_equal</a> <span class="c_punctuation">()</span>
452 </td>
453 </tr>
454 <tr>
455 <td class="function_type">unsigned <span class="returnvalue">int</span>
456 </td>
457 <td class="function_name">
458 <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-hash" title="hb_segment_properties_hash ()">hb_segment_properties_hash</a> <span class="c_punctuation">()</span>
459 </td>
460 </tr>
461 <tr>
462 <td class="function_type">
463 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-diff-flags-t" title="enum hb_buffer_diff_flags_t"><span class="returnvalue">hb_buffer_diff_flags_t</span></a>
464 </td>
465 <td class="function_name">
466 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-diff" title="hb_buffer_diff ()">hb_buffer_diff</a> <span class="c_punctuation">()</span>
467 </td>
468 </tr>
469 <tr>
470 <td class="function_type">
471 <span class="returnvalue">void</span>
472 </td>
473 <td class="function_name">
474 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-message-func" title="hb_buffer_set_message_func ()">hb_buffer_set_message_func</a> <span class="c_punctuation">()</span>
475 </td>
476 </tr>
477 <tr>
478 <td class="function_type">
479 <a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-flags-t" title="enum hb_glyph_flags_t"><span class="returnvalue">hb_glyph_flags_t</span></a>
480 </td>
481 <td class="function_name">
482 <a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-info-get-glyph-flags" title="hb_glyph_info_get_glyph_flags ()">hb_glyph_info_get_glyph_flags</a> <span class="c_punctuation">()</span>
483 </td>
484 </tr>
485 <tr>
486 <td class="function_type">
487 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
488 </td>
489 <td class="function_name">
490 <span class="c_punctuation">(</span><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-message-func-t" title="hb_buffer_message_func_t ()">*hb_buffer_message_func_t</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
491 </td>
492 </tr>
493 </tbody>
494 </table></div>
495 </div>
496 <div class="refsect1">
497 <a name="harfbuzz-hb-buffer.other"></a><h2>Types and Values</h2>
498 <div class="informaltable"><table class="informaltable" width="100%" border="0">
499 <colgroup>
500 <col width="150px" class="other_proto_type">
501 <col class="other_proto_name">
502 </colgroup>
503 <tbody>
504 <tr>
505 <td class="define_keyword">#define</td>
506 <td class="function_name"><a class="link" href="harfbuzz-hb-buffer.html#HB-SEGMENT-PROPERTIES-DEFAULT:CAPS" title="HB_SEGMENT_PROPERTIES_DEFAULT">HB_SEGMENT_PROPERTIES_DEFAULT</a></td>
507 </tr>
508 <tr>
509 <td class="define_keyword">#define</td>
510 <td class="function_name"><a class="link" href="harfbuzz-hb-buffer.html#HB-BUFFER-REPLACEMENT-CODEPOINT-DEFAULT:CAPS" title="HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT">HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT</a></td>
511 </tr>
512 <tr>
513 <td class="typedef_keyword">typedef</td>
514 <td class="function_name"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t">hb_buffer_t</a></td>
515 </tr>
516 <tr>
517 <td class="datatype_keyword">enum</td>
518 <td class="function_name"><a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-flags-t" title="enum hb_glyph_flags_t">hb_glyph_flags_t</a></td>
519 </tr>
520 <tr>
521 <td class="datatype_keyword"> </td>
522 <td class="function_name"><a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t" title="hb_glyph_position_t">hb_glyph_position_t</a></td>
523 </tr>
524 <tr>
525 <td class="datatype_keyword">enum</td>
526 <td class="function_name"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-content-type-t" title="enum hb_buffer_content_type_t">hb_buffer_content_type_t</a></td>
527 </tr>
528 <tr>
529 <td class="datatype_keyword">enum</td>
530 <td class="function_name"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-flags-t" title="enum hb_buffer_flags_t">hb_buffer_flags_t</a></td>
531 </tr>
532 <tr>
533 <td class="datatype_keyword">enum</td>
534 <td class="function_name"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-cluster-level-t" title="enum hb_buffer_cluster_level_t">hb_buffer_cluster_level_t</a></td>
535 </tr>
536 <tr>
537 <td class="datatype_keyword"> </td>
538 <td class="function_name"><a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t">hb_segment_properties_t</a></td>
539 </tr>
540 <tr>
541 <td class="datatype_keyword">enum</td>
542 <td class="function_name"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t">hb_buffer_serialize_format_t</a></td>
543 </tr>
544 <tr>
545 <td class="datatype_keyword">enum</td>
546 <td class="function_name"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-flags-t" title="enum hb_buffer_serialize_flags_t">hb_buffer_serialize_flags_t</a></td>
547 </tr>
548 <tr>
549 <td class="datatype_keyword">enum</td>
550 <td class="function_name"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-diff-flags-t" title="enum hb_buffer_diff_flags_t">hb_buffer_diff_flags_t</a></td>
551 </tr>
552 </tbody>
553 </table></div>
554 </div>
555 <div class="refsect1">
556 <a name="harfbuzz-hb-buffer.includes"></a><h2>Includes</h2>
557 <pre class="synopsis">#include &lt;hb.h&gt;
558 </pre>
559 </div>
560 <div class="refsect1">
561 <a name="harfbuzz-hb-buffer.description"></a><h2>Description</h2>
562 <p>Buffers serve dual role in HarfBuzz; they hold the input characters that are
563 passed to <a class="link" href="harfbuzz-hb-shape.html#hb-shape" title="hb_shape ()"><code class="function">hb_shape()</code></a>, and after shaping they hold the output glyphs.</p>
564 </div>
565 <div class="refsect1">
566 <a name="harfbuzz-hb-buffer.functions_details"></a><h2>Functions</h2>
567 <div class="refsect2">
568 <a name="hb-buffer-create"></a><h3>hb_buffer_create ()</h3>
569 <pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="returnvalue">hb_buffer_t</span></a> *
570 hb_buffer_create (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
571 <p>Creates a new <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> with all properties to defaults.</p>
572 <p><span class="annotation">[Xconstructor]</span></p>
573 <div class="refsect3">
574 <a name="hb-buffer-create.returns"></a><h4>Returns</h4>
575 <p>A newly allocated <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> with a reference count of 1. The initial
576 reference count should be released with <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-destroy" title="hb_buffer_destroy ()"><code class="function">hb_buffer_destroy()</code></a> when you are done
577 using the <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>. This function never returns <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. If memory cannot
578 be allocated, a special <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> object will be returned on which
579 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-allocation-successful" title="hb_buffer_allocation_successful ()"><code class="function">hb_buffer_allocation_successful()</code></a> returns <code class="literal">false</code>. </p>
580 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
581 </div>
582 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
583 </div>
584 <hr>
585 <div class="refsect2">
586 <a name="hb-buffer-reference"></a><h3>hb_buffer_reference ()</h3>
587 <pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="returnvalue">hb_buffer_t</span></a> *
588 hb_buffer_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
589 <p>Increases the reference count on <em class="parameter"><code>buffer</code></em>
590  by one. This prevents <em class="parameter"><code>buffer</code></em>
591  from
592 being destroyed until a matching call to <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-destroy" title="hb_buffer_destroy ()"><code class="function">hb_buffer_destroy()</code></a> is made.</p>
593 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
594 <div class="refsect3">
595 <a name="hb-buffer-reference.parameters"></a><h4>Parameters</h4>
596 <div class="informaltable"><table class="informaltable" width="100%" border="0">
597 <colgroup>
598 <col width="150px" class="parameters_name">
599 <col class="parameters_description">
600 <col width="200px" class="parameters_annotations">
601 </colgroup>
602 <tbody><tr>
603 <td class="parameter_name"><p>buffer</p></td>
604 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
605 <td class="parameter_annotations"> </td>
606 </tr></tbody>
607 </table></div>
608 </div>
609 <div class="refsect3">
610 <a name="hb-buffer-reference.returns"></a><h4>Returns</h4>
611 <p>The referenced <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>. </p>
612 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
613 </div>
614 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
615 </div>
616 <hr>
617 <div class="refsect2">
618 <a name="hb-buffer-get-empty"></a><h3>hb_buffer_get_empty ()</h3>
619 <pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="returnvalue">hb_buffer_t</span></a> *
620 hb_buffer_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
621 <div class="refsect3">
622 <a name="hb-buffer-get-empty.returns"></a><h4>Returns</h4>
623 <p>. </p>
624 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
625 </div>
626 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
627 </div>
628 <hr>
629 <div class="refsect2">
630 <a name="hb-buffer-destroy"></a><h3>hb_buffer_destroy ()</h3>
631 <pre class="programlisting"><span class="returnvalue">void</span>
632 hb_buffer_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
633 <p>Deallocate the <em class="parameter"><code>buffer</code></em>
634 .
635 Decreases the reference count on <em class="parameter"><code>buffer</code></em>
636  by one. If the result is zero, then
637 <em class="parameter"><code>buffer</code></em>
638  and all associated resources are freed. See <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-reference" title="hb_buffer_reference ()"><code class="function">hb_buffer_reference()</code></a>.</p>
639 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
640 <div class="refsect3">
641 <a name="hb-buffer-destroy.parameters"></a><h4>Parameters</h4>
642 <div class="informaltable"><table class="informaltable" width="100%" border="0">
643 <colgroup>
644 <col width="150px" class="parameters_name">
645 <col class="parameters_description">
646 <col width="200px" class="parameters_annotations">
647 </colgroup>
648 <tbody><tr>
649 <td class="parameter_name"><p>buffer</p></td>
650 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
651 <td class="parameter_annotations"> </td>
652 </tr></tbody>
653 </table></div>
654 </div>
655 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
656 </div>
657 <hr>
658 <div class="refsect2">
659 <a name="hb-buffer-reset"></a><h3>hb_buffer_reset ()</h3>
660 <pre class="programlisting"><span class="returnvalue">void</span>
661 hb_buffer_reset (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
662 <p>Resets the buffer to its initial status, as if it was just newly created
663 with <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-create" title="hb_buffer_create ()"><code class="function">hb_buffer_create()</code></a>.</p>
664 <div class="refsect3">
665 <a name="hb-buffer-reset.parameters"></a><h4>Parameters</h4>
666 <div class="informaltable"><table class="informaltable" width="100%" border="0">
667 <colgroup>
668 <col width="150px" class="parameters_name">
669 <col class="parameters_description">
670 <col width="200px" class="parameters_annotations">
671 </colgroup>
672 <tbody><tr>
673 <td class="parameter_name"><p>buffer</p></td>
674 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
675 <td class="parameter_annotations"> </td>
676 </tr></tbody>
677 </table></div>
678 </div>
679 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
680 </div>
681 <hr>
682 <div class="refsect2">
683 <a name="hb-buffer-clear-contents"></a><h3>hb_buffer_clear_contents ()</h3>
684 <pre class="programlisting"><span class="returnvalue">void</span>
685 hb_buffer_clear_contents (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
686 <p>Similar to <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-reset" title="hb_buffer_reset ()"><code class="function">hb_buffer_reset()</code></a>, but does not clear the Unicode functions and
687 the replacement code point.</p>
688 <div class="refsect3">
689 <a name="hb-buffer-clear-contents.parameters"></a><h4>Parameters</h4>
690 <div class="informaltable"><table class="informaltable" width="100%" border="0">
691 <colgroup>
692 <col width="150px" class="parameters_name">
693 <col class="parameters_description">
694 <col width="200px" class="parameters_annotations">
695 </colgroup>
696 <tbody><tr>
697 <td class="parameter_name"><p>buffer</p></td>
698 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
699 <td class="parameter_annotations"> </td>
700 </tr></tbody>
701 </table></div>
702 </div>
703 <p class="since">Since: <a class="link" href="api-index-0-9-11.html#api-index-0.9.11">0.9.11</a></p>
704 </div>
705 <hr>
706 <div class="refsect2">
707 <a name="hb-buffer-pre-allocate"></a><h3>hb_buffer_pre_allocate ()</h3>
708 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
709 hb_buffer_pre_allocate (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
710                         <em class="parameter"><code>unsigned <span class="type">int</span> size</code></em>);</pre>
711 <p>Pre allocates memory for <em class="parameter"><code>buffer</code></em>
712  to fit at least <em class="parameter"><code>size</code></em>
713  number of items.</p>
714 <div class="refsect3">
715 <a name="hb-buffer-pre-allocate.parameters"></a><h4>Parameters</h4>
716 <div class="informaltable"><table class="informaltable" width="100%" border="0">
717 <colgroup>
718 <col width="150px" class="parameters_name">
719 <col class="parameters_description">
720 <col width="200px" class="parameters_annotations">
721 </colgroup>
722 <tbody>
723 <tr>
724 <td class="parameter_name"><p>buffer</p></td>
725 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
726 <td class="parameter_annotations"> </td>
727 </tr>
728 <tr>
729 <td class="parameter_name"><p>size</p></td>
730 <td class="parameter_description"><p>number of items to pre allocate.</p></td>
731 <td class="parameter_annotations"> </td>
732 </tr>
733 </tbody>
734 </table></div>
735 </div>
736 <div class="refsect3">
737 <a name="hb-buffer-pre-allocate.returns"></a><h4>Returns</h4>
738 <p><code class="literal">true</code> if <em class="parameter"><code>buffer</code></em>
739 memory allocation succeeded, <code class="literal">false</code> otherwise.</p>
740 </div>
741 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
742 </div>
743 <hr>
744 <div class="refsect2">
745 <a name="hb-buffer-allocation-successful"></a><h3>hb_buffer_allocation_successful ()</h3>
746 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
747 hb_buffer_allocation_successful (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
748 <p>Check if allocating memory for the buffer succeeded.</p>
749 <div class="refsect3">
750 <a name="hb-buffer-allocation-successful.parameters"></a><h4>Parameters</h4>
751 <div class="informaltable"><table class="informaltable" width="100%" border="0">
752 <colgroup>
753 <col width="150px" class="parameters_name">
754 <col class="parameters_description">
755 <col width="200px" class="parameters_annotations">
756 </colgroup>
757 <tbody><tr>
758 <td class="parameter_name"><p>buffer</p></td>
759 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
760 <td class="parameter_annotations"> </td>
761 </tr></tbody>
762 </table></div>
763 </div>
764 <div class="refsect3">
765 <a name="hb-buffer-allocation-successful.returns"></a><h4>Returns</h4>
766 <p><code class="literal">true</code> if <em class="parameter"><code>buffer</code></em>
767 memory allocation succeeded, <code class="literal">false</code> otherwise.</p>
768 </div>
769 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
770 </div>
771 <hr>
772 <div class="refsect2">
773 <a name="hb-buffer-add"></a><h3>hb_buffer_add ()</h3>
774 <pre class="programlisting"><span class="returnvalue">void</span>
775 hb_buffer_add (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
776                <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> codepoint</code></em>,
777                <em class="parameter"><code>unsigned <span class="type">int</span> cluster</code></em>);</pre>
778 <p>Appends a character with the Unicode value of <em class="parameter"><code>codepoint</code></em>
779  to <em class="parameter"><code>buffer</code></em>
780 , and
781 gives it the initial cluster value of <em class="parameter"><code>cluster</code></em>
782 . Clusters can be any thing
783 the client wants, they are usually used to refer to the index of the
784 character in the input text stream and are output in
785 <span class="type">hb_glyph_info_t.cluster</span> field.</p>
786 <p>This function does not check the validity of <em class="parameter"><code>codepoint</code></em>
787 , it is up to the
788 caller to ensure it is a valid Unicode code point.</p>
789 <div class="refsect3">
790 <a name="hb-buffer-add.parameters"></a><h4>Parameters</h4>
791 <div class="informaltable"><table class="informaltable" width="100%" border="0">
792 <colgroup>
793 <col width="150px" class="parameters_name">
794 <col class="parameters_description">
795 <col width="200px" class="parameters_annotations">
796 </colgroup>
797 <tbody>
798 <tr>
799 <td class="parameter_name"><p>buffer</p></td>
800 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
801 <td class="parameter_annotations"> </td>
802 </tr>
803 <tr>
804 <td class="parameter_name"><p>codepoint</p></td>
805 <td class="parameter_description"><p>a Unicode code point.</p></td>
806 <td class="parameter_annotations"> </td>
807 </tr>
808 <tr>
809 <td class="parameter_name"><p>cluster</p></td>
810 <td class="parameter_description"><p>the cluster value of <em class="parameter"><code>codepoint</code></em>
811 .</p></td>
812 <td class="parameter_annotations"> </td>
813 </tr>
814 </tbody>
815 </table></div>
816 </div>
817 <p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
818 </div>
819 <hr>
820 <div class="refsect2">
821 <a name="hb-buffer-add-codepoints"></a><h3>hb_buffer_add_codepoints ()</h3>
822 <pre class="programlisting"><span class="returnvalue">void</span>
823 hb_buffer_add_codepoints (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
824                           <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *text</code></em>,
825                           <em class="parameter"><code><span class="type">int</span> text_length</code></em>,
826                           <em class="parameter"><code>unsigned <span class="type">int</span> item_offset</code></em>,
827                           <em class="parameter"><code><span class="type">int</span> item_length</code></em>);</pre>
828 <p>Appends characters from <em class="parameter"><code>text</code></em>
829  array to <em class="parameter"><code>buffer</code></em>
830 . The <em class="parameter"><code>item_offset</code></em>
831  is the
832 position of the first character from <em class="parameter"><code>text</code></em>
833  that will be appended, and
834 <em class="parameter"><code>item_length</code></em>
835  is the number of character. When shaping part of a larger text
836 (e.g. a run of text from a paragraph), instead of passing just the substring
837 corresponding to the run, it is preferable to pass the whole
838 paragraph and specify the run start and length as <em class="parameter"><code>item_offset</code></em>
839  and
840 <em class="parameter"><code>item_length</code></em>
841 , respectively, to give HarfBuzz the full context to be able,
842 for example, to do cross-run Arabic shaping or properly handle combining
843 marks at stat of run.</p>
844 <p>This function does not check the validity of <em class="parameter"><code>text</code></em>
845 , it is up to the caller
846 to ensure it contains a valid Unicode code points.</p>
847 <div class="refsect3">
848 <a name="hb-buffer-add-codepoints.parameters"></a><h4>Parameters</h4>
849 <div class="informaltable"><table class="informaltable" width="100%" border="0">
850 <colgroup>
851 <col width="150px" class="parameters_name">
852 <col class="parameters_description">
853 <col width="200px" class="parameters_annotations">
854 </colgroup>
855 <tbody>
856 <tr>
857 <td class="parameter_name"><p>buffer</p></td>
858 <td class="parameter_description"><p>a <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> to append characters to.</p></td>
859 <td class="parameter_annotations"> </td>
860 </tr>
861 <tr>
862 <td class="parameter_name"><p>text</p></td>
863 <td class="parameter_description"><p>an array of Unicode code points to append. </p></td>
864 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=text_length]</span></td>
865 </tr>
866 <tr>
867 <td class="parameter_name"><p>text_length</p></td>
868 <td class="parameter_description"><p>the length of the <em class="parameter"><code>text</code></em>
869 , or -1 if it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated.</p></td>
870 <td class="parameter_annotations"> </td>
871 </tr>
872 <tr>
873 <td class="parameter_name"><p>item_offset</p></td>
874 <td class="parameter_description"><p>the offset of the first code point to add to the <em class="parameter"><code>buffer</code></em>
875 .</p></td>
876 <td class="parameter_annotations"> </td>
877 </tr>
878 <tr>
879 <td class="parameter_name"><p>item_length</p></td>
880 <td class="parameter_description"><p>the number of code points to add to the <em class="parameter"><code>buffer</code></em>
881 , or -1 for the
882 end of <em class="parameter"><code>text</code></em>
883 (assuming it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated).</p></td>
884 <td class="parameter_annotations"> </td>
885 </tr>
886 </tbody>
887 </table></div>
888 </div>
889 <p class="since">Since: <a class="link" href="api-index-0-9-31.html#api-index-0.9.31">0.9.31</a></p>
890 </div>
891 <hr>
892 <div class="refsect2">
893 <a name="hb-buffer-add-utf32"></a><h3>hb_buffer_add_utf32 ()</h3>
894 <pre class="programlisting"><span class="returnvalue">void</span>
895 hb_buffer_add_utf32 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
896                      <em class="parameter"><code>const <span class="type">uint32_t</span> *text</code></em>,
897                      <em class="parameter"><code><span class="type">int</span> text_length</code></em>,
898                      <em class="parameter"><code>unsigned <span class="type">int</span> item_offset</code></em>,
899                      <em class="parameter"><code><span class="type">int</span> item_length</code></em>);</pre>
900 <p>See <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-add-codepoints" title="hb_buffer_add_codepoints ()"><code class="function">hb_buffer_add_codepoints()</code></a>.</p>
901 <p>Replaces invalid UTF-32 characters with the <em class="parameter"><code>buffer</code></em>
902  replacement code point,
903 see <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-replacement-codepoint" title="hb_buffer_set_replacement_codepoint ()"><code class="function">hb_buffer_set_replacement_codepoint()</code></a>.</p>
904 <div class="refsect3">
905 <a name="hb-buffer-add-utf32.parameters"></a><h4>Parameters</h4>
906 <div class="informaltable"><table class="informaltable" width="100%" border="0">
907 <colgroup>
908 <col width="150px" class="parameters_name">
909 <col class="parameters_description">
910 <col width="200px" class="parameters_annotations">
911 </colgroup>
912 <tbody>
913 <tr>
914 <td class="parameter_name"><p>buffer</p></td>
915 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
916 <td class="parameter_annotations"> </td>
917 </tr>
918 <tr>
919 <td class="parameter_name"><p>text</p></td>
920 <td class="parameter_description"><p>an array of UTF-32 characters to append. </p></td>
921 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=text_length]</span></td>
922 </tr>
923 <tr>
924 <td class="parameter_name"><p>text_length</p></td>
925 <td class="parameter_description"><p>the length of the <em class="parameter"><code>text</code></em>
926 , or -1 if it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated.</p></td>
927 <td class="parameter_annotations"> </td>
928 </tr>
929 <tr>
930 <td class="parameter_name"><p>item_offset</p></td>
931 <td class="parameter_description"><p>the offset of the first character to add to the <em class="parameter"><code>buffer</code></em>
932 .</p></td>
933 <td class="parameter_annotations"> </td>
934 </tr>
935 <tr>
936 <td class="parameter_name"><p>item_length</p></td>
937 <td class="parameter_description"><p>the number of characters to add to the <em class="parameter"><code>buffer</code></em>
938 , or -1 for the
939 end of <em class="parameter"><code>text</code></em>
940 (assuming it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated).</p></td>
941 <td class="parameter_annotations"> </td>
942 </tr>
943 </tbody>
944 </table></div>
945 </div>
946 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
947 </div>
948 <hr>
949 <div class="refsect2">
950 <a name="hb-buffer-add-utf16"></a><h3>hb_buffer_add_utf16 ()</h3>
951 <pre class="programlisting"><span class="returnvalue">void</span>
952 hb_buffer_add_utf16 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
953                      <em class="parameter"><code>const <span class="type">uint16_t</span> *text</code></em>,
954                      <em class="parameter"><code><span class="type">int</span> text_length</code></em>,
955                      <em class="parameter"><code>unsigned <span class="type">int</span> item_offset</code></em>,
956                      <em class="parameter"><code><span class="type">int</span> item_length</code></em>);</pre>
957 <p>See <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-add-codepoints" title="hb_buffer_add_codepoints ()"><code class="function">hb_buffer_add_codepoints()</code></a>.</p>
958 <p>Replaces invalid UTF-16 characters with the <em class="parameter"><code>buffer</code></em>
959  replacement code point,
960 see <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-replacement-codepoint" title="hb_buffer_set_replacement_codepoint ()"><code class="function">hb_buffer_set_replacement_codepoint()</code></a>.</p>
961 <div class="refsect3">
962 <a name="hb-buffer-add-utf16.parameters"></a><h4>Parameters</h4>
963 <div class="informaltable"><table class="informaltable" width="100%" border="0">
964 <colgroup>
965 <col width="150px" class="parameters_name">
966 <col class="parameters_description">
967 <col width="200px" class="parameters_annotations">
968 </colgroup>
969 <tbody>
970 <tr>
971 <td class="parameter_name"><p>buffer</p></td>
972 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
973 <td class="parameter_annotations"> </td>
974 </tr>
975 <tr>
976 <td class="parameter_name"><p>text</p></td>
977 <td class="parameter_description"><p>an array of UTF-16 characters to append. </p></td>
978 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=text_length]</span></td>
979 </tr>
980 <tr>
981 <td class="parameter_name"><p>text_length</p></td>
982 <td class="parameter_description"><p>the length of the <em class="parameter"><code>text</code></em>
983 , or -1 if it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated.</p></td>
984 <td class="parameter_annotations"> </td>
985 </tr>
986 <tr>
987 <td class="parameter_name"><p>item_offset</p></td>
988 <td class="parameter_description"><p>the offset of the first character to add to the <em class="parameter"><code>buffer</code></em>
989 .</p></td>
990 <td class="parameter_annotations"> </td>
991 </tr>
992 <tr>
993 <td class="parameter_name"><p>item_length</p></td>
994 <td class="parameter_description"><p>the number of characters to add to the <em class="parameter"><code>buffer</code></em>
995 , or -1 for the
996 end of <em class="parameter"><code>text</code></em>
997 (assuming it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated).</p></td>
998 <td class="parameter_annotations"> </td>
999 </tr>
1000 </tbody>
1001 </table></div>
1002 </div>
1003 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
1004 </div>
1005 <hr>
1006 <div class="refsect2">
1007 <a name="hb-buffer-add-utf8"></a><h3>hb_buffer_add_utf8 ()</h3>
1008 <pre class="programlisting"><span class="returnvalue">void</span>
1009 hb_buffer_add_utf8 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
1010                     <em class="parameter"><code>const <span class="type">char</span> *text</code></em>,
1011                     <em class="parameter"><code><span class="type">int</span> text_length</code></em>,
1012                     <em class="parameter"><code>unsigned <span class="type">int</span> item_offset</code></em>,
1013                     <em class="parameter"><code><span class="type">int</span> item_length</code></em>);</pre>
1014 <p>See <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-add-codepoints" title="hb_buffer_add_codepoints ()"><code class="function">hb_buffer_add_codepoints()</code></a>.</p>
1015 <p>Replaces invalid UTF-8 characters with the <em class="parameter"><code>buffer</code></em>
1016  replacement code point,
1017 see <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-replacement-codepoint" title="hb_buffer_set_replacement_codepoint ()"><code class="function">hb_buffer_set_replacement_codepoint()</code></a>.</p>
1018 <div class="refsect3">
1019 <a name="hb-buffer-add-utf8.parameters"></a><h4>Parameters</h4>
1020 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1021 <colgroup>
1022 <col width="150px" class="parameters_name">
1023 <col class="parameters_description">
1024 <col width="200px" class="parameters_annotations">
1025 </colgroup>
1026 <tbody>
1027 <tr>
1028 <td class="parameter_name"><p>buffer</p></td>
1029 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1030 <td class="parameter_annotations"> </td>
1031 </tr>
1032 <tr>
1033 <td class="parameter_name"><p>text</p></td>
1034 <td class="parameter_description"><p>an array of UTF-8
1035 characters to append. </p></td>
1036 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=text_length][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> uint8_t]</span></td>
1037 </tr>
1038 <tr>
1039 <td class="parameter_name"><p>text_length</p></td>
1040 <td class="parameter_description"><p>the length of the <em class="parameter"><code>text</code></em>
1041 , or -1 if it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated.</p></td>
1042 <td class="parameter_annotations"> </td>
1043 </tr>
1044 <tr>
1045 <td class="parameter_name"><p>item_offset</p></td>
1046 <td class="parameter_description"><p>the offset of the first character to add to the <em class="parameter"><code>buffer</code></em>
1047 .</p></td>
1048 <td class="parameter_annotations"> </td>
1049 </tr>
1050 <tr>
1051 <td class="parameter_name"><p>item_length</p></td>
1052 <td class="parameter_description"><p>the number of characters to add to the <em class="parameter"><code>buffer</code></em>
1053 , or -1 for the
1054 end of <em class="parameter"><code>text</code></em>
1055 (assuming it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated).</p></td>
1056 <td class="parameter_annotations"> </td>
1057 </tr>
1058 </tbody>
1059 </table></div>
1060 </div>
1061 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
1062 </div>
1063 <hr>
1064 <div class="refsect2">
1065 <a name="hb-buffer-add-latin1"></a><h3>hb_buffer_add_latin1 ()</h3>
1066 <pre class="programlisting"><span class="returnvalue">void</span>
1067 hb_buffer_add_latin1 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
1068                       <em class="parameter"><code>const <span class="type">uint8_t</span> *text</code></em>,
1069                       <em class="parameter"><code><span class="type">int</span> text_length</code></em>,
1070                       <em class="parameter"><code>unsigned <span class="type">int</span> item_offset</code></em>,
1071                       <em class="parameter"><code><span class="type">int</span> item_length</code></em>);</pre>
1072 <p>Similar to <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-add-codepoints" title="hb_buffer_add_codepoints ()"><code class="function">hb_buffer_add_codepoints()</code></a>, but allows only access to first 256
1073 Unicode code points that can fit in 8-bit strings.</p>
1074 <div class="note">Has nothing to do with non-Unicode Latin-1 encoding.</div>
1075 <div class="refsect3">
1076 <a name="hb-buffer-add-latin1.parameters"></a><h4>Parameters</h4>
1077 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1078 <colgroup>
1079 <col width="150px" class="parameters_name">
1080 <col class="parameters_description">
1081 <col width="200px" class="parameters_annotations">
1082 </colgroup>
1083 <tbody>
1084 <tr>
1085 <td class="parameter_name"><p>buffer</p></td>
1086 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1087 <td class="parameter_annotations"> </td>
1088 </tr>
1089 <tr>
1090 <td class="parameter_name"><p>text</p></td>
1091 <td class="parameter_description"><p>an array of UTF-8
1092 characters to append. </p></td>
1093 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=text_length][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> uint8_t]</span></td>
1094 </tr>
1095 <tr>
1096 <td class="parameter_name"><p>text_length</p></td>
1097 <td class="parameter_description"><p>the length of the <em class="parameter"><code>text</code></em>
1098 , or -1 if it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated.</p></td>
1099 <td class="parameter_annotations"> </td>
1100 </tr>
1101 <tr>
1102 <td class="parameter_name"><p>item_offset</p></td>
1103 <td class="parameter_description"><p>the offset of the first character to add to the <em class="parameter"><code>buffer</code></em>
1104 .</p></td>
1105 <td class="parameter_annotations"> </td>
1106 </tr>
1107 <tr>
1108 <td class="parameter_name"><p>item_length</p></td>
1109 <td class="parameter_description"><p>the number of characters to add to the <em class="parameter"><code>buffer</code></em>
1110 , or -1 for the
1111 end of <em class="parameter"><code>text</code></em>
1112 (assuming it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated).</p></td>
1113 <td class="parameter_annotations"> </td>
1114 </tr>
1115 </tbody>
1116 </table></div>
1117 </div>
1118 <p class="since">Since: <a class="link" href="api-index-0-9-39.html#api-index-0.9.39">0.9.39</a></p>
1119 </div>
1120 <hr>
1121 <div class="refsect2">
1122 <a name="hb-buffer-append"></a><h3>hb_buffer_append ()</h3>
1123 <pre class="programlisting"><span class="returnvalue">void</span>
1124 hb_buffer_append (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
1125                   <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *source</code></em>,
1126                   <em class="parameter"><code>unsigned <span class="type">int</span> start</code></em>,
1127                   <em class="parameter"><code>unsigned <span class="type">int</span> end</code></em>);</pre>
1128 <p>Append (part of) contents of another buffer to this buffer.</p>
1129 <div class="refsect3">
1130 <a name="hb-buffer-append.parameters"></a><h4>Parameters</h4>
1131 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1132 <colgroup>
1133 <col width="150px" class="parameters_name">
1134 <col class="parameters_description">
1135 <col width="200px" class="parameters_annotations">
1136 </colgroup>
1137 <tbody>
1138 <tr>
1139 <td class="parameter_name"><p>buffer</p></td>
1140 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1141 <td class="parameter_annotations"> </td>
1142 </tr>
1143 <tr>
1144 <td class="parameter_name"><p>source</p></td>
1145 <td class="parameter_description"><p>source <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1146 <td class="parameter_annotations"> </td>
1147 </tr>
1148 <tr>
1149 <td class="parameter_name"><p>start</p></td>
1150 <td class="parameter_description"><p>start index into source buffer to copy.  Use 0 to copy from start of buffer.</p></td>
1151 <td class="parameter_annotations"> </td>
1152 </tr>
1153 <tr>
1154 <td class="parameter_name"><p>end</p></td>
1155 <td class="parameter_description"><p>end index into source buffer to copy.  Use <em class="parameter"><code>HB_FEATURE_GLOBAL_END</code></em>
1156 to copy to end of buffer.</p></td>
1157 <td class="parameter_annotations"> </td>
1158 </tr>
1159 </tbody>
1160 </table></div>
1161 </div>
1162 <p class="since">Since: <a class="link" href="api-index-1-5-0.html#api-index-1.5.0">1.5.0</a></p>
1163 </div>
1164 <hr>
1165 <div class="refsect2">
1166 <a name="hb-buffer-set-content-type"></a><h3>hb_buffer_set_content_type ()</h3>
1167 <pre class="programlisting"><span class="returnvalue">void</span>
1168 hb_buffer_set_content_type (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
1169                             <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-content-type-t" title="enum hb_buffer_content_type_t"><span class="type">hb_buffer_content_type_t</span></a> content_type</code></em>);</pre>
1170 <p>Sets the type of <em class="parameter"><code>buffer</code></em>
1171  contents, buffers are either empty, contain
1172 characters (before shaping) or glyphs (the result of shaping).</p>
1173 <div class="refsect3">
1174 <a name="hb-buffer-set-content-type.parameters"></a><h4>Parameters</h4>
1175 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1176 <colgroup>
1177 <col width="150px" class="parameters_name">
1178 <col class="parameters_description">
1179 <col width="200px" class="parameters_annotations">
1180 </colgroup>
1181 <tbody>
1182 <tr>
1183 <td class="parameter_name"><p>buffer</p></td>
1184 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1185 <td class="parameter_annotations"> </td>
1186 </tr>
1187 <tr>
1188 <td class="parameter_name"><p>content_type</p></td>
1189 <td class="parameter_description"><p>the type of buffer contents to set</p></td>
1190 <td class="parameter_annotations"> </td>
1191 </tr>
1192 </tbody>
1193 </table></div>
1194 </div>
1195 <p class="since">Since: <a class="link" href="api-index-0-9-5.html#api-index-0.9.5">0.9.5</a></p>
1196 </div>
1197 <hr>
1198 <div class="refsect2">
1199 <a name="hb-buffer-get-content-type"></a><h3>hb_buffer_get_content_type ()</h3>
1200 <pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-content-type-t" title="enum hb_buffer_content_type_t"><span class="returnvalue">hb_buffer_content_type_t</span></a>
1201 hb_buffer_get_content_type (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
1202 <p>see <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-content-type" title="hb_buffer_set_content_type ()"><code class="function">hb_buffer_set_content_type()</code></a>.</p>
1203 <div class="refsect3">
1204 <a name="hb-buffer-get-content-type.parameters"></a><h4>Parameters</h4>
1205 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1206 <colgroup>
1207 <col width="150px" class="parameters_name">
1208 <col class="parameters_description">
1209 <col width="200px" class="parameters_annotations">
1210 </colgroup>
1211 <tbody><tr>
1212 <td class="parameter_name"><p>buffer</p></td>
1213 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1214 <td class="parameter_annotations"> </td>
1215 </tr></tbody>
1216 </table></div>
1217 </div>
1218 <div class="refsect3">
1219 <a name="hb-buffer-get-content-type.returns"></a><h4>Returns</h4>
1220 <p>The type of <em class="parameter"><code>buffer</code></em>
1221 contents.</p>
1222 </div>
1223 <p class="since">Since: <a class="link" href="api-index-0-9-5.html#api-index-0.9.5">0.9.5</a></p>
1224 </div>
1225 <hr>
1226 <div class="refsect2">
1227 <a name="hb-buffer-set-direction"></a><h3>hb_buffer_set_direction ()</h3>
1228 <pre class="programlisting"><span class="returnvalue">void</span>
1229 hb_buffer_set_direction (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
1230                          <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>);</pre>
1231 <p>Set the text flow direction of the buffer. No shaping can happen without
1232 setting <em class="parameter"><code>buffer</code></em>
1233  direction, and it controls the visual direction for the
1234 output glyphs; for RTL direction the glyphs will be reversed. Many layout
1235 features depend on the proper setting of the direction, for example,
1236 reversing RTL text before shaping, then shaping with LTR direction is not
1237 the same as keeping the text in logical order and shaping with RTL
1238 direction.</p>
1239 <div class="refsect3">
1240 <a name="hb-buffer-set-direction.parameters"></a><h4>Parameters</h4>
1241 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1242 <colgroup>
1243 <col width="150px" class="parameters_name">
1244 <col class="parameters_description">
1245 <col width="200px" class="parameters_annotations">
1246 </colgroup>
1247 <tbody>
1248 <tr>
1249 <td class="parameter_name"><p>buffer</p></td>
1250 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1251 <td class="parameter_annotations"> </td>
1252 </tr>
1253 <tr>
1254 <td class="parameter_name"><p>direction</p></td>
1255 <td class="parameter_description"><p>the <a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> of the <em class="parameter"><code>buffer</code></em>
1256 </p></td>
1257 <td class="parameter_annotations"> </td>
1258 </tr>
1259 </tbody>
1260 </table></div>
1261 </div>
1262 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
1263 </div>
1264 <hr>
1265 <div class="refsect2">
1266 <a name="hb-buffer-get-direction"></a><h3>hb_buffer_get_direction ()</h3>
1267 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="returnvalue">hb_direction_t</span></a>
1268 hb_buffer_get_direction (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
1269 <p>See <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-direction" title="hb_buffer_set_direction ()"><code class="function">hb_buffer_set_direction()</code></a></p>
1270 <div class="refsect3">
1271 <a name="hb-buffer-get-direction.parameters"></a><h4>Parameters</h4>
1272 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1273 <colgroup>
1274 <col width="150px" class="parameters_name">
1275 <col class="parameters_description">
1276 <col width="200px" class="parameters_annotations">
1277 </colgroup>
1278 <tbody><tr>
1279 <td class="parameter_name"><p>buffer</p></td>
1280 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1281 <td class="parameter_annotations"> </td>
1282 </tr></tbody>
1283 </table></div>
1284 </div>
1285 <div class="refsect3">
1286 <a name="hb-buffer-get-direction.returns"></a><h4>Returns</h4>
1287 <p>The direction of the <em class="parameter"><code>buffer</code></em>
1288 .</p>
1289 </div>
1290 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
1291 </div>
1292 <hr>
1293 <div class="refsect2">
1294 <a name="hb-buffer-set-script"></a><h3>hb_buffer_set_script ()</h3>
1295 <pre class="programlisting"><span class="returnvalue">void</span>
1296 hb_buffer_set_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
1297                       <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> script</code></em>);</pre>
1298 <p>Sets the script of <em class="parameter"><code>buffer</code></em>
1299  to <em class="parameter"><code>script</code></em>
1300 .</p>
1301 <p>Script is crucial for choosing the proper shaping behaviour for scripts that
1302 require it (e.g. Arabic) and the which OpenType features defined in the font
1303 to be applied.</p>
1304 <p>You can pass one of the predefined <a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> values, or use
1305 <a class="link" href="harfbuzz-hb-common.html#hb-script-from-string" title="hb_script_from_string ()"><code class="function">hb_script_from_string()</code></a> or <a class="link" href="harfbuzz-hb-common.html#hb-script-from-iso15924-tag" title="hb_script_from_iso15924_tag ()"><code class="function">hb_script_from_iso15924_tag()</code></a> to get the
1306 corresponding script from an ISO 15924 script tag.</p>
1307 <div class="refsect3">
1308 <a name="hb-buffer-set-script.parameters"></a><h4>Parameters</h4>
1309 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1310 <colgroup>
1311 <col width="150px" class="parameters_name">
1312 <col class="parameters_description">
1313 <col width="200px" class="parameters_annotations">
1314 </colgroup>
1315 <tbody>
1316 <tr>
1317 <td class="parameter_name"><p>buffer</p></td>
1318 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1319 <td class="parameter_annotations"> </td>
1320 </tr>
1321 <tr>
1322 <td class="parameter_name"><p>script</p></td>
1323 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> to set.</p></td>
1324 <td class="parameter_annotations"> </td>
1325 </tr>
1326 </tbody>
1327 </table></div>
1328 </div>
1329 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
1330 </div>
1331 <hr>
1332 <div class="refsect2">
1333 <a name="hb-buffer-get-script"></a><h3>hb_buffer_get_script ()</h3>
1334 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="returnvalue">hb_script_t</span></a>
1335 hb_buffer_get_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
1336 <p>See <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-script" title="hb_buffer_set_script ()"><code class="function">hb_buffer_set_script()</code></a>.</p>
1337 <div class="refsect3">
1338 <a name="hb-buffer-get-script.parameters"></a><h4>Parameters</h4>
1339 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1340 <colgroup>
1341 <col width="150px" class="parameters_name">
1342 <col class="parameters_description">
1343 <col width="200px" class="parameters_annotations">
1344 </colgroup>
1345 <tbody><tr>
1346 <td class="parameter_name"><p>buffer</p></td>
1347 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1348 <td class="parameter_annotations"> </td>
1349 </tr></tbody>
1350 </table></div>
1351 </div>
1352 <div class="refsect3">
1353 <a name="hb-buffer-get-script.returns"></a><h4>Returns</h4>
1354 <p>The <a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> of the <em class="parameter"><code>buffer</code></em>
1355 .</p>
1356 </div>
1357 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
1358 </div>
1359 <hr>
1360 <div class="refsect2">
1361 <a name="hb-buffer-set-language"></a><h3>hb_buffer_set_language ()</h3>
1362 <pre class="programlisting"><span class="returnvalue">void</span>
1363 hb_buffer_set_language (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
1364                         <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> language</code></em>);</pre>
1365 <p>Sets the language of <em class="parameter"><code>buffer</code></em>
1366  to <em class="parameter"><code>language</code></em>
1367 .</p>
1368 <p>Languages are crucial for selecting which OpenType feature to apply to the
1369 buffer which can result in applying language-specific behaviour. Languages
1370 are orthogonal to the scripts, and though they are related, they are
1371 different concepts and should not be confused with each other.</p>
1372 <p>Use <a class="link" href="harfbuzz-hb-common.html#hb-language-from-string" title="hb_language_from_string ()"><code class="function">hb_language_from_string()</code></a> to convert from BCP 47 language tags to
1373 <a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a>.</p>
1374 <div class="refsect3">
1375 <a name="hb-buffer-set-language.parameters"></a><h4>Parameters</h4>
1376 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1377 <colgroup>
1378 <col width="150px" class="parameters_name">
1379 <col class="parameters_description">
1380 <col width="200px" class="parameters_annotations">
1381 </colgroup>
1382 <tbody>
1383 <tr>
1384 <td class="parameter_name"><p>buffer</p></td>
1385 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1386 <td class="parameter_annotations"> </td>
1387 </tr>
1388 <tr>
1389 <td class="parameter_name"><p>language</p></td>
1390 <td class="parameter_description"><p>an hb_language_t to set.</p></td>
1391 <td class="parameter_annotations"> </td>
1392 </tr>
1393 </tbody>
1394 </table></div>
1395 </div>
1396 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
1397 </div>
1398 <hr>
1399 <div class="refsect2">
1400 <a name="hb-buffer-get-language"></a><h3>hb_buffer_get_language ()</h3>
1401 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="returnvalue">hb_language_t</span></a>
1402 hb_buffer_get_language (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
1403 <p>See <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-language" title="hb_buffer_set_language ()"><code class="function">hb_buffer_set_language()</code></a>.</p>
1404 <div class="refsect3">
1405 <a name="hb-buffer-get-language.parameters"></a><h4>Parameters</h4>
1406 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1407 <colgroup>
1408 <col width="150px" class="parameters_name">
1409 <col class="parameters_description">
1410 <col width="200px" class="parameters_annotations">
1411 </colgroup>
1412 <tbody><tr>
1413 <td class="parameter_name"><p>buffer</p></td>
1414 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1415 <td class="parameter_annotations"> </td>
1416 </tr></tbody>
1417 </table></div>
1418 </div>
1419 <div class="refsect3">
1420 <a name="hb-buffer-get-language.returns"></a><h4>Returns</h4>
1421 <p>The <a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> of the buffer. Must not be freed by the caller. </p>
1422 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
1423 </div>
1424 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
1425 </div>
1426 <hr>
1427 <div class="refsect2">
1428 <a name="hb-buffer-set-flags"></a><h3>hb_buffer_set_flags ()</h3>
1429 <pre class="programlisting"><span class="returnvalue">void</span>
1430 hb_buffer_set_flags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
1431                      <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-flags-t" title="enum hb_buffer_flags_t"><span class="type">hb_buffer_flags_t</span></a> flags</code></em>);</pre>
1432 <p>Sets <em class="parameter"><code>buffer</code></em>
1433  flags to <em class="parameter"><code>flags</code></em>
1434 . See <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-flags-t" title="enum hb_buffer_flags_t"><span class="type">hb_buffer_flags_t</span></a>.</p>
1435 <div class="refsect3">
1436 <a name="hb-buffer-set-flags.parameters"></a><h4>Parameters</h4>
1437 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1438 <colgroup>
1439 <col width="150px" class="parameters_name">
1440 <col class="parameters_description">
1441 <col width="200px" class="parameters_annotations">
1442 </colgroup>
1443 <tbody>
1444 <tr>
1445 <td class="parameter_name"><p>buffer</p></td>
1446 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1447 <td class="parameter_annotations"> </td>
1448 </tr>
1449 <tr>
1450 <td class="parameter_name"><p>flags</p></td>
1451 <td class="parameter_description"><p>the buffer flags to set.</p></td>
1452 <td class="parameter_annotations"> </td>
1453 </tr>
1454 </tbody>
1455 </table></div>
1456 </div>
1457 <p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
1458 </div>
1459 <hr>
1460 <div class="refsect2">
1461 <a name="hb-buffer-get-flags"></a><h3>hb_buffer_get_flags ()</h3>
1462 <pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-flags-t" title="enum hb_buffer_flags_t"><span class="returnvalue">hb_buffer_flags_t</span></a>
1463 hb_buffer_get_flags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
1464 <p>See <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-flags" title="hb_buffer_set_flags ()"><code class="function">hb_buffer_set_flags()</code></a>.</p>
1465 <div class="refsect3">
1466 <a name="hb-buffer-get-flags.parameters"></a><h4>Parameters</h4>
1467 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1468 <colgroup>
1469 <col width="150px" class="parameters_name">
1470 <col class="parameters_description">
1471 <col width="200px" class="parameters_annotations">
1472 </colgroup>
1473 <tbody><tr>
1474 <td class="parameter_name"><p>buffer</p></td>
1475 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1476 <td class="parameter_annotations"> </td>
1477 </tr></tbody>
1478 </table></div>
1479 </div>
1480 <div class="refsect3">
1481 <a name="hb-buffer-get-flags.returns"></a><h4>Returns</h4>
1482 <p>The <em class="parameter"><code>buffer</code></em>
1483 flags.</p>
1484 </div>
1485 <p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
1486 </div>
1487 <hr>
1488 <div class="refsect2">
1489 <a name="hb-buffer-set-cluster-level"></a><h3>hb_buffer_set_cluster_level ()</h3>
1490 <pre class="programlisting"><span class="returnvalue">void</span>
1491 hb_buffer_set_cluster_level (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
1492                              <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-cluster-level-t" title="enum hb_buffer_cluster_level_t"><span class="type">hb_buffer_cluster_level_t</span></a> cluster_level</code></em>);</pre>
1493 <div class="refsect3">
1494 <a name="hb-buffer-set-cluster-level.parameters"></a><h4>Parameters</h4>
1495 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1496 <colgroup>
1497 <col width="150px" class="parameters_name">
1498 <col class="parameters_description">
1499 <col width="200px" class="parameters_annotations">
1500 </colgroup>
1501 <tbody><tr>
1502 <td class="parameter_name"><p>buffer</p></td>
1503 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1504 <td class="parameter_annotations"> </td>
1505 </tr></tbody>
1506 </table></div>
1507 </div>
1508 <p class="since">Since: <a class="link" href="api-index-0-9-42.html#api-index-0.9.42">0.9.42</a></p>
1509 </div>
1510 <hr>
1511 <div class="refsect2">
1512 <a name="hb-buffer-get-cluster-level"></a><h3>hb_buffer_get_cluster_level ()</h3>
1513 <pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-cluster-level-t" title="enum hb_buffer_cluster_level_t"><span class="returnvalue">hb_buffer_cluster_level_t</span></a>
1514 hb_buffer_get_cluster_level (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
1515 <div class="refsect3">
1516 <a name="hb-buffer-get-cluster-level.parameters"></a><h4>Parameters</h4>
1517 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1518 <colgroup>
1519 <col width="150px" class="parameters_name">
1520 <col class="parameters_description">
1521 <col width="200px" class="parameters_annotations">
1522 </colgroup>
1523 <tbody><tr>
1524 <td class="parameter_name"><p>buffer</p></td>
1525 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1526 <td class="parameter_annotations"> </td>
1527 </tr></tbody>
1528 </table></div>
1529 </div>
1530 <p class="since">Since: <a class="link" href="api-index-0-9-42.html#api-index-0.9.42">0.9.42</a></p>
1531 </div>
1532 <hr>
1533 <div class="refsect2">
1534 <a name="hb-buffer-set-length"></a><h3>hb_buffer_set_length ()</h3>
1535 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
1536 hb_buffer_set_length (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
1537                       <em class="parameter"><code>unsigned <span class="type">int</span> length</code></em>);</pre>
1538 <p>Similar to <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-pre-allocate" title="hb_buffer_pre_allocate ()"><code class="function">hb_buffer_pre_allocate()</code></a>, but clears any new items added at the
1539 end.</p>
1540 <div class="refsect3">
1541 <a name="hb-buffer-set-length.parameters"></a><h4>Parameters</h4>
1542 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1543 <colgroup>
1544 <col width="150px" class="parameters_name">
1545 <col class="parameters_description">
1546 <col width="200px" class="parameters_annotations">
1547 </colgroup>
1548 <tbody>
1549 <tr>
1550 <td class="parameter_name"><p>buffer</p></td>
1551 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1552 <td class="parameter_annotations"> </td>
1553 </tr>
1554 <tr>
1555 <td class="parameter_name"><p>length</p></td>
1556 <td class="parameter_description"><p>the new length of <em class="parameter"><code>buffer</code></em>
1557 .</p></td>
1558 <td class="parameter_annotations"> </td>
1559 </tr>
1560 </tbody>
1561 </table></div>
1562 </div>
1563 <div class="refsect3">
1564 <a name="hb-buffer-set-length.returns"></a><h4>Returns</h4>
1565 <p><code class="literal">true</code> if <em class="parameter"><code>buffer</code></em>
1566 memory allocation succeeded, <code class="literal">false</code> otherwise.</p>
1567 </div>
1568 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
1569 </div>
1570 <hr>
1571 <div class="refsect2">
1572 <a name="hb-buffer-get-length"></a><h3>hb_buffer_get_length ()</h3>
1573 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
1574 hb_buffer_get_length (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
1575 <p>Returns the number of items in the buffer.</p>
1576 <div class="refsect3">
1577 <a name="hb-buffer-get-length.parameters"></a><h4>Parameters</h4>
1578 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1579 <colgroup>
1580 <col width="150px" class="parameters_name">
1581 <col class="parameters_description">
1582 <col width="200px" class="parameters_annotations">
1583 </colgroup>
1584 <tbody><tr>
1585 <td class="parameter_name"><p>buffer</p></td>
1586 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1587 <td class="parameter_annotations"> </td>
1588 </tr></tbody>
1589 </table></div>
1590 </div>
1591 <div class="refsect3">
1592 <a name="hb-buffer-get-length.returns"></a><h4>Returns</h4>
1593 <p>The <em class="parameter"><code>buffer</code></em>
1594 length.
1595 The value valid as long as buffer has not been modified.</p>
1596 </div>
1597 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
1598 </div>
1599 <hr>
1600 <div class="refsect2">
1601 <a name="hb-buffer-set-segment-properties"></a><h3>hb_buffer_set_segment_properties ()</h3>
1602 <pre class="programlisting"><span class="returnvalue">void</span>
1603 hb_buffer_set_segment_properties (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
1604                                   <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>);</pre>
1605 <p>Sets the segment properties of the buffer, a shortcut for calling
1606 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-direction" title="hb_buffer_set_direction ()"><code class="function">hb_buffer_set_direction()</code></a>, <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-script" title="hb_buffer_set_script ()"><code class="function">hb_buffer_set_script()</code></a> and
1607 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-language" title="hb_buffer_set_language ()"><code class="function">hb_buffer_set_language()</code></a> individually.</p>
1608 <div class="refsect3">
1609 <a name="hb-buffer-set-segment-properties.parameters"></a><h4>Parameters</h4>
1610 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1611 <colgroup>
1612 <col width="150px" class="parameters_name">
1613 <col class="parameters_description">
1614 <col width="200px" class="parameters_annotations">
1615 </colgroup>
1616 <tbody>
1617 <tr>
1618 <td class="parameter_name"><p>buffer</p></td>
1619 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1620 <td class="parameter_annotations"> </td>
1621 </tr>
1622 <tr>
1623 <td class="parameter_name"><p>props</p></td>
1624 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> to use.</p></td>
1625 <td class="parameter_annotations"> </td>
1626 </tr>
1627 </tbody>
1628 </table></div>
1629 </div>
1630 <p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
1631 </div>
1632 <hr>
1633 <div class="refsect2">
1634 <a name="hb-buffer-get-segment-properties"></a><h3>hb_buffer_get_segment_properties ()</h3>
1635 <pre class="programlisting"><span class="returnvalue">void</span>
1636 hb_buffer_get_segment_properties (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
1637                                   <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>);</pre>
1638 <p>Sets <em class="parameter"><code>props</code></em>
1639  to the <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> of <em class="parameter"><code>buffer</code></em>
1640 .</p>
1641 <div class="refsect3">
1642 <a name="hb-buffer-get-segment-properties.parameters"></a><h4>Parameters</h4>
1643 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1644 <colgroup>
1645 <col width="150px" class="parameters_name">
1646 <col class="parameters_description">
1647 <col width="200px" class="parameters_annotations">
1648 </colgroup>
1649 <tbody>
1650 <tr>
1651 <td class="parameter_name"><p>buffer</p></td>
1652 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1653 <td class="parameter_annotations"> </td>
1654 </tr>
1655 <tr>
1656 <td class="parameter_name"><p>props</p></td>
1657 <td class="parameter_description"><p>the output <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a>. </p></td>
1658 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
1659 </tr>
1660 </tbody>
1661 </table></div>
1662 </div>
1663 <p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
1664 </div>
1665 <hr>
1666 <div class="refsect2">
1667 <a name="hb-buffer-guess-segment-properties"></a><h3>hb_buffer_guess_segment_properties ()</h3>
1668 <pre class="programlisting"><span class="returnvalue">void</span>
1669 hb_buffer_guess_segment_properties (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
1670 <p>Sets unset buffer segment properties based on buffer Unicode
1671 contents.  If buffer is not empty, it must have content type
1672 <a class="link" href="harfbuzz-hb-buffer.html#HB-BUFFER-CONTENT-TYPE-UNICODE:CAPS"><code class="literal">HB_BUFFER_CONTENT_TYPE_UNICODE</code></a>.</p>
1673 <p>If buffer script is not set (ie. is <a class="link" href="harfbuzz-hb-common.html#HB-SCRIPT-INVALID:CAPS"><code class="literal">HB_SCRIPT_INVALID</code></a>), it
1674 will be set to the Unicode script of the first character in
1675 the buffer that has a script other than <code class="literal">HB_SCRIPT_COMMON</code>,
1676 <code class="literal">HB_SCRIPT_INHERITED</code>, and <code class="literal">HB_SCRIPT_UNKNOWN</code>.</p>
1677 <p>Next, if buffer direction is not set (ie. is <a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-INVALID:CAPS"><code class="literal">HB_DIRECTION_INVALID</code></a>),
1678 it will be set to the natural horizontal direction of the
1679 buffer script as returned by <a class="link" href="harfbuzz-hb-common.html#hb-script-get-horizontal-direction" title="hb_script_get_horizontal_direction ()"><code class="function">hb_script_get_horizontal_direction()</code></a>.
1680 If <a class="link" href="harfbuzz-hb-common.html#hb-script-get-horizontal-direction" title="hb_script_get_horizontal_direction ()"><code class="function">hb_script_get_horizontal_direction()</code></a> returns <a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-INVALID:CAPS"><code class="literal">HB_DIRECTION_INVALID</code></a>,
1681 then <a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-LTR:CAPS"><code class="literal">HB_DIRECTION_LTR</code></a> is used.</p>
1682 <p>Finally, if buffer language is not set (ie. is <a class="link" href="harfbuzz-hb-common.html#HB-LANGUAGE-INVALID:CAPS" title="HB_LANGUAGE_INVALID"><code class="literal">HB_LANGUAGE_INVALID</code></a>),
1683 it will be set to the process's default language as returned by
1684 <a class="link" href="harfbuzz-hb-common.html#hb-language-get-default" title="hb_language_get_default ()"><code class="function">hb_language_get_default()</code></a>.  This may change in the future by
1685 taking buffer script into consideration when choosing a language.
1686 Note that <a class="link" href="harfbuzz-hb-common.html#hb-language-get-default" title="hb_language_get_default ()"><code class="function">hb_language_get_default()</code></a> is NOT threadsafe the first time
1687 it is called.  See documentation for that function for details.</p>
1688 <div class="refsect3">
1689 <a name="hb-buffer-guess-segment-properties.parameters"></a><h4>Parameters</h4>
1690 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1691 <colgroup>
1692 <col width="150px" class="parameters_name">
1693 <col class="parameters_description">
1694 <col width="200px" class="parameters_annotations">
1695 </colgroup>
1696 <tbody><tr>
1697 <td class="parameter_name"><p>buffer</p></td>
1698 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1699 <td class="parameter_annotations"> </td>
1700 </tr></tbody>
1701 </table></div>
1702 </div>
1703 <p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
1704 </div>
1705 <hr>
1706 <div class="refsect2">
1707 <a name="hb-buffer-set-unicode-funcs"></a><h3>hb_buffer_set_unicode_funcs ()</h3>
1708 <pre class="programlisting"><span class="returnvalue">void</span>
1709 hb_buffer_set_unicode_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
1710                              <em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *unicode_funcs</code></em>);</pre>
1711 <div class="refsect3">
1712 <a name="hb-buffer-set-unicode-funcs.parameters"></a><h4>Parameters</h4>
1713 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1714 <colgroup>
1715 <col width="150px" class="parameters_name">
1716 <col class="parameters_description">
1717 <col width="200px" class="parameters_annotations">
1718 </colgroup>
1719 <tbody><tr>
1720 <td class="parameter_name"><p>buffer</p></td>
1721 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1722 <td class="parameter_annotations"> </td>
1723 </tr></tbody>
1724 </table></div>
1725 </div>
1726 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
1727 </div>
1728 <hr>
1729 <div class="refsect2">
1730 <a name="hb-buffer-get-unicode-funcs"></a><h3>hb_buffer_get_unicode_funcs ()</h3>
1731 <pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
1732 hb_buffer_get_unicode_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
1733 <div class="refsect3">
1734 <a name="hb-buffer-get-unicode-funcs.parameters"></a><h4>Parameters</h4>
1735 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1736 <colgroup>
1737 <col width="150px" class="parameters_name">
1738 <col class="parameters_description">
1739 <col width="200px" class="parameters_annotations">
1740 </colgroup>
1741 <tbody><tr>
1742 <td class="parameter_name"><p>buffer</p></td>
1743 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1744 <td class="parameter_annotations"> </td>
1745 </tr></tbody>
1746 </table></div>
1747 </div>
1748 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
1749 </div>
1750 <hr>
1751 <div class="refsect2">
1752 <a name="hb-buffer-set-user-data"></a><h3>hb_buffer_set_user_data ()</h3>
1753 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
1754 hb_buffer_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
1755                          <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
1756                          <em class="parameter"><code><span class="type">void</span> *data</code></em>,
1757                          <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
1758                          <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
1759 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
1760 <div class="refsect3">
1761 <a name="hb-buffer-set-user-data.parameters"></a><h4>Parameters</h4>
1762 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1763 <colgroup>
1764 <col width="150px" class="parameters_name">
1765 <col class="parameters_description">
1766 <col width="200px" class="parameters_annotations">
1767 </colgroup>
1768 <tbody><tr>
1769 <td class="parameter_name"><p>buffer</p></td>
1770 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1771 <td class="parameter_annotations"> </td>
1772 </tr></tbody>
1773 </table></div>
1774 </div>
1775 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
1776 </div>
1777 <hr>
1778 <div class="refsect2">
1779 <a name="hb-buffer-get-user-data"></a><h3>hb_buffer_get_user_data ()</h3>
1780 <pre class="programlisting"><span class="returnvalue">void</span> *
1781 hb_buffer_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
1782                          <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
1783 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
1784 <div class="refsect3">
1785 <a name="hb-buffer-get-user-data.parameters"></a><h4>Parameters</h4>
1786 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1787 <colgroup>
1788 <col width="150px" class="parameters_name">
1789 <col class="parameters_description">
1790 <col width="200px" class="parameters_annotations">
1791 </colgroup>
1792 <tbody><tr>
1793 <td class="parameter_name"><p>buffer</p></td>
1794 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1795 <td class="parameter_annotations"> </td>
1796 </tr></tbody>
1797 </table></div>
1798 </div>
1799 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
1800 </div>
1801 <hr>
1802 <div class="refsect2">
1803 <a name="hb-buffer-get-glyph-infos"></a><h3>hb_buffer_get_glyph_infos ()</h3>
1804 <pre class="programlisting"><span class="returnvalue">hb_glyph_info_t</span> *
1805 hb_buffer_get_glyph_infos (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
1806                            <em class="parameter"><code>unsigned <span class="type">int</span> *length</code></em>);</pre>
1807 <p>Returns <em class="parameter"><code>buffer</code></em>
1808  glyph information array.  Returned pointer
1809 is valid as long as <em class="parameter"><code>buffer</code></em>
1810  contents are not modified.</p>
1811 <div class="refsect3">
1812 <a name="hb-buffer-get-glyph-infos.parameters"></a><h4>Parameters</h4>
1813 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1814 <colgroup>
1815 <col width="150px" class="parameters_name">
1816 <col class="parameters_description">
1817 <col width="200px" class="parameters_annotations">
1818 </colgroup>
1819 <tbody>
1820 <tr>
1821 <td class="parameter_name"><p>buffer</p></td>
1822 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1823 <td class="parameter_annotations"> </td>
1824 </tr>
1825 <tr>
1826 <td class="parameter_name"><p>length</p></td>
1827 <td class="parameter_description"><p>output array length. </p></td>
1828 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
1829 </tr>
1830 </tbody>
1831 </table></div>
1832 </div>
1833 <div class="refsect3">
1834 <a name="hb-buffer-get-glyph-infos.returns"></a><h4>Returns</h4>
1835 <p>The <em class="parameter"><code>buffer</code></em>
1836 glyph information array.
1837 The value valid as long as buffer has not been modified. </p>
1838 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=length]</span></p>
1839 </div>
1840 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
1841 </div>
1842 <hr>
1843 <div class="refsect2">
1844 <a name="hb-buffer-get-glyph-positions"></a><h3>hb_buffer_get_glyph_positions ()</h3>
1845 <pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t" title="hb_glyph_position_t"><span class="returnvalue">hb_glyph_position_t</span></a> *
1846 hb_buffer_get_glyph_positions (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
1847                                <em class="parameter"><code>unsigned <span class="type">int</span> *length</code></em>);</pre>
1848 <p>Returns <em class="parameter"><code>buffer</code></em>
1849  glyph position array.  Returned pointer
1850 is valid as long as <em class="parameter"><code>buffer</code></em>
1851  contents are not modified.</p>
1852 <div class="refsect3">
1853 <a name="hb-buffer-get-glyph-positions.parameters"></a><h4>Parameters</h4>
1854 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1855 <colgroup>
1856 <col width="150px" class="parameters_name">
1857 <col class="parameters_description">
1858 <col width="200px" class="parameters_annotations">
1859 </colgroup>
1860 <tbody>
1861 <tr>
1862 <td class="parameter_name"><p>buffer</p></td>
1863 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1864 <td class="parameter_annotations"> </td>
1865 </tr>
1866 <tr>
1867 <td class="parameter_name"><p>length</p></td>
1868 <td class="parameter_description"><p>output length. </p></td>
1869 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
1870 </tr>
1871 </tbody>
1872 </table></div>
1873 </div>
1874 <div class="refsect3">
1875 <a name="hb-buffer-get-glyph-positions.returns"></a><h4>Returns</h4>
1876 <p>The <em class="parameter"><code>buffer</code></em>
1877 glyph position array.
1878 The value valid as long as buffer has not been modified. </p>
1879 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=length]</span></p>
1880 </div>
1881 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
1882 </div>
1883 <hr>
1884 <div class="refsect2">
1885 <a name="hb-buffer-get-invisible-glyph"></a><h3>hb_buffer_get_invisible_glyph ()</h3>
1886 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="returnvalue">hb_codepoint_t</span></a>
1887 hb_buffer_get_invisible_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
1888 <p>See <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-invisible-glyph" title="hb_buffer_set_invisible_glyph ()"><code class="function">hb_buffer_set_invisible_glyph()</code></a>.</p>
1889 <div class="refsect3">
1890 <a name="hb-buffer-get-invisible-glyph.parameters"></a><h4>Parameters</h4>
1891 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1892 <colgroup>
1893 <col width="150px" class="parameters_name">
1894 <col class="parameters_description">
1895 <col width="200px" class="parameters_annotations">
1896 </colgroup>
1897 <tbody><tr>
1898 <td class="parameter_name"><p>buffer</p></td>
1899 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1900 <td class="parameter_annotations"> </td>
1901 </tr></tbody>
1902 </table></div>
1903 </div>
1904 <div class="refsect3">
1905 <a name="hb-buffer-get-invisible-glyph.returns"></a><h4>Returns</h4>
1906 <p>The <em class="parameter"><code>buffer</code></em>
1907 invisible <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a>.</p>
1908 </div>
1909 <p class="since">Since: <a class="link" href="api-index-2-0-0.html#api-index-2.0.0">2.0.0</a></p>
1910 </div>
1911 <hr>
1912 <div class="refsect2">
1913 <a name="hb-buffer-set-invisible-glyph"></a><h3>hb_buffer_set_invisible_glyph ()</h3>
1914 <pre class="programlisting"><span class="returnvalue">void</span>
1915 hb_buffer_set_invisible_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
1916                                <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> invisible</code></em>);</pre>
1917 <p>Sets the <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> that replaces invisible characters in
1918 the shaping result.  If set to zero (default), the glyph for the
1919 U+0020 SPACE character is used.  Otherwise, this value is used
1920 verbatim.</p>
1921 <div class="refsect3">
1922 <a name="hb-buffer-set-invisible-glyph.parameters"></a><h4>Parameters</h4>
1923 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1924 <colgroup>
1925 <col width="150px" class="parameters_name">
1926 <col class="parameters_description">
1927 <col width="200px" class="parameters_annotations">
1928 </colgroup>
1929 <tbody>
1930 <tr>
1931 <td class="parameter_name"><p>buffer</p></td>
1932 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1933 <td class="parameter_annotations"> </td>
1934 </tr>
1935 <tr>
1936 <td class="parameter_name"><p>invisible</p></td>
1937 <td class="parameter_description"><p>the invisible <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a></p></td>
1938 <td class="parameter_annotations"> </td>
1939 </tr>
1940 </tbody>
1941 </table></div>
1942 </div>
1943 <p class="since">Since: <a class="link" href="api-index-2-0-0.html#api-index-2.0.0">2.0.0</a></p>
1944 </div>
1945 <hr>
1946 <div class="refsect2">
1947 <a name="hb-buffer-set-replacement-codepoint"></a><h3>hb_buffer_set_replacement_codepoint ()</h3>
1948 <pre class="programlisting"><span class="returnvalue">void</span>
1949 hb_buffer_set_replacement_codepoint (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
1950                                      <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> replacement</code></em>);</pre>
1951 <p>Sets the <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> that replaces invalid entries for a given encoding
1952 when adding text to <em class="parameter"><code>buffer</code></em>
1953 .</p>
1954 <p>Default is <a class="link" href="harfbuzz-hb-buffer.html#HB-BUFFER-REPLACEMENT-CODEPOINT-DEFAULT:CAPS" title="HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT"><code class="literal">HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT</code></a>.</p>
1955 <div class="refsect3">
1956 <a name="hb-buffer-set-replacement-codepoint.parameters"></a><h4>Parameters</h4>
1957 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1958 <colgroup>
1959 <col width="150px" class="parameters_name">
1960 <col class="parameters_description">
1961 <col width="200px" class="parameters_annotations">
1962 </colgroup>
1963 <tbody>
1964 <tr>
1965 <td class="parameter_name"><p>buffer</p></td>
1966 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1967 <td class="parameter_annotations"> </td>
1968 </tr>
1969 <tr>
1970 <td class="parameter_name"><p>replacement</p></td>
1971 <td class="parameter_description"><p>the replacement <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a></p></td>
1972 <td class="parameter_annotations"> </td>
1973 </tr>
1974 </tbody>
1975 </table></div>
1976 </div>
1977 <p class="since">Since: <a class="link" href="api-index-0-9-31.html#api-index-0.9.31">0.9.31</a></p>
1978 </div>
1979 <hr>
1980 <div class="refsect2">
1981 <a name="hb-buffer-get-replacement-codepoint"></a><h3>hb_buffer_get_replacement_codepoint ()</h3>
1982 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="returnvalue">hb_codepoint_t</span></a>
1983 hb_buffer_get_replacement_codepoint (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
1984 <p>See <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-replacement-codepoint" title="hb_buffer_set_replacement_codepoint ()"><code class="function">hb_buffer_set_replacement_codepoint()</code></a>.</p>
1985 <div class="refsect3">
1986 <a name="hb-buffer-get-replacement-codepoint.parameters"></a><h4>Parameters</h4>
1987 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1988 <colgroup>
1989 <col width="150px" class="parameters_name">
1990 <col class="parameters_description">
1991 <col width="200px" class="parameters_annotations">
1992 </colgroup>
1993 <tbody><tr>
1994 <td class="parameter_name"><p>buffer</p></td>
1995 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
1996 <td class="parameter_annotations"> </td>
1997 </tr></tbody>
1998 </table></div>
1999 </div>
2000 <div class="refsect3">
2001 <a name="hb-buffer-get-replacement-codepoint.returns"></a><h4>Returns</h4>
2002 <p>The <em class="parameter"><code>buffer</code></em>
2003 replacement <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a>.</p>
2004 </div>
2005 <p class="since">Since: <a class="link" href="api-index-0-9-31.html#api-index-0.9.31">0.9.31</a></p>
2006 </div>
2007 <hr>
2008 <div class="refsect2">
2009 <a name="hb-buffer-normalize-glyphs"></a><h3>hb_buffer_normalize_glyphs ()</h3>
2010 <pre class="programlisting"><span class="returnvalue">void</span>
2011 hb_buffer_normalize_glyphs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
2012 <p>Reorders a glyph buffer to have canonical in-cluster glyph order / position.
2013 The resulting clusters should behave identical to pre-reordering clusters.</p>
2014 <div class="note">This has nothing to do with Unicode normalization.</div>
2015 <div class="refsect3">
2016 <a name="hb-buffer-normalize-glyphs.parameters"></a><h4>Parameters</h4>
2017 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2018 <colgroup>
2019 <col width="150px" class="parameters_name">
2020 <col class="parameters_description">
2021 <col width="200px" class="parameters_annotations">
2022 </colgroup>
2023 <tbody><tr>
2024 <td class="parameter_name"><p>buffer</p></td>
2025 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
2026 <td class="parameter_annotations"> </td>
2027 </tr></tbody>
2028 </table></div>
2029 </div>
2030 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
2031 </div>
2032 <hr>
2033 <div class="refsect2">
2034 <a name="hb-buffer-reverse"></a><h3>hb_buffer_reverse ()</h3>
2035 <pre class="programlisting"><span class="returnvalue">void</span>
2036 hb_buffer_reverse (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
2037 <p>Reverses buffer contents.</p>
2038 <div class="refsect3">
2039 <a name="hb-buffer-reverse.parameters"></a><h4>Parameters</h4>
2040 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2041 <colgroup>
2042 <col width="150px" class="parameters_name">
2043 <col class="parameters_description">
2044 <col width="200px" class="parameters_annotations">
2045 </colgroup>
2046 <tbody><tr>
2047 <td class="parameter_name"><p>buffer</p></td>
2048 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
2049 <td class="parameter_annotations"> </td>
2050 </tr></tbody>
2051 </table></div>
2052 </div>
2053 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
2054 </div>
2055 <hr>
2056 <div class="refsect2">
2057 <a name="hb-buffer-reverse-range"></a><h3>hb_buffer_reverse_range ()</h3>
2058 <pre class="programlisting"><span class="returnvalue">void</span>
2059 hb_buffer_reverse_range (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
2060                          <em class="parameter"><code>unsigned <span class="type">int</span> start</code></em>,
2061                          <em class="parameter"><code>unsigned <span class="type">int</span> end</code></em>);</pre>
2062 <p>Reverses buffer contents between start to end.</p>
2063 <div class="refsect3">
2064 <a name="hb-buffer-reverse-range.parameters"></a><h4>Parameters</h4>
2065 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2066 <colgroup>
2067 <col width="150px" class="parameters_name">
2068 <col class="parameters_description">
2069 <col width="200px" class="parameters_annotations">
2070 </colgroup>
2071 <tbody>
2072 <tr>
2073 <td class="parameter_name"><p>buffer</p></td>
2074 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
2075 <td class="parameter_annotations"> </td>
2076 </tr>
2077 <tr>
2078 <td class="parameter_name"><p>start</p></td>
2079 <td class="parameter_description"><p>start index.</p></td>
2080 <td class="parameter_annotations"> </td>
2081 </tr>
2082 <tr>
2083 <td class="parameter_name"><p>end</p></td>
2084 <td class="parameter_description"><p>end index.</p></td>
2085 <td class="parameter_annotations"> </td>
2086 </tr>
2087 </tbody>
2088 </table></div>
2089 </div>
2090 <p class="since">Since: <a class="link" href="api-index-0-9-41.html#api-index-0.9.41">0.9.41</a></p>
2091 </div>
2092 <hr>
2093 <div class="refsect2">
2094 <a name="hb-buffer-reverse-clusters"></a><h3>hb_buffer_reverse_clusters ()</h3>
2095 <pre class="programlisting"><span class="returnvalue">void</span>
2096 hb_buffer_reverse_clusters (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
2097 <p>Reverses buffer clusters.  That is, the buffer contents are
2098 reversed, then each cluster (consecutive items having the
2099 same cluster number) are reversed again.</p>
2100 <div class="refsect3">
2101 <a name="hb-buffer-reverse-clusters.parameters"></a><h4>Parameters</h4>
2102 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2103 <colgroup>
2104 <col width="150px" class="parameters_name">
2105 <col class="parameters_description">
2106 <col width="200px" class="parameters_annotations">
2107 </colgroup>
2108 <tbody><tr>
2109 <td class="parameter_name"><p>buffer</p></td>
2110 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
2111 <td class="parameter_annotations"> </td>
2112 </tr></tbody>
2113 </table></div>
2114 </div>
2115 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
2116 </div>
2117 <hr>
2118 <div class="refsect2">
2119 <a name="hb-buffer-serialize-glyphs"></a><h3>hb_buffer_serialize_glyphs ()</h3>
2120 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
2121 hb_buffer_serialize_glyphs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
2122                             <em class="parameter"><code>unsigned <span class="type">int</span> start</code></em>,
2123                             <em class="parameter"><code>unsigned <span class="type">int</span> end</code></em>,
2124                             <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
2125                             <em class="parameter"><code>unsigned <span class="type">int</span> buf_size</code></em>,
2126                             <em class="parameter"><code>unsigned <span class="type">int</span> *buf_consumed</code></em>,
2127                             <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
2128                             <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t"><span class="type">hb_buffer_serialize_format_t</span></a> format</code></em>,
2129                             <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-flags-t" title="enum hb_buffer_serialize_flags_t"><span class="type">hb_buffer_serialize_flags_t</span></a> flags</code></em>);</pre>
2130 <p>Serializes <em class="parameter"><code>buffer</code></em>
2131  into a textual representation of its glyph content,
2132 useful for showing the contents of the buffer, for example during debugging.
2133 There are currently two supported serialization formats:</p>
2134 <div class="refsect3">
2135 <a name="id-1.3.4.3.7.48.5"></a><h4>text</h4>
2136 <p>A human-readable, plain text format.
2137 The serialized glyphs will look something like:</p>
2138 <p><code class="literal">
2139 [uni0651=0@518,0+0|uni0628=0+1897]
2140 </code></p>
2141 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
2142 <li class="listitem"><p>The serialized glyphs are delimited with <code class="literal">[</code> and <code class="literal">]</code>.</p></li>
2143 <li class="listitem"><p>Glyphs are separated with <code class="literal">|</code></p></li>
2144 <li class="listitem">
2145 <p>Each glyph starts with glyph name, or glyph index if
2146 <a class="link" href="harfbuzz-hb-buffer.html#HB-BUFFER-SERIALIZE-FLAG-NO-GLYPH-NAMES:CAPS"><span class="type">HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES</span></a> flag is set. Then,</p>
2147 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
2148 <li class="listitem"><p>If <a class="link" href="harfbuzz-hb-buffer.html#HB-BUFFER-SERIALIZE-FLAG-NO-CLUSTERS:CAPS"><span class="type">HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS</span></a> is not set, <code class="literal">=</code> then <span class="type">hb_glyph_info_t.cluster</span>.</p></li>
2149 <li class="listitem">
2150 <p>If <a class="link" href="harfbuzz-hb-buffer.html#HB-BUFFER-SERIALIZE-FLAG-NO-POSITIONS:CAPS"><span class="type">HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS</span></a> is not set, the <a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t" title="hb_glyph_position_t"><span class="type">hb_glyph_position_t</span></a> in the format:</p>
2151 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: square; ">
2152 <li class="listitem"><p>If both <a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t.x-offset"><span class="type">hb_glyph_position_t.x_offset</span></a> and <a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t.y-offset"><span class="type">hb_glyph_position_t.y_offset</span></a> are not 0, <code class="literal">@x_offset,y_offset</code>. Then,</p></li>
2153 <li class="listitem"><p><code class="literal">+x_advance</code>, then <code class="literal">,y_advance</code> if <a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t.y-advance"><span class="type">hb_glyph_position_t.y_advance</span></a> is not 0. Then,</p></li>
2154 </ul></div>
2155 </li>
2156 <li class="listitem"><p>If <a class="link" href="harfbuzz-hb-buffer.html#HB-BUFFER-SERIALIZE-FLAG-GLYPH-EXTENTS:CAPS"><span class="type">HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS</span></a> is set, the
2157 <span class="type">hb_glyph_extents_t</span> in the format
2158 <code class="literal">&amp;lt;x_bearing,y_bearing,width,height&amp;gt;</code></p></li>
2159 </ul></div>
2160 </li>
2161 </ul></div>
2162 </div>
2163 <div class="refsect3">
2164 <a name="id-1.3.4.3.7.48.6"></a><h4>json</h4>
2165 <p>TODO.</p>
2166 </div>
2167 <div class="refsect3">
2168 <a name="hb-buffer-serialize-glyphs.parameters"></a><h4>Parameters</h4>
2169 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2170 <colgroup>
2171 <col width="150px" class="parameters_name">
2172 <col class="parameters_description">
2173 <col width="200px" class="parameters_annotations">
2174 </colgroup>
2175 <tbody>
2176 <tr>
2177 <td class="parameter_name"><p>buffer</p></td>
2178 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> buffer.</p></td>
2179 <td class="parameter_annotations"> </td>
2180 </tr>
2181 <tr>
2182 <td class="parameter_name"><p>start</p></td>
2183 <td class="parameter_description"><p>the first item in <em class="parameter"><code>buffer</code></em>
2184 to serialize.</p></td>
2185 <td class="parameter_annotations"> </td>
2186 </tr>
2187 <tr>
2188 <td class="parameter_name"><p>end</p></td>
2189 <td class="parameter_description"><p>the last item in <em class="parameter"><code>buffer</code></em>
2190 to serialize.</p></td>
2191 <td class="parameter_annotations"> </td>
2192 </tr>
2193 <tr>
2194 <td class="parameter_name"><p>buf</p></td>
2195 <td class="parameter_description"><p>output string to
2196 write serialized buffer into. </p></td>
2197 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=buf_size][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> uint8_t]</span></td>
2198 </tr>
2199 <tr>
2200 <td class="parameter_name"><p>buf_size</p></td>
2201 <td class="parameter_description"><p>the size of <em class="parameter"><code>buf</code></em>
2202 .</p></td>
2203 <td class="parameter_annotations"> </td>
2204 </tr>
2205 <tr>
2206 <td class="parameter_name"><p>buf_consumed</p></td>
2207 <td class="parameter_description"><p>if not <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, will be set to the number of byes written into <em class="parameter"><code>buf</code></em>
2208 . </p></td>
2209 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
2210 </tr>
2211 <tr>
2212 <td class="parameter_name"><p>font</p></td>
2213 <td class="parameter_description"><p>the <a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> used to shape this buffer, needed to
2214 read glyph names and extents. If <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, and empty font will be used. </p></td>
2215 <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
2216 </tr>
2217 <tr>
2218 <td class="parameter_name"><p>format</p></td>
2219 <td class="parameter_description"><p>the <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t"><span class="type">hb_buffer_serialize_format_t</span></a> to use for formatting the output.</p></td>
2220 <td class="parameter_annotations"> </td>
2221 </tr>
2222 <tr>
2223 <td class="parameter_name"><p>flags</p></td>
2224 <td class="parameter_description"><p>the <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-flags-t" title="enum hb_buffer_serialize_flags_t"><span class="type">hb_buffer_serialize_flags_t</span></a> that control what glyph properties
2225 to serialize.</p></td>
2226 <td class="parameter_annotations"> </td>
2227 </tr>
2228 </tbody>
2229 </table></div>
2230 </div>
2231 <div class="refsect3">
2232 <a name="hb-buffer-serialize-glyphs.returns"></a><h4>Returns</h4>
2233 <p>The number of serialized items.</p>
2234 </div>
2235 <p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
2236 </div>
2237 <hr>
2238 <div class="refsect2">
2239 <a name="hb-buffer-deserialize-glyphs"></a><h3>hb_buffer_deserialize_glyphs ()</h3>
2240 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
2241 hb_buffer_deserialize_glyphs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
2242                               <em class="parameter"><code>const <span class="type">char</span> *buf</code></em>,
2243                               <em class="parameter"><code><span class="type">int</span> buf_len</code></em>,
2244                               <em class="parameter"><code>const <span class="type">char</span> **end_ptr</code></em>,
2245                               <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
2246                               <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t"><span class="type">hb_buffer_serialize_format_t</span></a> format</code></em>);</pre>
2247 <div class="refsect3">
2248 <a name="hb-buffer-deserialize-glyphs.parameters"></a><h4>Parameters</h4>
2249 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2250 <colgroup>
2251 <col width="150px" class="parameters_name">
2252 <col class="parameters_description">
2253 <col width="200px" class="parameters_annotations">
2254 </colgroup>
2255 <tbody>
2256 <tr>
2257 <td class="parameter_name"><p>buffer</p></td>
2258 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> buffer.</p></td>
2259 <td class="parameter_annotations"> </td>
2260 </tr>
2261 <tr>
2262 <td class="parameter_name"><p>buf</p></td>
2263 <td class="parameter_description"><p>. </p></td>
2264 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=buf_len]</span></td>
2265 </tr>
2266 <tr>
2267 <td class="parameter_name"><p>end_ptr</p></td>
2268 <td class="parameter_description"><p>. </p></td>
2269 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
2270 </tr>
2271 </tbody>
2272 </table></div>
2273 </div>
2274 <p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
2275 </div>
2276 <hr>
2277 <div class="refsect2">
2278 <a name="hb-buffer-serialize-format-from-string"></a><h3>hb_buffer_serialize_format_from_string ()</h3>
2279 <pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t"><span class="returnvalue">hb_buffer_serialize_format_t</span></a>
2280 hb_buffer_serialize_format_from_string
2281                                (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>,
2282                                 <em class="parameter"><code><span class="type">int</span> len</code></em>);</pre>
2283 <p>Parses a string into an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t"><span class="type">hb_buffer_serialize_format_t</span></a>. Does not check if
2284 <em class="parameter"><code>str</code></em>
2285  is a valid buffer serialization format, use
2286 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-list-formats" title="hb_buffer_serialize_list_formats ()"><code class="function">hb_buffer_serialize_list_formats()</code></a> to get the list of supported formats.</p>
2287 <div class="refsect3">
2288 <a name="hb-buffer-serialize-format-from-string.parameters"></a><h4>Parameters</h4>
2289 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2290 <colgroup>
2291 <col width="150px" class="parameters_name">
2292 <col class="parameters_description">
2293 <col width="200px" class="parameters_annotations">
2294 </colgroup>
2295 <tbody>
2296 <tr>
2297 <td class="parameter_name"><p>str</p></td>
2298 <td class="parameter_description"><p>a string to parse. </p></td>
2299 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> uint8_t]</span></td>
2300 </tr>
2301 <tr>
2302 <td class="parameter_name"><p>len</p></td>
2303 <td class="parameter_description"><p>length of <em class="parameter"><code>str</code></em>
2304 , or -1 if string is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated</p></td>
2305 <td class="parameter_annotations"> </td>
2306 </tr>
2307 </tbody>
2308 </table></div>
2309 </div>
2310 <div class="refsect3">
2311 <a name="hb-buffer-serialize-format-from-string.returns"></a><h4>Returns</h4>
2312 <p>The parsed <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t"><span class="type">hb_buffer_serialize_format_t</span></a>.</p>
2313 </div>
2314 <p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
2315 </div>
2316 <hr>
2317 <div class="refsect2">
2318 <a name="hb-buffer-serialize-format-to-string"></a><h3>hb_buffer_serialize_format_to_string ()</h3>
2319 <pre class="programlisting">const <span class="returnvalue">char</span> *
2320 hb_buffer_serialize_format_to_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t"><span class="type">hb_buffer_serialize_format_t</span></a> format</code></em>);</pre>
2321 <p>Converts <em class="parameter"><code>format</code></em>
2322  to the string corresponding it, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if it is not a valid
2323 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t"><span class="type">hb_buffer_serialize_format_t</span></a>.</p>
2324 <div class="refsect3">
2325 <a name="hb-buffer-serialize-format-to-string.parameters"></a><h4>Parameters</h4>
2326 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2327 <colgroup>
2328 <col width="150px" class="parameters_name">
2329 <col class="parameters_description">
2330 <col width="200px" class="parameters_annotations">
2331 </colgroup>
2332 <tbody><tr>
2333 <td class="parameter_name"><p>format</p></td>
2334 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t"><span class="type">hb_buffer_serialize_format_t</span></a> to convert.</p></td>
2335 <td class="parameter_annotations"> </td>
2336 </tr></tbody>
2337 </table></div>
2338 </div>
2339 <div class="refsect3">
2340 <a name="hb-buffer-serialize-format-to-string.returns"></a><h4>Returns</h4>
2341 <p>A <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated string corresponding to <em class="parameter"><code>format</code></em>
2342 . Should not be freed. </p>
2343 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
2344 </div>
2345 <p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
2346 </div>
2347 <hr>
2348 <div class="refsect2">
2349 <a name="hb-buffer-serialize-list-formats"></a><h3>hb_buffer_serialize_list_formats ()</h3>
2350 <pre class="programlisting">const <span class="returnvalue">char</span> **
2351 hb_buffer_serialize_list_formats (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
2352 <p>Returns a list of supported buffer serialization formats.</p>
2353 <div class="refsect3">
2354 <a name="hb-buffer-serialize-list-formats.returns"></a><h4>Returns</h4>
2355 <p>A string array of buffer serialization formats. Should not be freed. </p>
2356 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
2357 </div>
2358 <p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
2359 </div>
2360 <hr>
2361 <div class="refsect2">
2362 <a name="hb-segment-properties-equal"></a><h3>hb_segment_properties_equal ()</h3>
2363 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
2364 hb_segment_properties_equal (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> *a</code></em>,
2365                              <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> *b</code></em>);</pre>
2366 <p>Checks the equality of two <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a>'s.</p>
2367 <div class="refsect3">
2368 <a name="hb-segment-properties-equal.parameters"></a><h4>Parameters</h4>
2369 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2370 <colgroup>
2371 <col width="150px" class="parameters_name">
2372 <col class="parameters_description">
2373 <col width="200px" class="parameters_annotations">
2374 </colgroup>
2375 <tbody>
2376 <tr>
2377 <td class="parameter_name"><p>a</p></td>
2378 <td class="parameter_description"><p>first <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> to compare.</p></td>
2379 <td class="parameter_annotations"> </td>
2380 </tr>
2381 <tr>
2382 <td class="parameter_name"><p>b</p></td>
2383 <td class="parameter_description"><p>second <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> to compare.</p></td>
2384 <td class="parameter_annotations"> </td>
2385 </tr>
2386 </tbody>
2387 </table></div>
2388 </div>
2389 <div class="refsect3">
2390 <a name="hb-segment-properties-equal.returns"></a><h4>Returns</h4>
2391 <p><code class="literal">true</code> if all properties of <em class="parameter"><code>a</code></em>
2392 equal those of <em class="parameter"><code>b</code></em>
2393 , false otherwise.</p>
2394 </div>
2395 <p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
2396 </div>
2397 <hr>
2398 <div class="refsect2">
2399 <a name="hb-segment-properties-hash"></a><h3>hb_segment_properties_hash ()</h3>
2400 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
2401 hb_segment_properties_hash (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> *p</code></em>);</pre>
2402 <p>Creates a hash representing <em class="parameter"><code>p</code></em>
2403 .</p>
2404 <div class="refsect3">
2405 <a name="hb-segment-properties-hash.parameters"></a><h4>Parameters</h4>
2406 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2407 <colgroup>
2408 <col width="150px" class="parameters_name">
2409 <col class="parameters_description">
2410 <col width="200px" class="parameters_annotations">
2411 </colgroup>
2412 <tbody><tr>
2413 <td class="parameter_name"><p>p</p></td>
2414 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> to hash.</p></td>
2415 <td class="parameter_annotations"> </td>
2416 </tr></tbody>
2417 </table></div>
2418 </div>
2419 <div class="refsect3">
2420 <a name="hb-segment-properties-hash.returns"></a><h4>Returns</h4>
2421 <p>A hash of <em class="parameter"><code>p</code></em>
2422 .</p>
2423 </div>
2424 <p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
2425 </div>
2426 <hr>
2427 <div class="refsect2">
2428 <a name="hb-buffer-diff"></a><h3>hb_buffer_diff ()</h3>
2429 <pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-diff-flags-t" title="enum hb_buffer_diff_flags_t"><span class="returnvalue">hb_buffer_diff_flags_t</span></a>
2430 hb_buffer_diff (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
2431                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *reference</code></em>,
2432                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> dottedcircle_glyph</code></em>,
2433                 <em class="parameter"><code>unsigned <span class="type">int</span> position_fuzz</code></em>);</pre>
2434 <p>If dottedcircle_glyph is (hb_codepoint_t) -1 then <a class="link" href="harfbuzz-hb-buffer.html#HB-BUFFER-DIFF-FLAG-DOTTED-CIRCLE-PRESENT:CAPS"><code class="literal">HB_BUFFER_DIFF_FLAG_DOTTED_CIRCLE_PRESENT</code></a>
2435 and <a class="link" href="harfbuzz-hb-buffer.html#HB-BUFFER-DIFF-FLAG-NOTDEF-PRESENT:CAPS"><code class="literal">HB_BUFFER_DIFF_FLAG_NOTDEF_PRESENT</code></a> are never returned.  This should be used by most
2436 callers if just comparing two buffers is needed.</p>
2437 <div class="refsect3">
2438 <a name="hb-buffer-diff.parameters"></a><h4>Parameters</h4>
2439 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2440 <colgroup>
2441 <col width="150px" class="parameters_name">
2442 <col class="parameters_description">
2443 <col width="200px" class="parameters_annotations">
2444 </colgroup>
2445 <tbody>
2446 <tr>
2447 <td class="parameter_name"><p>buffer</p></td>
2448 <td class="parameter_description"><p>a buffer.</p></td>
2449 <td class="parameter_annotations"> </td>
2450 </tr>
2451 <tr>
2452 <td class="parameter_name"><p>reference</p></td>
2453 <td class="parameter_description"><p>other buffer to compare to.</p></td>
2454 <td class="parameter_annotations"> </td>
2455 </tr>
2456 <tr>
2457 <td class="parameter_name"><p>dottedcircle_glyph</p></td>
2458 <td class="parameter_description"><p>glyph id of U+25CC DOTTED CIRCLE, or (hb_codepont_t) -1.</p></td>
2459 <td class="parameter_annotations"> </td>
2460 </tr>
2461 <tr>
2462 <td class="parameter_name"><p>position_fuzz</p></td>
2463 <td class="parameter_description"><p>allowed absolute difference in position values.</p></td>
2464 <td class="parameter_annotations"> </td>
2465 </tr>
2466 </tbody>
2467 </table></div>
2468 </div>
2469 <p class="since">Since: <a class="link" href="api-index-1-5-0.html#api-index-1.5.0">1.5.0</a></p>
2470 </div>
2471 <hr>
2472 <div class="refsect2">
2473 <a name="hb-buffer-set-message-func"></a><h3>hb_buffer_set_message_func ()</h3>
2474 <pre class="programlisting"><span class="returnvalue">void</span>
2475 hb_buffer_set_message_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
2476                             <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-message-func-t" title="hb_buffer_message_func_t ()"><span class="type">hb_buffer_message_func_t</span></a> func</code></em>,
2477                             <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
2478                             <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
2479 <div class="refsect3">
2480 <a name="hb-buffer-set-message-func.parameters"></a><h4>Parameters</h4>
2481 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2482 <colgroup>
2483 <col width="150px" class="parameters_name">
2484 <col class="parameters_description">
2485 <col width="200px" class="parameters_annotations">
2486 </colgroup>
2487 <tbody>
2488 <tr>
2489 <td class="parameter_name"><p>buffer</p></td>
2490 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
2491 <td class="parameter_annotations"> </td>
2492 </tr>
2493 <tr>
2494 <td class="parameter_name"><p>func</p></td>
2495 <td class="parameter_description"><p>. </p></td>
2496 <td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym> user_data][<acronym title="This parameter is a 'destroy_data', for callbacks."><span class="acronym">destroy</span></acronym> destroy][<acronym title="The callback is valid until the GDestroyNotify argument is called."><span class="acronym">scope notified</span></acronym>]</span></td>
2497 </tr>
2498 </tbody>
2499 </table></div>
2500 </div>
2501 <p class="since">Since: <a class="link" href="api-index-1-1-3.html#api-index-1.1.3">1.1.3</a></p>
2502 </div>
2503 <hr>
2504 <div class="refsect2">
2505 <a name="hb-glyph-info-get-glyph-flags"></a><h3>hb_glyph_info_get_glyph_flags ()</h3>
2506 <pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-flags-t" title="enum hb_glyph_flags_t"><span class="returnvalue">hb_glyph_flags_t</span></a>
2507 hb_glyph_info_get_glyph_flags (<em class="parameter"><code>const <span class="type">hb_glyph_info_t</span> *info</code></em>);</pre>
2508 <p>Returns glyph flags encoded within a <span class="type">hb_glyph_info_t</span>.</p>
2509 <div class="refsect3">
2510 <a name="hb-glyph-info-get-glyph-flags.parameters"></a><h4>Parameters</h4>
2511 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2512 <colgroup>
2513 <col width="150px" class="parameters_name">
2514 <col class="parameters_description">
2515 <col width="200px" class="parameters_annotations">
2516 </colgroup>
2517 <tbody><tr>
2518 <td class="parameter_name"><p>info</p></td>
2519 <td class="parameter_description"><p>a <span class="type">hb_glyph_info_t</span>.</p></td>
2520 <td class="parameter_annotations"> </td>
2521 </tr></tbody>
2522 </table></div>
2523 </div>
2524 <div class="refsect3">
2525 <a name="hb-glyph-info-get-glyph-flags.returns"></a><h4>Returns</h4>
2526 <p>The <a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-flags-t" title="enum hb_glyph_flags_t"><span class="type">hb_glyph_flags_t</span></a> encoded within <em class="parameter"><code>info</code></em>
2527 .</p>
2528 </div>
2529 <p class="since">Since: <a class="link" href="api-index-1-5-0.html#api-index-1.5.0">1.5.0</a></p>
2530 </div>
2531 <hr>
2532 <div class="refsect2">
2533 <a name="hb-buffer-message-func-t"></a><h3>hb_buffer_message_func_t ()</h3>
2534 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
2535 <span class="c_punctuation">(</span>*hb_buffer_message_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
2536                              <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
2537                              <em class="parameter"><code>const <span class="type">char</span> *message</code></em>,
2538                              <em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
2539 </div>
2540 </div>
2541 <div class="refsect1">
2542 <a name="harfbuzz-hb-buffer.other_details"></a><h2>Types and Values</h2>
2543 <div class="refsect2">
2544 <a name="HB-SEGMENT-PROPERTIES-DEFAULT:CAPS"></a><h3>HB_SEGMENT_PROPERTIES_DEFAULT</h3>
2545 <pre class="programlisting">#define             HB_SEGMENT_PROPERTIES_DEFAULT</pre>
2546 </div>
2547 <hr>
2548 <div class="refsect2">
2549 <a name="HB-BUFFER-REPLACEMENT-CODEPOINT-DEFAULT:CAPS"></a><h3>HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT</h3>
2550 <pre class="programlisting">#define HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT 0xFFFDu
2551 </pre>
2552 <p>The default code point for replacing invalid characters in a given encoding.
2553 Set to U+FFFD REPLACEMENT CHARACTER.</p>
2554 <p class="since">Since: <a class="link" href="api-index-0-9-31.html#api-index-0.9.31">0.9.31</a></p>
2555 </div>
2556 <hr>
2557 <div class="refsect2">
2558 <a name="hb-buffer-t"></a><h3>hb_buffer_t</h3>
2559 <pre class="programlisting">typedef struct hb_buffer_t hb_buffer_t;
2560 </pre>
2561 <p>The main structure holding the input text and its properties before shaping,
2562 and output glyphs and their information after shaping.</p>
2563 </div>
2564 <hr>
2565 <div class="refsect2">
2566 <a name="hb-glyph-flags-t"></a><h3>enum hb_glyph_flags_t</h3>
2567 <div class="refsect3">
2568 <a name="hb-glyph-flags-t.members"></a><h4>Members</h4>
2569 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2570 <colgroup>
2571 <col width="300px" class="enum_members_name">
2572 <col class="enum_members_description">
2573 <col width="200px" class="enum_members_annotations">
2574 </colgroup>
2575 <tbody>
2576 <tr>
2577 <td class="enum_member_name"><p><a name="HB-GLYPH-FLAG-UNSAFE-TO-BREAK:CAPS"></a>HB_GLYPH_FLAG_UNSAFE_TO_BREAK</p></td>
2578 <td class="enum_member_description">
2579 <p>Indicates that if input text is broken at the
2580                                    beginning of the cluster this glyph is part of,
2581                                    then both sides need to be re-shaped, as the
2582                                    result might be different.  On the flip side,
2583                                    it means that when this flag is not present,
2584                                    then it's safe to break the glyph-run at the
2585                                    beginning of this cluster, and the two sides
2586                                    represent the exact same result one would get
2587                                    if breaking input text at the beginning of
2588                                    this cluster and shaping the two sides
2589                                    separately.  This can be used to optimize
2590                                    paragraph layout, by avoiding re-shaping
2591                                    of each line after line-breaking, or limiting
2592                                    the reshaping to a small piece around the
2593                                    breaking point only.</p>
2594 </td>
2595 <td class="enum_member_annotations"> </td>
2596 </tr>
2597 <tr>
2598 <td class="enum_member_name"><p><a name="HB-GLYPH-FLAG-DEFINED:CAPS"></a>HB_GLYPH_FLAG_DEFINED</p></td>
2599 <td class="enum_member_description">
2600 <p>All the currently defined flags.</p>
2601 </td>
2602 <td class="enum_member_annotations"> </td>
2603 </tr>
2604 </tbody>
2605 </table></div>
2606 </div>
2607 <p class="since">Since: <a class="link" href="api-index-1-5-0.html#api-index-1.5.0">1.5.0</a></p>
2608 </div>
2609 <hr>
2610 <div class="refsect2">
2611 <a name="hb-glyph-position-t"></a><h3>hb_glyph_position_t</h3>
2612 <pre class="programlisting">typedef struct {
2613   hb_position_t  x_advance;
2614   hb_position_t  y_advance;
2615   hb_position_t  x_offset;
2616   hb_position_t  y_offset;
2617 } hb_glyph_position_t;
2618 </pre>
2619 <p>The <a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t" title="hb_glyph_position_t"><span class="type">hb_glyph_position_t</span></a> is the structure that holds the positions of the
2620 glyph in both horizontal and vertical directions. All positions in
2621 <a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t" title="hb_glyph_position_t"><span class="type">hb_glyph_position_t</span></a> are relative to the current point.</p>
2622 <div class="refsect3">
2623 <a name="hb-glyph-position-t.members"></a><h4>Members</h4>
2624 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2625 <colgroup>
2626 <col width="300px" class="struct_members_name">
2627 <col class="struct_members_description">
2628 <col width="200px" class="struct_members_annotations">
2629 </colgroup>
2630 <tbody>
2631 <tr>
2632 <td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-glyph-position-t.x-advance"></a>x_advance</code></em>;</p></td>
2633 <td class="struct_member_description"><p>how much the line advances after drawing this glyph when setting
2634 text in horizontal direction.</p></td>
2635 <td class="struct_member_annotations"> </td>
2636 </tr>
2637 <tr>
2638 <td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-glyph-position-t.y-advance"></a>y_advance</code></em>;</p></td>
2639 <td class="struct_member_description"><p>how much the line advances after drawing this glyph when setting
2640 text in vertical direction.</p></td>
2641 <td class="struct_member_annotations"> </td>
2642 </tr>
2643 <tr>
2644 <td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-glyph-position-t.x-offset"></a>x_offset</code></em>;</p></td>
2645 <td class="struct_member_description"><p>how much the glyph moves on the X-axis before drawing it, this
2646 should not affect how much the line advances.</p></td>
2647 <td class="struct_member_annotations"> </td>
2648 </tr>
2649 <tr>
2650 <td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-glyph-position-t.y-offset"></a>y_offset</code></em>;</p></td>
2651 <td class="struct_member_description"><p>how much the glyph moves on the Y-axis before drawing it, this
2652 should not affect how much the line advances.</p></td>
2653 <td class="struct_member_annotations"> </td>
2654 </tr>
2655 </tbody>
2656 </table></div>
2657 </div>
2658 </div>
2659 <hr>
2660 <div class="refsect2">
2661 <a name="hb-buffer-content-type-t"></a><h3>enum hb_buffer_content_type_t</h3>
2662 <div class="refsect3">
2663 <a name="hb-buffer-content-type-t.members"></a><h4>Members</h4>
2664 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2665 <colgroup>
2666 <col width="300px" class="enum_members_name">
2667 <col class="enum_members_description">
2668 <col width="200px" class="enum_members_annotations">
2669 </colgroup>
2670 <tbody>
2671 <tr>
2672 <td class="enum_member_name"><p><a name="HB-BUFFER-CONTENT-TYPE-INVALID:CAPS"></a>HB_BUFFER_CONTENT_TYPE_INVALID</p></td>
2673 <td class="enum_member_description">
2674 <p>Initial value for new buffer.</p>
2675 </td>
2676 <td class="enum_member_annotations"> </td>
2677 </tr>
2678 <tr>
2679 <td class="enum_member_name"><p><a name="HB-BUFFER-CONTENT-TYPE-UNICODE:CAPS"></a>HB_BUFFER_CONTENT_TYPE_UNICODE</p></td>
2680 <td class="enum_member_description">
2681 <p>The buffer contains input characters (before shaping).</p>
2682 </td>
2683 <td class="enum_member_annotations"> </td>
2684 </tr>
2685 <tr>
2686 <td class="enum_member_name"><p><a name="HB-BUFFER-CONTENT-TYPE-GLYPHS:CAPS"></a>HB_BUFFER_CONTENT_TYPE_GLYPHS</p></td>
2687 <td class="enum_member_description">
2688 <p>The buffer contains output glyphs (after shaping).</p>
2689 </td>
2690 <td class="enum_member_annotations"> </td>
2691 </tr>
2692 </tbody>
2693 </table></div>
2694 </div>
2695 </div>
2696 <hr>
2697 <div class="refsect2">
2698 <a name="hb-buffer-flags-t"></a><h3>enum hb_buffer_flags_t</h3>
2699 <div class="refsect3">
2700 <a name="hb-buffer-flags-t.members"></a><h4>Members</h4>
2701 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2702 <colgroup>
2703 <col width="300px" class="enum_members_name">
2704 <col class="enum_members_description">
2705 <col width="200px" class="enum_members_annotations">
2706 </colgroup>
2707 <tbody>
2708 <tr>
2709 <td class="enum_member_name"><p><a name="HB-BUFFER-FLAG-DEFAULT:CAPS"></a>HB_BUFFER_FLAG_DEFAULT</p></td>
2710 <td class="enum_member_description">
2711 <p>the default buffer flag.</p>
2712 </td>
2713 <td class="enum_member_annotations"> </td>
2714 </tr>
2715 <tr>
2716 <td class="enum_member_name"><p><a name="HB-BUFFER-FLAG-BOT:CAPS"></a>HB_BUFFER_FLAG_BOT</p></td>
2717 <td class="enum_member_description">
2718 <p>flag indicating that special handling of the beginning
2719 of text paragraph can be applied to this buffer. Should usually
2720 be set, unless you are passing to the buffer only part
2721 of the text without the full context.</p>
2722 </td>
2723 <td class="enum_member_annotations"> </td>
2724 </tr>
2725 <tr>
2726 <td class="enum_member_name"><p><a name="HB-BUFFER-FLAG-EOT:CAPS"></a>HB_BUFFER_FLAG_EOT</p></td>
2727 <td class="enum_member_description">
2728 <p>flag indicating that special handling of the end of text
2729 paragraph can be applied to this buffer, similar to
2730 <em class="parameter"><code>HB_BUFFER_FLAG_BOT</code></em>
2731 .</p>
2732 </td>
2733 <td class="enum_member_annotations"> </td>
2734 </tr>
2735 <tr>
2736 <td class="enum_member_name"><p><a name="HB-BUFFER-FLAG-PRESERVE-DEFAULT-IGNORABLES:CAPS"></a>HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES</p></td>
2737 <td class="enum_member_description">
2738 <p>flag indication that character with Default_Ignorable
2739 Unicode property should use the corresponding glyph
2740 from the font, instead of hiding them (done by
2741 replacing them with the space glyph and zeroing the
2742 advance width.)  This flag takes precedence over
2743 <em class="parameter"><code>HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES</code></em>
2744 .</p>
2745 </td>
2746 <td class="enum_member_annotations"> </td>
2747 </tr>
2748 <tr>
2749 <td class="enum_member_name"><p><a name="HB-BUFFER-FLAG-REMOVE-DEFAULT-IGNORABLES:CAPS"></a>HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES</p></td>
2750 <td class="enum_member_description">
2751 <p>flag indication that character with Default_Ignorable
2752 Unicode property should be removed from glyph string
2753 instead of hiding them (done by replacing them with the
2754 space glyph and zeroing the advance width.)
2755 <em class="parameter"><code>HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES</code></em>
2756  takes
2757 precedence over this flag. Since: 1.8.0</p>
2758 </td>
2759 <td class="enum_member_annotations"> </td>
2760 </tr>
2761 <tr>
2762 <td class="enum_member_name"><p><a name="HB-BUFFER-FLAG-DO-NOT-INSERT-DOTTED-CIRCLE:CAPS"></a>HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE</p></td>
2763 <td class="enum_member_description">
2764 <p>flag indicating that a dotted circle should
2765 not be inserted in the rendering of incorrect
2766 character sequences (such at &lt;0905 093E&gt;). Since: 2.4</p>
2767 </td>
2768 <td class="enum_member_annotations"> </td>
2769 </tr>
2770 </tbody>
2771 </table></div>
2772 </div>
2773 <p class="since">Since: <a class="link" href="api-index-0-9-20.html#api-index-0.9.20">0.9.20</a></p>
2774 </div>
2775 <hr>
2776 <div class="refsect2">
2777 <a name="hb-buffer-cluster-level-t"></a><h3>enum hb_buffer_cluster_level_t</h3>
2778 <div class="refsect3">
2779 <a name="hb-buffer-cluster-level-t.members"></a><h4>Members</h4>
2780 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2781 <colgroup>
2782 <col width="300px" class="enum_members_name">
2783 <col class="enum_members_description">
2784 <col width="200px" class="enum_members_annotations">
2785 </colgroup>
2786 <tbody>
2787 <tr>
2788 <td class="enum_member_name"><p><a name="HB-BUFFER-CLUSTER-LEVEL-MONOTONE-GRAPHEMES:CAPS"></a>HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES</p></td>
2789 <td class="enum_member_description">
2790 <p>Return cluster values grouped by graphemes into
2791 monotone order.</p>
2792 </td>
2793 <td class="enum_member_annotations"> </td>
2794 </tr>
2795 <tr>
2796 <td class="enum_member_name"><p><a name="HB-BUFFER-CLUSTER-LEVEL-MONOTONE-CHARACTERS:CAPS"></a>HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS</p></td>
2797 <td class="enum_member_description">
2798 <p>Return cluster values grouped into monotone order.</p>
2799 </td>
2800 <td class="enum_member_annotations"> </td>
2801 </tr>
2802 <tr>
2803 <td class="enum_member_name"><p><a name="HB-BUFFER-CLUSTER-LEVEL-CHARACTERS:CAPS"></a>HB_BUFFER_CLUSTER_LEVEL_CHARACTERS</p></td>
2804 <td class="enum_member_description">
2805 <p>Don't group cluster values.</p>
2806 </td>
2807 <td class="enum_member_annotations"> </td>
2808 </tr>
2809 <tr>
2810 <td class="enum_member_name"><p><a name="HB-BUFFER-CLUSTER-LEVEL-DEFAULT:CAPS"></a>HB_BUFFER_CLUSTER_LEVEL_DEFAULT</p></td>
2811 <td class="enum_member_description">
2812 <p>Default cluster level,
2813 equal to <em class="parameter"><code>HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES</code></em>
2814 .</p>
2815 </td>
2816 <td class="enum_member_annotations"> </td>
2817 </tr>
2818 </tbody>
2819 </table></div>
2820 </div>
2821 <p class="since">Since: <a class="link" href="api-index-0-9-42.html#api-index-0.9.42">0.9.42</a></p>
2822 </div>
2823 <hr>
2824 <div class="refsect2">
2825 <a name="hb-segment-properties-t"></a><h3>hb_segment_properties_t</h3>
2826 <pre class="programlisting">typedef struct {
2827   hb_direction_t  direction;
2828   hb_script_t     script;
2829   hb_language_t   language;
2830 } hb_segment_properties_t;
2831 </pre>
2832 <p>The structure that holds various text properties of an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>. Can be
2833 set and retrieved using <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-segment-properties" title="hb_buffer_set_segment_properties ()"><code class="function">hb_buffer_set_segment_properties()</code></a> and
2834 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-segment-properties" title="hb_buffer_get_segment_properties ()"><code class="function">hb_buffer_get_segment_properties()</code></a>, respectively.</p>
2835 <div class="refsect3">
2836 <a name="hb-segment-properties-t.members"></a><h4>Members</h4>
2837 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2838 <colgroup>
2839 <col width="300px" class="struct_members_name">
2840 <col class="struct_members_description">
2841 <col width="200px" class="struct_members_annotations">
2842 </colgroup>
2843 <tbody>
2844 <tr>
2845 <td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> <em class="structfield"><code><a name="hb-segment-properties-t.direction"></a>direction</code></em>;</p></td>
2846 <td class="struct_member_description"><p>the <a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> of the buffer, see <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-direction" title="hb_buffer_set_direction ()"><code class="function">hb_buffer_set_direction()</code></a>.</p></td>
2847 <td class="struct_member_annotations"> </td>
2848 </tr>
2849 <tr>
2850 <td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> <em class="structfield"><code><a name="hb-segment-properties-t.script"></a>script</code></em>;</p></td>
2851 <td class="struct_member_description"><p>the <a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> of the buffer, see <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-script" title="hb_buffer_set_script ()"><code class="function">hb_buffer_set_script()</code></a>.</p></td>
2852 <td class="struct_member_annotations"> </td>
2853 </tr>
2854 <tr>
2855 <td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> <em class="structfield"><code><a name="hb-segment-properties-t.language"></a>language</code></em>;</p></td>
2856 <td class="struct_member_description"><p>the <a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> of the buffer, see <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-language" title="hb_buffer_set_language ()"><code class="function">hb_buffer_set_language()</code></a>.</p></td>
2857 <td class="struct_member_annotations"> </td>
2858 </tr>
2859 </tbody>
2860 </table></div>
2861 </div>
2862 </div>
2863 <hr>
2864 <div class="refsect2">
2865 <a name="hb-buffer-serialize-format-t"></a><h3>enum hb_buffer_serialize_format_t</h3>
2866 <p>The buffer serialization and de-serialization format used in
2867 <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-glyphs" title="hb_buffer_serialize_glyphs ()"><code class="function">hb_buffer_serialize_glyphs()</code></a> and <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-deserialize-glyphs" title="hb_buffer_deserialize_glyphs ()"><code class="function">hb_buffer_deserialize_glyphs()</code></a>.</p>
2868 <div class="refsect3">
2869 <a name="hb-buffer-serialize-format-t.members"></a><h4>Members</h4>
2870 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2871 <colgroup>
2872 <col width="300px" class="enum_members_name">
2873 <col class="enum_members_description">
2874 <col width="200px" class="enum_members_annotations">
2875 </colgroup>
2876 <tbody>
2877 <tr>
2878 <td class="enum_member_name"><p><a name="HB-BUFFER-SERIALIZE-FORMAT-TEXT:CAPS"></a>HB_BUFFER_SERIALIZE_FORMAT_TEXT</p></td>
2879 <td class="enum_member_description">
2880 <p>a human-readable, plain text format.</p>
2881 </td>
2882 <td class="enum_member_annotations"> </td>
2883 </tr>
2884 <tr>
2885 <td class="enum_member_name"><p><a name="HB-BUFFER-SERIALIZE-FORMAT-JSON:CAPS"></a>HB_BUFFER_SERIALIZE_FORMAT_JSON</p></td>
2886 <td class="enum_member_description">
2887 <p>a machine-readable JSON format.</p>
2888 </td>
2889 <td class="enum_member_annotations"> </td>
2890 </tr>
2891 <tr>
2892 <td class="enum_member_name"><p><a name="HB-BUFFER-SERIALIZE-FORMAT-INVALID:CAPS"></a>HB_BUFFER_SERIALIZE_FORMAT_INVALID</p></td>
2893 <td class="enum_member_description">
2894 <p>invalid format.</p>
2895 </td>
2896 <td class="enum_member_annotations"> </td>
2897 </tr>
2898 </tbody>
2899 </table></div>
2900 </div>
2901 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
2902 </div>
2903 <hr>
2904 <div class="refsect2">
2905 <a name="hb-buffer-serialize-flags-t"></a><h3>enum hb_buffer_serialize_flags_t</h3>
2906 <p>Flags that control what glyph information are serialized in <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-glyphs" title="hb_buffer_serialize_glyphs ()"><code class="function">hb_buffer_serialize_glyphs()</code></a>.</p>
2907 <div class="refsect3">
2908 <a name="hb-buffer-serialize-flags-t.members"></a><h4>Members</h4>
2909 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2910 <colgroup>
2911 <col width="300px" class="enum_members_name">
2912 <col class="enum_members_description">
2913 <col width="200px" class="enum_members_annotations">
2914 </colgroup>
2915 <tbody>
2916 <tr>
2917 <td class="enum_member_name"><p><a name="HB-BUFFER-SERIALIZE-FLAG-DEFAULT:CAPS"></a>HB_BUFFER_SERIALIZE_FLAG_DEFAULT</p></td>
2918 <td class="enum_member_description">
2919 <p>serialize glyph names, clusters and positions.</p>
2920 </td>
2921 <td class="enum_member_annotations"> </td>
2922 </tr>
2923 <tr>
2924 <td class="enum_member_name"><p><a name="HB-BUFFER-SERIALIZE-FLAG-NO-CLUSTERS:CAPS"></a>HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS</p></td>
2925 <td class="enum_member_description">
2926 <p>do not serialize glyph cluster.</p>
2927 </td>
2928 <td class="enum_member_annotations"> </td>
2929 </tr>
2930 <tr>
2931 <td class="enum_member_name"><p><a name="HB-BUFFER-SERIALIZE-FLAG-NO-POSITIONS:CAPS"></a>HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS</p></td>
2932 <td class="enum_member_description">
2933 <p>do not serialize glyph position information.</p>
2934 </td>
2935 <td class="enum_member_annotations"> </td>
2936 </tr>
2937 <tr>
2938 <td class="enum_member_name"><p><a name="HB-BUFFER-SERIALIZE-FLAG-NO-GLYPH-NAMES:CAPS"></a>HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES</p></td>
2939 <td class="enum_member_description">
2940 <p>do no serialize glyph name.</p>
2941 </td>
2942 <td class="enum_member_annotations"> </td>
2943 </tr>
2944 <tr>
2945 <td class="enum_member_name"><p><a name="HB-BUFFER-SERIALIZE-FLAG-GLYPH-EXTENTS:CAPS"></a>HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS</p></td>
2946 <td class="enum_member_description">
2947 <p>serialize glyph extents.</p>
2948 </td>
2949 <td class="enum_member_annotations"> </td>
2950 </tr>
2951 <tr>
2952 <td class="enum_member_name"><p><a name="HB-BUFFER-SERIALIZE-FLAG-GLYPH-FLAGS:CAPS"></a>HB_BUFFER_SERIALIZE_FLAG_GLYPH_FLAGS</p></td>
2953 <td class="enum_member_description">
2954 <p>serialize glyph flags. Since: 1.5.0</p>
2955 </td>
2956 <td class="enum_member_annotations"> </td>
2957 </tr>
2958 <tr>
2959 <td class="enum_member_name"><p><a name="HB-BUFFER-SERIALIZE-FLAG-NO-ADVANCES:CAPS"></a>HB_BUFFER_SERIALIZE_FLAG_NO_ADVANCES</p></td>
2960 <td class="enum_member_description">
2961 <p>do not serialize glyph advances,
2962 glyph offsets will reflect absolute glyph positions. Since: 1.8.0</p>
2963 </td>
2964 <td class="enum_member_annotations"> </td>
2965 </tr>
2966 </tbody>
2967 </table></div>
2968 </div>
2969 <p class="since">Since: <a class="link" href="api-index-0-9-20.html#api-index-0.9.20">0.9.20</a></p>
2970 </div>
2971 <hr>
2972 <div class="refsect2">
2973 <a name="hb-buffer-diff-flags-t"></a><h3>enum hb_buffer_diff_flags_t</h3>
2974 <div class="refsect3">
2975 <a name="hb-buffer-diff-flags-t.members"></a><h4>Members</h4>
2976 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2977 <colgroup>
2978 <col width="300px" class="enum_members_name">
2979 <col class="enum_members_description">
2980 <col width="200px" class="enum_members_annotations">
2981 </colgroup>
2982 <tbody>
2983 <tr>
2984 <td class="enum_member_name"><p><a name="HB-BUFFER-DIFF-FLAG-EQUAL:CAPS"></a>HB_BUFFER_DIFF_FLAG_EQUAL</p></td>
2985 <td> </td>
2986 <td> </td>
2987 </tr>
2988 <tr>
2989 <td class="enum_member_name"><p><a name="HB-BUFFER-DIFF-FLAG-CONTENT-TYPE-MISMATCH:CAPS"></a>HB_BUFFER_DIFF_FLAG_CONTENT_TYPE_MISMATCH</p></td>
2990 <td> </td>
2991 <td> </td>
2992 </tr>
2993 <tr>
2994 <td class="enum_member_name"><p><a name="HB-BUFFER-DIFF-FLAG-LENGTH-MISMATCH:CAPS"></a>HB_BUFFER_DIFF_FLAG_LENGTH_MISMATCH</p></td>
2995 <td> </td>
2996 <td> </td>
2997 </tr>
2998 <tr>
2999 <td class="enum_member_name"><p><a name="HB-BUFFER-DIFF-FLAG-NOTDEF-PRESENT:CAPS"></a>HB_BUFFER_DIFF_FLAG_NOTDEF_PRESENT</p></td>
3000 <td> </td>
3001 <td> </td>
3002 </tr>
3003 <tr>
3004 <td class="enum_member_name"><p><a name="HB-BUFFER-DIFF-FLAG-DOTTED-CIRCLE-PRESENT:CAPS"></a>HB_BUFFER_DIFF_FLAG_DOTTED_CIRCLE_PRESENT</p></td>
3005 <td> </td>
3006 <td> </td>
3007 </tr>
3008 <tr>
3009 <td class="enum_member_name"><p><a name="HB-BUFFER-DIFF-FLAG-CODEPOINT-MISMATCH:CAPS"></a>HB_BUFFER_DIFF_FLAG_CODEPOINT_MISMATCH</p></td>
3010 <td> </td>
3011 <td> </td>
3012 </tr>
3013 <tr>
3014 <td class="enum_member_name"><p><a name="HB-BUFFER-DIFF-FLAG-CLUSTER-MISMATCH:CAPS"></a>HB_BUFFER_DIFF_FLAG_CLUSTER_MISMATCH</p></td>
3015 <td> </td>
3016 <td> </td>
3017 </tr>
3018 <tr>
3019 <td class="enum_member_name"><p><a name="HB-BUFFER-DIFF-FLAG-GLYPH-FLAGS-MISMATCH:CAPS"></a>HB_BUFFER_DIFF_FLAG_GLYPH_FLAGS_MISMATCH</p></td>
3020 <td> </td>
3021 <td> </td>
3022 </tr>
3023 <tr>
3024 <td class="enum_member_name"><p><a name="HB-BUFFER-DIFF-FLAG-POSITION-MISMATCH:CAPS"></a>HB_BUFFER_DIFF_FLAG_POSITION_MISMATCH</p></td>
3025 <td> </td>
3026 <td> </td>
3027 </tr>
3028 </tbody>
3029 </table></div>
3030 </div>
3031 </div>
3032 </div>
3033 </div>
3034 <div class="footer">
3035 <hr>Generated by GTK-Doc V1.32.1</div>
3036 </body>
3037 </html>