harfbuzz.c.types

C types for harfbuzz0 library

alias hb_bool_t hb_buffer_message_func_t hb_codepoint_t hb_color_line_get_color_stops_func_t hb_color_line_get_extend_func_t hb_color_t hb_destroy_func_t hb_draw_close_path_func_t hb_draw_cubic_to_func_t hb_draw_line_to_func_t hb_draw_move_to_func_t hb_draw_quadratic_to_func_t hb_font_draw_glyph_func_t hb_font_get_font_extents_func_t 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_func_t hb_font_get_glyph_h_advance_func_t hb_font_get_glyph_h_advances_func_t hb_font_get_glyph_h_kerning_func_t hb_font_get_glyph_h_origin_func_t hb_font_get_glyph_kerning_func_t hb_font_get_glyph_name_func_t hb_font_get_glyph_origin_func_t hb_font_get_glyph_shape_func_t hb_font_get_glyph_v_advance_func_t hb_font_get_glyph_v_advances_func_t hb_font_get_glyph_v_kerning_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_font_paint_glyph_func_t hb_language_t hb_mask_t hb_ot_name_id_t hb_paint_color_func_t hb_paint_color_glyph_func_t hb_paint_custom_palette_color_func_t hb_paint_image_func_t hb_paint_linear_gradient_func_t hb_paint_pop_clip_func_t hb_paint_pop_group_func_t hb_paint_pop_transform_func_t hb_paint_push_clip_glyph_func_t hb_paint_push_clip_rectangle_func_t hb_paint_push_group_func_t hb_paint_push_transform_func_t hb_paint_radial_gradient_func_t hb_paint_sweep_gradient_func_t hb_position_t hb_reference_table_func_t hb_tag_t hb_unicode_combining_class_func_t hb_unicode_compose_func_t hb_unicode_decompose_compatibility_func_t hb_unicode_decompose_func_t hb_unicode_eastasian_width_func_t hb_unicode_general_category_func_t hb_unicode_mirroring_func_t hb_unicode_script_func_t

Types 126

aliashb_bool_t = int

Data type for booleans.

aliashb_codepoint_t = uint

Data type for holding Unicode codepoints. Also used to hold glyph IDs.

aliashb_color_t = uint

Data type for holding color values. Colors are eight bits per channel RGB plus alpha transparency.

aliashb_font_get_font_h_extents_func_t = hb_font_get_font_extents_func_t

A virtual method for the #hb_font_funcs_t of an #hb_font_t object.

This method should retrieve the extents for a font, for horizontal-direction text segments. Extents must be returned in an #hb_glyph_extents output parameter.

aliashb_font_get_font_v_extents_func_t = hb_font_get_font_extents_func_t

A virtual method for the #hb_font_funcs_t of an #hb_font_t object.

This method should retrieve the extents for a font, for vertical-direction text segments. Extents must be returned in an #hb_glyph_extents output parameter.

aliashb_font_get_glyph_h_advance_func_t = hb_font_get_glyph_advance_func_t

A virtual method for the #hb_font_funcs_t of an #hb_font_t object.

This method should retrieve the advance for a specified glyph, in horizontal-direction text segments. Advances must be returned in an #hb_position_t output parameter.

aliashb_font_get_glyph_h_advances_func_t = hb_font_get_glyph_advances_func_t

A virtual method for the #hb_font_funcs_t of an #hb_font_t object.

This method should retrieve the advances for a sequence of glyphs, in horizontal-direction text segments.

aliashb_font_get_glyph_h_kerning_func_t = hb_font_get_glyph_kerning_func_t

A virtual method for the #hb_font_funcs_t of an #hb_font_t object.

This method should retrieve the kerning-adjustment value for a glyph-pair in the specified font, for horizontal text segments.

aliashb_font_get_glyph_h_origin_func_t = hb_font_get_glyph_origin_func_t

A virtual method for the #hb_font_funcs_t of an #hb_font_t object.

This method should retrieve the (X,Y) coordinates (in font units) of the origin for a glyph, for horizontal-direction text segments. Each coordinate must be returned in an #hb_position_t output parameter.

aliashb_font_get_glyph_v_advance_func_t = hb_font_get_glyph_advance_func_t

A virtual method for the #hb_font_funcs_t of an #hb_font_t object.

This method should retrieve the advance for a specified glyph, in vertical-direction text segments. Advances must be returned in an #hb_position_t output parameter.

aliashb_font_get_glyph_v_advances_func_t = hb_font_get_glyph_advances_func_t

A virtual method for the #hb_font_funcs_t of an #hb_font_t object.

This method should retrieve the advances for a sequence of glyphs, in vertical-direction text segments.

aliashb_font_get_glyph_v_kerning_func_t = hb_font_get_glyph_kerning_func_t

A virtual method for the #hb_font_funcs_t of an #hb_font_t object.

This method should retrieve the kerning-adjustment value for a glyph-pair in the specified font, for vertical text segments.

aliashb_font_get_glyph_v_origin_func_t = hb_font_get_glyph_origin_func_t

A virtual method for the #hb_font_funcs_t of an #hb_font_t object.

This method should retrieve the (X,Y) coordinates (in font units) of the origin for a glyph, for vertical-direction text segments. Each coordinate must be returned in an #hb_position_t output parameter.

aliashb_mask_t = uint

Data type for bitmasks.

aliashb_ot_name_id_t = uint

An integral type representing an OpenType 'name' table name identifier. There are predefined name IDs, as well as name IDs return from other API. These can be used to fetch name strings from a font face.

aliashb_position_t = int

Data type for holding a single coordinate value. Contour points and other multi-dimensional data are stored as tuples of #hb_position_t's.

aliashb_tag_t = uint

Data type for tag identifiers. Tags are four byte integers, each byte representing a character.

Tags are used to identify tables, design-variation axes, scripts, languages, font features, and baselines with human-readable names.

enumhb_aat_layout_feature_selector_t

The selectors defined for specifying AAT feature settings.

