{ This is an autogenerated unit using gobject introspection (gir2pascal). Do not Edit. }
unit LazHarfBuzz0;

{$MODE OBJFPC}{$H+}

{$PACKRECORDS C}
{$MODESWITCH DUPLICATELOCALS+}

{$ifdef Unix}
{$LINKLIB libharfbuzz.so.0}
{$LINKLIB libharfbuzz-gobject.so.0}
{$endif}
interface
uses
  CTypes, LazGObject2, Lazfreetype2_2, LazGLib2;

const
  {$ifdef MsWindows}
  LazHarfBuzz0_library = 'libharfbuzz-gobject.so.dll';
  {$else}
  LazHarfBuzz0_library = 'libharfbuzz-gobject.so.0';
  {$endif}

  HB_AAT_LAYOUT_NO_SELECTOR_INDEX = 65535;
  HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT = 65533;
  HB_FEATURE_GLOBAL_START = 0;
  HB_LANGUAGE_INVALID = 0;
  HB_MAP_VALUE_INVALID = 4294967295;
  HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX = 65535;
  HB_OT_LAYOUT_NO_FEATURE_INDEX = 65535;
  HB_OT_LAYOUT_NO_SCRIPT_INDEX = 65535;
  HB_OT_LAYOUT_NO_VARIATIONS_INDEX = 4294967295;
  HB_OT_MAX_TAGS_PER_LANGUAGE = 3;
  HB_OT_MAX_TAGS_PER_SCRIPT = 3;
  HB_OT_VAR_NO_AXIS_INDEX = 4294967295;
  HB_SET_VALUE_INVALID = 4294967295;
  HB_UNICODE_MAX = 1114111;
  HB_UNICODE_MAX_DECOMPOSITION_LEN = 19;
  HB_VERSION_MAJOR = 6;
  HB_VERSION_MICRO = 0;
  HB_VERSION_MINOR = 0;
  HB_VERSION_STRING = '6.0.0';
type
  Thb_aat_layout_feature_selector_t = (
    Thb_aat_layout_feature_selector_tMinValue = -$7FFFFFFF,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_ALTERNATES = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL1 = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHEN_TO_MINUS_ON = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_ORNAMENTS = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_LOWER_CASE_NUMBERS = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_TEXT = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_STYLE_OPTIONS = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_CHARACTERS = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHENS_TO_EM_DASH_ON = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_MONOSPACED_NUMBERS = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_WORD_INITIAL_SWASHES_ON = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_SUBSTITUTE_VERTICAL_FORMS_ON = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_LINGUISTIC_REARRANGEMENT_ON = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_FRACTIONS = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_PREVENT_OVERLAP_ON = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_SHOW_DIACRITICS = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_NORMAL_POSITION = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_ALTERNATE_HORIZ_KANA_ON = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_STYLISTIC_ALTERNATES = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_CJK_ITALIC_ROMAN = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_CASE_SENSITIVE_LAYOUT_ON = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_DEFAULT_UPPER_CASE = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_HALF_WIDTH_CJK_ROMAN = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_ALTERNATES_ON = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_DEFAULT_LOWER_CASE = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_VERTICAL_ROMAN_CENTERED = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_FULL_WIDTH_KANA = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_FULL_WIDTH_IDEOGRAPHS = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_TRANSLITERATION = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_ANNOTATION = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_CJK_SYMBOL_ALTERNATIVES = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_IDEOGRAPHIC_ALTERNATIVES = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_CANONICAL_COMPOSITION_ON = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_RUBY_KANA = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_UPPER_AND_LOWER_CASE = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_ALL_TYPE_FEATURES_ON = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_UNCONNECTED = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_REQUIRED_LIGATURES_ON = 0,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHENS_TO_EM_DASH_OFF = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_IDEOGRAPHS = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_BOX_ANNOTATION = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_KANA = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_VERTICAL_FRACTIONS = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_CANONICAL_COMPOSITION_OFF = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_PARTIALLY_CONNECTED = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_PREVENT_OVERLAP_OFF = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_HANJA_TO_HANGUL = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_UPPER_CASE_SMALL_CAPS = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_DISPLAY_TEXT = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL2 = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_CJK_ROMAN = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_DINGBATS = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_SIMPLIFIED_CHARACTERS = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_UPPER_CASE_NUMBERS = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_MONOSPACED_TEXT = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHEN_TO_MINUS_OFF = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_LOWER_CASE_SMALL_CAPS = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_ALL_TYPE_FEATURES_OFF = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_NUMBERS = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_LINGUISTIC_REARRANGEMENT_OFF = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_VERTICAL_ROMAN_HBASELINE = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_WORD_INITIAL_SWASHES_OFF = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_ALTERNATE_HORIZ_KANA_OFF = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_REQUIRED_LIGATURES_OFF = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_CASE_SENSITIVE_LAYOUT_OFF = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_ALTERNATES_OFF = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_HIDE_DIACRITICS = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_ONE = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_SUPERIORS = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_SUBSTITUTE_VERTICAL_FORMS_OFF = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_ALL_CAPS = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_ONE = 1,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_JIS1978_CHARACTERS = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_UPPER_CASE_PETITE_CAPS = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_LOWER_CASE_PETITE_CAPS = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_ONE_ON = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL3 = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_ALTERNATE_VERT_KANA_ON = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_ENGRAVED_TEXT = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_HALF_WIDTH_IDEOGRAPHS = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_TWO = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_ROUNDED_BOX_ANNOTATION = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_ON = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_COMPATIBILITY_COMPOSITION_ON = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_TWO = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_HALF_WIDTH_TEXT = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_CASE_SENSITIVE_SPACING_ON = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_COMMON_LIGATURES_ON = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_SWASH_ALTERNATES_ON = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_HIRAGANA_TO_KATAKANA = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_ON = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_ALL_LOWER_CASE = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_WORD_FINAL_SWASHES_ON = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_THIRD_WIDTH_NUMBERS = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_ASTERISK_TO_MULTIPLY_ON = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHEN_TO_EN_DASH_ON = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_INFERIORS = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_DECOMPOSE_DIACRITICS = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_DIAGONAL_FRACTIONS = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_CURSIVE = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_PI_CHARACTERS = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_DEFAULT_CJK_ROMAN = 2,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_THIRD_WIDTH_TEXT = 3,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_COMPATIBILITY_COMPOSITION_OFF = 3,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_SWASH_ALTERNATES_OFF = 3,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_QUARTER_WIDTH_NUMBERS = 3,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL4 = 3,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_ASTERISK_TO_MULTIPLY_OFF = 3,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_FULL_WIDTH_CJK_ROMAN = 3,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_THREE = 3,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_OFF = 3,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_COMMON_LIGATURES_OFF = 3,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_CIRCLE_ANNOTATION = 3,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHEN_TO_EN_DASH_OFF = 3,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_KATAKANA_TO_HIRAGANA = 3,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_CASE_SENSITIVE_SPACING_OFF = 3,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_WORD_FINAL_SWASHES_OFF = 3,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_FLEURONS = 3,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_JIS1983_CHARACTERS = 3,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_ORDINALS = 3,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_OFF = 3,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_ILLUMINATED_CAPS = 3,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_THREE = 3,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_ALTERNATE_VERT_KANA_OFF = 3,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_ONE_OFF = 3,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_SMALL_CAPS = 3,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_DECORATIVE_BORDERS = 4,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_FOUR = 4,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_LINE_INITIAL_SWASHES_ON = 4,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_SLASHED_ZERO_ON = 4,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_INITIAL_CAPS = 4,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_FOUR = 4,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_TITLING_CAPS = 4,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_SLASH_TO_DIVIDE_ON = 4,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_KANA_TO_ROMANIZATION = 4,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_RARE_LIGATURES_ON = 4,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_SCIENTIFIC_INFERIORS = 4,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_SWASH_ALTERNATES_ON = 4,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWO_ON = 4,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_QUARTER_WIDTH_TEXT = 4,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL5 = 4,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_INVERTED_CIRCLE_ANNOTATION = 4,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_TRANSCODING_COMPOSITION_ON = 4,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_JIS1990_CHARACTERS = 4,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_RARE_LIGATURES_OFF = 5,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_FIVE = 5,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_TRANSCODING_COMPOSITION_OFF = 5,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_INTERNATIONAL_SYMBOLS = 5,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_FIVE = 5,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_INITIAL_CAPS_AND_SMALL_CAPS = 5,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_SWASH_ALTERNATES_OFF = 5,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_ROMANIZATION_TO_HIRAGANA = 5,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_ALT_PROPORTIONAL_TEXT = 5,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWO_OFF = 5,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_TALL_CAPS = 5,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_ONE = 5,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_SLASH_TO_DIVIDE_OFF = 5,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_SLASHED_ZERO_OFF = 5,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_PARENTHESIS_ANNOTATION = 5,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_LINE_INITIAL_SWASHES_OFF = 5,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_LOGOS_ON = 6,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_THREE_ON = 6,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_LINE_FINAL_SWASHES_ON = 6,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_INEQUALITY_LIGATURES_ON = 6,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_PERIOD_ANNOTATION = 6,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_MATH_SYMBOLS = 6,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_ROMANIZATION_TO_KATAKANA = 6,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_ALT_HALF_WIDTH_TEXT = 6,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_TWO = 6,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_FORM_INTERROBANG_ON = 6,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_THREE_OFF = 7,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_LINE_FINAL_SWASHES_OFF = 7,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_THREE = 7,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_INEQUALITY_LIGATURES_OFF = 7,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_ROMAN_NUMERAL_ANNOTATION = 7,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_HANJA_TO_HANGUL_ALT_ONE = 7,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_FORM_INTERROBANG_OFF = 7,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_LOGOS_OFF = 7,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_FOUR = 8,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_NON_FINAL_SWASHES_ON = 8,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_SMART_QUOTES_ON = 8,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_HANJA_TO_HANGUL_ALT_TWO = 8,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FOUR_ON = 8,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_EXPONENTS_ON = 8,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_REBUS_PICTURES_ON = 8,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_DIAMOND_ANNOTATION = 8,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_FIVE = 9,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_EXPONENTS_OFF = 9,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FOUR_OFF = 9,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_SMART_QUOTES_OFF = 9,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_HANJA_TO_HANGUL_ALT_THREE = 9,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_INVERTED_BOX_ANNOTATION = 9,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_REBUS_PICTURES_OFF = 9,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_NON_FINAL_SWASHES_OFF = 9,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_DIPHTHONG_LIGATURES_ON = 10,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_MATHEMATICAL_GREEK_ON = 10,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FIVE_ON = 10,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_EXPERT_CHARACTERS = 10,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_PERIODS_TO_ELLIPSIS_ON = 10,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_INVERTED_ROUNDED_BOX_ANNOTATION = 10,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FIVE_OFF = 11,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_MATHEMATICAL_GREEK_OFF = 11,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_DIPHTHONG_LIGATURES_OFF = 11,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_JIS2004_CHARACTERS = 11,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_PERIODS_TO_ELLIPSIS_OFF = 11,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SIX_ON = 12,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_SQUARED_LIGATURES_ON = 12,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_HOJO_CHARACTERS = 12,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_SQUARED_LIGATURES_OFF = 13,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_NLCCHARACTERS = 13,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SIX_OFF = 13,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_ABBREV_SQUARED_LIGATURES_ON = 14,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_NAMES_CHARACTERS = 14,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SEVEN_ON = 14,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_ABBREV_SQUARED_LIGATURES_OFF = 15,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SEVEN_OFF = 15,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_EIGHT_ON = 16,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_SYMBOL_LIGATURES_ON = 16,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_EIGHT_OFF = 17,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_SYMBOL_LIGATURES_OFF = 17,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_LIGATURES_ON = 18,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_NINE_ON = 18,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_LIGATURES_OFF = 19,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_NINE_OFF = 19,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_HISTORICAL_LIGATURES_ON = 20,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TEN_ON = 20,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TEN_OFF = 21,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_HISTORICAL_LIGATURES_OFF = 21,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_ELEVEN_ON = 22,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_ELEVEN_OFF = 23,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWELVE_ON = 24,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWELVE_OFF = 25,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_THIRTEEN_ON = 26,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_THIRTEEN_OFF = 27,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FOURTEEN_ON = 28,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FOURTEEN_OFF = 29,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FIFTEEN_ON = 30,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FIFTEEN_OFF = 31,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SIXTEEN_ON = 32,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SIXTEEN_OFF = 33,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SEVENTEEN_ON = 34,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SEVENTEEN_OFF = 35,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_EIGHTEEN_ON = 36,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_EIGHTEEN_OFF = 37,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_NINETEEN_ON = 38,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_NINETEEN_OFF = 39,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWENTY_ON = 40,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWENTY_OFF = 41,
    HB_AAT_LAYOUT_FEATURE_SELECTOR_INVALID = 65535,
    Thb_aat_layout_feature_selector_tMaxValue = $7FFFFFFF
  );
  Thb_aat_layout_feature_type_t = (
    Thb_aat_layout_feature_type_tMinValue = -$7FFFFFFF,
    HB_AAT_LAYOUT_FEATURE_TYPE_ALL_TYPOGRAPHIC = 0,
    HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES = 1,
    HB_AAT_LAYOUT_FEATURE_TYPE_CURISVE_CONNECTION = 2,
    HB_AAT_LAYOUT_FEATURE_TYPE_LETTER_CASE = 3,
    HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_SUBSTITUTION = 4,
    HB_AAT_LAYOUT_FEATURE_TYPE_LINGUISTIC_REARRANGEMENT = 5,
    HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING = 6,
    HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE = 8,
    HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE = 9,
    HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION = 10,
    HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS = 11,
    HB_AAT_LAYOUT_FEATURE_TYPE_OVERLAPPING_CHARACTERS_TYPE = 13,
    HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS = 14,
    HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS = 15,
    HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE = 16,
    HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_ALTERNATIVES = 17,
    HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE = 18,
    HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS = 19,
    HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE = 20,
    HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_CASE = 21,
    HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING = 22,
    HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION = 23,
    HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE = 24,
    HB_AAT_LAYOUT_FEATURE_TYPE_KANA_SPACING_TYPE = 25,
    HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE = 26,
    HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE = 27,
    HB_AAT_LAYOUT_FEATURE_TYPE_RUBY_KANA = 28,
    HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE = 29,
    HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE = 30,
    HB_AAT_LAYOUT_FEATURE_TYPE_CJK_VERTICAL_ROMAN_PLACEMENT_TYPE = 31,
    HB_AAT_LAYOUT_FEATURE_TYPE_ITALIC_CJK_ROMAN = 32,
    HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT = 33,
    HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA = 34,
    HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES = 35,
    HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES = 36,
    HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE = 37,
    HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE = 38,
    HB_AAT_LAYOUT_FEATURE_TYPE_LANGUAGE_TAG_TYPE = 39,
    HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE = 103,
    HB_AAT_LAYOUT_FEATURE_TYPE_INVALID = 65535,
    Thb_aat_layout_feature_type_tMaxValue = $7FFFFFFF
  );
  Thb_memory_mode_t = (
    Thb_memory_mode_tMinValue = -$7FFFFFFF,
    HB_MEMORY_MODE_DUPLICATE = 0,
    HB_MEMORY_MODE_READONLY = 1,
    HB_MEMORY_MODE_WRITABLE = 2,
    HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE = 3,
    Thb_memory_mode_tMaxValue = $7FFFFFFF
  );
  Thb_buffer_cluster_level_t = (
    Thb_buffer_cluster_level_tMinValue = -$7FFFFFFF,
    HB_BUFFER_CLUSTER_LEVEL_DEFAULT = 0,
    HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES = 0,
    HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS = 1,
    HB_BUFFER_CLUSTER_LEVEL_CHARACTERS = 2,
    Thb_buffer_cluster_level_tMaxValue = $7FFFFFFF
  );
  Thb_buffer_content_type_t = (
    Thb_buffer_content_type_tMinValue = -$7FFFFFFF,
    HB_BUFFER_CONTENT_TYPE_INVALID = 0,
    HB_BUFFER_CONTENT_TYPE_UNICODE = 1,
    HB_BUFFER_CONTENT_TYPE_GLYPHS = 2,
    Thb_buffer_content_type_tMaxValue = $7FFFFFFF
  );
  Thb_buffer_serialize_format_t = (
    Thb_buffer_serialize_format_tMinValue = -$7FFFFFFF,
    HB_BUFFER_SERIALIZE_FORMAT_INVALID = 0,
    HB_BUFFER_SERIALIZE_FORMAT_JSON = 1246973774,
    HB_BUFFER_SERIALIZE_FORMAT_TEXT = 1413830740,
    Thb_buffer_serialize_format_tMaxValue = $7FFFFFFF
  );
  Thb_buffer_diff_flags_tIdx = (
    Thb_buffer_diff_flags_tIdxMinValue = 0,
    HB_BUFFER_DIFF_FLAG_CONTENT_TYPE_MISMATCH = 0,
    HB_BUFFER_DIFF_FLAG_LENGTH_MISMATCH = 1,
    HB_BUFFER_DIFF_FLAG_NOTDEF_PRESENT = 2,
    HB_BUFFER_DIFF_FLAG_DOTTED_CIRCLE_PRESENT = 3,
    HB_BUFFER_DIFF_FLAG_CODEPOINT_MISMATCH = 4,
    HB_BUFFER_DIFF_FLAG_CLUSTER_MISMATCH = 5,
    HB_BUFFER_DIFF_FLAG_GLYPH_FLAGS_MISMATCH = 6,
    HB_BUFFER_DIFF_FLAG_POSITION_MISMATCH = 7,
    Thb_buffer_diff_flags_tIdxMaxValue = 31
  );
  Thb_buffer_diff_flags_t = Set of Thb_buffer_diff_flags_tIdx;
const
  HB_BUFFER_DIFF_FLAG_EQUAL = []; {0 = $00000000}

