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 #HBAATLAYOUTFEATURETYPEALLTYPOGRAPHIC
AllTypeFeaturesOff = 1for #HBAATLAYOUTFEATURETYPEALLTYPOGRAPHIC
RequiredLigaturesOn = 0for #HBAATLAYOUTFEATURETYPE_LIGATURES
RequiredLigaturesOff = 1for #HBAATLAYOUTFEATURETYPE_LIGATURES
CommonLigaturesOn = 2for #HBAATLAYOUTFEATURETYPE_LIGATURES
CommonLigaturesOff = 3for #HBAATLAYOUTFEATURETYPE_LIGATURES
RareLigaturesOn = 4for #HBAATLAYOUTFEATURETYPE_LIGATURES
RareLigaturesOff = 5for #HBAATLAYOUTFEATURETYPE_LIGATURES
LogosOn = 6for #HBAATLAYOUTFEATURETYPE_LIGATURES
LogosOff = 7for #HBAATLAYOUTFEATURETYPE_LIGATURES
RebusPicturesOn = 8for #HBAATLAYOUTFEATURETYPE_LIGATURES
RebusPicturesOff = 9for #HBAATLAYOUTFEATURETYPE_LIGATURES
DiphthongLigaturesOn = 10for #HBAATLAYOUTFEATURETYPE_LIGATURES
DiphthongLigaturesOff = 11for #HBAATLAYOUTFEATURETYPE_LIGATURES
SquaredLigaturesOn = 12for #HBAATLAYOUTFEATURETYPE_LIGATURES
SquaredLigaturesOff = 13for #HBAATLAYOUTFEATURETYPE_LIGATURES
AbbrevSquaredLigaturesOn = 14for #HBAATLAYOUTFEATURETYPE_LIGATURES
AbbrevSquaredLigaturesOff = 15for #HBAATLAYOUTFEATURETYPE_LIGATURES
SymbolLigaturesOn = 16for #HBAATLAYOUTFEATURETYPE_LIGATURES
SymbolLigaturesOff = 17for #HBAATLAYOUTFEATURETYPE_LIGATURES
ContextualLigaturesOn = 18for #HBAATLAYOUTFEATURETYPE_LIGATURES
ContextualLigaturesOff = 19for #HBAATLAYOUTFEATURETYPE_LIGATURES
HistoricalLigaturesOn = 20for #HBAATLAYOUTFEATURETYPE_LIGATURES
HistoricalLigaturesOff = 21for #HBAATLAYOUTFEATURETYPE_LIGATURES
Unconnected = 0for #HBAATLAYOUTFEATURETYPE_LIGATURES
PartiallyConnected = 1for #HBAATLAYOUTFEATURETYPE_LIGATURES
Cursive = 2for #HBAATLAYOUTFEATURETYPE_LIGATURES
UpperAndLowerCase = 0Deprecated
AllCaps = 1Deprecated
AllLowerCase = 2Deprecated
SmallCaps = 3Deprecated
InitialCaps = 4Deprecated
InitialCapsAndSmallCaps = 5Deprecated
SubstituteVerticalFormsOn = 0for #HBAATLAYOUTFEATURETYPEVERTICALSUBSTITUTION
SubstituteVerticalFormsOff = 1for #HBAATLAYOUTFEATURETYPEVERTICALSUBSTITUTION
LinguisticRearrangementOn = 0for #HBAATLAYOUTFEATURETYPELINGUISTICREARRANGEMENT
LinguisticRearrangementOff = 1for #HBAATLAYOUTFEATURETYPELINGUISTICREARRANGEMENT
MonospacedNumbers = 0for #HBAATLAYOUTFEATURETYPENUMBERSPACING
ProportionalNumbers = 1for #HBAATLAYOUTFEATURETYPENUMBERSPACING
ThirdWidthNumbers = 2for #HBAATLAYOUTFEATURETYPENUMBERSPACING
QuarterWidthNumbers = 3for #HBAATLAYOUTFEATURETYPENUMBERSPACING
WordInitialSwashesOn = 0for #HBAATLAYOUTFEATURETYPESMARTSWASH_TYPE
WordInitialSwashesOff = 1for #HBAATLAYOUTFEATURETYPESMARTSWASH_TYPE
WordFinalSwashesOn = 2for #HBAATLAYOUTFEATURETYPESMARTSWASH_TYPE
WordFinalSwashesOff = 3for #HBAATLAYOUTFEATURETYPESMARTSWASH_TYPE
LineInitialSwashesOn = 4for #HBAATLAYOUTFEATURETYPESMARTSWASH_TYPE
LineInitialSwashesOff = 5for #HBAATLAYOUTFEATURETYPESMARTSWASH_TYPE
LineFinalSwashesOn = 6for #HBAATLAYOUTFEATURETYPESMARTSWASH_TYPE
LineFinalSwashesOff = 7for #HBAATLAYOUTFEATURETYPESMARTSWASH_TYPE
NonFinalSwashesOn = 8for #HBAATLAYOUTFEATURETYPESMARTSWASH_TYPE
NonFinalSwashesOff = 9for #HBAATLAYOUTFEATURETYPESMARTSWASH_TYPE
ShowDiacritics = 0for #HBAATLAYOUTFEATURETYPEDIACRITICSTYPE
HideDiacritics = 1for #HBAATLAYOUTFEATURETYPEDIACRITICSTYPE
DecomposeDiacritics = 2for #HBAATLAYOUTFEATURETYPEDIACRITICSTYPE
NormalPosition = 0for #HBAATLAYOUTFEATURETYPEVERTICALPOSITION
Superiors = 1for #HBAATLAYOUTFEATURETYPEVERTICALPOSITION
Inferiors = 2for #HBAATLAYOUTFEATURETYPEVERTICALPOSITION
Ordinals = 3for #HBAATLAYOUTFEATURETYPEVERTICALPOSITION
ScientificInferiors = 4for #HBAATLAYOUTFEATURETYPEVERTICALPOSITION
NoFractions = 0for #HBAATLAYOUTFEATURETYPE_FRACTIONS
VerticalFractions = 1for #HBAATLAYOUTFEATURETYPE_FRACTIONS
DiagonalFractions = 2for #HBAATLAYOUTFEATURETYPE_FRACTIONS
PreventOverlapOn = 0for #HBAATLAYOUTFEATURETYPEOVERLAPPINGCHARACTERS_TYPE
PreventOverlapOff = 1for #HBAATLAYOUTFEATURETYPEOVERLAPPINGCHARACTERS_TYPE
HyphensToEmDashOn = 0for #HBAATLAYOUTFEATURETYPETYPOGRAPHICEXTRAS
HyphensToEmDashOff = 1for #HBAATLAYOUTFEATURETYPETYPOGRAPHICEXTRAS
HyphenToEnDashOn = 2for #HBAATLAYOUTFEATURETYPETYPOGRAPHICEXTRAS
HyphenToEnDashOff = 3for #HBAATLAYOUTFEATURETYPETYPOGRAPHICEXTRAS
SlashedZeroOn = 4for #HBAATLAYOUTFEATURETYPETYPOGRAPHICEXTRAS
SlashedZeroOff = 5for #HBAATLAYOUTFEATURETYPETYPOGRAPHICEXTRAS
FormInterrobangOn = 6for #HBAATLAYOUTFEATURETYPETYPOGRAPHICEXTRAS
FormInterrobangOff = 7for #HBAATLAYOUTFEATURETYPETYPOGRAPHICEXTRAS
SmartQuotesOn = 8for #HBAATLAYOUTFEATURETYPETYPOGRAPHICEXTRAS
SmartQuotesOff = 9for #HBAATLAYOUTFEATURETYPETYPOGRAPHICEXTRAS
PeriodsToEllipsisOn = 10for #HBAATLAYOUTFEATURETYPETYPOGRAPHICEXTRAS
PeriodsToEllipsisOff = 11for #HBAATLAYOUTFEATURETYPETYPOGRAPHICEXTRAS
HyphenToMinusOn = 0for #HBAATLAYOUTFEATURETYPEMATHEMATICALEXTRAS
HyphenToMinusOff = 1for #HBAATLAYOUTFEATURETYPEMATHEMATICALEXTRAS
AsteriskToMultiplyOn = 2for #HBAATLAYOUTFEATURETYPEMATHEMATICALEXTRAS
AsteriskToMultiplyOff = 3for #HBAATLAYOUTFEATURETYPEMATHEMATICALEXTRAS
SlashToDivideOn = 4for #HBAATLAYOUTFEATURETYPEMATHEMATICALEXTRAS
SlashToDivideOff = 5for #HBAATLAYOUTFEATURETYPEMATHEMATICALEXTRAS
InequalityLigaturesOn = 6for #HBAATLAYOUTFEATURETYPEMATHEMATICALEXTRAS
InequalityLigaturesOff = 7for #HBAATLAYOUTFEATURETYPEMATHEMATICALEXTRAS
ExponentsOn = 8for #HBAATLAYOUTFEATURETYPEMATHEMATICALEXTRAS
ExponentsOff = 9for #HBAATLAYOUTFEATURETYPEMATHEMATICALEXTRAS
MathematicalGreekOn = 10for #HBAATLAYOUTFEATURETYPEMATHEMATICALEXTRAS
MathematicalGreekOff = 11for #HBAATLAYOUTFEATURETYPEMATHEMATICALEXTRAS
NoOrnaments = 0for #HBAATLAYOUTFEATURETYPEORNAMENTSETS_TYPE
Dingbats = 1for #HBAATLAYOUTFEATURETYPEORNAMENTSETS_TYPE
PiCharacters = 2for #HBAATLAYOUTFEATURETYPEORNAMENTSETS_TYPE
Fleurons = 3for #HBAATLAYOUTFEATURETYPEORNAMENTSETS_TYPE
DecorativeBorders = 4for #HBAATLAYOUTFEATURETYPEORNAMENTSETS_TYPE
InternationalSymbols = 5for #HBAATLAYOUTFEATURETYPEORNAMENTSETS_TYPE
MathSymbols = 6for #HBAATLAYOUTFEATURETYPEORNAMENTSETS_TYPE
NoAlternates = 0for #HBAATLAYOUTFEATURETYPECHARACTERALTERNATIVES
DesignLevel1 = 0for #HBAATLAYOUTFEATURETYPEDESIGNCOMPLEXITY_TYPE
DesignLevel2 = 1for #HBAATLAYOUTFEATURETYPEDESIGNCOMPLEXITY_TYPE
DesignLevel3 = 2for #HBAATLAYOUTFEATURETYPEDESIGNCOMPLEXITY_TYPE
DesignLevel4 = 3for #HBAATLAYOUTFEATURETYPEDESIGNCOMPLEXITY_TYPE
DesignLevel5 = 4for #HBAATLAYOUTFEATURETYPEDESIGNCOMPLEXITY_TYPE
NoStyleOptions = 0for #HBAATLAYOUTFEATURETYPESTYLEOPTIONS
DisplayText = 1for #HBAATLAYOUTFEATURETYPESTYLEOPTIONS
EngravedText = 2for #HBAATLAYOUTFEATURETYPESTYLEOPTIONS
IlluminatedCaps = 3for #HBAATLAYOUTFEATURETYPESTYLEOPTIONS
TitlingCaps = 4for #HBAATLAYOUTFEATURETYPESTYLEOPTIONS
TallCaps = 5for #HBAATLAYOUTFEATURETYPESTYLEOPTIONS
TraditionalCharacters = 0for #HBAATLAYOUTFEATURETYPECHARACTERSHAPE
SimplifiedCharacters = 1for #HBAATLAYOUTFEATURETYPECHARACTERSHAPE
Jis1978Characters = 2for #HBAATLAYOUTFEATURETYPECHARACTERSHAPE
Jis1983Characters = 3for #HBAATLAYOUTFEATURETYPECHARACTERSHAPE
Jis1990Characters = 4for #HBAATLAYOUTFEATURETYPECHARACTERSHAPE
TraditionalAltOne = 5for #HBAATLAYOUTFEATURETYPECHARACTERSHAPE
TraditionalAltTwo = 6for #HBAATLAYOUTFEATURETYPECHARACTERSHAPE
TraditionalAltThree = 7for #HBAATLAYOUTFEATURETYPECHARACTERSHAPE
TraditionalAltFour = 8for #HBAATLAYOUTFEATURETYPECHARACTERSHAPE
TraditionalAltFive = 9for #HBAATLAYOUTFEATURETYPECHARACTERSHAPE
ExpertCharacters = 10for #HBAATLAYOUTFEATURETYPECHARACTERSHAPE
Jis2004Characters = 11for #HBAATLAYOUTFEATURETYPECHARACTERSHAPE
HojoCharacters = 12for #HBAATLAYOUTFEATURETYPECHARACTERSHAPE
Nlccharacters = 13for #HBAATLAYOUTFEATURETYPECHARACTERSHAPE
TraditionalNamesCharacters = 14for #HBAATLAYOUTFEATURETYPECHARACTERSHAPE
LowerCaseNumbers = 0for #HBAATLAYOUTFEATURETYPENUMBERCASE
UpperCaseNumbers = 1for #HBAATLAYOUTFEATURETYPENUMBERCASE
ProportionalText = 0for #HBAATLAYOUTFEATURETYPETEXTSPACING
MonospacedText = 1for #HBAATLAYOUTFEATURETYPETEXTSPACING
HalfWidthText = 2for #HBAATLAYOUTFEATURETYPETEXTSPACING
ThirdWidthText = 3for #HBAATLAYOUTFEATURETYPETEXTSPACING
QuarterWidthText = 4for #HBAATLAYOUTFEATURETYPETEXTSPACING
AltProportionalText = 5for #HBAATLAYOUTFEATURETYPETEXTSPACING
AltHalfWidthText = 6for #HBAATLAYOUTFEATURETYPETEXTSPACING
NoTransliteration = 0for #HBAATLAYOUTFEATURETYPE_TRANSLITERATION
HanjaToHangul = 1for #HBAATLAYOUTFEATURETYPE_TRANSLITERATION
HiraganaToKatakana = 2for #HBAATLAYOUTFEATURETYPE_TRANSLITERATION
KatakanaToHiragana = 3for #HBAATLAYOUTFEATURETYPE_TRANSLITERATION
KanaToRomanization = 4for #HBAATLAYOUTFEATURETYPE_TRANSLITERATION
RomanizationToHiragana = 5for #HBAATLAYOUTFEATURETYPE_TRANSLITERATION
RomanizationToKatakana = 6for #HBAATLAYOUTFEATURETYPE_TRANSLITERATION
HanjaToHangulAltOne = 7for #HBAATLAYOUTFEATURETYPE_TRANSLITERATION
HanjaToHangulAltTwo = 8for #HBAATLAYOUTFEATURETYPE_TRANSLITERATION
HanjaToHangulAltThree = 9for #HBAATLAYOUTFEATURETYPE_TRANSLITERATION
NoAnnotation = 0for #HBAATLAYOUTFEATURETYPEANNOTATIONTYPE
BoxAnnotation = 1for #HBAATLAYOUTFEATURETYPEANNOTATIONTYPE
RoundedBoxAnnotation = 2for #HBAATLAYOUTFEATURETYPEANNOTATIONTYPE
CircleAnnotation = 3for #HBAATLAYOUTFEATURETYPEANNOTATIONTYPE
InvertedCircleAnnotation = 4for #HBAATLAYOUTFEATURETYPEANNOTATIONTYPE
ParenthesisAnnotation = 5for #HBAATLAYOUTFEATURETYPEANNOTATIONTYPE
PeriodAnnotation = 6for #HBAATLAYOUTFEATURETYPEANNOTATIONTYPE
RomanNumeralAnnotation = 7for #HBAATLAYOUTFEATURETYPEANNOTATIONTYPE
DiamondAnnotation = 8for #HBAATLAYOUTFEATURETYPEANNOTATIONTYPE
InvertedBoxAnnotation = 9for #HBAATLAYOUTFEATURETYPEANNOTATIONTYPE
InvertedRoundedBoxAnnotation = 10for #HBAATLAYOUTFEATURETYPEANNOTATIONTYPE
FullWidthKana = 0for #HBAATLAYOUTFEATURETYPEKANASPACING_TYPE
ProportionalKana = 1for #HBAATLAYOUTFEATURETYPEKANASPACING_TYPE
FullWidthIdeographs = 0for #HBAATLAYOUTFEATURETYPEIDEOGRAPHICSPACING_TYPE
ProportionalIdeographs = 1for #HBAATLAYOUTFEATURETYPEIDEOGRAPHICSPACING_TYPE
HalfWidthIdeographs = 2for #HBAATLAYOUTFEATURETYPEIDEOGRAPHICSPACING_TYPE
CanonicalCompositionOn = 0for #HBAATLAYOUTFEATURETYPEUNICODEDECOMPOSITION_TYPE
CanonicalCompositionOff = 1for #HBAATLAYOUTFEATURETYPEUNICODEDECOMPOSITION_TYPE
CompatibilityCompositionOn = 2for #HBAATLAYOUTFEATURETYPEUNICODEDECOMPOSITION_TYPE
CompatibilityCompositionOff = 3for #HBAATLAYOUTFEATURETYPEUNICODEDECOMPOSITION_TYPE
TranscodingCompositionOn = 4for #HBAATLAYOUTFEATURETYPEUNICODEDECOMPOSITION_TYPE
TranscodingCompositionOff = 5for #HBAATLAYOUTFEATURETYPEUNICODEDECOMPOSITION_TYPE
NoRubyKana = 0Deprecated; use #HBAATLAYOUTFEATURESELECTORRUBYKANA_OFF instead
RubyKana = 1Deprecated; use #HBAATLAYOUTFEATURESELECTORRUBYKANA_ON instead
RubyKanaOn = 2for #HBAATLAYOUTFEATURETYPERUBYKANA
RubyKanaOff = 3for #HBAATLAYOUTFEATURETYPERUBYKANA
NoCjkSymbolAlternatives = 0for #HBAATLAYOUTFEATURETYPECJKSYMBOLALTERNATIVESTYPE
CjkSymbolAltOne = 1for #HBAATLAYOUTFEATURETYPECJKSYMBOLALTERNATIVESTYPE
CjkSymbolAltTwo = 2for #HBAATLAYOUTFEATURETYPECJKSYMBOLALTERNATIVESTYPE
CjkSymbolAltThree = 3for #HBAATLAYOUTFEATURETYPECJKSYMBOLALTERNATIVESTYPE
CjkSymbolAltFour = 4for #HBAATLAYOUTFEATURETYPECJKSYMBOLALTERNATIVESTYPE
CjkSymbolAltFive = 5for #HBAATLAYOUTFEATURETYPECJKSYMBOLALTERNATIVESTYPE
NoIdeographicAlternatives = 0for #HBAATLAYOUTFEATURETYPEIDEOGRAPHICALTERNATIVES_TYPE
IdeographicAltOne = 1for #HBAATLAYOUTFEATURETYPEIDEOGRAPHICALTERNATIVES_TYPE
IdeographicAltTwo = 2for #HBAATLAYOUTFEATURETYPEIDEOGRAPHICALTERNATIVES_TYPE
IdeographicAltThree = 3for #HBAATLAYOUTFEATURETYPEIDEOGRAPHICALTERNATIVES_TYPE
IdeographicAltFour = 4for #HBAATLAYOUTFEATURETYPEIDEOGRAPHICALTERNATIVES_TYPE
IdeographicAltFive = 5for #HBAATLAYOUTFEATURETYPEIDEOGRAPHICALTERNATIVES_TYPE
CjkVerticalRomanCentered = 0for #HBAATLAYOUTFEATURETYPECJKVERTICALROMANPLACEMENT_TYPE
CjkVerticalRomanHbaseline = 1for #HBAATLAYOUTFEATURETYPECJKVERTICALROMANPLACEMENT_TYPE
NoCjkItalicRoman = 0Deprecated; use #HBAATLAYOUTFEATURESELECTORCJKITALICROMANOFF instead
CjkItalicRoman = 1Deprecated; use #HBAATLAYOUTFEATURESELECTORCJKITALICROMANON instead
CjkItalicRomanOn = 2for #HBAATLAYOUTFEATURETYPEITALICCJK_ROMAN
CjkItalicRomanOff = 3for #HBAATLAYOUTFEATURETYPEITALICCJK_ROMAN
CaseSensitiveLayoutOn = 0for #HBAATLAYOUTFEATURETYPECASESENSITIVE_LAYOUT
CaseSensitiveLayoutOff = 1for #HBAATLAYOUTFEATURETYPECASESENSITIVE_LAYOUT
CaseSensitiveSpacingOn = 2for #HBAATLAYOUTFEATURETYPECASESENSITIVE_LAYOUT
CaseSensitiveSpacingOff = 3for #HBAATLAYOUTFEATURETYPECASESENSITIVE_LAYOUT
AlternateHorizKanaOn = 0for #HBAATLAYOUTFEATURETYPEALTERNATEKANA
AlternateHorizKanaOff = 1for #HBAATLAYOUTFEATURETYPEALTERNATEKANA
AlternateVertKanaOn = 2for #HBAATLAYOUTFEATURETYPEALTERNATEKANA
AlternateVertKanaOff = 3for #HBAATLAYOUTFEATURETYPEALTERNATEKANA
NoStylisticAlternates = 0for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltOneOn = 2for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltOneOff = 3for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltTwoOn = 4for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltTwoOff = 5for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltThreeOn = 6for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltThreeOff = 7for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltFourOn = 8for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltFourOff = 9for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltFiveOn = 10for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltFiveOff = 11for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltSixOn = 12for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltSixOff = 13for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltSevenOn = 14for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltSevenOff = 15for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltEightOn = 16for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltEightOff = 17for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltNineOn = 18for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltNineOff = 19for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltTenOn = 20for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltTenOff = 21for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltElevenOn = 22for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltElevenOff = 23for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltTwelveOn = 24for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltTwelveOff = 25for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltThirteenOn = 26for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltThirteenOff = 27for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltFourteenOn = 28for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltFourteenOff = 29for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltFifteenOn = 30for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltFifteenOff = 31for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltSixteenOn = 32for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltSixteenOff = 33for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltSeventeenOn = 34for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltSeventeenOff = 35for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltEighteenOn = 36for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltEighteenOff = 37for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltNineteenOn = 38for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltNineteenOff = 39for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltTwentyOn = 40for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
StylisticAltTwentyOff = 41for #HBAATLAYOUTFEATURETYPESTYLISTICALTERNATIVES
ContextualAlternatesOn = 0for #HBAATLAYOUTFEATURETYPECONTEXTUALALTERNATIVES
ContextualAlternatesOff = 1for #HBAATLAYOUTFEATURETYPECONTEXTUALALTERNATIVES
SwashAlternatesOn = 2for #HBAATLAYOUTFEATURETYPECONTEXTUALALTERNATIVES
SwashAlternatesOff = 3for #HBAATLAYOUTFEATURETYPECONTEXTUALALTERNATIVES
ContextualSwashAlternatesOn = 4for #HBAATLAYOUTFEATURETYPECONTEXTUALALTERNATIVES
ContextualSwashAlternatesOff = 5for #HBAATLAYOUTFEATURETYPECONTEXTUALALTERNATIVES
DefaultLowerCase = 0for #HBAATLAYOUTFEATURETYPELOWERCASE
LowerCaseSmallCaps = 1for #HBAATLAYOUTFEATURETYPELOWERCASE
LowerCasePetiteCaps = 2for #HBAATLAYOUTFEATURETYPELOWERCASE
DefaultUpperCase = 0for #HBAATLAYOUTFEATURETYPEUPPERCASE
UpperCaseSmallCaps = 1for #HBAATLAYOUTFEATURETYPEUPPERCASE
UpperCasePetiteCaps = 2for #HBAATLAYOUTFEATURETYPEUPPERCASE
HalfWidthCjkRoman = 0for #HBAATLAYOUTFEATURETYPECJKROMANSPACINGTYPE
ProportionalCjkRoman = 1for #HBAATLAYOUTFEATURETYPECJKROMANSPACINGTYPE
DefaultCjkRoman = 2for #HBAATLAYOUTFEATURETYPECJKROMANSPACINGTYPE
FullWidthCjkRoman = 3for #HBAATLAYOUTFEATURETYPECJKROMANSPACINGTYPE
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 @HBBUFFERCLUSTERLEVELMONOTONE_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 #hbbuffercontenttypet.
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 #hbglyphinfo_t.codepoint
ClusterMismatch = 32difference in #hbglyphinfo_t.cluster
GlyphFlagsMismatch = 64difference in #hbglyphflags_t.
PositionMismatch = 128difference in #hbglyphposition_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 @HBBUFFERFLAG_BOT.
PreserveDefaultIgnorables = 4flag indication that character with DefaultIgnorable Unicode property should use the corresponding glyph from the font, instead of hiding them (done by replacing them with the space glyph and zeroi...
RemoveDefaultIgnorables = 8flag indication that character with DefaultIgnorable Unicode property should be removed from glyph string instead of hiding them (done by replacing them with the space glyph and zeroing the advance...
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 @HBGLYPHFLAGUNSAFETO_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 @HBGLYPHFLAGSAFETOINSERTTATWEEL 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 @HBPAINTCOMPOSITEMODEHSL_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 @HBSTYLETAGSLANTANGLE 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 #hbtagt 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#hbotmathglyphpartflagst 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 #hbtagt 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 #hbotvaraxisflags_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 #hbdirectiont of the buffer, see [harfbuzz.global.bufferSetDirection].
hb_script_t scriptthe #hbscriptt of the buffer, see [harfbuzz.global.bufferSetScript].
hb_language_t languagethe #hblanguaget 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 #hbtagt 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 #hbglyphinfot, or whatever the client passes to [harfbuzz.global.bufferAdd]. More than one #hbglyphinfot can have the same @...
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)