Imported Upstream version 8.2.2
[platform/upstream/harfbuzz.git] / docs / html / harfbuzz-hb-face.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-face: HarfBuzz Manual</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7 <link rel="home" href="index.html" title="HarfBuzz Manual">
8 <link rel="up" href="core-api.html" title="Core API">
9 <link rel="prev" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">
10 <link rel="next" href="harfbuzz-hb-font.html" title="hb-font">
11 <meta name="generator" content="GTK-Doc V1.32 (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-face.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="core-api.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
22 <td><a accesskey="p" href="harfbuzz-hb-deprecated.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
23 <td><a accesskey="n" href="harfbuzz-hb-font.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-face"></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-face.top_of_page"></a>hb-face</span></h2>
30 <p>hb-face — Font face objects</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-face.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">unsigned <span class="returnvalue">int</span>
44 </td>
45 <td class="function_name">
46 <a class="link" href="harfbuzz-hb-face.html#hb-face-count" title="hb_face_count ()">hb_face_count</a> <span class="c_punctuation">()</span>
47 </td>
48 </tr>
49 <tr>
50 <td class="function_type">
51 <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
52 </td>
53 <td class="function_name">
54 <a class="link" href="harfbuzz-hb-face.html#hb-face-create" title="hb_face_create ()">hb_face_create</a> <span class="c_punctuation">()</span>
55 </td>
56 </tr>
57 <tr>
58 <td class="function_type">
59 <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
60 </td>
61 <td class="function_name">
62 <a class="link" href="harfbuzz-hb-face.html#hb-face-create-for-tables" title="hb_face_create_for_tables ()">hb_face_create_for_tables</a> <span class="c_punctuation">()</span>
63 </td>
64 </tr>
65 <tr>
66 <td class="function_type">
67 <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
68 </td>
69 <td class="function_name">
70 <a class="link" href="harfbuzz-hb-face.html#hb-face-get-empty" title="hb_face_get_empty ()">hb_face_get_empty</a> <span class="c_punctuation">()</span>
71 </td>
72 </tr>
73 <tr>
74 <td class="function_type">
75 <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
76 </td>
77 <td class="function_name">
78 <a class="link" href="harfbuzz-hb-face.html#hb-face-reference" title="hb_face_reference ()">hb_face_reference</a> <span class="c_punctuation">()</span>
79 </td>
80 </tr>
81 <tr>
82 <td class="function_type">
83 <span class="returnvalue">void</span>
84 </td>
85 <td class="function_name">
86 <a class="link" href="harfbuzz-hb-face.html#hb-face-destroy" title="hb_face_destroy ()">hb_face_destroy</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-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
92 </td>
93 <td class="function_name">
94 <a class="link" href="harfbuzz-hb-face.html#hb-face-set-user-data" title="hb_face_set_user_data ()">hb_face_set_user_data</a> <span class="c_punctuation">()</span>
95 </td>
96 </tr>
97 <tr>
98 <td class="function_type">
99 <span class="returnvalue">void</span> *
100 </td>
101 <td class="function_name">
102 <a class="link" href="harfbuzz-hb-face.html#hb-face-get-user-data" title="hb_face_get_user_data ()">hb_face_get_user_data</a> <span class="c_punctuation">()</span>
103 </td>
104 </tr>
105 <tr>
106 <td class="function_type">
107 <span class="returnvalue">void</span>
108 </td>
109 <td class="function_name">
110 <a class="link" href="harfbuzz-hb-face.html#hb-face-make-immutable" title="hb_face_make_immutable ()">hb_face_make_immutable</a> <span class="c_punctuation">()</span>
111 </td>
112 </tr>
113 <tr>
114 <td class="function_type">
115 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
116 </td>
117 <td class="function_name">
118 <a class="link" href="harfbuzz-hb-face.html#hb-face-is-immutable" title="hb_face_is_immutable ()">hb_face_is_immutable</a> <span class="c_punctuation">()</span>
119 </td>
120 </tr>
121 <tr>
122 <td class="function_type">unsigned <span class="returnvalue">int</span>
123 </td>
124 <td class="function_name">
125 <a class="link" href="harfbuzz-hb-face.html#hb-face-get-table-tags" title="hb_face_get_table_tags ()">hb_face_get_table_tags</a> <span class="c_punctuation">()</span>
126 </td>
127 </tr>
128 <tr>
129 <td class="function_type">
130 <span class="returnvalue">void</span>
131 </td>
132 <td class="function_name">
133 <a class="link" href="harfbuzz-hb-face.html#hb-face-set-glyph-count" title="hb_face_set_glyph_count ()">hb_face_set_glyph_count</a> <span class="c_punctuation">()</span>
134 </td>
135 </tr>
136 <tr>
137 <td class="function_type">unsigned <span class="returnvalue">int</span>
138 </td>
139 <td class="function_name">
140 <a class="link" href="harfbuzz-hb-face.html#hb-face-get-glyph-count" title="hb_face_get_glyph_count ()">hb_face_get_glyph_count</a> <span class="c_punctuation">()</span>
141 </td>
142 </tr>
143 <tr>
144 <td class="function_type">
145 <span class="returnvalue">void</span>
146 </td>
147 <td class="function_name">
148 <a class="link" href="harfbuzz-hb-face.html#hb-face-set-index" title="hb_face_set_index ()">hb_face_set_index</a> <span class="c_punctuation">()</span>
149 </td>
150 </tr>
151 <tr>
152 <td class="function_type">unsigned <span class="returnvalue">int</span>
153 </td>
154 <td class="function_name">
155 <a class="link" href="harfbuzz-hb-face.html#hb-face-get-index" title="hb_face_get_index ()">hb_face_get_index</a> <span class="c_punctuation">()</span>
156 </td>
157 </tr>
158 <tr>
159 <td class="function_type">
160 <span class="returnvalue">void</span>
161 </td>
162 <td class="function_name">
163 <a class="link" href="harfbuzz-hb-face.html#hb-face-set-upem" title="hb_face_set_upem ()">hb_face_set_upem</a> <span class="c_punctuation">()</span>
164 </td>
165 </tr>
166 <tr>
167 <td class="function_type">unsigned <span class="returnvalue">int</span>
168 </td>
169 <td class="function_name">
170 <a class="link" href="harfbuzz-hb-face.html#hb-face-get-upem" title="hb_face_get_upem ()">hb_face_get_upem</a> <span class="c_punctuation">()</span>
171 </td>
172 </tr>
173 <tr>
174 <td class="function_type">
175 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
176 </td>
177 <td class="function_name">
178 <a class="link" href="harfbuzz-hb-face.html#hb-face-reference-blob" title="hb_face_reference_blob ()">hb_face_reference_blob</a> <span class="c_punctuation">()</span>
179 </td>
180 </tr>
181 <tr>
182 <td class="function_type">
183 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
184 </td>
185 <td class="function_name">
186 <a class="link" href="harfbuzz-hb-face.html#hb-face-reference-table" title="hb_face_reference_table ()">hb_face_reference_table</a> <span class="c_punctuation">()</span>
187 </td>
188 </tr>
189 <tr>
190 <td class="function_type">
191 <span class="returnvalue">void</span>
192 </td>
193 <td class="function_name">
194 <a class="link" href="harfbuzz-hb-face.html#hb-face-collect-unicodes" title="hb_face_collect_unicodes ()">hb_face_collect_unicodes</a> <span class="c_punctuation">()</span>
195 </td>
196 </tr>
197 <tr>
198 <td class="function_type">
199 <span class="returnvalue">void</span>
200 </td>
201 <td class="function_name">
202 <a class="link" href="harfbuzz-hb-face.html#hb-face-collect-nominal-glyph-mapping" title="hb_face_collect_nominal_glyph_mapping ()">hb_face_collect_nominal_glyph_mapping</a> <span class="c_punctuation">()</span>
203 </td>
204 </tr>
205 <tr>
206 <td class="function_type">
207 <span class="returnvalue">void</span>
208 </td>
209 <td class="function_name">
210 <a class="link" href="harfbuzz-hb-face.html#hb-face-collect-variation-selectors" title="hb_face_collect_variation_selectors ()">hb_face_collect_variation_selectors</a> <span class="c_punctuation">()</span>
211 </td>
212 </tr>
213 <tr>
214 <td class="function_type">
215 <span class="returnvalue">void</span>
216 </td>
217 <td class="function_name">
218 <a class="link" href="harfbuzz-hb-face.html#hb-face-collect-variation-unicodes" title="hb_face_collect_variation_unicodes ()">hb_face_collect_variation_unicodes</a> <span class="c_punctuation">()</span>
219 </td>
220 </tr>
221 <tr>
222 <td class="function_type">
223 <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
224 </td>
225 <td class="function_name">
226 <a class="link" href="harfbuzz-hb-face.html#hb-face-builder-create" title="hb_face_builder_create ()">hb_face_builder_create</a> <span class="c_punctuation">()</span>
227 </td>
228 </tr>
229 <tr>
230 <td class="function_type">
231 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
232 </td>
233 <td class="function_name">
234 <a class="link" href="harfbuzz-hb-face.html#hb-face-builder-add-table" title="hb_face_builder_add_table ()">hb_face_builder_add_table</a> <span class="c_punctuation">()</span>
235 </td>
236 </tr>
237 <tr>
238 <td class="function_type">
239 <span class="returnvalue">void</span>
240 </td>
241 <td class="function_name">
242 <a class="link" href="harfbuzz-hb-face.html#hb-face-builder-sort-tables" title="hb_face_builder_sort_tables ()">hb_face_builder_sort_tables</a> <span class="c_punctuation">()</span>
243 </td>
244 </tr>
245 </tbody>
246 </table></div>
247 </div>
248 <div class="refsect1">
249 <a name="harfbuzz-hb-face.other"></a><h2>Types and Values</h2>
250 <div class="informaltable"><table class="informaltable" width="100%" border="0">
251 <colgroup>
252 <col width="150px" class="other_proto_type">
253 <col class="other_proto_name">
254 </colgroup>
255 <tbody><tr>
256 <td class="typedef_keyword">typedef</td>
257 <td class="function_name"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t">hb_face_t</a></td>
258 </tr></tbody>
259 </table></div>
260 </div>
261 <div class="refsect1">
262 <a name="harfbuzz-hb-face.includes"></a><h2>Includes</h2>
263 <pre class="synopsis">#include &lt;hb.h&gt;
264 </pre>
265 </div>
266 <div class="refsect1">
267 <a name="harfbuzz-hb-face.description"></a><h2>Description</h2>
268 <p>A font face is an object that represents a single face from within a
269 font family.</p>
270 <p>More precisely, a font face represents a single face in a binary font file.
271 Font faces are typically built from a binary blob and a face index.
272 Font faces are used to create fonts.</p>
273 <p>A font face can be created from a binary blob using <a class="link" href="harfbuzz-hb-face.html#hb-face-create" title="hb_face_create ()"><code class="function">hb_face_create()</code></a>.
274 The face index is used to select a face from a binary blob that contains
275 multiple faces.  For example, a binary blob that contains both a regular
276 and a bold face can be used to create two font faces, one for each face
277 index.</p>
278 </div>
279 <div class="refsect1">
280 <a name="harfbuzz-hb-face.functions_details"></a><h2>Functions</h2>
281 <div class="refsect2">
282 <a name="hb-face-count"></a><h3>hb_face_count ()</h3>
283 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
284 hb_face_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
285 <p>Fetches the number of faces in a blob.</p>
286 <div class="refsect3">
287 <a name="hb-face-count.parameters"></a><h4>Parameters</h4>
288 <div class="informaltable"><table class="informaltable" width="100%" border="0">
289 <colgroup>
290 <col width="150px" class="parameters_name">
291 <col class="parameters_description">
292 <col width="200px" class="parameters_annotations">
293 </colgroup>
294 <tbody><tr>
295 <td class="parameter_name"><p>blob</p></td>
296 <td class="parameter_description"><p>a blob.</p></td>
297 <td class="parameter_annotations"> </td>
298 </tr></tbody>
299 </table></div>
300 </div>
301 <div class="refsect3">
302 <a name="hb-face-count.returns"></a><h4>Returns</h4>
303 <p> Number of faces in <em class="parameter"><code>blob</code></em>
304 </p>
305 </div>
306 <p class="since">Since: <a class="link" href="api-index-1-7-7.html#api-index-1.7.7">1.7.7</a></p>
307 </div>
308 <hr>
309 <div class="refsect2">
310 <a name="hb-face-create"></a><h3>hb_face_create ()</h3>
311 <pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
312 hb_face_create (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
313                 <em class="parameter"><code>unsigned <span class="type">int</span> index</code></em>);</pre>
314 <p>Constructs a new face object from the specified blob and
315 a face index into that blob.</p>
316 <p>The face index is used for blobs of file formats such as TTC and
317 DFont that can contain more than one face.  Face indices within
318 such collections are zero-based.</p>
319 <div class="note">Note: If the blob font format is not a collection, <em class="parameter"><code>index</code></em>
320 is ignored.  Otherwise, only the lower 16-bits of <em class="parameter"><code>index</code></em> are used.
321 The unmodified <em class="parameter"><code>index</code></em> can be accessed via <a class="link" href="harfbuzz-hb-face.html#hb-face-get-index" title="hb_face_get_index ()"><code class="function">hb_face_get_index()</code></a>.</div>
322 <div class="note">Note: The high 16-bits of <em class="parameter"><code>index</code></em>, if non-zero, are used by
323 <a class="link" href="harfbuzz-hb-font.html#hb-font-create" title="hb_font_create ()"><code class="function">hb_font_create()</code></a> to load named-instances in variable fonts.  See
324 <a class="link" href="harfbuzz-hb-font.html#hb-font-create" title="hb_font_create ()"><code class="function">hb_font_create()</code></a> for details.</div>
325 <div class="refsect3">
326 <a name="hb-face-create.parameters"></a><h4>Parameters</h4>
327 <div class="informaltable"><table class="informaltable" width="100%" border="0">
328 <colgroup>
329 <col width="150px" class="parameters_name">
330 <col class="parameters_description">
331 <col width="200px" class="parameters_annotations">
332 </colgroup>
333 <tbody>
334 <tr>
335 <td class="parameter_name"><p>blob</p></td>
336 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> to work upon</p></td>
337 <td class="parameter_annotations"> </td>
338 </tr>
339 <tr>
340 <td class="parameter_name"><p>index</p></td>
341 <td class="parameter_description"><p>The index of the face within <em class="parameter"><code>blob</code></em>
342 </p></td>
343 <td class="parameter_annotations"> </td>
344 </tr>
345 </tbody>
346 </table></div>
347 </div>
348 <div class="refsect3">
349 <a name="hb-face-create.returns"></a><h4>Returns</h4>
350 <p>The new face object. </p>
351 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
352 </div>
353 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
354 </div>
355 <hr>
356 <div class="refsect2">
357 <a name="hb-face-create-for-tables"></a><h3>hb_face_create_for_tables ()</h3>
358 <pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
359 hb_face_create_for_tables (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-reference-table-func-t" title="hb_reference_table_func_t ()"><span class="type">hb_reference_table_func_t</span></a> reference_table_func</code></em>,
360                            <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
361                            <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>
362 <p>Variant of <a class="link" href="harfbuzz-hb-face.html#hb-face-create" title="hb_face_create ()"><code class="function">hb_face_create()</code></a>, built for those cases where it is more
363 convenient to provide data for individual tables instead of the whole font
364 data. With the caveat that <a class="link" href="harfbuzz-hb-face.html#hb-face-get-table-tags" title="hb_face_get_table_tags ()"><code class="function">hb_face_get_table_tags()</code></a> does not currently work
365 with faces created this way.</p>
366 <p>Creates a new face object from the specified <em class="parameter"><code>user_data</code></em>
367  and <em class="parameter"><code>reference_table_func</code></em>
368 ,
369 with the <em class="parameter"><code>destroy</code></em>
370  callback.</p>
371 <div class="refsect3">
372 <a name="hb-face-create-for-tables.parameters"></a><h4>Parameters</h4>
373 <div class="informaltable"><table class="informaltable" width="100%" border="0">
374 <colgroup>
375 <col width="150px" class="parameters_name">
376 <col class="parameters_description">
377 <col width="200px" class="parameters_annotations">
378 </colgroup>
379 <tbody>
380 <tr>
381 <td class="parameter_name"><p>reference_table_func</p></td>
382 <td class="parameter_description"><p>Table-referencing function. </p></td>
383 <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>
384 </tr>
385 <tr>
386 <td class="parameter_name"><p>user_data</p></td>
387 <td class="parameter_description"><p>A pointer to the user data</p></td>
388 <td class="parameter_annotations"> </td>
389 </tr>
390 <tr>
391 <td class="parameter_name"><p>destroy</p></td>
392 <td class="parameter_description"><p>A callback to call when <em class="parameter"><code>data</code></em>
393 is not needed anymore. </p></td>
394 <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
395 </tr>
396 </tbody>
397 </table></div>
398 </div>
399 <div class="refsect3">
400 <a name="hb-face-create-for-tables.returns"></a><h4>Returns</h4>
401 <p>The new face object. </p>
402 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
403 </div>
404 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
405 </div>
406 <hr>
407 <div class="refsect2">
408 <a name="hb-face-get-empty"></a><h3>hb_face_get_empty ()</h3>
409 <pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
410 hb_face_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
411 <p>Fetches the singleton empty face object.</p>
412 <div class="refsect3">
413 <a name="hb-face-get-empty.returns"></a><h4>Returns</h4>
414 <p>The empty face object. </p>
415 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
416 </div>
417 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
418 </div>
419 <hr>
420 <div class="refsect2">
421 <a name="hb-face-reference"></a><h3>hb_face_reference ()</h3>
422 <pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
423 hb_face_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
424 <p>Increases the reference count on a face object.</p>
425 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
426 <div class="refsect3">
427 <a name="hb-face-reference.parameters"></a><h4>Parameters</h4>
428 <div class="informaltable"><table class="informaltable" width="100%" border="0">
429 <colgroup>
430 <col width="150px" class="parameters_name">
431 <col class="parameters_description">
432 <col width="200px" class="parameters_annotations">
433 </colgroup>
434 <tbody><tr>
435 <td class="parameter_name"><p>face</p></td>
436 <td class="parameter_description"><p>A face object</p></td>
437 <td class="parameter_annotations"> </td>
438 </tr></tbody>
439 </table></div>
440 </div>
441 <div class="refsect3">
442 <a name="hb-face-reference.returns"></a><h4>Returns</h4>
443 <p> The <em class="parameter"><code>face</code></em>
444 object</p>
445 </div>
446 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
447 </div>
448 <hr>
449 <div class="refsect2">
450 <a name="hb-face-destroy"></a><h3>hb_face_destroy ()</h3>
451 <pre class="programlisting"><span class="returnvalue">void</span>
452 hb_face_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
453 <p>Decreases the reference count on a face object. When the
454 reference count reaches zero, the face is destroyed,
455 freeing all memory.</p>
456 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
457 <div class="refsect3">
458 <a name="hb-face-destroy.parameters"></a><h4>Parameters</h4>
459 <div class="informaltable"><table class="informaltable" width="100%" border="0">
460 <colgroup>
461 <col width="150px" class="parameters_name">
462 <col class="parameters_description">
463 <col width="200px" class="parameters_annotations">
464 </colgroup>
465 <tbody><tr>
466 <td class="parameter_name"><p>face</p></td>
467 <td class="parameter_description"><p>A face object</p></td>
468 <td class="parameter_annotations"> </td>
469 </tr></tbody>
470 </table></div>
471 </div>
472 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
473 </div>
474 <hr>
475 <div class="refsect2">
476 <a name="hb-face-set-user-data"></a><h3>hb_face_set_user_data ()</h3>
477 <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>
478 hb_face_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
479                        <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>,
480                        <em class="parameter"><code><span class="type">void</span> *data</code></em>,
481                        <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>,
482                        <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>
483 <p>Attaches a user-data key/data pair to the given face object.</p>
484 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
485 <div class="refsect3">
486 <a name="hb-face-set-user-data.parameters"></a><h4>Parameters</h4>
487 <div class="informaltable"><table class="informaltable" width="100%" border="0">
488 <colgroup>
489 <col width="150px" class="parameters_name">
490 <col class="parameters_description">
491 <col width="200px" class="parameters_annotations">
492 </colgroup>
493 <tbody>
494 <tr>
495 <td class="parameter_name"><p>face</p></td>
496 <td class="parameter_description"><p>A face object</p></td>
497 <td class="parameter_annotations"> </td>
498 </tr>
499 <tr>
500 <td class="parameter_name"><p>key</p></td>
501 <td class="parameter_description"><p>The user-data key to set</p></td>
502 <td class="parameter_annotations"> </td>
503 </tr>
504 <tr>
505 <td class="parameter_name"><p>data</p></td>
506 <td class="parameter_description"><p>A pointer to the user data</p></td>
507 <td class="parameter_annotations"> </td>
508 </tr>
509 <tr>
510 <td class="parameter_name"><p>destroy</p></td>
511 <td class="parameter_description"><p>A callback to call when <em class="parameter"><code>data</code></em>
512 is not needed anymore. </p></td>
513 <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
514 </tr>
515 <tr>
516 <td class="parameter_name"><p>replace</p></td>
517 <td class="parameter_description"><p>Whether to replace an existing data with the same key</p></td>
518 <td class="parameter_annotations"> </td>
519 </tr>
520 </tbody>
521 </table></div>
522 </div>
523 <div class="refsect3">
524 <a name="hb-face-set-user-data.returns"></a><h4>Returns</h4>
525 <p> <code class="literal">true</code> if success, <code class="literal">false</code> otherwise</p>
526 </div>
527 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
528 </div>
529 <hr>
530 <div class="refsect2">
531 <a name="hb-face-get-user-data"></a><h3>hb_face_get_user_data ()</h3>
532 <pre class="programlisting"><span class="returnvalue">void</span> *
533 hb_face_get_user_data (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
534                        <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>
535 <p>Fetches the user data associated with the specified key,
536 attached to the specified face object.</p>
537 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
538 <div class="refsect3">
539 <a name="hb-face-get-user-data.parameters"></a><h4>Parameters</h4>
540 <div class="informaltable"><table class="informaltable" width="100%" border="0">
541 <colgroup>
542 <col width="150px" class="parameters_name">
543 <col class="parameters_description">
544 <col width="200px" class="parameters_annotations">
545 </colgroup>
546 <tbody>
547 <tr>
548 <td class="parameter_name"><p>face</p></td>
549 <td class="parameter_description"><p>A face object</p></td>
550 <td class="parameter_annotations"> </td>
551 </tr>
552 <tr>
553 <td class="parameter_name"><p>key</p></td>
554 <td class="parameter_description"><p>The user-data key to query</p></td>
555 <td class="parameter_annotations"> </td>
556 </tr>
557 </tbody>
558 </table></div>
559 </div>
560 <div class="refsect3">
561 <a name="hb-face-get-user-data.returns"></a><h4>Returns</h4>
562 <p>A pointer to the user data. </p>
563 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
564 </div>
565 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
566 </div>
567 <hr>
568 <div class="refsect2">
569 <a name="hb-face-make-immutable"></a><h3>hb_face_make_immutable ()</h3>
570 <pre class="programlisting"><span class="returnvalue">void</span>
571 hb_face_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
572 <p>Makes the given face object immutable.</p>
573 <div class="refsect3">
574 <a name="hb-face-make-immutable.parameters"></a><h4>Parameters</h4>
575 <div class="informaltable"><table class="informaltable" width="100%" border="0">
576 <colgroup>
577 <col width="150px" class="parameters_name">
578 <col class="parameters_description">
579 <col width="200px" class="parameters_annotations">
580 </colgroup>
581 <tbody><tr>
582 <td class="parameter_name"><p>face</p></td>
583 <td class="parameter_description"><p>A face object</p></td>
584 <td class="parameter_annotations"> </td>
585 </tr></tbody>
586 </table></div>
587 </div>
588 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
589 </div>
590 <hr>
591 <div class="refsect2">
592 <a name="hb-face-is-immutable"></a><h3>hb_face_is_immutable ()</h3>
593 <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>
594 hb_face_is_immutable (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
595 <p>Tests whether the given face object is immutable.</p>
596 <div class="refsect3">
597 <a name="hb-face-is-immutable.parameters"></a><h4>Parameters</h4>
598 <div class="informaltable"><table class="informaltable" width="100%" border="0">
599 <colgroup>
600 <col width="150px" class="parameters_name">
601 <col class="parameters_description">
602 <col width="200px" class="parameters_annotations">
603 </colgroup>
604 <tbody><tr>
605 <td class="parameter_name"><p>face</p></td>
606 <td class="parameter_description"><p>A face object</p></td>
607 <td class="parameter_annotations"> </td>
608 </tr></tbody>
609 </table></div>
610 </div>
611 <div class="refsect3">
612 <a name="hb-face-is-immutable.returns"></a><h4>Returns</h4>
613 <p> <code class="literal">true</code> is <em class="parameter"><code>face</code></em>
614 is immutable, <code class="literal">false</code> otherwise</p>
615 </div>
616 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
617 </div>
618 <hr>
619 <div class="refsect2">
620 <a name="hb-face-get-table-tags"></a><h3>hb_face_get_table_tags ()</h3>
621 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
622 hb_face_get_table_tags (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
623                         <em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
624                         <em class="parameter"><code>unsigned <span class="type">int</span> *table_count</code></em>,
625                         <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> *table_tags</code></em>);</pre>
626 <p>Fetches a list of all table tags for a face, if possible. The list returned will
627 begin at the offset provided</p>
628 <div class="refsect3">
629 <a name="hb-face-get-table-tags.parameters"></a><h4>Parameters</h4>
630 <div class="informaltable"><table class="informaltable" width="100%" border="0">
631 <colgroup>
632 <col width="150px" class="parameters_name">
633 <col class="parameters_description">
634 <col width="200px" class="parameters_annotations">
635 </colgroup>
636 <tbody>
637 <tr>
638 <td class="parameter_name"><p>face</p></td>
639 <td class="parameter_description"><p>A face object</p></td>
640 <td class="parameter_annotations"> </td>
641 </tr>
642 <tr>
643 <td class="parameter_name"><p>start_offset</p></td>
644 <td class="parameter_description"><p>The index of first table tag to retrieve</p></td>
645 <td class="parameter_annotations"> </td>
646 </tr>
647 <tr>
648 <td class="parameter_name"><p>table_count</p></td>
649 <td class="parameter_description"><p>Input = the maximum number of table tags to return;
650 Output = the actual number of table tags returned (may be zero). </p></td>
651 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>]</span></td>
652 </tr>
653 <tr>
654 <td class="parameter_name"><p>table_tags</p></td>
655 <td class="parameter_description"><p>The array of table tags found. </p></td>
656 <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=table_count]</span></td>
657 </tr>
658 </tbody>
659 </table></div>
660 </div>
661 <div class="refsect3">
662 <a name="hb-face-get-table-tags.returns"></a><h4>Returns</h4>
663 <p> Total number of tables, or zero if it is not possible to list</p>
664 </div>
665 <p class="since">Since: <a class="link" href="api-index-1-6-0.html#api-index-1.6.0">1.6.0</a></p>
666 </div>
667 <hr>
668 <div class="refsect2">
669 <a name="hb-face-set-glyph-count"></a><h3>hb_face_set_glyph_count ()</h3>
670 <pre class="programlisting"><span class="returnvalue">void</span>
671 hb_face_set_glyph_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
672                          <em class="parameter"><code>unsigned <span class="type">int</span> glyph_count</code></em>);</pre>
673 <p>Sets the glyph count for a face object to the specified value.</p>
674 <p>This API is used in rare circumstances.</p>
675 <div class="refsect3">
676 <a name="hb-face-set-glyph-count.parameters"></a><h4>Parameters</h4>
677 <div class="informaltable"><table class="informaltable" width="100%" border="0">
678 <colgroup>
679 <col width="150px" class="parameters_name">
680 <col class="parameters_description">
681 <col width="200px" class="parameters_annotations">
682 </colgroup>
683 <tbody>
684 <tr>
685 <td class="parameter_name"><p>face</p></td>
686 <td class="parameter_description"><p>A face object</p></td>
687 <td class="parameter_annotations"> </td>
688 </tr>
689 <tr>
690 <td class="parameter_name"><p>glyph_count</p></td>
691 <td class="parameter_description"><p>The glyph-count value to assign</p></td>
692 <td class="parameter_annotations"> </td>
693 </tr>
694 </tbody>
695 </table></div>
696 </div>
697 <p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
698 </div>
699 <hr>
700 <div class="refsect2">
701 <a name="hb-face-get-glyph-count"></a><h3>hb_face_get_glyph_count ()</h3>
702 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
703 hb_face_get_glyph_count (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
704 <p>Fetches the glyph-count value of the specified face object.</p>
705 <div class="refsect3">
706 <a name="hb-face-get-glyph-count.parameters"></a><h4>Parameters</h4>
707 <div class="informaltable"><table class="informaltable" width="100%" border="0">
708 <colgroup>
709 <col width="150px" class="parameters_name">
710 <col class="parameters_description">
711 <col width="200px" class="parameters_annotations">
712 </colgroup>
713 <tbody><tr>
714 <td class="parameter_name"><p>face</p></td>
715 <td class="parameter_description"><p>A face object</p></td>
716 <td class="parameter_annotations"> </td>
717 </tr></tbody>
718 </table></div>
719 </div>
720 <div class="refsect3">
721 <a name="hb-face-get-glyph-count.returns"></a><h4>Returns</h4>
722 <p> The glyph-count value of <em class="parameter"><code>face</code></em>
723 </p>
724 </div>
725 <p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
726 </div>
727 <hr>
728 <div class="refsect2">
729 <a name="hb-face-set-index"></a><h3>hb_face_set_index ()</h3>
730 <pre class="programlisting"><span class="returnvalue">void</span>
731 hb_face_set_index (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
732                    <em class="parameter"><code>unsigned <span class="type">int</span> index</code></em>);</pre>
733 <p>Assigns the specified face-index to <em class="parameter"><code>face</code></em>
734 . Fails if the
735 face is immutable.</p>
736 <div class="note">Note: changing the index has no effect on the face itself
737 This only changes the value returned by <a class="link" href="harfbuzz-hb-face.html#hb-face-get-index" title="hb_face_get_index ()"><code class="function">hb_face_get_index()</code></a>.</div>
738 <div class="refsect3">
739 <a name="hb-face-set-index.parameters"></a><h4>Parameters</h4>
740 <div class="informaltable"><table class="informaltable" width="100%" border="0">
741 <colgroup>
742 <col width="150px" class="parameters_name">
743 <col class="parameters_description">
744 <col width="200px" class="parameters_annotations">
745 </colgroup>
746 <tbody>
747 <tr>
748 <td class="parameter_name"><p>face</p></td>
749 <td class="parameter_description"><p>A face object</p></td>
750 <td class="parameter_annotations"> </td>
751 </tr>
752 <tr>
753 <td class="parameter_name"><p>index</p></td>
754 <td class="parameter_description"><p>The index to assign</p></td>
755 <td class="parameter_annotations"> </td>
756 </tr>
757 </tbody>
758 </table></div>
759 </div>
760 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
761 </div>
762 <hr>
763 <div class="refsect2">
764 <a name="hb-face-get-index"></a><h3>hb_face_get_index ()</h3>
765 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
766 hb_face_get_index (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
767 <p>Fetches the face-index corresponding to the given face.</p>
768 <div class="note">Note: face indices within a collection are zero-based.</div>
769 <div class="refsect3">
770 <a name="hb-face-get-index.parameters"></a><h4>Parameters</h4>
771 <div class="informaltable"><table class="informaltable" width="100%" border="0">
772 <colgroup>
773 <col width="150px" class="parameters_name">
774 <col class="parameters_description">
775 <col width="200px" class="parameters_annotations">
776 </colgroup>
777 <tbody><tr>
778 <td class="parameter_name"><p>face</p></td>
779 <td class="parameter_description"><p>A face object</p></td>
780 <td class="parameter_annotations"> </td>
781 </tr></tbody>
782 </table></div>
783 </div>
784 <div class="refsect3">
785 <a name="hb-face-get-index.returns"></a><h4>Returns</h4>
786 <p> The index of <em class="parameter"><code>face</code></em>
787 .</p>
788 </div>
789 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
790 </div>
791 <hr>
792 <div class="refsect2">
793 <a name="hb-face-set-upem"></a><h3>hb_face_set_upem ()</h3>
794 <pre class="programlisting"><span class="returnvalue">void</span>
795 hb_face_set_upem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
796                   <em class="parameter"><code>unsigned <span class="type">int</span> upem</code></em>);</pre>
797 <p>Sets the units-per-em (upem) for a face object to the specified value.</p>
798 <p>This API is used in rare circumstances.</p>
799 <div class="refsect3">
800 <a name="hb-face-set-upem.parameters"></a><h4>Parameters</h4>
801 <div class="informaltable"><table class="informaltable" width="100%" border="0">
802 <colgroup>
803 <col width="150px" class="parameters_name">
804 <col class="parameters_description">
805 <col width="200px" class="parameters_annotations">
806 </colgroup>
807 <tbody>
808 <tr>
809 <td class="parameter_name"><p>face</p></td>
810 <td class="parameter_description"><p>A face object</p></td>
811 <td class="parameter_annotations"> </td>
812 </tr>
813 <tr>
814 <td class="parameter_name"><p>upem</p></td>
815 <td class="parameter_description"><p>The units-per-em value to assign</p></td>
816 <td class="parameter_annotations"> </td>
817 </tr>
818 </tbody>
819 </table></div>
820 </div>
821 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
822 </div>
823 <hr>
824 <div class="refsect2">
825 <a name="hb-face-get-upem"></a><h3>hb_face_get_upem ()</h3>
826 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
827 hb_face_get_upem (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
828 <p>Fetches the units-per-em (UPEM) value of the specified face object.</p>
829 <p>Typical UPEM values for fonts are 1000, or 2048, but any value
830 in between 16 and 16,384 is allowed for OpenType fonts.</p>
831 <div class="refsect3">
832 <a name="hb-face-get-upem.parameters"></a><h4>Parameters</h4>
833 <div class="informaltable"><table class="informaltable" width="100%" border="0">
834 <colgroup>
835 <col width="150px" class="parameters_name">
836 <col class="parameters_description">
837 <col width="200px" class="parameters_annotations">
838 </colgroup>
839 <tbody><tr>
840 <td class="parameter_name"><p>face</p></td>
841 <td class="parameter_description"><p>A face object</p></td>
842 <td class="parameter_annotations"> </td>
843 </tr></tbody>
844 </table></div>
845 </div>
846 <div class="refsect3">
847 <a name="hb-face-get-upem.returns"></a><h4>Returns</h4>
848 <p> The upem value of <em class="parameter"><code>face</code></em>
849 </p>
850 </div>
851 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
852 </div>
853 <hr>
854 <div class="refsect2">
855 <a name="hb-face-reference-blob"></a><h3>hb_face_reference_blob ()</h3>
856 <pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
857 hb_face_reference_blob (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
858 <p>Fetches a pointer to the binary blob that contains the
859 specified face. Returns an empty blob if referencing face data is not
860 possible.</p>
861 <div class="refsect3">
862 <a name="hb-face-reference-blob.parameters"></a><h4>Parameters</h4>
863 <div class="informaltable"><table class="informaltable" width="100%" border="0">
864 <colgroup>
865 <col width="150px" class="parameters_name">
866 <col class="parameters_description">
867 <col width="200px" class="parameters_annotations">
868 </colgroup>
869 <tbody><tr>
870 <td class="parameter_name"><p>face</p></td>
871 <td class="parameter_description"><p>A face object</p></td>
872 <td class="parameter_annotations"> </td>
873 </tr></tbody>
874 </table></div>
875 </div>
876 <div class="refsect3">
877 <a name="hb-face-reference-blob.returns"></a><h4>Returns</h4>
878 <p>A pointer to the blob for <em class="parameter"><code>face</code></em>
879 . </p>
880 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
881 </div>
882 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
883 </div>
884 <hr>
885 <div class="refsect2">
886 <a name="hb-face-reference-table"></a><h3>hb_face_reference_table ()</h3>
887 <pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
888 hb_face_reference_table (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
889                          <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>
890 <p>Fetches a reference to the specified table within
891 the specified face.</p>
892 <div class="refsect3">
893 <a name="hb-face-reference-table.parameters"></a><h4>Parameters</h4>
894 <div class="informaltable"><table class="informaltable" width="100%" border="0">
895 <colgroup>
896 <col width="150px" class="parameters_name">
897 <col class="parameters_description">
898 <col width="200px" class="parameters_annotations">
899 </colgroup>
900 <tbody>
901 <tr>
902 <td class="parameter_name"><p>face</p></td>
903 <td class="parameter_description"><p>A face object</p></td>
904 <td class="parameter_annotations"> </td>
905 </tr>
906 <tr>
907 <td class="parameter_name"><p>tag</p></td>
908 <td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> of the table to query</p></td>
909 <td class="parameter_annotations"> </td>
910 </tr>
911 </tbody>
912 </table></div>
913 </div>
914 <div class="refsect3">
915 <a name="hb-face-reference-table.returns"></a><h4>Returns</h4>
916 <p>A pointer to the <em class="parameter"><code>tag</code></em>
917 table within <em class="parameter"><code>face</code></em>
918 . </p>
919 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
920 </div>
921 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
922 </div>
923 <hr>
924 <div class="refsect2">
925 <a name="hb-face-collect-unicodes"></a><h3>hb_face_collect_unicodes ()</h3>
926 <pre class="programlisting"><span class="returnvalue">void</span>
927 hb_face_collect_unicodes (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
928                           <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *out</code></em>);</pre>
929 <p>Collects all of the Unicode characters covered by <em class="parameter"><code>face</code></em>
930  and adds
931 them to the <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> set <em class="parameter"><code>out</code></em>
932 .</p>
933 <div class="refsect3">
934 <a name="hb-face-collect-unicodes.parameters"></a><h4>Parameters</h4>
935 <div class="informaltable"><table class="informaltable" width="100%" border="0">
936 <colgroup>
937 <col width="150px" class="parameters_name">
938 <col class="parameters_description">
939 <col width="200px" class="parameters_annotations">
940 </colgroup>
941 <tbody>
942 <tr>
943 <td class="parameter_name"><p>face</p></td>
944 <td class="parameter_description"><p>A face object</p></td>
945 <td class="parameter_annotations"> </td>
946 </tr>
947 <tr>
948 <td class="parameter_name"><p>out</p></td>
949 <td class="parameter_description"><p>The set to add Unicode characters to. </p></td>
950 <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>
951 </tr>
952 </tbody>
953 </table></div>
954 </div>
955 <p class="since">Since: <a class="link" href="api-index-1-9-0.html#api-index-1.9.0">1.9.0</a></p>
956 </div>
957 <hr>
958 <div class="refsect2">
959 <a name="hb-face-collect-nominal-glyph-mapping"></a><h3>hb_face_collect_nominal_glyph_mapping ()</h3>
960 <pre class="programlisting"><span class="returnvalue">void</span>
961 hb_face_collect_nominal_glyph_mapping (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
962                                        <em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *mapping</code></em>,
963                                        <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *unicodes</code></em>);</pre>
964 <p>Collects the mapping from Unicode characters to nominal glyphs of the <em class="parameter"><code>face</code></em>
965 ,
966 and optionally all of the Unicode characters covered by <em class="parameter"><code>face</code></em>
967 .</p>
968 <div class="refsect3">
969 <a name="hb-face-collect-nominal-glyph-mapping.parameters"></a><h4>Parameters</h4>
970 <div class="informaltable"><table class="informaltable" width="100%" border="0">
971 <colgroup>
972 <col width="150px" class="parameters_name">
973 <col class="parameters_description">
974 <col width="200px" class="parameters_annotations">
975 </colgroup>
976 <tbody>
977 <tr>
978 <td class="parameter_name"><p>face</p></td>
979 <td class="parameter_description"><p>A face object</p></td>
980 <td class="parameter_annotations"> </td>
981 </tr>
982 <tr>
983 <td class="parameter_name"><p>mapping</p></td>
984 <td class="parameter_description"><p>The map to add Unicode-to-glyph mapping to. </p></td>
985 <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>
986 </tr>
987 <tr>
988 <td class="parameter_name"><p>unicodes</p></td>
989 <td class="parameter_description"><p>The set to add Unicode characters to, or <code class="literal">NULL</code>. </p></td>
990 <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>][<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
991 </tr>
992 </tbody>
993 </table></div>
994 </div>
995 <p class="since">Since: <a class="link" href="api-index-7-0-0.html#api-index-7.0.0">7.0.0</a></p>
996 </div>
997 <hr>
998 <div class="refsect2">
999 <a name="hb-face-collect-variation-selectors"></a><h3>hb_face_collect_variation_selectors ()</h3>
1000 <pre class="programlisting"><span class="returnvalue">void</span>
1001 hb_face_collect_variation_selectors (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
1002                                      <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *out</code></em>);</pre>
1003 <p>Collects all Unicode "Variation Selector" characters covered by <em class="parameter"><code>face</code></em>
1004  and adds
1005 them to the <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> set <em class="parameter"><code>out</code></em>
1006 .</p>
1007 <div class="refsect3">
1008 <a name="hb-face-collect-variation-selectors.parameters"></a><h4>Parameters</h4>
1009 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1010 <colgroup>
1011 <col width="150px" class="parameters_name">
1012 <col class="parameters_description">
1013 <col width="200px" class="parameters_annotations">
1014 </colgroup>
1015 <tbody>
1016 <tr>
1017 <td class="parameter_name"><p>face</p></td>
1018 <td class="parameter_description"><p>A face object</p></td>
1019 <td class="parameter_annotations"> </td>
1020 </tr>
1021 <tr>
1022 <td class="parameter_name"><p>out</p></td>
1023 <td class="parameter_description"><p>The set to add Variation Selector characters to. </p></td>
1024 <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>
1025 </tr>
1026 </tbody>
1027 </table></div>
1028 </div>
1029 <p class="since">Since: <a class="link" href="api-index-1-9-0.html#api-index-1.9.0">1.9.0</a></p>
1030 </div>
1031 <hr>
1032 <div class="refsect2">
1033 <a name="hb-face-collect-variation-unicodes"></a><h3>hb_face_collect_variation_unicodes ()</h3>
1034 <pre class="programlisting"><span class="returnvalue">void</span>
1035 hb_face_collect_variation_unicodes (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
1036                                     <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> variation_selector</code></em>,
1037                                     <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *out</code></em>);</pre>
1038 <p>Collects all Unicode characters for <em class="parameter"><code>variation_selector</code></em>
1039  covered by <em class="parameter"><code>face</code></em>
1040  and adds
1041 them to the <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> set <em class="parameter"><code>out</code></em>
1042 .</p>
1043 <div class="refsect3">
1044 <a name="hb-face-collect-variation-unicodes.parameters"></a><h4>Parameters</h4>
1045 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1046 <colgroup>
1047 <col width="150px" class="parameters_name">
1048 <col class="parameters_description">
1049 <col width="200px" class="parameters_annotations">
1050 </colgroup>
1051 <tbody>
1052 <tr>
1053 <td class="parameter_name"><p>face</p></td>
1054 <td class="parameter_description"><p>A face object</p></td>
1055 <td class="parameter_annotations"> </td>
1056 </tr>
1057 <tr>
1058 <td class="parameter_name"><p>variation_selector</p></td>
1059 <td class="parameter_description"><p>The Variation Selector to query</p></td>
1060 <td class="parameter_annotations"> </td>
1061 </tr>
1062 <tr>
1063 <td class="parameter_name"><p>out</p></td>
1064 <td class="parameter_description"><p>The set to add Unicode characters to. </p></td>
1065 <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>
1066 </tr>
1067 </tbody>
1068 </table></div>
1069 </div>
1070 <p class="since">Since: <a class="link" href="api-index-1-9-0.html#api-index-1.9.0">1.9.0</a></p>
1071 </div>
1072 <hr>
1073 <div class="refsect2">
1074 <a name="hb-face-builder-create"></a><h3>hb_face_builder_create ()</h3>
1075 <pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
1076 hb_face_builder_create (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
1077 <p>Creates a <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> that can be used with <a class="link" href="harfbuzz-hb-face.html#hb-face-builder-add-table" title="hb_face_builder_add_table ()"><code class="function">hb_face_builder_add_table()</code></a>.
1078 After tables are added to the face, it can be compiled to a binary
1079 font file by calling <a class="link" href="harfbuzz-hb-face.html#hb-face-reference-blob" title="hb_face_reference_blob ()"><code class="function">hb_face_reference_blob()</code></a>.</p>
1080 <div class="refsect3">
1081 <a name="hb-face-builder-create.returns"></a><h4>Returns</h4>
1082 <p>New face. </p>
1083 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
1084 </div>
1085 <p class="since">Since: <a class="link" href="api-index-1-9-0.html#api-index-1.9.0">1.9.0</a></p>
1086 </div>
1087 <hr>
1088 <div class="refsect2">
1089 <a name="hb-face-builder-add-table"></a><h3>hb_face_builder_add_table ()</h3>
1090 <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>
1091 hb_face_builder_add_table (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
1092                            <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>,
1093                            <em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
1094 <p>Add table for <em class="parameter"><code>tag</code></em>
1095  with data provided by <em class="parameter"><code>blob</code></em>
1096  to the face.  <em class="parameter"><code>face</code></em>
1097  must
1098 be created using <a class="link" href="harfbuzz-hb-face.html#hb-face-builder-create" title="hb_face_builder_create ()"><code class="function">hb_face_builder_create()</code></a>.</p>
1099 <div class="refsect3">
1100 <a name="hb-face-builder-add-table.parameters"></a><h4>Parameters</h4>
1101 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1102 <colgroup>
1103 <col width="150px" class="parameters_name">
1104 <col class="parameters_description">
1105 <col width="200px" class="parameters_annotations">
1106 </colgroup>
1107 <tbody>
1108 <tr>
1109 <td class="parameter_name"><p>face</p></td>
1110 <td class="parameter_description"><p>A face object created with <a class="link" href="harfbuzz-hb-face.html#hb-face-builder-create" title="hb_face_builder_create ()"><code class="function">hb_face_builder_create()</code></a></p></td>
1111 <td class="parameter_annotations"> </td>
1112 </tr>
1113 <tr>
1114 <td class="parameter_name"><p>tag</p></td>
1115 <td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> of the table to add</p></td>
1116 <td class="parameter_annotations"> </td>
1117 </tr>
1118 <tr>
1119 <td class="parameter_name"><p>blob</p></td>
1120 <td class="parameter_description"><p>The blob containing the table data to add</p></td>
1121 <td class="parameter_annotations"> </td>
1122 </tr>
1123 </tbody>
1124 </table></div>
1125 </div>
1126 <p class="since">Since: <a class="link" href="api-index-1-9-0.html#api-index-1.9.0">1.9.0</a></p>
1127 </div>
1128 <hr>
1129 <div class="refsect2">
1130 <a name="hb-face-builder-sort-tables"></a><h3>hb_face_builder_sort_tables ()</h3>
1131 <pre class="programlisting"><span class="returnvalue">void</span>
1132 hb_face_builder_sort_tables (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
1133                              <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *tags</code></em>);</pre>
1134 <p>Set the ordering of tables for serialization. Any tables not
1135 specified in the tags list will be ordered after the tables in
1136 tags, ordered by the default sort ordering.</p>
1137 <div class="refsect3">
1138 <a name="hb-face-builder-sort-tables.parameters"></a><h4>Parameters</h4>
1139 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1140 <colgroup>
1141 <col width="150px" class="parameters_name">
1142 <col class="parameters_description">
1143 <col width="200px" class="parameters_annotations">
1144 </colgroup>
1145 <tbody>
1146 <tr>
1147 <td class="parameter_name"><p>face</p></td>
1148 <td class="parameter_description"><p>A face object created with <a class="link" href="harfbuzz-hb-face.html#hb-face-builder-create" title="hb_face_builder_create ()"><code class="function">hb_face_builder_create()</code></a></p></td>
1149 <td class="parameter_annotations"> </td>
1150 </tr>
1151 <tr>
1152 <td class="parameter_name"><p>tags</p></td>
1153 <td class="parameter_description"><p>ordered list of table tags terminated by
1154 <a class="link" href="harfbuzz-hb-common.html#HB-TAG-NONE:CAPS" title="HB_TAG_NONE"><code class="literal">HB_TAG_NONE</code></a>. </p></td>
1155 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span></td>
1156 </tr>
1157 </tbody>
1158 </table></div>
1159 </div>
1160 <p class="since">Since: <a class="link" href="api-index-5-3-0.html#api-index-5.3.0">5.3.0</a></p>
1161 </div>
1162 </div>
1163 <div class="refsect1">
1164 <a name="harfbuzz-hb-face.other_details"></a><h2>Types and Values</h2>
1165 <div class="refsect2">
1166 <a name="hb-face-t"></a><h3>hb_face_t</h3>
1167 <pre class="programlisting">typedef struct hb_face_t hb_face_t;
1168 </pre>
1169 <p>Data type for holding font faces.</p>
1170 </div>
1171 </div>
1172 </div>
1173 <div class="footer">
1174 <hr>Generated by GTK-Doc V1.32</div>
1175 </body>
1176 </html>