type
  Thb_buffer_flags_tIdx = (
    Thb_buffer_flags_tIdxMinValue = 0,
    HB_BUFFER_FLAG_BOT = 0,
    HB_BUFFER_FLAG_EOT = 1,
    HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES = 2,
    HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES = 3,
    HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE = 4,
    HB_BUFFER_FLAG_VERIFY = 5,
    HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT = 6,
    HB_BUFFER_FLAG_PRODUCE_SAFE_TO_INSERT_TATWEEL = 7,
    Thb_buffer_flags_tIdxMaxValue = 31
  );
  Thb_buffer_flags_t = Set of Thb_buffer_flags_tIdx;
const
  HB_BUFFER_FLAG_DEFAULT = []; {0 = $00000000}

  HB_BUFFER_FLAG_DEFINED = [
    HB_BUFFER_FLAG_BOT,
    HB_BUFFER_FLAG_EOT,
    HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES,
    HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES,
    HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE,
    HB_BUFFER_FLAG_VERIFY,
    HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT,
    HB_BUFFER_FLAG_PRODUCE_SAFE_TO_INSERT_TATWEEL
  ]; {255 = $000000FF}

type
  Thb_direction_t = (
    Thb_direction_tMinValue = -$7FFFFFFF,
    HB_DIRECTION_INVALID = 0,
    HB_DIRECTION_LTR = 4,
    HB_DIRECTION_RTL = 5,
    HB_DIRECTION_TTB = 6,
    HB_DIRECTION_BTT = 7,
    Thb_direction_tMaxValue = $7FFFFFFF
  );
  Thb_script_t = (
    Thb_script_tMinValue = -$7FFFFFFF,
    HB_SCRIPT_INVALID = 0,
    HB_SCRIPT_ADLAM = 1097100397,
    HB_SCRIPT_CAUCASIAN_ALBANIAN = 1097295970,
    HB_SCRIPT_AHOM = 1097363309,
    HB_SCRIPT_ARABIC = 1098015074,
    HB_SCRIPT_IMPERIAL_ARAMAIC = 1098018153,
    HB_SCRIPT_ARMENIAN = 1098018158,
    HB_SCRIPT_AVESTAN = 1098281844,
    HB_SCRIPT_BALINESE = 1113681001,
    HB_SCRIPT_BAMUM = 1113681269,
    HB_SCRIPT_BASSA_VAH = 1113682803,
    HB_SCRIPT_BATAK = 1113683051,
    HB_SCRIPT_BENGALI = 1113943655,
    HB_SCRIPT_BHAIKSUKI = 1114139507,
    HB_SCRIPT_BOPOMOFO = 1114599535,
    HB_SCRIPT_BRAHMI = 1114792296,
    HB_SCRIPT_BRAILLE = 1114792297,
    HB_SCRIPT_BUGINESE = 1114990441,
    HB_SCRIPT_BUHID = 1114990692,
    HB_SCRIPT_CHAKMA = 1130457965,
    HB_SCRIPT_CANADIAN_SYLLABICS = 1130458739,
    HB_SCRIPT_CARIAN = 1130459753,
    HB_SCRIPT_CHAM = 1130914157,
    HB_SCRIPT_CHEROKEE = 1130915186,
    HB_SCRIPT_CHORASMIAN = 1130918515,
    HB_SCRIPT_COPTIC = 1131376756,
    HB_SCRIPT_CYPRO_MINOAN = 1131441518,
    HB_SCRIPT_CYPRIOT = 1131442804,
    HB_SCRIPT_CYRILLIC = 1132032620,
    HB_SCRIPT_DEVANAGARI = 1147500129,
    HB_SCRIPT_DIVES_AKURU = 1147756907,
    HB_SCRIPT_DOGRA = 1148151666,
    HB_SCRIPT_DESERET = 1148416628,
    HB_SCRIPT_DUPLOYAN = 1148547180,
    HB_SCRIPT_EGYPTIAN_HIEROGLYPHS = 1164409200,
    HB_SCRIPT_ELBASAN = 1164730977,
    HB_SCRIPT_ELYMAIC = 1164736877,
    HB_SCRIPT_ETHIOPIC = 1165256809,
    HB_SCRIPT_GEORGIAN = 1197830002,
    HB_SCRIPT_GLAGOLITIC = 1198285159,
    HB_SCRIPT_GUNJALA_GONDI = 1198485095,
    HB_SCRIPT_MASARAM_GONDI = 1198485101,
    HB_SCRIPT_GOTHIC = 1198486632,
    HB_SCRIPT_GRANTHA = 1198678382,
    HB_SCRIPT_GREEK = 1198679403,
    HB_SCRIPT_GUJARATI = 1198877298,
    HB_SCRIPT_GURMUKHI = 1198879349,
    HB_SCRIPT_HANGUL = 1214344807,
    HB_SCRIPT_HAN = 1214344809,
    HB_SCRIPT_HANUNOO = 1214344815,
    HB_SCRIPT_HATRAN = 1214346354,
    HB_SCRIPT_HEBREW = 1214603890,
    HB_SCRIPT_HIRAGANA = 1214870113,
    HB_SCRIPT_ANATOLIAN_HIEROGLYPHS = 1215067511,
    HB_SCRIPT_PAHAWH_HMONG = 1215131239,
    HB_SCRIPT_NYIAKENG_PUACHUE_HMONG = 1215131248,
    HB_SCRIPT_OLD_HUNGARIAN = 1215655527,
    HB_SCRIPT_OLD_ITALIC = 1232363884,
    HB_SCRIPT_JAVANESE = 1247901281,
    HB_SCRIPT_KAYAH_LI = 1264675945,
    HB_SCRIPT_KATAKANA = 1264676449,
    HB_SCRIPT_KAWI = 1264678761,
    HB_SCRIPT_KHAROSHTHI = 1265131890,
    HB_SCRIPT_KHMER = 1265134962,
    HB_SCRIPT_KHOJKI = 1265135466,
    HB_SCRIPT_KHITAN_SMALL_SCRIPT = 1265202291,
    HB_SCRIPT_KANNADA = 1265525857,
    HB_SCRIPT_KAITHI = 1265920105,
    HB_SCRIPT_TAI_THAM = 1281453665,
    HB_SCRIPT_LAO = 1281453935,
    HB_SCRIPT_LATIN = 1281455214,
    HB_SCRIPT_LEPCHA = 1281716323,
    HB_SCRIPT_LIMBU = 1281977698,
    HB_SCRIPT_LINEAR_A = 1281977953,
    HB_SCRIPT_LINEAR_B = 1281977954,
    HB_SCRIPT_LISU = 1281979253,
    HB_SCRIPT_LYCIAN = 1283023721,
    HB_SCRIPT_LYDIAN = 1283023977,
    HB_SCRIPT_MAHAJANI = 1298229354,
    HB_SCRIPT_MAKASAR = 1298230113,
    HB_SCRIPT_MANDAIC = 1298230884,
    HB_SCRIPT_MANICHAEAN = 1298230889,
    HB_SCRIPT_MARCHEN = 1298231907,
    HB_SCRIPT_MEDEFAIDRIN = 1298490470,
    HB_SCRIPT_MENDE_KIKAKUI = 1298493028,
    HB_SCRIPT_MEROITIC_CURSIVE = 1298494051,
    HB_SCRIPT_MEROITIC_HIEROGLYPHS = 1298494063,
    HB_SCRIPT_MALAYALAM = 1298954605,
    HB_SCRIPT_MODI = 1299145833,
    HB_SCRIPT_MONGOLIAN = 1299148391,
    HB_SCRIPT_MRO = 1299345263,
    HB_SCRIPT_MEETEI_MAYEK = 1299473769,
    HB_SCRIPT_MULTANI = 1299541108,
    HB_SCRIPT_MYANMAR = 1299803506,
    HB_SCRIPT_NAG_MUNDARI = 1315006317,
    HB_SCRIPT_NANDINAGARI = 1315008100,
    HB_SCRIPT_OLD_NORTH_ARABIAN = 1315009122,
    HB_SCRIPT_NABATAEAN = 1315070324,
    HB_SCRIPT_NEWA = 1315272545,
    HB_SCRIPT_NKO = 1315663727,
    HB_SCRIPT_NUSHU = 1316186229,
    HB_SCRIPT_OGHAM = 1332175213,
    HB_SCRIPT_OL_CHIKI = 1332503403,
    HB_SCRIPT_OLD_TURKIC = 1332898664,
    HB_SCRIPT_ORIYA = 1332902241,
    HB_SCRIPT_OSAGE = 1332963173,
    HB_SCRIPT_OSMANYA = 1332964705,
    HB_SCRIPT_OLD_UYGHUR = 1333094258,
    HB_SCRIPT_PALMYRENE = 1348562029,
    HB_SCRIPT_PAU_CIN_HAU = 1348564323,
    HB_SCRIPT_OLD_PERMIC = 1348825709,
    HB_SCRIPT_PHAGS_PA = 1349017959,
    HB_SCRIPT_INSCRIPTIONAL_PAHLAVI = 1349020777,
    HB_SCRIPT_PSALTER_PAHLAVI = 1349020784,
    HB_SCRIPT_PHOENICIAN = 1349021304,
    HB_SCRIPT_MIAO = 1349284452,
    HB_SCRIPT_INSCRIPTIONAL_PARTHIAN = 1349678185,
    HB_SCRIPT_REJANG = 1382706791,
    HB_SCRIPT_HANIFI_ROHINGYA = 1383032935,
    HB_SCRIPT_RUNIC = 1383427698,
    HB_SCRIPT_SAMARITAN = 1398893938,
    HB_SCRIPT_OLD_SOUTH_ARABIAN = 1398895202,
    HB_SCRIPT_SAURASHTRA = 1398895986,
    HB_SCRIPT_SIGNWRITING = 1399287415,
    HB_SCRIPT_SHAVIAN = 1399349623,
    HB_SCRIPT_SHARADA = 1399353956,
    HB_SCRIPT_SIDDHAM = 1399415908,
    HB_SCRIPT_KHUDAWADI = 1399418468,
    HB_SCRIPT_SINHALA = 1399418472,
    HB_SCRIPT_SOGDIAN = 1399809892,
    HB_SCRIPT_OLD_SOGDIAN = 1399809903,
    HB_SCRIPT_SORA_SOMPENG = 1399812705,
    HB_SCRIPT_SOYOMBO = 1399814511,
    HB_SCRIPT_SUNDANESE = 1400204900,
    HB_SCRIPT_SYLOTI_NAGRI = 1400466543,
    HB_SCRIPT_SYRIAC = 1400468067,
    HB_SCRIPT_TAGBANWA = 1415669602,
    HB_SCRIPT_TAKRI = 1415670642,
    HB_SCRIPT_TAI_LE = 1415670885,
    HB_SCRIPT_NEW_TAI_LUE = 1415670901,
    HB_SCRIPT_TAMIL = 1415671148,
    HB_SCRIPT_TANGUT = 1415671399,
    HB_SCRIPT_TAI_VIET = 1415673460,
    HB_SCRIPT_TELUGU = 1415933045,
    HB_SCRIPT_TIFINAGH = 1415999079,
    HB_SCRIPT_TAGALOG = 1416064103,
    HB_SCRIPT_THAANA = 1416126817,
    HB_SCRIPT_THAI = 1416126825,
    HB_SCRIPT_TIBETAN = 1416192628,
    HB_SCRIPT_TIRHUTA = 1416196712,
    HB_SCRIPT_TANGSA = 1416524641,
    HB_SCRIPT_TOTO = 1416590447,
    HB_SCRIPT_UGARITIC = 1432838514,
    HB_SCRIPT_VAI = 1449224553,
    HB_SCRIPT_VITHKUQI = 1449751656,
    HB_SCRIPT_WARANG_CITI = 1466004065,
    HB_SCRIPT_WANCHO = 1466132591,
    HB_SCRIPT_OLD_PERSIAN = 1483761007,
    HB_SCRIPT_CUNEIFORM = 1483961720,
    HB_SCRIPT_YEZIDI = 1499822697,
    HB_SCRIPT_YI = 1500080489,
    HB_SCRIPT_ZANABAZAR_SQUARE = 1516334690,
    HB_SCRIPT_INHERITED = 1516858984,
    HB_SCRIPT_MATH = 1517122664,
    HB_SCRIPT_COMMON = 1517910393,
    HB_SCRIPT_UNKNOWN = 1517976186,
    Thb_script_tMaxValue = $7FFFFFFF
  );
  Thb_buffer_serialize_flags_tIdx = (
    Thb_buffer_serialize_flags_tIdxMinValue = 0,
    HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS = 0,
    HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS = 1,
    HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES = 2,
    HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS = 3,
    HB_BUFFER_SERIALIZE_FLAG_GLYPH_FLAGS = 4,
    HB_BUFFER_SERIALIZE_FLAG_NO_ADVANCES = 5,
    Thb_buffer_serialize_flags_tIdxMaxValue = 31
  );
  Thb_buffer_serialize_flags_t = Set of Thb_buffer_serialize_flags_tIdx;
const
  HB_BUFFER_SERIALIZE_FLAG_DEFAULT = []; {0 = $00000000}

  HB_BUFFER_SERIALIZE_FLAG_DEFINED = [
    HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS,
    HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS,
    HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES,
    HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS,
    HB_BUFFER_SERIALIZE_FLAG_GLYPH_FLAGS,
    HB_BUFFER_SERIALIZE_FLAG_NO_ADVANCES
  ]; {63 = $0000003F}

type
  Thb_glyph_flags_tIdx = (
    Thb_glyph_flags_tIdxMinValue = 0,
    HB_GLYPH_FLAG_UNSAFE_TO_BREAK = 0,
    HB_GLYPH_FLAG_UNSAFE_TO_CONCAT = 1,
    HB_GLYPH_FLAG_SAFE_TO_INSERT_TATWEEL = 2,
    Thb_glyph_flags_tIdxMaxValue = 31
  );
  Thb_glyph_flags_t = Set of Thb_glyph_flags_tIdx;
const
  HB_GLYPH_FLAG_DEFINED = [
    HB_GLYPH_FLAG_UNSAFE_TO_BREAK,
    HB_GLYPH_FLAG_UNSAFE_TO_CONCAT,
    HB_GLYPH_FLAG_SAFE_TO_INSERT_TATWEEL
  ]; {7 = $00000007}

type
  Thb_ot_color_palette_flags_tIdx = (
    Thb_ot_color_palette_flags_tIdxMinValue = 0,
    HB_OT_COLOR_PALETTE_FLAG_USABLE_WITH_LIGHT_BACKGROUND = 0,
    HB_OT_COLOR_PALETTE_FLAG_USABLE_WITH_DARK_BACKGROUND = 1,
    Thb_ot_color_palette_flags_tIdxMaxValue = 31
  );
  Thb_ot_color_palette_flags_t = Set of Thb_ot_color_palette_flags_tIdx;
const
  HB_OT_COLOR_PALETTE_FLAG_DEFAULT = []; {0 = $00000000}