Invalid = 65535Initial, unset feature selector
AllTypeFeaturesOn = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_ALL_TYPOGRAPHIC
AllTypeFeaturesOff = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_ALL_TYPOGRAPHIC
RequiredLigaturesOn = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
RequiredLigaturesOff = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
CommonLigaturesOn = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
CommonLigaturesOff = 3for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
RareLigaturesOn = 4for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
RareLigaturesOff = 5for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
LogosOn = 6for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
LogosOff = 7for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
RebusPicturesOn = 8for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
RebusPicturesOff = 9for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
DiphthongLigaturesOn = 10for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
DiphthongLigaturesOff = 11for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
SquaredLigaturesOn = 12for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
SquaredLigaturesOff = 13for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AbbrevSquaredLigaturesOn = 14for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AbbrevSquaredLigaturesOff = 15for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
SymbolLigaturesOn = 16for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
SymbolLigaturesOff = 17for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
ContextualLigaturesOn = 18for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
ContextualLigaturesOff = 19for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
HistoricalLigaturesOn = 20for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
HistoricalLigaturesOff = 21for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
Unconnected = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
PartiallyConnected = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
Cursive = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
UpperAndLowerCase = 0Deprecated
AllCaps = 1Deprecated
AllLowerCase = 2Deprecated
SmallCaps = 3Deprecated
InitialCaps = 4Deprecated
InitialCapsAndSmallCaps = 5Deprecated
SubstituteVerticalFormsOn = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_SUBSTITUTION
SubstituteVerticalFormsOff = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_SUBSTITUTION
LinguisticRearrangementOn = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_LINGUISTIC_REARRANGEMENT
LinguisticRearrangementOff = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_LINGUISTIC_REARRANGEMENT
MonospacedNumbers = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING
ProportionalNumbers = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING
ThirdWidthNumbers = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING
QuarterWidthNumbers = 3for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING
WordInitialSwashesOn = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
WordInitialSwashesOff = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
WordFinalSwashesOn = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
WordFinalSwashesOff = 3for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
LineInitialSwashesOn = 4for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
LineInitialSwashesOff = 5for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
LineFinalSwashesOn = 6for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
LineFinalSwashesOff = 7for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
NonFinalSwashesOn = 8for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
NonFinalSwashesOff = 9for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
ShowDiacritics = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE
HideDiacritics = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE
DecomposeDiacritics = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE
NormalPosition = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION
Superiors = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION
Inferiors = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION
Ordinals = 3for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION
ScientificInferiors = 4for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION
NoFractions = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS
VerticalFractions = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS
DiagonalFractions = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS
PreventOverlapOn = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_OVERLAPPING_CHARACTERS_TYPE
PreventOverlapOff = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_OVERLAPPING_CHARACTERS_TYPE
HyphensToEmDashOn = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
HyphensToEmDashOff = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
HyphenToEnDashOn = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
HyphenToEnDashOff = 3for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
SlashedZeroOn = 4for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
SlashedZeroOff = 5for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
FormInterrobangOn = 6for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
FormInterrobangOff = 7for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
SmartQuotesOn = 8for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
SmartQuotesOff = 9for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
PeriodsToEllipsisOn = 10for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
PeriodsToEllipsisOff = 11for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
HyphenToMinusOn = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
HyphenToMinusOff = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
AsteriskToMultiplyOn = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
AsteriskToMultiplyOff = 3for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
SlashToDivideOn = 4for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
SlashToDivideOff = 5for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
InequalityLigaturesOn = 6for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
InequalityLigaturesOff = 7for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
ExponentsOn = 8for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
ExponentsOff = 9for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
MathematicalGreekOn = 10for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
MathematicalGreekOff = 11for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
NoOrnaments = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE
Dingbats = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE
PiCharacters = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE
Fleurons = 3for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE
DecorativeBorders = 4for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE
InternationalSymbols = 5for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE
MathSymbols = 6for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE
NoAlternates = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_ALTERNATIVES
DesignLevel1 = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE
DesignLevel2 = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE
DesignLevel3 = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE
DesignLevel4 = 3for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE
DesignLevel5 = 4for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE
NoStyleOptions = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS
DisplayText = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS
EngravedText = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS
IlluminatedCaps = 3for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS
TitlingCaps = 4for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS
TallCaps = 5for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS
TraditionalCharacters = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
SimplifiedCharacters = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
Jis1978Characters = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
Jis1983Characters = 3for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
Jis1990Characters = 4for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
TraditionalAltOne = 5for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
TraditionalAltTwo = 6for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
TraditionalAltThree = 7for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
TraditionalAltFour = 8for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
TraditionalAltFive = 9for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
ExpertCharacters = 10for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
Jis2004Characters = 11for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
HojoCharacters = 12for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
Nlccharacters = 13for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
TraditionalNamesCharacters = 14for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
LowerCaseNumbers = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_CASE
UpperCaseNumbers = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_CASE
ProportionalText = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING
MonospacedText = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING
HalfWidthText = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING
ThirdWidthText = 3for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING
QuarterWidthText = 4for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING
AltProportionalText = 5for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING
AltHalfWidthText = 6for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING
NoTransliteration = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
HanjaToHangul = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
HiraganaToKatakana = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
KatakanaToHiragana = 3for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
KanaToRomanization = 4for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
RomanizationToHiragana = 5for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
RomanizationToKatakana = 6for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
HanjaToHangulAltOne = 7for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
HanjaToHangulAltTwo = 8for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
HanjaToHangulAltThree = 9for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
NoAnnotation = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
BoxAnnotation = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
RoundedBoxAnnotation = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
CircleAnnotation = 3for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
InvertedCircleAnnotation = 4for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
ParenthesisAnnotation = 5for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
PeriodAnnotation = 6for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
RomanNumeralAnnotation = 7for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
DiamondAnnotation = 8for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
InvertedBoxAnnotation = 9for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
InvertedRoundedBoxAnnotation = 10for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
FullWidthKana = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_KANA_SPACING_TYPE
ProportionalKana = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_KANA_SPACING_TYPE
FullWidthIdeographs = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE
ProportionalIdeographs = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE
HalfWidthIdeographs = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE
CanonicalCompositionOn = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE
CanonicalCompositionOff = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE
CompatibilityCompositionOn = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE
CompatibilityCompositionOff = 3for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE
TranscodingCompositionOn = 4for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE
TranscodingCompositionOff = 5for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE
NoRubyKana = 0Deprecated; use #HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_OFF instead
RubyKana = 1Deprecated; use #HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_ON instead
RubyKanaOn = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_RUBY_KANA
RubyKanaOff = 3for #HB_AAT_LAYOUT_FEATURE_TYPE_RUBY_KANA
NoCjkSymbolAlternatives = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE
CjkSymbolAltOne = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE
CjkSymbolAltTwo = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE
CjkSymbolAltThree = 3for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE
CjkSymbolAltFour = 4for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE
CjkSymbolAltFive = 5for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE
NoIdeographicAlternatives = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE
IdeographicAltOne = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE
IdeographicAltTwo = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE
IdeographicAltThree = 3for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE
IdeographicAltFour = 4for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE
IdeographicAltFive = 5for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE
CjkVerticalRomanCentered = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_VERTICAL_ROMAN_PLACEMENT_TYPE
CjkVerticalRomanHbaseline = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_VERTICAL_ROMAN_PLACEMENT_TYPE
NoCjkItalicRoman = 0Deprecated; use #HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_OFF instead
CjkItalicRoman = 1Deprecated; use #HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_ON instead
CjkItalicRomanOn = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_ITALIC_CJK_ROMAN
CjkItalicRomanOff = 3for #HB_AAT_LAYOUT_FEATURE_TYPE_ITALIC_CJK_ROMAN
CaseSensitiveLayoutOn = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT
CaseSensitiveLayoutOff = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT
CaseSensitiveSpacingOn = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT
CaseSensitiveSpacingOff = 3for #HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT
AlternateHorizKanaOn = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA
AlternateHorizKanaOff = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA
AlternateVertKanaOn = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA
AlternateVertKanaOff = 3for #HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA
NoStylisticAlternates = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltOneOn = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltOneOff = 3for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltTwoOn = 4for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltTwoOff = 5for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltThreeOn = 6for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltThreeOff = 7for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltFourOn = 8for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltFourOff = 9for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltFiveOn = 10for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltFiveOff = 11for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltSixOn = 12for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltSixOff = 13for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltSevenOn = 14for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltSevenOff = 15for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltEightOn = 16for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltEightOff = 17for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltNineOn = 18for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltNineOff = 19for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltTenOn = 20for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltTenOff = 21for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltElevenOn = 22for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltElevenOff = 23for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltTwelveOn = 24for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltTwelveOff = 25for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltThirteenOn = 26for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltThirteenOff = 27for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltFourteenOn = 28for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltFourteenOff = 29for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltFifteenOn = 30for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltFifteenOff = 31for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltSixteenOn = 32for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltSixteenOff = 33for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltSeventeenOn = 34for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltSeventeenOff = 35for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltEighteenOn = 36for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltEighteenOff = 37for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltNineteenOn = 38for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltNineteenOff = 39for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltTwentyOn = 40for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
StylisticAltTwentyOff = 41for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
ContextualAlternatesOn = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES
ContextualAlternatesOff = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES
SwashAlternatesOn = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES
SwashAlternatesOff = 3for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES
ContextualSwashAlternatesOn = 4for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES
ContextualSwashAlternatesOff = 5for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES
DefaultLowerCase = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE
LowerCaseSmallCaps = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE
LowerCasePetiteCaps = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE
DefaultUpperCase = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE
UpperCaseSmallCaps = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE
UpperCasePetiteCaps = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE
HalfWidthCjkRoman = 0for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE
ProportionalCjkRoman = 1for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE
DefaultCjkRoman = 2for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE
FullWidthCjkRoman = 3for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE
enumhb_aat_layout_feature_type_t

The possible feature types defined for AAT shaping, from Apple Font Feature Registry.

Invalid = 65535Initial, unset feature type
AllTypographic = 0[All Typographic Features](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type0)
Ligatures = 1[Ligatures](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type1)
CursiveConnection = 2[Cursive Connection](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type2)
LetterCase = 3[Letter Case](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type3)
VerticalSubstitution = 4[Vertical Substitution](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type4)
LinguisticRearrangement = 5[Linguistic Rearrangement](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type5)
NumberSpacing = 6[Number Spacing](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type6)
SmartSwashType = 8[Smart Swash](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type8)
DiacriticsType = 9[Diacritics](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type9)
VerticalPosition = 10[Vertical Position](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type10)
Fractions = 11[Fractions](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type11)
OverlappingCharactersType = 13[Overlapping Characters](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type13)
TypographicExtras = 14[Typographic Extras](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type14)
MathematicalExtras = 15[Mathematical Extras](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type15)
OrnamentSetsType = 16[Ornament Sets](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type16)
CharacterAlternatives = 17[Character Alternatives](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type17)
DesignComplexityType = 18[Design Complexity](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type18)
StyleOptions = 19[Style Options](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type19)
CharacterShape = 20[Character Shape](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type20)
NumberCase = 21[Number Case](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type21)
TextSpacing = 22[Text Spacing](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type22)
Transliteration = 23[Transliteration](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type23)
AnnotationType = 24[Annotation](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type24)
KanaSpacingType = 25[Kana Spacing](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type25)
IdeographicSpacingType = 26[Ideographic Spacing](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type26)
UnicodeDecompositionType = 27[Unicode Decomposition](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type27)
RubyKana = 28[Ruby Kana](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type28)
CjkSymbolAlternativesType = 29[CJK Symbol Alternatives](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type29)
IdeographicAlternativesType = 30[Ideographic Alternatives](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type30)
CjkVerticalRomanPlacementType = 31[CJK Vertical Roman Placement](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type31)
ItalicCjkRoman = 32[Italic CJK Roman](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type32)
CaseSensitiveLayout = 33[Case Sensitive Layout](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type33)
AlternateKana = 34[Alternate Kana](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type34)
StylisticAlternatives = 35[Stylistic Alternatives](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type35)
ContextualAlternatives = 36[Contextual Alternatives](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type36)
LowerCase = 37[Lower Case](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type37)
UpperCase = 38[Upper Case](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type38)
LanguageTagType = 39[Language Tag](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type39)
CjkRomanSpacingType = 103[CJK Roman Spacing](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type103)
enumhb_buffer_cluster_level_t

