Imported Upstream version 2.6.7
[platform/upstream/harfbuzz.git] / docs / html / harfbuzz-hb-common.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-common: 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-buffer.html" title="hb-buffer">
10 <link rel="next" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">
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-common.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-buffer.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
23 <td><a accesskey="n" href="harfbuzz-hb-deprecated.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-common"></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-common.top_of_page"></a>hb-common</span></h2>
30 <p>hb-common — Common data types</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-common.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-common.html#hb-tag-t" title="hb_tag_t"><span class="returnvalue">hb_tag_t</span></a>
45 </td>
46 <td class="function_name">
47 <a class="link" href="harfbuzz-hb-common.html#hb-tag-from-string" title="hb_tag_from_string ()">hb_tag_from_string</a> <span class="c_punctuation">()</span>
48 </td>
49 </tr>
50 <tr>
51 <td class="function_type">
52 <span class="returnvalue">void</span>
53 </td>
54 <td class="function_name">
55 <a class="link" href="harfbuzz-hb-common.html#hb-tag-to-string" title="hb_tag_to_string ()">hb_tag_to_string</a> <span class="c_punctuation">()</span>
56 </td>
57 </tr>
58 <tr>
59 <td class="function_type">
60 <a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="returnvalue">hb_direction_t</span></a>
61 </td>
62 <td class="function_name">
63 <a class="link" href="harfbuzz-hb-common.html#hb-direction-from-string" title="hb_direction_from_string ()">hb_direction_from_string</a> <span class="c_punctuation">()</span>
64 </td>
65 </tr>
66 <tr>
67 <td class="function_type">const <span class="returnvalue">char</span> *
68 </td>
69 <td class="function_name">
70 <a class="link" href="harfbuzz-hb-common.html#hb-direction-to-string" title="hb_direction_to_string ()">hb_direction_to_string</a> <span class="c_punctuation">()</span>
71 </td>
72 </tr>
73 <tr>
74 <td class="function_type">
75 <a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="returnvalue">hb_script_t</span></a>
76 </td>
77 <td class="function_name">
78 <a class="link" href="harfbuzz-hb-common.html#hb-script-from-iso15924-tag" title="hb_script_from_iso15924_tag ()">hb_script_from_iso15924_tag</a> <span class="c_punctuation">()</span>
79 </td>
80 </tr>
81 <tr>
82 <td class="function_type">
83 <a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="returnvalue">hb_script_t</span></a>
84 </td>
85 <td class="function_name">
86 <a class="link" href="harfbuzz-hb-common.html#hb-script-from-string" title="hb_script_from_string ()">hb_script_from_string</a> <span class="c_punctuation">()</span>
87 </td>
88 </tr>
89 <tr>
90 <td class="function_type">
91 <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="returnvalue">hb_tag_t</span></a>
92 </td>
93 <td class="function_name">
94 <a class="link" href="harfbuzz-hb-common.html#hb-script-to-iso15924-tag" title="hb_script_to_iso15924_tag ()">hb_script_to_iso15924_tag</a> <span class="c_punctuation">()</span>
95 </td>
96 </tr>
97 <tr>
98 <td class="function_type">
99 <a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="returnvalue">hb_direction_t</span></a>
100 </td>
101 <td class="function_name">
102 <a class="link" href="harfbuzz-hb-common.html#hb-script-get-horizontal-direction" title="hb_script_get_horizontal_direction ()">hb_script_get_horizontal_direction</a> <span class="c_punctuation">()</span>
103 </td>
104 </tr>
105 <tr>
106 <td class="function_type">
107 <a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="returnvalue">hb_language_t</span></a>
108 </td>
109 <td class="function_name">
110 <a class="link" href="harfbuzz-hb-common.html#hb-language-from-string" title="hb_language_from_string ()">hb_language_from_string</a> <span class="c_punctuation">()</span>
111 </td>
112 </tr>
113 <tr>
114 <td class="function_type">const <span class="returnvalue">char</span> *
115 </td>
116 <td class="function_name">
117 <a class="link" href="harfbuzz-hb-common.html#hb-language-to-string" title="hb_language_to_string ()">hb_language_to_string</a> <span class="c_punctuation">()</span>
118 </td>
119 </tr>
120 <tr>
121 <td class="function_type">
122 <a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="returnvalue">hb_language_t</span></a>
123 </td>
124 <td class="function_name">
125 <a class="link" href="harfbuzz-hb-common.html#hb-language-get-default" title="hb_language_get_default ()">hb_language_get_default</a> <span class="c_punctuation">()</span>
126 </td>
127 </tr>
128 <tr>
129 <td class="function_type">
130 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
131 </td>
132 <td class="function_name">
133 <a class="link" href="harfbuzz-hb-common.html#hb-feature-from-string" title="hb_feature_from_string ()">hb_feature_from_string</a> <span class="c_punctuation">()</span>
134 </td>
135 </tr>
136 <tr>
137 <td class="function_type">
138 <span class="returnvalue">void</span>
139 </td>
140 <td class="function_name">
141 <a class="link" href="harfbuzz-hb-common.html#hb-feature-to-string" title="hb_feature_to_string ()">hb_feature_to_string</a> <span class="c_punctuation">()</span>
142 </td>
143 </tr>
144 <tr>
145 <td class="function_type">
146 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
147 </td>
148 <td class="function_name">
149 <a class="link" href="harfbuzz-hb-common.html#hb-variation-from-string" title="hb_variation_from_string ()">hb_variation_from_string</a> <span class="c_punctuation">()</span>
150 </td>
151 </tr>
152 <tr>
153 <td class="function_type">
154 <span class="returnvalue">void</span>
155 </td>
156 <td class="function_name">
157 <a class="link" href="harfbuzz-hb-common.html#hb-variation-to-string" title="hb_variation_to_string ()">hb_variation_to_string</a> <span class="c_punctuation">()</span>
158 </td>
159 </tr>
160 <tr>
161 <td class="function_type">
162 <span class="returnvalue">void</span>
163 </td>
164 <td class="function_name">
165 <span class="c_punctuation">(</span><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()">*hb_destroy_func_t</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
166 </td>
167 </tr>
168 <tr>
169 <td class="define_keyword">#define</td>
170 <td class="function_name">
171 <a class="link" href="harfbuzz-hb-common.html#HB-TAG:CAPS" title="HB_TAG()">HB_TAG</a><span class="c_punctuation">()</span>
172 </td>
173 </tr>
174 <tr>
175 <td class="define_keyword">#define</td>
176 <td class="function_name">
177 <a class="link" href="harfbuzz-hb-common.html#HB-UNTAG:CAPS" title="HB_UNTAG()">HB_UNTAG</a><span class="c_punctuation">()</span>
178 </td>
179 </tr>
180 <tr>
181 <td class="define_keyword">#define</td>
182 <td class="function_name">
183 <a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-REVERSE:CAPS" title="HB_DIRECTION_REVERSE()">HB_DIRECTION_REVERSE</a><span class="c_punctuation">()</span>
184 </td>
185 </tr>
186 <tr>
187 <td class="define_keyword">#define</td>
188 <td class="function_name">
189 <a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-IS-BACKWARD:CAPS" title="HB_DIRECTION_IS_BACKWARD()">HB_DIRECTION_IS_BACKWARD</a><span class="c_punctuation">()</span>
190 </td>
191 </tr>
192 <tr>
193 <td class="define_keyword">#define</td>
194 <td class="function_name">
195 <a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-IS-FORWARD:CAPS" title="HB_DIRECTION_IS_FORWARD()">HB_DIRECTION_IS_FORWARD</a><span class="c_punctuation">()</span>
196 </td>
197 </tr>
198 <tr>
199 <td class="define_keyword">#define</td>
200 <td class="function_name">
201 <a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-IS-HORIZONTAL:CAPS" title="HB_DIRECTION_IS_HORIZONTAL()">HB_DIRECTION_IS_HORIZONTAL</a><span class="c_punctuation">()</span>
202 </td>
203 </tr>
204 <tr>
205 <td class="define_keyword">#define</td>
206 <td class="function_name">
207 <a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-IS-VALID:CAPS" title="HB_DIRECTION_IS_VALID()">HB_DIRECTION_IS_VALID</a><span class="c_punctuation">()</span>
208 </td>
209 </tr>
210 <tr>
211 <td class="define_keyword">#define</td>
212 <td class="function_name">
213 <a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-IS-VERTICAL:CAPS" title="HB_DIRECTION_IS_VERTICAL()">HB_DIRECTION_IS_VERTICAL</a><span class="c_punctuation">()</span>
214 </td>
215 </tr>
216 </tbody>
217 </table></div>
218 </div>
219 <div class="refsect1">
220 <a name="harfbuzz-hb-common.other"></a><h2>Types and Values</h2>
221 <div class="informaltable"><table class="informaltable" width="100%" border="0">
222 <colgroup>
223 <col width="150px" class="other_proto_type">
224 <col class="other_proto_name">
225 </colgroup>
226 <tbody>
227 <tr>
228 <td class="typedef_keyword">typedef</td>
229 <td class="function_name"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t">hb_bool_t</a></td>
230 </tr>
231 <tr>
232 <td class="typedef_keyword">typedef</td>
233 <td class="function_name"><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t">hb_codepoint_t</a></td>
234 </tr>
235 <tr>
236 <td class="datatype_keyword">enum</td>
237 <td class="function_name"><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t">hb_direction_t</a></td>
238 </tr>
239 <tr>
240 <td class="typedef_keyword">typedef</td>
241 <td class="function_name"><a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t">hb_language_t</a></td>
242 </tr>
243 <tr>
244 <td class="datatype_keyword"> </td>
245 <td class="function_name"><a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t">hb_feature_t</a></td>
246 </tr>
247 <tr>
248 <td class="datatype_keyword"> </td>
249 <td class="function_name"><a class="link" href="harfbuzz-hb-common.html#hb-variation-t" title="hb_variation_t">hb_variation_t</a></td>
250 </tr>
251 <tr>
252 <td class="typedef_keyword">typedef</td>
253 <td class="function_name"><a class="link" href="harfbuzz-hb-common.html#hb-mask-t" title="hb_mask_t">hb_mask_t</a></td>
254 </tr>
255 <tr>
256 <td class="typedef_keyword">typedef</td>
257 <td class="function_name"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t">hb_position_t</a></td>
258 </tr>
259 <tr>
260 <td class="typedef_keyword">typedef</td>
261 <td class="function_name"><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t">hb_tag_t</a></td>
262 </tr>
263 <tr>
264 <td class="datatype_keyword">enum</td>
265 <td class="function_name"><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t">hb_script_t</a></td>
266 </tr>
267 <tr>
268 <td class="datatype_keyword"> </td>
269 <td class="function_name"><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t">hb_user_data_key_t</a></td>
270 </tr>
271 <tr>
272 <td class="datatype_keyword"> </td>
273 <td class="function_name"><a class="link" href="harfbuzz-hb-common.html#hb-var-int-t" title="hb_var_int_t">hb_var_int_t</a></td>
274 </tr>
275 <tr>
276 <td class="define_keyword">#define</td>
277 <td class="function_name"><a class="link" href="harfbuzz-hb-common.html#HB-TAG-NONE:CAPS" title="HB_TAG_NONE">HB_TAG_NONE</a></td>
278 </tr>
279 <tr>
280 <td class="define_keyword">#define</td>
281 <td class="function_name"><a class="link" href="harfbuzz-hb-common.html#HB-TAG-MAX:CAPS" title="HB_TAG_MAX">HB_TAG_MAX</a></td>
282 </tr>
283 <tr>
284 <td class="define_keyword">#define</td>
285 <td class="function_name"><a class="link" href="harfbuzz-hb-common.html#HB-TAG-MAX-SIGNED:CAPS" title="HB_TAG_MAX_SIGNED">HB_TAG_MAX_SIGNED</a></td>
286 </tr>
287 <tr>
288 <td class="define_keyword">#define</td>
289 <td class="function_name"><a class="link" href="harfbuzz-hb-common.html#HB-LANGUAGE-INVALID:CAPS" title="HB_LANGUAGE_INVALID">HB_LANGUAGE_INVALID</a></td>
290 </tr>
291 <tr>
292 <td class="define_keyword">#define</td>
293 <td class="function_name"><a class="link" href="harfbuzz-hb-common.html#HB-FEATURE-GLOBAL-END:CAPS" title="HB_FEATURE_GLOBAL_END">HB_FEATURE_GLOBAL_END</a></td>
294 </tr>
295 <tr>
296 <td class="define_keyword">#define</td>
297 <td class="function_name"><a class="link" href="harfbuzz-hb-common.html#HB-FEATURE-GLOBAL-START:CAPS" title="HB_FEATURE_GLOBAL_START">HB_FEATURE_GLOBAL_START</a></td>
298 </tr>
299 </tbody>
300 </table></div>
301 </div>
302 <div class="refsect1">
303 <a name="harfbuzz-hb-common.includes"></a><h2>Includes</h2>
304 <pre class="synopsis">#include &lt;hb.h&gt;
305 </pre>
306 </div>
307 <div class="refsect1">
308 <a name="harfbuzz-hb-common.description"></a><h2>Description</h2>
309 <p>Common data types used across HarfBuzz are defined here.</p>
310 </div>
311 <div class="refsect1">
312 <a name="harfbuzz-hb-common.functions_details"></a><h2>Functions</h2>
313 <div class="refsect2">
314 <a name="hb-tag-from-string"></a><h3>hb_tag_from_string ()</h3>
315 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="returnvalue">hb_tag_t</span></a>
316 hb_tag_from_string (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>,
317                     <em class="parameter"><code><span class="type">int</span> len</code></em>);</pre>
318 <div class="refsect3">
319 <a name="hb-tag-from-string.parameters"></a><h4>Parameters</h4>
320 <div class="informaltable"><table class="informaltable" width="100%" border="0">
321 <colgroup>
322 <col width="150px" class="parameters_name">
323 <col class="parameters_description">
324 <col width="200px" class="parameters_annotations">
325 </colgroup>
326 <tbody><tr>
327 <td class="parameter_name"><p>str</p></td>
328 <td class="parameter_description"><p>. </p></td>
329 <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>
330 </tr></tbody>
331 </table></div>
332 </div>
333 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
334 </div>
335 <hr>
336 <div class="refsect2">
337 <a name="hb-tag-to-string"></a><h3>hb_tag_to_string ()</h3>
338 <pre class="programlisting"><span class="returnvalue">void</span>
339 hb_tag_to_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> tag</code></em>,
340                   <em class="parameter"><code><span class="type">char</span> *buf</code></em>);</pre>
341 <div class="refsect3">
342 <a name="hb-tag-to-string.parameters"></a><h4>Parameters</h4>
343 <div class="informaltable"><table class="informaltable" width="100%" border="0">
344 <colgroup>
345 <col width="150px" class="parameters_name">
346 <col class="parameters_description">
347 <col width="200px" class="parameters_annotations">
348 </colgroup>
349 <tbody><tr>
350 <td class="parameter_name"><p>buf</p></td>
351 <td class="parameter_description"><p>. </p></td>
352 <td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> fixed-size=4][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> uint8_t]</span></td>
353 </tr></tbody>
354 </table></div>
355 </div>
356 <p class="since">Since: <a class="link" href="api-index-0-9-5.html#api-index-0.9.5">0.9.5</a></p>
357 </div>
358 <hr>
359 <div class="refsect2">
360 <a name="hb-direction-from-string"></a><h3>hb_direction_from_string ()</h3>
361 <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>
362 hb_direction_from_string (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>,
363                           <em class="parameter"><code><span class="type">int</span> len</code></em>);</pre>
364 <div class="refsect3">
365 <a name="hb-direction-from-string.parameters"></a><h4>Parameters</h4>
366 <div class="informaltable"><table class="informaltable" width="100%" border="0">
367 <colgroup>
368 <col width="150px" class="parameters_name">
369 <col class="parameters_description">
370 <col width="200px" class="parameters_annotations">
371 </colgroup>
372 <tbody><tr>
373 <td class="parameter_name"><p>str</p></td>
374 <td class="parameter_description"><p>. </p></td>
375 <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>
376 </tr></tbody>
377 </table></div>
378 </div>
379 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
380 </div>
381 <hr>
382 <div class="refsect2">
383 <a name="hb-direction-to-string"></a><h3>hb_direction_to_string ()</h3>
384 <pre class="programlisting">const <span class="returnvalue">char</span> *
385 hb_direction_to_string (<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>
386 <div class="refsect3">
387 <a name="hb-direction-to-string.returns"></a><h4>Returns</h4>
388 <p>. </p>
389 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
390 </div>
391 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
392 </div>
393 <hr>
394 <div class="refsect2">
395 <a name="hb-script-from-iso15924-tag"></a><h3>hb_script_from_iso15924_tag ()</h3>
396 <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>
397 hb_script_from_iso15924_tag (<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> tag</code></em>);</pre>
398 <p>Converts an ISO 15924 script tag to a corresponding <a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a>.</p>
399 <div class="refsect3">
400 <a name="hb-script-from-iso15924-tag.parameters"></a><h4>Parameters</h4>
401 <div class="informaltable"><table class="informaltable" width="100%" border="0">
402 <colgroup>
403 <col width="150px" class="parameters_name">
404 <col class="parameters_description">
405 <col width="200px" class="parameters_annotations">
406 </colgroup>
407 <tbody><tr>
408 <td class="parameter_name"><p>tag</p></td>
409 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> representing an ISO 15924 tag.</p></td>
410 <td class="parameter_annotations"> </td>
411 </tr></tbody>
412 </table></div>
413 </div>
414 <div class="refsect3">
415 <a name="hb-script-from-iso15924-tag.returns"></a><h4>Returns</h4>
416 <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> corresponding to the ISO 15924 tag.</p>
417 </div>
418 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
419 </div>
420 <hr>
421 <div class="refsect2">
422 <a name="hb-script-from-string"></a><h3>hb_script_from_string ()</h3>
423 <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>
424 hb_script_from_string (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>,
425                        <em class="parameter"><code><span class="type">int</span> len</code></em>);</pre>
426 <p>Converts a string <em class="parameter"><code>str</code></em>
427  representing an ISO 15924 script tag to a
428 corresponding <a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a>. Shorthand for <a class="link" href="harfbuzz-hb-common.html#hb-tag-from-string" title="hb_tag_from_string ()"><code class="function">hb_tag_from_string()</code></a> then
429 <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>.</p>
430 <div class="refsect3">
431 <a name="hb-script-from-string.parameters"></a><h4>Parameters</h4>
432 <div class="informaltable"><table class="informaltable" width="100%" border="0">
433 <colgroup>
434 <col width="150px" class="parameters_name">
435 <col class="parameters_description">
436 <col width="200px" class="parameters_annotations">
437 </colgroup>
438 <tbody>
439 <tr>
440 <td class="parameter_name"><p>str</p></td>
441 <td class="parameter_description"><p>a string representing an
442 ISO 15924 tag. </p></td>
443 <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>
444 </tr>
445 <tr>
446 <td class="parameter_name"><p>len</p></td>
447 <td class="parameter_description"><p>length of the <em class="parameter"><code>str</code></em>
448 , 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>
449 <td class="parameter_annotations"> </td>
450 </tr>
451 </tbody>
452 </table></div>
453 </div>
454 <div class="refsect3">
455 <a name="hb-script-from-string.returns"></a><h4>Returns</h4>
456 <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> corresponding to the ISO 15924 tag.</p>
457 </div>
458 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
459 </div>
460 <hr>
461 <div class="refsect2">
462 <a name="hb-script-to-iso15924-tag"></a><h3>hb_script_to_iso15924_tag ()</h3>
463 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="returnvalue">hb_tag_t</span></a>
464 hb_script_to_iso15924_tag (<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>
465 <p>See <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>.</p>
466 <div class="refsect3">
467 <a name="hb-script-to-iso15924-tag.parameters"></a><h4>Parameters</h4>
468 <div class="informaltable"><table class="informaltable" width="100%" border="0">
469 <colgroup>
470 <col width="150px" class="parameters_name">
471 <col class="parameters_description">
472 <col width="200px" class="parameters_annotations">
473 </colgroup>
474 <tbody><tr>
475 <td class="parameter_name"><p>script</p></td>
476 <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 convert.</p></td>
477 <td class="parameter_annotations"> </td>
478 </tr></tbody>
479 </table></div>
480 </div>
481 <div class="refsect3">
482 <a name="hb-script-to-iso15924-tag.returns"></a><h4>Returns</h4>
483 <p>An <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> representing an ISO 15924 script tag.</p>
484 </div>
485 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
486 </div>
487 <hr>
488 <div class="refsect2">
489 <a name="hb-script-get-horizontal-direction"></a><h3>hb_script_get_horizontal_direction ()</h3>
490 <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>
491 hb_script_get_horizontal_direction (<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>
492 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
493 </div>
494 <hr>
495 <div class="refsect2">
496 <a name="hb-language-from-string"></a><h3>hb_language_from_string ()</h3>
497 <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>
498 hb_language_from_string (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>,
499                          <em class="parameter"><code><span class="type">int</span> len</code></em>);</pre>
500 <p>Converts <em class="parameter"><code>str</code></em>
501  representing a BCP 47 language tag to the corresponding
502 <a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a>.</p>
503 <div class="refsect3">
504 <a name="hb-language-from-string.parameters"></a><h4>Parameters</h4>
505 <div class="informaltable"><table class="informaltable" width="100%" border="0">
506 <colgroup>
507 <col width="150px" class="parameters_name">
508 <col class="parameters_description">
509 <col width="200px" class="parameters_annotations">
510 </colgroup>
511 <tbody>
512 <tr>
513 <td class="parameter_name"><p>str</p></td>
514 <td class="parameter_description"><p>a string representing
515 a BCP 47 language tag. </p></td>
516 <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>
517 </tr>
518 <tr>
519 <td class="parameter_name"><p>len</p></td>
520 <td class="parameter_description"><p>length of the <em class="parameter"><code>str</code></em>
521 , 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>
522 <td class="parameter_annotations"> </td>
523 </tr>
524 </tbody>
525 </table></div>
526 </div>
527 <div class="refsect3">
528 <a name="hb-language-from-string.returns"></a><h4>Returns</h4>
529 <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> corresponding to the BCP 47 language tag. </p>
530 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
531 </div>
532 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
533 </div>
534 <hr>
535 <div class="refsect2">
536 <a name="hb-language-to-string"></a><h3>hb_language_to_string ()</h3>
537 <pre class="programlisting">const <span class="returnvalue">char</span> *
538 hb_language_to_string (<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>
539 <p>See <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>.</p>
540 <div class="refsect3">
541 <a name="hb-language-to-string.parameters"></a><h4>Parameters</h4>
542 <div class="informaltable"><table class="informaltable" width="100%" border="0">
543 <colgroup>
544 <col width="150px" class="parameters_name">
545 <col class="parameters_description">
546 <col width="200px" class="parameters_annotations">
547 </colgroup>
548 <tbody><tr>
549 <td class="parameter_name"><p>language</p></td>
550 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> to convert.</p></td>
551 <td class="parameter_annotations"> </td>
552 </tr></tbody>
553 </table></div>
554 </div>
555 <div class="refsect3">
556 <a name="hb-language-to-string.returns"></a><h4>Returns</h4>
557 <p>A <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated string representing the <em class="parameter"><code>language</code></em>
558 . Must not be freed by
559 the caller. </p>
560 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
561 </div>
562 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
563 </div>
564 <hr>
565 <div class="refsect2">
566 <a name="hb-language-get-default"></a><h3>hb_language_get_default ()</h3>
567 <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>
568 hb_language_get_default (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
569 <p>Get default language from current locale.</p>
570 <p>Note that the first time this function is called, it calls
571 "setlocale (LC_CTYPE, nullptr)" to fetch current locale.  The underlying
572 setlocale function is, in many implementations, NOT threadsafe.  To avoid
573 problems, call this function once before multiple threads can call it.
574 This function is only used from <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-guess-segment-properties" title="hb_buffer_guess_segment_properties ()"><code class="function">hb_buffer_guess_segment_properties()</code></a> by
575 HarfBuzz itself.</p>
576 <div class="refsect3">
577 <a name="hb-language-get-default.returns"></a><h4>Returns</h4>
578 <p>. </p>
579 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
580 </div>
581 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
582 </div>
583 <hr>
584 <div class="refsect2">
585 <a name="hb-feature-from-string"></a><h3>hb_feature_from_string ()</h3>
586 <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>
587 hb_feature_from_string (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>,
588                         <em class="parameter"><code><span class="type">int</span> len</code></em>,
589                         <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> *feature</code></em>);</pre>
590 <p>Parses a string into a <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a>.</p>
591 <p>The format for specifying feature strings follows. All valid CSS
592 font-feature-settings values other than 'normal' and the global values are
593 also accepted, though not documented below. CSS string escapes are not
594 supported.</p>
595 <p>The range indices refer to the positions between Unicode characters. The
596 position before the first character is always 0.</p>
597 <p>The format is Python-esque.  Here is how it all works:</p>
598 <div class="informaltable"><table class="informaltable" width="100%" border="0">
599 <colgroup>
600 <col>
601 <col>
602 <col>
603 <col>
604 <col>
605 </colgroup>
606 <thead><tr>
607 <th align="left">Syntax</th>
608 <th align="left">Value</th>
609 <th align="left">Start</th>
610 <th align="left">End</th>
611 <td class="auto-generated"> </td>
612 </tr></thead>
613 <tbody>
614 <tr>
615 <td align="left">Setting value:</td>
616 <td class="auto-generated"> </td>
617 <td class="auto-generated"> </td>
618 <td class="auto-generated"> </td>
619 <td class="auto-generated"> </td>
620 </tr>
621 <tr>
622 <td align="left">kern</td>
623 <td align="left">1</td>
624 <td align="left">0</td>
625 <td align="left">∞</td>
626 <td align="left">Turn feature on</td>
627 </tr>
628 <tr>
629 <td align="left">+kern</td>
630 <td align="left">1</td>
631 <td align="left">0</td>
632 <td align="left">∞</td>
633 <td align="left">Turn feature on</td>
634 </tr>
635 <tr>
636 <td align="left">-kern</td>
637 <td align="left">0</td>
638 <td align="left">0</td>
639 <td align="left">∞</td>
640 <td align="left">Turn feature off</td>
641 </tr>
642 <tr>
643 <td align="left">kern=0</td>
644 <td align="left">0</td>
645 <td align="left">0</td>
646 <td align="left">∞</td>
647 <td align="left">Turn feature off</td>
648 </tr>
649 <tr>
650 <td align="left">kern=1</td>
651 <td align="left">1</td>
652 <td align="left">0</td>
653 <td align="left">∞</td>
654 <td align="left">Turn feature on</td>
655 </tr>
656 <tr>
657 <td align="left">aalt=2</td>
658 <td align="left">2</td>
659 <td align="left">0</td>
660 <td align="left">∞</td>
661 <td align="left">Choose 2nd alternate</td>
662 </tr>
663 <tr>
664 <td align="left">Setting index:</td>
665 <td class="auto-generated"> </td>
666 <td class="auto-generated"> </td>
667 <td class="auto-generated"> </td>
668 <td class="auto-generated"> </td>
669 </tr>
670 <tr>
671 <td align="left">kern[]</td>
672 <td align="left">1</td>
673 <td align="left">0</td>
674 <td align="left">∞</td>
675 <td align="left">Turn feature on</td>
676 </tr>
677 <tr>
678 <td align="left">kern[:]</td>
679 <td align="left">1</td>
680 <td align="left">0</td>
681 <td align="left">∞</td>
682 <td align="left">Turn feature on</td>
683 </tr>
684 <tr>
685 <td align="left">kern[5:]</td>
686 <td align="left">1</td>
687 <td align="left">5</td>
688 <td align="left">∞</td>
689 <td align="left">Turn feature on, partial</td>
690 </tr>
691 <tr>
692 <td align="left">kern[:5]</td>
693 <td align="left">1</td>
694 <td align="left">0</td>
695 <td align="left">5</td>
696 <td align="left">Turn feature on, partial</td>
697 </tr>
698 <tr>
699 <td align="left">kern[3:5]</td>
700 <td align="left">1</td>
701 <td align="left">3</td>
702 <td align="left">5</td>
703 <td align="left">Turn feature on, range</td>
704 </tr>
705 <tr>
706 <td align="left">kern[3]</td>
707 <td align="left">1</td>
708 <td align="left">3</td>
709 <td align="left">3+1</td>
710 <td align="left">Turn feature on, single char</td>
711 </tr>
712 <tr>
713 <td align="left">Mixing it all:</td>
714 <td class="auto-generated"> </td>
715 <td class="auto-generated"> </td>
716 <td class="auto-generated"> </td>
717 <td class="auto-generated"> </td>
718 </tr>
719 <tr>
720 <td align="left">aalt[3:5]=2</td>
721 <td align="left">2</td>
722 <td align="left">3</td>
723 <td align="left">5</td>
724 <td align="left">Turn 2nd alternate on for range</td>
725 </tr>
726 </tbody>
727 </table></div>
728 <div class="refsect3">
729 <a name="hb-feature-from-string.parameters"></a><h4>Parameters</h4>
730 <div class="informaltable"><table class="informaltable" width="100%" border="0">
731 <colgroup>
732 <col width="150px" class="parameters_name">
733 <col class="parameters_description">
734 <col width="200px" class="parameters_annotations">
735 </colgroup>
736 <tbody>
737 <tr>
738 <td class="parameter_name"><p>str</p></td>
739 <td class="parameter_description"><p>a string to parse. </p></td>
740 <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>
741 </tr>
742 <tr>
743 <td class="parameter_name"><p>len</p></td>
744 <td class="parameter_description"><p>length of <em class="parameter"><code>str</code></em>
745 , 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>
746 <td class="parameter_annotations"> </td>
747 </tr>
748 <tr>
749 <td class="parameter_name"><p>feature</p></td>
750 <td class="parameter_description"><p>the <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> to initialize with the parsed values. </p></td>
751 <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>
752 </tr>
753 </tbody>
754 </table></div>
755 </div>
756 <div class="refsect3">
757 <a name="hb-feature-from-string.returns"></a><h4>Returns</h4>
758 <p><code class="literal">true</code> if <em class="parameter"><code>str</code></em>
759 is successfully parsed, <code class="literal">false</code> otherwise.</p>
760 </div>
761 <p class="since">Since: <a class="link" href="api-index-0-9-5.html#api-index-0.9.5">0.9.5</a></p>
762 </div>
763 <hr>
764 <div class="refsect2">
765 <a name="hb-feature-to-string"></a><h3>hb_feature_to_string ()</h3>
766 <pre class="programlisting"><span class="returnvalue">void</span>
767 hb_feature_to_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> *feature</code></em>,
768                       <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
769                       <em class="parameter"><code>unsigned <span class="type">int</span> size</code></em>);</pre>
770 <p>Converts a <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> into a <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated string in the format
771 understood by <a class="link" href="harfbuzz-hb-common.html#hb-feature-from-string" title="hb_feature_from_string ()"><code class="function">hb_feature_from_string()</code></a>. The client in responsible for
772 allocating big enough size for <em class="parameter"><code>buf</code></em>
773 , 128 bytes is more than enough.</p>
774 <div class="refsect3">
775 <a name="hb-feature-to-string.parameters"></a><h4>Parameters</h4>
776 <div class="informaltable"><table class="informaltable" width="100%" border="0">
777 <colgroup>
778 <col width="150px" class="parameters_name">
779 <col class="parameters_description">
780 <col width="200px" class="parameters_annotations">
781 </colgroup>
782 <tbody>
783 <tr>
784 <td class="parameter_name"><p>feature</p></td>
785 <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> to convert</p></td>
786 <td class="parameter_annotations"> </td>
787 </tr>
788 <tr>
789 <td class="parameter_name"><p>buf</p></td>
790 <td class="parameter_description"><p>output string. </p></td>
791 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size][<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
792 </tr>
793 <tr>
794 <td class="parameter_name"><p>size</p></td>
795 <td class="parameter_description"><p>the allocated size of <em class="parameter"><code>buf</code></em>
796 </p></td>
797 <td class="parameter_annotations"> </td>
798 </tr>
799 </tbody>
800 </table></div>
801 </div>
802 <p class="since">Since: <a class="link" href="api-index-0-9-5.html#api-index-0.9.5">0.9.5</a></p>
803 </div>
804 <hr>
805 <div class="refsect2">
806 <a name="hb-variation-from-string"></a><h3>hb_variation_from_string ()</h3>
807 <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>
808 hb_variation_from_string (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>,
809                           <em class="parameter"><code><span class="type">int</span> len</code></em>,
810                           <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-variation-t" title="hb_variation_t"><span class="type">hb_variation_t</span></a> *variation</code></em>);</pre>
811 <p class="since">Since: <a class="link" href="api-index-1-4-2.html#api-index-1.4.2">1.4.2</a></p>
812 </div>
813 <hr>
814 <div class="refsect2">
815 <a name="hb-variation-to-string"></a><h3>hb_variation_to_string ()</h3>
816 <pre class="programlisting"><span class="returnvalue">void</span>
817 hb_variation_to_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-variation-t" title="hb_variation_t"><span class="type">hb_variation_t</span></a> *variation</code></em>,
818                         <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
819                         <em class="parameter"><code>unsigned <span class="type">int</span> size</code></em>);</pre>
820 <p class="since">Since: <a class="link" href="api-index-1-4-2.html#api-index-1.4.2">1.4.2</a></p>
821 </div>
822 <hr>
823 <div class="refsect2">
824 <a name="hb-destroy-func-t"></a><h3>hb_destroy_func_t ()</h3>
825 <pre class="programlisting"><span class="returnvalue">void</span>
826 <span class="c_punctuation">(</span>*hb_destroy_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
827 </div>
828 <hr>
829 <div class="refsect2">
830 <a name="HB-TAG:CAPS"></a><h3>HB_TAG()</h3>
831 <pre class="programlisting">#define HB_TAG(c1,c2,c3,c4) ((hb_tag_t)((((uint32_t)(c1)&amp;0xFF)&lt;&lt;24)|(((uint32_t)(c2)&amp;0xFF)&lt;&lt;16)|(((uint32_t)(c3)&amp;0xFF)&lt;&lt;8)|((uint32_t)(c4)&amp;0xFF)))
832 </pre>
833 </div>
834 <hr>
835 <div class="refsect2">
836 <a name="HB-UNTAG:CAPS"></a><h3>HB_UNTAG()</h3>
837 <pre class="programlisting">#define HB_UNTAG(tag)   (uint8_t)(((tag)&gt;&gt;24)&amp;0xFF), (uint8_t)(((tag)&gt;&gt;16)&amp;0xFF), (uint8_t)(((tag)&gt;&gt;8)&amp;0xFF), (uint8_t)((tag)&amp;0xFF)
838 </pre>
839 </div>
840 <hr>
841 <div class="refsect2">
842 <a name="HB-DIRECTION-REVERSE:CAPS"></a><h3>HB_DIRECTION_REVERSE()</h3>
843 <pre class="programlisting">#define HB_DIRECTION_REVERSE(dir) ((hb_direction_t) (((unsigned int) (dir)) ^ 1))
844 </pre>
845 </div>
846 <hr>
847 <div class="refsect2">
848 <a name="HB-DIRECTION-IS-BACKWARD:CAPS"></a><h3>HB_DIRECTION_IS_BACKWARD()</h3>
849 <pre class="programlisting">#define HB_DIRECTION_IS_BACKWARD(dir) ((((unsigned int) (dir)) &amp; ~2U) == 5)
850 </pre>
851 </div>
852 <hr>
853 <div class="refsect2">
854 <a name="HB-DIRECTION-IS-FORWARD:CAPS"></a><h3>HB_DIRECTION_IS_FORWARD()</h3>
855 <pre class="programlisting">#define HB_DIRECTION_IS_FORWARD(dir) ((((unsigned int) (dir)) &amp; ~2U) == 4)
856 </pre>
857 </div>
858 <hr>
859 <div class="refsect2">
860 <a name="HB-DIRECTION-IS-HORIZONTAL:CAPS"></a><h3>HB_DIRECTION_IS_HORIZONTAL()</h3>
861 <pre class="programlisting">#define HB_DIRECTION_IS_HORIZONTAL(dir) ((((unsigned int) (dir)) &amp; ~1U) == 4)
862 </pre>
863 </div>
864 <hr>
865 <div class="refsect2">
866 <a name="HB-DIRECTION-IS-VALID:CAPS"></a><h3>HB_DIRECTION_IS_VALID()</h3>
867 <pre class="programlisting">#define HB_DIRECTION_IS_VALID(dir) ((((unsigned int) (dir)) &amp; ~3U) == 4)
868 </pre>
869 </div>
870 <hr>
871 <div class="refsect2">
872 <a name="HB-DIRECTION-IS-VERTICAL:CAPS"></a><h3>HB_DIRECTION_IS_VERTICAL()</h3>
873 <pre class="programlisting">#define HB_DIRECTION_IS_VERTICAL(dir) ((((unsigned int) (dir)) &amp; ~1U) == 6)
874 </pre>
875 </div>
876 </div>
877 <div class="refsect1">
878 <a name="harfbuzz-hb-common.other_details"></a><h2>Types and Values</h2>
879 <div class="refsect2">
880 <a name="hb-bool-t"></a><h3>hb_bool_t</h3>
881 <pre class="programlisting">typedef int hb_bool_t;
882 </pre>
883 </div>
884 <hr>
885 <div class="refsect2">
886 <a name="hb-codepoint-t"></a><h3>hb_codepoint_t</h3>
887 <pre class="programlisting">typedef uint32_t hb_codepoint_t;
888 </pre>
889 </div>
890 <hr>
891 <div class="refsect2">
892 <a name="hb-direction-t"></a><h3>enum hb_direction_t</h3>
893 <div class="refsect3">
894 <a name="hb-direction-t.members"></a><h4>Members</h4>
895 <div class="informaltable"><table class="informaltable" width="100%" border="0">
896 <colgroup>
897 <col width="300px" class="enum_members_name">
898 <col class="enum_members_description">
899 <col width="200px" class="enum_members_annotations">
900 </colgroup>
901 <tbody>
902 <tr>
903 <td class="enum_member_name"><p><a name="HB-DIRECTION-INVALID:CAPS"></a>HB_DIRECTION_INVALID</p></td>
904 <td class="enum_member_description">
905 <p>Initial, unset direction.</p>
906 </td>
907 <td class="enum_member_annotations"> </td>
908 </tr>
909 <tr>
910 <td class="enum_member_name"><p><a name="HB-DIRECTION-LTR:CAPS"></a>HB_DIRECTION_LTR</p></td>
911 <td class="enum_member_description">
912 <p>Text is set horizontally from left to right.</p>
913 </td>
914 <td class="enum_member_annotations"> </td>
915 </tr>
916 <tr>
917 <td class="enum_member_name"><p><a name="HB-DIRECTION-RTL:CAPS"></a>HB_DIRECTION_RTL</p></td>
918 <td class="enum_member_description">
919 <p>Text is set horizontally from right to left.</p>
920 </td>
921 <td class="enum_member_annotations"> </td>
922 </tr>
923 <tr>
924 <td class="enum_member_name"><p><a name="HB-DIRECTION-TTB:CAPS"></a>HB_DIRECTION_TTB</p></td>
925 <td class="enum_member_description">
926 <p>Text is set vertically from top to bottom.</p>
927 </td>
928 <td class="enum_member_annotations"> </td>
929 </tr>
930 <tr>
931 <td class="enum_member_name"><p><a name="HB-DIRECTION-BTT:CAPS"></a>HB_DIRECTION_BTT</p></td>
932 <td class="enum_member_description">
933 <p>Text is set vertically from bottom to top.</p>
934 </td>
935 <td class="enum_member_annotations"> </td>
936 </tr>
937 </tbody>
938 </table></div>
939 </div>
940 </div>
941 <hr>
942 <div class="refsect2">
943 <a name="hb-language-t"></a><h3>hb_language_t</h3>
944 <pre class="programlisting">typedef const struct hb_language_impl_t *hb_language_t;
945 </pre>
946 </div>
947 <hr>
948 <div class="refsect2">
949 <a name="hb-feature-t"></a><h3>hb_feature_t</h3>
950 <pre class="programlisting">typedef struct {
951   hb_tag_t      tag;
952   uint32_t      value;
953   unsigned int  start;
954   unsigned int  end;
955 } hb_feature_t;
956 </pre>
957 <p>The <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> is the structure that holds information about requested
958 feature application. The feature will be applied with the given value to all
959 glyphs which are in clusters between <em class="parameter"><code>start</code></em>
960  (inclusive) and <em class="parameter"><code>end</code></em>
961  (exclusive).
962 Setting start to <em class="parameter"><code>HB_FEATURE_GLOBAL_START</code></em>
963  and end to <em class="parameter"><code>HB_FEATURE_GLOBAL_END</code></em>
964
965 specifies that the feature always applies to the entire buffer.</p>
966 <div class="refsect3">
967 <a name="hb-feature-t.members"></a><h4>Members</h4>
968 <div class="informaltable"><table class="informaltable" width="100%" border="0">
969 <colgroup>
970 <col width="300px" class="struct_members_name">
971 <col class="struct_members_description">
972 <col width="200px" class="struct_members_annotations">
973 </colgroup>
974 <tbody>
975 <tr>
976 <td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> <em class="structfield"><code><a name="hb-feature-t.tag"></a>tag</code></em>;</p></td>
977 <td class="struct_member_description"><p>a feature tag</p></td>
978 <td class="struct_member_annotations"> </td>
979 </tr>
980 <tr>
981 <td class="struct_member_name"><p><span class="type">uint32_t</span> <em class="structfield"><code><a name="hb-feature-t.value"></a>value</code></em>;</p></td>
982 <td class="struct_member_description"><p>0 disables the feature, non-zero (usually 1) enables the feature.
983 For features implemented as lookup type 3 (like 'salt') the <em class="parameter"><code>value</code></em>
984 is a one
985 based index into the alternates.</p></td>
986 <td class="struct_member_annotations"> </td>
987 </tr>
988 <tr>
989 <td class="struct_member_name"><p>unsigned <span class="type">int</span> <em class="structfield"><code><a name="hb-feature-t.start"></a>start</code></em>;</p></td>
990 <td class="struct_member_description"><p>the cluster to start applying this feature setting (inclusive).</p></td>
991 <td class="struct_member_annotations"> </td>
992 </tr>
993 <tr>
994 <td class="struct_member_name"><p>unsigned <span class="type">int</span> <em class="structfield"><code><a name="hb-feature-t.end"></a>end</code></em>;</p></td>
995 <td class="struct_member_description"><p>the cluster to end applying this feature setting (exclusive).</p></td>
996 <td class="struct_member_annotations"> </td>
997 </tr>
998 </tbody>
999 </table></div>
1000 </div>
1001 </div>
1002 <hr>
1003 <div class="refsect2">
1004 <a name="hb-variation-t"></a><h3>hb_variation_t</h3>
1005 <pre class="programlisting">typedef struct {
1006   hb_tag_t tag;
1007   float    value;
1008 } hb_variation_t;
1009 </pre>
1010 <p class="since">Since: <a class="link" href="api-index-1-4-2.html#api-index-1.4.2">1.4.2</a></p>
1011 </div>
1012 <hr>
1013 <div class="refsect2">
1014 <a name="hb-mask-t"></a><h3>hb_mask_t</h3>
1015 <pre class="programlisting">typedef uint32_t hb_mask_t;
1016 </pre>
1017 </div>
1018 <hr>
1019 <div class="refsect2">
1020 <a name="hb-position-t"></a><h3>hb_position_t</h3>
1021 <pre class="programlisting">typedef int32_t hb_position_t;
1022 </pre>
1023 </div>
1024 <hr>
1025 <div class="refsect2">
1026 <a name="hb-tag-t"></a><h3>hb_tag_t</h3>
1027 <pre class="programlisting">typedef uint32_t hb_tag_t;
1028 </pre>
1029 </div>
1030 <hr>
1031 <div class="refsect2">
1032 <a name="hb-script-t"></a><h3>enum hb_script_t</h3>
1033 <div class="refsect3">
1034 <a name="hb-script-t.members"></a><h4>Members</h4>
1035 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1036 <colgroup>
1037 <col width="300px" class="enum_members_name">
1038 <col class="enum_members_description">
1039 <col width="200px" class="enum_members_annotations">
1040 </colgroup>
1041 <tbody>
1042 <tr>
1043 <td class="enum_member_name"><p><a name="HB-SCRIPT-BASSA-VAH:CAPS"></a>HB_SCRIPT_BASSA_VAH</p></td>
1044 <td> </td>
1045 <td> </td>
1046 </tr>
1047 <tr>
1048 <td class="enum_member_name"><p><a name="HB-SCRIPT-ADLAM:CAPS"></a>HB_SCRIPT_ADLAM</p></td>
1049 <td> </td>
1050 <td> </td>
1051 </tr>
1052 <tr>
1053 <td class="enum_member_name"><p><a name="HB-SCRIPT-MASARAM-GONDI:CAPS"></a>HB_SCRIPT_MASARAM_GONDI</p></td>
1054 <td> </td>
1055 <td> </td>
1056 </tr>
1057 <tr>
1058 <td class="enum_member_name"><p><a name="HB-SCRIPT-DOGRA:CAPS"></a>HB_SCRIPT_DOGRA</p></td>
1059 <td> </td>
1060 <td> </td>
1061 </tr>
1062 <tr>
1063 <td class="enum_member_name"><p><a name="HB-SCRIPT-ELYMAIC:CAPS"></a>HB_SCRIPT_ELYMAIC</p></td>
1064 <td> </td>
1065 <td> </td>
1066 </tr>
1067 <tr>
1068 <td class="enum_member_name"><p><a name="HB-SCRIPT-CHORASMIAN:CAPS"></a>HB_SCRIPT_CHORASMIAN</p></td>
1069 <td> </td>
1070 <td> </td>
1071 </tr>
1072 <tr>
1073 <td class="enum_member_name"><p><a name="HB-SCRIPT-INVALID:CAPS"></a>HB_SCRIPT_INVALID</p></td>
1074 <td> </td>
1075 <td> </td>
1076 </tr>
1077 <tr>
1078 <td class="enum_member_name"><p><a name="HB-SCRIPT-MAX-VALUE:CAPS"></a>_HB_SCRIPT_MAX_VALUE</p></td>
1079 <td> </td>
1080 <td> </td>
1081 </tr>
1082 <tr>
1083 <td class="enum_member_name"><p><a name="HB-SCRIPT-MAX-VALUE-SIGNED:CAPS"></a>_HB_SCRIPT_MAX_VALUE_SIGNED</p></td>
1084 <td> </td>
1085 <td> </td>
1086 </tr>
1087 </tbody>
1088 </table></div>
1089 </div>
1090 </div>
1091 <hr>
1092 <div class="refsect2">
1093 <a name="hb-user-data-key-t"></a><h3>hb_user_data_key_t</h3>
1094 <pre class="programlisting">typedef struct {
1095 } hb_user_data_key_t;
1096 </pre>
1097 </div>
1098 <hr>
1099 <div class="refsect2">
1100 <a name="hb-var-int-t"></a><h3>hb_var_int_t</h3>
1101 </div>
1102 <hr>
1103 <div class="refsect2">
1104 <a name="HB-TAG-NONE:CAPS"></a><h3>HB_TAG_NONE</h3>
1105 <pre class="programlisting">#define HB_TAG_NONE HB_TAG(0,0,0,0)
1106 </pre>
1107 </div>
1108 <hr>
1109 <div class="refsect2">
1110 <a name="HB-TAG-MAX:CAPS"></a><h3>HB_TAG_MAX</h3>
1111 <pre class="programlisting">#define HB_TAG_MAX HB_TAG(0xff,0xff,0xff,0xff)
1112 </pre>
1113 </div>
1114 <hr>
1115 <div class="refsect2">
1116 <a name="HB-TAG-MAX-SIGNED:CAPS"></a><h3>HB_TAG_MAX_SIGNED</h3>
1117 <pre class="programlisting">#define HB_TAG_MAX_SIGNED HB_TAG(0x7f,0xff,0xff,0xff)
1118 </pre>
1119 </div>
1120 <hr>
1121 <div class="refsect2">
1122 <a name="HB-LANGUAGE-INVALID:CAPS"></a><h3>HB_LANGUAGE_INVALID</h3>
1123 <pre class="programlisting">#define HB_LANGUAGE_INVALID ((hb_language_t) 0)
1124 </pre>
1125 </div>
1126 <hr>
1127 <div class="refsect2">
1128 <a name="HB-FEATURE-GLOBAL-END:CAPS"></a><h3>HB_FEATURE_GLOBAL_END</h3>
1129 <pre class="programlisting">#define HB_FEATURE_GLOBAL_END ((unsigned int) -1)
1130 </pre>
1131 <p class="since">Since: <a class="link" href="api-index-2-0-0.html#api-index-2.0.0">2.0.0</a></p>
1132 </div>
1133 <hr>
1134 <div class="refsect2">
1135 <a name="HB-FEATURE-GLOBAL-START:CAPS"></a><h3>HB_FEATURE_GLOBAL_START</h3>
1136 <pre class="programlisting">#define HB_FEATURE_GLOBAL_START 0
1137 </pre>
1138 <p class="since">Since: <a class="link" href="api-index-2-0-0.html#api-index-2.0.0">2.0.0</a></p>
1139 </div>
1140 </div>
1141 </div>
1142 <div class="footer">
1143 <hr>Generated by GTK-Doc V1.32.1</div>
1144 </body>
1145 </html>