type
  Thb_ot_layout_baseline_tag_t = (
    Thb_ot_layout_baseline_tag_tMinValue = -$7FFFFFFF,
    HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_CENTRAL = 1231251043,
    HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_CENTRAL = 1231315813,
    HB_OT_LAYOUT_BASELINE_TAG_HANGING = 1751215719,
    HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_BOTTOM_OR_LEFT = 1768121954,
    HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_TOP_OR_RIGHT = 1768121972,
    HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_BOTTOM_OR_LEFT = 1768187247,
    HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_TOP_OR_RIGHT = 1768191088,
    HB_OT_LAYOUT_BASELINE_TAG_MATH = 1835103336,
    HB_OT_LAYOUT_BASELINE_TAG_ROMAN = 1919905134,
    Thb_ot_layout_baseline_tag_tMaxValue = $7FFFFFFF
  );
  Thb_ot_layout_glyph_class_t = (
    Thb_ot_layout_glyph_class_tMinValue = -$7FFFFFFF,
    HB_OT_LAYOUT_GLYPH_CLASS_UNCLASSIFIED = 0,
    HB_OT_LAYOUT_GLYPH_CLASS_BASE_GLYPH = 1,
    HB_OT_LAYOUT_GLYPH_CLASS_LIGATURE = 2,
    HB_OT_LAYOUT_GLYPH_CLASS_MARK = 3,
    HB_OT_LAYOUT_GLYPH_CLASS_COMPONENT = 4,
    Thb_ot_layout_glyph_class_tMaxValue = $7FFFFFFF
  );
  Thb_ot_math_constant_t = (
    Thb_ot_math_constant_tMinValue = -$7FFFFFFF,
    HB_OT_MATH_CONSTANT_SCRIPT_PERCENT_SCALE_DOWN = 0,
    HB_OT_MATH_CONSTANT_SCRIPT_SCRIPT_PERCENT_SCALE_DOWN = 1,
    HB_OT_MATH_CONSTANT_DELIMITED_SUB_FORMULA_MIN_HEIGHT = 2,
    HB_OT_MATH_CONSTANT_DISPLAY_OPERATOR_MIN_HEIGHT = 3,
    HB_OT_MATH_CONSTANT_MATH_LEADING = 4,
    HB_OT_MATH_CONSTANT_AXIS_HEIGHT = 5,
    HB_OT_MATH_CONSTANT_ACCENT_BASE_HEIGHT = 6,
    HB_OT_MATH_CONSTANT_FLATTENED_ACCENT_BASE_HEIGHT = 7,
    HB_OT_MATH_CONSTANT_SUBSCRIPT_SHIFT_DOWN = 8,
    HB_OT_MATH_CONSTANT_SUBSCRIPT_TOP_MAX = 9,
    HB_OT_MATH_CONSTANT_SUBSCRIPT_BASELINE_DROP_MIN = 10,
    HB_OT_MATH_CONSTANT_SUPERSCRIPT_SHIFT_UP = 11,
    HB_OT_MATH_CONSTANT_SUPERSCRIPT_SHIFT_UP_CRAMPED = 12,
    HB_OT_MATH_CONSTANT_SUPERSCRIPT_BOTTOM_MIN = 13,
    HB_OT_MATH_CONSTANT_SUPERSCRIPT_BASELINE_DROP_MAX = 14,
    HB_OT_MATH_CONSTANT_SUB_SUPERSCRIPT_GAP_MIN = 15,
    HB_OT_MATH_CONSTANT_SUPERSCRIPT_BOTTOM_MAX_WITH_SUBSCRIPT = 16,
    HB_OT_MATH_CONSTANT_SPACE_AFTER_SCRIPT = 17,
    HB_OT_MATH_CONSTANT_UPPER_LIMIT_GAP_MIN = 18,
    HB_OT_MATH_CONSTANT_UPPER_LIMIT_BASELINE_RISE_MIN = 19,
    HB_OT_MATH_CONSTANT_LOWER_LIMIT_GAP_MIN = 20,
    HB_OT_MATH_CONSTANT_LOWER_LIMIT_BASELINE_DROP_MIN = 21,
    HB_OT_MATH_CONSTANT_STACK_TOP_SHIFT_UP = 22,
    HB_OT_MATH_CONSTANT_STACK_TOP_DISPLAY_STYLE_SHIFT_UP = 23,
    HB_OT_MATH_CONSTANT_STACK_BOTTOM_SHIFT_DOWN = 24,
    HB_OT_MATH_CONSTANT_STACK_BOTTOM_DISPLAY_STYLE_SHIFT_DOWN = 25,
    HB_OT_MATH_CONSTANT_STACK_GAP_MIN = 26,
    HB_OT_MATH_CONSTANT_STACK_DISPLAY_STYLE_GAP_MIN = 27,
    HB_OT_MATH_CONSTANT_STRETCH_STACK_TOP_SHIFT_UP = 28,
    HB_OT_MATH_CONSTANT_STRETCH_STACK_BOTTOM_SHIFT_DOWN = 29,
    HB_OT_MATH_CONSTANT_STRETCH_STACK_GAP_ABOVE_MIN = 30,
    HB_OT_MATH_CONSTANT_STRETCH_STACK_GAP_BELOW_MIN = 31,
    HB_OT_MATH_CONSTANT_FRACTION_NUMERATOR_SHIFT_UP = 32,
    HB_OT_MATH_CONSTANT_FRACTION_NUMERATOR_DISPLAY_STYLE_SHIFT_UP = 33,
    HB_OT_MATH_CONSTANT_FRACTION_DENOMINATOR_SHIFT_DOWN = 34,
    HB_OT_MATH_CONSTANT_FRACTION_DENOMINATOR_DISPLAY_STYLE_SHIFT_DOWN = 35,
    HB_OT_MATH_CONSTANT_FRACTION_NUMERATOR_GAP_MIN = 36,
    HB_OT_MATH_CONSTANT_FRACTION_NUM_DISPLAY_STYLE_GAP_MIN = 37,
    HB_OT_MATH_CONSTANT_FRACTION_RULE_THICKNESS = 38,
    HB_OT_MATH_CONSTANT_FRACTION_DENOMINATOR_GAP_MIN = 39,
    HB_OT_MATH_CONSTANT_FRACTION_DENOM_DISPLAY_STYLE_GAP_MIN = 40,
    HB_OT_MATH_CONSTANT_SKEWED_FRACTION_HORIZONTAL_GAP = 41,
    HB_OT_MATH_CONSTANT_SKEWED_FRACTION_VERTICAL_GAP = 42,
    HB_OT_MATH_CONSTANT_OVERBAR_VERTICAL_GAP = 43,
    HB_OT_MATH_CONSTANT_OVERBAR_RULE_THICKNESS = 44,
    HB_OT_MATH_CONSTANT_OVERBAR_EXTRA_ASCENDER = 45,
    HB_OT_MATH_CONSTANT_UNDERBAR_VERTICAL_GAP = 46,
    HB_OT_MATH_CONSTANT_UNDERBAR_RULE_THICKNESS = 47,
    HB_OT_MATH_CONSTANT_UNDERBAR_EXTRA_DESCENDER = 48,
    HB_OT_MATH_CONSTANT_RADICAL_VERTICAL_GAP = 49,
    HB_OT_MATH_CONSTANT_RADICAL_DISPLAY_STYLE_VERTICAL_GAP = 50,
    HB_OT_MATH_CONSTANT_RADICAL_RULE_THICKNESS = 51,
    HB_OT_MATH_CONSTANT_RADICAL_EXTRA_ASCENDER = 52,
    HB_OT_MATH_CONSTANT_RADICAL_KERN_BEFORE_DEGREE = 53,
    HB_OT_MATH_CONSTANT_RADICAL_KERN_AFTER_DEGREE = 54,
    HB_OT_MATH_CONSTANT_RADICAL_DEGREE_BOTTOM_RAISE_PERCENT = 55,
    Thb_ot_math_constant_tMaxValue = $7FFFFFFF
  );
  Thb_ot_math_glyph_part_flags_tIdx = (
    Thb_ot_math_glyph_part_flags_tIdxMinValue = 0,
    HB_OT_MATH_GLYPH_PART_FLAG_EXTENDER = 0,
    Thb_ot_math_glyph_part_flags_tIdxMaxValue = 31
  );
  Thb_ot_math_glyph_part_flags_t = Set of Thb_ot_math_glyph_part_flags_tIdx;
  Thb_ot_math_kern_t = (
    Thb_ot_math_kern_tMinValue = -$7FFFFFFF,
    HB_OT_MATH_KERN_TOP_RIGHT = 0,
    HB_OT_MATH_KERN_TOP_LEFT = 1,
    HB_OT_MATH_KERN_BOTTOM_RIGHT = 2,
    HB_OT_MATH_KERN_BOTTOM_LEFT = 3,
    Thb_ot_math_kern_tMaxValue = $7FFFFFFF
  );
  Thb_ot_meta_tag_t = (
    Thb_ot_meta_tag_tMinValue = -$7FFFFFFF,
    HB_OT_META_TAG_DESIGN_LANGUAGES = 1684827751,
    HB_OT_META_TAG_SUPPORTED_LANGUAGES = 1936485991,
    Thb_ot_meta_tag_tMaxValue = $7FFFFFFF
  );
  Thb_ot_metrics_tag_t = (
    Thb_ot_metrics_tag_tMinValue = -$7FFFFFFF,
    HB_OT_METRICS_TAG_CAP_HEIGHT = 1668311156,
    HB_OT_METRICS_TAG_HORIZONTAL_ASCENDER = 1751216995,
    HB_OT_METRICS_TAG_HORIZONTAL_CLIPPING_ASCENT = 1751346273,
    HB_OT_METRICS_TAG_HORIZONTAL_CLIPPING_DESCENT = 1751346276,
    HB_OT_METRICS_TAG_HORIZONTAL_CARET_OFFSET = 1751347046,
    HB_OT_METRICS_TAG_HORIZONTAL_CARET_RUN = 1751347822,
    HB_OT_METRICS_TAG_HORIZONTAL_CARET_RISE = 1751347827,
    HB_OT_METRICS_TAG_HORIZONTAL_DESCENDER = 1751413603,
    HB_OT_METRICS_TAG_HORIZONTAL_LINE_GAP = 1751934832,
    HB_OT_METRICS_TAG_SUBSCRIPT_EM_X_OFFSET = 1935833199,
    HB_OT_METRICS_TAG_SUBSCRIPT_EM_X_SIZE = 1935833203,
    HB_OT_METRICS_TAG_SUBSCRIPT_EM_Y_OFFSET = 1935833455,
    HB_OT_METRICS_TAG_SUBSCRIPT_EM_Y_SIZE = 1935833459,
    HB_OT_METRICS_TAG_SUPERSCRIPT_EM_X_OFFSET = 1936750703,
    HB_OT_METRICS_TAG_SUPERSCRIPT_EM_X_SIZE = 1936750707,
    HB_OT_METRICS_TAG_SUPERSCRIPT_EM_Y_OFFSET = 1936750959,
    HB_OT_METRICS_TAG_SUPERSCRIPT_EM_Y_SIZE = 1936750963,
    HB_OT_METRICS_TAG_STRIKEOUT_OFFSET = 1937011311,
    HB_OT_METRICS_TAG_STRIKEOUT_SIZE = 1937011315,
    HB_OT_METRICS_TAG_UNDERLINE_OFFSET = 1970168943,
    HB_OT_METRICS_TAG_UNDERLINE_SIZE = 1970168947,
    HB_OT_METRICS_TAG_VERTICAL_ASCENDER = 1986098019,
    HB_OT_METRICS_TAG_VERTICAL_CARET_OFFSET = 1986228070,
    HB_OT_METRICS_TAG_VERTICAL_CARET_RUN = 1986228846,
    HB_OT_METRICS_TAG_VERTICAL_CARET_RISE = 1986228851,
    HB_OT_METRICS_TAG_VERTICAL_DESCENDER = 1986294627,
    HB_OT_METRICS_TAG_VERTICAL_LINE_GAP = 1986815856,
    HB_OT_METRICS_TAG_X_HEIGHT = 2020108148,
    Thb_ot_metrics_tag_tMaxValue = $7FFFFFFF
  );
  Thb_ot_var_axis_flags_tIdx = (
    Thb_ot_var_axis_flags_tIdxMinValue = 0,
    HB_OT_VAR_AXIS_FLAG_HIDDEN = 0,
    Thb_ot_var_axis_flags_tIdxMaxValue = 31
  );
  Thb_ot_var_axis_flags_t = Set of Thb_ot_var_axis_flags_tIdx;
  Thb_style_tag_t = (
    Thb_style_tag_tMinValue = -$7FFFFFFF,
    HB_STYLE_TAG_SLANT_RATIO = 1399615092,
    HB_STYLE_TAG_ITALIC = 1769234796,
    HB_STYLE_TAG_OPTICAL_SIZE = 1869640570,
    HB_STYLE_TAG_SLANT_ANGLE = 1936486004,
    HB_STYLE_TAG_WIDTH = 2003072104,
    HB_STYLE_TAG_WEIGHT = 2003265652,
    Thb_style_tag_tMaxValue = $7FFFFFFF
  );
  Thb_unicode_combining_class_t = (
    Thb_unicode_combining_class_tMinValue = -$7FFFFFFF,
    HB_UNICODE_COMBINING_CLASS_NOT_REORDERED = 0,
    HB_UNICODE_COMBINING_CLASS_OVERLAY = 1,
    HB_UNICODE_COMBINING_CLASS_NUKTA = 7,
    HB_UNICODE_COMBINING_CLASS_KANA_VOICING = 8,
    HB_UNICODE_COMBINING_CLASS_VIRAMA = 9,
    HB_UNICODE_COMBINING_CLASS_CCC10 = 10,
    HB_UNICODE_COMBINING_CLASS_CCC11 = 11,
    HB_UNICODE_COMBINING_CLASS_CCC12 = 12,
    HB_UNICODE_COMBINING_CLASS_CCC13 = 13,
    HB_UNICODE_COMBINING_CLASS_CCC14 = 14,
    HB_UNICODE_COMBINING_CLASS_CCC15 = 15,
    HB_UNICODE_COMBINING_CLASS_CCC16 = 16,
    HB_UNICODE_COMBINING_CLASS_CCC17 = 17,
    HB_UNICODE_COMBINING_CLASS_CCC18 = 18,
    HB_UNICODE_COMBINING_CLASS_CCC19 = 19,
    HB_UNICODE_COMBINING_CLASS_CCC20 = 20,
    HB_UNICODE_COMBINING_CLASS_CCC21 = 21,
    HB_UNICODE_COMBINING_CLASS_CCC22 = 22,
    HB_UNICODE_COMBINING_CLASS_CCC23 = 23,
    HB_UNICODE_COMBINING_CLASS_CCC24 = 24,
    HB_UNICODE_COMBINING_CLASS_CCC25 = 25,
    HB_UNICODE_COMBINING_CLASS_CCC26 = 26,
    HB_UNICODE_COMBINING_CLASS_CCC27 = 27,
    HB_UNICODE_COMBINING_CLASS_CCC28 = 28,
    HB_UNICODE_COMBINING_CLASS_CCC29 = 29,
    HB_UNICODE_COMBINING_CLASS_CCC30 = 30,
    HB_UNICODE_COMBINING_CLASS_CCC31 = 31,
    HB_UNICODE_COMBINING_CLASS_CCC32 = 32,
    HB_UNICODE_COMBINING_CLASS_CCC33 = 33,
    HB_UNICODE_COMBINING_CLASS_CCC34 = 34,
    HB_UNICODE_COMBINING_CLASS_CCC35 = 35,
    HB_UNICODE_COMBINING_CLASS_CCC36 = 36,
    HB_UNICODE_COMBINING_CLASS_CCC84 = 84,
    HB_UNICODE_COMBINING_CLASS_CCC91 = 91,
    HB_UNICODE_COMBINING_CLASS_CCC103 = 103,
    HB_UNICODE_COMBINING_CLASS_CCC107 = 107,
    HB_UNICODE_COMBINING_CLASS_CCC118 = 118,
    HB_UNICODE_COMBINING_CLASS_CCC122 = 122,
    HB_UNICODE_COMBINING_CLASS_CCC129 = 129,
    HB_UNICODE_COMBINING_CLASS_CCC130 = 130,
    HB_UNICODE_COMBINING_CLASS_CCC133 = 132,
    HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW_LEFT = 200,
    HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW = 202,
    HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE = 214,
    HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE_RIGHT = 216,
    HB_UNICODE_COMBINING_CLASS_BELOW_LEFT = 218,
    HB_UNICODE_COMBINING_CLASS_BELOW = 220,
    HB_UNICODE_COMBINING_CLASS_BELOW_RIGHT = 222,
    HB_UNICODE_COMBINING_CLASS_LEFT = 224,
    HB_UNICODE_COMBINING_CLASS_RIGHT = 226,
    HB_UNICODE_COMBINING_CLASS_ABOVE_LEFT = 228,
    HB_UNICODE_COMBINING_CLASS_ABOVE = 230,
    HB_UNICODE_COMBINING_CLASS_ABOVE_RIGHT = 232,
    HB_UNICODE_COMBINING_CLASS_DOUBLE_BELOW = 233,
    HB_UNICODE_COMBINING_CLASS_DOUBLE_ABOVE = 234,
    HB_UNICODE_COMBINING_CLASS_IOTA_SUBSCRIPT = 240,
    HB_UNICODE_COMBINING_CLASS_INVALID = 255,
    Thb_unicode_combining_class_tMaxValue = $7FFFFFFF
  );
  Thb_unicode_general_category_t = (
    Thb_unicode_general_category_tMinValue = -$7FFFFFFF,
    HB_UNICODE_GENERAL_CATEGORY_CONTROL = 0,
    HB_UNICODE_GENERAL_CATEGORY_FORMAT = 1,
    HB_UNICODE_GENERAL_CATEGORY_UNASSIGNED = 2,
    HB_UNICODE_GENERAL_CATEGORY_PRIVATE_USE = 3,
    HB_UNICODE_GENERAL_CATEGORY_SURROGATE = 4,
    HB_UNICODE_GENERAL_CATEGORY_LOWERCASE_LETTER = 5,
    HB_UNICODE_GENERAL_CATEGORY_MODIFIER_LETTER = 6,
    HB_UNICODE_GENERAL_CATEGORY_OTHER_LETTER = 7,
    HB_UNICODE_GENERAL_CATEGORY_TITLECASE_LETTER = 8,
    HB_UNICODE_GENERAL_CATEGORY_UPPERCASE_LETTER = 9,
    HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK = 10,
    HB_UNICODE_GENERAL_CATEGORY_ENCLOSING_MARK = 11,
    HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK = 12,
    HB_UNICODE_GENERAL_CATEGORY_DECIMAL_NUMBER = 13,
    HB_UNICODE_GENERAL_CATEGORY_LETTER_NUMBER = 14,
    HB_UNICODE_GENERAL_CATEGORY_OTHER_NUMBER = 15,
    HB_UNICODE_GENERAL_CATEGORY_CONNECT_PUNCTUATION = 16,
    HB_UNICODE_GENERAL_CATEGORY_DASH_PUNCTUATION = 17,
    HB_UNICODE_GENERAL_CATEGORY_CLOSE_PUNCTUATION = 18,
    HB_UNICODE_GENERAL_CATEGORY_FINAL_PUNCTUATION = 19,
    HB_UNICODE_GENERAL_CATEGORY_INITIAL_PUNCTUATION = 20,
    HB_UNICODE_GENERAL_CATEGORY_OTHER_PUNCTUATION = 21,
    HB_UNICODE_GENERAL_CATEGORY_OPEN_PUNCTUATION = 22,
    HB_UNICODE_GENERAL_CATEGORY_CURRENCY_SYMBOL = 23,
    HB_UNICODE_GENERAL_CATEGORY_MODIFIER_SYMBOL = 24,
    HB_UNICODE_GENERAL_CATEGORY_MATH_SYMBOL = 25,
    HB_UNICODE_GENERAL_CATEGORY_OTHER_SYMBOL = 26,
    HB_UNICODE_GENERAL_CATEGORY_LINE_SEPARATOR = 27,
    HB_UNICODE_GENERAL_CATEGORY_PARAGRAPH_SEPARATOR = 28,
    HB_UNICODE_GENERAL_CATEGORY_SPACE_SEPARATOR = 29,
    Thb_unicode_general_category_tMaxValue = $7FFFFFFF
  );