Data type for holding HarfBuzz's clustering behavior options. The cluster level dictates one aspect of how HarfBuzz will treat non-base characters during shaping.

In @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES, non-base characters are merged into the cluster of the base character that precedes them.

In @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS, non-base characters are initially assigned their own cluster values, which are not merged into preceding base clusters. This allows HarfBuzz to perform additional operations like reorder sequences of adjacent marks.

@HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES is the default, because it maintains backward compatibility with older versions of HarfBuzz. New client programs that do not need to maintain such backward compatibility are recommended to use @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS instead of the default.

MonotoneGraphemes = 0Return cluster values grouped by graphemes into monotone order.
MonotoneCharacters = 1Return cluster values grouped into monotone order.
Characters = 2Don't group cluster values.
Default = 0Default cluster level, equal to @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES.
enumhb_buffer_content_type_t

The type of #hb_buffer_t contents.

Invalid = 0Initial value for new buffer.
Unicode = 1The buffer contains input characters (before shaping).
Glyphs = 2The buffer contains output glyphs (after shaping).
enumhb_buffer_diff_flags_t : uint

Flags from comparing two #hb_buffer_t's.

Buffer with different #hb_buffer_content_type_t cannot be meaningfully compared in any further detail.

For buffers with differing length, the per-glyph comparison is not attempted, though we do still scan reference buffer for dotted circle and .notdef glyphs.

If the buffers have the same length, we compare them glyph-by-glyph and report which aspect(s) of the glyph info/position are different.

Equal = 0equal buffers.
ContentTypeMismatch = 1buffers with different #hb_buffer_content_type_t.
LengthMismatch = 2buffers with differing length.
NotdefPresent = 4`.notdef` glyph is present in the reference buffer.
DottedCirclePresent = 8dotted circle glyph is present in the reference buffer.
CodepointMismatch = 16difference in #hb_glyph_info_t.codepoint
ClusterMismatch = 32difference in #hb_glyph_info_t.cluster
GlyphFlagsMismatch = 64difference in #hb_glyph_flags_t.
PositionMismatch = 128difference in #hb_glyph_position_t.
enumhb_buffer_flags_t : uint

Flags for #hb_buffer_t.

Default = 0the default buffer flag.
Bot = 1flag 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...
Eot = 2flag indicating that special handling of the end of text paragraph can be applied to this buffer, similar to @HB_BUFFER_FLAG_BOT.
PreserveDefaultIgnorables = 4flag 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 zero...
RemoveDefaultIgnorables = 8flag 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 advanc...
DoNotInsertDottedCircle = 16flag indicating that a dotted circle should not be inserted in the rendering of incorrect character sequences (such at <0905 093E>). Since: 2.4.0
Verify = 32flag indicating that the [harfbuzz.global.shape] call and its variants should perform various verification processes on the results of the shaping operation on the buffer. If the verification fail...
ProduceUnsafeToConcat = 64flag indicating that the @HB_GLYPH_FLAG_UNSAFE_TO_CONCAT glyph-flag should be produced by the shaper. By default it will not be produced since it incurs a cost. Since: 4.0.0
ProduceSafeToInsertTatweel = 128flag indicating that the @HB_GLYPH_FLAG_SAFE_TO_INSERT_TATWEEL glyph-flag should be produced by the shaper. By default it will not be produced. Since: 5.1.0
Defined = 255All currently defined flags: Since: 4.4.0
enumhb_buffer_serialize_flags_t : uint

Flags that control what glyph information are serialized in harfbuzz.global.bufferSerializeGlyphs.

Default = 0serialize glyph names, clusters and positions.
NoClusters = 1do not serialize glyph cluster.
NoPositions = 2do not serialize glyph position information.
NoGlyphNames = 4do no serialize glyph name.
GlyphExtents = 8serialize glyph extents.
GlyphFlags = 16serialize glyph flags. Since: 1.5.0
NoAdvances = 32do not serialize glyph advances, glyph offsets will reflect absolute glyph positions. Since: 1.8.0
Defined = 63All currently defined flags. Since: 4.4.0
enumhb_buffer_serialize_format_t

The buffer serialization and de-serialization format used in harfbuzz.global.bufferSerializeGlyphs and harfbuzz.global.bufferDeserializeGlyphs.

Text = 1413830740a human-readable, plain text format.
Json = 1246973774a machine-readable JSON format.
Invalid = 0invalid format.
enumhb_direction_t

The direction of a text segment or buffer.

A segment can also be tested for horizontal or vertical orientation (irrespective of specific direction) with HB_DIRECTION_IS_HORIZONTAL() or HB_DIRECTION_IS_VERTICAL().

Invalid = 0Initial, unset direction.
Ltr = 4Text is set horizontally from left to right.
Rtl = 5Text is set horizontally from right to left.
Ttb = 6Text is set vertically from top to bottom.
Btt = 7Text is set vertically from bottom to top.
enumhb_glyph_flags_t : uint

Flags for #hb_glyph_info_t.

UnsafeToBreak = 1Indicates 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...
UnsafeToConcat = 2Indicates that if input text is changed on one side of the beginning of the cluster this glyph is part of, then the shaping results for the other side might change. Note that the absence of this fl...
SafeToInsertTatweel = 4In scripts that use elongation (Arabic, Mongolian, Syriac, etc.), this flag signifies that it is safe to insert a U+0640 TATWEEL character before this cluster for elongation. This flag does not det...
Defined = 7All the currently defined flags.
enumhb_memory_mode_t

Data type holding the memory modes available to client programs.

Regarding these various memory-modes:

  • In no case shall the HarfBuzz client modify memory that is passed to HarfBuzz in a blob. If there is any such possibility, @HB_MEMORY_MODE_DUPLICATE should be used such that HarfBuzz makes a copy immediately,
  • Use @HB_MEMORY_MODE_READONLY otherwise, unless you really really really know what you are doing,
  • @HB_MEMORY_MODE_WRITABLE is appropriate if you really made a copy of data solely for the purpose of passing to HarfBuzz and doing that just once (no reuse!),
  • If the font is mmap()ed, it's okay to use @HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE, however, using that mode correctly is very tricky. Use @HB_MEMORY_MODE_READONLY instead.
Duplicate = 0HarfBuzz immediately makes a copy of the data.
Readonly = 1HarfBuzz client will never modify the data, and HarfBuzz will never modify the data.
Writable = 2HarfBuzz client made a copy of the data solely for HarfBuzz, so HarfBuzz may modify the data.
ReadonlyMayMakeWritable = 3See above
enumhb_ot_color_palette_flags_t : uint

Flags that describe the properties of color palette.

Default = 0Default indicating that there is nothing special to note about a color palette.
UsableWithLightBackground = 1Flag indicating that the color palette is appropriate to use when displaying the font on a light background such as white.
UsableWithDarkBackground = 2Flag indicating that the color palette is appropriate to use when displaying the font on a dark background such as black.
enumhb_ot_layout_baseline_tag_t

Baseline tags from Baseline Tags registry.

Roman = 1919905134The 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 al...
Hanging = 1751215719The 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 ot...
IdeoFaceBottomOrLeft = 1768121954Ideographic character face bottom or left edge, if the direction is horizontal or vertical, respectively.
IdeoFaceTopOrRight = 1768121972Ideographic character face top or right edge, if the direction is horizontal or vertical, respectively.
IdeoFaceCentral = 1231251043The center of the ideographic character face. Since: 4.0.0
IdeoEmboxBottomOrLeft = 1768187247Ideographic em-box bottom or left edge, if the direction is horizontal or vertical, respectively.
IdeoEmboxTopOrRight = 1768191088Ideographic em-box top or right edge baseline,
IdeoEmboxCentral = 1231315813The center of the ideographic em-box. Since: 4.0.0 if the direction is horizontal or vertical, respectively.
Math = 1835103336The baseline about which mathematical characters are centered. In vertical writing mode when mathematical characters rotated 90 degrees clockwise, are centered.
enumhb_ot_layout_glyph_class_t

The GDEF classes defined for glyphs.

Unclassified = 0Glyphs not matching the other classifications
BaseGlyph = 1Spacing, single characters, capable of accepting marks
Ligature = 2Glyphs that represent ligation of multiple characters
Mark = 3Non-spacing, combining glyphs that represent marks
Component = 4Spacing glyphs that represent part of a single character
enumhb_ot_math_constant_t

