Crate harfbuzz_sys
source ·Expand description
§harfbuzz-sys
This crate provides raw bindings to the HarfBuzz text shaping library.
§Features
-
freetype
- Enables bindings to the FreeType font engine. (Enabled by default.) -
coretext
- Enables bindings to the CoreText font engine. (Apple platforms only) (Enabled by default.) -
directwrite
- Enables bindings to the DirectWrite font engine. (Windows only) (Enabled by default.) -
bundled
- Use the bundled copy of the harfbuzz library rather than one installed on the system.
Modules§
Structs§
- hb_feature_t: @tag: The #hb_tag_t tag of the feature @value: The value of the feature. 0 disables the feature, non-zero (usually
- hb_font_extents_t: @ascender: The height of typographic ascenders. @descender: The depth of typographic descenders. @line_gap: The suggested line-spacing gap.
- hb_glyph_extents_t: @x_bearing: Distance from the x-origin to the left extremum of the glyph. @y_bearing: Distance from the top extremum of the glyph to the y-origin. @width: Distance from the left extremum of the glyph to the right extremum. @height: Distance from the top extremum of the glyph to the bottom extremum.
- hb_glyph_info_t: @codepoint: either a Unicode code point (before shaping) or a glyph index (after shaping). @cluster: the index of the character in the original text that corresponds to this #hb_glyph_info_t, or whatever the client passes to hb_buffer_add(). More than one #hb_glyph_info_t can have the same @cluster value, if they resulted from the same character (e.g. one to many glyph substitution), and when more than one character gets merged in the same glyph (e.g. many to one glyph substitution) the #hb_glyph_info_t will have the smallest cluster value of them. By default some characters are merged into the same cluster (e.g. combining marks have the same cluster as their bases) even if they are separate glyphs, hb_buffer_set_cluster_level() allow selecting more fine-grained cluster handling.
- hb_glyph_position_t: @x_advance: how much the line advances after drawing this glyph when setting text in horizontal direction. @y_advance: how much the line advances after drawing this glyph when setting text in vertical direction. @x_offset: how much the glyph moves on the X-axis before drawing it, this should not affect how much the line advances. @y_offset: how much the glyph moves on the Y-axis before drawing it, this should not affect how much the line advances.
- hb_ot_color_layer_t:
- hb_ot_math_glyph_part_t: @glyph: The glyph index of the variant part @start_connector_length: The length of the connector on the starting side of the variant part @end_connector_length: The length of the connector on the ending side of the variant part @full_advance: The total advance of the part @flags: #hb_ot_math_glyph_part_flags_t flags for the part
- hb_ot_math_glyph_variant_t: @glyph: The glyph index of the variant @advance: The advance width of the variant
- hb_ot_name_entry_t: @name_id: name ID @language: language
- hb_ot_var_axis_info_t: @axis_index: Index of the axis in the variation-axis array @tag: The #hb_tag_t tag identifying the design variation of the axis @name_id: The
name
table Name ID that provides display names for the axis @flags: The #hb_ot_var_axis_flags_t flags for the axis @min_value: The mininum value on the variation axis that the font covers @default_value: The position on the variation axis corresponding to the font’s defaults @max_value: The maximum value on the variation axis that the font covers - hb_ot_var_axis_t:
- hb_segment_properties_t: @direction: the #hb_direction_t of the buffer, see hb_buffer_set_direction(). @script: the #hb_script_t of the buffer, see hb_buffer_set_script(). @language: the #hb_language_t of the buffer, see hb_buffer_set_language().
- hb_user_data_key_t:
- hb_variation_t: @tag: The #hb_tag_t tag of the variation-axis name @value: The value of the variation axis
Constants§
Functions§
- hb_font_funcs_set_font_h_extents_func: @ffuncs: A font-function structure @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign @user_data: Data to pass to @func @destroy: (optional): The function to call when @user_data is not needed anymore
- hb_font_funcs_set_font_v_extents_func: @ffuncs: A font-function structure @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign @user_data: Data to pass to @func @destroy: (optional): The function to call when @user_data is not needed anymore
- hb_font_funcs_set_glyph_contour_point_func: @ffuncs: A font-function structure @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign @user_data: Data to pass to @func @destroy: (optional): The function to call when @user_data is not needed anymore
- hb_font_funcs_set_glyph_extents_func: @ffuncs: A font-function structure @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign @user_data: Data to pass to @func @destroy: (optional): The function to call when @user_data is not needed anymore
- hb_font_funcs_set_glyph_from_name_func: @ffuncs: A font-function structure @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign @user_data: Data to pass to @func @destroy: (optional): The function to call when @user_data is not needed anymore
- hb_font_funcs_set_glyph_h_advance_func: @ffuncs: A font-function structure @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign @user_data: Data to pass to @func @destroy: (optional): The function to call when @user_data is not needed anymore
- hb_font_funcs_set_glyph_h_advances_func: @ffuncs: A font-function structure @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign @user_data: Data to pass to @func @destroy: (optional): The function to call when @user_data is not needed anymore
- hb_font_funcs_set_glyph_h_kerning_func: @ffuncs: font functions. @func: (closure user_data) (destroy destroy) (scope notified): @user_data: @destroy:
- hb_font_funcs_set_glyph_h_origin_func: @ffuncs: A font-function structure @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign @user_data: Data to pass to @func @destroy: (optional): The function to call when @user_data is not needed anymore
- hb_font_funcs_set_glyph_name_func: @ffuncs: A font-function structure @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign @user_data: Data to pass to @func @destroy: (optional): The function to call when @user_data is not needed anymore
- hb_font_funcs_set_glyph_v_advance_func: @ffuncs: A font-function structure @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign @user_data: Data to pass to @func @destroy: (optional): The function to call when @user_data is not needed anymore
- hb_font_funcs_set_glyph_v_advances_func: @ffuncs: A font-function structure @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign @user_data: Data to pass to @func @destroy: (optional): The function to call when @user_data is not needed anymore
- hb_font_funcs_set_glyph_v_kerning_func: @ffuncs: font functions. @func: (closure user_data) (destroy destroy) (scope notified): @user_data: @destroy:
- hb_font_funcs_set_glyph_v_origin_func: @ffuncs: A font-function structure @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign @user_data: Data to pass to @func @destroy: (optional): The function to call when @user_data is not needed anymore
- hb_font_funcs_set_nominal_glyph_func: @ffuncs: A font-function structure @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign @user_data: Data to pass to @func @destroy: (optional): The function to call when @user_data is not needed anymore
- hb_font_funcs_set_nominal_glyphs_func: @ffuncs: A font-function structure @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign @user_data: Data to pass to @func @destroy: (optional): The function to call when @user_data is not needed anymore
- hb_font_funcs_set_variation_glyph_func: @ffuncs: A font-function structure @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign @user_data: Data to pass to @func @destroy: (optional): The function to call when @user_data is not needed anymore
- hb_unicode_combining_class: @ufuncs: The Unicode-functions structure @unicode: The code point to query
- hb_unicode_compose: @ufuncs: The Unicode-functions structure @a: The first code point to compose @b: The second code point to compose @ab: (out): The composed code point
- hb_unicode_decompose: @ufuncs: The Unicode-functions structure @ab: The code point to decompose @a: (out): The first decomposed code point @b: (out): The second decomposed code point
- hb_unicode_eastasian_width:
- hb_unicode_funcs_set_combining_class_func: @ufuncs: A Unicode-functions structure @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign @user_data: Data to pass to @func @destroy: (optional): The function to call when @user_data is not needed anymore
- hb_unicode_funcs_set_compose_func: @ufuncs: A Unicode-functions structure @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign @user_data: Data to pass to @func @destroy: (optional): The function to call when @user_data is not needed anymore
- hb_unicode_funcs_set_decompose_compatibility_func: @ufuncs: a Unicode function structure @func: (closure user_data) (destroy destroy) (scope notified): @user_data: @destroy:
- hb_unicode_funcs_set_decompose_func: @ufuncs: A Unicode-functions structure @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign @user_data: Data to pass to @func @destroy: (optional): The function to call when @user_data is not needed anymore
- hb_unicode_funcs_set_eastasian_width_func: @ufuncs: a Unicode function structure @func: (closure user_data) (destroy destroy) (scope notified): @user_data: @destroy:
- hb_unicode_funcs_set_general_category_func: @ufuncs: A Unicode-functions structure @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign @user_data: Data to pass to @func @destroy: (optional): The function to call when @user_data is not needed anymore
- hb_unicode_funcs_set_mirroring_func: @ufuncs: A Unicode-functions structure @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign @user_data: Data to pass to @func @destroy: (optional): The function to call when @user_data is not needed anymore
- hb_unicode_funcs_set_script_func: @ufuncs: A Unicode-functions structure @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign @user_data: Data to pass to @func @destroy: (optional): The function to call when @user_data is not needed anymore
- hb_unicode_general_category: @ufuncs: The Unicode-functions structure @unicode: The code point to query
- hb_unicode_mirroring: @ufuncs: The Unicode-functions structure @unicode: The code point to query
- hb_unicode_script: @ufuncs: The Unicode-functions structure @unicode: The code point to query
Type Aliases§
- hb_aat_layout_feature_selector_t: @HB_AAT_LAYOUT_FEATURE_SELECTOR_INVALID: Initial, unset feature selector @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALL_TYPE_FEATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_ALL_TYPOGRAPHIC @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALL_TYPE_FEATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_ALL_TYPOGRAPHIC @HB_AAT_LAYOUT_FEATURE_SELECTOR_REQUIRED_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_REQUIRED_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_COMMON_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_COMMON_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_RARE_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_RARE_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_LOGOS_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_LOGOS_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_REBUS_PICTURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_REBUS_PICTURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_DIPHTHONG_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_DIPHTHONG_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_SQUARED_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_SQUARED_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_ABBREV_SQUARED_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_ABBREV_SQUARED_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_SYMBOL_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_SYMBOL_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_HISTORICAL_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_HISTORICAL_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_UNCONNECTED: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_PARTIALLY_CONNECTED: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_CURSIVE: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES @HB_AAT_LAYOUT_FEATURE_SELECTOR_UPPER_AND_LOWER_CASE: Deprecated @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALL_CAPS: Deprecated @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALL_LOWER_CASE: Deprecated @HB_AAT_LAYOUT_FEATURE_SELECTOR_SMALL_CAPS: Deprecated @HB_AAT_LAYOUT_FEATURE_SELECTOR_INITIAL_CAPS: Deprecated @HB_AAT_LAYOUT_FEATURE_SELECTOR_INITIAL_CAPS_AND_SMALL_CAPS: Deprecated @HB_AAT_LAYOUT_FEATURE_SELECTOR_SUBSTITUTE_VERTICAL_FORMS_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_SUBSTITUTION @HB_AAT_LAYOUT_FEATURE_SELECTOR_SUBSTITUTE_VERTICAL_FORMS_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_SUBSTITUTION @HB_AAT_LAYOUT_FEATURE_SELECTOR_LINGUISTIC_REARRANGEMENT_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LINGUISTIC_REARRANGEMENT @HB_AAT_LAYOUT_FEATURE_SELECTOR_LINGUISTIC_REARRANGEMENT_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LINGUISTIC_REARRANGEMENT @HB_AAT_LAYOUT_FEATURE_SELECTOR_MONOSPACED_NUMBERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING @HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_NUMBERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING @HB_AAT_LAYOUT_FEATURE_SELECTOR_THIRD_WIDTH_NUMBERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING @HB_AAT_LAYOUT_FEATURE_SELECTOR_QUARTER_WIDTH_NUMBERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING @HB_AAT_LAYOUT_FEATURE_SELECTOR_WORD_INITIAL_SWASHES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_WORD_INITIAL_SWASHES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_WORD_FINAL_SWASHES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_WORD_FINAL_SWASHES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_LINE_INITIAL_SWASHES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_LINE_INITIAL_SWASHES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_LINE_FINAL_SWASHES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_LINE_FINAL_SWASHES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_NON_FINAL_SWASHES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_NON_FINAL_SWASHES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_SHOW_DIACRITICS: for #HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_HIDE_DIACRITICS: for #HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_DECOMPOSE_DIACRITICS: for #HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_NORMAL_POSITION: for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION @HB_AAT_LAYOUT_FEATURE_SELECTOR_SUPERIORS: for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION @HB_AAT_LAYOUT_FEATURE_SELECTOR_INFERIORS: for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION @HB_AAT_LAYOUT_FEATURE_SELECTOR_ORDINALS: for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION @HB_AAT_LAYOUT_FEATURE_SELECTOR_SCIENTIFIC_INFERIORS: for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_FRACTIONS: for #HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS @HB_AAT_LAYOUT_FEATURE_SELECTOR_VERTICAL_FRACTIONS: for #HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS @HB_AAT_LAYOUT_FEATURE_SELECTOR_DIAGONAL_FRACTIONS: for #HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS @HB_AAT_LAYOUT_FEATURE_SELECTOR_PREVENT_OVERLAP_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_OVERLAPPING_CHARACTERS_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_PREVENT_OVERLAP_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_OVERLAPPING_CHARACTERS_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHENS_TO_EM_DASH_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS @HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHENS_TO_EM_DASH_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS @HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHEN_TO_EN_DASH_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS @HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHEN_TO_EN_DASH_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS @HB_AAT_LAYOUT_FEATURE_SELECTOR_SLASHED_ZERO_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS @HB_AAT_LAYOUT_FEATURE_SELECTOR_SLASHED_ZERO_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS @HB_AAT_LAYOUT_FEATURE_SELECTOR_FORM_INTERROBANG_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS @HB_AAT_LAYOUT_FEATURE_SELECTOR_FORM_INTERROBANG_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS @HB_AAT_LAYOUT_FEATURE_SELECTOR_SMART_QUOTES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS @HB_AAT_LAYOUT_FEATURE_SELECTOR_SMART_QUOTES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS @HB_AAT_LAYOUT_FEATURE_SELECTOR_PERIODS_TO_ELLIPSIS_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS @HB_AAT_LAYOUT_FEATURE_SELECTOR_PERIODS_TO_ELLIPSIS_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS @HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHEN_TO_MINUS_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS @HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHEN_TO_MINUS_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS @HB_AAT_LAYOUT_FEATURE_SELECTOR_ASTERISK_TO_MULTIPLY_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS @HB_AAT_LAYOUT_FEATURE_SELECTOR_ASTERISK_TO_MULTIPLY_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS @HB_AAT_LAYOUT_FEATURE_SELECTOR_SLASH_TO_DIVIDE_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS @HB_AAT_LAYOUT_FEATURE_SELECTOR_SLASH_TO_DIVIDE_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS @HB_AAT_LAYOUT_FEATURE_SELECTOR_INEQUALITY_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS @HB_AAT_LAYOUT_FEATURE_SELECTOR_INEQUALITY_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS @HB_AAT_LAYOUT_FEATURE_SELECTOR_EXPONENTS_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS @HB_AAT_LAYOUT_FEATURE_SELECTOR_EXPONENTS_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS @HB_AAT_LAYOUT_FEATURE_SELECTOR_MATHEMATICAL_GREEK_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS @HB_AAT_LAYOUT_FEATURE_SELECTOR_MATHEMATICAL_GREEK_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_ORNAMENTS: for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_DINGBATS: for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_PI_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_FLEURONS: for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_DECORATIVE_BORDERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_INTERNATIONAL_SYMBOLS: for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_MATH_SYMBOLS: for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_ALTERNATES: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL1: for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL2: for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL3: for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL4: for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL5: for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_STYLE_OPTIONS: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS @HB_AAT_LAYOUT_FEATURE_SELECTOR_DISPLAY_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS @HB_AAT_LAYOUT_FEATURE_SELECTOR_ENGRAVED_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS @HB_AAT_LAYOUT_FEATURE_SELECTOR_ILLUMINATED_CAPS: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS @HB_AAT_LAYOUT_FEATURE_SELECTOR_TITLING_CAPS: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS @HB_AAT_LAYOUT_FEATURE_SELECTOR_TALL_CAPS: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_SIMPLIFIED_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_JIS1978_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_JIS1983_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_JIS1990_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_ONE: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_TWO: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_THREE: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_FOUR: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_FIVE: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_EXPERT_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_JIS2004_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_HOJO_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_NLCCHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_NAMES_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_LOWER_CASE_NUMBERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_CASE @HB_AAT_LAYOUT_FEATURE_SELECTOR_UPPER_CASE_NUMBERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_CASE @HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING @HB_AAT_LAYOUT_FEATURE_SELECTOR_MONOSPACED_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING @HB_AAT_LAYOUT_FEATURE_SELECTOR_HALF_WIDTH_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING @HB_AAT_LAYOUT_FEATURE_SELECTOR_THIRD_WIDTH_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING @HB_AAT_LAYOUT_FEATURE_SELECTOR_QUARTER_WIDTH_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALT_PROPORTIONAL_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALT_HALF_WIDTH_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_TRANSLITERATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION @HB_AAT_LAYOUT_FEATURE_SELECTOR_HANJA_TO_HANGUL: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION @HB_AAT_LAYOUT_FEATURE_SELECTOR_HIRAGANA_TO_KATAKANA: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION @HB_AAT_LAYOUT_FEATURE_SELECTOR_KATAKANA_TO_HIRAGANA: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION @HB_AAT_LAYOUT_FEATURE_SELECTOR_KANA_TO_ROMANIZATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION @HB_AAT_LAYOUT_FEATURE_SELECTOR_ROMANIZATION_TO_HIRAGANA: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION @HB_AAT_LAYOUT_FEATURE_SELECTOR_ROMANIZATION_TO_KATAKANA: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION @HB_AAT_LAYOUT_FEATURE_SELECTOR_HANJA_TO_HANGUL_ALT_ONE: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION @HB_AAT_LAYOUT_FEATURE_SELECTOR_HANJA_TO_HANGUL_ALT_TWO: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION @HB_AAT_LAYOUT_FEATURE_SELECTOR_HANJA_TO_HANGUL_ALT_THREE: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_BOX_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_ROUNDED_BOX_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_CIRCLE_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_INVERTED_CIRCLE_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_PARENTHESIS_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_PERIOD_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_ROMAN_NUMERAL_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_DIAMOND_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_INVERTED_BOX_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_INVERTED_ROUNDED_BOX_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_FULL_WIDTH_KANA: for #HB_AAT_LAYOUT_FEATURE_TYPE_KANA_SPACING_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_KANA: for #HB_AAT_LAYOUT_FEATURE_TYPE_KANA_SPACING_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_FULL_WIDTH_IDEOGRAPHS: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_IDEOGRAPHS: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_HALF_WIDTH_IDEOGRAPHS: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_CANONICAL_COMPOSITION_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_CANONICAL_COMPOSITION_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_COMPATIBILITY_COMPOSITION_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_COMPATIBILITY_COMPOSITION_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRANSCODING_COMPOSITION_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRANSCODING_COMPOSITION_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_RUBY_KANA: Deprecated; use #HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_OFF instead @HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA: Deprecated; use #HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_ON instead @HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_RUBY_KANA @HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_RUBY_KANA @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_CJK_SYMBOL_ALTERNATIVES: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_ONE: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_TWO: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_THREE: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_FOUR: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_FIVE: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_IDEOGRAPHIC_ALTERNATIVES: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_ONE: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_TWO: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_THREE: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_FOUR: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_FIVE: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_VERTICAL_ROMAN_CENTERED: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_VERTICAL_ROMAN_PLACEMENT_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_VERTICAL_ROMAN_HBASELINE: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_VERTICAL_ROMAN_PLACEMENT_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_CJK_ITALIC_ROMAN: Deprecated; use #HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_OFF instead @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN: Deprecated; use #HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_ON instead @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_ITALIC_CJK_ROMAN @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_ITALIC_CJK_ROMAN @HB_AAT_LAYOUT_FEATURE_SELECTOR_CASE_SENSITIVE_LAYOUT_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT @HB_AAT_LAYOUT_FEATURE_SELECTOR_CASE_SENSITIVE_LAYOUT_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT @HB_AAT_LAYOUT_FEATURE_SELECTOR_CASE_SENSITIVE_SPACING_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT @HB_AAT_LAYOUT_FEATURE_SELECTOR_CASE_SENSITIVE_SPACING_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALTERNATE_HORIZ_KANA_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALTERNATE_HORIZ_KANA_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALTERNATE_VERT_KANA_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALTERNATE_VERT_KANA_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_STYLISTIC_ALTERNATES: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_ONE_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_ONE_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWO_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWO_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_THREE_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_THREE_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FOUR_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FOUR_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FIVE_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FIVE_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SIX_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SIX_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SEVEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SEVEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_EIGHT_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_EIGHT_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_NINE_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_NINE_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_ELEVEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_ELEVEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWELVE_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWELVE_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_THIRTEEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_THIRTEEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FOURTEEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FOURTEEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FIFTEEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FIFTEEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SIXTEEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SIXTEEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SEVENTEEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SEVENTEEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_EIGHTEEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_EIGHTEEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_NINETEEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_NINETEEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWENTY_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWENTY_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_ALTERNATES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_ALTERNATES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_SWASH_ALTERNATES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_SWASH_ALTERNATES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_SWASH_ALTERNATES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_SWASH_ALTERNATES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES @HB_AAT_LAYOUT_FEATURE_SELECTOR_DEFAULT_LOWER_CASE: for #HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE @HB_AAT_LAYOUT_FEATURE_SELECTOR_LOWER_CASE_SMALL_CAPS: for #HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE @HB_AAT_LAYOUT_FEATURE_SELECTOR_LOWER_CASE_PETITE_CAPS: for #HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE @HB_AAT_LAYOUT_FEATURE_SELECTOR_DEFAULT_UPPER_CASE: for #HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE @HB_AAT_LAYOUT_FEATURE_SELECTOR_UPPER_CASE_SMALL_CAPS: for #HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE @HB_AAT_LAYOUT_FEATURE_SELECTOR_UPPER_CASE_PETITE_CAPS: for #HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE @HB_AAT_LAYOUT_FEATURE_SELECTOR_HALF_WIDTH_CJK_ROMAN: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_CJK_ROMAN: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_DEFAULT_CJK_ROMAN: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE @HB_AAT_LAYOUT_FEATURE_SELECTOR_FULL_WIDTH_CJK_ROMAN: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE
- hb_aat_layout_feature_type_t: @HB_AAT_LAYOUT_FEATURE_TYPE_INVALID: Initial, unset feature type @HB_AAT_LAYOUT_FEATURE_TYPE_ALL_TYPOGRAPHIC: @HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES: @HB_AAT_LAYOUT_FEATURE_TYPE_CURISVE_CONNECTION: @HB_AAT_LAYOUT_FEATURE_TYPE_LETTER_CASE: @HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_SUBSTITUTION: @HB_AAT_LAYOUT_FEATURE_TYPE_LINGUISTIC_REARRANGEMENT: @HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING: @HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE: @HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE: @HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION: @HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS: @HB_AAT_LAYOUT_FEATURE_TYPE_OVERLAPPING_CHARACTERS_TYPE: @HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS: @HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS: @HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE: @HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_ALTERNATIVES: @HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE: @HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS: @HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE: @HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_CASE: @HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING: @HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION: @HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE: @HB_AAT_LAYOUT_FEATURE_TYPE_KANA_SPACING_TYPE: @HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE: @HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE: @HB_AAT_LAYOUT_FEATURE_TYPE_RUBY_KANA: @HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE: @HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE: @HB_AAT_LAYOUT_FEATURE_TYPE_CJK_VERTICAL_ROMAN_PLACEMENT_TYPE: @HB_AAT_LAYOUT_FEATURE_TYPE_ITALIC_CJK_ROMAN: @HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT: @HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA: @HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES: @HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES: @HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE: @HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE: @HB_AAT_LAYOUT_FEATURE_TYPE_LANGUAGE_TAG_TYPE: @HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE:
- hb_bool_t:
- hb_buffer_cluster_level_t: @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES: Return cluster values grouped by graphemes into monotone order. @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS: Return cluster values grouped into monotone order. @HB_BUFFER_CLUSTER_LEVEL_CHARACTERS: Don’t group cluster values. @HB_BUFFER_CLUSTER_LEVEL_DEFAULT: Default cluster level, equal to @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES.
- hb_buffer_content_type_t: @HB_BUFFER_CONTENT_TYPE_INVALID: Initial value for new buffer. @HB_BUFFER_CONTENT_TYPE_UNICODE: The buffer contains input characters (before shaping). @HB_BUFFER_CONTENT_TYPE_GLYPHS: The buffer contains output glyphs (after shaping).
- hb_buffer_flags_t: @HB_BUFFER_FLAG_DEFAULT: the default buffer flag. @HB_BUFFER_FLAG_BOT: flag indicating that special handling of the beginning of text paragraph can be applied to this buffer. Should usually be set, unless you are passing to the buffer only part of the text without the full context. @HB_BUFFER_FLAG_EOT: flag indicating that special handling of the end of text paragraph can be applied to this buffer, similar to @HB_BUFFER_FLAG_BOT. @HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES: flag indication that character with Default_Ignorable Unicode property should use the corresponding glyph from the font, instead of hiding them (done by replacing them with the space glyph and zeroing the advance width.) This flag takes precedence over @HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES. @HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES: flag indication that character with Default_Ignorable Unicode property should be removed from glyph string instead of hiding them (done by replacing them with the space glyph and zeroing the advance width.) @HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES takes precedence over this flag. Since: 1.8.0 @HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE: flag indicating that a dotted circle should not be inserted in the rendering of incorrect character sequences (such at <0905 093E>). Since: 2.4
- hb_buffer_serialize_flags_t: @HB_BUFFER_SERIALIZE_FLAG_DEFAULT: serialize glyph names, clusters and positions. @HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS: do not serialize glyph cluster. @HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS: do not serialize glyph position information. @HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES: do no serialize glyph name. @HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS: serialize glyph extents. @HB_BUFFER_SERIALIZE_FLAG_GLYPH_FLAGS: serialize glyph flags. Since: 1.5.0 @HB_BUFFER_SERIALIZE_FLAG_NO_ADVANCES: do not serialize glyph advances, glyph offsets will reflect absolute glyph positions. Since: 1.8.0
- hb_buffer_serialize_format_t: @HB_BUFFER_SERIALIZE_FORMAT_TEXT: a human-readable, plain text format. @HB_BUFFER_SERIALIZE_FORMAT_JSON: a machine-readable JSON format. @HB_BUFFER_SERIALIZE_FORMAT_INVALID: invalid format.
- hb_codepoint_t:
- hb_color_t:
- hb_direction_t: @HB_DIRECTION_INVALID: Initial, unset direction. @HB_DIRECTION_LTR: Text is set horizontally from left to right. @HB_DIRECTION_RTL: Text is set horizontally from right to left. @HB_DIRECTION_TTB: Text is set vertically from top to bottom. @HB_DIRECTION_BTT: Text is set vertically from bottom to top.
- hb_font_get_font_h_extents_func_t:
- hb_font_get_font_v_extents_func_t:
- hb_font_get_glyph_advance_func_t:
- hb_font_get_glyph_advances_func_t:
- hb_font_get_glyph_contour_point_func_t:
- hb_font_get_glyph_extents_func_t:
- hb_font_get_glyph_from_name_func_t:
- hb_font_get_glyph_h_advance_func_t:
- hb_font_get_glyph_h_advances_func_t:
- hb_font_get_glyph_h_origin_func_t:
- hb_font_get_glyph_name_func_t:
- hb_font_get_glyph_origin_func_t:
- hb_font_get_glyph_v_advance_func_t:
- hb_font_get_glyph_v_advances_func_t:
- hb_font_get_glyph_v_origin_func_t:
- hb_font_get_nominal_glyph_func_t:
- hb_font_get_nominal_glyphs_func_t:
- hb_font_get_variation_glyph_func_t:
- hb_glyph_flags_t: @HB_GLYPH_FLAG_UNSAFE_TO_BREAK: Indicates that if input text is broken at the beginning of the cluster this glyph is part of, then both sides need to be re-shaped, as the result might be different. On the flip side, it means that when this flag is not present, then it’s safe to break the glyph-run at the beginning of this cluster, and the two sides represent the exact same result one would get if breaking input text at the beginning of this cluster and shaping the two sides separately. This can be used to optimize paragraph layout, by avoiding re-shaping of each line after line-breaking, or limiting the reshaping to a small piece around the breaking point only. @HB_GLYPH_FLAG_DEFINED: All the currently defined flags.
- hb_mask_t:
- hb_memory_mode_t: @HB_MEMORY_MODE_DUPLICATE @HB_MEMORY_MODE_READONLY @HB_MEMORY_MODE_WRITABLE @HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE
- hb_ot_color_palette_flags_t: @HB_OT_COLOR_PALETTE_FLAG_DEFAULT: Default indicating that there is nothing special to note about a color palette. @HB_OT_COLOR_PALETTE_FLAG_USABLE_WITH_LIGHT_BACKGROUND: Flag indicating that the color palette is appropriate to use when displaying the font on a light background such as white. @HB_OT_COLOR_PALETTE_FLAG_USABLE_WITH_DARK_BACKGROUND: Flag indicating that the color palette is appropriate to use when displaying the font on a dark background such as black.
- hb_ot_layout_baseline_tag_t: @HB_OT_LAYOUT_BASELINE_TAG_ROMAN: The baseline used by alphabetic scripts such as Latin, Cyrillic and Greek. In vertical writing mode, the alphabetic baseline for characters rotated 90 degrees clockwise. (This would not apply to alphabetic characters that remain upright in vertical writing mode, since these characters are not rotated.) @HB_OT_LAYOUT_BASELINE_TAG_HANGING: The hanging baseline. In horizontal direction, this is the horizontal line from which syllables seem, to hang in Tibetan and other similar scripts. In vertical writing mode, for Tibetan (or some other similar script) characters rotated 90 degrees clockwise. @HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_BOTTOM_OR_LEFT: Ideographic character face bottom or left edge, if the direction is horizontal or vertical, respectively. @HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_TOP_OR_RIGHT: Ideographic character face top or right edge, if the direction is horizontal or vertical, respectively. @HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_BOTTOM_OR_LEFT: Ideographic em-box bottom or left edge, if the direction is horizontal or vertical, respectively. @HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_TOP_OR_RIGHT: Ideographic em-box top or right edge baseline, if the direction is horizontal or vertical, respectively. @HB_OT_LAYOUT_BASELINE_TAG_MATH: The baseline about which mathematical characters are centered. In vertical writing mode when mathematical characters rotated 90 degrees clockwise, are centered.
- hb_ot_layout_glyph_class_t: @HB_OT_LAYOUT_GLYPH_CLASS_UNCLASSIFIED: Glyphs not matching the other classifications @HB_OT_LAYOUT_GLYPH_CLASS_BASE_GLYPH: Spacing, single characters, capable of accepting marks @HB_OT_LAYOUT_GLYPH_CLASS_LIGATURE: Glyphs that represent ligation of multiple characters @HB_OT_LAYOUT_GLYPH_CLASS_MARK: Non-spacing, combining glyphs that represent marks @HB_OT_LAYOUT_GLYPH_CLASS_COMPONENT: Spacing glyphs that represent part of a single character
- hb_ot_math_constant_t:
- hb_ot_math_glyph_part_flags_t:
- hb_ot_math_kern_t:
- hb_ot_meta_tag_t: @HB_OT_META_TAG_DESIGN_LANGUAGES: Design languages. Text, using only Basic Latin (ASCII) characters. Indicates languages and/or scripts for the user audiences that the font was primarily designed for. @HB_OT_META_TAG_SUPPORTED_LANGUAGES: Supported languages. Text, using only Basic Latin (ASCII) characters. Indicates languages and/or scripts that the font is declared to be capable of supporting.
- hb_ot_metrics_tag_t: @HB_OT_METRICS_TAG_HORIZONTAL_ASCENDER: horizontal ascender. @HB_OT_METRICS_TAG_HORIZONTAL_DESCENDER: horizontal descender. @HB_OT_METRICS_TAG_HORIZONTAL_LINE_GAP: horizontal line gap. @HB_OT_METRICS_TAG_HORIZONTAL_CLIPPING_ASCENT: horizontal clipping ascent. @HB_OT_METRICS_TAG_HORIZONTAL_CLIPPING_DESCENT: horizontal clipping descent. @HB_OT_METRICS_TAG_VERTICAL_ASCENDER: vertical ascender. @HB_OT_METRICS_TAG_VERTICAL_DESCENDER: vertical descender. @HB_OT_METRICS_TAG_VERTICAL_LINE_GAP: vertical line gap. @HB_OT_METRICS_TAG_HORIZONTAL_CARET_RISE: horizontal caret rise. @HB_OT_METRICS_TAG_HORIZONTAL_CARET_RUN: horizontal caret run. @HB_OT_METRICS_TAG_HORIZONTAL_CARET_OFFSET: horizontal caret offset. @HB_OT_METRICS_TAG_VERTICAL_CARET_RISE: vertical caret rise. @HB_OT_METRICS_TAG_VERTICAL_CARET_RUN: vertical caret run. @HB_OT_METRICS_TAG_VERTICAL_CARET_OFFSET: vertical caret offset. @HB_OT_METRICS_TAG_X_HEIGHT: x height. @HB_OT_METRICS_TAG_CAP_HEIGHT: cap height. @HB_OT_METRICS_TAG_SUBSCRIPT_EM_X_SIZE: subscript em x size. @HB_OT_METRICS_TAG_SUBSCRIPT_EM_Y_SIZE: subscript em y size. @HB_OT_METRICS_TAG_SUBSCRIPT_EM_X_OFFSET: subscript em x offset. @HB_OT_METRICS_TAG_SUBSCRIPT_EM_Y_OFFSET: subscript em y offset. @HB_OT_METRICS_TAG_SUPERSCRIPT_EM_X_SIZE: superscript em x size. @HB_OT_METRICS_TAG_SUPERSCRIPT_EM_Y_SIZE: superscript em y size. @HB_OT_METRICS_TAG_SUPERSCRIPT_EM_X_OFFSET: superscript em x offset. @HB_OT_METRICS_TAG_SUPERSCRIPT_EM_Y_OFFSET: superscript em y offset. @HB_OT_METRICS_TAG_STRIKEOUT_SIZE: strikeout size. @HB_OT_METRICS_TAG_STRIKEOUT_OFFSET: strikeout offset. @HB_OT_METRICS_TAG_UNDERLINE_SIZE: underline size. @HB_OT_METRICS_TAG_UNDERLINE_OFFSET: underline offset.
- hb_ot_var_axis_flags_t: @HB_OT_VAR_AXIS_FLAG_HIDDEN: The axis should not be exposed directly in user interfaces.
- hb_position_t:
- hb_script_t: @HB_SCRIPT_COMMON: HB_TAG (‘Z’,‘y’,‘y’,‘y’) @HB_SCRIPT_INHERITED: HB_TAG (‘Z’,‘i’,‘n’,‘h’) @HB_SCRIPT_UNKNOWN: HB_TAG (‘Z’,‘z’,‘z’,‘z’) @HB_SCRIPT_ARABIC @HB_SCRIPT_ARMENIAN @HB_SCRIPT_BENGALI @HB_SCRIPT_CYRILLIC @HB_SCRIPT_DEVANAGARI @HB_SCRIPT_GEORGIAN @HB_SCRIPT_GREEK @HB_SCRIPT_GUJARATI @HB_SCRIPT_GURMUKHI @HB_SCRIPT_HANGUL @HB_SCRIPT_HAN @HB_SCRIPT_HEBREW @HB_SCRIPT_HIRAGANA @HB_SCRIPT_KANNADA @HB_SCRIPT_KATAKANA @HB_SCRIPT_LAO @HB_SCRIPT_LATIN @HB_SCRIPT_MALAYALAM @HB_SCRIPT_ORIYA @HB_SCRIPT_TAMIL @HB_SCRIPT_TELUGU @HB_SCRIPT_THAI @HB_SCRIPT_TIBETAN @HB_SCRIPT_BOPOMOFO @HB_SCRIPT_BRAILLE @HB_SCRIPT_CANADIAN_SYLLABICS @HB_SCRIPT_CHEROKEE @HB_SCRIPT_ETHIOPIC @HB_SCRIPT_KHMER @HB_SCRIPT_MONGOLIAN @HB_SCRIPT_MYANMAR @HB_SCRIPT_OGHAM @HB_SCRIPT_RUNIC @HB_SCRIPT_SINHALA @HB_SCRIPT_SYRIAC @HB_SCRIPT_THAANA @HB_SCRIPT_YI @HB_SCRIPT_DESERET @HB_SCRIPT_GOTHIC @HB_SCRIPT_OLD_ITALIC @HB_SCRIPT_BUHID @HB_SCRIPT_HANUNOO @HB_SCRIPT_TAGALOG @HB_SCRIPT_TAGBANWA @HB_SCRIPT_CYPRIOT @HB_SCRIPT_LIMBU @HB_SCRIPT_LINEAR_B @HB_SCRIPT_OSMANYA @HB_SCRIPT_SHAVIAN @HB_SCRIPT_TAI_LE @HB_SCRIPT_UGARITIC @HB_SCRIPT_BUGINESE @HB_SCRIPT_COPTIC @HB_SCRIPT_GLAGOLITIC @HB_SCRIPT_KHAROSHTHI @HB_SCRIPT_NEW_TAI_LUE @HB_SCRIPT_OLD_PERSIAN @HB_SCRIPT_SYLOTI_NAGRI @HB_SCRIPT_TIFINAGH @HB_SCRIPT_BALINESE @HB_SCRIPT_CUNEIFORM @HB_SCRIPT_NKO @HB_SCRIPT_PHAGS_PA @HB_SCRIPT_PHOENICIAN @HB_SCRIPT_CARIAN @HB_SCRIPT_CHAM @HB_SCRIPT_KAYAH_LI @HB_SCRIPT_LEPCHA @HB_SCRIPT_LYCIAN @HB_SCRIPT_LYDIAN @HB_SCRIPT_OL_CHIKI @HB_SCRIPT_REJANG @HB_SCRIPT_SAURASHTRA @HB_SCRIPT_SUNDANESE @HB_SCRIPT_VAI @HB_SCRIPT_AVESTAN @HB_SCRIPT_BAMUM @HB_SCRIPT_EGYPTIAN_HIEROGLYPHS @HB_SCRIPT_IMPERIAL_ARAMAIC @HB_SCRIPT_INSCRIPTIONAL_PAHLAVI @HB_SCRIPT_INSCRIPTIONAL_PARTHIAN @HB_SCRIPT_JAVANESE @HB_SCRIPT_KAITHI @HB_SCRIPT_LISU @HB_SCRIPT_MEETEI_MAYEK @HB_SCRIPT_OLD_SOUTH_ARABIAN @HB_SCRIPT_OLD_TURKIC @HB_SCRIPT_SAMARITAN @HB_SCRIPT_TAI_THAM @HB_SCRIPT_TAI_VIET @HB_SCRIPT_BATAK @HB_SCRIPT_BRAHMI @HB_SCRIPT_MANDAIC @HB_SCRIPT_CHAKMA @HB_SCRIPT_MEROITIC_CURSIVE @HB_SCRIPT_MEROITIC_HIEROGLYPHS @HB_SCRIPT_MIAO @HB_SCRIPT_SHARADA @HB_SCRIPT_SORA_SOMPENG @HB_SCRIPT_TAKRI @HB_SCRIPT_BASSA_VAH @HB_SCRIPT_CAUCASIAN_ALBANIAN @HB_SCRIPT_DUPLOYAN @HB_SCRIPT_ELBASAN @HB_SCRIPT_GRANTHA @HB_SCRIPT_KHOJKI @HB_SCRIPT_KHUDAWADI @HB_SCRIPT_LINEAR_A @HB_SCRIPT_MAHAJANI @HB_SCRIPT_MANICHAEAN @HB_SCRIPT_MENDE_KIKAKUI @HB_SCRIPT_MODI @HB_SCRIPT_MRO @HB_SCRIPT_NABATAEAN @HB_SCRIPT_OLD_NORTH_ARABIAN @HB_SCRIPT_OLD_PERMIC @HB_SCRIPT_PAHAWH_HMONG @HB_SCRIPT_PALMYRENE @HB_SCRIPT_PAU_CIN_HAU @HB_SCRIPT_PSALTER_PAHLAVI @HB_SCRIPT_SIDDHAM @HB_SCRIPT_TIRHUTA @HB_SCRIPT_WARANG_CITI @HB_SCRIPT_AHOM @HB_SCRIPT_ANATOLIAN_HIEROGLYPHS @HB_SCRIPT_HATRAN @HB_SCRIPT_MULTANI @HB_SCRIPT_OLD_HUNGARIAN @HB_SCRIPT_SIGNWRITING @HB_SCRIPT_ADLAM @HB_SCRIPT_BHAIKSUKI @HB_SCRIPT_MARCHEN @HB_SCRIPT_OSAGE @HB_SCRIPT_TANGUT @HB_SCRIPT_NEWA @HB_SCRIPT_MASARAM_GONDI @HB_SCRIPT_NUSHU @HB_SCRIPT_SOYOMBO @HB_SCRIPT_ZANABAZAR_SQUARE @HB_SCRIPT_DOGRA @HB_SCRIPT_GUNJALA_GONDI @HB_SCRIPT_HANIFI_ROHINGYA @HB_SCRIPT_MAKASAR @HB_SCRIPT_MEDEFAIDRIN @HB_SCRIPT_OLD_SOGDIAN @HB_SCRIPT_SOGDIAN @HB_SCRIPT_ELYMAIC @HB_SCRIPT_NANDINAGARI @HB_SCRIPT_NYIAKENG_PUACHUE_HMONG @HB_SCRIPT_WANCHO @HB_SCRIPT_INVALID: #HB_TAG_NONE
- hb_tag_t:
- hb_unicode_combining_class_func_t: @ufuncs: A Unicode-functions structure @unicode: The code point to query @user_data: User data pointer passed by the caller
- hb_unicode_combining_class_t: @HB_UNICODE_COMBINING_CLASS_NOT_REORDERED: Spacing and enclosing marks; also many vowel and consonant signs, even if nonspacing @HB_UNICODE_COMBINING_CLASS_OVERLAY: Marks which overlay a base letter or symbol @HB_UNICODE_COMBINING_CLASS_NUKTA: Diacritic nukta marks in Brahmi-derived scripts @HB_UNICODE_COMBINING_CLASS_KANA_VOICING: Hiragana/Katakana voicing marks @HB_UNICODE_COMBINING_CLASS_VIRAMA: Viramas @HB_UNICODE_COMBINING_CLASS_CCC10: [Hebrew] @HB_UNICODE_COMBINING_CLASS_CCC11: [Hebrew] @HB_UNICODE_COMBINING_CLASS_CCC12: [Hebrew] @HB_UNICODE_COMBINING_CLASS_CCC13: [Hebrew] @HB_UNICODE_COMBINING_CLASS_CCC14: [Hebrew] @HB_UNICODE_COMBINING_CLASS_CCC15: [Hebrew] @HB_UNICODE_COMBINING_CLASS_CCC16: [Hebrew] @HB_UNICODE_COMBINING_CLASS_CCC17: [Hebrew] @HB_UNICODE_COMBINING_CLASS_CCC18: [Hebrew] @HB_UNICODE_COMBINING_CLASS_CCC19: [Hebrew] @HB_UNICODE_COMBINING_CLASS_CCC20: [Hebrew] @HB_UNICODE_COMBINING_CLASS_CCC21: [Hebrew] @HB_UNICODE_COMBINING_CLASS_CCC22: [Hebrew] @HB_UNICODE_COMBINING_CLASS_CCC23: [Hebrew] @HB_UNICODE_COMBINING_CLASS_CCC24: [Hebrew] @HB_UNICODE_COMBINING_CLASS_CCC25: [Hebrew] @HB_UNICODE_COMBINING_CLASS_CCC26: [Hebrew] @HB_UNICODE_COMBINING_CLASS_CCC27: [Arabic] @HB_UNICODE_COMBINING_CLASS_CCC28: [Arabic] @HB_UNICODE_COMBINING_CLASS_CCC29: [Arabic] @HB_UNICODE_COMBINING_CLASS_CCC30: [Arabic] @HB_UNICODE_COMBINING_CLASS_CCC31: [Arabic] @HB_UNICODE_COMBINING_CLASS_CCC32: [Arabic] @HB_UNICODE_COMBINING_CLASS_CCC33: [Arabic] @HB_UNICODE_COMBINING_CLASS_CCC34: [Arabic] @HB_UNICODE_COMBINING_CLASS_CCC35: [Arabic] @HB_UNICODE_COMBINING_CLASS_CCC36: [Syriac] @HB_UNICODE_COMBINING_CLASS_CCC84: [Telugu] @HB_UNICODE_COMBINING_CLASS_CCC91: [Telugu] @HB_UNICODE_COMBINING_CLASS_CCC103: [Thai] @HB_UNICODE_COMBINING_CLASS_CCC107: [Thai] @HB_UNICODE_COMBINING_CLASS_CCC118: [Lao] @HB_UNICODE_COMBINING_CLASS_CCC122: [Lao] @HB_UNICODE_COMBINING_CLASS_CCC129: [Tibetan] @HB_UNICODE_COMBINING_CLASS_CCC130: [Tibetan] @HB_UNICODE_COMBINING_CLASS_CCC133: [Tibetan] @HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW_LEFT: Marks attached at the bottom left @HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW: Marks attached directly below @HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE: Marks attached directly above @HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE_RIGHT: Marks attached at the top right @HB_UNICODE_COMBINING_CLASS_BELOW_LEFT: Distinct marks at the bottom left @HB_UNICODE_COMBINING_CLASS_BELOW: Distinct marks directly below @HB_UNICODE_COMBINING_CLASS_BELOW_RIGHT: Distinct marks at the bottom right @HB_UNICODE_COMBINING_CLASS_LEFT: Distinct marks to the left @HB_UNICODE_COMBINING_CLASS_RIGHT: Distinct marks to the right @HB_UNICODE_COMBINING_CLASS_ABOVE_LEFT: Distinct marks at the top left @HB_UNICODE_COMBINING_CLASS_ABOVE: Distinct marks directly above @HB_UNICODE_COMBINING_CLASS_ABOVE_RIGHT: Distinct marks at the top right @HB_UNICODE_COMBINING_CLASS_DOUBLE_BELOW: Distinct marks subtending two bases @HB_UNICODE_COMBINING_CLASS_DOUBLE_ABOVE: Distinct marks extending above two bases @HB_UNICODE_COMBINING_CLASS_IOTA_SUBSCRIPT: Greek iota subscript only @HB_UNICODE_COMBINING_CLASS_INVALID: Invalid combining class
- hb_unicode_compose_func_t: @ufuncs: A Unicode-functions structure @a: The first code point to compose @b: The second code point to compose @ab: (out): The composed code point @user_data: user data pointer passed by the caller
- hb_unicode_decompose_compatibility_func_t: @ufuncs: a Unicode function structure @u: codepoint to decompose @decomposed: address of codepoint array (of length %HB_UNICODE_MAX_DECOMPOSITION_LEN) to write decomposition into @user_data: user data pointer as passed to hb_unicode_funcs_set_decompose_compatibility_func()
- hb_unicode_decompose_func_t: @ufuncs: A Unicode-functions structure @ab: The code point to decompose @a: (out): The first decomposed code point @b: (out): The second decomposed code point @user_data: user data pointer passed by the caller
- hb_unicode_eastasian_width_func_t:
- hb_unicode_general_category_func_t: @ufuncs: A Unicode-functions structure @unicode: The code point to query @user_data: User data pointer passed by the caller
- hb_unicode_general_category_t: @HB_UNICODE_GENERAL_CATEGORY_CONTROL: [Cc] @HB_UNICODE_GENERAL_CATEGORY_FORMAT: [Cf] @HB_UNICODE_GENERAL_CATEGORY_UNASSIGNED: [Cn] @HB_UNICODE_GENERAL_CATEGORY_PRIVATE_USE: [Co] @HB_UNICODE_GENERAL_CATEGORY_SURROGATE: [Cs] @HB_UNICODE_GENERAL_CATEGORY_LOWERCASE_LETTER: [Ll] @HB_UNICODE_GENERAL_CATEGORY_MODIFIER_LETTER: [Lm] @HB_UNICODE_GENERAL_CATEGORY_OTHER_LETTER: [Lo] @HB_UNICODE_GENERAL_CATEGORY_TITLECASE_LETTER: [Lt] @HB_UNICODE_GENERAL_CATEGORY_UPPERCASE_LETTER: [Lu] @HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK: [Mc] @HB_UNICODE_GENERAL_CATEGORY_ENCLOSING_MARK: [Me] @HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK: [Mn] @HB_UNICODE_GENERAL_CATEGORY_DECIMAL_NUMBER: [Nd] @HB_UNICODE_GENERAL_CATEGORY_LETTER_NUMBER: [Nl] @HB_UNICODE_GENERAL_CATEGORY_OTHER_NUMBER: [No] @HB_UNICODE_GENERAL_CATEGORY_CONNECT_PUNCTUATION: [Pc] @HB_UNICODE_GENERAL_CATEGORY_DASH_PUNCTUATION: [Pd] @HB_UNICODE_GENERAL_CATEGORY_CLOSE_PUNCTUATION: [Pe] @HB_UNICODE_GENERAL_CATEGORY_FINAL_PUNCTUATION: [Pf] @HB_UNICODE_GENERAL_CATEGORY_INITIAL_PUNCTUATION: [Pi] @HB_UNICODE_GENERAL_CATEGORY_OTHER_PUNCTUATION: [Po] @HB_UNICODE_GENERAL_CATEGORY_OPEN_PUNCTUATION: [Ps] @HB_UNICODE_GENERAL_CATEGORY_CURRENCY_SYMBOL: [Sc] @HB_UNICODE_GENERAL_CATEGORY_MODIFIER_SYMBOL: [Sk] @HB_UNICODE_GENERAL_CATEGORY_MATH_SYMBOL: [Sm] @HB_UNICODE_GENERAL_CATEGORY_OTHER_SYMBOL: [So] @HB_UNICODE_GENERAL_CATEGORY_LINE_SEPARATOR: [Zl] @HB_UNICODE_GENERAL_CATEGORY_PARAGRAPH_SEPARATOR: [Zp] @HB_UNICODE_GENERAL_CATEGORY_SPACE_SEPARATOR: [Zs]
- hb_unicode_mirroring_func_t: @ufuncs: A Unicode-functions structure @unicode: The code point to query @user_data: User data pointer passed by the caller
- hb_unicode_script_func_t: @ufuncs: A Unicode-functions structure @unicode: The code point to query @user_data: User data pointer passed by the caller