type


  { Thb_bool_t }
  PPhb_bool_t = ^Phb_bool_t;
  Phb_bool_t = ^Thb_bool_t;
  Thb_bool_t = gint;


  { Thb_codepoint_t }
  PPPhb_codepoint_t = ^PPhb_codepoint_t;
  PPhb_codepoint_t = ^Phb_codepoint_t;
  Phb_codepoint_t = ^Thb_codepoint_t;
  Thb_codepoint_t = guint32;


  { Thb_color_t }
  PPPhb_color_t = ^PPhb_color_t;
  PPhb_color_t = ^Phb_color_t;
  Phb_color_t = ^Thb_color_t;
  Thb_color_t = guint32;


  { Thb_font_t }
  PPhb_font_t = ^Phb_font_t;
  Phb_font_t = ^Thb_font_t;


  { Thb_font_extents_t }
  PPhb_font_extents_t = ^Phb_font_extents_t;
  Phb_font_extents_t = ^Thb_font_extents_t;
  Thb_font_get_font_extents_func_t = function(font: Phb_font_t; font_data: Pgpointer; extents: Phb_font_extents_t; user_data: Pgpointer): Thb_bool_t; cdecl;


  { Thb_font_get_font_h_extents_func_t }
  PPhb_font_get_font_h_extents_func_t = ^Phb_font_get_font_h_extents_func_t;
  Phb_font_get_font_h_extents_func_t = ^Thb_font_get_font_h_extents_func_t;
  Thb_font_get_font_h_extents_func_t = Thb_font_get_font_extents_func_t;


  { Thb_font_get_font_v_extents_func_t }
  PPhb_font_get_font_v_extents_func_t = ^Phb_font_get_font_v_extents_func_t;
  Phb_font_get_font_v_extents_func_t = ^Thb_font_get_font_v_extents_func_t;
  Thb_font_get_font_v_extents_func_t = Thb_font_get_font_extents_func_t;


  { Thb_position_t }
  PPPhb_position_t = ^PPhb_position_t;
  PPhb_position_t = ^Phb_position_t;
  Phb_position_t = ^Thb_position_t;
  Thb_position_t = gint32;
  Thb_font_get_glyph_advance_func_t = function(font: Phb_font_t; font_data: Pgpointer; glyph: Thb_codepoint_t; user_data: Pgpointer): Thb_position_t; cdecl;


  { Thb_font_get_glyph_h_advance_func_t }
  PPhb_font_get_glyph_h_advance_func_t = ^Phb_font_get_glyph_h_advance_func_t;
  Phb_font_get_glyph_h_advance_func_t = ^Thb_font_get_glyph_h_advance_func_t;
  Thb_font_get_glyph_h_advance_func_t = Thb_font_get_glyph_advance_func_t;
  Thb_font_get_glyph_advances_func_t = procedure(font: Phb_font_t; font_data: Pgpointer; count: guint; first_glyph: Phb_codepoint_t; glyph_stride: guint; first_advance: Phb_position_t; advance_stride: guint; user_data: Pgpointer); cdecl;


  { Thb_font_get_glyph_h_advances_func_t }
  PPhb_font_get_glyph_h_advances_func_t = ^Phb_font_get_glyph_h_advances_func_t;
  Phb_font_get_glyph_h_advances_func_t = ^Thb_font_get_glyph_h_advances_func_t;
  Thb_font_get_glyph_h_advances_func_t = Thb_font_get_glyph_advances_func_t;
  Thb_font_get_glyph_kerning_func_t = function(font: Phb_font_t; font_data: Pgpointer; first_glyph: Thb_codepoint_t; second_glyph: Thb_codepoint_t; user_data: Pgpointer): Thb_position_t; cdecl;


  { Thb_font_get_glyph_h_kerning_func_t }
  PPhb_font_get_glyph_h_kerning_func_t = ^Phb_font_get_glyph_h_kerning_func_t;
  Phb_font_get_glyph_h_kerning_func_t = ^Thb_font_get_glyph_h_kerning_func_t;
  Thb_font_get_glyph_h_kerning_func_t = Thb_font_get_glyph_kerning_func_t;
  Thb_font_get_glyph_origin_func_t = function(font: Phb_font_t; font_data: Pgpointer; glyph: Thb_codepoint_t; x: Phb_position_t; y: Phb_position_t; user_data: Pgpointer): Thb_bool_t; cdecl;


  { Thb_font_get_glyph_h_origin_func_t }
  PPhb_font_get_glyph_h_origin_func_t = ^Phb_font_get_glyph_h_origin_func_t;
  Phb_font_get_glyph_h_origin_func_t = ^Thb_font_get_glyph_h_origin_func_t;
  Thb_font_get_glyph_h_origin_func_t = Thb_font_get_glyph_origin_func_t;


  { Thb_font_get_glyph_v_advance_func_t }
  PPhb_font_get_glyph_v_advance_func_t = ^Phb_font_get_glyph_v_advance_func_t;
  Phb_font_get_glyph_v_advance_func_t = ^Thb_font_get_glyph_v_advance_func_t;
  Thb_font_get_glyph_v_advance_func_t = Thb_font_get_glyph_advance_func_t;


  { Thb_font_get_glyph_v_advances_func_t }
  PPhb_font_get_glyph_v_advances_func_t = ^Phb_font_get_glyph_v_advances_func_t;
  Phb_font_get_glyph_v_advances_func_t = ^Thb_font_get_glyph_v_advances_func_t;
  Thb_font_get_glyph_v_advances_func_t = Thb_font_get_glyph_advances_func_t;


  { Thb_font_get_glyph_v_kerning_func_t }
  PPhb_font_get_glyph_v_kerning_func_t = ^Phb_font_get_glyph_v_kerning_func_t;
  Phb_font_get_glyph_v_kerning_func_t = ^Thb_font_get_glyph_v_kerning_func_t;
  Thb_font_get_glyph_v_kerning_func_t = Thb_font_get_glyph_kerning_func_t;


  { Thb_font_get_glyph_v_origin_func_t }
  PPhb_font_get_glyph_v_origin_func_t = ^Phb_font_get_glyph_v_origin_func_t;
  Phb_font_get_glyph_v_origin_func_t = ^Thb_font_get_glyph_v_origin_func_t;
  Thb_font_get_glyph_v_origin_func_t = Thb_font_get_glyph_origin_func_t;


  { Thb_mask_t }
  PPhb_mask_t = ^Phb_mask_t;
  Phb_mask_t = ^Thb_mask_t;
  Thb_mask_t = guint32;


  { Thb_ot_name_id_t }
  PPhb_ot_name_id_t = ^Phb_ot_name_id_t;
  Phb_ot_name_id_t = ^Thb_ot_name_id_t;
  Thb_ot_name_id_t = guint;


  { Thb_tag_t }
  PPPhb_tag_t = ^PPhb_tag_t;
  PPhb_tag_t = ^Phb_tag_t;
  Phb_tag_t = ^Thb_tag_t;
  Thb_tag_t = guint32;


  { Thb_language_t }
  PPhb_language_t = ^Phb_language_t;
  Phb_language_t = ^Thb_language_t;
  Thb_language_t = object
    function _string: Pgchar; cdecl; inline;
  end;


  { Thb_aat_layout_feature_selector_t }
  PPhb_aat_layout_feature_selector_t = ^Phb_aat_layout_feature_selector_t;
  Phb_aat_layout_feature_selector_t = ^Thb_aat_layout_feature_selector_t;


  { Thb_aat_layout_feature_selector_info_t }
  PPPhb_aat_layout_feature_selector_info_t = ^PPhb_aat_layout_feature_selector_info_t;
  PPhb_aat_layout_feature_selector_info_t = ^Phb_aat_layout_feature_selector_info_t;
  Phb_aat_layout_feature_selector_info_t = ^Thb_aat_layout_feature_selector_info_t;

  Thb_aat_layout_feature_selector_info_t = record
    name_id: Thb_ot_name_id_t;
    enable: Thb_aat_layout_feature_selector_t;
    disable: Thb_aat_layout_feature_selector_t;
    reserved: guint;
  end;




  { Thb_face_t }
  PPhb_face_t = ^Phb_face_t;
  Phb_face_t = ^Thb_face_t;
  Thb_face_t = object
  end;


  { Thb_aat_layout_feature_type_t }
  PPhb_aat_layout_feature_type_t = ^Phb_aat_layout_feature_type_t;
  Phb_aat_layout_feature_type_t = ^Thb_aat_layout_feature_type_t;


  { Thb_blob_t }
  PPhb_blob_t = ^Phb_blob_t;
  Phb_blob_t = ^Thb_blob_t;
  Thb_blob_t = object
  end;


  { Thb_memory_mode_t }
  PPhb_memory_mode_t = ^Phb_memory_mode_t;
  Phb_memory_mode_t = ^Thb_memory_mode_t;
  Thb_destroy_func_t = procedure(user_data: Pgpointer); cdecl;


  { Thb_user_data_key_t }
  PPhb_user_data_key_t = ^Phb_user_data_key_t;
  Phb_user_data_key_t = ^Thb_user_data_key_t;
  Thb_user_data_key_t = object
    unused: gchar;
  end;


  { Thb_buffer_t }
  PPhb_buffer_t = ^Phb_buffer_t;
  Phb_buffer_t = ^Thb_buffer_t;
  Thb_buffer_t = object
  end;


  { Thb_buffer_cluster_level_t }
  PPhb_buffer_cluster_level_t = ^Phb_buffer_cluster_level_t;
  Phb_buffer_cluster_level_t = ^Thb_buffer_cluster_level_t;


  { Thb_buffer_content_type_t }
  PPhb_buffer_content_type_t = ^Phb_buffer_content_type_t;
  Phb_buffer_content_type_t = ^Thb_buffer_content_type_t;
  Thb_font_t = object
  end;


  { Thb_buffer_serialize_format_t }
  PPhb_buffer_serialize_format_t = ^Phb_buffer_serialize_format_t;
  Phb_buffer_serialize_format_t = ^Thb_buffer_serialize_format_t;


  { Thb_buffer_diff_flags_t }
  PPhb_buffer_diff_flags_t = ^Phb_buffer_diff_flags_t;
  Phb_buffer_diff_flags_t = ^Thb_buffer_diff_flags_t;


  { Thb_buffer_flags_t }
  PPhb_buffer_flags_t = ^Phb_buffer_flags_t;
  Phb_buffer_flags_t = ^Thb_buffer_flags_t;


  { Thb_direction_t }
  PPhb_direction_t = ^Phb_direction_t;
  Phb_direction_t = ^Thb_direction_t;


  { Thb_glyph_info_t }
  PPhb_glyph_info_t = ^Phb_glyph_info_t;
  Phb_glyph_info_t = ^Thb_glyph_info_t;


  { Thb_var_int_t }
  PPhb_var_int_t = ^Phb_var_int_t;
  Phb_var_int_t = ^Thb_var_int_t;
  Thb_var_int_t = record
    case longint of
      0 : (u32: guint32);
      1 : (i32: gint32);
      2 : (u16: array [0..1] of guint16);
      3 : (i16: array [0..1] of gint16);
      4 : (u8: array [0..3] of guint8);
      5 : (i8: array [0..3] of gint8);
  end;


  Thb_glyph_info_t = object
    codepoint: Thb_codepoint_t;
    mask: Thb_mask_t;
    cluster: guint32;
    var1: Thb_var_int_t;
    var2: Thb_var_int_t;
  end;


  { Thb_glyph_position_t }
  PPhb_glyph_position_t = ^Phb_glyph_position_t;
  Phb_glyph_position_t = ^Thb_glyph_position_t;
  Thb_glyph_position_t = object
    x_advance: Thb_position_t;
    y_advance: Thb_position_t;
    x_offset: Thb_position_t;
    y_offset: Thb_position_t;
    var_: Thb_var_int_t;
  end;


  { Thb_script_t }
  PPhb_script_t = ^Phb_script_t;
  Phb_script_t = ^Thb_script_t;


  { Thb_segment_properties_t }
  PPhb_segment_properties_t = ^Phb_segment_properties_t;
  Phb_segment_properties_t = ^Thb_segment_properties_t;
  Thb_segment_properties_t = object
    direction: Thb_direction_t;
    script: Thb_script_t;
    language: Thb_language_t;
    reserved1: Pgpointer;
    reserved2: Pgpointer;
  end;


  { Thb_unicode_funcs_t }
  PPhb_unicode_funcs_t = ^Phb_unicode_funcs_t;
  Phb_unicode_funcs_t = ^Thb_unicode_funcs_t;
  Thb_unicode_funcs_t = object
  end;
  Thb_buffer_message_func_t = function(buffer: Phb_buffer_t; font: Phb_font_t; message: Pgchar; user_data: Pgpointer): Thb_bool_t; cdecl;


  { Thb_buffer_serialize_flags_t }
  PPhb_buffer_serialize_flags_t = ^Phb_buffer_serialize_flags_t;
  Phb_buffer_serialize_flags_t = ^Thb_buffer_serialize_flags_t;


  { Thb_draw_funcs_t }
  PPhb_draw_funcs_t = ^Phb_draw_funcs_t;
  Phb_draw_funcs_t = ^Thb_draw_funcs_t;
  Thb_draw_funcs_t = object
  end;


  { Thb_draw_state_t }
  PPhb_draw_state_t = ^Phb_draw_state_t;
  Phb_draw_state_t = ^Thb_draw_state_t;


  { Thb_var_num_t }
  PPhb_var_num_t = ^Phb_var_num_t;
  Phb_var_num_t = ^Thb_var_num_t;
  Thb_var_num_t = record
    case longint of
      0 : (f: gfloat);
      1 : (u32: guint32);
      2 : (i32: gint32);
      3 : (u16: array [0..1] of guint16);
      4 : (i16: array [0..1] of gint16);
      5 : (u8: array [0..3] of guint8);
      6 : (i8: array [0..3] of gint8);
  end;



  Thb_draw_state_t = record
    path_open: Thb_bool_t;
    path_start_x: gfloat;
    path_start_y: gfloat;
    current_x: gfloat;
    current_y: gfloat;
    reserved1: Thb_var_num_t;
    reserved2: Thb_var_num_t;
    reserved3: Thb_var_num_t;
    reserved4: Thb_var_num_t;
    reserved5: Thb_var_num_t;
    reserved6: Thb_var_num_t;
    reserved7: Thb_var_num_t;
  end;


  Thb_draw_close_path_func_t = procedure(dfuncs: Phb_draw_funcs_t; draw_data: Pgpointer; st: Phb_draw_state_t; user_data: Pgpointer); cdecl;
  Thb_draw_cubic_to_func_t = procedure(dfuncs: Phb_draw_funcs_t; draw_data: Pgpointer; st: Phb_draw_state_t; control1_x: gfloat; control1_y: gfloat; control2_x: gfloat; control2_y: gfloat; to_x: gfloat; to_y: gfloat; user_data: Pgpointer); cdecl;
  Thb_draw_line_to_func_t = procedure(dfuncs: Phb_draw_funcs_t; draw_data: Pgpointer; st: Phb_draw_state_t; to_x: gfloat; to_y: gfloat; user_data: Pgpointer); cdecl;
  Thb_draw_move_to_func_t = procedure(dfuncs: Phb_draw_funcs_t; draw_data: Pgpointer; st: Phb_draw_state_t; to_x: gfloat; to_y: gfloat; user_data: Pgpointer); cdecl;
  Thb_draw_quadratic_to_func_t = procedure(dfuncs: Phb_draw_funcs_t; draw_data: Pgpointer; st: Phb_draw_state_t; control_x: gfloat; control_y: gfloat; to_x: gfloat; to_y: gfloat; user_data: Pgpointer); cdecl;


  { Thb_set_t }
  PPhb_set_t = ^Phb_set_t;
  Phb_set_t = ^Thb_set_t;
  Thb_set_t = object
  end;
  Thb_reference_table_func_t = function(face: Phb_face_t; tag: Thb_tag_t; user_data: Pgpointer): Phb_blob_t; cdecl;


  { Thb_feature_t }
  PPPhb_feature_t = ^PPhb_feature_t;
  PPhb_feature_t = ^Phb_feature_t;
  Phb_feature_t = ^Thb_feature_t;
  Thb_feature_t = object
    tag: Thb_tag_t;
    value: guint32;
    start: guint;
    end_: guint;
    procedure _string(buf: Pgchar; size: Pguint); cdecl; inline;
  end;

  Thb_font_extents_t = record
    ascender: Thb_position_t;
    descender: Thb_position_t;
    line_gap: Thb_position_t;
    reserved9: Thb_position_t;
    reserved8: Thb_position_t;
    reserved7: Thb_position_t;
    reserved6: Thb_position_t;
    reserved5: Thb_position_t;
    reserved4: Thb_position_t;
    reserved3: Thb_position_t;
    reserved2: Thb_position_t;
    reserved1: Thb_position_t;
  end;




  { Thb_font_funcs_t }
  PPhb_font_funcs_t = ^Phb_font_funcs_t;
  Phb_font_funcs_t = ^Thb_font_funcs_t;
  Thb_font_funcs_t = object
  end;
  Thb_font_get_glyph_contour_point_func_t = function(font: Phb_font_t; font_data: Pgpointer; glyph: Thb_codepoint_t; point_index: guint; x: Phb_position_t; y: Phb_position_t; user_data: Pgpointer): Thb_bool_t; cdecl;


  { Thb_glyph_extents_t }
  PPhb_glyph_extents_t = ^Phb_glyph_extents_t;
  Phb_glyph_extents_t = ^Thb_glyph_extents_t;
  Thb_font_get_glyph_extents_func_t = function(font: Phb_font_t; font_data: Pgpointer; glyph: Thb_codepoint_t; extents: Phb_glyph_extents_t; user_data: Pgpointer): Thb_bool_t; cdecl;
  Thb_font_get_glyph_from_name_func_t = function(font: Phb_font_t; font_data: Pgpointer; name: Pgchar; len: gint; glyph: Phb_codepoint_t; user_data: Pgpointer): Thb_bool_t; cdecl;
  Thb_font_get_glyph_name_func_t = function(font: Phb_font_t; font_data: Pgpointer; glyph: Thb_codepoint_t; name: Pgchar; size: Pguint; user_data: Pgpointer): Thb_bool_t; cdecl;
  Thb_font_get_glyph_shape_func_t = procedure(font: Phb_font_t; font_data: Pgpointer; glyph: Thb_codepoint_t; draw_funcs: Phb_draw_funcs_t; draw_data: Pgpointer; user_data: Pgpointer); cdecl;
  Thb_font_get_nominal_glyph_func_t = function(font: Phb_font_t; font_data: Pgpointer; unicode: Thb_codepoint_t; glyph: Phb_codepoint_t; user_data: Pgpointer): Thb_bool_t; cdecl;
  Thb_font_get_nominal_glyphs_func_t = function(font: Phb_font_t; font_data: Pgpointer; count: guint; first_unicode: Phb_codepoint_t; unicode_stride: guint; first_glyph: Phb_codepoint_t; glyph_stride: guint; user_data: Pgpointer): guint; cdecl;
  Thb_font_get_variation_glyph_func_t = function(font: Phb_font_t; font_data: Pgpointer; unicode: Thb_codepoint_t; variation_selector: Thb_codepoint_t; glyph: Phb_codepoint_t; user_data: Pgpointer): Thb_bool_t; cdecl;

  Thb_glyph_extents_t = record
    x_bearing: Thb_position_t;
    y_bearing: Thb_position_t;
    width: Thb_position_t;
    height: Thb_position_t;
  end;




  { Thb_variation_t }
  PPhb_variation_t = ^Phb_variation_t;
  Phb_variation_t = ^Thb_variation_t;
  Thb_variation_t = object
    tag: Thb_tag_t;
    value: gfloat;
    procedure _string(buf: Pgchar; size: Pguint); cdecl; inline;
  end;


  { Thb_glyph_flags_t }
  PPhb_glyph_flags_t = ^Phb_glyph_flags_t;
  Phb_glyph_flags_t = ^Thb_glyph_flags_t;

  { gr_face* }
  Tgr_face = record
    { opaque type }
    Unknown: Pointer;
  end;


  { gr_font* }
  Tgr_font = record
    { opaque type }
    Unknown: Pointer;
  end;



  { Thb_map_t }
  PPhb_map_t = ^Phb_map_t;
  Phb_map_t = ^Thb_map_t;
  Thb_map_t = object
  end;


  { Thb_ot_color_layer_t }
  PPPhb_ot_color_layer_t = ^PPhb_ot_color_layer_t;
  PPhb_ot_color_layer_t = ^Phb_ot_color_layer_t;
  Phb_ot_color_layer_t = ^Thb_ot_color_layer_t;

  Thb_ot_color_layer_t = record
    glyph: Thb_codepoint_t;
    color_index: guint;
  end;




  { Thb_ot_color_palette_flags_t }
  PPhb_ot_color_palette_flags_t = ^Phb_ot_color_palette_flags_t;
  Phb_ot_color_palette_flags_t = ^Thb_ot_color_palette_flags_t;


  { Thb_ot_layout_baseline_tag_t }
  PPhb_ot_layout_baseline_tag_t = ^Phb_ot_layout_baseline_tag_t;
  Phb_ot_layout_baseline_tag_t = ^Thb_ot_layout_baseline_tag_t;


  { Thb_ot_layout_glyph_class_t }
  PPhb_ot_layout_glyph_class_t = ^Phb_ot_layout_glyph_class_t;
  Phb_ot_layout_glyph_class_t = ^Thb_ot_layout_glyph_class_t;


  { Thb_ot_math_constant_t }
  PPhb_ot_math_constant_t = ^Phb_ot_math_constant_t;
  Phb_ot_math_constant_t = ^Thb_ot_math_constant_t;


  { Thb_ot_math_glyph_part_t }
  PPPhb_ot_math_glyph_part_t = ^PPhb_ot_math_glyph_part_t;
  PPhb_ot_math_glyph_part_t = ^Phb_ot_math_glyph_part_t;
  Phb_ot_math_glyph_part_t = ^Thb_ot_math_glyph_part_t;


  { Thb_ot_math_glyph_part_flags_t }
  PPhb_ot_math_glyph_part_flags_t = ^Phb_ot_math_glyph_part_flags_t;
  Phb_ot_math_glyph_part_flags_t = ^Thb_ot_math_glyph_part_flags_t;
  Thb_ot_math_glyph_part_t = object
    glyph: Thb_codepoint_t;
    start_connector_length: Thb_position_t;
    end_connector_length: Thb_position_t;
    full_advance: Thb_position_t;
    flags: Thb_ot_math_glyph_part_flags_t;
  end;


  { Thb_ot_math_kern_t }
  PPhb_ot_math_kern_t = ^Phb_ot_math_kern_t;
  Phb_ot_math_kern_t = ^Thb_ot_math_kern_t;


  { Thb_ot_math_kern_entry_t }
  PPPhb_ot_math_kern_entry_t = ^PPhb_ot_math_kern_entry_t;
  PPhb_ot_math_kern_entry_t = ^Phb_ot_math_kern_entry_t;
  Phb_ot_math_kern_entry_t = ^Thb_ot_math_kern_entry_t;

  Thb_ot_math_kern_entry_t = record
    max_correction_height: Thb_position_t;
    kern_value: Thb_position_t;
  end;




  { Thb_ot_math_glyph_variant_t }
  PPPhb_ot_math_glyph_variant_t = ^PPhb_ot_math_glyph_variant_t;
  PPhb_ot_math_glyph_variant_t = ^Phb_ot_math_glyph_variant_t;
  Phb_ot_math_glyph_variant_t = ^Thb_ot_math_glyph_variant_t;
  Thb_ot_math_glyph_variant_t = object
    glyph: Thb_codepoint_t;
    advance: Thb_position_t;
  end;


  { Thb_ot_meta_tag_t }
  PPhb_ot_meta_tag_t = ^Phb_ot_meta_tag_t;
  Phb_ot_meta_tag_t = ^Thb_ot_meta_tag_t;


  { Thb_ot_metrics_tag_t }
  PPhb_ot_metrics_tag_t = ^Phb_ot_metrics_tag_t;
  Phb_ot_metrics_tag_t = ^Thb_ot_metrics_tag_t;


  { Thb_ot_name_entry_t }
  PPhb_ot_name_entry_t = ^Phb_ot_name_entry_t;
  Phb_ot_name_entry_t = ^Thb_ot_name_entry_t;

  Thb_ot_name_entry_t = record
    name_id: Thb_ot_name_id_t;
    var_: Thb_var_int_t;
    language: Thb_language_t;
  end;




  { Thb_shape_plan_t }
  PPhb_shape_plan_t = ^Phb_shape_plan_t;
  Phb_shape_plan_t = ^Thb_shape_plan_t;
  Thb_shape_plan_t = object
  end;


  { Thb_ot_var_axis_flags_t }
  PPhb_ot_var_axis_flags_t = ^Phb_ot_var_axis_flags_t;
  Phb_ot_var_axis_flags_t = ^Thb_ot_var_axis_flags_t;


  { Thb_ot_var_axis_info_t }
  PPhb_ot_var_axis_info_t = ^Phb_ot_var_axis_info_t;
  Phb_ot_var_axis_info_t = ^Thb_ot_var_axis_info_t;

  Thb_ot_var_axis_info_t = record
    axis_index: guint;
    tag: Thb_tag_t;
    name_id: Thb_ot_name_id_t;
    flags: Thb_ot_var_axis_flags_t;
    min_value: gfloat;
    default_value: gfloat;
    max_value: gfloat;
    reserved: guint;
  end;




  { Thb_ot_var_axis_t }
  PPhb_ot_var_axis_t = ^Phb_ot_var_axis_t;
  Phb_ot_var_axis_t = ^Thb_ot_var_axis_t;

  Thb_ot_var_axis_t = record
    tag: Thb_tag_t;
    name_id: Thb_ot_name_id_t;
    min_value: gfloat;
    default_value: gfloat;
    max_value: gfloat;
  end;




  { Thb_style_tag_t }
  PPhb_style_tag_t = ^Phb_style_tag_t;
  Phb_style_tag_t = ^Thb_style_tag_t;


  { Thb_unicode_combining_class_t }
  PPhb_unicode_combining_class_t = ^Phb_unicode_combining_class_t;
  Phb_unicode_combining_class_t = ^Thb_unicode_combining_class_t;
  Thb_unicode_combining_class_func_t = function(ufuncs: Phb_unicode_funcs_t; unicode: Thb_codepoint_t; user_data: Pgpointer): Thb_unicode_combining_class_t; cdecl;
  Thb_unicode_compose_func_t = function(ufuncs: Phb_unicode_funcs_t; a: Thb_codepoint_t; b: Thb_codepoint_t; ab: Phb_codepoint_t; user_data: Pgpointer): Thb_bool_t; cdecl;
  Thb_unicode_decompose_compatibility_func_t = function(ufuncs: Phb_unicode_funcs_t; u: Thb_codepoint_t; decomposed: Phb_codepoint_t; user_data: Pgpointer): guint; cdecl;
  Thb_unicode_decompose_func_t = function(ufuncs: Phb_unicode_funcs_t; ab: Thb_codepoint_t; a: Phb_codepoint_t; b: Phb_codepoint_t; user_data: Pgpointer): Thb_bool_t; cdecl;
  Thb_unicode_eastasian_width_func_t = function(ufuncs: Phb_unicode_funcs_t; unicode: Thb_codepoint_t; user_data: Pgpointer): guint; cdecl;


  { Thb_unicode_general_category_t }
  PPhb_unicode_general_category_t = ^Phb_unicode_general_category_t;
  Phb_unicode_general_category_t = ^Thb_unicode_general_category_t;
  Thb_unicode_general_category_func_t = function(ufuncs: Phb_unicode_funcs_t; unicode: Thb_codepoint_t; user_data: Pgpointer): Thb_unicode_general_category_t; cdecl;
  Thb_unicode_mirroring_func_t = function(ufuncs: Phb_unicode_funcs_t; unicode: Thb_codepoint_t; user_data: Pgpointer): Thb_codepoint_t; cdecl;
  Thb_unicode_script_func_t = function(ufuncs: Phb_unicode_funcs_t; unicode: Thb_codepoint_t; user_data: Pgpointer): Thb_script_t; cdecl;