The 'MATH' table constants, refer to OpenType documentation For more explanations.

ScriptPercentScaleDown = 0scriptPercentScaleDown
ScriptScriptPercentScaleDown = 1scriptScriptPercentScaleDown
DelimitedSubFormulaMinHeight = 2delimitedSubFormulaMinHeight
DisplayOperatorMinHeight = 3displayOperatorMinHeight
MathLeading = 4mathLeading
AxisHeight = 5axisHeight
AccentBaseHeight = 6accentBaseHeight
FlattenedAccentBaseHeight = 7flattenedAccentBaseHeight
SubscriptShiftDown = 8subscriptShiftDown
SubscriptTopMax = 9subscriptTopMax
SubscriptBaselineDropMin = 10subscriptBaselineDropMin
SuperscriptShiftUp = 11superscriptShiftUp
SuperscriptShiftUpCramped = 12superscriptShiftUpCramped
SuperscriptBottomMin = 13superscriptBottomMin
SuperscriptBaselineDropMax = 14superscriptBaselineDropMax
SubSuperscriptGapMin = 15subSuperscriptGapMin
SuperscriptBottomMaxWithSubscript = 16superscriptBottomMaxWithSubscript
SpaceAfterScript = 17spaceAfterScript
UpperLimitGapMin = 18upperLimitGapMin
UpperLimitBaselineRiseMin = 19upperLimitBaselineRiseMin
LowerLimitGapMin = 20lowerLimitGapMin
LowerLimitBaselineDropMin = 21lowerLimitBaselineDropMin
StackTopShiftUp = 22stackTopShiftUp
StackTopDisplayStyleShiftUp = 23stackTopDisplayStyleShiftUp
StackBottomShiftDown = 24stackBottomShiftDown
StackBottomDisplayStyleShiftDown = 25stackBottomDisplayStyleShiftDown
StackGapMin = 26stackGapMin
StackDisplayStyleGapMin = 27stackDisplayStyleGapMin
StretchStackTopShiftUp = 28stretchStackTopShiftUp
StretchStackBottomShiftDown = 29stretchStackBottomShiftDown
StretchStackGapAboveMin = 30stretchStackGapAboveMin
StretchStackGapBelowMin = 31stretchStackGapBelowMin
FractionNumeratorShiftUp = 32fractionNumeratorShiftUp
FractionNumeratorDisplayStyleShiftUp = 33fractionNumeratorDisplayStyleShiftUp
FractionDenominatorShiftDown = 34fractionDenominatorShiftDown
FractionDenominatorDisplayStyleShiftDown = 35fractionDenominatorDisplayStyleShiftDown
FractionNumeratorGapMin = 36fractionNumeratorGapMin
FractionNumDisplayStyleGapMin = 37fractionNumDisplayStyleGapMin
FractionRuleThickness = 38fractionRuleThickness
FractionDenominatorGapMin = 39fractionDenominatorGapMin
FractionDenomDisplayStyleGapMin = 40fractionDenomDisplayStyleGapMin
SkewedFractionHorizontalGap = 41skewedFractionHorizontalGap
SkewedFractionVerticalGap = 42skewedFractionVerticalGap
OverbarVerticalGap = 43overbarVerticalGap
OverbarRuleThickness = 44overbarRuleThickness
OverbarExtraAscender = 45overbarExtraAscender
UnderbarVerticalGap = 46underbarVerticalGap
UnderbarRuleThickness = 47underbarRuleThickness
UnderbarExtraDescender = 48underbarExtraDescender
RadicalVerticalGap = 49radicalVerticalGap
RadicalDisplayStyleVerticalGap = 50radicalDisplayStyleVerticalGap
RadicalRuleThickness = 51radicalRuleThickness
RadicalExtraAscender = 52radicalExtraAscender
RadicalKernBeforeDegree = 53radicalKernBeforeDegree
RadicalKernAfterDegree = 54radicalKernAfterDegree
RadicalDegreeBottomRaisePercent = 55radicalDegreeBottomRaisePercent
enumhb_ot_math_glyph_part_flags_t : uint

Flags for math glyph parts.

Extender = 1This is an extender glyph part that can be repeated to reach the desired length.
enumhb_ot_math_kern_t

The math kerning-table types defined for the four corners of a glyph.

TopRight = 0The top right corner of the glyph.
TopLeft = 1The top left corner of the glyph.
BottomRight = 2The bottom right corner of the glyph.
BottomLeft = 3The bottom left corner of the glyph.
enumhb_ot_meta_tag_t
DesignLanguages = 1684827751Design languages. Text, using only Basic Latin (ASCII) characters. Indicates languages and/or scripts for the user audiences that the font was primarily designed for.
SupportedLanguages = 1936485991Supported languages. Text, using only Basic Latin (ASCII) characters. Indicates languages and/or scripts that the font is declared to be capable of supporting.
enumhb_ot_metrics_tag_t

Metric tags corresponding to MVAR Value Tags

HorizontalAscender = 1751216995horizontal ascender.
HorizontalDescender = 1751413603horizontal descender.
HorizontalLineGap = 1751934832horizontal line gap.
HorizontalClippingAscent = 1751346273horizontal clipping ascent.
HorizontalClippingDescent = 1751346276horizontal clipping descent.
VerticalAscender = 1986098019vertical ascender.
VerticalDescender = 1986294627vertical descender.
VerticalLineGap = 1986815856vertical line gap.
HorizontalCaretRise = 1751347827horizontal caret rise.
HorizontalCaretRun = 1751347822horizontal caret run.
HorizontalCaretOffset = 1751347046horizontal caret offset.
VerticalCaretRise = 1986228851vertical caret rise.
VerticalCaretRun = 1986228846vertical caret run.
VerticalCaretOffset = 1986228070vertical caret offset.
XHeight = 2020108148x height.
CapHeight = 1668311156cap height.
SubscriptEmXSize = 1935833203subscript em x size.
SubscriptEmYSize = 1935833459subscript em y size.
SubscriptEmXOffset = 1935833199subscript em x offset.
SubscriptEmYOffset = 1935833455subscript em y offset.
SuperscriptEmXSize = 1936750707superscript em x size.
SuperscriptEmYSize = 1936750963superscript em y size.
SuperscriptEmXOffset = 1936750703superscript em x offset.
SuperscriptEmYOffset = 1936750959superscript em y offset.
StrikeoutSize = 1937011315strikeout size.
StrikeoutOffset = 1937011311strikeout offset.
UnderlineSize = 1970168947underline size.
UnderlineOffset = 1970168943underline offset.
enumhb_ot_name_id_predefined_t

An enum type representing the pre-defined name IDs.

For more information on these fields, see the OpenType spec.

Copyright = 0Copyright notice
FontFamily = 1Font Family name
FontSubfamily = 2Font Subfamily name
UniqueId = 3Unique font identifier
FullName = 4Full font name that reflects all family and relevant subfamily descriptors
VersionString = 5Version string
PostscriptName = 6PostScript name for the font
Trademark = 7Trademark
Manufacturer = 8Manufacturer Name
Designer = 9Designer
Description = 10Description
VendorUrl = 11URL of font vendor
DesignerUrl = 12URL of typeface designer
License = 13License Description
LicenseUrl = 14URL where additional licensing information can be found
TypographicFamily = 16Typographic Family name
TypographicSubfamily = 17Typographic Subfamily name
MacFullName = 18Compatible Full Name for MacOS
SampleText = 19Sample text
CidFindfontName = 20PostScript CID findfont name
WwsFamily = 21WWS Family Name
WwsSubfamily = 22WWS Subfamily Name
LightBackground = 23Light Background Palette
DarkBackground = 24Dark Background Palette
VariationsPsPrefix = 25Variations PostScript Name Prefix
Invalid = 65535Value to represent a nonexistent name ID.
enumhb_ot_var_axis_flags_t : uint

Flags for #hb_ot_var_axis_info_t.

Hidden = 1The axis should not be exposed directly in user interfaces.
enumhb_paint_composite_mode_t

The values of this enumeration describe the compositing modes that can be used when combining temporary redirected drawing with the backdrop.

See the OpenType spec COLR section for details.

