27#if !defined(HB_OT_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR)
28#error "Include <hb-ot.h> instead."
46#define HB_OT_TAG_BASE HB_TAG('B','A','S','E')
52#define HB_OT_TAG_GDEF HB_TAG('G','D','E','F')
58#define HB_OT_TAG_GSUB HB_TAG('G','S','U','B')
64#define HB_OT_TAG_GPOS HB_TAG('G','P','O','S')
70#define HB_OT_TAG_JSTF HB_TAG('J','S','T','F')
83#define HB_OT_TAG_DEFAULT_SCRIPT HB_TAG ('D', 'F', 'L', 'T')
90#define HB_OT_TAG_DEFAULT_LANGUAGE HB_TAG ('d', 'f', 'l', 't')
99#define HB_OT_MAX_TAGS_PER_SCRIPT 3u
107#define HB_OT_MAX_TAGS_PER_LANGUAGE 3u
112 unsigned int *script_count ,
114 unsigned int *language_count ,
170 unsigned int start_offset,
171 unsigned int *point_count ,
172 unsigned int *point_array );
179 unsigned int start_offset,
180 unsigned int *caret_count ,
193#define HB_OT_LAYOUT_NO_SCRIPT_INDEX 0xFFFFu
199#define HB_OT_LAYOUT_NO_FEATURE_INDEX 0xFFFFu
205#define HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX 0xFFFFu
211#define HB_OT_LAYOUT_NO_VARIATIONS_INDEX 0xFFFFFFFFu
216 unsigned int start_offset,
217 unsigned int *script_count ,
224 unsigned int *script_index );
229 unsigned int script_count,
231 unsigned int *script_index ,
237 unsigned int start_offset,
238 unsigned int *feature_count ,
244 unsigned int script_index,
245 unsigned int start_offset,
246 unsigned int *language_count ,
252 unsigned int script_index,
253 unsigned int language_count,
255 unsigned int *language_index );
260 unsigned int script_index,
261 unsigned int language_count,
263 unsigned int *language_index ,
269 unsigned int script_index,
270 unsigned int language_index,
271 unsigned int *feature_index );
276 unsigned int script_index,
277 unsigned int language_index,
278 unsigned int *feature_index ,
284 unsigned int script_index,
285 unsigned int language_index,
286 unsigned int start_offset,
287 unsigned int *feature_count ,
288 unsigned int *feature_indexes );
293 unsigned int script_index,
294 unsigned int language_index,
295 unsigned int start_offset,
296 unsigned int *feature_count ,
302 unsigned int script_index,
303 unsigned int language_index,
305 unsigned int *feature_index );
310 unsigned int feature_index,
311 unsigned int start_offset,
312 unsigned int *lookup_count ,
313 unsigned int *lookup_indexes );
330 unsigned script_index,
331 unsigned language_index,
345 unsigned int lookup_index,
358 unsigned int num_coords,
359 unsigned int *variations_index );
364 unsigned int feature_index,
365 unsigned int variations_index,
366 unsigned int start_offset,
367 unsigned int *lookup_count ,
368 unsigned int *lookup_indexes );
380 unsigned lookup_index,
382 unsigned start_offset,
383 unsigned *alternate_count ,
388 unsigned int lookup_index,
390 unsigned int glyphs_length,
395 unsigned int lookup_index,
416 unsigned int *design_size,
417 unsigned int *subfamily_id,
419 unsigned int *range_start,
420 unsigned int *range_end );
424 unsigned lookup_index,
436 unsigned int feature_index,
440 unsigned int *num_named_parameters ,
447 unsigned int feature_index,
448 unsigned int start_offset,
449 unsigned int *char_count ,
const struct hb_language_impl_t * hb_language_t
HB_BEGIN_DECLS typedef int hb_bool_t
#define HB_TAG(c1, c2, c3, c4)
struct hb_font_t hb_font_t
#define HB_TAG_MAX_SIGNED
struct hb_face_t hb_face_t
HB_EXTERN unsigned hb_ot_layout_lookup_get_glyph_alternates(hb_face_t *face, unsigned lookup_index, hb_codepoint_t glyph, unsigned start_offset, unsigned *alternate_count, hb_codepoint_t *alternate_glyphs)
HB_EXTERN unsigned int hb_ot_layout_feature_get_lookups(hb_face_t *face, hb_tag_t table_tag, unsigned int feature_index, unsigned int start_offset, unsigned int *lookup_count, unsigned int *lookup_indexes)
HB_EXTERN hb_bool_t hb_ot_layout_has_substitution(hb_face_t *face)
HB_EXTERN hb_bool_t hb_ot_layout_get_font_extents2(hb_font_t *font, hb_direction_t direction, hb_script_t script, hb_language_t language, hb_font_extents_t *extents)
HB_EXTERN hb_bool_t hb_ot_layout_language_get_required_feature_index(hb_face_t *face, hb_tag_t table_tag, unsigned int script_index, unsigned int language_index, unsigned int *feature_index)
HB_EXTERN void hb_ot_tags_to_script_and_language(hb_tag_t script_tag, hb_tag_t language_tag, hb_script_t *script, hb_language_t *language)
HB_EXTERN void hb_ot_layout_lookups_substitute_closure(hb_face_t *face, const hb_set_t *lookups, hb_set_t *glyphs)
HB_EXTERN void hb_ot_tags_from_script_and_language(hb_script_t script, hb_language_t language, unsigned int *script_count, hb_tag_t *script_tags, unsigned int *language_count, hb_tag_t *language_tags)
HB_EXTERN hb_bool_t hb_ot_layout_script_select_language(hb_face_t *face, hb_tag_t table_tag, unsigned int script_index, unsigned int language_count, const hb_tag_t *language_tags, unsigned int *language_index)
HB_EXTERN unsigned int hb_ot_layout_get_attach_points(hb_face_t *face, hb_codepoint_t glyph, unsigned int start_offset, unsigned int *point_count, unsigned int *point_array)
HB_EXTERN hb_position_t hb_ot_layout_lookup_get_optical_bound(hb_font_t *font, unsigned lookup_index, hb_direction_t direction, hb_codepoint_t glyph)
HB_EXTERN hb_bool_t hb_ot_layout_language_get_required_feature(hb_face_t *face, hb_tag_t table_tag, unsigned int script_index, unsigned int language_index, unsigned int *feature_index, hb_tag_t *feature_tag)
HB_EXTERN void hb_ot_layout_lookup_substitute_closure(hb_face_t *face, unsigned int lookup_index, hb_set_t *glyphs)
HB_EXTERN hb_language_t hb_ot_tag_to_language(hb_tag_t tag)
HB_EXTERN void hb_ot_layout_get_glyphs_in_class(hb_face_t *face, hb_ot_layout_glyph_class_t klass, hb_set_t *glyphs)
HB_EXTERN unsigned int hb_ot_layout_table_get_feature_tags(hb_face_t *face, hb_tag_t table_tag, unsigned int start_offset, unsigned int *feature_count, hb_tag_t *feature_tags)
HB_EXTERN hb_ot_layout_glyph_class_t hb_ot_layout_get_glyph_class(hb_face_t *face, hb_codepoint_t glyph)
HB_EXTERN hb_bool_t hb_ot_layout_table_select_script(hb_face_t *face, hb_tag_t table_tag, unsigned int script_count, const hb_tag_t *script_tags, unsigned int *script_index, hb_tag_t *chosen_script)
hb_ot_layout_glyph_class_t
@ HB_OT_LAYOUT_GLYPH_CLASS_UNCLASSIFIED
@ HB_OT_LAYOUT_GLYPH_CLASS_BASE_GLYPH
@ HB_OT_LAYOUT_GLYPH_CLASS_MARK
@ HB_OT_LAYOUT_GLYPH_CLASS_COMPONENT
@ HB_OT_LAYOUT_GLYPH_CLASS_LIGATURE
HB_EXTERN void hb_ot_layout_collect_features_map(hb_face_t *face, hb_tag_t table_tag, unsigned script_index, unsigned language_index, hb_map_t *feature_map)
HB_EXTERN hb_bool_t hb_ot_layout_lookup_would_substitute(hb_face_t *face, unsigned int lookup_index, const hb_codepoint_t *glyphs, unsigned int glyphs_length, hb_bool_t zero_context)
HB_EXTERN unsigned int hb_ot_layout_script_get_language_tags(hb_face_t *face, hb_tag_t table_tag, unsigned int script_index, unsigned int start_offset, unsigned int *language_count, hb_tag_t *language_tags)
HB_EXTERN void hb_ot_layout_collect_lookups(hb_face_t *face, hb_tag_t table_tag, const hb_tag_t *scripts, const hb_tag_t *languages, const hb_tag_t *features, hb_set_t *lookup_indexes)
HB_EXTERN void hb_ot_layout_get_baseline_with_fallback2(hb_font_t *font, hb_ot_layout_baseline_tag_t baseline_tag, hb_direction_t direction, hb_script_t script, hb_language_t language, hb_position_t *coord)
hb_ot_layout_baseline_tag_t
@ HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_BOTTOM_OR_LEFT
@ HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_CENTRAL
@ HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_TOP_OR_RIGHT
@ _HB_OT_LAYOUT_BASELINE_TAG_MAX_VALUE
@ HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_TOP_OR_RIGHT
@ HB_OT_LAYOUT_BASELINE_TAG_ROMAN
@ HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_CENTRAL
@ HB_OT_LAYOUT_BASELINE_TAG_MATH
@ HB_OT_LAYOUT_BASELINE_TAG_HANGING
@ HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_BOTTOM_OR_LEFT
HB_EXTERN hb_bool_t hb_ot_layout_language_find_feature(hb_face_t *face, hb_tag_t table_tag, unsigned int script_index, unsigned int language_index, hb_tag_t feature_tag, unsigned int *feature_index)
HB_EXTERN unsigned int hb_ot_layout_language_get_feature_indexes(hb_face_t *face, hb_tag_t table_tag, unsigned int script_index, unsigned int language_index, unsigned int start_offset, unsigned int *feature_count, unsigned int *feature_indexes)
HB_EXTERN hb_bool_t hb_ot_layout_table_find_script(hb_face_t *face, hb_tag_t table_tag, hb_tag_t script_tag, unsigned int *script_index)
HB_EXTERN hb_bool_t hb_ot_layout_script_select_language2(hb_face_t *face, hb_tag_t table_tag, unsigned int script_index, unsigned int language_count, const hb_tag_t *language_tags, unsigned int *language_index, hb_tag_t *chosen_language)
HB_EXTERN hb_bool_t hb_ot_layout_has_glyph_classes(hb_face_t *face)
HB_EXTERN void hb_ot_layout_lookup_collect_glyphs(hb_face_t *face, hb_tag_t table_tag, unsigned int lookup_index, hb_set_t *glyphs_before, hb_set_t *glyphs_input, hb_set_t *glyphs_after, hb_set_t *glyphs_output)
HB_EXTERN hb_bool_t hb_ot_layout_has_positioning(hb_face_t *face)
HB_EXTERN hb_bool_t hb_ot_layout_table_find_feature_variations(hb_face_t *face, hb_tag_t table_tag, const int *coords, unsigned int num_coords, unsigned int *variations_index)
HB_EXTERN unsigned int hb_ot_layout_language_get_feature_tags(hb_face_t *face, hb_tag_t table_tag, unsigned int script_index, unsigned int language_index, unsigned int start_offset, unsigned int *feature_count, hb_tag_t *feature_tags)
HB_EXTERN unsigned int hb_ot_layout_table_get_lookup_count(hb_face_t *face, hb_tag_t table_tag)
HB_EXTERN hb_bool_t hb_ot_layout_feature_get_name_ids(hb_face_t *face, hb_tag_t table_tag, unsigned int feature_index, hb_ot_name_id_t *label_id, hb_ot_name_id_t *tooltip_id, hb_ot_name_id_t *sample_id, unsigned int *num_named_parameters, hb_ot_name_id_t *first_param_id)
HB_EXTERN unsigned int hb_ot_layout_table_get_script_tags(hb_face_t *face, hb_tag_t table_tag, unsigned int start_offset, unsigned int *script_count, hb_tag_t *script_tags)
HB_EXTERN unsigned int hb_ot_layout_get_ligature_carets(hb_font_t *font, hb_direction_t direction, hb_codepoint_t glyph, unsigned int start_offset, unsigned int *caret_count, hb_position_t *caret_array)
HB_EXTERN hb_script_t hb_ot_tag_to_script(hb_tag_t tag)
HB_EXTERN hb_bool_t hb_ot_layout_get_baseline2(hb_font_t *font, hb_ot_layout_baseline_tag_t baseline_tag, hb_direction_t direction, hb_script_t script, hb_language_t language, hb_position_t *coord)
HB_EXTERN unsigned int hb_ot_layout_feature_get_characters(hb_face_t *face, hb_tag_t table_tag, unsigned int feature_index, unsigned int start_offset, unsigned int *char_count, hb_codepoint_t *characters)
HB_EXTERN unsigned int hb_ot_layout_feature_with_variations_get_lookups(hb_face_t *face, hb_tag_t table_tag, unsigned int feature_index, unsigned int variations_index, unsigned int start_offset, unsigned int *lookup_count, unsigned int *lookup_indexes)
HB_EXTERN hb_bool_t hb_ot_layout_get_baseline(hb_font_t *font, hb_ot_layout_baseline_tag_t baseline_tag, hb_direction_t direction, hb_tag_t script_tag, hb_tag_t language_tag, hb_position_t *coord)
HB_EXTERN hb_ot_layout_baseline_tag_t hb_ot_layout_get_horizontal_baseline_tag_for_script(hb_script_t script)
HB_EXTERN hb_bool_t hb_ot_layout_get_font_extents(hb_font_t *font, hb_direction_t direction, hb_tag_t script_tag, hb_tag_t language_tag, hb_font_extents_t *extents)
HB_EXTERN void hb_ot_layout_get_baseline_with_fallback(hb_font_t *font, hb_ot_layout_baseline_tag_t baseline_tag, hb_direction_t direction, hb_tag_t script_tag, hb_tag_t language_tag, hb_position_t *coord)
HB_EXTERN hb_bool_t hb_ot_layout_get_size_params(hb_face_t *face, unsigned int *design_size, unsigned int *subfamily_id, hb_ot_name_id_t *subfamily_name_id, unsigned int *range_start, unsigned int *range_end)
HB_EXTERN void hb_ot_layout_collect_features(hb_face_t *face, hb_tag_t table_tag, const hb_tag_t *scripts, const hb_tag_t *languages, const hb_tag_t *features, hb_set_t *feature_indexes)
unsigned int hb_ot_name_id_t