function hb_aat_layout_feature_type_get_name_id(face: Phb_face_t; feature_type: Thb_aat_layout_feature_type_t): Thb_ot_name_id_t; cdecl; external;
function hb_aat_layout_feature_type_get_selector_infos(face: Phb_face_t; feature_type: Thb_aat_layout_feature_type_t; start_offset: guint; selector_count: Pguint; selectors: Phb_aat_layout_feature_selector_info_t; default_index: Pguint): guint; cdecl; external;
function hb_aat_layout_get_feature_types(face: Phb_face_t; start_offset: guint; feature_count: Pguint; features: Phb_aat_layout_feature_type_t): guint; cdecl; external;
function hb_aat_layout_has_positioning(face: Phb_face_t): Thb_bool_t; cdecl; external;
function hb_aat_layout_has_substitution(face: Phb_face_t): Thb_bool_t; cdecl; external;
function hb_aat_layout_has_tracking(face: Phb_face_t): Thb_bool_t; cdecl; external;
function hb_blob_copy_writable_or_fail(blob: Phb_blob_t): Phb_blob_t; cdecl; external;
function hb_blob_create(data: Pgchar; length: guint; mode: Thb_memory_mode_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t): Phb_blob_t; cdecl; external;
function hb_blob_create_from_file(file_name: Pgchar): Phb_blob_t; cdecl; external;
function hb_blob_create_from_file_or_fail(file_name: Pgchar): Phb_blob_t; cdecl; external;
function hb_blob_create_or_fail(data: Pgchar; length: guint; mode: Thb_memory_mode_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t): Phb_blob_t; cdecl; external;
function hb_blob_create_sub_blob(parent: Phb_blob_t; offset: guint; length: guint): Phb_blob_t; cdecl; external;
function hb_blob_get_data(blob: Phb_blob_t; length: Pguint): Pgchar; cdecl; external;
function hb_blob_get_data_writable(blob: Phb_blob_t; length: Pguint): Pgchar; cdecl; external;
function hb_blob_get_empty: Phb_blob_t; cdecl; external;
function hb_blob_get_length(blob: Phb_blob_t): guint; cdecl; external;
function hb_blob_get_user_data(blob: Phb_blob_t; key: Phb_user_data_key_t): Pgpointer; cdecl; external;
function hb_blob_is_immutable(blob: Phb_blob_t): Thb_bool_t; cdecl; external;
function hb_blob_reference(blob: Phb_blob_t): Phb_blob_t; cdecl; external;
function hb_blob_set_user_data(blob: Phb_blob_t; key: Phb_user_data_key_t; data: Pgpointer; destroy_: Thb_destroy_func_t; replace: Thb_bool_t): Thb_bool_t; cdecl; external;
function hb_buffer_allocation_successful(buffer: Phb_buffer_t): Thb_bool_t; cdecl; external;
function hb_buffer_create: Phb_buffer_t; cdecl; external;
function hb_buffer_create_similar(src: Phb_buffer_t): Phb_buffer_t; cdecl; external;
function hb_buffer_deserialize_glyphs(buffer: Phb_buffer_t; buf: Pgchar; buf_len: gint; end_ptr: PPgchar; font: Phb_font_t; format: Thb_buffer_serialize_format_t): Thb_bool_t; cdecl; external;
function hb_buffer_deserialize_unicode(buffer: Phb_buffer_t; buf: Pgchar; buf_len: gint; end_ptr: PPgchar; format: Thb_buffer_serialize_format_t): Thb_bool_t; cdecl; external;
function hb_buffer_diff(buffer: Phb_buffer_t; reference: Phb_buffer_t; dottedcircle_glyph: Thb_codepoint_t; position_fuzz: guint): Thb_buffer_diff_flags_t; cdecl; external;
function hb_buffer_get_cluster_level(buffer: Phb_buffer_t): Thb_buffer_cluster_level_t; cdecl; external;
function hb_buffer_get_content_type(buffer: Phb_buffer_t): Thb_buffer_content_type_t; cdecl; external;
function hb_buffer_get_direction(buffer: Phb_buffer_t): Thb_direction_t; cdecl; external;
function hb_buffer_get_empty: Phb_buffer_t; cdecl; external;
function hb_buffer_get_flags(buffer: Phb_buffer_t): Thb_buffer_flags_t; cdecl; external;
function hb_buffer_get_glyph_infos(buffer: Phb_buffer_t; length: Pguint): Phb_glyph_info_t; cdecl; external;
function hb_buffer_get_glyph_positions(buffer: Phb_buffer_t; length: Pguint): Phb_glyph_position_t; cdecl; external;
function hb_buffer_get_invisible_glyph(buffer: Phb_buffer_t): Thb_codepoint_t; cdecl; external;
function hb_buffer_get_language(buffer: Phb_buffer_t): Thb_language_t; cdecl; external;
function hb_buffer_get_length(buffer: Phb_buffer_t): guint; cdecl; external;
function hb_buffer_get_not_found_glyph(buffer: Phb_buffer_t): Thb_codepoint_t; cdecl; external;
function hb_buffer_get_replacement_codepoint(buffer: Phb_buffer_t): Thb_codepoint_t; cdecl; external;
function hb_buffer_get_script(buffer: Phb_buffer_t): Thb_script_t; cdecl; external;
function hb_buffer_get_unicode_funcs(buffer: Phb_buffer_t): Phb_unicode_funcs_t; cdecl; external;
function hb_buffer_get_user_data(buffer: Phb_buffer_t; key: Phb_user_data_key_t): Pgpointer; cdecl; external;
function hb_buffer_has_positions(buffer: Phb_buffer_t): Thb_bool_t; cdecl; external;
function hb_buffer_pre_allocate(buffer: Phb_buffer_t; size: guint): Thb_bool_t; cdecl; external;
function hb_buffer_reference(buffer: Phb_buffer_t): Phb_buffer_t; cdecl; external;
function hb_buffer_serialize(buffer: Phb_buffer_t; start: guint; end_: guint; buf: Pgchar; buf_size: Pguint; buf_consumed: Pguint; font: Phb_font_t; format: Thb_buffer_serialize_format_t; flags: Thb_buffer_serialize_flags_t): guint; cdecl; external;
function hb_buffer_serialize_format_from_string(str: Pgchar; len: gint): Thb_buffer_serialize_format_t; cdecl; external;
function hb_buffer_serialize_format_to_string(format: Thb_buffer_serialize_format_t): Pgchar; cdecl; external;
function hb_buffer_serialize_glyphs(buffer: Phb_buffer_t; start: guint; end_: guint; buf: Pgchar; buf_size: Pguint; buf_consumed: Pguint; font: Phb_font_t; format: Thb_buffer_serialize_format_t; flags: Thb_buffer_serialize_flags_t): guint; cdecl; external;
function hb_buffer_serialize_list_formats: PPgchar; cdecl; external;
function hb_buffer_serialize_unicode(buffer: Phb_buffer_t; start: guint; end_: guint; buf: Pgchar; buf_size: Pguint; buf_consumed: Pguint; format: Thb_buffer_serialize_format_t; flags: Thb_buffer_serialize_flags_t): guint; cdecl; external;
function hb_buffer_set_length(buffer: Phb_buffer_t; length: guint): Thb_bool_t; cdecl; external;
function hb_buffer_set_user_data(buffer: Phb_buffer_t; key: Phb_user_data_key_t; data: Pgpointer; destroy_: Thb_destroy_func_t; replace: Thb_bool_t): Thb_bool_t; cdecl; external;
function hb_color_get_alpha(color: Thb_color_t): guint8; cdecl; external;
function hb_color_get_blue(color: Thb_color_t): guint8; cdecl; external;
function hb_color_get_green(color: Thb_color_t): guint8; cdecl; external;
function hb_color_get_red(color: Thb_color_t): guint8; cdecl; external;
function hb_direction_from_string(str: Pgchar; len: gint): Thb_direction_t; cdecl; external;
function hb_direction_to_string(direction: Thb_direction_t): Pgchar; cdecl; external;
function hb_draw_funcs_create: Phb_draw_funcs_t; cdecl; external;
function hb_draw_funcs_is_immutable(dfuncs: Phb_draw_funcs_t): Thb_bool_t; cdecl; external;
function hb_draw_funcs_reference(dfuncs: Phb_draw_funcs_t): Phb_draw_funcs_t; cdecl; external;
function hb_face_builder_add_table(face: Phb_face_t; tag: Thb_tag_t; blob: Phb_blob_t): Thb_bool_t; cdecl; external;
function hb_face_builder_create: Phb_face_t; cdecl; external;
function hb_face_count(blob: Phb_blob_t): guint; cdecl; external;
function hb_face_create(blob: Phb_blob_t; index: guint): Phb_face_t; cdecl; external;
function hb_face_create_for_tables(reference_table_func: Thb_reference_table_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t): Phb_face_t; cdecl; external;
function hb_face_get_empty: Phb_face_t; cdecl; external;
function hb_face_get_glyph_count(face: Phb_face_t): guint; cdecl; external;
function hb_face_get_index(face: Phb_face_t): guint; cdecl; external;
function hb_face_get_table_tags(face: Phb_face_t; start_offset: guint; table_count: Pguint; table_tags: Phb_tag_t): guint; cdecl; external;
function hb_face_get_upem(face: Phb_face_t): guint; cdecl; external;
function hb_face_get_user_data(face: Phb_face_t; key: Phb_user_data_key_t): Pgpointer; cdecl; external;
function hb_face_is_immutable(face: Phb_face_t): Thb_bool_t; cdecl; external;
function hb_face_reference(face: Phb_face_t): Phb_face_t; cdecl; external;
function hb_face_reference_blob(face: Phb_face_t): Phb_blob_t; cdecl; external;
function hb_face_reference_table(face: Phb_face_t; tag: Thb_tag_t): Phb_blob_t; cdecl; external;
function hb_face_set_user_data(face: Phb_face_t; key: Phb_user_data_key_t; data: Pgpointer; destroy_: Thb_destroy_func_t; replace: Thb_bool_t): Thb_bool_t; cdecl; external;
function hb_feature_from_string(str: Pgchar; len: gint; feature: Phb_feature_t): Thb_bool_t; cdecl; external;
function hb_font_create(face: Phb_face_t): Phb_font_t; cdecl; external;
function hb_font_create_sub_font(parent: Phb_font_t): Phb_font_t; cdecl; external;
function hb_font_funcs_create: Phb_font_funcs_t; cdecl; external;
function hb_font_funcs_get_empty: Phb_font_funcs_t; cdecl; external;
function hb_font_funcs_get_user_data(ffuncs: Phb_font_funcs_t; key: Phb_user_data_key_t): Pgpointer; cdecl; external;
function hb_font_funcs_is_immutable(ffuncs: Phb_font_funcs_t): Thb_bool_t; cdecl; external;
function hb_font_funcs_reference(ffuncs: Phb_font_funcs_t): Phb_font_funcs_t; cdecl; external;
function hb_font_funcs_set_user_data(ffuncs: Phb_font_funcs_t; key: Phb_user_data_key_t; data: Pgpointer; destroy_: Thb_destroy_func_t; replace: Thb_bool_t): Thb_bool_t; cdecl; external;
function hb_font_get_empty: Phb_font_t; cdecl; external;
function hb_font_get_face(font: Phb_font_t): Phb_face_t; cdecl; external;
function hb_font_get_glyph(font: Phb_font_t; unicode: Thb_codepoint_t; variation_selector: Thb_codepoint_t; glyph: Phb_codepoint_t): Thb_bool_t; cdecl; external;
function hb_font_get_glyph_contour_point(font: Phb_font_t; glyph: Thb_codepoint_t; point_index: guint; x: Phb_position_t; y: Phb_position_t): Thb_bool_t; cdecl; external;
function hb_font_get_glyph_contour_point_for_origin(font: Phb_font_t; glyph: Thb_codepoint_t; point_index: guint; direction: Thb_direction_t; x: Phb_position_t; y: Phb_position_t): Thb_bool_t; cdecl; external;
function hb_font_get_glyph_extents(font: Phb_font_t; glyph: Thb_codepoint_t; extents: Phb_glyph_extents_t): Thb_bool_t; cdecl; external;
function hb_font_get_glyph_extents_for_origin(font: Phb_font_t; glyph: Thb_codepoint_t; direction: Thb_direction_t; extents: Phb_glyph_extents_t): Thb_bool_t; cdecl; external;
function hb_font_get_glyph_from_name(font: Phb_font_t; name: Pgchar; len: gint; glyph: Phb_codepoint_t): Thb_bool_t; cdecl; external;
function hb_font_get_glyph_h_advance(font: Phb_font_t; glyph: Thb_codepoint_t): Thb_position_t; cdecl; external;
function hb_font_get_glyph_h_kerning(font: Phb_font_t; left_glyph: Thb_codepoint_t; right_glyph: Thb_codepoint_t): Thb_position_t; cdecl; external;
function hb_font_get_glyph_h_origin(font: Phb_font_t; glyph: Thb_codepoint_t; x: Phb_position_t; y: Phb_position_t): Thb_bool_t; cdecl; external;
function hb_font_get_glyph_name(font: Phb_font_t; glyph: Thb_codepoint_t; name: Pgchar; size: Pguint): Thb_bool_t; cdecl; external;
function hb_font_get_glyph_v_advance(font: Phb_font_t; glyph: Thb_codepoint_t): Thb_position_t; cdecl; external;
function hb_font_get_glyph_v_origin(font: Phb_font_t; glyph: Thb_codepoint_t; x: Phb_position_t; y: Phb_position_t): Thb_bool_t; cdecl; external;
function hb_font_get_h_extents(font: Phb_font_t; extents: Phb_font_extents_t): Thb_bool_t; cdecl; external;
function hb_font_get_nominal_glyph(font: Phb_font_t; unicode: Thb_codepoint_t; glyph: Phb_codepoint_t): Thb_bool_t; cdecl; external;
function hb_font_get_nominal_glyphs(font: Phb_font_t; count: guint; first_unicode: Phb_codepoint_t; unicode_stride: guint; first_glyph: Phb_codepoint_t; glyph_stride: guint): guint; cdecl; external;
function hb_font_get_parent(font: Phb_font_t): Phb_font_t; cdecl; external;
function hb_font_get_ptem(font: Phb_font_t): gfloat; cdecl; external;
function hb_font_get_serial(font: Phb_font_t): guint; cdecl; external;
function hb_font_get_synthetic_slant(font: Phb_font_t): gfloat; cdecl; external;
function hb_font_get_user_data(font: Phb_font_t; key: Phb_user_data_key_t): Pgpointer; cdecl; external;
function hb_font_get_v_extents(font: Phb_font_t; extents: Phb_font_extents_t): Thb_bool_t; cdecl; external;
function hb_font_get_var_coords_design(font: Phb_font_t; length: Pguint): Pgfloat; cdecl; external;
function hb_font_get_var_coords_normalized(font: Phb_font_t; length: Pguint): Pgint; cdecl; external;
function hb_font_get_variation_glyph(font: Phb_font_t; unicode: Thb_codepoint_t; variation_selector: Thb_codepoint_t; glyph: Phb_codepoint_t): Thb_bool_t; cdecl; external;
function hb_font_glyph_from_string(font: Phb_font_t; s: Pgchar; len: gint; glyph: Phb_codepoint_t): Thb_bool_t; cdecl; external;
function hb_font_is_immutable(font: Phb_font_t): Thb_bool_t; cdecl; external;
function hb_font_reference(font: Phb_font_t): Phb_font_t; cdecl; external;
function hb_font_set_user_data(font: Phb_font_t; key: Phb_user_data_key_t; data: Pgpointer; destroy_: Thb_destroy_func_t; replace: Thb_bool_t): Thb_bool_t; cdecl; external;
function hb_ft_face_create(ft_face: TFT_Face; destroy_: Thb_destroy_func_t): Phb_face_t; cdecl; external;
function hb_ft_face_create_cached(ft_face: TFT_Face): Phb_face_t; cdecl; external;
function hb_ft_face_create_referenced(ft_face: TFT_Face): Phb_face_t; cdecl; external;
function hb_ft_font_create(ft_face: TFT_Face; destroy_: Thb_destroy_func_t): Phb_font_t; cdecl; external;
function hb_ft_font_create_referenced(ft_face: TFT_Face): Phb_font_t; cdecl; external;
function hb_ft_font_get_face(font: Phb_font_t): TFT_Face; cdecl; external;
function hb_ft_font_get_load_flags(font: Phb_font_t): gint; cdecl; external;
function hb_ft_font_lock_face(font: Phb_font_t): TFT_Face; cdecl; external;
function hb_ft_hb_font_changed(font: Phb_font_t): Thb_bool_t; cdecl; external;
function hb_glib_blob_create(gbytes: PGBytes): Phb_blob_t; cdecl; external;
function hb_glib_get_unicode_funcs: Phb_unicode_funcs_t; cdecl; external;
function hb_glib_script_from_script(script: Thb_script_t): TGUnicodeScript; cdecl; external;
function hb_glib_script_to_script(script: TGUnicodeScript): Thb_script_t; cdecl; external;
function hb_glyph_info_get_glyph_flags(info: Phb_glyph_info_t): Thb_glyph_flags_t; cdecl; external;
function hb_gobject_blob_get_type: TGType; cdecl; external;
function hb_gobject_buffer_get_type: TGType; cdecl; external;
function hb_gobject_draw_funcs_get_type: TGType; cdecl; external;
function hb_gobject_face_get_type: TGType; cdecl; external;
function hb_gobject_feature_get_type: TGType; cdecl; external;
function hb_gobject_font_funcs_get_type: TGType; cdecl; external;
function hb_gobject_font_get_type: TGType; cdecl; external;
function hb_gobject_glyph_info_get_type: TGType; cdecl; external;
function hb_gobject_glyph_position_get_type: TGType; cdecl; external;
function hb_gobject_map_get_type: TGType; cdecl; external;
function hb_gobject_ot_math_glyph_part_get_type: TGType; cdecl; external;
function hb_gobject_ot_math_glyph_variant_get_type: TGType; cdecl; external;
function hb_gobject_segment_properties_get_type: TGType; cdecl; external;
function hb_gobject_set_get_type: TGType; cdecl; external;
function hb_gobject_shape_plan_get_type: TGType; cdecl; external;
function hb_gobject_unicode_funcs_get_type: TGType; cdecl; external;
function hb_gobject_user_data_key_get_type: TGType; cdecl; external;
function hb_language_from_string(str: Pgchar; len: gint): Thb_language_t; cdecl; external;
function hb_language_get_default: Thb_language_t; cdecl; external;
function hb_language_matches(language: Thb_language_t; specific: Thb_language_t): Thb_bool_t; cdecl; external;
function hb_language_to_string(language: Thb_language_t): Pgchar; cdecl; external;
function hb_map_allocation_successful(map: Phb_map_t): Thb_bool_t; cdecl; external;
function hb_map_copy(map: Phb_map_t): Phb_map_t; cdecl; external;
function hb_map_create: Phb_map_t; cdecl; external;
function hb_map_get(map: Phb_map_t; key: Thb_codepoint_t): Thb_codepoint_t; cdecl; external;
function hb_map_get_empty: Phb_map_t; cdecl; external;
function hb_map_get_population(map: Phb_map_t): guint; cdecl; external;
function hb_map_get_user_data(map: Phb_map_t; key: Phb_user_data_key_t): Pgpointer; cdecl; external;
function hb_map_has(map: Phb_map_t; key: Thb_codepoint_t): Thb_bool_t; cdecl; external;
function hb_map_hash(map: Phb_map_t): guint; cdecl; external;
function hb_map_is_empty(map: Phb_map_t): Thb_bool_t; cdecl; external;
function hb_map_is_equal(map: Phb_map_t; other: Phb_map_t): Thb_bool_t; cdecl; external;
function hb_map_reference(map: Phb_map_t): Phb_map_t; cdecl; external;
function hb_map_set_user_data(map: Phb_map_t; key: Phb_user_data_key_t; data: Pgpointer; destroy_: Thb_destroy_func_t; replace: Thb_bool_t): Thb_bool_t; cdecl; external;
function hb_ot_color_glyph_get_layers(face: Phb_face_t; glyph: Thb_codepoint_t; start_offset: guint; layer_count: Pguint; layers: Phb_ot_color_layer_t): guint; cdecl; external;
function hb_ot_color_glyph_reference_png(font: Phb_font_t; glyph: Thb_codepoint_t): Phb_blob_t; cdecl; external;
function hb_ot_color_glyph_reference_svg(face: Phb_face_t; glyph: Thb_codepoint_t): Phb_blob_t; cdecl; external;
function hb_ot_color_has_layers(face: Phb_face_t): Thb_bool_t; cdecl; external;
function hb_ot_color_has_palettes(face: Phb_face_t): Thb_bool_t; cdecl; external;
function hb_ot_color_has_png(face: Phb_face_t): Thb_bool_t; cdecl; external;
function hb_ot_color_has_svg(face: Phb_face_t): Thb_bool_t; cdecl; external;
function hb_ot_color_palette_color_get_name_id(face: Phb_face_t; color_index: guint): Thb_ot_name_id_t; cdecl; external;
function hb_ot_color_palette_get_colors(face: Phb_face_t; palette_index: guint; start_offset: guint; color_count: Pguint; colors: Phb_color_t): guint; cdecl; external;
function hb_ot_color_palette_get_count(face: Phb_face_t): guint; cdecl; external;
function hb_ot_color_palette_get_flags(face: Phb_face_t; palette_index: guint): Thb_ot_color_palette_flags_t; cdecl; external;
function hb_ot_color_palette_get_name_id(face: Phb_face_t; palette_index: guint): Thb_ot_name_id_t; cdecl; external;
function hb_ot_layout_feature_get_characters(face: Phb_face_t; table_tag: Thb_tag_t; feature_index: guint; start_offset: guint; char_count: Pguint; characters: Phb_codepoint_t): guint; cdecl; external;
function hb_ot_layout_feature_get_lookups(face: Phb_face_t; table_tag: Thb_tag_t; feature_index: guint; start_offset: guint; lookup_count: Pguint; lookup_indexes: Pguint): guint; cdecl; external;
function hb_ot_layout_feature_get_name_ids(face: Phb_face_t; table_tag: Thb_tag_t; feature_index: guint; label_id: Phb_ot_name_id_t; tooltip_id: Phb_ot_name_id_t; sample_id: Phb_ot_name_id_t; num_named_parameters: Pguint; first_param_id: Phb_ot_name_id_t): Thb_bool_t; cdecl; external;
function hb_ot_layout_feature_with_variations_get_lookups(face: Phb_face_t; table_tag: Thb_tag_t; feature_index: guint; variations_index: guint; start_offset: guint; lookup_count: Pguint; lookup_indexes: Pguint): guint; cdecl; external;
function hb_ot_layout_get_attach_points(face: Phb_face_t; glyph: Thb_codepoint_t; start_offset: guint; point_count: Pguint; point_array: Pguint): guint; cdecl; external;
function hb_ot_layout_get_baseline(font: Phb_font_t; baseline_tag: Thb_ot_layout_baseline_tag_t; direction: Thb_direction_t; script_tag: Thb_tag_t; language_tag: Thb_tag_t; coord: Phb_position_t): Thb_bool_t; cdecl; external;
function hb_ot_layout_get_glyph_class(face: Phb_face_t; glyph: Thb_codepoint_t): Thb_ot_layout_glyph_class_t; cdecl; external;
function hb_ot_layout_get_horizontal_baseline_tag_for_script(script: Thb_script_t): Thb_ot_layout_baseline_tag_t; cdecl; external;
function hb_ot_layout_get_ligature_carets(font: Phb_font_t; direction: Thb_direction_t; glyph: Thb_codepoint_t; start_offset: guint; caret_count: Pguint; caret_array: Phb_position_t): guint; cdecl; external;
function hb_ot_layout_get_size_params(face: Phb_face_t; design_size: Pguint; subfamily_id: Pguint; subfamily_name_id: Phb_ot_name_id_t; range_start: Pguint; range_end: Pguint): Thb_bool_t; cdecl; external;
function hb_ot_layout_has_glyph_classes(face: Phb_face_t): Thb_bool_t; cdecl; external;
function hb_ot_layout_has_positioning(face: Phb_face_t): Thb_bool_t; cdecl; external;
function hb_ot_layout_has_substitution(face: Phb_face_t): Thb_bool_t; cdecl; external;
function hb_ot_layout_language_find_feature(face: Phb_face_t; table_tag: Thb_tag_t; script_index: guint; language_index: guint; feature_tag: Thb_tag_t; feature_index: Pguint): Thb_bool_t; cdecl; external;
function hb_ot_layout_language_get_feature_indexes(face: Phb_face_t; table_tag: Thb_tag_t; script_index: guint; language_index: guint; start_offset: guint; feature_count: Pguint; feature_indexes: Pguint): guint; cdecl; external;
function hb_ot_layout_language_get_feature_tags(face: Phb_face_t; table_tag: Thb_tag_t; script_index: guint; language_index: guint; start_offset: guint; feature_count: Pguint; feature_tags: Phb_tag_t): guint; cdecl; external;
function hb_ot_layout_language_get_required_feature(face: Phb_face_t; table_tag: Thb_tag_t; script_index: guint; language_index: guint; feature_index: Pguint; feature_tag: Phb_tag_t): Thb_bool_t; cdecl; external;
function hb_ot_layout_language_get_required_feature_index(face: Phb_face_t; table_tag: Thb_tag_t; script_index: guint; language_index: guint; feature_index: Pguint): Thb_bool_t; cdecl; external;
function hb_ot_layout_lookup_get_glyph_alternates(face: Phb_face_t; lookup_index: guint; glyph: Thb_codepoint_t; start_offset: guint; alternate_count: Pguint; alternate_glyphs: Phb_codepoint_t): guint; cdecl; external;
function hb_ot_layout_lookup_get_optical_bound(font: Phb_font_t; lookup_index: guint; direction: Thb_direction_t; glyph: Thb_codepoint_t): Thb_position_t; cdecl; external;
function hb_ot_layout_lookup_would_substitute(face: Phb_face_t; lookup_index: guint; glyphs: Phb_codepoint_t; glyphs_length: guint; zero_context: Thb_bool_t): Thb_bool_t; cdecl; external;
function hb_ot_layout_script_get_language_tags(face: Phb_face_t; table_tag: Thb_tag_t; script_index: guint; start_offset: guint; language_count: Pguint; language_tags: Phb_tag_t): guint; cdecl; external;
function hb_ot_layout_script_select_language(face: Phb_face_t; table_tag: Thb_tag_t; script_index: guint; language_count: guint; language_tags: Phb_tag_t; language_index: Pguint): Thb_bool_t; cdecl; external;
function hb_ot_layout_table_choose_script(face: Phb_face_t; table_tag: Thb_tag_t; script_tags: Phb_tag_t; script_index: Pguint; chosen_script: Phb_tag_t): Thb_bool_t; cdecl; external;
function hb_ot_layout_table_find_feature_variations(face: Phb_face_t; table_tag: Thb_tag_t; coords: Pgint; num_coords: guint; variations_index: Pguint): Thb_bool_t; cdecl; external;
function hb_ot_layout_table_find_script(face: Phb_face_t; table_tag: Thb_tag_t; script_tag: Thb_tag_t; script_index: Pguint): Thb_bool_t; cdecl; external;
function hb_ot_layout_table_get_feature_tags(face: Phb_face_t; table_tag: Thb_tag_t; start_offset: guint; feature_count: Pguint; feature_tags: Phb_tag_t): guint; cdecl; external;
function hb_ot_layout_table_get_lookup_count(face: Phb_face_t; table_tag: Thb_tag_t): guint; cdecl; external;
function hb_ot_layout_table_get_script_tags(face: Phb_face_t; table_tag: Thb_tag_t; start_offset: guint; script_count: Pguint; script_tags: Phb_tag_t): guint; cdecl; external;
function hb_ot_layout_table_select_script(face: Phb_face_t; table_tag: Thb_tag_t; script_count: guint; script_tags: Phb_tag_t; script_index: Pguint; chosen_script: Phb_tag_t): Thb_bool_t; cdecl; external;
function hb_ot_math_get_constant(font: Phb_font_t; constant: Thb_ot_math_constant_t): Thb_position_t; cdecl; external;
function hb_ot_math_get_glyph_assembly(font: Phb_font_t; glyph: Thb_codepoint_t; direction: Thb_direction_t; start_offset: guint; parts_count: Pguint; parts: Phb_ot_math_glyph_part_t; italics_correction: Phb_position_t): guint; cdecl; external;
function hb_ot_math_get_glyph_italics_correction(font: Phb_font_t; glyph: Thb_codepoint_t): Thb_position_t; cdecl; external;
function hb_ot_math_get_glyph_kerning(font: Phb_font_t; glyph: Thb_codepoint_t; kern: Thb_ot_math_kern_t; correction_height: Thb_position_t): Thb_position_t; cdecl; external;
function hb_ot_math_get_glyph_kernings(font: Phb_font_t; glyph: Thb_codepoint_t; kern: Thb_ot_math_kern_t; start_offset: guint; entries_count: Pguint; kern_entries: Phb_ot_math_kern_entry_t): guint; cdecl; external;
function hb_ot_math_get_glyph_top_accent_attachment(font: Phb_font_t; glyph: Thb_codepoint_t): Thb_position_t; cdecl; external;
function hb_ot_math_get_glyph_variants(font: Phb_font_t; glyph: Thb_codepoint_t; direction: Thb_direction_t; start_offset: guint; variants_count: Pguint; variants: Phb_ot_math_glyph_variant_t): guint; cdecl; external;
function hb_ot_math_get_min_connector_overlap(font: Phb_font_t; direction: Thb_direction_t): Thb_position_t; cdecl; external;
function hb_ot_math_has_data(face: Phb_face_t): Thb_bool_t; cdecl; external;
function hb_ot_math_is_glyph_extended_shape(face: Phb_face_t; glyph: Thb_codepoint_t): Thb_bool_t; cdecl; external;
function hb_ot_meta_get_entry_tags(face: Phb_face_t; start_offset: guint; entries_count: Pguint; entries: Phb_ot_meta_tag_t): guint; cdecl; external;
function hb_ot_meta_reference_entry(face: Phb_face_t; meta_tag: Thb_ot_meta_tag_t): Phb_blob_t; cdecl; external;
function hb_ot_metrics_get_position(font: Phb_font_t; metrics_tag: Thb_ot_metrics_tag_t; position: Phb_position_t): Thb_bool_t; cdecl; external;
function hb_ot_metrics_get_variation(font: Phb_font_t; metrics_tag: Thb_ot_metrics_tag_t): gfloat; cdecl; external;
function hb_ot_metrics_get_x_variation(font: Phb_font_t; metrics_tag: Thb_ot_metrics_tag_t): Thb_position_t; cdecl; external;
function hb_ot_metrics_get_y_variation(font: Phb_font_t; metrics_tag: Thb_ot_metrics_tag_t): Thb_position_t; cdecl; external;
function hb_ot_name_get_utf16(face: Phb_face_t; name_id: Thb_ot_name_id_t; language: Thb_language_t; text_size: Pguint; text: Pguint16): guint; cdecl; external;
function hb_ot_name_get_utf32(face: Phb_face_t; name_id: Thb_ot_name_id_t; language: Thb_language_t; text_size: Pguint; text: Pguint32): guint; cdecl; external;
function hb_ot_name_get_utf8(face: Phb_face_t; name_id: Thb_ot_name_id_t; language: Thb_language_t; text_size: Pguint; text: Pgchar): guint; cdecl; external;
function hb_ot_name_list_names(face: Phb_face_t; num_entries: Pguint): Phb_ot_name_entry_t; cdecl; external;
function hb_ot_tag_from_language(language: Thb_language_t): Thb_tag_t; cdecl; external;
function hb_ot_tag_to_language(tag: Thb_tag_t): Thb_language_t; cdecl; external;
function hb_ot_tag_to_script(tag: Thb_tag_t): Thb_script_t; cdecl; external;
function hb_ot_var_find_axis_info(face: Phb_face_t; axis_tag: Thb_tag_t; axis_info: Phb_ot_var_axis_info_t): Thb_bool_t; cdecl; external;
function hb_ot_var_get_axis_count(face: Phb_face_t): guint; cdecl; external;
function hb_ot_var_get_axis_infos(face: Phb_face_t; start_offset: guint; axes_count: Pguint; axes_array: Phb_ot_var_axis_info_t): guint; cdecl; external;
function hb_ot_var_get_named_instance_count(face: Phb_face_t): guint; cdecl; external;
function hb_ot_var_has_data(face: Phb_face_t): Thb_bool_t; cdecl; external;
function hb_ot_var_named_instance_get_design_coords(face: Phb_face_t; instance_index: guint; coords_length: Pguint; coords: Pgfloat): guint; cdecl; external;
function hb_ot_var_named_instance_get_postscript_name_id(face: Phb_face_t; instance_index: guint): Thb_ot_name_id_t; cdecl; external;
function hb_ot_var_named_instance_get_subfamily_name_id(face: Phb_face_t; instance_index: guint): Thb_ot_name_id_t; cdecl; external;
function hb_script_from_iso15924_tag(tag: Thb_tag_t): Thb_script_t; cdecl; external;
function hb_script_from_string(str: Pgchar; len: gint): Thb_script_t; cdecl; external;
function hb_script_get_horizontal_direction(script: Thb_script_t): Thb_direction_t; cdecl; external;
function hb_script_to_iso15924_tag(script: Thb_script_t): Thb_tag_t; cdecl; external;
function hb_segment_properties_equal(a: Phb_segment_properties_t; b: Phb_segment_properties_t): Thb_bool_t; cdecl; external;
function hb_segment_properties_hash(p: Phb_segment_properties_t): guint; cdecl; external;
function hb_set_allocation_successful(set_: Phb_set_t): Thb_bool_t; cdecl; external;
function hb_set_copy(set_: Phb_set_t): Phb_set_t; cdecl; external;
function hb_set_create: Phb_set_t; cdecl; external;
function hb_set_get_empty: Phb_set_t; cdecl; external;
function hb_set_get_max(set_: Phb_set_t): Thb_codepoint_t; cdecl; external;
function hb_set_get_min(set_: Phb_set_t): Thb_codepoint_t; cdecl; external;
function hb_set_get_population(set_: Phb_set_t): guint; cdecl; external;
function hb_set_get_user_data(set_: Phb_set_t; key: Phb_user_data_key_t): Pgpointer; cdecl; external;
function hb_set_has(set_: Phb_set_t; codepoint: Thb_codepoint_t): Thb_bool_t; cdecl; external;
function hb_set_hash(set_: Phb_set_t): guint; cdecl; external;
function hb_set_is_empty(set_: Phb_set_t): Thb_bool_t; cdecl; external;
function hb_set_is_equal(set_: Phb_set_t; other: Phb_set_t): Thb_bool_t; cdecl; external;
function hb_set_is_subset(set_: Phb_set_t; larger_set: Phb_set_t): Thb_bool_t; cdecl; external;
function hb_set_next(set_: Phb_set_t; codepoint: Phb_codepoint_t): Thb_bool_t; cdecl; external;
function hb_set_next_many(set_: Phb_set_t; codepoint: Thb_codepoint_t; out_: Phb_codepoint_t; size: guint): guint; cdecl; external;
function hb_set_next_range(set_: Phb_set_t; first: Phb_codepoint_t; last: Phb_codepoint_t): Thb_bool_t; cdecl; external;
function hb_set_previous(set_: Phb_set_t; codepoint: Phb_codepoint_t): Thb_bool_t; cdecl; external;
function hb_set_previous_range(set_: Phb_set_t; first: Phb_codepoint_t; last: Phb_codepoint_t): Thb_bool_t; cdecl; external;
function hb_set_reference(set_: Phb_set_t): Phb_set_t; cdecl; external;
function hb_set_set_user_data(set_: Phb_set_t; key: Phb_user_data_key_t; data: Pgpointer; destroy_: Thb_destroy_func_t; replace: Thb_bool_t): Thb_bool_t; cdecl; external;
function hb_shape_full(font: Phb_font_t; buffer: Phb_buffer_t; features: Phb_feature_t; num_features: guint; shaper_list: PPgchar): Thb_bool_t; cdecl; external;
function hb_shape_list_shapers: PPgchar; cdecl; external;
function hb_shape_plan_create(face: Phb_face_t; props: Phb_segment_properties_t; user_features: Phb_feature_t; num_user_features: guint; shaper_list: PPgchar): Phb_shape_plan_t; cdecl; external;
function hb_shape_plan_create2(face: Phb_face_t; props: Phb_segment_properties_t; user_features: Phb_feature_t; num_user_features: guint; coords: Pgint; num_coords: guint; shaper_list: PPgchar): Phb_shape_plan_t; cdecl; external;
function hb_shape_plan_create_cached(face: Phb_face_t; props: Phb_segment_properties_t; user_features: Phb_feature_t; num_user_features: guint; shaper_list: PPgchar): Phb_shape_plan_t; cdecl; external;
function hb_shape_plan_create_cached2(face: Phb_face_t; props: Phb_segment_properties_t; user_features: Phb_feature_t; num_user_features: guint; coords: Pgint; num_coords: guint; shaper_list: PPgchar): Phb_shape_plan_t; cdecl; external;
function hb_shape_plan_execute(shape_plan: Phb_shape_plan_t; font: Phb_font_t; buffer: Phb_buffer_t; features: Phb_feature_t; num_features: guint): Thb_bool_t; cdecl; external;
function hb_shape_plan_get_empty: Phb_shape_plan_t; cdecl; external;
function hb_shape_plan_get_shaper(shape_plan: Phb_shape_plan_t): Pgchar; cdecl; external;
function hb_shape_plan_get_user_data(shape_plan: Phb_shape_plan_t; key: Phb_user_data_key_t): Pgpointer; cdecl; external;
function hb_shape_plan_reference(shape_plan: Phb_shape_plan_t): Phb_shape_plan_t; cdecl; external;
function hb_shape_plan_set_user_data(shape_plan: Phb_shape_plan_t; key: Phb_user_data_key_t; data: Pgpointer; destroy_: Thb_destroy_func_t; replace: Thb_bool_t): Thb_bool_t; cdecl; external;
function hb_style_get_value(font: Phb_font_t; style_tag: Thb_style_tag_t): gfloat; cdecl; external;
function hb_tag_from_string(str: Pgchar; len: gint): Thb_tag_t; cdecl; external;
function hb_unicode_combining_class(ufuncs: Phb_unicode_funcs_t; unicode: Thb_codepoint_t): Thb_unicode_combining_class_t; cdecl; external;
function hb_unicode_compose(ufuncs: Phb_unicode_funcs_t; a: Thb_codepoint_t; b: Thb_codepoint_t; ab: Phb_codepoint_t): Thb_bool_t; cdecl; external;
function hb_unicode_decompose(ufuncs: Phb_unicode_funcs_t; ab: Thb_codepoint_t; a: Phb_codepoint_t; b: Phb_codepoint_t): Thb_bool_t; cdecl; external;
function hb_unicode_funcs_create(parent: Phb_unicode_funcs_t): Phb_unicode_funcs_t; cdecl; external;
function hb_unicode_funcs_get_default: Phb_unicode_funcs_t; cdecl; external;
function hb_unicode_funcs_get_empty: Phb_unicode_funcs_t; cdecl; external;
function hb_unicode_funcs_get_parent(ufuncs: Phb_unicode_funcs_t): Phb_unicode_funcs_t; cdecl; external;
function hb_unicode_funcs_get_user_data(ufuncs: Phb_unicode_funcs_t; key: Phb_user_data_key_t): Pgpointer; cdecl; external;
function hb_unicode_funcs_is_immutable(ufuncs: Phb_unicode_funcs_t): Thb_bool_t; cdecl; external;
function hb_unicode_funcs_reference(ufuncs: Phb_unicode_funcs_t): Phb_unicode_funcs_t; cdecl; external;
function hb_unicode_funcs_set_user_data(ufuncs: Phb_unicode_funcs_t; key: Phb_user_data_key_t; data: Pgpointer; destroy_: Thb_destroy_func_t; replace: Thb_bool_t): Thb_bool_t; cdecl; external;
function hb_unicode_general_category(ufuncs: Phb_unicode_funcs_t; unicode: Thb_codepoint_t): Thb_unicode_general_category_t; cdecl; external;
function hb_unicode_mirroring(ufuncs: Phb_unicode_funcs_t; unicode: Thb_codepoint_t): Thb_codepoint_t; cdecl; external;
function hb_unicode_script(ufuncs: Phb_unicode_funcs_t; unicode: Thb_codepoint_t): Thb_script_t; cdecl; external;
function hb_variation_from_string(str: Pgchar; len: gint; variation: Phb_variation_t): Thb_bool_t; cdecl; external;
procedure hb_blob_destroy(blob: Phb_blob_t); cdecl; external;
procedure hb_blob_make_immutable(blob: Phb_blob_t); cdecl; external;
procedure hb_buffer_add(buffer: Phb_buffer_t; codepoint: Thb_codepoint_t; cluster: guint); cdecl; external;
procedure hb_buffer_add_codepoints(buffer: Phb_buffer_t; text: Phb_codepoint_t; text_length: gint; item_offset: guint; item_length: gint); cdecl; external;
procedure hb_buffer_add_latin1(buffer: Phb_buffer_t; text: Pguint8; text_length: gint; item_offset: guint; item_length: gint); cdecl; external;
procedure hb_buffer_add_utf16(buffer: Phb_buffer_t; text: Pguint16; text_length: gint; item_offset: guint; item_length: gint); cdecl; external;
procedure hb_buffer_add_utf32(buffer: Phb_buffer_t; text: Pguint32; text_length: gint; item_offset: guint; item_length: gint); cdecl; external;
procedure hb_buffer_add_utf8(buffer: Phb_buffer_t; text: Pgchar; text_length: gint; item_offset: guint; item_length: gint); cdecl; external;
procedure hb_buffer_append(buffer: Phb_buffer_t; source: Phb_buffer_t; start: guint; end_: guint); cdecl; external;
procedure hb_buffer_clear_contents(buffer: Phb_buffer_t); cdecl; external;
procedure hb_buffer_destroy(buffer: Phb_buffer_t); cdecl; external;
procedure hb_buffer_get_segment_properties(buffer: Phb_buffer_t; props: Phb_segment_properties_t); cdecl; external;
procedure hb_buffer_guess_segment_properties(buffer: Phb_buffer_t); cdecl; external;
procedure hb_buffer_normalize_glyphs(buffer: Phb_buffer_t); cdecl; external;
procedure hb_buffer_reset(buffer: Phb_buffer_t); cdecl; external;
procedure hb_buffer_reverse(buffer: Phb_buffer_t); cdecl; external;
procedure hb_buffer_reverse_clusters(buffer: Phb_buffer_t); cdecl; external;
procedure hb_buffer_reverse_range(buffer: Phb_buffer_t; start: guint; end_: guint); cdecl; external;
procedure hb_buffer_set_cluster_level(buffer: Phb_buffer_t; cluster_level: Thb_buffer_cluster_level_t); cdecl; external;
procedure hb_buffer_set_content_type(buffer: Phb_buffer_t; content_type: Thb_buffer_content_type_t); cdecl; external;
procedure hb_buffer_set_direction(buffer: Phb_buffer_t; direction: Thb_direction_t); cdecl; external;
procedure hb_buffer_set_flags(buffer: Phb_buffer_t; flags: Thb_buffer_flags_t); cdecl; external;
procedure hb_buffer_set_invisible_glyph(buffer: Phb_buffer_t; invisible: Thb_codepoint_t); cdecl; external;
procedure hb_buffer_set_language(buffer: Phb_buffer_t; language: Thb_language_t); cdecl; external;
procedure hb_buffer_set_message_func(buffer: Phb_buffer_t; func: Thb_buffer_message_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_buffer_set_not_found_glyph(buffer: Phb_buffer_t; not_found: Thb_codepoint_t); cdecl; external;
procedure hb_buffer_set_replacement_codepoint(buffer: Phb_buffer_t; replacement: Thb_codepoint_t); cdecl; external;
procedure hb_buffer_set_script(buffer: Phb_buffer_t; script: Thb_script_t); cdecl; external;
procedure hb_buffer_set_segment_properties(buffer: Phb_buffer_t; props: Phb_segment_properties_t); cdecl; external;
procedure hb_buffer_set_unicode_funcs(buffer: Phb_buffer_t; unicode_funcs: Phb_unicode_funcs_t); cdecl; external;
procedure hb_draw_close_path(dfuncs: Phb_draw_funcs_t; draw_data: Pgpointer; st: Phb_draw_state_t); cdecl; external;
procedure hb_draw_cubic_to(dfuncs: Phb_draw_funcs_t; draw_data: Pgpointer; st: Phb_draw_state_t; control1_x: gfloat; control1_y: gfloat; control2_x: gfloat; control2_y: gfloat; to_x: gfloat; to_y: gfloat); cdecl; external;
procedure hb_draw_funcs_destroy(dfuncs: Phb_draw_funcs_t); cdecl; external;
procedure hb_draw_funcs_make_immutable(dfuncs: Phb_draw_funcs_t); cdecl; external;
procedure hb_draw_funcs_set_close_path_func(dfuncs: Phb_draw_funcs_t; func: Thb_draw_close_path_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_draw_funcs_set_cubic_to_func(dfuncs: Phb_draw_funcs_t; func: Thb_draw_cubic_to_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_draw_funcs_set_line_to_func(dfuncs: Phb_draw_funcs_t; func: Thb_draw_line_to_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_draw_funcs_set_move_to_func(dfuncs: Phb_draw_funcs_t; func: Thb_draw_move_to_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_draw_funcs_set_quadratic_to_func(dfuncs: Phb_draw_funcs_t; func: Thb_draw_quadratic_to_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_draw_line_to(dfuncs: Phb_draw_funcs_t; draw_data: Pgpointer; st: Phb_draw_state_t; to_x: gfloat; to_y: gfloat); cdecl; external;
procedure hb_draw_move_to(dfuncs: Phb_draw_funcs_t; draw_data: Pgpointer; st: Phb_draw_state_t; to_x: gfloat; to_y: gfloat); cdecl; external;
procedure hb_draw_quadratic_to(dfuncs: Phb_draw_funcs_t; draw_data: Pgpointer; st: Phb_draw_state_t; control_x: gfloat; control_y: gfloat; to_x: gfloat; to_y: gfloat); cdecl; external;
procedure hb_face_builder_sort_tables(face: Phb_face_t; tags: Phb_tag_t); cdecl; external;
procedure hb_face_collect_unicodes(face: Phb_face_t; out_: Phb_set_t); cdecl; external;
procedure hb_face_collect_variation_selectors(face: Phb_face_t; out_: Phb_set_t); cdecl; external;
procedure hb_face_collect_variation_unicodes(face: Phb_face_t; variation_selector: Thb_codepoint_t; out_: Phb_set_t); cdecl; external;
procedure hb_face_destroy(face: Phb_face_t); cdecl; external;
procedure hb_face_make_immutable(face: Phb_face_t); cdecl; external;
procedure hb_face_set_glyph_count(face: Phb_face_t; glyph_count: guint); cdecl; external;
procedure hb_face_set_index(face: Phb_face_t; index: guint); cdecl; external;
procedure hb_face_set_upem(face: Phb_face_t; upem: guint); cdecl; external;
procedure hb_feature_to_string(feature: Phb_feature_t; buf: Pgchar; size: Pguint); cdecl; external;
procedure hb_font_add_glyph_origin_for_direction(font: Phb_font_t; glyph: Thb_codepoint_t; direction: Thb_direction_t; x: Phb_position_t; y: Phb_position_t); cdecl; external;
procedure hb_font_changed(font: Phb_font_t); cdecl; external;
procedure hb_font_destroy(font: Phb_font_t); cdecl; external;
procedure hb_font_funcs_destroy(ffuncs: Phb_font_funcs_t); cdecl; external;
procedure hb_font_funcs_make_immutable(ffuncs: Phb_font_funcs_t); cdecl; external;
procedure hb_font_funcs_set_font_h_extents_func(ffuncs: Phb_font_funcs_t; func: Thb_font_get_font_h_extents_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_font_funcs_set_font_v_extents_func(ffuncs: Phb_font_funcs_t; func: Thb_font_get_font_v_extents_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_font_funcs_set_glyph_contour_point_func(ffuncs: Phb_font_funcs_t; func: Thb_font_get_glyph_contour_point_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_font_funcs_set_glyph_extents_func(ffuncs: Phb_font_funcs_t; func: Thb_font_get_glyph_extents_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_font_funcs_set_glyph_from_name_func(ffuncs: Phb_font_funcs_t; func: Thb_font_get_glyph_from_name_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_font_funcs_set_glyph_h_advance_func(ffuncs: Phb_font_funcs_t; func: Thb_font_get_glyph_h_advance_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_font_funcs_set_glyph_h_advances_func(ffuncs: Phb_font_funcs_t; func: Thb_font_get_glyph_h_advances_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_font_funcs_set_glyph_h_kerning_func(ffuncs: Phb_font_funcs_t; func: Thb_font_get_glyph_h_kerning_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_font_funcs_set_glyph_h_origin_func(ffuncs: Phb_font_funcs_t; func: Thb_font_get_glyph_h_origin_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_font_funcs_set_glyph_name_func(ffuncs: Phb_font_funcs_t; func: Thb_font_get_glyph_name_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_font_funcs_set_glyph_shape_func(ffuncs: Phb_font_funcs_t; func: Thb_font_get_glyph_shape_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_font_funcs_set_glyph_v_advance_func(ffuncs: Phb_font_funcs_t; func: Thb_font_get_glyph_v_advance_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_font_funcs_set_glyph_v_advances_func(ffuncs: Phb_font_funcs_t; func: Thb_font_get_glyph_v_advances_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_font_funcs_set_glyph_v_origin_func(ffuncs: Phb_font_funcs_t; func: Thb_font_get_glyph_v_origin_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_font_funcs_set_nominal_glyph_func(ffuncs: Phb_font_funcs_t; func: Thb_font_get_nominal_glyph_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_font_funcs_set_nominal_glyphs_func(ffuncs: Phb_font_funcs_t; func: Thb_font_get_nominal_glyphs_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_font_funcs_set_variation_glyph_func(ffuncs: Phb_font_funcs_t; func: Thb_font_get_variation_glyph_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_font_get_extents_for_direction(font: Phb_font_t; direction: Thb_direction_t; extents: Phb_font_extents_t); cdecl; external;
procedure hb_font_get_glyph_advance_for_direction(font: Phb_font_t; glyph: Thb_codepoint_t; direction: Thb_direction_t; x: Phb_position_t; y: Phb_position_t); cdecl; external;
procedure hb_font_get_glyph_advances_for_direction(font: Phb_font_t; direction: Thb_direction_t; count: guint; first_glyph: Phb_codepoint_t; glyph_stride: guint; first_advance: Phb_position_t; advance_stride: Pguint); cdecl; external;
procedure hb_font_get_glyph_h_advances(font: Phb_font_t; count: guint; first_glyph: Phb_codepoint_t; glyph_stride: guint; first_advance: Phb_position_t; advance_stride: guint); cdecl; external;
procedure hb_font_get_glyph_kerning_for_direction(font: Phb_font_t; first_glyph: Thb_codepoint_t; second_glyph: Thb_codepoint_t; direction: Thb_direction_t; x: Phb_position_t; y: Phb_position_t); cdecl; external;
procedure hb_font_get_glyph_origin_for_direction(font: Phb_font_t; glyph: Thb_codepoint_t; direction: Thb_direction_t; x: Phb_position_t; y: Phb_position_t); cdecl; external;
procedure hb_font_get_glyph_shape(font: Phb_font_t; glyph: Thb_codepoint_t; dfuncs: Phb_draw_funcs_t; draw_data: Pgpointer); cdecl; external;
procedure hb_font_get_glyph_v_advances(font: Phb_font_t; count: guint; first_glyph: Phb_codepoint_t; glyph_stride: guint; first_advance: Phb_position_t; advance_stride: Pguint); cdecl; external;
procedure hb_font_get_ppem(font: Phb_font_t; x_ppem: Pguint; y_ppem: Pguint); cdecl; external;
procedure hb_font_get_scale(font: Phb_font_t; x_scale: Pgint; y_scale: Pgint); cdecl; external;
procedure hb_font_glyph_to_string(font: Phb_font_t; glyph: Thb_codepoint_t; s: Pgchar; size: Pguint); cdecl; external;
procedure hb_font_make_immutable(font: Phb_font_t); cdecl; external;
procedure hb_font_set_face(font: Phb_font_t; face: Phb_face_t); cdecl; external;
procedure hb_font_set_funcs(font: Phb_font_t; klass: Phb_font_funcs_t; font_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_font_set_funcs_data(font: Phb_font_t; font_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_font_set_parent(font: Phb_font_t; parent: Phb_font_t); cdecl; external;
procedure hb_font_set_ppem(font: Phb_font_t; x_ppem: guint; y_ppem: guint); cdecl; external;
procedure hb_font_set_ptem(font: Phb_font_t; ptem: gfloat); cdecl; external;
procedure hb_font_set_scale(font: Phb_font_t; x_scale: gint; y_scale: gint); cdecl; external;
procedure hb_font_set_synthetic_slant(font: Phb_font_t; slant: gfloat); cdecl; external;
procedure hb_font_set_var_coords_design(font: Phb_font_t; coords: Pgfloat; coords_length: guint); cdecl; external;
procedure hb_font_set_var_coords_normalized(font: Phb_font_t; coords: Pgint; coords_length: guint); cdecl; external;
procedure hb_font_set_var_named_instance(font: Phb_font_t; instance_index: guint); cdecl; external;
procedure hb_font_set_variations(font: Phb_font_t; variations: Phb_variation_t; variations_length: guint); cdecl; external;
procedure hb_font_subtract_glyph_origin_for_direction(font: Phb_font_t; glyph: Thb_codepoint_t; direction: Thb_direction_t; x: Phb_position_t; y: Phb_position_t); cdecl; external;
procedure hb_ft_font_changed(font: Phb_font_t); cdecl; external;
procedure hb_ft_font_set_funcs(font: Phb_font_t); cdecl; external;
procedure hb_ft_font_set_load_flags(font: Phb_font_t; load_flags: gint); cdecl; external;
procedure hb_ft_font_unlock_face(font: Phb_font_t); cdecl; external;
procedure hb_map_clear(map: Phb_map_t); cdecl; external;
procedure hb_map_del(map: Phb_map_t; key: Thb_codepoint_t); cdecl; external;
procedure hb_map_destroy(map: Phb_map_t); cdecl; external;
procedure hb_map_set(map: Phb_map_t; key: Thb_codepoint_t; value: Thb_codepoint_t); cdecl; external;
procedure hb_ot_font_set_funcs(font: Phb_font_t); cdecl; external;
procedure hb_ot_layout_collect_features(face: Phb_face_t; table_tag: Thb_tag_t; scripts: Phb_tag_t; languages: Phb_tag_t; features: Phb_tag_t; feature_indexes: Phb_set_t); cdecl; external;
procedure hb_ot_layout_collect_lookups(face: Phb_face_t; table_tag: Thb_tag_t; scripts: Phb_tag_t; languages: Phb_tag_t; features: Phb_tag_t; lookup_indexes: Phb_set_t); cdecl; external;
procedure hb_ot_layout_get_baseline_with_fallback(font: Phb_font_t; baseline_tag: Thb_ot_layout_baseline_tag_t; direction: Thb_direction_t; script_tag: Thb_tag_t; language_tag: Thb_tag_t; coord: Phb_position_t); cdecl; external;
procedure hb_ot_layout_get_glyphs_in_class(face: Phb_face_t; klass: Thb_ot_layout_glyph_class_t; glyphs: Phb_set_t); cdecl; external;
procedure hb_ot_layout_lookup_collect_glyphs(face: Phb_face_t; table_tag: Thb_tag_t; lookup_index: guint; glyphs_before: Phb_set_t; glyphs_input: Phb_set_t; glyphs_after: Phb_set_t; glyphs_output: Phb_set_t); cdecl; external;
procedure hb_ot_layout_lookup_substitute_closure(face: Phb_face_t; lookup_index: guint; glyphs: Phb_set_t); cdecl; external;
procedure hb_ot_layout_lookups_substitute_closure(face: Phb_face_t; lookups: Phb_set_t; glyphs: Phb_set_t); cdecl; external;
procedure hb_ot_metrics_get_position_with_fallback(font: Phb_font_t; metrics_tag: Thb_ot_metrics_tag_t; position: Phb_position_t); cdecl; external;
procedure hb_ot_shape_glyphs_closure(font: Phb_font_t; buffer: Phb_buffer_t; features: Phb_feature_t; num_features: guint; glyphs: Phb_set_t); cdecl; external;
procedure hb_ot_shape_plan_collect_lookups(shape_plan: Phb_shape_plan_t; table_tag: Thb_tag_t; lookup_indexes: Phb_set_t); cdecl; external;
procedure hb_ot_tags_from_script(script: Thb_script_t; script_tag_1: Phb_tag_t; script_tag_2: Phb_tag_t); cdecl; external;
procedure hb_ot_tags_from_script_and_language(script: Thb_script_t; language: Thb_language_t; script_count: Pguint; script_tags: Phb_tag_t; language_count: Pguint; language_tags: Phb_tag_t); cdecl; external;
procedure hb_ot_tags_to_script_and_language(script_tag: Thb_tag_t; language_tag: Thb_tag_t; script: Phb_script_t; language: Phb_language_t); cdecl; external;
procedure hb_ot_var_normalize_coords(face: Phb_face_t; coords_length: guint; design_coords: Pgfloat; normalized_coords: Pgint); cdecl; external;
procedure hb_ot_var_normalize_variations(face: Phb_face_t; variations: Phb_variation_t; variations_length: guint; coords: Pgint; coords_length: Pguint); cdecl; external;
procedure hb_segment_properties_overlay(p: Phb_segment_properties_t; src: Phb_segment_properties_t); cdecl; external;
procedure hb_set_add(set_: Phb_set_t; codepoint: Thb_codepoint_t); cdecl; external;
procedure hb_set_add_range(set_: Phb_set_t; first: Thb_codepoint_t; last: Thb_codepoint_t); cdecl; external;
procedure hb_set_add_sorted_array(set_: Phb_set_t; sorted_codepoints: Phb_codepoint_t; num_codepoints: guint); cdecl; external;
procedure hb_set_clear(set_: Phb_set_t); cdecl; external;
procedure hb_set_del(set_: Phb_set_t; codepoint: Thb_codepoint_t); cdecl; external;
procedure hb_set_del_range(set_: Phb_set_t; first: Thb_codepoint_t; last: Thb_codepoint_t); cdecl; external;
procedure hb_set_destroy(set_: Phb_set_t); cdecl; external;
procedure hb_set_intersect(set_: Phb_set_t; other: Phb_set_t); cdecl; external;
procedure hb_set_invert(set_: Phb_set_t); cdecl; external;
procedure hb_set_set(set_: Phb_set_t; other: Phb_set_t); cdecl; external;
procedure hb_set_subtract(set_: Phb_set_t; other: Phb_set_t); cdecl; external;
procedure hb_set_symmetric_difference(set_: Phb_set_t; other: Phb_set_t); cdecl; external;
procedure hb_set_union(set_: Phb_set_t; other: Phb_set_t); cdecl; external;
procedure hb_shape(font: Phb_font_t; buffer: Phb_buffer_t; features: Phb_feature_t; num_features: guint); cdecl; external;
procedure hb_shape_plan_destroy(shape_plan: Phb_shape_plan_t); cdecl; external;
procedure hb_tag_to_string(tag: Thb_tag_t; buf: Pgchar); cdecl; external;
procedure hb_unicode_funcs_destroy(ufuncs: Phb_unicode_funcs_t); cdecl; external;
procedure hb_unicode_funcs_make_immutable(ufuncs: Phb_unicode_funcs_t); cdecl; external;
procedure hb_unicode_funcs_set_combining_class_func(ufuncs: Phb_unicode_funcs_t; func: Thb_unicode_combining_class_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_unicode_funcs_set_compose_func(ufuncs: Phb_unicode_funcs_t; func: Thb_unicode_compose_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_unicode_funcs_set_decompose_func(ufuncs: Phb_unicode_funcs_t; func: Thb_unicode_decompose_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_unicode_funcs_set_general_category_func(ufuncs: Phb_unicode_funcs_t; func: Thb_unicode_general_category_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_unicode_funcs_set_mirroring_func(ufuncs: Phb_unicode_funcs_t; func: Thb_unicode_mirroring_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_unicode_funcs_set_script_func(ufuncs: Phb_unicode_funcs_t; func: Thb_unicode_script_func_t; user_data: Pgpointer; destroy_: Thb_destroy_func_t); cdecl; external;
procedure hb_variation_to_string(variation: Phb_variation_t; buf: Pgchar; size: Pguint); cdecl; external;
implementation
function Thb_language_t._string: Pgchar; cdecl;
begin
  Result := LazHarfBuzz0.hb_language_to_string(self);
end;

procedure Thb_feature_t._string(buf: Pgchar; size: Pguint); cdecl;
begin
  LazHarfBuzz0.hb_feature_to_string(@self, buf, size);
end;

procedure Thb_variation_t._string(buf: Pgchar; size: Pguint); cdecl;
begin
  LazHarfBuzz0.hb_variation_to_string(@self, buf, size);
end;

end.