Clear = 0clear destination layer (bounded)
Src = 1replace destination layer (bounded)
Dest = 2ignore the source
SrcOver = 3draw source layer on top of destination layer (bounded)
DestOver = 4draw destination on top of source
SrcIn = 5draw source where there was destination content (unbounded)
DestIn = 6leave destination only where there was source content (unbounded)
SrcOut = 7draw source where there was no destination content (unbounded)
DestOut = 8leave destination only where there was no source content
SrcAtop = 9draw source on top of destination content and only there
DestAtop = 10leave destination on top of source content and only there (unbounded)
Xor = 11source and destination are shown where there is only one of them
Plus = 12source and destination layers are accumulated
Screen = 13source and destination are complemented and multiplied. This causes the result to be at least as light as the lighter inputs.
Overlay = 14multiplies or screens, depending on the lightness of the destination color.
Darken = 15replaces the destination with the source if it is darker, otherwise keeps the source.
Lighten = 16replaces the destination with the source if it is lighter, otherwise keeps the source.
ColorDodge = 17brightens the destination color to reflect the source color.
ColorBurn = 18darkens the destination color to reflect the source color.
HardLight = 19Multiplies or screens, dependent on source color.
SoftLight = 20Darkens or lightens, dependent on source color.
Difference = 21Takes the difference of the source and destination color.
Exclusion = 22Produces an effect similar to difference, but with lower contrast.
Multiply = 23source and destination layers are multiplied. This causes the result to be at least as dark as the darker inputs.
HslHue = 24Creates a color with the hue of the source and the saturation and luminosity of the target.
HslSaturation = 25Creates a color with the saturation of the source and the hue and luminosity of the target. Painting with this mode onto a gray area produces no change.
HslColor = 26Creates a color with the hue and saturation of the source and the luminosity of the target. This preserves the gray levels of the target and is useful for coloring monochrome images or tinting colo...
HslLuminosity = 27Creates a color with the luminosity of the source and the hue and saturation of the target. This produces an inverse effect to @HB_PAINT_COMPOSITE_MODE_HSL_COLOR.
enumhb_paint_extend_t

The values of this enumeration determine how color values outside the minimum and maximum defined offset on a #hb_color_line_t are determined.

See the OpenType spec COLR section for details.

Pad = 0Outside the defined interval, the color of the closest color stop is used.
Repeat = 1The color line is repeated over repeated multiples of the defined interval
Reflect = 2The color line is repeated over repeated intervals, as for the repeat mode. However, in each repeated interval, the ordering of color stops is the reverse of the adjacent interval.
enumhb_script_t

Data type for scripts. Each #hb_script_t's value is an #hb_tag_t corresponding to the four-letter values defined by ISO 15924.

See also the Script (sc) property of the Unicode Character Database.

Common = 1517910393`Zyyy`
Inherited = 1516858984`Zinh`
Unknown = 1517976186`Zzzz`
Arabic = 1098015074`Arab`
Armenian = 1098018158`Armn`
Bengali = 1113943655`Beng`
Cyrillic = 1132032620`Cyrl`
Devanagari = 1147500129`Deva`
Georgian = 1197830002`Geor`
Greek = 1198679403`Grek`
Gujarati = 1198877298`Gujr`
Gurmukhi = 1198879349`Guru`
Hangul = 1214344807`Hang`
Han = 1214344809`Hani`
Hebrew = 1214603890`Hebr`
Hiragana = 1214870113`Hira`
Kannada = 1265525857`Knda`
Katakana = 1264676449`Kana`
Lao = 1281453935`Laoo`
Latin = 1281455214`Latn`
Malayalam = 1298954605`Mlym`
Oriya = 1332902241`Orya`
Tamil = 1415671148`Taml`
Telugu = 1415933045`Telu`
Thai = 1416126825`Thai`
Tibetan = 1416192628`Tibt`
Bopomofo = 1114599535`Bopo`
Braille = 1114792297`Brai`
CanadianSyllabics = 1130458739`Cans`
Cherokee = 1130915186`Cher`
Ethiopic = 1165256809`Ethi`
Khmer = 1265134962`Khmr`
Mongolian = 1299148391`Mong`
Myanmar = 1299803506`Mymr`
Ogham = 1332175213`Ogam`
Runic = 1383427698`Runr`
Sinhala = 1399418472`Sinh`
Syriac = 1400468067`Syrc`
Thaana = 1416126817`Thaa`
Yi = 1500080489`Yiii`
Deseret = 1148416628`Dsrt`
Gothic = 1198486632`Goth`
OldItalic = 1232363884`Ital`
Buhid = 1114990692`Buhd`
Hanunoo = 1214344815`Hano`
Tagalog = 1416064103`Tglg`
Tagbanwa = 1415669602`Tagb`
Cypriot = 1131442804`Cprt`
Limbu = 1281977698`Limb`
LinearB = 1281977954`Linb`
Osmanya = 1332964705`Osma`
Shavian = 1399349623`Shaw`
TaiLe = 1415670885`Tale`
Ugaritic = 1432838514`Ugar`
Buginese = 1114990441`Bugi`
Coptic = 1131376756`Copt`
Glagolitic = 1198285159`Glag`
Kharoshthi = 1265131890`Khar`
NewTaiLue = 1415670901`Talu`
OldPersian = 1483761007`Xpeo`
SylotiNagri = 1400466543`Sylo`
Tifinagh = 1415999079`Tfng`
Balinese = 1113681001`Bali`
Cuneiform = 1483961720`Xsux`
Nko = 1315663727`Nkoo`
PhagsPa = 1349017959`Phag`
Phoenician = 1349021304`Phnx`
Carian = 1130459753`Cari`
Cham = 1130914157`Cham`
KayahLi = 1264675945`Kali`
Lepcha = 1281716323`Lepc`
Lycian = 1283023721`Lyci`
Lydian = 1283023977`Lydi`
OlChiki = 1332503403`Olck`
Rejang = 1382706791`Rjng`
Saurashtra = 1398895986`Saur`
Sundanese = 1400204900`Sund`
Vai = 1449224553`Vaii`
Avestan = 1098281844`Avst`
Bamum = 1113681269`Bamu`
EgyptianHieroglyphs = 1164409200`Egyp`
ImperialAramaic = 1098018153`Armi`
InscriptionalPahlavi = 1349020777`Phli`
InscriptionalParthian = 1349678185`Prti`
Javanese = 1247901281`Java`
Kaithi = 1265920105`Kthi`
Lisu = 1281979253`Lisu`
MeeteiMayek = 1299473769`Mtei`
OldSouthArabian = 1398895202`Sarb`
OldTurkic = 1332898664`Orkh`
Samaritan = 1398893938`Samr`
TaiTham = 1281453665`Lana`
TaiViet = 1415673460`Tavt`
Batak = 1113683051`Batk`
Brahmi = 1114792296`Brah`
Mandaic = 1298230884`Mand`
Chakma = 1130457965`Cakm`
MeroiticCursive = 1298494051`Merc`
MeroiticHieroglyphs = 1298494063`Mero`
Miao = 1349284452`Plrd`
Sharada = 1399353956`Shrd`
SoraSompeng = 1399812705`Sora`
Takri = 1415670642`Takr`
BassaVah = 1113682803`Bass`, Since: 0.9.30
CaucasianAlbanian = 1097295970`Aghb`, Since: 0.9.30
Duployan = 1148547180`Dupl`, Since: 0.9.30
Elbasan = 1164730977`Elba`, Since: 0.9.30
Grantha = 1198678382`Gran`, Since: 0.9.30
Khojki = 1265135466`Khoj`, Since: 0.9.30
Khudawadi = 1399418468`Sind`, Since: 0.9.30
LinearA = 1281977953`Lina`, Since: 0.9.30
Mahajani = 1298229354`Mahj`, Since: 0.9.30
Manichaean = 1298230889`Mani`, Since: 0.9.30
MendeKikakui = 1298493028`Mend`, Since: 0.9.30
Modi = 1299145833`Modi`, Since: 0.9.30
Mro = 1299345263`Mroo`, Since: 0.9.30
Nabataean = 1315070324`Nbat`, Since: 0.9.30
OldNorthArabian = 1315009122`Narb`, Since: 0.9.30
OldPermic = 1348825709`Perm`, Since: 0.9.30
PahawhHmong = 1215131239`Hmng`, Since: 0.9.30
Palmyrene = 1348562029`Palm`, Since: 0.9.30
PauCinHau = 1348564323`Pauc`, Since: 0.9.30
PsalterPahlavi = 1349020784`Phlp`, Since: 0.9.30
Siddham = 1399415908`Sidd`, Since: 0.9.30
Tirhuta = 1416196712`Tirh`, Since: 0.9.30
WarangCiti = 1466004065`Wara`, Since: 0.9.30
Ahom = 1097363309`Ahom`, Since: 0.9.30
AnatolianHieroglyphs = 1215067511`Hluw`, Since: 0.9.30
Hatran = 1214346354`Hatr`, Since: 0.9.30
Multani = 1299541108`Mult`, Since: 0.9.30
OldHungarian = 1215655527`Hung`, Since: 0.9.30
Signwriting = 1399287415`Sgnw`, Since: 0.9.30
Adlam = 1097100397`Adlm`, Since: 1.3.0
Bhaiksuki = 1114139507`Bhks`, Since: 1.3.0
Marchen = 1298231907`Marc`, Since: 1.3.0
Osage = 1332963173`Osge`, Since: 1.3.0
Tangut = 1415671399`Tang`, Since: 1.3.0
Newa = 1315272545`Newa`, Since: 1.3.0
MasaramGondi = 1198485101`Gonm`, Since: 1.6.0
Nushu = 1316186229`Nshu`, Since: 1.6.0
Soyombo = 1399814511`Soyo`, Since: 1.6.0
ZanabazarSquare = 1516334690`Zanb`, Since: 1.6.0
Dogra = 1148151666`Dogr`, Since: 1.8.0
GunjalaGondi = 1198485095`Gong`, Since: 1.8.0
HanifiRohingya = 1383032935`Rohg`, Since: 1.8.0
Makasar = 1298230113`Maka`, Since: 1.8.0
Medefaidrin = 1298490470`Medf`, Since: 1.8.0
OldSogdian = 1399809903`Sogo`, Since: 1.8.0
Sogdian = 1399809892`Sogd`, Since: 1.8.0
Elymaic = 1164736877`Elym`, Since: 2.4.0
Nandinagari = 1315008100`Nand`, Since: 2.4.0
NyiakengPuachueHmong = 1215131248`Hmnp`, Since: 2.4.0
Wancho = 1466132591`Wcho`, Since: 2.4.0
Chorasmian = 1130918515`Chrs`, Since: 2.6.7
DivesAkuru = 1147756907`Diak`, Since: 2.6.7
KhitanSmallScript = 1265202291`Kits`, Since: 2.6.7
Yezidi = 1499822697`Yezi`, Since: 2.6.7
CyproMinoan = 1131441518`Cpmn`, Since: 3.0.0
OldUyghur = 1333094258`Ougr`, Since: 3.0.0
Tangsa = 1416524641`Tnsa`, Since: 3.0.0
Toto = 1416590447`Toto`, Since: 3.0.0
Vithkuqi = 1449751656`Vith`, Since: 3.0.0
Math = 1517122664`Zmth`, Since: 3.4.0
Kawi = 1264678761`Kawi`, Since: 5.2.0
NagMundari = 1315006317`Nagm`, Since: 5.2.0
Invalid = 0No script set
enumhb_style_tag_t
Italic = 1769234796Used to vary between non-italic and italic. A value of 0 can be interpreted as "Roman" (non-italic); a value of 1 can be interpreted as (fully) italic.
OpticalSize = 1869640570Used to vary design to suit different text sizes. Non-zero. Values can be interpreted as text size, in points.
SlantAngle = 1936486004Used to vary between upright and slanted text. Values must be greater than -90 and less than +90. Values can be interpreted as the angle, in counter-clockwise degrees, of oblique slant from whateve...
SlantRatio = 1399615092same as @HB_STYLE_TAG_SLANT_ANGLE expression as ratio. Typical right-leaning Italic fonts have a positive slant ratio (typically around 0.2)
Width = 2003072104Used to vary width of text from narrower to wider. Non-zero. Values can be interpreted as a percentage of whatever the font designer considers “normal width” for that font design.
Weight = 2003265652Used to vary stroke thicknesses or other design details to give variation from lighter to blacker. Values can be interpreted in direct comparison to values for usWeightClass in the OS/2 table, or t...
enumhb_unicode_combining_class_t

