Imported Upstream version 2.6.7
[platform/upstream/harfbuzz.git] / docs / html / harfbuzz-hb-ot-layout.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-ot-layout: 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="ch13.html" title="OpenType API">
9 <link rel="prev" href="harfbuzz-hb-ot-font.html" title="hb-ot-font">
10 <link rel="next" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">
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-ot-layout.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="ch13.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
22 <td><a accesskey="p" href="harfbuzz-hb-ot-font.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
23 <td><a accesskey="n" href="harfbuzz-hb-ot-math.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-ot-layout"></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-ot-layout.top_of_page"></a>hb-ot-layout</span></h2>
30 <p>hb-ot-layout — OpenType Layout</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-ot-layout.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-language-t" title="hb_language_t"><span class="returnvalue">hb_language_t</span></a>
45 </td>
46 <td class="function_name">
47 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-tag-to-language" title="hb_ot_tag_to_language ()">hb_ot_tag_to_language</a> <span class="c_punctuation">()</span>
48 </td>
49 </tr>
50 <tr>
51 <td class="function_type">
52 <a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="returnvalue">hb_script_t</span></a>
53 </td>
54 <td class="function_name">
55 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-tag-to-script" title="hb_ot_tag_to_script ()">hb_ot_tag_to_script</a> <span class="c_punctuation">()</span>
56 </td>
57 </tr>
58 <tr>
59 <td class="function_type">
60 <span class="returnvalue">void</span>
61 </td>
62 <td class="function_name">
63 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-tags-from-script-and-language" title="hb_ot_tags_from_script_and_language ()">hb_ot_tags_from_script_and_language</a> <span class="c_punctuation">()</span>
64 </td>
65 </tr>
66 <tr>
67 <td class="function_type">
68 <span class="returnvalue">void</span>
69 </td>
70 <td class="function_name">
71 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-tags-to-script-and-language" title="hb_ot_tags_to_script_and_language ()">hb_ot_tags_to_script_and_language</a> <span class="c_punctuation">()</span>
72 </td>
73 </tr>
74 <tr>
75 <td class="function_type">
76 <span class="returnvalue">void</span>
77 </td>
78 <td class="function_name">
79 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-closure-lookups" title="hb_ot_layout_closure_lookups ()">hb_ot_layout_closure_lookups</a> <span class="c_punctuation">()</span>
80 </td>
81 </tr>
82 <tr>
83 <td class="function_type">
84 <span class="returnvalue">void</span>
85 </td>
86 <td class="function_name">
87 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-closure-features" title="hb_ot_layout_closure_features ()">hb_ot_layout_closure_features</a> <span class="c_punctuation">()</span>
88 </td>
89 </tr>
90 <tr>
91 <td class="function_type">
92 <span class="returnvalue">void</span>
93 </td>
94 <td class="function_name">
95 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-collect-lookups" title="hb_ot_layout_collect_lookups ()">hb_ot_layout_collect_lookups</a> <span class="c_punctuation">()</span>
96 </td>
97 </tr>
98 <tr>
99 <td class="function_type">
100 <span class="returnvalue">void</span>
101 </td>
102 <td class="function_name">
103 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-collect-features" title="hb_ot_layout_collect_features ()">hb_ot_layout_collect_features</a> <span class="c_punctuation">()</span>
104 </td>
105 </tr>
106 <tr>
107 <td class="function_type">unsigned <span class="returnvalue">int</span>
108 </td>
109 <td class="function_name">
110 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-feature-get-characters" title="hb_ot_layout_feature_get_characters ()">hb_ot_layout_feature_get_characters</a> <span class="c_punctuation">()</span>
111 </td>
112 </tr>
113 <tr>
114 <td class="function_type">unsigned <span class="returnvalue">int</span>
115 </td>
116 <td class="function_name">
117 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-feature-get-lookups" title="hb_ot_layout_feature_get_lookups ()">hb_ot_layout_feature_get_lookups</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-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
123 </td>
124 <td class="function_name">
125 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-feature-get-name-ids" title="hb_ot_layout_feature_get_name_ids ()">hb_ot_layout_feature_get_name_ids</a> <span class="c_punctuation">()</span>
126 </td>
127 </tr>
128 <tr>
129 <td class="function_type">unsigned <span class="returnvalue">int</span>
130 </td>
131 <td class="function_name">
132 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-feature-with-variations-get-lookups" title="hb_ot_layout_feature_with_variations_get_lookups ()">hb_ot_layout_feature_with_variations_get_lookups</a> <span class="c_punctuation">()</span>
133 </td>
134 </tr>
135 <tr>
136 <td class="function_type">unsigned <span class="returnvalue">int</span>
137 </td>
138 <td class="function_name">
139 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-get-attach-points" title="hb_ot_layout_get_attach_points ()">hb_ot_layout_get_attach_points</a> <span class="c_punctuation">()</span>
140 </td>
141 </tr>
142 <tr>
143 <td class="function_type">
144 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
145 </td>
146 <td class="function_name">
147 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-get-baseline" title="hb_ot_layout_get_baseline ()">hb_ot_layout_get_baseline</a> <span class="c_punctuation">()</span>
148 </td>
149 </tr>
150 <tr>
151 <td class="function_type">
152 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-glyph-class-t" title="enum hb_ot_layout_glyph_class_t"><span class="returnvalue">hb_ot_layout_glyph_class_t</span></a>
153 </td>
154 <td class="function_name">
155 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-get-glyph-class" title="hb_ot_layout_get_glyph_class ()">hb_ot_layout_get_glyph_class</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-ot-layout.html#hb-ot-layout-get-glyphs-in-class" title="hb_ot_layout_get_glyphs_in_class ()">hb_ot_layout_get_glyphs_in_class</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-ot-layout.html#hb-ot-layout-get-ligature-carets" title="hb_ot_layout_get_ligature_carets ()">hb_ot_layout_get_ligature_carets</a> <span class="c_punctuation">()</span>
171 </td>
172 </tr>
173 <tr>
174 <td class="function_type">
175 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
176 </td>
177 <td class="function_name">
178 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-get-size-params" title="hb_ot_layout_get_size_params ()">hb_ot_layout_get_size_params</a> <span class="c_punctuation">()</span>
179 </td>
180 </tr>
181 <tr>
182 <td class="function_type">
183 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
184 </td>
185 <td class="function_name">
186 <span class="c_punctuation">(</span><a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-glyph-sequence-func-t" title="hb_ot_layout_glyph_sequence_func_t ()">*hb_ot_layout_glyph_sequence_func_t</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
187 </td>
188 </tr>
189 <tr>
190 <td class="function_type">
191 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
192 </td>
193 <td class="function_name">
194 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-has-glyph-classes" title="hb_ot_layout_has_glyph_classes ()">hb_ot_layout_has_glyph_classes</a> <span class="c_punctuation">()</span>
195 </td>
196 </tr>
197 <tr>
198 <td class="function_type">
199 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
200 </td>
201 <td class="function_name">
202 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-has-positioning" title="hb_ot_layout_has_positioning ()">hb_ot_layout_has_positioning</a> <span class="c_punctuation">()</span>
203 </td>
204 </tr>
205 <tr>
206 <td class="function_type">
207 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
208 </td>
209 <td class="function_name">
210 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-has-substitution" title="hb_ot_layout_has_substitution ()">hb_ot_layout_has_substitution</a> <span class="c_punctuation">()</span>
211 </td>
212 </tr>
213 <tr>
214 <td class="function_type">
215 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
216 </td>
217 <td class="function_name">
218 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-language-find-feature" title="hb_ot_layout_language_find_feature ()">hb_ot_layout_language_find_feature</a> <span class="c_punctuation">()</span>
219 </td>
220 </tr>
221 <tr>
222 <td class="function_type">unsigned <span class="returnvalue">int</span>
223 </td>
224 <td class="function_name">
225 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-language-get-feature-indexes" title="hb_ot_layout_language_get_feature_indexes ()">hb_ot_layout_language_get_feature_indexes</a> <span class="c_punctuation">()</span>
226 </td>
227 </tr>
228 <tr>
229 <td class="function_type">unsigned <span class="returnvalue">int</span>
230 </td>
231 <td class="function_name">
232 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-language-get-feature-tags" title="hb_ot_layout_language_get_feature_tags ()">hb_ot_layout_language_get_feature_tags</a> <span class="c_punctuation">()</span>
233 </td>
234 </tr>
235 <tr>
236 <td class="function_type">
237 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
238 </td>
239 <td class="function_name">
240 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-language-get-required-feature" title="hb_ot_layout_language_get_required_feature ()">hb_ot_layout_language_get_required_feature</a> <span class="c_punctuation">()</span>
241 </td>
242 </tr>
243 <tr>
244 <td class="function_type">
245 <span class="returnvalue">void</span>
246 </td>
247 <td class="function_name">
248 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-lookup-collect-glyphs" title="hb_ot_layout_lookup_collect_glyphs ()">hb_ot_layout_lookup_collect_glyphs</a> <span class="c_punctuation">()</span>
249 </td>
250 </tr>
251 <tr>
252 <td class="function_type">
253 <span class="returnvalue">void</span>
254 </td>
255 <td class="function_name">
256 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-lookup-substitute-closure" title="hb_ot_layout_lookup_substitute_closure ()">hb_ot_layout_lookup_substitute_closure</a> <span class="c_punctuation">()</span>
257 </td>
258 </tr>
259 <tr>
260 <td class="function_type">
261 <span class="returnvalue">void</span>
262 </td>
263 <td class="function_name">
264 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-lookups-substitute-closure" title="hb_ot_layout_lookups_substitute_closure ()">hb_ot_layout_lookups_substitute_closure</a> <span class="c_punctuation">()</span>
265 </td>
266 </tr>
267 <tr>
268 <td class="function_type">
269 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
270 </td>
271 <td class="function_name">
272 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-lookup-would-substitute" title="hb_ot_layout_lookup_would_substitute ()">hb_ot_layout_lookup_would_substitute</a> <span class="c_punctuation">()</span>
273 </td>
274 </tr>
275 <tr>
276 <td class="function_type">unsigned <span class="returnvalue">int</span>
277 </td>
278 <td class="function_name">
279 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-script-get-language-tags" title="hb_ot_layout_script_get_language_tags ()">hb_ot_layout_script_get_language_tags</a> <span class="c_punctuation">()</span>
280 </td>
281 </tr>
282 <tr>
283 <td class="function_type">
284 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
285 </td>
286 <td class="function_name">
287 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-script-select-language" title="hb_ot_layout_script_select_language ()">hb_ot_layout_script_select_language</a> <span class="c_punctuation">()</span>
288 </td>
289 </tr>
290 <tr>
291 <td class="function_type">
292 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
293 </td>
294 <td class="function_name">
295 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-table-find-feature-variations" title="hb_ot_layout_table_find_feature_variations ()">hb_ot_layout_table_find_feature_variations</a> <span class="c_punctuation">()</span>
296 </td>
297 </tr>
298 <tr>
299 <td class="function_type">unsigned <span class="returnvalue">int</span>
300 </td>
301 <td class="function_name">
302 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-table-get-feature-tags" title="hb_ot_layout_table_get_feature_tags ()">hb_ot_layout_table_get_feature_tags</a> <span class="c_punctuation">()</span>
303 </td>
304 </tr>
305 <tr>
306 <td class="function_type">unsigned <span class="returnvalue">int</span>
307 </td>
308 <td class="function_name">
309 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-table-get-script-tags" title="hb_ot_layout_table_get_script_tags ()">hb_ot_layout_table_get_script_tags</a> <span class="c_punctuation">()</span>
310 </td>
311 </tr>
312 <tr>
313 <td class="function_type">unsigned <span class="returnvalue">int</span>
314 </td>
315 <td class="function_name">
316 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-table-get-lookup-count" title="hb_ot_layout_table_get_lookup_count ()">hb_ot_layout_table_get_lookup_count</a> <span class="c_punctuation">()</span>
317 </td>
318 </tr>
319 <tr>
320 <td class="function_type">
321 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
322 </td>
323 <td class="function_name">
324 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-table-select-script" title="hb_ot_layout_table_select_script ()">hb_ot_layout_table_select_script</a> <span class="c_punctuation">()</span>
325 </td>
326 </tr>
327 <tr>
328 <td class="function_type">
329 <span class="returnvalue">void</span>
330 </td>
331 <td class="function_name">
332 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-shape-plan-collect-lookups" title="hb_ot_shape_plan_collect_lookups ()">hb_ot_shape_plan_collect_lookups</a> <span class="c_punctuation">()</span>
333 </td>
334 </tr>
335 <tr>
336 <td class="function_type">
337 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
338 </td>
339 <td class="function_name">
340 <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-language-get-required-feature-index" title="hb_ot_layout_language_get_required_feature_index ()">hb_ot_layout_language_get_required_feature_index</a> <span class="c_punctuation">()</span>
341 </td>
342 </tr>
343 </tbody>
344 </table></div>
345 </div>
346 <div class="refsect1">
347 <a name="harfbuzz-hb-ot-layout.other"></a><h2>Types and Values</h2>
348 <div class="informaltable"><table class="informaltable" width="100%" border="0">
349 <colgroup>
350 <col width="150px" class="other_proto_type">
351 <col class="other_proto_name">
352 </colgroup>
353 <tbody>
354 <tr>
355 <td class="define_keyword">#define</td>
356 <td class="function_name"><a class="link" href="harfbuzz-hb-ot-layout.html#HB-OT-MAX-TAGS-PER-LANGUAGE:CAPS" title="HB_OT_MAX_TAGS_PER_LANGUAGE">HB_OT_MAX_TAGS_PER_LANGUAGE</a></td>
357 </tr>
358 <tr>
359 <td class="define_keyword">#define</td>
360 <td class="function_name"><a class="link" href="harfbuzz-hb-ot-layout.html#HB-OT-MAX-TAGS-PER-SCRIPT:CAPS" title="HB_OT_MAX_TAGS_PER_SCRIPT">HB_OT_MAX_TAGS_PER_SCRIPT</a></td>
361 </tr>
362 <tr>
363 <td class="define_keyword">#define</td>
364 <td class="function_name"><a class="link" href="harfbuzz-hb-ot-layout.html#HB-OT-TAG-DEFAULT-LANGUAGE:CAPS" title="HB_OT_TAG_DEFAULT_LANGUAGE">HB_OT_TAG_DEFAULT_LANGUAGE</a></td>
365 </tr>
366 <tr>
367 <td class="define_keyword">#define</td>
368 <td class="function_name"><a class="link" href="harfbuzz-hb-ot-layout.html#HB-OT-TAG-DEFAULT-SCRIPT:CAPS" title="HB_OT_TAG_DEFAULT_SCRIPT">HB_OT_TAG_DEFAULT_SCRIPT</a></td>
369 </tr>
370 <tr>
371 <td class="define_keyword">#define</td>
372 <td class="function_name"><a class="link" href="harfbuzz-hb-ot-layout.html#HB-OT-LAYOUT-DEFAULT-LANGUAGE-INDEX:CAPS" title="HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX">HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX</a></td>
373 </tr>
374 <tr>
375 <td class="define_keyword">#define</td>
376 <td class="function_name"><a class="link" href="harfbuzz-hb-ot-layout.html#HB-OT-LAYOUT-NO-FEATURE-INDEX:CAPS" title="HB_OT_LAYOUT_NO_FEATURE_INDEX">HB_OT_LAYOUT_NO_FEATURE_INDEX</a></td>
377 </tr>
378 <tr>
379 <td class="define_keyword">#define</td>
380 <td class="function_name"><a class="link" href="harfbuzz-hb-ot-layout.html#HB-OT-LAYOUT-NO-SCRIPT-INDEX:CAPS" title="HB_OT_LAYOUT_NO_SCRIPT_INDEX">HB_OT_LAYOUT_NO_SCRIPT_INDEX</a></td>
381 </tr>
382 <tr>
383 <td class="define_keyword">#define</td>
384 <td class="function_name"><a class="link" href="harfbuzz-hb-ot-layout.html#HB-OT-LAYOUT-NO-VARIATIONS-INDEX:CAPS" title="HB_OT_LAYOUT_NO_VARIATIONS_INDEX">HB_OT_LAYOUT_NO_VARIATIONS_INDEX</a></td>
385 </tr>
386 <tr>
387 <td class="define_keyword">#define</td>
388 <td class="function_name"><a class="link" href="harfbuzz-hb-ot-layout.html#HB-OT-TAG-BASE:CAPS" title="HB_OT_TAG_BASE">HB_OT_TAG_BASE</a></td>
389 </tr>
390 <tr>
391 <td class="define_keyword">#define</td>
392 <td class="function_name"><a class="link" href="harfbuzz-hb-ot-layout.html#HB-OT-TAG-GDEF:CAPS" title="HB_OT_TAG_GDEF">HB_OT_TAG_GDEF</a></td>
393 </tr>
394 <tr>
395 <td class="define_keyword">#define</td>
396 <td class="function_name"><a class="link" href="harfbuzz-hb-ot-layout.html#HB-OT-TAG-GPOS:CAPS" title="HB_OT_TAG_GPOS">HB_OT_TAG_GPOS</a></td>
397 </tr>
398 <tr>
399 <td class="define_keyword">#define</td>
400 <td class="function_name"><a class="link" href="harfbuzz-hb-ot-layout.html#HB-OT-TAG-GSUB:CAPS" title="HB_OT_TAG_GSUB">HB_OT_TAG_GSUB</a></td>
401 </tr>
402 <tr>
403 <td class="define_keyword">#define</td>
404 <td class="function_name"><a class="link" href="harfbuzz-hb-ot-layout.html#HB-OT-TAG-JSTF:CAPS" title="HB_OT_TAG_JSTF">HB_OT_TAG_JSTF</a></td>
405 </tr>
406 <tr>
407 <td class="datatype_keyword">enum</td>
408 <td class="function_name"><a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-baseline-tag-t" title="enum hb_ot_layout_baseline_tag_t">hb_ot_layout_baseline_tag_t</a></td>
409 </tr>
410 <tr>
411 <td class="datatype_keyword">enum</td>
412 <td class="function_name"><a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-glyph-class-t" title="enum hb_ot_layout_glyph_class_t">hb_ot_layout_glyph_class_t</a></td>
413 </tr>
414 </tbody>
415 </table></div>
416 </div>
417 <div class="refsect1">
418 <a name="harfbuzz-hb-ot-layout.includes"></a><h2>Includes</h2>
419 <pre class="synopsis">#include &lt;hb-ot.h&gt;
420 </pre>
421 </div>
422 <div class="refsect1">
423 <a name="harfbuzz-hb-ot-layout.description"></a><h2>Description</h2>
424 <p>Functions for querying OpenType Layout features in the font face.</p>
425 </div>
426 <div class="refsect1">
427 <a name="harfbuzz-hb-ot-layout.functions_details"></a><h2>Functions</h2>
428 <div class="refsect2">
429 <a name="hb-ot-tag-to-language"></a><h3>hb_ot_tag_to_language ()</h3>
430 <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>
431 hb_ot_tag_to_language (<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>
432 <div class="refsect3">
433 <a name="hb-ot-tag-to-language.returns"></a><h4>Returns</h4>
434 <p>. </p>
435 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
436 </div>
437 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
438 </div>
439 <hr>
440 <div class="refsect2">
441 <a name="hb-ot-tag-to-script"></a><h3>hb_ot_tag_to_script ()</h3>
442 <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>
443 hb_ot_tag_to_script (<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>
444 </div>
445 <hr>
446 <div class="refsect2">
447 <a name="hb-ot-tags-from-script-and-language"></a><h3>hb_ot_tags_from_script_and_language ()</h3>
448 <pre class="programlisting"><span class="returnvalue">void</span>
449 hb_ot_tags_from_script_and_language (<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>,
450                                      <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>,
451                                      <em class="parameter"><code>unsigned <span class="type">int</span> *script_count</code></em>,
452                                      <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> *script_tags</code></em>,
453                                      <em class="parameter"><code>unsigned <span class="type">int</span> *language_count</code></em>,
454                                      <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> *language_tags</code></em>);</pre>
455 <p>Converts 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> and 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 script and language tags.</p>
456 <div class="refsect3">
457 <a name="hb-ot-tags-from-script-and-language.parameters"></a><h4>Parameters</h4>
458 <div class="informaltable"><table class="informaltable" width="100%" border="0">
459 <colgroup>
460 <col width="150px" class="parameters_name">
461 <col class="parameters_description">
462 <col width="200px" class="parameters_annotations">
463 </colgroup>
464 <tbody>
465 <tr>
466 <td class="parameter_name"><p>script</p></td>
467 <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>
468 <td class="parameter_annotations"> </td>
469 </tr>
470 <tr>
471 <td class="parameter_name"><p>language</p></td>
472 <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>
473 <td class="parameter_annotations"> </td>
474 </tr>
475 <tr>
476 <td class="parameter_name"><p>script_count</p></td>
477 <td class="parameter_description"><p>maximum number of script tags to retrieve (IN)
478 and actual number of script tags retrieved (OUT). </p></td>
479 <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
480 </tr>
481 <tr>
482 <td class="parameter_name"><p>script_tags</p></td>
483 <td class="parameter_description"><p>array of size at least <em class="parameter"><code>script_count</code></em>
484 to store the
485 script tag results. </p></td>
486 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
487 </tr>
488 <tr>
489 <td class="parameter_name"><p>language_count</p></td>
490 <td class="parameter_description"><p>maximum number of language tags to retrieve
491 (IN) and actual number of language tags retrieved (OUT). </p></td>
492 <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
493 </tr>
494 <tr>
495 <td class="parameter_name"><p>language_tags</p></td>
496 <td class="parameter_description"><p>array of size at least <em class="parameter"><code>language_count</code></em>
497 to store
498 the language tag results. </p></td>
499 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
500 </tr>
501 </tbody>
502 </table></div>
503 </div>
504 <p class="since">Since: <a class="link" href="api-index-2-0-0.html#api-index-2.0.0">2.0.0</a></p>
505 </div>
506 <hr>
507 <div class="refsect2">
508 <a name="hb-ot-tags-to-script-and-language"></a><h3>hb_ot_tags_to_script_and_language ()</h3>
509 <pre class="programlisting"><span class="returnvalue">void</span>
510 hb_ot_tags_to_script_and_language (<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> script_tag</code></em>,
511                                    <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> language_tag</code></em>,
512                                    <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>,
513                                    <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>
514 <p>Converts a script tag and a language tag to 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> and an
515 <a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a>.</p>
516 <div class="refsect3">
517 <a name="hb-ot-tags-to-script-and-language.parameters"></a><h4>Parameters</h4>
518 <div class="informaltable"><table class="informaltable" width="100%" border="0">
519 <colgroup>
520 <col width="150px" class="parameters_name">
521 <col class="parameters_description">
522 <col width="200px" class="parameters_annotations">
523 </colgroup>
524 <tbody>
525 <tr>
526 <td class="parameter_name"><p>script_tag</p></td>
527 <td class="parameter_description"><p>a script tag</p></td>
528 <td class="parameter_annotations"> </td>
529 </tr>
530 <tr>
531 <td class="parameter_name"><p>language_tag</p></td>
532 <td class="parameter_description"><p>a language tag</p></td>
533 <td class="parameter_annotations"> </td>
534 </tr>
535 <tr>
536 <td class="parameter_name"><p>script</p></td>
537 <td class="parameter_description"><p>the <a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> corresponding to <em class="parameter"><code>script_tag</code></em>
538 (OUT). </p></td>
539 <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
540 </tr>
541 <tr>
542 <td class="parameter_name"><p>language</p></td>
543 <td class="parameter_description"><p>the <a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> corresponding to <em class="parameter"><code>script_tag</code></em>
544 and
545 <em class="parameter"><code>language_tag</code></em>
546 (OUT). </p></td>
547 <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
548 </tr>
549 </tbody>
550 </table></div>
551 </div>
552 <p class="since">Since: <a class="link" href="api-index-2-0-0.html#api-index-2.0.0">2.0.0</a></p>
553 </div>
554 <hr>
555 <div class="refsect2">
556 <a name="hb-ot-layout-closure-lookups"></a><h3>hb_ot_layout_closure_lookups ()</h3>
557 <pre class="programlisting"><span class="returnvalue">void</span>
558 hb_ot_layout_closure_lookups (<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>,
559                               <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_tag</code></em>,
560                               <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *glyphs</code></em>,
561                               <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> *lookup_indexes</code></em>);</pre>
562 <p>Returns all inactive lookups reachable from lookup_indices</p>
563 <div class="refsect3">
564 <a name="hb-ot-layout-closure-lookups.parameters"></a><h4>Parameters</h4>
565 <div class="informaltable"><table class="informaltable" width="100%" border="0">
566 <colgroup>
567 <col width="150px" class="parameters_name">
568 <col class="parameters_description">
569 <col width="200px" class="parameters_annotations">
570 </colgroup>
571 <tbody>
572 <tr>
573 <td class="parameter_name"><p>face</p></td>
574 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
575 <td class="parameter_annotations"> </td>
576 </tr>
577 <tr>
578 <td class="parameter_name"><p>table_tag</p></td>
579 <td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
580 <td class="parameter_annotations"> </td>
581 </tr>
582 <tr>
583 <td class="parameter_name"><p>lookup_indexes</p></td>
584 <td class="parameter_description"><p>lookup_indices collected from feature
585 list. </p></td>
586 <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>
587 </tr>
588 </tbody>
589 </table></div>
590 </div>
591 <p class="since">Since: EXPERIMENTAL</p>
592 </div>
593 <hr>
594 <div class="refsect2">
595 <a name="hb-ot-layout-closure-features"></a><h3>hb_ot_layout_closure_features ()</h3>
596 <pre class="programlisting"><span class="returnvalue">void</span>
597 hb_ot_layout_closure_features (<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>,
598                                <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_tag</code></em>,
599                                <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *lookup_indexes</code></em>,
600                                <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> *feature_indexes</code></em>);</pre>
601 <p>Returns all active feature indexes</p>
602 <div class="refsect3">
603 <a name="hb-ot-layout-closure-features.parameters"></a><h4>Parameters</h4>
604 <div class="informaltable"><table class="informaltable" width="100%" border="0">
605 <colgroup>
606 <col width="150px" class="parameters_name">
607 <col class="parameters_description">
608 <col width="200px" class="parameters_annotations">
609 </colgroup>
610 <tbody>
611 <tr>
612 <td class="parameter_name"><p>face</p></td>
613 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
614 <td class="parameter_annotations"> </td>
615 </tr>
616 <tr>
617 <td class="parameter_name"><p>table_tag</p></td>
618 <td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
619 <td class="parameter_annotations"> </td>
620 </tr>
621 <tr>
622 <td class="parameter_name"><p>lookup_indexes</p></td>
623 <td class="parameter_description"><p>collected active lookup_indices. </p></td>
624 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>]</span></td>
625 </tr>
626 <tr>
627 <td class="parameter_name"><p>feature_indexes</p></td>
628 <td class="parameter_description"><p>all active feature indexes collected. </p></td>
629 <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>
630 </tr>
631 </tbody>
632 </table></div>
633 </div>
634 <p class="since">Since: EXPERIMENTAL</p>
635 </div>
636 <hr>
637 <div class="refsect2">
638 <a name="hb-ot-layout-collect-lookups"></a><h3>hb_ot_layout_collect_lookups ()</h3>
639 <pre class="programlisting"><span class="returnvalue">void</span>
640 hb_ot_layout_collect_lookups (<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>,
641                               <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_tag</code></em>,
642                               <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> *scripts</code></em>,
643                               <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> *languages</code></em>,
644                               <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> *features</code></em>,
645                               <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> *lookup_indexes</code></em>);</pre>
646 <p>Fetches a list of all feature-lookup indexes in the specified face's GSUB
647 table or GPOS table, underneath the specified scripts, languages, and
648 features. If no list of scripts is provided, all scripts will be queried.
649 If no list of languages is provided, all languages will be queried. If no
650 list of features is provided, all features will be queried.</p>
651 <div class="refsect3">
652 <a name="hb-ot-layout-collect-lookups.parameters"></a><h4>Parameters</h4>
653 <div class="informaltable"><table class="informaltable" width="100%" border="0">
654 <colgroup>
655 <col width="150px" class="parameters_name">
656 <col class="parameters_description">
657 <col width="200px" class="parameters_annotations">
658 </colgroup>
659 <tbody>
660 <tr>
661 <td class="parameter_name"><p>face</p></td>
662 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
663 <td class="parameter_annotations"> </td>
664 </tr>
665 <tr>
666 <td class="parameter_name"><p>table_tag</p></td>
667 <td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
668 <td class="parameter_annotations"> </td>
669 </tr>
670 <tr>
671 <td class="parameter_name"><p>scripts</p></td>
672 <td class="parameter_description"><p>The array of scripts to collect lookups for</p></td>
673 <td class="parameter_annotations"> </td>
674 </tr>
675 <tr>
676 <td class="parameter_name"><p>languages</p></td>
677 <td class="parameter_description"><p>The array of languages to collect lookups for</p></td>
678 <td class="parameter_annotations"> </td>
679 </tr>
680 <tr>
681 <td class="parameter_name"><p>features</p></td>
682 <td class="parameter_description"><p>The array of features to collect lookups for</p></td>
683 <td class="parameter_annotations"> </td>
684 </tr>
685 <tr>
686 <td class="parameter_name"><p>lookup_indexes</p></td>
687 <td class="parameter_description"><p>The array of lookup indexes found for the query. </p></td>
688 <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>
689 </tr>
690 </tbody>
691 </table></div>
692 </div>
693 <p class="since">Since: <a class="link" href="api-index-0-9-8.html#api-index-0.9.8">0.9.8</a></p>
694 </div>
695 <hr>
696 <div class="refsect2">
697 <a name="hb-ot-layout-collect-features"></a><h3>hb_ot_layout_collect_features ()</h3>
698 <pre class="programlisting"><span class="returnvalue">void</span>
699 hb_ot_layout_collect_features (<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>,
700                                <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_tag</code></em>,
701                                <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> *scripts</code></em>,
702                                <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> *languages</code></em>,
703                                <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> *features</code></em>,
704                                <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> *feature_indexes</code></em>);</pre>
705 <p>Fetches a list of all feature indexes in the specified face's GSUB table
706 or GPOS table, underneath the specified scripts, languages, and features.
707 If no list of scripts is provided, all scripts will be queried. If no list
708 of languages is provided, all languages will be queried. If no list of
709 features is provided, all features will be queried.</p>
710 <div class="refsect3">
711 <a name="hb-ot-layout-collect-features.parameters"></a><h4>Parameters</h4>
712 <div class="informaltable"><table class="informaltable" width="100%" border="0">
713 <colgroup>
714 <col width="150px" class="parameters_name">
715 <col class="parameters_description">
716 <col width="200px" class="parameters_annotations">
717 </colgroup>
718 <tbody>
719 <tr>
720 <td class="parameter_name"><p>face</p></td>
721 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
722 <td class="parameter_annotations"> </td>
723 </tr>
724 <tr>
725 <td class="parameter_name"><p>table_tag</p></td>
726 <td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
727 <td class="parameter_annotations"> </td>
728 </tr>
729 <tr>
730 <td class="parameter_name"><p>scripts</p></td>
731 <td class="parameter_description"><p>The array of scripts to collect features for</p></td>
732 <td class="parameter_annotations"> </td>
733 </tr>
734 <tr>
735 <td class="parameter_name"><p>languages</p></td>
736 <td class="parameter_description"><p>The array of languages to collect features for</p></td>
737 <td class="parameter_annotations"> </td>
738 </tr>
739 <tr>
740 <td class="parameter_name"><p>features</p></td>
741 <td class="parameter_description"><p>The array of features to collect</p></td>
742 <td class="parameter_annotations"> </td>
743 </tr>
744 <tr>
745 <td class="parameter_name"><p>feature_indexes</p></td>
746 <td class="parameter_description"><p>The array of feature indexes found for the query. </p></td>
747 <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>
748 </tr>
749 </tbody>
750 </table></div>
751 </div>
752 <p class="since">Since: <a class="link" href="api-index-1-8-5.html#api-index-1.8.5">1.8.5</a></p>
753 </div>
754 <hr>
755 <div class="refsect2">
756 <a name="hb-ot-layout-feature-get-characters"></a><h3>hb_ot_layout_feature_get_characters ()</h3>
757 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
758 hb_ot_layout_feature_get_characters (<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>,
759                                      <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_tag</code></em>,
760                                      <em class="parameter"><code>unsigned <span class="type">int</span> feature_index</code></em>,
761                                      <em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
762                                      <em class="parameter"><code>unsigned <span class="type">int</span> *char_count</code></em>,
763                                      <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> *characters</code></em>);</pre>
764 <p>Fetches a list of the characters defined as having a variant under the specified
765 "Character Variant" ("cvXX") feature tag.</p>
766 <div class="note">Note: If the char_count output value is equal to its input value, then there
767       is a chance there were more characters defined under the feature tag than were
768       returned. This function can be called with incrementally larger start_offset
769       until the char_count output value is lower than its input value, or the size
770       of the characters array can be increased.</div>
771 <div class="refsect3">
772 <a name="hb-ot-layout-feature-get-characters.parameters"></a><h4>Parameters</h4>
773 <div class="informaltable"><table class="informaltable" width="100%" border="0">
774 <colgroup>
775 <col width="150px" class="parameters_name">
776 <col class="parameters_description">
777 <col width="200px" class="parameters_annotations">
778 </colgroup>
779 <tbody>
780 <tr>
781 <td class="parameter_name"><p>face</p></td>
782 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
783 <td class="parameter_annotations"> </td>
784 </tr>
785 <tr>
786 <td class="parameter_name"><p>table_tag</p></td>
787 <td class="parameter_description"><p>table tag to query, "GSUB" or "GPOS".</p></td>
788 <td class="parameter_annotations"> </td>
789 </tr>
790 <tr>
791 <td class="parameter_name"><p>feature_index</p></td>
792 <td class="parameter_description"><p>index of feature to query.</p></td>
793 <td class="parameter_annotations"> </td>
794 </tr>
795 <tr>
796 <td class="parameter_name"><p>start_offset</p></td>
797 <td class="parameter_description"><p>offset of the first character to retrieve</p></td>
798 <td class="parameter_annotations"> </td>
799 </tr>
800 <tr>
801 <td class="parameter_name"><p>char_count</p></td>
802 <td class="parameter_description"><p>Input = the maximum number of characters to return;
803 Output = the actual number of characters returned (may be zero). </p></td>
804 <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>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
805 </tr>
806 <tr>
807 <td class="parameter_name"><p>characters</p></td>
808 <td class="parameter_description"><p>A buffer pointer.
809 The Unicode codepoints of the characters for which this feature provides
810 glyph variants. </p></td>
811 <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> length=char_count]</span></td>
812 </tr>
813 </tbody>
814 </table></div>
815 </div>
816 <div class="refsect3">
817 <a name="hb-ot-layout-feature-get-characters.returns"></a><h4>Returns</h4>
818 <p> Number of total sample characters in the cvXX feature.</p>
819 </div>
820 <p class="since">Since: <a class="link" href="api-index-2-0-0.html#api-index-2.0.0">2.0.0</a></p>
821 </div>
822 <hr>
823 <div class="refsect2">
824 <a name="hb-ot-layout-feature-get-lookups"></a><h3>hb_ot_layout_feature_get_lookups ()</h3>
825 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
826 hb_ot_layout_feature_get_lookups (<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>,
827                                   <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_tag</code></em>,
828                                   <em class="parameter"><code>unsigned <span class="type">int</span> feature_index</code></em>,
829                                   <em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
830                                   <em class="parameter"><code>unsigned <span class="type">int</span> *lookup_count</code></em>,
831                                   <em class="parameter"><code>unsigned <span class="type">int</span> *lookup_indexes</code></em>);</pre>
832 <p>Fetches a list of all lookups enumerated for the specified feature, in
833 the specified face's GSUB table or GPOS table. The list returned will
834 begin at the offset provided.</p>
835 <div class="refsect3">
836 <a name="hb-ot-layout-feature-get-lookups.parameters"></a><h4>Parameters</h4>
837 <div class="informaltable"><table class="informaltable" width="100%" border="0">
838 <colgroup>
839 <col width="150px" class="parameters_name">
840 <col class="parameters_description">
841 <col width="200px" class="parameters_annotations">
842 </colgroup>
843 <tbody>
844 <tr>
845 <td class="parameter_name"><p>face</p></td>
846 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
847 <td class="parameter_annotations"> </td>
848 </tr>
849 <tr>
850 <td class="parameter_name"><p>table_tag</p></td>
851 <td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
852 <td class="parameter_annotations"> </td>
853 </tr>
854 <tr>
855 <td class="parameter_name"><p>feature_index</p></td>
856 <td class="parameter_description"><p>The index of the requested feature</p></td>
857 <td class="parameter_annotations"> </td>
858 </tr>
859 <tr>
860 <td class="parameter_name"><p>start_offset</p></td>
861 <td class="parameter_description"><p>offset of the first lookup to retrieve</p></td>
862 <td class="parameter_annotations"> </td>
863 </tr>
864 <tr>
865 <td class="parameter_name"><p>lookup_count</p></td>
866 <td class="parameter_description"><p>Input = the maximum number of lookups to return;
867 Output = the actual number of lookups returned (may be zero). </p></td>
868 <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>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
869 </tr>
870 <tr>
871 <td class="parameter_name"><p>lookup_indexes</p></td>
872 <td class="parameter_description"><p>The array of lookup indexes found for the query. </p></td>
873 <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=lookup_count]</span></td>
874 </tr>
875 </tbody>
876 </table></div>
877 </div>
878 <p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
879 </div>
880 <hr>
881 <div class="refsect2">
882 <a name="hb-ot-layout-feature-get-name-ids"></a><h3>hb_ot_layout_feature_get_name_ids ()</h3>
883 <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>
884 hb_ot_layout_feature_get_name_ids (<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>,
885                                    <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_tag</code></em>,
886                                    <em class="parameter"><code>unsigned <span class="type">int</span> feature_index</code></em>,
887                                    <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="type">hb_ot_name_id_t</span></a> *label_id</code></em>,
888                                    <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="type">hb_ot_name_id_t</span></a> *tooltip_id</code></em>,
889                                    <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="type">hb_ot_name_id_t</span></a> *sample_id</code></em>,
890                                    <em class="parameter"><code>unsigned <span class="type">int</span> *num_named_parameters</code></em>,
891                                    <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="type">hb_ot_name_id_t</span></a> *first_param_id</code></em>);</pre>
892 <p>Fetches name indices from feature parameters for "Stylistic Set" ('ssXX') or
893 "Character Variant" ('cvXX') features.</p>
894 <div class="refsect3">
895 <a name="hb-ot-layout-feature-get-name-ids.parameters"></a><h4>Parameters</h4>
896 <div class="informaltable"><table class="informaltable" width="100%" border="0">
897 <colgroup>
898 <col width="150px" class="parameters_name">
899 <col class="parameters_description">
900 <col width="200px" class="parameters_annotations">
901 </colgroup>
902 <tbody>
903 <tr>
904 <td class="parameter_name"><p>face</p></td>
905 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
906 <td class="parameter_annotations"> </td>
907 </tr>
908 <tr>
909 <td class="parameter_name"><p>table_tag</p></td>
910 <td class="parameter_description"><p>table tag to query, "GSUB" or "GPOS".</p></td>
911 <td class="parameter_annotations"> </td>
912 </tr>
913 <tr>
914 <td class="parameter_name"><p>feature_index</p></td>
915 <td class="parameter_description"><p>index of feature to query.</p></td>
916 <td class="parameter_annotations"> </td>
917 </tr>
918 <tr>
919 <td class="parameter_name"><p>label_id</p></td>
920 <td class="parameter_description"><p>The ‘name’ table name ID that specifies a string
921 for a user-interface label for this feature. (May be NULL.). </p></td>
922 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
923 </tr>
924 <tr>
925 <td class="parameter_name"><p>tooltip_id</p></td>
926 <td class="parameter_description"><p>The ‘name’ table name ID that specifies a string
927 that an application can use for tooltip text for this
928 feature. (May be NULL.). </p></td>
929 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
930 </tr>
931 <tr>
932 <td class="parameter_name"><p>sample_id</p></td>
933 <td class="parameter_description"><p>The ‘name’ table name ID that specifies sample text
934 that illustrates the effect of this feature. (May be NULL.). </p></td>
935 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
936 </tr>
937 <tr>
938 <td class="parameter_name"><p>num_named_parameters</p></td>
939 <td class="parameter_description"><p>Number of named parameters. (May be zero.). </p></td>
940 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
941 </tr>
942 <tr>
943 <td class="parameter_name"><p>first_param_id</p></td>
944 <td class="parameter_description"><p>The first ‘name’ table name ID used to specify
945 strings for user-interface labels for the feature
946 parameters. (Must be zero if numParameters is zero.). </p></td>
947 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
948 </tr>
949 </tbody>
950 </table></div>
951 </div>
952 <div class="refsect3">
953 <a name="hb-ot-layout-feature-get-name-ids.returns"></a><h4>Returns</h4>
954 <p> true if data found, false otherwise</p>
955 </div>
956 <p class="since">Since: <a class="link" href="api-index-2-0-0.html#api-index-2.0.0">2.0.0</a></p>
957 </div>
958 <hr>
959 <div class="refsect2">
960 <a name="hb-ot-layout-feature-with-variations-get-lookups"></a><h3>hb_ot_layout_feature_with_variations_get_lookups ()</h3>
961 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
962 hb_ot_layout_feature_with_variations_get_lookups
963                                (<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>,
964                                 <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_tag</code></em>,
965                                 <em class="parameter"><code>unsigned <span class="type">int</span> feature_index</code></em>,
966                                 <em class="parameter"><code>unsigned <span class="type">int</span> variations_index</code></em>,
967                                 <em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
968                                 <em class="parameter"><code>unsigned <span class="type">int</span> *lookup_count</code></em>,
969                                 <em class="parameter"><code>unsigned <span class="type">int</span> *lookup_indexes</code></em>);</pre>
970 <p>Fetches a list of all lookups enumerated for the specified feature, in
971 the specified face's GSUB table or GPOS table, enabled at the specified
972 variations index. The list returned will begin at the offset provided.</p>
973 <div class="refsect3">
974 <a name="hb-ot-layout-feature-with-variations-get-lookups.parameters"></a><h4>Parameters</h4>
975 <div class="informaltable"><table class="informaltable" width="100%" border="0">
976 <colgroup>
977 <col width="150px" class="parameters_name">
978 <col class="parameters_description">
979 <col width="200px" class="parameters_annotations">
980 </colgroup>
981 <tbody>
982 <tr>
983 <td class="parameter_name"><p>face</p></td>
984 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
985 <td class="parameter_annotations"> </td>
986 </tr>
987 <tr>
988 <td class="parameter_name"><p>table_tag</p></td>
989 <td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
990 <td class="parameter_annotations"> </td>
991 </tr>
992 <tr>
993 <td class="parameter_name"><p>feature_index</p></td>
994 <td class="parameter_description"><p>The index of the feature to query</p></td>
995 <td class="parameter_annotations"> </td>
996 </tr>
997 <tr>
998 <td class="parameter_name"><p>variations_index</p></td>
999 <td class="parameter_description"><p>The index of the feature variation to query</p></td>
1000 <td class="parameter_annotations"> </td>
1001 </tr>
1002 <tr>
1003 <td class="parameter_name"><p>start_offset</p></td>
1004 <td class="parameter_description"><p>offset of the first lookup to retrieve</p></td>
1005 <td class="parameter_annotations"> </td>
1006 </tr>
1007 <tr>
1008 <td class="parameter_name"><p>lookup_count</p></td>
1009 <td class="parameter_description"><p>Input = the maximum number of lookups to return;
1010 Output = the actual number of lookups returned (may be zero). </p></td>
1011 <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>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
1012 </tr>
1013 <tr>
1014 <td class="parameter_name"><p>lookup_indexes</p></td>
1015 <td class="parameter_description"><p>The array of lookups found for the query. </p></td>
1016 <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=lookup_count]</span></td>
1017 </tr>
1018 </tbody>
1019 </table></div>
1020 </div>
1021 </div>
1022 <hr>
1023 <div class="refsect2">
1024 <a name="hb-ot-layout-get-attach-points"></a><h3>hb_ot_layout_get_attach_points ()</h3>
1025 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
1026 hb_ot_layout_get_attach_points (<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>,
1027                                 <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> glyph</code></em>,
1028                                 <em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
1029                                 <em class="parameter"><code>unsigned <span class="type">int</span> *point_count</code></em>,
1030                                 <em class="parameter"><code>unsigned <span class="type">int</span> *point_array</code></em>);</pre>
1031 <p>Fetches a list of all attachment points for the specified glyph in the GDEF
1032 table of the face. The list returned will begin at the offset provided.</p>
1033 <p>Useful if the client program wishes to cache the list.</p>
1034 <div class="refsect3">
1035 <a name="hb-ot-layout-get-attach-points.parameters"></a><h4>Parameters</h4>
1036 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1037 <colgroup>
1038 <col width="150px" class="parameters_name">
1039 <col class="parameters_description">
1040 <col width="200px" class="parameters_annotations">
1041 </colgroup>
1042 <tbody>
1043 <tr>
1044 <td class="parameter_name"><p>face</p></td>
1045 <td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work on</p></td>
1046 <td class="parameter_annotations"> </td>
1047 </tr>
1048 <tr>
1049 <td class="parameter_name"><p>glyph</p></td>
1050 <td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> code point to query</p></td>
1051 <td class="parameter_annotations"> </td>
1052 </tr>
1053 <tr>
1054 <td class="parameter_name"><p>start_offset</p></td>
1055 <td class="parameter_description"><p>offset of the first attachment point to retrieve</p></td>
1056 <td class="parameter_annotations"> </td>
1057 </tr>
1058 <tr>
1059 <td class="parameter_name"><p>point_count</p></td>
1060 <td class="parameter_description"><p>Input = the maximum number of attachment points to return;
1061 Output = the actual number of attachment points returned (may be zero). </p></td>
1062 <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>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
1063 </tr>
1064 <tr>
1065 <td class="parameter_name"><p>point_array</p></td>
1066 <td class="parameter_description"><p>The array of attachment points found for the query. </p></td>
1067 <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=point_count]</span></td>
1068 </tr>
1069 </tbody>
1070 </table></div>
1071 </div>
1072 </div>
1073 <hr>
1074 <div class="refsect2">
1075 <a name="hb-ot-layout-get-baseline"></a><h3>hb_ot_layout_get_baseline ()</h3>
1076 <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>
1077 hb_ot_layout_get_baseline (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
1078                            <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-baseline-tag-t" title="enum hb_ot_layout_baseline_tag_t"><span class="type">hb_ot_layout_baseline_tag_t</span></a> baseline_tag</code></em>,
1079                            <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>,
1080                            <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> script_tag</code></em>,
1081                            <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> language_tag</code></em>,
1082                            <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *coord</code></em>);</pre>
1083 <p>Fetches a baseline value from the face.</p>
1084 <div class="refsect3">
1085 <a name="hb-ot-layout-get-baseline.parameters"></a><h4>Parameters</h4>
1086 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1087 <colgroup>
1088 <col width="150px" class="parameters_name">
1089 <col class="parameters_description">
1090 <col width="200px" class="parameters_annotations">
1091 </colgroup>
1092 <tbody>
1093 <tr>
1094 <td class="parameter_name"><p>font</p></td>
1095 <td class="parameter_description"><p>a font</p></td>
1096 <td class="parameter_annotations"> </td>
1097 </tr>
1098 <tr>
1099 <td class="parameter_name"><p>baseline_tag</p></td>
1100 <td class="parameter_description"><p>a baseline tag</p></td>
1101 <td class="parameter_annotations"> </td>
1102 </tr>
1103 <tr>
1104 <td class="parameter_name"><p>direction</p></td>
1105 <td class="parameter_description"><p>text direction.</p></td>
1106 <td class="parameter_annotations"> </td>
1107 </tr>
1108 <tr>
1109 <td class="parameter_name"><p>script_tag</p></td>
1110 <td class="parameter_description"><p>script tag.</p></td>
1111 <td class="parameter_annotations"> </td>
1112 </tr>
1113 <tr>
1114 <td class="parameter_name"><p>language_tag</p></td>
1115 <td class="parameter_description"><p>language tag.</p></td>
1116 <td class="parameter_annotations"> </td>
1117 </tr>
1118 <tr>
1119 <td class="parameter_name"><p>coord</p></td>
1120 <td class="parameter_description"><p>baseline value if found. </p></td>
1121 <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>
1122 </tr>
1123 </tbody>
1124 </table></div>
1125 </div>
1126 <div class="refsect3">
1127 <a name="hb-ot-layout-get-baseline.returns"></a><h4>Returns</h4>
1128 <p> if found baseline value in the font.</p>
1129 </div>
1130 <p class="since">Since: <a class="link" href="api-index-2-6-0.html#api-index-2.6.0">2.6.0</a></p>
1131 </div>
1132 <hr>
1133 <div class="refsect2">
1134 <a name="hb-ot-layout-get-glyph-class"></a><h3>hb_ot_layout_get_glyph_class ()</h3>
1135 <pre class="programlisting"><a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-glyph-class-t" title="enum hb_ot_layout_glyph_class_t"><span class="returnvalue">hb_ot_layout_glyph_class_t</span></a>
1136 hb_ot_layout_get_glyph_class (<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>,
1137                               <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> glyph</code></em>);</pre>
1138 <p>Fetches the GDEF class of the requested glyph in the specified face.</p>
1139 <div class="refsect3">
1140 <a name="hb-ot-layout-get-glyph-class.parameters"></a><h4>Parameters</h4>
1141 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1142 <colgroup>
1143 <col width="150px" class="parameters_name">
1144 <col class="parameters_description">
1145 <col width="200px" class="parameters_annotations">
1146 </colgroup>
1147 <tbody>
1148 <tr>
1149 <td class="parameter_name"><p>face</p></td>
1150 <td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work on</p></td>
1151 <td class="parameter_annotations"> </td>
1152 </tr>
1153 <tr>
1154 <td class="parameter_name"><p>glyph</p></td>
1155 <td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> code point to query</p></td>
1156 <td class="parameter_annotations"> </td>
1157 </tr>
1158 </tbody>
1159 </table></div>
1160 </div>
1161 <div class="refsect3">
1162 <a name="hb-ot-layout-get-glyph-class.returns"></a><h4>Returns</h4>
1163 <p> The <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-glyph-class-t" title="enum hb_ot_layout_glyph_class_t"><span class="type">hb_ot_layout_glyph_class_t</span></a> glyph class of the given code
1164 point in the GDEF table of the face.</p>
1165 </div>
1166 <p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
1167 </div>
1168 <hr>
1169 <div class="refsect2">
1170 <a name="hb-ot-layout-get-glyphs-in-class"></a><h3>hb_ot_layout_get_glyphs_in_class ()</h3>
1171 <pre class="programlisting"><span class="returnvalue">void</span>
1172 hb_ot_layout_get_glyphs_in_class (<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>,
1173                                   <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-glyph-class-t" title="enum hb_ot_layout_glyph_class_t"><span class="type">hb_ot_layout_glyph_class_t</span></a> klass</code></em>,
1174                                   <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> *glyphs</code></em>);</pre>
1175 <p>Retrieves the set of all glyphs from the face that belong to the requested
1176 glyph class in the face's GDEF table.</p>
1177 <div class="refsect3">
1178 <a name="hb-ot-layout-get-glyphs-in-class.parameters"></a><h4>Parameters</h4>
1179 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1180 <colgroup>
1181 <col width="150px" class="parameters_name">
1182 <col class="parameters_description">
1183 <col width="200px" class="parameters_annotations">
1184 </colgroup>
1185 <tbody>
1186 <tr>
1187 <td class="parameter_name"><p>face</p></td>
1188 <td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work on</p></td>
1189 <td class="parameter_annotations"> </td>
1190 </tr>
1191 <tr>
1192 <td class="parameter_name"><p>klass</p></td>
1193 <td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-glyph-class-t" title="enum hb_ot_layout_glyph_class_t"><span class="type">hb_ot_layout_glyph_class_t</span></a> GDEF class to retrieve</p></td>
1194 <td class="parameter_annotations"> </td>
1195 </tr>
1196 <tr>
1197 <td class="parameter_name"><p>glyphs</p></td>
1198 <td class="parameter_description"><p>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 of all glyphs belonging to the requested
1199 class. </p></td>
1200 <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>
1201 </tr>
1202 </tbody>
1203 </table></div>
1204 </div>
1205 <p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
1206 </div>
1207 <hr>
1208 <div class="refsect2">
1209 <a name="hb-ot-layout-get-ligature-carets"></a><h3>hb_ot_layout_get_ligature_carets ()</h3>
1210 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
1211 hb_ot_layout_get_ligature_carets (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
1212                                   <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>,
1213                                   <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> glyph</code></em>,
1214                                   <em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
1215                                   <em class="parameter"><code>unsigned <span class="type">int</span> *caret_count</code></em>,
1216                                   <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *caret_array</code></em>);</pre>
1217 <p>Fetches a list of the caret positions defined for a ligature glyph in the GDEF
1218 table of the font. The list returned will begin at the offset provided.</p>
1219 <div class="refsect3">
1220 <a name="hb-ot-layout-get-ligature-carets.parameters"></a><h4>Parameters</h4>
1221 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1222 <colgroup>
1223 <col width="150px" class="parameters_name">
1224 <col class="parameters_description">
1225 <col width="200px" class="parameters_annotations">
1226 </colgroup>
1227 <tbody>
1228 <tr>
1229 <td class="parameter_name"><p>font</p></td>
1230 <td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> to work on</p></td>
1231 <td class="parameter_annotations"> </td>
1232 </tr>
1233 <tr>
1234 <td class="parameter_name"><p>direction</p></td>
1235 <td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> text direction to use</p></td>
1236 <td class="parameter_annotations"> </td>
1237 </tr>
1238 <tr>
1239 <td class="parameter_name"><p>glyph</p></td>
1240 <td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> code point to query</p></td>
1241 <td class="parameter_annotations"> </td>
1242 </tr>
1243 <tr>
1244 <td class="parameter_name"><p>start_offset</p></td>
1245 <td class="parameter_description"><p>offset of the first caret position to retrieve</p></td>
1246 <td class="parameter_annotations"> </td>
1247 </tr>
1248 <tr>
1249 <td class="parameter_name"><p>caret_count</p></td>
1250 <td class="parameter_description"><p>Input = the maximum number of caret positions to return;
1251 Output = the actual number of caret positions returned (may be zero). </p></td>
1252 <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>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
1253 </tr>
1254 <tr>
1255 <td class="parameter_name"><p>caret_array</p></td>
1256 <td class="parameter_description"><p>The array of caret positions found for the query. </p></td>
1257 <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=caret_count]</span></td>
1258 </tr>
1259 </tbody>
1260 </table></div>
1261 </div>
1262 </div>
1263 <hr>
1264 <div class="refsect2">
1265 <a name="hb-ot-layout-get-size-params"></a><h3>hb_ot_layout_get_size_params ()</h3>
1266 <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>
1267 hb_ot_layout_get_size_params (<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>,
1268                               <em class="parameter"><code>unsigned <span class="type">int</span> *design_size</code></em>,
1269                               <em class="parameter"><code>unsigned <span class="type">int</span> *subfamily_id</code></em>,
1270                               <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="type">hb_ot_name_id_t</span></a> *subfamily_name_id</code></em>,
1271                               <em class="parameter"><code>unsigned <span class="type">int</span> *range_start</code></em>,
1272                               <em class="parameter"><code>unsigned <span class="type">int</span> *range_end</code></em>);</pre>
1273 <p>Fetches optical-size feature data (i.e., the <code class="literal">size</code> feature from GPOS). Note that
1274 the subfamily_id and the subfamily name string (accessible via the subfamily_name_id)
1275 as used here are defined as pertaining only to fonts within a font family that differ
1276 specifically in their respective size ranges; other ways to differentiate fonts within
1277 a subfamily are not covered by the <code class="literal">size</code> feature.</p>
1278 <p>For more information on this distinction, see the <a class="ulink" href="https://docs.microsoft.com/en-us/typography/opentype/spec/features_pt#tag-size" target="_top"><code class="literal">size</code> feature documentation</a>.</p>
1279 <div class="refsect3">
1280 <a name="hb-ot-layout-get-size-params.parameters"></a><h4>Parameters</h4>
1281 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1282 <colgroup>
1283 <col width="150px" class="parameters_name">
1284 <col class="parameters_description">
1285 <col width="200px" class="parameters_annotations">
1286 </colgroup>
1287 <tbody>
1288 <tr>
1289 <td class="parameter_name"><p>face</p></td>
1290 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
1291 <td class="parameter_annotations"> </td>
1292 </tr>
1293 <tr>
1294 <td class="parameter_name"><p>design_size</p></td>
1295 <td class="parameter_description"><p>The design size of the face. </p></td>
1296 <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>
1297 </tr>
1298 <tr>
1299 <td class="parameter_name"><p>subfamily_id</p></td>
1300 <td class="parameter_description"><p>The identifier of the face within the font subfamily. </p></td>
1301 <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>
1302 </tr>
1303 <tr>
1304 <td class="parameter_name"><p>subfamily_name_id</p></td>
1305 <td class="parameter_description"><p>The ‘name’ table name ID of the face within the font subfamily. </p></td>
1306 <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>
1307 </tr>
1308 <tr>
1309 <td class="parameter_name"><p>range_start</p></td>
1310 <td class="parameter_description"><p>The minimum size of the recommended size range for the face. </p></td>
1311 <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>
1312 </tr>
1313 <tr>
1314 <td class="parameter_name"><p>range_end</p></td>
1315 <td class="parameter_description"><p>The maximum size of the recommended size range for the face. </p></td>
1316 <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>
1317 </tr>
1318 </tbody>
1319 </table></div>
1320 </div>
1321 <div class="refsect3">
1322 <a name="hb-ot-layout-get-size-params.returns"></a><h4>Returns</h4>
1323 <p> true if data found, false otherwise</p>
1324 </div>
1325 <p class="since">Since: <a class="link" href="api-index-0-9-10.html#api-index-0.9.10">0.9.10</a></p>
1326 </div>
1327 <hr>
1328 <div class="refsect2">
1329 <a name="hb-ot-layout-glyph-sequence-func-t"></a><h3>hb_ot_layout_glyph_sequence_func_t ()</h3>
1330 <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>
1331 <span class="c_punctuation">(</span>*hb_ot_layout_glyph_sequence_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
1332                                        <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_tag</code></em>,
1333                                        <em class="parameter"><code>unsigned <span class="type">int</span> lookup_index</code></em>,
1334                                        <em class="parameter"><code>const <span class="type">hb_ot_layout_glyph_sequence_t</span> *sequence</code></em>,
1335                                        <em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
1336 </div>
1337 <hr>
1338 <div class="refsect2">
1339 <a name="hb-ot-layout-has-glyph-classes"></a><h3>hb_ot_layout_has_glyph_classes ()</h3>
1340 <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>
1341 hb_ot_layout_has_glyph_classes (<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>
1342 <p>Tests whether a face has any glyph classes defined in its GDEF table.</p>
1343 <div class="refsect3">
1344 <a name="hb-ot-layout-has-glyph-classes.parameters"></a><h4>Parameters</h4>
1345 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1346 <colgroup>
1347 <col width="150px" class="parameters_name">
1348 <col class="parameters_description">
1349 <col width="200px" class="parameters_annotations">
1350 </colgroup>
1351 <tbody><tr>
1352 <td class="parameter_name"><p>face</p></td>
1353 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
1354 <td class="parameter_annotations"> </td>
1355 </tr></tbody>
1356 </table></div>
1357 </div>
1358 <div class="refsect3">
1359 <a name="hb-ot-layout-has-glyph-classes.returns"></a><h4>Returns</h4>
1360 <p> true if data found, false otherwise</p>
1361 </div>
1362 </div>
1363 <hr>
1364 <div class="refsect2">
1365 <a name="hb-ot-layout-has-positioning"></a><h3>hb_ot_layout_has_positioning ()</h3>
1366 <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>
1367 hb_ot_layout_has_positioning (<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>
1368 <div class="refsect3">
1369 <a name="hb-ot-layout-has-positioning.parameters"></a><h4>Parameters</h4>
1370 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1371 <colgroup>
1372 <col width="150px" class="parameters_name">
1373 <col class="parameters_description">
1374 <col width="200px" class="parameters_annotations">
1375 </colgroup>
1376 <tbody><tr>
1377 <td class="parameter_name"><p>face</p></td>
1378 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
1379 <td class="parameter_annotations"> </td>
1380 </tr></tbody>
1381 </table></div>
1382 </div>
1383 <div class="refsect3">
1384 <a name="hb-ot-layout-has-positioning.returns"></a><h4>Returns</h4>
1385 <p> true if the face has GPOS data, false otherwise</p>
1386 </div>
1387 </div>
1388 <hr>
1389 <div class="refsect2">
1390 <a name="hb-ot-layout-has-substitution"></a><h3>hb_ot_layout_has_substitution ()</h3>
1391 <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>
1392 hb_ot_layout_has_substitution (<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>
1393 <p>Tests whether the specified face includes any GSUB substitutions.</p>
1394 <div class="refsect3">
1395 <a name="hb-ot-layout-has-substitution.parameters"></a><h4>Parameters</h4>
1396 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1397 <colgroup>
1398 <col width="150px" class="parameters_name">
1399 <col class="parameters_description">
1400 <col width="200px" class="parameters_annotations">
1401 </colgroup>
1402 <tbody><tr>
1403 <td class="parameter_name"><p>face</p></td>
1404 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
1405 <td class="parameter_annotations"> </td>
1406 </tr></tbody>
1407 </table></div>
1408 </div>
1409 <div class="refsect3">
1410 <a name="hb-ot-layout-has-substitution.returns"></a><h4>Returns</h4>
1411 <p> true if data found, false otherwise</p>
1412 </div>
1413 </div>
1414 <hr>
1415 <div class="refsect2">
1416 <a name="hb-ot-layout-language-find-feature"></a><h3>hb_ot_layout_language_find_feature ()</h3>
1417 <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>
1418 hb_ot_layout_language_find_feature (<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>,
1419                                     <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_tag</code></em>,
1420                                     <em class="parameter"><code>unsigned <span class="type">int</span> script_index</code></em>,
1421                                     <em class="parameter"><code>unsigned <span class="type">int</span> language_index</code></em>,
1422                                     <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> feature_tag</code></em>,
1423                                     <em class="parameter"><code>unsigned <span class="type">int</span> *feature_index</code></em>);</pre>
1424 <p>Fetches the index of a given feature tag in the specified face's GSUB table
1425 or GPOS table, underneath the specified script and language.</p>
1426 <div class="refsect3">
1427 <a name="hb-ot-layout-language-find-feature.parameters"></a><h4>Parameters</h4>
1428 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1429 <colgroup>
1430 <col width="150px" class="parameters_name">
1431 <col class="parameters_description">
1432 <col width="200px" class="parameters_annotations">
1433 </colgroup>
1434 <tbody>
1435 <tr>
1436 <td class="parameter_name"><p>face</p></td>
1437 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
1438 <td class="parameter_annotations"> </td>
1439 </tr>
1440 <tr>
1441 <td class="parameter_name"><p>table_tag</p></td>
1442 <td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
1443 <td class="parameter_annotations"> </td>
1444 </tr>
1445 <tr>
1446 <td class="parameter_name"><p>script_index</p></td>
1447 <td class="parameter_description"><p>The index of the requested script tag</p></td>
1448 <td class="parameter_annotations"> </td>
1449 </tr>
1450 <tr>
1451 <td class="parameter_name"><p>language_index</p></td>
1452 <td class="parameter_description"><p>The index of the requested language tag</p></td>
1453 <td class="parameter_annotations"> </td>
1454 </tr>
1455 <tr>
1456 <td class="parameter_name"><p>feature_tag</p></td>
1457 <td class="parameter_description"><p><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 feature tag requested</p></td>
1458 <td class="parameter_annotations"> </td>
1459 </tr>
1460 <tr>
1461 <td class="parameter_name"><p>feature_index</p></td>
1462 <td class="parameter_description"><p>The index of the requested feature. </p></td>
1463 <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>
1464 </tr>
1465 </tbody>
1466 </table></div>
1467 </div>
1468 <div class="refsect3">
1469 <a name="hb-ot-layout-language-find-feature.returns"></a><h4>Returns</h4>
1470 <p> true if the feature is found, false otherwise</p>
1471 </div>
1472 </div>
1473 <hr>
1474 <div class="refsect2">
1475 <a name="hb-ot-layout-language-get-feature-indexes"></a><h3>hb_ot_layout_language_get_feature_indexes ()</h3>
1476 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
1477 hb_ot_layout_language_get_feature_indexes
1478                                (<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>,
1479                                 <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_tag</code></em>,
1480                                 <em class="parameter"><code>unsigned <span class="type">int</span> script_index</code></em>,
1481                                 <em class="parameter"><code>unsigned <span class="type">int</span> language_index</code></em>,
1482                                 <em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
1483                                 <em class="parameter"><code>unsigned <span class="type">int</span> *feature_count</code></em>,
1484                                 <em class="parameter"><code>unsigned <span class="type">int</span> *feature_indexes</code></em>);</pre>
1485 <p>Fetches a list of all features in the specified face's GSUB table
1486 or GPOS table, underneath the specified script and language. The list
1487 returned will begin at the offset provided.</p>
1488 <div class="refsect3">
1489 <a name="hb-ot-layout-language-get-feature-indexes.parameters"></a><h4>Parameters</h4>
1490 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1491 <colgroup>
1492 <col width="150px" class="parameters_name">
1493 <col class="parameters_description">
1494 <col width="200px" class="parameters_annotations">
1495 </colgroup>
1496 <tbody>
1497 <tr>
1498 <td class="parameter_name"><p>face</p></td>
1499 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
1500 <td class="parameter_annotations"> </td>
1501 </tr>
1502 <tr>
1503 <td class="parameter_name"><p>table_tag</p></td>
1504 <td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
1505 <td class="parameter_annotations"> </td>
1506 </tr>
1507 <tr>
1508 <td class="parameter_name"><p>script_index</p></td>
1509 <td class="parameter_description"><p>The index of the requested script tag</p></td>
1510 <td class="parameter_annotations"> </td>
1511 </tr>
1512 <tr>
1513 <td class="parameter_name"><p>language_index</p></td>
1514 <td class="parameter_description"><p>The index of the requested language tag</p></td>
1515 <td class="parameter_annotations"> </td>
1516 </tr>
1517 <tr>
1518 <td class="parameter_name"><p>start_offset</p></td>
1519 <td class="parameter_description"><p>offset of the first feature tag to retrieve</p></td>
1520 <td class="parameter_annotations"> </td>
1521 </tr>
1522 <tr>
1523 <td class="parameter_name"><p>feature_count</p></td>
1524 <td class="parameter_description"><p>Input = the maximum number of feature tags to return;
1525 Output: the actual number of feature tags returned (may be zero). </p></td>
1526 <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>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
1527 </tr>
1528 <tr>
1529 <td class="parameter_name"><p>feature_indexes</p></td>
1530 <td class="parameter_description"><p>The array of feature indexes found for the query. </p></td>
1531 <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=feature_count]</span></td>
1532 </tr>
1533 </tbody>
1534 </table></div>
1535 </div>
1536 </div>
1537 <hr>
1538 <div class="refsect2">
1539 <a name="hb-ot-layout-language-get-feature-tags"></a><h3>hb_ot_layout_language_get_feature_tags ()</h3>
1540 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
1541 hb_ot_layout_language_get_feature_tags
1542                                (<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>,
1543                                 <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_tag</code></em>,
1544                                 <em class="parameter"><code>unsigned <span class="type">int</span> script_index</code></em>,
1545                                 <em class="parameter"><code>unsigned <span class="type">int</span> language_index</code></em>,
1546                                 <em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
1547                                 <em class="parameter"><code>unsigned <span class="type">int</span> *feature_count</code></em>,
1548                                 <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> *feature_tags</code></em>);</pre>
1549 <p>Fetches a list of all features in the specified face's GSUB table
1550 or GPOS table, underneath the specified script and language. The list
1551 returned will begin at the offset provided.</p>
1552 <div class="refsect3">
1553 <a name="hb-ot-layout-language-get-feature-tags.parameters"></a><h4>Parameters</h4>
1554 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1555 <colgroup>
1556 <col width="150px" class="parameters_name">
1557 <col class="parameters_description">
1558 <col width="200px" class="parameters_annotations">
1559 </colgroup>
1560 <tbody>
1561 <tr>
1562 <td class="parameter_name"><p>face</p></td>
1563 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
1564 <td class="parameter_annotations"> </td>
1565 </tr>
1566 <tr>
1567 <td class="parameter_name"><p>table_tag</p></td>
1568 <td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
1569 <td class="parameter_annotations"> </td>
1570 </tr>
1571 <tr>
1572 <td class="parameter_name"><p>script_index</p></td>
1573 <td class="parameter_description"><p>The index of the requested script tag</p></td>
1574 <td class="parameter_annotations"> </td>
1575 </tr>
1576 <tr>
1577 <td class="parameter_name"><p>language_index</p></td>
1578 <td class="parameter_description"><p>The index of the requested language tag</p></td>
1579 <td class="parameter_annotations"> </td>
1580 </tr>
1581 <tr>
1582 <td class="parameter_name"><p>start_offset</p></td>
1583 <td class="parameter_description"><p>offset of the first feature tag to retrieve</p></td>
1584 <td class="parameter_annotations"> </td>
1585 </tr>
1586 <tr>
1587 <td class="parameter_name"><p>feature_count</p></td>
1588 <td class="parameter_description"><p>Input = the maximum number of feature tags to return;
1589 Output = the actual number of feature tags returned (may be zero). </p></td>
1590 <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>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
1591 </tr>
1592 <tr>
1593 <td class="parameter_name"><p>feature_tags</p></td>
1594 <td class="parameter_description"><p>The array of <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> feature tags found for the query. </p></td>
1595 <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=feature_count]</span></td>
1596 </tr>
1597 </tbody>
1598 </table></div>
1599 </div>
1600 </div>
1601 <hr>
1602 <div class="refsect2">
1603 <a name="hb-ot-layout-language-get-required-feature"></a><h3>hb_ot_layout_language_get_required_feature ()</h3>
1604 <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>
1605 hb_ot_layout_language_get_required_feature
1606                                (<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>,
1607                                 <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_tag</code></em>,
1608                                 <em class="parameter"><code>unsigned <span class="type">int</span> script_index</code></em>,
1609                                 <em class="parameter"><code>unsigned <span class="type">int</span> language_index</code></em>,
1610                                 <em class="parameter"><code>unsigned <span class="type">int</span> *feature_index</code></em>,
1611                                 <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> *feature_tag</code></em>);</pre>
1612 <p>Fetches the tag of a requested feature index in the given face's GSUB or GPOS table,
1613 underneath the specified script and language.</p>
1614 <div class="refsect3">
1615 <a name="hb-ot-layout-language-get-required-feature.parameters"></a><h4>Parameters</h4>
1616 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1617 <colgroup>
1618 <col width="150px" class="parameters_name">
1619 <col class="parameters_description">
1620 <col width="200px" class="parameters_annotations">
1621 </colgroup>
1622 <tbody>
1623 <tr>
1624 <td class="parameter_name"><p>face</p></td>
1625 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
1626 <td class="parameter_annotations"> </td>
1627 </tr>
1628 <tr>
1629 <td class="parameter_name"><p>table_tag</p></td>
1630 <td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
1631 <td class="parameter_annotations"> </td>
1632 </tr>
1633 <tr>
1634 <td class="parameter_name"><p>script_index</p></td>
1635 <td class="parameter_description"><p>The index of the requested script tag</p></td>
1636 <td class="parameter_annotations"> </td>
1637 </tr>
1638 <tr>
1639 <td class="parameter_name"><p>language_index</p></td>
1640 <td class="parameter_description"><p>The index of the requested language tag</p></td>
1641 <td class="parameter_annotations"> </td>
1642 </tr>
1643 <tr>
1644 <td class="parameter_name"><p>feature_index</p></td>
1645 <td class="parameter_description"><p>The index of the requested feature. </p></td>
1646 <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>
1647 </tr>
1648 <tr>
1649 <td class="parameter_name"><p>feature_tag</p></td>
1650 <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 requested feature. </p></td>
1651 <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>
1652 </tr>
1653 </tbody>
1654 </table></div>
1655 </div>
1656 <div class="refsect3">
1657 <a name="hb-ot-layout-language-get-required-feature.returns"></a><h4>Returns</h4>
1658 <p> true if the feature is found, false otherwise</p>
1659 </div>
1660 <p class="since">Since: <a class="link" href="api-index-0-9-30.html#api-index-0.9.30">0.9.30</a></p>
1661 </div>
1662 <hr>
1663 <div class="refsect2">
1664 <a name="hb-ot-layout-lookup-collect-glyphs"></a><h3>hb_ot_layout_lookup_collect_glyphs ()</h3>
1665 <pre class="programlisting"><span class="returnvalue">void</span>
1666 hb_ot_layout_lookup_collect_glyphs (<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>,
1667                                     <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_tag</code></em>,
1668                                     <em class="parameter"><code>unsigned <span class="type">int</span> lookup_index</code></em>,
1669                                     <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> *glyphs_before</code></em>,
1670                                     <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> *glyphs_input</code></em>,
1671                                     <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> *glyphs_after</code></em>,
1672                                     <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> *glyphs_output</code></em>);</pre>
1673 <p>Fetches a list of all glyphs affected by the specified lookup in the
1674 specified face's GSUB table or GPOS table.</p>
1675 <div class="refsect3">
1676 <a name="hb-ot-layout-lookup-collect-glyphs.parameters"></a><h4>Parameters</h4>
1677 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1678 <colgroup>
1679 <col width="150px" class="parameters_name">
1680 <col class="parameters_description">
1681 <col width="200px" class="parameters_annotations">
1682 </colgroup>
1683 <tbody>
1684 <tr>
1685 <td class="parameter_name"><p>face</p></td>
1686 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
1687 <td class="parameter_annotations"> </td>
1688 </tr>
1689 <tr>
1690 <td class="parameter_name"><p>table_tag</p></td>
1691 <td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
1692 <td class="parameter_annotations"> </td>
1693 </tr>
1694 <tr>
1695 <td class="parameter_name"><p>lookup_index</p></td>
1696 <td class="parameter_description"><p>The index of the feature lookup to query</p></td>
1697 <td class="parameter_annotations"> </td>
1698 </tr>
1699 <tr>
1700 <td class="parameter_name"><p>glyphs_before</p></td>
1701 <td class="parameter_description"><p>Array of glyphs preceding the substitution range. </p></td>
1702 <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>
1703 </tr>
1704 <tr>
1705 <td class="parameter_name"><p>glyphs_input</p></td>
1706 <td class="parameter_description"><p>Array of input glyphs that would be substituted by the lookup. </p></td>
1707 <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>
1708 </tr>
1709 <tr>
1710 <td class="parameter_name"><p>glyphs_after</p></td>
1711 <td class="parameter_description"><p>Array of glyphs following the substitution range. </p></td>
1712 <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>
1713 </tr>
1714 <tr>
1715 <td class="parameter_name"><p>glyphs_output</p></td>
1716 <td class="parameter_description"><p>Array of glyphs that would be the substitued output of the lookup. </p></td>
1717 <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>
1718 </tr>
1719 </tbody>
1720 </table></div>
1721 </div>
1722 <p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
1723 </div>
1724 <hr>
1725 <div class="refsect2">
1726 <a name="hb-ot-layout-lookup-substitute-closure"></a><h3>hb_ot_layout_lookup_substitute_closure ()</h3>
1727 <pre class="programlisting"><span class="returnvalue">void</span>
1728 hb_ot_layout_lookup_substitute_closure
1729                                (<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>,
1730                                 <em class="parameter"><code>unsigned <span class="type">int</span> lookup_index</code></em>,
1731                                 <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> *glyphs</code></em>);</pre>
1732 <p>Compute the transitive closure of glyphs needed for a
1733 specified lookup.</p>
1734 <div class="refsect3">
1735 <a name="hb-ot-layout-lookup-substitute-closure.parameters"></a><h4>Parameters</h4>
1736 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1737 <colgroup>
1738 <col width="150px" class="parameters_name">
1739 <col class="parameters_description">
1740 <col width="200px" class="parameters_annotations">
1741 </colgroup>
1742 <tbody>
1743 <tr>
1744 <td class="parameter_name"><p>face</p></td>
1745 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
1746 <td class="parameter_annotations"> </td>
1747 </tr>
1748 <tr>
1749 <td class="parameter_name"><p>lookup_index</p></td>
1750 <td class="parameter_description"><p>index of the feature lookup to query</p></td>
1751 <td class="parameter_annotations"> </td>
1752 </tr>
1753 <tr>
1754 <td class="parameter_name"><p>glyphs</p></td>
1755 <td class="parameter_description"><p>Array of glyphs comprising the transitive closure of the lookup. </p></td>
1756 <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>
1757 </tr>
1758 </tbody>
1759 </table></div>
1760 </div>
1761 <p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
1762 </div>
1763 <hr>
1764 <div class="refsect2">
1765 <a name="hb-ot-layout-lookups-substitute-closure"></a><h3>hb_ot_layout_lookups_substitute_closure ()</h3>
1766 <pre class="programlisting"><span class="returnvalue">void</span>
1767 hb_ot_layout_lookups_substitute_closure
1768                                (<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>,
1769                                 <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *lookups</code></em>,
1770                                 <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> *glyphs</code></em>);</pre>
1771 <p>Compute the transitive closure of glyphs needed for all of the
1772 provided lookups.</p>
1773 <div class="refsect3">
1774 <a name="hb-ot-layout-lookups-substitute-closure.parameters"></a><h4>Parameters</h4>
1775 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1776 <colgroup>
1777 <col width="150px" class="parameters_name">
1778 <col class="parameters_description">
1779 <col width="200px" class="parameters_annotations">
1780 </colgroup>
1781 <tbody>
1782 <tr>
1783 <td class="parameter_name"><p>face</p></td>
1784 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
1785 <td class="parameter_annotations"> </td>
1786 </tr>
1787 <tr>
1788 <td class="parameter_name"><p>lookups</p></td>
1789 <td class="parameter_description"><p>The set of lookups to query</p></td>
1790 <td class="parameter_annotations"> </td>
1791 </tr>
1792 <tr>
1793 <td class="parameter_name"><p>glyphs</p></td>
1794 <td class="parameter_description"><p>Array of glyphs comprising the transitive closure of the lookups. </p></td>
1795 <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>
1796 </tr>
1797 </tbody>
1798 </table></div>
1799 </div>
1800 <p class="since">Since: <a class="link" href="api-index-1-8-1.html#api-index-1.8.1">1.8.1</a></p>
1801 </div>
1802 <hr>
1803 <div class="refsect2">
1804 <a name="hb-ot-layout-lookup-would-substitute"></a><h3>hb_ot_layout_lookup_would_substitute ()</h3>
1805 <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>
1806 hb_ot_layout_lookup_would_substitute (<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>,
1807                                       <em class="parameter"><code>unsigned <span class="type">int</span> lookup_index</code></em>,
1808                                       <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *glyphs</code></em>,
1809                                       <em class="parameter"><code>unsigned <span class="type">int</span> glyphs_length</code></em>,
1810                                       <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> zero_context</code></em>);</pre>
1811 <p>Tests whether a specified lookup in the specified face would
1812 trigger a substitution on the given glyph sequence.</p>
1813 <div class="refsect3">
1814 <a name="hb-ot-layout-lookup-would-substitute.parameters"></a><h4>Parameters</h4>
1815 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1816 <colgroup>
1817 <col width="150px" class="parameters_name">
1818 <col class="parameters_description">
1819 <col width="200px" class="parameters_annotations">
1820 </colgroup>
1821 <tbody>
1822 <tr>
1823 <td class="parameter_name"><p>face</p></td>
1824 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
1825 <td class="parameter_annotations"> </td>
1826 </tr>
1827 <tr>
1828 <td class="parameter_name"><p>lookup_index</p></td>
1829 <td class="parameter_description"><p>The index of the lookup to query</p></td>
1830 <td class="parameter_annotations"> </td>
1831 </tr>
1832 <tr>
1833 <td class="parameter_name"><p>glyphs</p></td>
1834 <td class="parameter_description"><p>The sequence of glyphs to query for substitution</p></td>
1835 <td class="parameter_annotations"> </td>
1836 </tr>
1837 <tr>
1838 <td class="parameter_name"><p>glyphs_length</p></td>
1839 <td class="parameter_description"><p>The length of the glyph sequence</p></td>
1840 <td class="parameter_annotations"> </td>
1841 </tr>
1842 <tr>
1843 <td class="parameter_name"><p>zero_context</p></td>
1844 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> indicating whether substitutions should be context-free</p></td>
1845 <td class="parameter_annotations"> </td>
1846 </tr>
1847 </tbody>
1848 </table></div>
1849 </div>
1850 <div class="refsect3">
1851 <a name="hb-ot-layout-lookup-would-substitute.returns"></a><h4>Returns</h4>
1852 <p> true if a substitution would be triggered, false otherwise</p>
1853 </div>
1854 <p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
1855 </div>
1856 <hr>
1857 <div class="refsect2">
1858 <a name="hb-ot-layout-script-get-language-tags"></a><h3>hb_ot_layout_script_get_language_tags ()</h3>
1859 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
1860 hb_ot_layout_script_get_language_tags (<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>,
1861                                        <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_tag</code></em>,
1862                                        <em class="parameter"><code>unsigned <span class="type">int</span> script_index</code></em>,
1863                                        <em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
1864                                        <em class="parameter"><code>unsigned <span class="type">int</span> *language_count</code></em>,
1865                                        <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> *language_tags</code></em>);</pre>
1866 <p>Fetches a list of language tags in the given face's GSUB or GPOS table, underneath
1867 the specified script index. The list returned will begin at the offset provided.</p>
1868 <div class="refsect3">
1869 <a name="hb-ot-layout-script-get-language-tags.parameters"></a><h4>Parameters</h4>
1870 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1871 <colgroup>
1872 <col width="150px" class="parameters_name">
1873 <col class="parameters_description">
1874 <col width="200px" class="parameters_annotations">
1875 </colgroup>
1876 <tbody>
1877 <tr>
1878 <td class="parameter_name"><p>face</p></td>
1879 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
1880 <td class="parameter_annotations"> </td>
1881 </tr>
1882 <tr>
1883 <td class="parameter_name"><p>table_tag</p></td>
1884 <td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
1885 <td class="parameter_annotations"> </td>
1886 </tr>
1887 <tr>
1888 <td class="parameter_name"><p>script_index</p></td>
1889 <td class="parameter_description"><p>The index of the requested script tag</p></td>
1890 <td class="parameter_annotations"> </td>
1891 </tr>
1892 <tr>
1893 <td class="parameter_name"><p>start_offset</p></td>
1894 <td class="parameter_description"><p>offset of the first language tag to retrieve</p></td>
1895 <td class="parameter_annotations"> </td>
1896 </tr>
1897 <tr>
1898 <td class="parameter_name"><p>language_count</p></td>
1899 <td class="parameter_description"><p>Input = the maximum number of language tags to return;
1900 Output = the actual number of language tags returned (may be zero). </p></td>
1901 <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>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
1902 </tr>
1903 <tr>
1904 <td class="parameter_name"><p>language_tags</p></td>
1905 <td class="parameter_description"><p>Array of language tags found in the table. </p></td>
1906 <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=language_count]</span></td>
1907 </tr>
1908 </tbody>
1909 </table></div>
1910 </div>
1911 </div>
1912 <hr>
1913 <div class="refsect2">
1914 <a name="hb-ot-layout-script-select-language"></a><h3>hb_ot_layout_script_select_language ()</h3>
1915 <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>
1916 hb_ot_layout_script_select_language (<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>,
1917                                      <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_tag</code></em>,
1918                                      <em class="parameter"><code>unsigned <span class="type">int</span> script_index</code></em>,
1919                                      <em class="parameter"><code>unsigned <span class="type">int</span> language_count</code></em>,
1920                                      <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> *language_tags</code></em>,
1921                                      <em class="parameter"><code>unsigned <span class="type">int</span> *language_index</code></em>);</pre>
1922 <p>Fetches the index of a given language tag in the specified face's GSUB table
1923 or GPOS table, underneath the specified script index.</p>
1924 <div class="refsect3">
1925 <a name="hb-ot-layout-script-select-language.parameters"></a><h4>Parameters</h4>
1926 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1927 <colgroup>
1928 <col width="150px" class="parameters_name">
1929 <col class="parameters_description">
1930 <col width="200px" class="parameters_annotations">
1931 </colgroup>
1932 <tbody>
1933 <tr>
1934 <td class="parameter_name"><p>face</p></td>
1935 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
1936 <td class="parameter_annotations"> </td>
1937 </tr>
1938 <tr>
1939 <td class="parameter_name"><p>table_tag</p></td>
1940 <td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
1941 <td class="parameter_annotations"> </td>
1942 </tr>
1943 <tr>
1944 <td class="parameter_name"><p>script_index</p></td>
1945 <td class="parameter_description"><p>The index of the requested script tag</p></td>
1946 <td class="parameter_annotations"> </td>
1947 </tr>
1948 <tr>
1949 <td class="parameter_name"><p>language_count</p></td>
1950 <td class="parameter_description"><p>The number of languages in the specified script</p></td>
1951 <td class="parameter_annotations"> </td>
1952 </tr>
1953 <tr>
1954 <td class="parameter_name"><p>language_tags</p></td>
1955 <td class="parameter_description"><p>The array of language tags</p></td>
1956 <td class="parameter_annotations"> </td>
1957 </tr>
1958 <tr>
1959 <td class="parameter_name"><p>language_index</p></td>
1960 <td class="parameter_description"><p>The index of the requested language. </p></td>
1961 <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>
1962 </tr>
1963 </tbody>
1964 </table></div>
1965 </div>
1966 <div class="refsect3">
1967 <a name="hb-ot-layout-script-select-language.returns"></a><h4>Returns</h4>
1968 <p> true if the language tag is found, false otherwise</p>
1969 </div>
1970 <p class="since">Since: <a class="link" href="api-index-2-0-0.html#api-index-2.0.0">2.0.0</a></p>
1971 </div>
1972 <hr>
1973 <div class="refsect2">
1974 <a name="hb-ot-layout-table-find-feature-variations"></a><h3>hb_ot_layout_table_find_feature_variations ()</h3>
1975 <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>
1976 hb_ot_layout_table_find_feature_variations
1977                                (<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>,
1978                                 <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_tag</code></em>,
1979                                 <em class="parameter"><code>const <span class="type">int</span> *coords</code></em>,
1980                                 <em class="parameter"><code>unsigned <span class="type">int</span> num_coords</code></em>,
1981                                 <em class="parameter"><code>unsigned <span class="type">int</span> *variations_index</code></em>);</pre>
1982 <p>Fetches a list of feature variations in the specified face's GSUB table
1983 or GPOS table, at the specified variation coordinates.</p>
1984 <div class="refsect3">
1985 <a name="hb-ot-layout-table-find-feature-variations.parameters"></a><h4>Parameters</h4>
1986 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1987 <colgroup>
1988 <col width="150px" class="parameters_name">
1989 <col class="parameters_description">
1990 <col width="200px" class="parameters_annotations">
1991 </colgroup>
1992 <tbody>
1993 <tr>
1994 <td class="parameter_name"><p>face</p></td>
1995 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
1996 <td class="parameter_annotations"> </td>
1997 </tr>
1998 <tr>
1999 <td class="parameter_name"><p>table_tag</p></td>
2000 <td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
2001 <td class="parameter_annotations"> </td>
2002 </tr>
2003 <tr>
2004 <td class="parameter_name"><p>coords</p></td>
2005 <td class="parameter_description"><p>The variation coordinates to query</p></td>
2006 <td class="parameter_annotations"> </td>
2007 </tr>
2008 <tr>
2009 <td class="parameter_name"><p>num_coords</p></td>
2010 <td class="parameter_description"><p>The number of variation coorinates</p></td>
2011 <td class="parameter_annotations"> </td>
2012 </tr>
2013 <tr>
2014 <td class="parameter_name"><p>variations_index</p></td>
2015 <td class="parameter_description"><p>The array of feature variations found for the query. </p></td>
2016 <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>
2017 </tr>
2018 </tbody>
2019 </table></div>
2020 </div>
2021 </div>
2022 <hr>
2023 <div class="refsect2">
2024 <a name="hb-ot-layout-table-get-feature-tags"></a><h3>hb_ot_layout_table_get_feature_tags ()</h3>
2025 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
2026 hb_ot_layout_table_get_feature_tags (<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>,
2027                                      <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_tag</code></em>,
2028                                      <em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
2029                                      <em class="parameter"><code>unsigned <span class="type">int</span> *feature_count</code></em>,
2030                                      <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> *feature_tags</code></em>);</pre>
2031 <p>Fetches a list of all feature tags in the given face's GSUB or GPOS table.</p>
2032 <div class="refsect3">
2033 <a name="hb-ot-layout-table-get-feature-tags.parameters"></a><h4>Parameters</h4>
2034 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2035 <colgroup>
2036 <col width="150px" class="parameters_name">
2037 <col class="parameters_description">
2038 <col width="200px" class="parameters_annotations">
2039 </colgroup>
2040 <tbody>
2041 <tr>
2042 <td class="parameter_name"><p>face</p></td>
2043 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
2044 <td class="parameter_annotations"> </td>
2045 </tr>
2046 <tr>
2047 <td class="parameter_name"><p>table_tag</p></td>
2048 <td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
2049 <td class="parameter_annotations"> </td>
2050 </tr>
2051 <tr>
2052 <td class="parameter_name"><p>start_offset</p></td>
2053 <td class="parameter_description"><p>offset of the first feature tag to retrieve</p></td>
2054 <td class="parameter_annotations"> </td>
2055 </tr>
2056 <tr>
2057 <td class="parameter_name"><p>feature_count</p></td>
2058 <td class="parameter_description"><p>Input = the maximum number of feature tags to return;
2059 Output = the actual number of feature tags returned (may be zero). </p></td>
2060 <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>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
2061 </tr>
2062 <tr>
2063 <td class="parameter_name"><p>feature_tags</p></td>
2064 <td class="parameter_description"><p>Array of feature tags found in the table. </p></td>
2065 <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=feature_count]</span></td>
2066 </tr>
2067 </tbody>
2068 </table></div>
2069 </div>
2070 </div>
2071 <hr>
2072 <div class="refsect2">
2073 <a name="hb-ot-layout-table-get-script-tags"></a><h3>hb_ot_layout_table_get_script_tags ()</h3>
2074 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
2075 hb_ot_layout_table_get_script_tags (<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>,
2076                                     <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_tag</code></em>,
2077                                     <em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
2078                                     <em class="parameter"><code>unsigned <span class="type">int</span> *script_count</code></em>,
2079                                     <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> *script_tags</code></em>);</pre>
2080 <p>Fetches a list of all scripts enumerated in the specified face's GSUB table
2081 or GPOS table. The list returned will begin at the offset provided.</p>
2082 <div class="refsect3">
2083 <a name="hb-ot-layout-table-get-script-tags.parameters"></a><h4>Parameters</h4>
2084 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2085 <colgroup>
2086 <col width="150px" class="parameters_name">
2087 <col class="parameters_description">
2088 <col width="200px" class="parameters_annotations">
2089 </colgroup>
2090 <tbody>
2091 <tr>
2092 <td class="parameter_name"><p>face</p></td>
2093 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
2094 <td class="parameter_annotations"> </td>
2095 </tr>
2096 <tr>
2097 <td class="parameter_name"><p>table_tag</p></td>
2098 <td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
2099 <td class="parameter_annotations"> </td>
2100 </tr>
2101 <tr>
2102 <td class="parameter_name"><p>start_offset</p></td>
2103 <td class="parameter_description"><p>offset of the first script tag to retrieve</p></td>
2104 <td class="parameter_annotations"> </td>
2105 </tr>
2106 <tr>
2107 <td class="parameter_name"><p>script_count</p></td>
2108 <td class="parameter_description"><p>Input = the maximum number of script tags to return;
2109 Output = the actual number of script tags returned (may be zero). </p></td>
2110 <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>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
2111 </tr>
2112 <tr>
2113 <td class="parameter_name"><p>script_tags</p></td>
2114 <td class="parameter_description"><p>The array of <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> script tags found for the query. </p></td>
2115 <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=script_count]</span></td>
2116 </tr>
2117 </tbody>
2118 </table></div>
2119 </div>
2120 </div>
2121 <hr>
2122 <div class="refsect2">
2123 <a name="hb-ot-layout-table-get-lookup-count"></a><h3>hb_ot_layout_table_get_lookup_count ()</h3>
2124 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
2125 hb_ot_layout_table_get_lookup_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>,
2126                                      <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_tag</code></em>);</pre>
2127 <p>Fetches the total number of lookups enumerated in the specified
2128 face's GSUB table or GPOS table.</p>
2129 <div class="refsect3">
2130 <a name="hb-ot-layout-table-get-lookup-count.parameters"></a><h4>Parameters</h4>
2131 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2132 <colgroup>
2133 <col width="150px" class="parameters_name">
2134 <col class="parameters_description">
2135 <col width="200px" class="parameters_annotations">
2136 </colgroup>
2137 <tbody>
2138 <tr>
2139 <td class="parameter_name"><p>face</p></td>
2140 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
2141 <td class="parameter_annotations"> </td>
2142 </tr>
2143 <tr>
2144 <td class="parameter_name"><p>table_tag</p></td>
2145 <td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
2146 <td class="parameter_annotations"> </td>
2147 </tr>
2148 </tbody>
2149 </table></div>
2150 </div>
2151 <p class="since">Since: <a class="link" href="api-index-0-9-22.html#api-index-0.9.22">0.9.22</a></p>
2152 </div>
2153 <hr>
2154 <div class="refsect2">
2155 <a name="hb-ot-layout-table-select-script"></a><h3>hb_ot_layout_table_select_script ()</h3>
2156 <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>
2157 hb_ot_layout_table_select_script (<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>,
2158                                   <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_tag</code></em>,
2159                                   <em class="parameter"><code>unsigned <span class="type">int</span> script_count</code></em>,
2160                                   <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> *script_tags</code></em>,
2161                                   <em class="parameter"><code>unsigned <span class="type">int</span> *script_index</code></em>,
2162                                   <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> *chosen_script</code></em>);</pre>
2163 <div class="refsect3">
2164 <a name="hb-ot-layout-table-select-script.parameters"></a><h4>Parameters</h4>
2165 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2166 <colgroup>
2167 <col width="150px" class="parameters_name">
2168 <col class="parameters_description">
2169 <col width="200px" class="parameters_annotations">
2170 </colgroup>
2171 <tbody>
2172 <tr>
2173 <td class="parameter_name"><p>face</p></td>
2174 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
2175 <td class="parameter_annotations"> </td>
2176 </tr>
2177 <tr>
2178 <td class="parameter_name"><p>table_tag</p></td>
2179 <td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
2180 <td class="parameter_annotations"> </td>
2181 </tr>
2182 <tr>
2183 <td class="parameter_name"><p>script_count</p></td>
2184 <td class="parameter_description"><p>Number of script tags in the array</p></td>
2185 <td class="parameter_annotations"> </td>
2186 </tr>
2187 <tr>
2188 <td class="parameter_name"><p>script_tags</p></td>
2189 <td class="parameter_description"><p>Array of <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> script tags</p></td>
2190 <td class="parameter_annotations"> </td>
2191 </tr>
2192 <tr>
2193 <td class="parameter_name"><p>script_index</p></td>
2194 <td class="parameter_description"><p>The index of the requested script. </p></td>
2195 <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>
2196 </tr>
2197 <tr>
2198 <td class="parameter_name"><p>chosen_script</p></td>
2199 <td class="parameter_description"><p><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 requested script. </p></td>
2200 <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>
2201 </tr>
2202 </tbody>
2203 </table></div>
2204 </div>
2205 <p class="since">Since: <a class="link" href="api-index-2-0-0.html#api-index-2.0.0">2.0.0</a></p>
2206 </div>
2207 <hr>
2208 <div class="refsect2">
2209 <a name="hb-ot-shape-plan-collect-lookups"></a><h3>hb_ot_shape_plan_collect_lookups ()</h3>
2210 <pre class="programlisting"><span class="returnvalue">void</span>
2211 hb_ot_shape_plan_collect_lookups (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>,
2212                                   <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_tag</code></em>,
2213                                   <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> *lookup_indexes</code></em>);</pre>
2214 <p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
2215 </div>
2216 <hr>
2217 <div class="refsect2">
2218 <a name="hb-ot-layout-language-get-required-feature-index"></a><h3>hb_ot_layout_language_get_required_feature_index ()</h3>
2219 <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>
2220 hb_ot_layout_language_get_required_feature_index
2221                                (<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>,
2222                                 <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_tag</code></em>,
2223                                 <em class="parameter"><code>unsigned <span class="type">int</span> script_index</code></em>,
2224                                 <em class="parameter"><code>unsigned <span class="type">int</span> language_index</code></em>,
2225                                 <em class="parameter"><code>unsigned <span class="type">int</span> *feature_index</code></em>);</pre>
2226 <p>Fetches the index of a requested feature in the given face's GSUB or GPOS table,
2227 underneath the specified script and language.</p>
2228 <div class="refsect3">
2229 <a name="hb-ot-layout-language-get-required-feature-index.parameters"></a><h4>Parameters</h4>
2230 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2231 <colgroup>
2232 <col width="150px" class="parameters_name">
2233 <col class="parameters_description">
2234 <col width="200px" class="parameters_annotations">
2235 </colgroup>
2236 <tbody>
2237 <tr>
2238 <td class="parameter_name"><p>face</p></td>
2239 <td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
2240 <td class="parameter_annotations"> </td>
2241 </tr>
2242 <tr>
2243 <td class="parameter_name"><p>table_tag</p></td>
2244 <td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
2245 <td class="parameter_annotations"> </td>
2246 </tr>
2247 <tr>
2248 <td class="parameter_name"><p>script_index</p></td>
2249 <td class="parameter_description"><p>The index of the requested script tag</p></td>
2250 <td class="parameter_annotations"> </td>
2251 </tr>
2252 <tr>
2253 <td class="parameter_name"><p>language_index</p></td>
2254 <td class="parameter_description"><p>The index of the requested language tag</p></td>
2255 <td class="parameter_annotations"> </td>
2256 </tr>
2257 <tr>
2258 <td class="parameter_name"><p>feature_index</p></td>
2259 <td class="parameter_description"><p>The index of the requested feature. </p></td>
2260 <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>
2261 </tr>
2262 </tbody>
2263 </table></div>
2264 </div>
2265 <div class="refsect3">
2266 <a name="hb-ot-layout-language-get-required-feature-index.returns"></a><h4>Returns</h4>
2267 <p> true if the feature is found, false otherwise</p>
2268 </div>
2269 </div>
2270 </div>
2271 <div class="refsect1">
2272 <a name="harfbuzz-hb-ot-layout.other_details"></a><h2>Types and Values</h2>
2273 <div class="refsect2">
2274 <a name="HB-OT-MAX-TAGS-PER-LANGUAGE:CAPS"></a><h3>HB_OT_MAX_TAGS_PER_LANGUAGE</h3>
2275 <pre class="programlisting">#define HB_OT_MAX_TAGS_PER_LANGUAGE 3u
2276 </pre>
2277 <p class="since">Since: <a class="link" href="api-index-2-0-0.html#api-index-2.0.0">2.0.0</a></p>
2278 </div>
2279 <hr>
2280 <div class="refsect2">
2281 <a name="HB-OT-MAX-TAGS-PER-SCRIPT:CAPS"></a><h3>HB_OT_MAX_TAGS_PER_SCRIPT</h3>
2282 <pre class="programlisting">#define HB_OT_MAX_TAGS_PER_SCRIPT 3u
2283 </pre>
2284 <p class="since">Since: <a class="link" href="api-index-2-0-0.html#api-index-2.0.0">2.0.0</a></p>
2285 </div>
2286 <hr>
2287 <div class="refsect2">
2288 <a name="HB-OT-TAG-DEFAULT-LANGUAGE:CAPS"></a><h3>HB_OT_TAG_DEFAULT_LANGUAGE</h3>
2289 <pre class="programlisting">#define HB_OT_TAG_DEFAULT_LANGUAGE HB_TAG ('d', 'f', 'l', 't')
2290 </pre>
2291 </div>
2292 <hr>
2293 <div class="refsect2">
2294 <a name="HB-OT-TAG-DEFAULT-SCRIPT:CAPS"></a><h3>HB_OT_TAG_DEFAULT_SCRIPT</h3>
2295 <pre class="programlisting">#define HB_OT_TAG_DEFAULT_SCRIPT HB_TAG ('D', 'F', 'L', 'T')
2296 </pre>
2297 </div>
2298 <hr>
2299 <div class="refsect2">
2300 <a name="HB-OT-LAYOUT-DEFAULT-LANGUAGE-INDEX:CAPS"></a><h3>HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX</h3>
2301 <pre class="programlisting">#define HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX 0xFFFFu
2302 </pre>
2303 </div>
2304 <hr>
2305 <div class="refsect2">
2306 <a name="HB-OT-LAYOUT-NO-FEATURE-INDEX:CAPS"></a><h3>HB_OT_LAYOUT_NO_FEATURE_INDEX</h3>
2307 <pre class="programlisting">#define HB_OT_LAYOUT_NO_FEATURE_INDEX               0xFFFFu
2308 </pre>
2309 </div>
2310 <hr>
2311 <div class="refsect2">
2312 <a name="HB-OT-LAYOUT-NO-SCRIPT-INDEX:CAPS"></a><h3>HB_OT_LAYOUT_NO_SCRIPT_INDEX</h3>
2313 <pre class="programlisting">#define HB_OT_LAYOUT_NO_SCRIPT_INDEX                0xFFFFu
2314 </pre>
2315 </div>
2316 <hr>
2317 <div class="refsect2">
2318 <a name="HB-OT-LAYOUT-NO-VARIATIONS-INDEX:CAPS"></a><h3>HB_OT_LAYOUT_NO_VARIATIONS_INDEX</h3>
2319 <pre class="programlisting">#define HB_OT_LAYOUT_NO_VARIATIONS_INDEX 0xFFFFFFFFu
2320 </pre>
2321 </div>
2322 <hr>
2323 <div class="refsect2">
2324 <a name="HB-OT-TAG-BASE:CAPS"></a><h3>HB_OT_TAG_BASE</h3>
2325 <pre class="programlisting">#define HB_OT_TAG_BASE HB_TAG('B','A','S','E')
2326 </pre>
2327 </div>
2328 <hr>
2329 <div class="refsect2">
2330 <a name="HB-OT-TAG-GDEF:CAPS"></a><h3>HB_OT_TAG_GDEF</h3>
2331 <pre class="programlisting">#define HB_OT_TAG_GDEF HB_TAG('G','D','E','F')
2332 </pre>
2333 </div>
2334 <hr>
2335 <div class="refsect2">
2336 <a name="HB-OT-TAG-GPOS:CAPS"></a><h3>HB_OT_TAG_GPOS</h3>
2337 <pre class="programlisting">#define HB_OT_TAG_GPOS HB_TAG('G','P','O','S')
2338 </pre>
2339 </div>
2340 <hr>
2341 <div class="refsect2">
2342 <a name="HB-OT-TAG-GSUB:CAPS"></a><h3>HB_OT_TAG_GSUB</h3>
2343 <pre class="programlisting">#define HB_OT_TAG_GSUB HB_TAG('G','S','U','B')
2344 </pre>
2345 </div>
2346 <hr>
2347 <div class="refsect2">
2348 <a name="HB-OT-TAG-JSTF:CAPS"></a><h3>HB_OT_TAG_JSTF</h3>
2349 <pre class="programlisting">#define HB_OT_TAG_JSTF HB_TAG('J','S','T','F')
2350 </pre>
2351 </div>
2352 <hr>
2353 <div class="refsect2">
2354 <a name="hb-ot-layout-baseline-tag-t"></a><h3>enum hb_ot_layout_baseline_tag_t</h3>
2355 <p>Baseline tags from https://docs.microsoft.com/en-us/typography/opentype/spec/baselinetags</p>
2356 <div class="refsect3">
2357 <a name="hb-ot-layout-baseline-tag-t.members"></a><h4>Members</h4>
2358 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2359 <colgroup>
2360 <col width="300px" class="enum_members_name">
2361 <col class="enum_members_description">
2362 <col width="200px" class="enum_members_annotations">
2363 </colgroup>
2364 <tbody>
2365 <tr>
2366 <td class="enum_member_name"><p><a name="HB-OT-LAYOUT-BASELINE-TAG-ROMAN:CAPS"></a>HB_OT_LAYOUT_BASELINE_TAG_ROMAN</p></td>
2367 <td class="enum_member_description">
2368 <p>The baseline used by alphabetic scripts such as Latin, Cyrillic and Greek.
2369 In vertical writing mode, the alphabetic baseline for characters rotated 90 degrees clockwise.
2370 (This would not apply to alphabetic characters that remain upright in vertical writing mode, since these
2371 characters are not rotated.)</p>
2372 </td>
2373 <td class="enum_member_annotations"> </td>
2374 </tr>
2375 <tr>
2376 <td class="enum_member_name"><p><a name="HB-OT-LAYOUT-BASELINE-TAG-HANGING:CAPS"></a>HB_OT_LAYOUT_BASELINE_TAG_HANGING</p></td>
2377 <td class="enum_member_description">
2378 <p>The hanging baseline. In horizontal direction, this is the horizontal
2379 line from which syllables seem, to hang in Tibetan and other similar scripts. In vertical writing mode,
2380 for Tibetan (or some other similar script) characters rotated 90 degrees clockwise.</p>
2381 </td>
2382 <td class="enum_member_annotations"> </td>
2383 </tr>
2384 <tr>
2385 <td class="enum_member_name"><p><a name="HB-OT-LAYOUT-BASELINE-TAG-IDEO-FACE-BOTTOM-OR-LEFT:CAPS"></a>HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_BOTTOM_OR_LEFT</p></td>
2386 <td class="enum_member_description">
2387 <p>Ideographic character face bottom or left edge,
2388 if the direction is horizontal or vertical, respectively.</p>
2389 </td>
2390 <td class="enum_member_annotations"> </td>
2391 </tr>
2392 <tr>
2393 <td class="enum_member_name"><p><a name="HB-OT-LAYOUT-BASELINE-TAG-IDEO-FACE-TOP-OR-RIGHT:CAPS"></a>HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_TOP_OR_RIGHT</p></td>
2394 <td class="enum_member_description">
2395 <p>Ideographic character face top or right edge,
2396 if the direction is horizontal or vertical, respectively.</p>
2397 </td>
2398 <td class="enum_member_annotations"> </td>
2399 </tr>
2400 <tr>
2401 <td class="enum_member_name"><p><a name="HB-OT-LAYOUT-BASELINE-TAG-IDEO-EMBOX-BOTTOM-OR-LEFT:CAPS"></a>HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_BOTTOM_OR_LEFT</p></td>
2402 <td class="enum_member_description">
2403 <p>Ideographic em-box bottom or left edge,
2404 if the direction is horizontal or vertical, respectively.</p>
2405 </td>
2406 <td class="enum_member_annotations"> </td>
2407 </tr>
2408 <tr>
2409 <td class="enum_member_name"><p><a name="HB-OT-LAYOUT-BASELINE-TAG-IDEO-EMBOX-TOP-OR-RIGHT:CAPS"></a>HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_TOP_OR_RIGHT</p></td>
2410 <td class="enum_member_description">
2411 <p>Ideographic em-box top or right edge baseline,
2412 if the direction is horizontal or vertical, respectively.</p>
2413 </td>
2414 <td class="enum_member_annotations"> </td>
2415 </tr>
2416 <tr>
2417 <td class="enum_member_name"><p><a name="HB-OT-LAYOUT-BASELINE-TAG-MATH:CAPS"></a>HB_OT_LAYOUT_BASELINE_TAG_MATH</p></td>
2418 <td class="enum_member_description">
2419 <p>The baseline about which mathematical characters are centered.
2420 In vertical writing mode when mathematical characters rotated 90 degrees clockwise, are centered.</p>
2421 </td>
2422 <td class="enum_member_annotations"> </td>
2423 </tr>
2424 <tr>
2425 <td class="enum_member_name"><p><a name="HB-OT-LAYOUT-BASELINE-TAG-MAX-VALUE:CAPS"></a>_HB_OT_LAYOUT_BASELINE_TAG_MAX_VALUE</p></td>
2426 <td> </td>
2427 <td> </td>
2428 </tr>
2429 </tbody>
2430 </table></div>
2431 </div>
2432 <p class="since">Since: <a class="link" href="api-index-2-6-0.html#api-index-2.6.0">2.6.0</a></p>
2433 </div>
2434 <hr>
2435 <div class="refsect2">
2436 <a name="hb-ot-layout-glyph-class-t"></a><h3>enum hb_ot_layout_glyph_class_t</h3>
2437 <p>The GDEF classes defined for glyphs.</p>
2438 <div class="refsect3">
2439 <a name="hb-ot-layout-glyph-class-t.members"></a><h4>Members</h4>
2440 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2441 <colgroup>
2442 <col width="300px" class="enum_members_name">
2443 <col class="enum_members_description">
2444 <col width="200px" class="enum_members_annotations">
2445 </colgroup>
2446 <tbody>
2447 <tr>
2448 <td class="enum_member_name"><p><a name="HB-OT-LAYOUT-GLYPH-CLASS-UNCLASSIFIED:CAPS"></a>HB_OT_LAYOUT_GLYPH_CLASS_UNCLASSIFIED</p></td>
2449 <td class="enum_member_description">
2450 <p>Glyphs not matching the other classifications</p>
2451 </td>
2452 <td class="enum_member_annotations"> </td>
2453 </tr>
2454 <tr>
2455 <td class="enum_member_name"><p><a name="HB-OT-LAYOUT-GLYPH-CLASS-BASE-GLYPH:CAPS"></a>HB_OT_LAYOUT_GLYPH_CLASS_BASE_GLYPH</p></td>
2456 <td class="enum_member_description">
2457 <p>Spacing, single characters, capable of accepting marks</p>
2458 </td>
2459 <td class="enum_member_annotations"> </td>
2460 </tr>
2461 <tr>
2462 <td class="enum_member_name"><p><a name="HB-OT-LAYOUT-GLYPH-CLASS-LIGATURE:CAPS"></a>HB_OT_LAYOUT_GLYPH_CLASS_LIGATURE</p></td>
2463 <td class="enum_member_description">
2464 <p>Glyphs that represent ligation of multiple characters</p>
2465 </td>
2466 <td class="enum_member_annotations"> </td>
2467 </tr>
2468 <tr>
2469 <td class="enum_member_name"><p><a name="HB-OT-LAYOUT-GLYPH-CLASS-MARK:CAPS"></a>HB_OT_LAYOUT_GLYPH_CLASS_MARK</p></td>
2470 <td class="enum_member_description">
2471 <p>Non-spacing, combining glyphs that represent marks</p>
2472 </td>
2473 <td class="enum_member_annotations"> </td>
2474 </tr>
2475 <tr>
2476 <td class="enum_member_name"><p><a name="HB-OT-LAYOUT-GLYPH-CLASS-COMPONENT:CAPS"></a>HB_OT_LAYOUT_GLYPH_CLASS_COMPONENT</p></td>
2477 <td class="enum_member_description">
2478 <p>Spacing glyphs that represent part of a single character</p>
2479 </td>
2480 <td class="enum_member_annotations"> </td>
2481 </tr>
2482 </tbody>
2483 </table></div>
2484 </div>
2485 </div>
2486 </div>
2487 </div>
2488 <div class="footer">
2489 <hr>Generated by GTK-Doc V1.32.1</div>
2490 </body>
2491 </html>