Data type for the Canonical_Combining_Class (ccc) property from the Unicode Character Database.

<note>

Note

newer versions of Unicode may add new values.

Client programs should be ready to handle any value in the 0..254 range being returned from harfbuzz.global.unicodeCombiningClass.</note>

NotReordered = 0Spacing and enclosing marks; also many vowel and consonant signs, even if nonspacing
Overlay = 1Marks which overlay a base letter or symbol
Nukta = 7Diacritic nukta marks in Brahmi-derived scripts
KanaVoicing = 8Hiragana/Katakana voicing marks
Virama = 9Viramas
Ccc10 = 10[Hebrew]
Ccc11 = 11[Hebrew]
Ccc12 = 12[Hebrew]
Ccc13 = 13[Hebrew]
Ccc14 = 14[Hebrew]
Ccc15 = 15[Hebrew]
Ccc16 = 16[Hebrew]
Ccc17 = 17[Hebrew]
Ccc18 = 18[Hebrew]
Ccc19 = 19[Hebrew]
Ccc20 = 20[Hebrew]
Ccc21 = 21[Hebrew]
Ccc22 = 22[Hebrew]
Ccc23 = 23[Hebrew]
Ccc24 = 24[Hebrew]
Ccc25 = 25[Hebrew]
Ccc26 = 26[Hebrew]
Ccc27 = 27[Arabic]
Ccc28 = 28[Arabic]
Ccc29 = 29[Arabic]
Ccc30 = 30[Arabic]
Ccc31 = 31[Arabic]
Ccc32 = 32[Arabic]
Ccc33 = 33[Arabic]
Ccc34 = 34[Arabic]
Ccc35 = 35[Arabic]
Ccc36 = 36[Syriac]
Ccc84 = 84[Telugu]
Ccc91 = 91[Telugu]
Ccc103 = 103[Thai]
Ccc107 = 107[Thai]
Ccc118 = 118[Lao]
Ccc122 = 122[Lao]
Ccc129 = 129[Tibetan]
Ccc130 = 130[Tibetan]
Ccc132 = 132[Tibetan] Since: 7.2.0
AttachedBelowLeft = 200Marks attached at the bottom left
AttachedBelow = 202Marks attached directly below
AttachedAbove = 214Marks attached directly above
AttachedAboveRight = 216Marks attached at the top right
BelowLeft = 218Distinct marks at the bottom left
Below = 220Distinct marks directly below
BelowRight = 222Distinct marks at the bottom right
Left = 224Distinct marks to the left
Right = 226Distinct marks to the right
AboveLeft = 228Distinct marks at the top left
Above = 230Distinct marks directly above
AboveRight = 232Distinct marks at the top right
DoubleBelow = 233Distinct marks subtending two bases
DoubleAbove = 234Distinct marks extending above two bases
IotaSubscript = 240Greek iota subscript only
Invalid = 255Invalid combining class
enumhb_unicode_general_category_t

Data type for the "General_Category" (gc) property from the Unicode Character Database.

Control = 0[Cc]
Format = 1[Cf]
Unassigned = 2[Cn]
PrivateUse = 3[Co]
Surrogate = 4[Cs]
LowercaseLetter = 5[Ll]
ModifierLetter = 6[Lm]
OtherLetter = 7[Lo]
TitlecaseLetter = 8[Lt]
UppercaseLetter = 9[Lu]
SpacingMark = 10[Mc]
EnclosingMark = 11[Me]
NonSpacingMark = 12[Mn]
DecimalNumber = 13[Nd]
LetterNumber = 14[Nl]
OtherNumber = 15[No]
ConnectPunctuation = 16[Pc]
DashPunctuation = 17[Pd]
ClosePunctuation = 18[Pe]
FinalPunctuation = 19[Pf]
InitialPunctuation = 20[Pi]
OtherPunctuation = 21[Po]
OpenPunctuation = 22[Ps]
CurrencySymbol = 23[Sc]
ModifierSymbol = 24[Sk]
MathSymbol = 25[Sm]
OtherSymbol = 26[So]
LineSeparator = 27[Zl]
ParagraphSeparator = 28[Zp]
SpaceSeparator = 29[Zs]
structhb_aat_layout_feature_selector_info_t

Structure representing a setting for an #hb_aat_layout_feature_type_t.

Fields
hb_ot_name_id_t nameIdThe selector's name identifier
hb_aat_layout_feature_selector_t enableThe value to turn the selector on
hb_aat_layout_feature_selector_t disableThe value to turn the selector off
uint reserved
structhb_blob_t

Data type for blobs. A blob wraps a chunk of binary data and facilitates its lifecycle management between a client program and HarfBuzz.

structhb_buffer_t

The main structure holding the input text and its properties before shaping, and output glyphs and their information after shaping.

structhb_color_line_t

A struct containing color information for a gradient.

Fields
void * data
hb_color_line_get_color_stops_func_t getColorStops
void * getColorStopsUserData
hb_color_line_get_extend_func_t getExtend
void * getExtendUserData
void * reserved0
void * reserved1
void * reserved2
void * reserved3
void * reserved5
void * reserved6
void * reserved7
void * reserved8
structhb_color_stop_t

Information about a color stop on a color line.

Color lines typically have offsets ranging between 0 and 1, but that is not required.

Note

despite @color being unpremultiplied here, interpolation in

gradients shall happen in premultiplied space. See the OpenType spec COLR section for details.

Fields
float offsetthe offset of the color stop
hb_bool_t isForegroundwhether the color is the foreground
hb_color_t colorthe color, unpremultiplied
structhb_draw_funcs_t

Glyph draw callbacks.

#hb_draw_move_to_func_t, #hb_draw_line_to_func_t and #hb_draw_cubic_to_func_t calls are necessary to be defined but we translate #hb_draw_quadratic_to_func_t calls to #hb_draw_cubic_to_func_t if the callback isn't defined.

structhb_face_t

Data type for holding font faces.

structhb_feature_t

The #hb_feature_t is the structure that holds information about requested feature application. The feature will be applied with the given value to all glyphs which are in clusters between @start (inclusive) and @end (exclusive). Setting start to #HB_FEATURE_GLOBAL_START and end to #HB_FEATURE_GLOBAL_END specifies that the feature always applies to the entire buffer.

Fields
hb_tag_t tagThe #hb_tag_t tag of the feature
uint valueThe value of the feature. 0 disables the feature, non-zero (usually 1) enables the feature. For features implemented as lookup type 3 (like 'salt') the @value is a one based index into the alterna...
uint startthe cluster to start applying this feature setting (inclusive).
uint endthe cluster to end applying this feature setting (exclusive).
structhb_font_t

Data type for holding fonts.

structhb_font_extents_t

Font-wide extent values, measured in font units.

Note that typically @ascender is positive and @descender negative, in coordinate systems that grow up.

Fields
hb_position_t ascenderThe height of typographic ascenders.
hb_position_t descenderThe depth of typographic descenders.
hb_position_t lineGapThe suggested line-spacing gap.
hb_position_t reserved9
hb_position_t reserved8
hb_position_t reserved7
hb_position_t reserved6
hb_position_t reserved5
hb_position_t reserved4
hb_position_t reserved3
hb_position_t reserved2
hb_position_t reserved1
structhb_font_funcs_t

Data type containing a set of virtual methods used for working on #hb_font_t font objects.

HarfBuzz provides a lightweight default function for each of the methods in #hb_font_funcs_t. Client programs can implement their own replacements for the individual font functions, as needed, and replace the default by calling the setter for a method.

structhb_glyph_extents_t

Glyph extent values, measured in font units.

Note that @height is negative, in coordinate systems that grow up.

Fields
hb_position_t xBearingDistance from the x-origin to the left extremum of the glyph.
hb_position_t yBearingDistance from the top extremum of the glyph to the y-origin.
hb_position_t widthDistance from the left extremum of the glyph to the right extremum.
hb_position_t heightDistance from the top extremum of the glyph to the bottom extremum.
aliashb_language_t = hb_language_t_st *

Data type for languages. Each #hb_language_t corresponds to a BCP 47 language tag.

structhb_language_t_st
structhb_map_t

Data type for holding integer-to-integer hash maps.

structhb_ot_color_layer_t

Pairs of glyph and color index.

A color index of 0xFFFF does not refer to a palette color, but indicates that the foreground color should be used.

Fields
hb_codepoint_t glyphthe glyph ID of the layer
uint colorIndexthe palette color index of the layer
structhb_ot_math_glyph_part_t

Data type to hold information for a "part" component of a math-variant glyph. Large variants for stretchable math glyphs (such as parentheses) can be constructed on the fly from parts.

Fields
hb_codepoint_t glyphThe glyph index of the variant part
hb_position_t startConnectorLengthThe length of the connector on the starting side of the variant part
hb_position_t endConnectorLengthThe length of the connector on the ending side of the variant part
hb_position_t fullAdvanceThe total advance of the part
hb_ot_math_glyph_part_flags_t flags#hb_ot_math_glyph_part_flags_t flags for the part
structhb_ot_math_glyph_variant_t

Data type to hold math-variant information for a glyph.

Fields
hb_codepoint_t glyphThe glyph index of the variant
hb_position_t advanceThe advance width of the variant
structhb_ot_math_kern_entry_t

Data type to hold math kerning (cut-in) information for a glyph.

Fields
hb_position_t maxCorrectionHeightThe maximum height at which this entry should be used
hb_position_t kernValueThe kern value of the entry
structhb_ot_name_entry_t

Structure representing a name ID in a particular language.

Fields
hb_ot_name_id_t nameIdname ID
hb_var_int_t var
hb_language_t languagelanguage
structhb_ot_var_axis_t

Use #hb_ot_var_axis_info_t instead.

Fields
hb_tag_t tagaxis tag
hb_ot_name_id_t nameIdaxis name identifier
float minValueminimum value of the axis
float defaultValuedefault value of the axis
float maxValuemaximum value of the axis
structhb_ot_var_axis_info_t

Data type for holding variation-axis values.

The minimum, default, and maximum values are in un-normalized, user scales.

<note>

Note

at present, the only flag defined for @flags is

#HB_OT_VAR_AXIS_FLAG_HIDDEN.</note>

Fields
uint axisIndexIndex of the axis in the variation-axis array
hb_tag_t tagThe #hb_tag_t tag identifying the design variation of the axis
hb_ot_name_id_t nameIdThe `name` table Name ID that provides display names for the axis
hb_ot_var_axis_flags_t flagsThe #hb_ot_var_axis_flags_t flags for the axis
float minValueThe minimum value on the variation axis that the font covers
float defaultValueThe position on the variation axis corresponding to the font's defaults
float maxValueThe maximum value on the variation axis that the font covers
uint reserved
structhb_paint_funcs_t

Glyph paint callbacks.

The callbacks assume that the caller maintains a stack of current transforms, clips and intermediate surfaces, as evidenced by the pairs of push/pop callbacks. The push/pop calls will be properly nested, so it is fine to store the different kinds of object on a single stack.

Not all callbacks are required for all kinds of glyphs. For rendering COLRv0 or non-color outline glyphs, the gradient callbacks are not needed, and the composite callback only needs to handle simple alpha compositing (#HB_PAINT_COMPOSITE_MODE_SRC_OVER).

The paint-image callback is only needed for glyphs with image blobs in the CBDT, sbix or SVG tables.

The custom-palette-color callback is only necessary if you want to override colors from the font palette with custom colors.

structhb_segment_properties_t

The structure that holds various text properties of an #hb_buffer_t. Can be set and retrieved using harfbuzz.global.bufferSetSegmentProperties and harfbuzz.global.bufferGetSegmentProperties, respectively.

Fields
hb_direction_t directionthe #hb_direction_t of the buffer, see [harfbuzz.global.bufferSetDirection].
hb_script_t scriptthe #hb_script_t of the buffer, see [harfbuzz.global.bufferSetScript].
hb_language_t languagethe #hb_language_t of the buffer, see [harfbuzz.global.bufferSetLanguage].
void * reserved1
void * reserved2
structhb_set_t

Data type for holding a set of integers. #hb_set_t's are used to gather and contain glyph IDs, Unicode code points, and various other collections of discrete values.

structhb_shape_plan_t

Data type for holding a shaping plan.

Shape plans contain information about how HarfBuzz will shape a particular text segment, based on the segment's properties and the capabilities in the font face in use.

Shape plans can be queried about how shaping will perform, given a set of specific input parameters (script, language, direction, features, etc.).

structhb_unicode_funcs_t

Data type containing a set of virtual methods used for accessing various Unicode character properties.

HarfBuzz provides a default function for each of the methods in #hb_unicode_funcs_t. Client programs can implement their own replacements for the individual Unicode functions, as needed, and replace the default by calling the setter for a method.

structhb_user_data_key_t

Data structure for holding user-data keys.

Fields
char unused
unionhb_var_int_t
Fields
uint u32
int i32
ushort[2] u16
short[2] i16
ubyte[4] u8
byte[4] i8
unionhb_var_num_t
Fields
float f
uint u32
int i32
ushort[2] u16
short[2] i16
ubyte[4] u8
byte[4] i8
structhb_variation_t

Data type for holding variation data. Registered OpenType variation-axis tags are listed in OpenType Axis Tag Registry.

Fields
hb_tag_t tagThe #hb_tag_t tag of the variation-axis name
float valueThe value of the variation axis
structhb_draw_state_t

Current drawing state.

Fields
hb_bool_t pathOpenWhether there is an open path
float pathStartXX component of the start of current path
float pathStartYY component of the start of current path
float currentXX component of current point
float currentYY component of current point
hb_var_num_t reserved1
hb_var_num_t reserved2
hb_var_num_t reserved3
hb_var_num_t reserved4
hb_var_num_t reserved5
hb_var_num_t reserved6
hb_var_num_t reserved7
structhb_glyph_info_t

The #hb_glyph_info_t is the structure that holds information about the glyphs and their relation to input text.

Fields
hb_codepoint_t codepointeither a Unicode code point (before shaping) or a glyph index (after shaping).
hb_mask_t mask
uint clusterthe index of the character in the original text that corresponds to this #hb_glyph_info_t, or whatever the client passes to [harfbuzz.global.bufferAdd]. More than one #hb_glyph_info_t can have the ...
hb_var_int_t var1
hb_var_int_t var2
structhb_glyph_position_t

The #hb_glyph_position_t is the structure that holds the positions of the glyph in both horizontal and vertical directions. All positions in #hb_glyph_position_t are relative to the current point.

Fields
hb_position_t xAdvancehow much the line advances after drawing this glyph when setting text in horizontal direction.
hb_position_t yAdvancehow much the line advances after drawing this glyph when setting text in vertical direction.
hb_position_t xOffsethow much the glyph moves on the X-axis before drawing it, this should not affect how much the line advances.
hb_position_t yOffsethow much the glyph moves on the Y-axis before drawing it, this should not affect how much the line advances.
hb_var_int_t var
aliashb_buffer_message_func_t = hb_bool_t function(hb_buffer_t * buffer, hb_font_t * font, const(char) * message, void * userData)
aliashb_color_line_get_color_stops_func_t = uint function(hb_color_line_t * colorLine, void * colorLineData, uint start, uint * count, hb_color_stop_t * colorStops, void * userData)
aliashb_color_line_get_extend_func_t = hb_paint_extend_t function(hb_color_line_t * colorLine, void * colorLineData, void * userData)
aliashb_destroy_func_t = void function(void * userData)
aliashb_draw_close_path_func_t = void function(hb_draw_funcs_t * dfuncs, void * drawData, hb_draw_state_t * st, void * userData)
aliashb_draw_cubic_to_func_t = void function(hb_draw_funcs_t * dfuncs, void * drawData, hb_draw_state_t * st, float control1X, float control1Y, float control2X, float control2Y, float toX, float toY, void * userData)
aliashb_draw_line_to_func_t = void function(hb_draw_funcs_t * dfuncs, void * drawData, hb_draw_state_t * st, float toX, float toY, void * userData)
aliashb_draw_move_to_func_t = void function(hb_draw_funcs_t * dfuncs, void * drawData, hb_draw_state_t * st, float toX, float toY, void * userData)
aliashb_draw_quadratic_to_func_t = void function(hb_draw_funcs_t * dfuncs, void * drawData, hb_draw_state_t * st, float controlX, float controlY, float toX, float toY, void * userData)
aliashb_font_draw_glyph_func_t = void function(hb_font_t * font, void * fontData, hb_codepoint_t glyph, hb_draw_funcs_t * drawFuncs, void * drawData, void * userData)
aliashb_font_get_font_extents_func_t = hb_bool_t function(hb_font_t * font, void * fontData, hb_font_extents_t * extents, void * userData)
aliashb_font_get_glyph_advance_func_t = hb_position_t function(hb_font_t * font, void * fontData, hb_codepoint_t glyph, void * userData)
aliashb_font_get_glyph_advances_func_t = void function(hb_font_t * font, void * fontData, uint count, const(hb_codepoint_t) * firstGlyph, uint glyphStride, hb_position_t * firstAdvance, uint advanceStride, void * userData)
aliashb_font_get_glyph_contour_point_func_t = hb_bool_t function(hb_font_t * font, void * fontData, hb_codepoint_t glyph, uint pointIndex, hb_position_t * x, hb_position_t * y, void * userData)
aliashb_font_get_glyph_extents_func_t = hb_bool_t function(hb_font_t * font, void * fontData, hb_codepoint_t glyph, hb_glyph_extents_t * extents, void * userData)
aliashb_font_get_glyph_from_name_func_t = hb_bool_t function(hb_font_t * font, void * fontData, const(char) * name, int len, hb_codepoint_t * glyph, void * userData)
aliashb_font_get_glyph_func_t = hb_bool_t function(hb_font_t * font, void * fontData, hb_codepoint_t unicode, hb_codepoint_t variationSelector, hb_codepoint_t * glyph, void * userData)
aliashb_font_get_glyph_kerning_func_t = hb_position_t function(hb_font_t * font, void * fontData, hb_codepoint_t firstGlyph, hb_codepoint_t secondGlyph, void * userData)
aliashb_font_get_glyph_name_func_t = hb_bool_t function(hb_font_t * font, void * fontData, hb_codepoint_t glyph, char * name, uint size, void * userData)
aliashb_font_get_glyph_origin_func_t = hb_bool_t function(hb_font_t * font, void * fontData, hb_codepoint_t glyph, hb_position_t * x, hb_position_t * y, void * userData)
aliashb_font_get_glyph_shape_func_t = void function(hb_font_t * font, void * fontData, hb_codepoint_t glyph, hb_draw_funcs_t * drawFuncs, void * drawData, void * userData)
aliashb_font_get_nominal_glyph_func_t = hb_bool_t function(hb_font_t * font, void * fontData, hb_codepoint_t unicode, hb_codepoint_t * glyph, void * userData)
aliashb_font_get_nominal_glyphs_func_t = uint function(hb_font_t * font, void * fontData, uint count, const(hb_codepoint_t) * firstUnicode, uint unicodeStride, hb_codepoint_t * firstGlyph, uint glyphStride, void * userData)
aliashb_font_get_variation_glyph_func_t = hb_bool_t function(hb_font_t * font, void * fontData, hb_codepoint_t unicode, hb_codepoint_t variationSelector, hb_codepoint_t * glyph, void * userData)
aliashb_font_paint_glyph_func_t = void function(hb_font_t * font, void * fontData, hb_codepoint_t glyph, hb_paint_funcs_t * paintFuncs, void * paintData, uint paletteIndex, hb_color_t foreground, void * userData)
aliashb_paint_color_func_t = void function(hb_paint_funcs_t * funcs, void * paintData, hb_bool_t isForeground, hb_color_t color, void * userData)
aliashb_paint_color_glyph_func_t = hb_bool_t function(hb_paint_funcs_t * funcs, void * paintData, hb_codepoint_t glyph, hb_font_t * font, void * userData)
aliashb_paint_custom_palette_color_func_t = hb_bool_t function(hb_paint_funcs_t * funcs, void * paintData, uint colorIndex, hb_color_t * color, void * userData)
aliashb_paint_image_func_t = hb_bool_t function(hb_paint_funcs_t * funcs, void * paintData, hb_blob_t * image, uint width, uint height, hb_tag_t format, float slant, hb_glyph_extents_t * extents, void * userData)
aliashb_paint_linear_gradient_func_t = void function(hb_paint_funcs_t * funcs, void * paintData, hb_color_line_t * colorLine, float x0, float y0, float x1, float y1, float x2, float y2, void * userData)
aliashb_paint_pop_clip_func_t = void function(hb_paint_funcs_t * funcs, void * paintData, void * userData)
aliashb_paint_pop_group_func_t = void function(hb_paint_funcs_t * funcs, void * paintData, hb_paint_composite_mode_t mode, void * userData)
aliashb_paint_pop_transform_func_t = void function(hb_paint_funcs_t * funcs, void * paintData, void * userData)
aliashb_paint_push_clip_glyph_func_t = void function(hb_paint_funcs_t * funcs, void * paintData, hb_codepoint_t glyph, hb_font_t * font, void * userData)
aliashb_paint_push_clip_rectangle_func_t = void function(hb_paint_funcs_t * funcs, void * paintData, float xmin, float ymin, float xmax, float ymax, void * userData)
aliashb_paint_push_group_func_t = void function(hb_paint_funcs_t * funcs, void * paintData, void * userData)
aliashb_paint_push_transform_func_t = void function(hb_paint_funcs_t * funcs, void * paintData, float xx, float yx, float xy, float yy, float dx, float dy, void * userData)
aliashb_paint_radial_gradient_func_t = void function(hb_paint_funcs_t * funcs, void * paintData, hb_color_line_t * colorLine, float x0, float y0, float r0, float x1, float y1, float r1, void * userData)
aliashb_paint_sweep_gradient_func_t = void function(hb_paint_funcs_t * funcs, void * paintData, hb_color_line_t * colorLine, float x0, float y0, float startAngle, float endAngle, void * userData)
aliashb_reference_table_func_t = hb_blob_t * function(hb_face_t * face, hb_tag_t tag, void * userData)
aliashb_unicode_combining_class_func_t = hb_unicode_combining_class_t function(hb_unicode_funcs_t * ufuncs, hb_codepoint_t unicode, void * userData)
aliashb_unicode_compose_func_t = hb_bool_t function(hb_unicode_funcs_t * ufuncs, hb_codepoint_t a, hb_codepoint_t b, hb_codepoint_t * ab, void * userData)
aliashb_unicode_decompose_compatibility_func_t = uint function(hb_unicode_funcs_t * ufuncs, hb_codepoint_t u, hb_codepoint_t * decomposed, void * userData)
aliashb_unicode_decompose_func_t = hb_bool_t function(hb_unicode_funcs_t * ufuncs, hb_codepoint_t ab, hb_codepoint_t * a, hb_codepoint_t * b, void * userData)
aliashb_unicode_eastasian_width_func_t = uint function(hb_unicode_funcs_t * ufuncs, hb_codepoint_t unicode, void * userData)
aliashb_unicode_general_category_func_t = hb_unicode_general_category_t function(hb_unicode_funcs_t * ufuncs, hb_codepoint_t unicode, void * userData)
aliashb_unicode_mirroring_func_t = hb_codepoint_t function(hb_unicode_funcs_t * ufuncs, hb_codepoint_t unicode, void * userData)
aliashb_unicode_script_func_t = hb_script_t function(hb_unicode_funcs_t * ufuncs, hb_codepoint_t unicode, void * userData)