[vala/staging] vapi: Add harfbuzz-gobject binding



commit bb01b955e390cdad0ec40d9ee1a798d60584e9cd
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Wed Feb 12 17:48:04 2020 +0100

    vapi: Add harfbuzz-gobject binding
    
    Mark it as experimental while is it subject to change.
    
    Fixes https://gitlab.gnome.org/GNOME/vala/issues/909

 vapi/Makefile.am                    |    6 +
 vapi/harfbuzz-gobject.deps          |    1 +
 vapi/harfbuzz-gobject.vapi          | 1904 +++++++++++++++++++++++++++++++++++
 vapi/metadata/HarfBuzz-0.0.metadata |  121 +++
 4 files changed, 2032 insertions(+)
---
diff --git a/vapi/Makefile.am b/vapi/Makefile.am
index 6aa0ad8b8..2a2e12cfe 100644
--- a/vapi/Makefile.am
+++ b/vapi/Makefile.am
@@ -154,6 +154,8 @@ dist_vapi_DATA = \
        gudev-1.0.vapi \
        hal.deps \
        hal.vapi \
+       harfbuzz-gobject.deps \
+       harfbuzz-gobject.vapi \
        hildon-1.deps \
        hildon-1.vapi \
        hildon-fm-2.deps \
@@ -363,6 +365,7 @@ GIR_BINDINGS = \
        gtk+-3.0 \
        gtk4 \
        gudev-1.0 \
+       harfbuzz-gobject \
        javascriptcoregtk-4.0 \
        json-glib-1.0 \
        libgeoclue-2.0 \
@@ -595,6 +598,9 @@ gtksourceview-2.0:
 gudev-1.0:
        $(GENVAPI) --library $(srcdir)/gudev-1.0 --metadatadir $(METADATADIR) 
$(METADATADIR)/GUdev-1.0-custom.vala $(GIRDIR)/GUdev-1.0.gir
 
+harfbuzz-gobject:
+       $(GENVAPI) --library $(srcdir)/harfbuzz-gobject --metadatadir $(METADATADIR) 
$(GIRDIR)/HarfBuzz-0.0.gir
+
 hildon-1:
        $(GENVAPI) --library $(srcdir)/hildon-1 $(PACKAGESDIR)/hildon-1/hildon-1-custom.vala 
$(PACKAGESDIR)/hildon-1/hildon-1.gi
 
diff --git a/vapi/harfbuzz-gobject.deps b/vapi/harfbuzz-gobject.deps
new file mode 100644
index 000000000..64c1c2eb2
--- /dev/null
+++ b/vapi/harfbuzz-gobject.deps
@@ -0,0 +1 @@
+gobject-2.0
diff --git a/vapi/harfbuzz-gobject.vapi b/vapi/harfbuzz-gobject.vapi
new file mode 100644
index 000000000..16a4d82b6
--- /dev/null
+++ b/vapi/harfbuzz-gobject.vapi
@@ -0,0 +1,1904 @@
+/* harfbuzz-gobject.vapi generated by vapigen, do not modify. */
+
+[CCode (cprefix = "hb_", gir_namespace = "HarfBuzz", gir_version = "0.0", lower_case_cprefix = "hb_")]
+[Version (experimental = true)]
+namespace HarfBuzz {
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_blob_t", copy_function = "g_boxed_copy", 
free_function = "g_boxed_free", type_id = "hb_gobject_blob_get_type ()")]
+       [Compact]
+       [GIR (name = "blob_t")]
+       public class Blob {
+               [Version (since = "1.8.0")]
+               public static HarfBuzz.Blob copy_writable_or_fail (HarfBuzz.Blob blob);
+               [Version (since = "1.7.7")]
+               public static HarfBuzz.Blob create_from_file (string file_name);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Blob create_sub_blob (HarfBuzz.Blob parent, uint offset, uint length);
+               [CCode (array_length_pos = 1.1, array_length_type = "guint")]
+               [Version (since = "0.9.2")]
+               public static unowned string[] get_data (HarfBuzz.Blob blob);
+               [CCode (array_length_pos = 1.1, array_length_type = "guint")]
+               [Version (since = "0.9.2")]
+               public static unowned string[] get_data_writable (HarfBuzz.Blob blob);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Blob get_empty ();
+               [Version (since = "0.9.2")]
+               public static uint get_length (HarfBuzz.Blob blob);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Bool is_immutable (HarfBuzz.Blob blob);
+               [Version (since = "0.9.2")]
+               public static void make_immutable (HarfBuzz.Blob blob);
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_buffer_t", copy_function = "g_boxed_copy", 
free_function = "g_boxed_free", type_id = "hb_gobject_buffer_get_type ()")]
+       [Compact]
+       [GIR (name = "buffer_t")]
+       public class Buffer {
+               [Version (since = "0.9.7")]
+               public static void add (HarfBuzz.Buffer buffer, HarfBuzz.Codepoint codepoint, uint cluster);
+               [Version (since = "0.9.31")]
+               public static void add_codepoints (HarfBuzz.Buffer buffer, [CCode (array_length_cname = 
"text_length", array_length_pos = 2.5)] HarfBuzz.Codepoint[] text, uint item_offset, int item_length);
+               [Version (since = "0.9.39")]
+               public static void add_latin1 (HarfBuzz.Buffer buffer, [CCode (array_length_cname = 
"text_length", array_length_pos = 2.5)] uint8[] text, uint item_offset, int item_length);
+               [Version (since = "0.9.2")]
+               public static void add_utf16 (HarfBuzz.Buffer buffer, [CCode (array_length_cname = 
"text_length", array_length_pos = 2.5)] uint16[] text, uint item_offset, int item_length);
+               [Version (since = "0.9.2")]
+               public static void add_utf32 (HarfBuzz.Buffer buffer, [CCode (array_length_cname = 
"text_length", array_length_pos = 2.5)] uint32[] text, uint item_offset, int item_length);
+               [Version (since = "0.9.2")]
+               public static void add_utf8 (HarfBuzz.Buffer buffer, [CCode (array_length_cname = 
"text_length", array_length_pos = 2.5)] uint8[] text, uint item_offset, int item_length);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Bool allocation_successful (HarfBuzz.Buffer buffer);
+               [Version (since = "1.5.0")]
+               public static void append (HarfBuzz.Buffer buffer, HarfBuzz.Buffer source, uint start, uint 
end);
+               [Version (since = "0.9.11")]
+               public static void clear_contents (HarfBuzz.Buffer buffer);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Buffer create ();
+               [Version (since = "0.9.7")]
+               public static HarfBuzz.Bool deserialize_glyphs (HarfBuzz.Buffer buffer, [CCode 
(array_length_cname = "buf_len", array_length_pos = 2.5)] string[] buf, out string end_ptr, HarfBuzz.Font 
font, HarfBuzz.BufferSerializeFormat format);
+               [Version (since = "1.5.0")]
+               public static HarfBuzz.BufferDiffFlags diff (HarfBuzz.Buffer buffer, HarfBuzz.Buffer 
reference, HarfBuzz.Codepoint dottedcircle_glyph, uint position_fuzz);
+               [Version (since = "0.9.42")]
+               public static HarfBuzz.BufferClusterLevel get_cluster_level (HarfBuzz.Buffer buffer);
+               [Version (since = "0.9.5")]
+               public static HarfBuzz.BufferContentType get_content_type (HarfBuzz.Buffer buffer);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Direction get_direction (HarfBuzz.Buffer buffer);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Buffer get_empty ();
+               [Version (since = "0.9.7")]
+               public static HarfBuzz.BufferFlags get_flags (HarfBuzz.Buffer buffer);
+               [CCode (array_length_pos = 1.1, array_length_type = "guint")]
+               [Version (since = "0.9.2")]
+               public static unowned HarfBuzz.Glyph[] get_glyph_infos (HarfBuzz.Buffer buffer);
+               [CCode (array_length_pos = 1.1, array_length_type = "guint")]
+               [Version (since = "0.9.2")]
+               public static unowned HarfBuzz.GlyphPosition[] get_glyph_positions (HarfBuzz.Buffer buffer);
+               [Version (since = "2.0.0")]
+               public static HarfBuzz.Codepoint get_invisible_glyph (HarfBuzz.Buffer buffer);
+               [Version (since = "0.9.2")]
+               public static unowned HarfBuzz.Language get_language (HarfBuzz.Buffer buffer);
+               [Version (since = "0.9.2")]
+               public static uint get_length (HarfBuzz.Buffer buffer);
+               [Version (since = "0.9.31")]
+               public static HarfBuzz.Codepoint get_replacement_codepoint (HarfBuzz.Buffer buffer);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Script get_script (HarfBuzz.Buffer buffer);
+               [Version (since = "0.9.7")]
+               public static void get_segment_properties (HarfBuzz.Buffer buffer, out unowned 
HarfBuzz.SegmentProperties props);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.UnicodeFuncs get_unicode_funcs (HarfBuzz.Buffer buffer);
+               [Version (since = "0.9.7")]
+               public static void guess_segment_properties (HarfBuzz.Buffer buffer);
+               [Version (since = "0.9.2")]
+               public static void normalize_glyphs (HarfBuzz.Buffer buffer);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Bool pre_allocate (HarfBuzz.Buffer buffer, uint size);
+               [Version (since = "0.9.2")]
+               public static void reset (HarfBuzz.Buffer buffer);
+               [Version (since = "0.9.2")]
+               public static void reverse (HarfBuzz.Buffer buffer);
+               [Version (since = "0.9.2")]
+               public static void reverse_clusters (HarfBuzz.Buffer buffer);
+               [Version (since = "0.9.41")]
+               public static void reverse_range (HarfBuzz.Buffer buffer, uint start, uint end);
+               [Version (since = "0.9.7")]
+               public static HarfBuzz.BufferSerializeFormat serialize_format_from_string ([CCode 
(array_length_cname = "len", array_length_pos = 1.1)] uint8[] str);
+               [Version (since = "0.9.7")]
+               public static unowned string serialize_format_to_string (HarfBuzz.BufferSerializeFormat 
format);
+               [Version (since = "0.9.7")]
+               public static uint serialize_glyphs (HarfBuzz.Buffer buffer, uint start, uint end, [CCode 
(array_length_cname = "buf_size", array_length_pos = 4.5, array_length_type = "guint")] out uint8[] buf, out 
uint buf_consumed, HarfBuzz.Font? font, HarfBuzz.BufferSerializeFormat format, HarfBuzz.BufferSerializeFlags 
flags);
+               [CCode (array_length = false, array_null_terminated = true)]
+               [Version (since = "0.9.7")]
+               public static unowned string[] serialize_list_formats ();
+               [Version (since = "0.9.42")]
+               public static void set_cluster_level (HarfBuzz.Buffer buffer, HarfBuzz.BufferClusterLevel 
cluster_level);
+               [Version (since = "0.9.5")]
+               public static void set_content_type (HarfBuzz.Buffer buffer, HarfBuzz.BufferContentType 
content_type);
+               [Version (since = "0.9.2")]
+               public static void set_direction (HarfBuzz.Buffer buffer, HarfBuzz.Direction direction);
+               [Version (since = "0.9.7")]
+               public static void set_flags (HarfBuzz.Buffer buffer, HarfBuzz.BufferFlags flags);
+               [Version (since = "2.0.0")]
+               public static void set_invisible_glyph (HarfBuzz.Buffer buffer, HarfBuzz.Codepoint invisible);
+               [Version (since = "0.9.2")]
+               public static void set_language (HarfBuzz.Buffer buffer, HarfBuzz.Language language);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Bool set_length (HarfBuzz.Buffer buffer, uint length);
+               [Version (since = "1.1.3")]
+               public static void set_message_func (HarfBuzz.Buffer buffer, owned HarfBuzz.BufferMessageFunc 
func);
+               [Version (since = "0.9.31")]
+               public static void set_replacement_codepoint (HarfBuzz.Buffer buffer, HarfBuzz.Codepoint 
replacement);
+               [Version (since = "0.9.2")]
+               public static void set_script (HarfBuzz.Buffer buffer, HarfBuzz.Script script);
+               [Version (since = "0.9.7")]
+               public static void set_segment_properties (HarfBuzz.Buffer buffer, HarfBuzz.SegmentProperties 
props);
+               [Version (since = "0.9.2")]
+               public static void set_unicode_funcs (HarfBuzz.Buffer buffer, HarfBuzz.UnicodeFuncs 
unicode_funcs);
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_draw_funcs_t", has_type_id = false)]
+       [Compact]
+       [GIR (name = "draw_funcs_t")]
+       public class DrawFuncs {
+               public void destroy ();
+               public HarfBuzz.Bool is_immutable ();
+               public void make_immutable ();
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_face_t", copy_function = "g_boxed_copy", 
free_function = "g_boxed_free", type_id = "hb_gobject_face_get_type ()")]
+       [Compact]
+       [GIR (name = "face_t")]
+       public class Face {
+               [Version (since = "1.9.0")]
+               public static HarfBuzz.Bool builder_add_table (HarfBuzz.Face face, HarfBuzz.Tag tag, 
HarfBuzz.Blob blob);
+               [Version (since = "1.9.0")]
+               public static HarfBuzz.Face builder_create ();
+               [Version (since = "1.9.0")]
+               public static void collect_unicodes (HarfBuzz.Face face, HarfBuzz.Set @out);
+               [Version (since = "1.9.0")]
+               public static void collect_variation_selectors (HarfBuzz.Face face, HarfBuzz.Set @out);
+               [Version (since = "1.9.0")]
+               public static void collect_variation_unicodes (HarfBuzz.Face face, HarfBuzz.Codepoint 
variation_selector, HarfBuzz.Set @out);
+               [Version (since = "1.7.7")]
+               public static uint count (HarfBuzz.Blob blob);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Face create (HarfBuzz.Blob blob, uint index);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Face create_for_tables (owned HarfBuzz.ReferenceTableFunc 
reference_table_func);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Face get_empty ();
+               [Version (since = "0.9.7")]
+               public static uint get_glyph_count (HarfBuzz.Face face);
+               [Version (since = "0.9.2")]
+               public static uint get_index (HarfBuzz.Face face);
+               [Version (since = "1.6.0")]
+               public static uint get_table_tags (HarfBuzz.Face face, uint start_offset, uint table_count, 
HarfBuzz.Tag table_tags);
+               [Version (since = "0.9.2")]
+               public static uint get_upem (HarfBuzz.Face face);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Bool is_immutable (HarfBuzz.Face face);
+               [Version (since = "0.9.2")]
+               public static void make_immutable (HarfBuzz.Face face);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Blob reference_blob (HarfBuzz.Face face);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Blob reference_table (HarfBuzz.Face face, HarfBuzz.Tag tag);
+               [Version (since = "0.9.7")]
+               public static void set_glyph_count (HarfBuzz.Face face, uint glyph_count);
+               [Version (since = "0.9.2")]
+               public static void set_index (HarfBuzz.Face face, uint index);
+               [Version (since = "0.9.2")]
+               public static void set_upem (HarfBuzz.Face face, uint upem);
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_feature_t", copy_function = "g_boxed_copy", 
free_function = "g_boxed_free", type_id = "hb_gobject_feature_get_type ()")]
+       [Compact]
+       [GIR (name = "feature_t")]
+       public class Feature {
+               public uint end;
+               public uint start;
+               public HarfBuzz.Tag tag;
+               public uint32 value;
+               [CCode (cname = "hb_feature_to_string")]
+               [Version (since = "0.9.5")]
+               public void _string ([CCode (array_length_cname = "size", array_length_pos = 1.1, 
array_length_type = "guint")] out string[] buf);
+               [Version (since = "0.9.5")]
+               public static HarfBuzz.Bool from_string ([CCode (array_length_cname = "len", array_length_pos 
= 1.5)] uint8[] str, out unowned HarfBuzz.Feature feature);
+               [Version (since = "0.9.5")]
+               public static void to_string (HarfBuzz.Feature feature, [CCode (array_length_cname = "size", 
array_length_pos = 2.1, array_length_type = "guint")] out string[] buf);
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_t", copy_function = "g_boxed_copy", 
free_function = "g_boxed_free", type_id = "hb_gobject_font_get_type ()")]
+       [Compact]
+       [GIR (name = "font_t")]
+       public class Font {
+               [Version (since = "0.9.2")]
+               public static void add_glyph_origin_for_direction (HarfBuzz.Font font, HarfBuzz.Codepoint 
glyph, HarfBuzz.Direction direction, out HarfBuzz.Position x, out HarfBuzz.Position y);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Font create (HarfBuzz.Face face);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Font create_sub_font (HarfBuzz.Font parent);
+               public static HarfBuzz.Bool draw_glyph (HarfBuzz.Font font, HarfBuzz.Codepoint glyph, 
HarfBuzz.DrawFuncs funcs, void* user_data);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Font get_empty ();
+               [Version (since = "1.1.3")]
+               public static HarfBuzz.FontExtents get_extents_for_direction (HarfBuzz.Font font, 
HarfBuzz.Direction direction);
+               [Version (since = "0.9.2")]
+               public static unowned HarfBuzz.Face get_face (HarfBuzz.Font font);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Bool get_glyph (HarfBuzz.Font font, HarfBuzz.Codepoint unicode, 
HarfBuzz.Codepoint variation_selector, out HarfBuzz.Codepoint glyph);
+               [Version (since = "0.9.2")]
+               public static void get_glyph_advance_for_direction (HarfBuzz.Font font, HarfBuzz.Codepoint 
glyph, HarfBuzz.Direction direction, out HarfBuzz.Position x, out HarfBuzz.Position y);
+               [Version (since = "1.8.6")]
+               public static void get_glyph_advances_for_direction (HarfBuzz.Font font, HarfBuzz.Direction 
direction, uint count, HarfBuzz.Codepoint first_glyph, uint glyph_stride, HarfBuzz.Position first_advance, 
uint advance_stride);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Bool get_glyph_contour_point (HarfBuzz.Font font, HarfBuzz.Codepoint 
glyph, uint point_index, out HarfBuzz.Position x, out HarfBuzz.Position y);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Bool get_glyph_contour_point_for_origin (HarfBuzz.Font font, 
HarfBuzz.Codepoint glyph, uint point_index, HarfBuzz.Direction direction, out HarfBuzz.Position x, out 
HarfBuzz.Position y);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Bool get_glyph_extents (HarfBuzz.Font font, HarfBuzz.Codepoint glyph, 
out HarfBuzz.GlyphExtents extents);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Bool get_glyph_extents_for_origin (HarfBuzz.Font font, 
HarfBuzz.Codepoint glyph, HarfBuzz.Direction direction, out HarfBuzz.GlyphExtents extents);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Bool get_glyph_from_name (HarfBuzz.Font font, [CCode 
(array_length_cname = "len", array_length_pos = 2.5)] string[] name, out HarfBuzz.Codepoint glyph);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Position get_glyph_h_advance (HarfBuzz.Font font, HarfBuzz.Codepoint 
glyph);
+               [Version (since = "1.8.6")]
+               public static void get_glyph_h_advances (HarfBuzz.Font font, uint count, HarfBuzz.Codepoint 
first_glyph, uint glyph_stride, HarfBuzz.Position first_advance, uint advance_stride);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Position get_glyph_h_kerning (HarfBuzz.Font font, HarfBuzz.Codepoint 
left_glyph, HarfBuzz.Codepoint right_glyph);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Bool get_glyph_h_origin (HarfBuzz.Font font, HarfBuzz.Codepoint glyph, 
out HarfBuzz.Position x, out HarfBuzz.Position y);
+               [Version (since = "0.9.2")]
+               public static void get_glyph_kerning_for_direction (HarfBuzz.Font font, HarfBuzz.Codepoint 
first_glyph, HarfBuzz.Codepoint second_glyph, HarfBuzz.Direction direction, out HarfBuzz.Position x, out 
HarfBuzz.Position y);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Bool get_glyph_name (HarfBuzz.Font font, HarfBuzz.Codepoint glyph, 
[CCode (array_length_cname = "size", array_length_pos = 3.1, array_length_type = "guint")] string[] name);
+               [Version (since = "0.9.2")]
+               public static void get_glyph_origin_for_direction (HarfBuzz.Font font, HarfBuzz.Codepoint 
glyph, HarfBuzz.Direction direction, out HarfBuzz.Position x, out HarfBuzz.Position y);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Position get_glyph_v_advance (HarfBuzz.Font font, HarfBuzz.Codepoint 
glyph);
+               [Version (since = "1.8.6")]
+               public static void get_glyph_v_advances (HarfBuzz.Font font, uint count, HarfBuzz.Codepoint 
first_glyph, uint glyph_stride, HarfBuzz.Position first_advance, uint advance_stride);
+               [Version (deprecated = true, deprecated_since = "2.0.0", since = "0.9.2")]
+               public static HarfBuzz.Position get_glyph_v_kerning (HarfBuzz.Font font, HarfBuzz.Codepoint 
top_glyph, HarfBuzz.Codepoint bottom_glyph);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Bool get_glyph_v_origin (HarfBuzz.Font font, HarfBuzz.Codepoint glyph, 
out HarfBuzz.Position x, out HarfBuzz.Position y);
+               [Version (since = "1.1.3")]
+               public static HarfBuzz.Bool get_h_extents (HarfBuzz.Font font, out HarfBuzz.FontExtents 
extents);
+               [Version (since = "1.2.3")]
+               public static HarfBuzz.Bool get_nominal_glyph (HarfBuzz.Font font, HarfBuzz.Codepoint 
unicode, out HarfBuzz.Codepoint glyph);
+               [Version (since = "2.6.3")]
+               public static uint get_nominal_glyphs (HarfBuzz.Font font, uint count, HarfBuzz.Codepoint 
first_unicode, uint unicode_stride, HarfBuzz.Codepoint first_glyph, uint glyph_stride);
+               [Version (since = "0.9.2")]
+               public static unowned HarfBuzz.Font get_parent (HarfBuzz.Font font);
+               [Version (since = "0.9.2")]
+               public static void get_ppem (HarfBuzz.Font font, out uint x_ppem, out uint y_ppem);
+               [Version (since = "0.9.2")]
+               public static float get_ptem (HarfBuzz.Font font);
+               [Version (since = "0.9.2")]
+               public static void get_scale (HarfBuzz.Font font, out int x_scale, out int y_scale);
+               [Version (since = "1.1.3")]
+               public static HarfBuzz.Bool get_v_extents (HarfBuzz.Font font, out HarfBuzz.FontExtents 
extents);
+               public static float get_var_coords_design (HarfBuzz.Font font, uint length);
+               [Version (since = "1.4.2")]
+               public static int get_var_coords_normalized (HarfBuzz.Font font, uint length);
+               [Version (since = "1.2.3")]
+               public static HarfBuzz.Bool get_variation_glyph (HarfBuzz.Font font, HarfBuzz.Codepoint 
unicode, HarfBuzz.Codepoint variation_selector, out HarfBuzz.Codepoint glyph);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Bool glyph_from_string (HarfBuzz.Font font, [CCode (array_length_cname 
= "len", array_length_pos = 2.5)] uint8[] s, out HarfBuzz.Codepoint glyph);
+               [Version (since = "0.9.2")]
+               public static void glyph_to_string (HarfBuzz.Font font, HarfBuzz.Codepoint glyph, [CCode 
(array_length_cname = "size", array_length_pos = 3.1, array_length_type = "guint")] string[] s);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Bool is_immutable (HarfBuzz.Font font);
+               [Version (since = "0.9.2")]
+               public static void make_immutable (HarfBuzz.Font font);
+               [Version (since = "1.4.3")]
+               public static void set_face (HarfBuzz.Font font, HarfBuzz.Face face);
+               [Version (since = "0.9.2")]
+               public static void set_funcs (HarfBuzz.Font font, owned HarfBuzz.FontFuncs klass);
+               [Version (since = "0.9.2")]
+               public static void set_funcs_data (HarfBuzz.Font font, [CCode (destroy_notify_pos = 2.1)] 
owned void* font_data);
+               [Version (since = "1.0.5")]
+               public static void set_parent (HarfBuzz.Font font, HarfBuzz.Font parent);
+               [Version (since = "0.9.2")]
+               public static void set_ppem (HarfBuzz.Font font, uint x_ppem, uint y_ppem);
+               [Version (since = "1.6.0")]
+               public static void set_ptem (HarfBuzz.Font font, float ptem);
+               [Version (since = "0.9.2")]
+               public static void set_scale (HarfBuzz.Font font, int x_scale, int y_scale);
+               [Version (since = "1.4.2")]
+               public static void set_var_coords_design (HarfBuzz.Font font, float coords, uint 
coords_length);
+               [Version (since = "1.4.2")]
+               public static void set_var_coords_normalized (HarfBuzz.Font font, int coords, uint 
coords_length);
+               [Version (since = "2.6.0")]
+               public static void set_var_named_instance (HarfBuzz.Font font, uint instance_index);
+               [Version (since = "1.4.2")]
+               public static void set_variations (HarfBuzz.Font font, HarfBuzz.Variation variations, uint 
variations_length);
+               [Version (since = "0.9.2")]
+               public static void subtract_glyph_origin_for_direction (HarfBuzz.Font font, 
HarfBuzz.Codepoint glyph, HarfBuzz.Direction direction, out HarfBuzz.Position x, out HarfBuzz.Position y);
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_funcs_t", copy_function = "g_boxed_copy", 
free_function = "g_boxed_free", type_id = "hb_gobject_font_funcs_get_type ()")]
+       [Compact]
+       [GIR (name = "font_funcs_t")]
+       public class FontFuncs {
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.FontFuncs create ();
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.FontFuncs get_empty ();
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Bool is_immutable (HarfBuzz.FontFuncs ffuncs);
+               [Version (since = "0.9.2")]
+               public static void make_immutable (HarfBuzz.FontFuncs ffuncs);
+               [Version (since = "1.1.2")]
+               public static void set_font_h_extents_func (HarfBuzz.FontFuncs ffuncs, owned 
HarfBuzz.FontGetFontHExtentsFunc func);
+               [Version (since = "1.1.2")]
+               public static void set_font_v_extents_func (HarfBuzz.FontFuncs ffuncs, owned 
HarfBuzz.FontGetFontVExtentsFunc func);
+               [Version (since = "0.9.2")]
+               public static void set_glyph_contour_point_func (HarfBuzz.FontFuncs ffuncs, owned 
HarfBuzz.FontGetGlyphContourFunc func);
+               [Version (since = "0.9.2")]
+               public static void set_glyph_extents_func (HarfBuzz.FontFuncs ffuncs, owned 
HarfBuzz.FontGetGlyphExtentsFunc func);
+               [Version (since = "0.9.2")]
+               public static void set_glyph_from_name_func (HarfBuzz.FontFuncs ffuncs, owned 
HarfBuzz.FontGetGlyphFromNameFunc func);
+               [Version (deprecated = true, deprecated_since = "1.2.3", since = "0.9.2")]
+               public static void set_glyph_func (HarfBuzz.FontFuncs ffuncs, owned HarfBuzz.FontGetGlyphFunc 
func);
+               [Version (since = "0.9.2")]
+               public static void set_glyph_h_advance_func (HarfBuzz.FontFuncs ffuncs, owned 
HarfBuzz.FontGetGlyphHAdvanceFunc func);
+               [Version (since = "1.8.6")]
+               public static void set_glyph_h_advances_func (HarfBuzz.FontFuncs ffuncs, owned 
HarfBuzz.FontGetGlyphHAdvancesFunc func);
+               [Version (since = "0.9.2")]
+               public static void set_glyph_h_kerning_func (HarfBuzz.FontFuncs ffuncs, owned 
HarfBuzz.FontGetGlyphHKerningFunc func);
+               [Version (since = "0.9.2")]
+               public static void set_glyph_h_origin_func (HarfBuzz.FontFuncs ffuncs, owned 
HarfBuzz.FontGetGlyphHOriginFunc func);
+               [Version (since = "0.9.2")]
+               public static void set_glyph_name_func (HarfBuzz.FontFuncs ffuncs, owned 
HarfBuzz.FontGetGlyphNameFunc func);
+               [Version (since = "0.9.2")]
+               public static void set_glyph_v_advance_func (HarfBuzz.FontFuncs ffuncs, owned 
HarfBuzz.FontGetGlyphVAdvanceFunc func);
+               [Version (since = "1.8.6")]
+               public static void set_glyph_v_advances_func (HarfBuzz.FontFuncs ffuncs, owned 
HarfBuzz.FontGetGlyphVAdvancesFunc func);
+               [Version (deprecated = true, deprecated_since = "2.0.0", since = "0.9.2")]
+               public static void set_glyph_v_kerning_func (HarfBuzz.FontFuncs ffuncs, owned 
HarfBuzz.FontGetGlyphVKerningFunc func);
+               [Version (since = "0.9.2")]
+               public static void set_glyph_v_origin_func (HarfBuzz.FontFuncs ffuncs, owned 
HarfBuzz.FontGetGlyphVOriginFunc func);
+               [Version (since = "1.2.3")]
+               public static void set_nominal_glyph_func (HarfBuzz.FontFuncs ffuncs, owned 
HarfBuzz.FontGetNominalGlyphFunc func);
+               [Version (since = "2.0.0")]
+               public static void set_nominal_glyphs_func (HarfBuzz.FontFuncs ffuncs, owned 
HarfBuzz.FontGetNominalGlyphsFunc func);
+               [Version (since = "1.2.3")]
+               public static void set_variation_glyph_func (HarfBuzz.FontFuncs ffuncs, owned 
HarfBuzz.FontGetVariantGlyphFunc func);
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_glyph_info_t", copy_function = "g_boxed_copy", 
free_function = "g_boxed_free", lower_case_cprefix = "hb_gobject_glyph_info_", type_id = 
"hb_gobject_glyph_info_get_type ()")]
+       [Compact]
+       [GIR (name = "glyph_info_t")]
+       public class Glyph {
+               public uint32 cluster;
+               public HarfBuzz.Codepoint codepoint;
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_glyph_position_t", copy_function = 
"g_boxed_copy", free_function = "g_boxed_free", lower_case_cprefix = "hb_gobject_glyph_position_", type_id = 
"hb_gobject_glyph_position_get_type ()")]
+       [Compact]
+       [GIR (name = "glyph_position_t")]
+       public class GlyphPosition {
+               public HarfBuzz.Position x_advance;
+               public HarfBuzz.Position x_offset;
+               public HarfBuzz.Position y_advance;
+               public HarfBuzz.Position y_offset;
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_language_t", has_type_id = false)]
+       [Compact]
+       [GIR (name = "language_t")]
+       public class Language {
+               [CCode (cname = "hb_language_to_string")]
+               [Version (since = "0.9.2")]
+               public unowned string _string ();
+               [Version (since = "0.9.2")]
+               public static unowned HarfBuzz.Language from_string ([CCode (array_length_cname = "len", 
array_length_pos = 1.1)] uint8[] str);
+               [Version (since = "0.9.2")]
+               public static unowned HarfBuzz.Language get_default ();
+               [Version (since = "0.9.2")]
+               public unowned string to_string ();
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_map_t", copy_function = "g_boxed_copy", 
free_function = "g_boxed_free", type_id = "hb_gobject_map_get_type ()")]
+       [Compact]
+       [GIR (name = "map_t")]
+       public class Map {
+               [Version (since = "1.7.7")]
+               public static HarfBuzz.Bool allocation_successful (HarfBuzz.Map map);
+               [Version (since = "1.7.7")]
+               public static void clear (HarfBuzz.Map map);
+               [Version (since = "1.7.7")]
+               public static HarfBuzz.Map create ();
+               [Version (since = "1.7.7")]
+               public static void del (HarfBuzz.Map map, HarfBuzz.Codepoint key);
+               [Version (since = "1.7.7")]
+               public static HarfBuzz.Codepoint @get (HarfBuzz.Map map, HarfBuzz.Codepoint key);
+               [Version (since = "1.7.7")]
+               public static HarfBuzz.Map get_empty ();
+               [Version (since = "1.7.7")]
+               public static uint get_population (HarfBuzz.Map map);
+               [Version (since = "1.7.7")]
+               public static HarfBuzz.Bool has (HarfBuzz.Map map, HarfBuzz.Codepoint key);
+               [Version (since = "1.7.7")]
+               public static HarfBuzz.Bool is_empty (HarfBuzz.Map map);
+               [Version (since = "1.7.7")]
+               public static void @set (HarfBuzz.Map map, HarfBuzz.Codepoint key, HarfBuzz.Codepoint value);
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_math_glyph_part_t", copy_function = 
"g_boxed_copy", free_function = "g_boxed_free", lower_case_cprefix = "hb_gobject_ot_math_glyph_part_", 
type_id = "hb_gobject_ot_math_glyph_part_get_type ()")]
+       [Compact]
+       [GIR (name = "ot_math_glyph_part_t")]
+       [Version (since = "1.3.3")]
+       public class OtMathGlypthPart {
+               public HarfBuzz.Position end_connector_length;
+               public HarfBuzz.OtMathGlyphPartFlags flags;
+               public HarfBuzz.Position full_advance;
+               public HarfBuzz.Codepoint glyph;
+               public HarfBuzz.Position start_connector_length;
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_math_glyph_variant_t", copy_function = 
"g_boxed_copy", free_function = "g_boxed_free", lower_case_cprefix = "hb_gobject_ot_math_glyph_variant_", 
type_id = "hb_gobject_ot_math_glyph_variant_get_type ()")]
+       [Compact]
+       [GIR (name = "ot_math_glyph_variant_t")]
+       [Version (since = "1.3.3")]
+       public class OtMathGlypthVariant {
+               public HarfBuzz.Position advance;
+               public HarfBuzz.Codepoint glyph;
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_segment_properties_t", copy_function = 
"g_boxed_copy", free_function = "g_boxed_free", type_id = "hb_gobject_segment_properties_get_type ()")]
+       [Compact]
+       [GIR (name = "segment_properties_t")]
+       public class SegmentProperties {
+               public HarfBuzz.Direction direction;
+               public weak HarfBuzz.Language language;
+               public HarfBuzz.Script script;
+               [Version (since = "0.9.7")]
+               public static HarfBuzz.Bool equal (HarfBuzz.SegmentProperties a, HarfBuzz.SegmentProperties 
b);
+               [Version (since = "0.9.7")]
+               public static uint hash (HarfBuzz.SegmentProperties p);
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_set_t", copy_function = "g_boxed_copy", 
free_function = "g_boxed_free", type_id = "hb_gobject_set_get_type ()")]
+       [Compact]
+       [GIR (name = "set_t")]
+       public class Set {
+               [Version (since = "0.9.2")]
+               public static void add (HarfBuzz.Set @set, HarfBuzz.Codepoint codepoint);
+               [Version (since = "0.9.7")]
+               public static void add_range (HarfBuzz.Set @set, HarfBuzz.Codepoint first, HarfBuzz.Codepoint 
last);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Bool allocation_successful (HarfBuzz.Set @set);
+               [Version (since = "0.9.2")]
+               public static void clear (HarfBuzz.Set @set);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Set create ();
+               [Version (since = "0.9.2")]
+               public static void del (HarfBuzz.Set @set, HarfBuzz.Codepoint codepoint);
+               [Version (since = "0.9.7")]
+               public static void del_range (HarfBuzz.Set @set, HarfBuzz.Codepoint first, HarfBuzz.Codepoint 
last);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Set get_empty ();
+               [Version (since = "0.9.7")]
+               public static HarfBuzz.Codepoint get_max (HarfBuzz.Set @set);
+               [Version (since = "0.9.7")]
+               public static HarfBuzz.Codepoint get_min (HarfBuzz.Set @set);
+               [Version (since = "0.9.7")]
+               public static uint get_population (HarfBuzz.Set @set);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Bool has (HarfBuzz.Set @set, HarfBuzz.Codepoint codepoint);
+               [Version (since = "0.9.2")]
+               public static void intersect (HarfBuzz.Set @set, HarfBuzz.Set other);
+               [Version (deprecated = true, deprecated_since = "1.6.1", since = "0.9.10")]
+               public static void invert (HarfBuzz.Set @set);
+               [Version (since = "0.9.7")]
+               public static HarfBuzz.Bool is_empty (HarfBuzz.Set @set);
+               [Version (since = "0.9.7")]
+               public static HarfBuzz.Bool is_equal (HarfBuzz.Set @set, HarfBuzz.Set other);
+               [Version (since = "1.8.1")]
+               public static HarfBuzz.Bool is_subset (HarfBuzz.Set @set, HarfBuzz.Set larger_set);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Bool next (HarfBuzz.Set @set, ref HarfBuzz.Codepoint codepoint);
+               [Version (since = "0.9.7")]
+               public static HarfBuzz.Bool next_range (HarfBuzz.Set @set, out HarfBuzz.Codepoint first, ref 
HarfBuzz.Codepoint last);
+               [Version (since = "1.8.0")]
+               public static HarfBuzz.Bool previous (HarfBuzz.Set @set, ref HarfBuzz.Codepoint codepoint);
+               [Version (since = "1.8.0")]
+               public static HarfBuzz.Bool previous_range (HarfBuzz.Set @set, ref HarfBuzz.Codepoint first, 
out HarfBuzz.Codepoint last);
+               [Version (since = "0.9.2")]
+               public static void @set (HarfBuzz.Set @set, HarfBuzz.Set other);
+               [Version (since = "0.9.2")]
+               public static void subtract (HarfBuzz.Set @set, HarfBuzz.Set other);
+               [Version (since = "0.9.2")]
+               public static void symmetric_difference (HarfBuzz.Set @set, HarfBuzz.Set other);
+               [Version (since = "0.9.2")]
+               public static void union (HarfBuzz.Set @set, HarfBuzz.Set other);
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_shape_plan_t", copy_function = "g_boxed_copy", 
free_function = "g_boxed_free", type_id = "hb_gobject_shape_plan_get_type ()")]
+       [Compact]
+       [GIR (name = "shape_plan_t")]
+       public class ShapePlan {
+               [Version (since = "0.9.7")]
+               public static HarfBuzz.ShapePlan create (HarfBuzz.Face face, HarfBuzz.SegmentProperties 
props, [CCode (array_length_cname = "num_user_features", array_length_pos = 3.5, array_length_type = 
"guint")] HarfBuzz.Feature[] user_features, [CCode (array_length = false, array_null_terminated = true)] 
string[] shaper_list);
+               public static HarfBuzz.ShapePlan create2 (HarfBuzz.Face face, HarfBuzz.SegmentProperties 
props, HarfBuzz.Feature user_features, uint num_user_features, int coords, uint num_coords, string 
shaper_list);
+               [Version (since = "0.9.7")]
+               public static HarfBuzz.ShapePlan create_cached (HarfBuzz.Face face, 
HarfBuzz.SegmentProperties props, [CCode (array_length_cname = "num_user_features", array_length_pos = 3.5, 
array_length_type = "guint")] HarfBuzz.Feature[] user_features, [CCode (array_length = false, 
array_null_terminated = true)] string[] shaper_list);
+               public static HarfBuzz.ShapePlan create_cached2 (HarfBuzz.Face face, 
HarfBuzz.SegmentProperties props, HarfBuzz.Feature user_features, uint num_user_features, int coords, uint 
num_coords, string shaper_list);
+               [Version (since = "0.9.7")]
+               public static HarfBuzz.Bool execute (HarfBuzz.ShapePlan shape_plan, HarfBuzz.Font font, 
HarfBuzz.Buffer buffer, [CCode (array_length_cname = "num_features", array_length_pos = 4.1, 
array_length_type = "guint")] HarfBuzz.Feature[] features);
+               [Version (since = "0.9.7")]
+               public static HarfBuzz.ShapePlan get_empty ();
+               [Version (since = "0.9.7")]
+               public static unowned string get_shaper (HarfBuzz.ShapePlan shape_plan);
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_unicode_funcs_t", copy_function = 
"g_boxed_copy", free_function = "g_boxed_free", type_id = "hb_gobject_unicode_funcs_get_type ()")]
+       [Compact]
+       [GIR (name = "unicode_funcs_t")]
+       public class UnicodeFuncs {
+               [CCode (cname = "hb_unicode_combining_class")]
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.UnicodeCombiningClass combining_class (HarfBuzz.UnicodeFuncs ufuncs, 
HarfBuzz.Codepoint unicode);
+               [CCode (cname = "hb_unicode_compose")]
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Bool compose (HarfBuzz.UnicodeFuncs ufuncs, HarfBuzz.Codepoint a, 
HarfBuzz.Codepoint b, out HarfBuzz.Codepoint ab);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.UnicodeFuncs create (HarfBuzz.UnicodeFuncs? parent);
+               [CCode (cname = "hb_unicode_decompose")]
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Bool decompose (HarfBuzz.UnicodeFuncs ufuncs, HarfBuzz.Codepoint ab, 
out HarfBuzz.Codepoint a, out HarfBuzz.Codepoint b);
+               [CCode (cname = "hb_unicode_decompose_compatibility")]
+               [Version (deprecated = true, deprecated_since = "2.0.0", since = "0.9.2")]
+               public static uint decompose_compatibility (HarfBuzz.UnicodeFuncs ufuncs, HarfBuzz.Codepoint 
u, out HarfBuzz.Codepoint decomposed);
+               [CCode (cname = "hb_unicode_eastasian_width")]
+               [Version (deprecated = true, deprecated_since = "2.0.0", since = "0.9.2")]
+               public static uint eastasian_width (HarfBuzz.UnicodeFuncs ufuncs, HarfBuzz.Codepoint unicode);
+               [CCode (cname = "hb_unicode_general_category")]
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.UnicodeGeneralCategory general_category (HarfBuzz.UnicodeFuncs ufuncs, 
HarfBuzz.Codepoint unicode);
+               public static HarfBuzz.UnicodeFuncs get_default ();
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.UnicodeFuncs get_empty ();
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.UnicodeFuncs get_parent (HarfBuzz.UnicodeFuncs ufuncs);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Bool is_immutable (HarfBuzz.UnicodeFuncs ufuncs);
+               [Version (since = "0.9.2")]
+               public static void make_immutable (HarfBuzz.UnicodeFuncs ufuncs);
+               [CCode (cname = "hb_unicode_mirroring")]
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Codepoint mirroring (HarfBuzz.UnicodeFuncs ufuncs, HarfBuzz.Codepoint 
unicode);
+               [CCode (cname = "hb_unicode_script")]
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Script script (HarfBuzz.UnicodeFuncs ufuncs, HarfBuzz.Codepoint 
unicode);
+               [Version (since = "0.9.2")]
+               public static void set_combining_class_func (HarfBuzz.UnicodeFuncs ufuncs, owned 
HarfBuzz.UnicodeCombiningClassFunc func);
+               [Version (since = "0.9.2")]
+               public static void set_compose_func (HarfBuzz.UnicodeFuncs ufuncs, owned 
HarfBuzz.UnicodeComposeFunc func);
+               [Version (deprecated = true, deprecated_since = "2.0.0", since = "0.9.2")]
+               public static void set_decompose_compatibility_func (HarfBuzz.UnicodeFuncs ufuncs, owned 
HarfBuzz.UnicodedeComposeCompatibilityFunc func);
+               [Version (since = "0.9.2")]
+               public static void set_decompose_func (HarfBuzz.UnicodeFuncs ufuncs, owned 
HarfBuzz.UnicodeDecomposeFunc func);
+               [Version (deprecated = true, deprecated_since = "2.0.0", since = "0.9.2")]
+               public static void set_eastasian_width_func (HarfBuzz.UnicodeFuncs ufuncs, owned 
HarfBuzz.UnicodeEastasianWidthFunc func);
+               [Version (since = "0.9.2")]
+               public static void set_general_category_func (HarfBuzz.UnicodeFuncs ufuncs, owned 
HarfBuzz.UnicodeGeneralCategoryFunc func);
+               [Version (since = "0.9.2")]
+               public static void set_mirroring_func (HarfBuzz.UnicodeFuncs ufuncs, owned 
HarfBuzz.UnicodeMirroringFunc func);
+               [Version (since = "0.9.2")]
+               public static void set_script_func (HarfBuzz.UnicodeFuncs ufuncs, owned 
HarfBuzz.UnicodeScriptFunc func);
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_user_data_key_t", copy_function = 
"g_boxed_copy", free_function = "g_boxed_free", lower_case_cprefix = "hb_gobject_user_data_key_", type_id = 
"hb_gobject_user_data_key_get_type ()")]
+       [Compact]
+       [GIR (name = "user_data_key_t")]
+       public class UserDataKey {
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_bool_t")]
+       [GIR (name = "bool_t")]
+       [SimpleType]
+       public struct Bool : int {
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_codepoint_t")]
+       [GIR (name = "codepoint_t")]
+       [SimpleType]
+       public struct Codepoint : uint32 {
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_color_t")]
+       [GIR (name = "color_t")]
+       [SimpleType]
+       public struct Color : uint32 {
+               [Version (since = "2.1.0")]
+               public uint8 get_alpha ();
+               [Version (since = "2.1.0")]
+               public uint8 get_blue ();
+               [Version (since = "2.1.0")]
+               public uint8 get_green ();
+               [Version (since = "2.1.0")]
+               public uint8 get_red ();
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_extents_t", has_type_id = false)]
+       [GIR (name = "font_extents_t")]
+       public struct FontExtents {
+               public HarfBuzz.Position ascender;
+               public HarfBuzz.Position descender;
+               public HarfBuzz.Position line_gap;
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_glyph_extents_t", has_type_id = false)]
+       [GIR (name = "glyph_extents_t")]
+       public struct GlyphExtents {
+               public HarfBuzz.Position x_bearing;
+               public HarfBuzz.Position y_bearing;
+               public HarfBuzz.Position width;
+               public HarfBuzz.Position height;
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_mask_t")]
+       [GIR (name = "mask_t")]
+       [SimpleType]
+       public struct Mask : uint32 {
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_color_layer_t", has_type_id = false)]
+       [GIR (name = "ot_color_layer_t")]
+       [Version (since = "2.1.0")]
+       public struct OtColorLayer {
+               public HarfBuzz.Codepoint glyph;
+               public uint color_index;
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_name_entry_t", has_type_id = false)]
+       [GIR (name = "ot_name_entry_t")]
+       [Version (since = "2.1.0")]
+       public struct OtNameEntry {
+               public HarfBuzz.OtNameId name_id;
+               public weak HarfBuzz.Language language;
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_name_id_t")]
+       [GIR (name = "ot_name_id_t")]
+       [SimpleType]
+       public struct OtNameId : uint {
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_var_axis_t", has_type_id = false)]
+       [GIR (name = "ot_var_axis_t")]
+       [Version (deprecated = true, deprecated_since = "2.2.0", since = "1.4.2")]
+       public struct OtVarAxis {
+               public HarfBuzz.Tag tag;
+               public HarfBuzz.OtNameId name_id;
+               public float min_value;
+               public float default_value;
+               public float max_value;
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_var_axis_info_t", has_type_id = false)]
+       [GIR (name = "ot_var_axis_info_t")]
+       [Version (since = "2.2.0")]
+       public struct OtVarAxisInfo {
+               public uint axis_index;
+               public HarfBuzz.Tag tag;
+               public HarfBuzz.OtNameId name_id;
+               public HarfBuzz.OtVarAxisFlags flags;
+               public float min_value;
+               public float default_value;
+               public float max_value;
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_position_t")]
+       [GIR (name = "position_t")]
+       [SimpleType]
+       public struct Position : int32 {
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_tag_t")]
+       [GIR (name = "tag_t")]
+       [SimpleType]
+       public struct Tag : uint32 {
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Tag from_string ([CCode (array_length_cname = "len", array_length_pos 
= 1.1)] uint8[] str);
+               [Version (since = "0.9.5")]
+               public void to_string ([CCode (array_length = false)] out unowned uint8 buf[4]);
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_variation_t", has_type_id = false)]
+       [GIR (name = "variation_t")]
+       [Version (since = "1.4.2")]
+       public struct Variation {
+               public HarfBuzz.Tag tag;
+               public float value;
+               [CCode (cname = "hb_variation_to_string")]
+               public void _string (string buf, uint size);
+               public static HarfBuzz.Bool from_string (string str, int len, HarfBuzz.Variation variation);
+               public void to_string (string buf, uint size);
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_var_int_t")]
+       [GIR (name = "var_int_t")]
+       public struct var_int_t {
+               public uint32 u32;
+               public int32 i32;
+               [CCode (array_length = false)]
+               public weak uint16 u16[2];
+               [CCode (array_length = false)]
+               public weak int16 i16[2];
+               [CCode (array_length = false)]
+               public weak uint8 u8[4];
+               [CCode (array_length = false)]
+               public weak int8 i8[4];
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_aat_layout_feature_selector_t", cprefix = 
"HB_AAT_LAYOUT_FEATURE_SELECTOR_", type_id = "hb_gobject_aat_layout_feature_selector_get_type ()")]
+       [GIR (name = "aat_layout_feature_selector_t")]
+       [Version (since = "2.2.0")]
+       public enum AatLayoutFeatureSelector {
+               INVALID,
+               ALL_TYPE_FEATURES_ON,
+               ALL_TYPE_FEATURES_OFF,
+               REQUIRED_LIGATURES_ON,
+               REQUIRED_LIGATURES_OFF,
+               COMMON_LIGATURES_ON,
+               COMMON_LIGATURES_OFF,
+               RARE_LIGATURES_ON,
+               RARE_LIGATURES_OFF,
+               LOGOS_ON,
+               LOGOS_OFF,
+               REBUS_PICTURES_ON,
+               REBUS_PICTURES_OFF,
+               DIPHTHONG_LIGATURES_ON,
+               DIPHTHONG_LIGATURES_OFF,
+               SQUARED_LIGATURES_ON,
+               SQUARED_LIGATURES_OFF,
+               ABBREV_SQUARED_LIGATURES_ON,
+               ABBREV_SQUARED_LIGATURES_OFF,
+               SYMBOL_LIGATURES_ON,
+               SYMBOL_LIGATURES_OFF,
+               CONTEXTUAL_LIGATURES_ON,
+               CONTEXTUAL_LIGATURES_OFF,
+               HISTORICAL_LIGATURES_ON,
+               HISTORICAL_LIGATURES_OFF,
+               UNCONNECTED,
+               PARTIALLY_CONNECTED,
+               CURSIVE,
+               UPPER_AND_LOWER_CASE,
+               ALL_CAPS,
+               ALL_LOWER_CASE,
+               SMALL_CAPS,
+               INITIAL_CAPS,
+               INITIAL_CAPS_AND_SMALL_CAPS,
+               SUBSTITUTE_VERTICAL_FORMS_ON,
+               SUBSTITUTE_VERTICAL_FORMS_OFF,
+               LINGUISTIC_REARRANGEMENT_ON,
+               LINGUISTIC_REARRANGEMENT_OFF,
+               MONOSPACED_NUMBERS,
+               PROPORTIONAL_NUMBERS,
+               THIRD_WIDTH_NUMBERS,
+               QUARTER_WIDTH_NUMBERS,
+               WORD_INITIAL_SWASHES_ON,
+               WORD_INITIAL_SWASHES_OFF,
+               WORD_FINAL_SWASHES_ON,
+               WORD_FINAL_SWASHES_OFF,
+               LINE_INITIAL_SWASHES_ON,
+               LINE_INITIAL_SWASHES_OFF,
+               LINE_FINAL_SWASHES_ON,
+               LINE_FINAL_SWASHES_OFF,
+               NON_FINAL_SWASHES_ON,
+               NON_FINAL_SWASHES_OFF,
+               SHOW_DIACRITICS,
+               HIDE_DIACRITICS,
+               DECOMPOSE_DIACRITICS,
+               NORMAL_POSITION,
+               SUPERIORS,
+               INFERIORS,
+               ORDINALS,
+               SCIENTIFIC_INFERIORS,
+               NO_FRACTIONS,
+               VERTICAL_FRACTIONS,
+               DIAGONAL_FRACTIONS,
+               PREVENT_OVERLAP_ON,
+               PREVENT_OVERLAP_OFF,
+               HYPHENS_TO_EM_DASH_ON,
+               HYPHENS_TO_EM_DASH_OFF,
+               HYPHEN_TO_EN_DASH_ON,
+               HYPHEN_TO_EN_DASH_OFF,
+               SLASHED_ZERO_ON,
+               SLASHED_ZERO_OFF,
+               FORM_INTERROBANG_ON,
+               FORM_INTERROBANG_OFF,
+               SMART_QUOTES_ON,
+               SMART_QUOTES_OFF,
+               PERIODS_TO_ELLIPSIS_ON,
+               PERIODS_TO_ELLIPSIS_OFF,
+               HYPHEN_TO_MINUS_ON,
+               HYPHEN_TO_MINUS_OFF,
+               ASTERISK_TO_MULTIPLY_ON,
+               ASTERISK_TO_MULTIPLY_OFF,
+               SLASH_TO_DIVIDE_ON,
+               SLASH_TO_DIVIDE_OFF,
+               INEQUALITY_LIGATURES_ON,
+               INEQUALITY_LIGATURES_OFF,
+               EXPONENTS_ON,
+               EXPONENTS_OFF,
+               MATHEMATICAL_GREEK_ON,
+               MATHEMATICAL_GREEK_OFF,
+               NO_ORNAMENTS,
+               DINGBATS,
+               PI_CHARACTERS,
+               FLEURONS,
+               DECORATIVE_BORDERS,
+               INTERNATIONAL_SYMBOLS,
+               MATH_SYMBOLS,
+               NO_ALTERNATES,
+               DESIGN_LEVEL1,
+               DESIGN_LEVEL2,
+               DESIGN_LEVEL3,
+               DESIGN_LEVEL4,
+               DESIGN_LEVEL5,
+               NO_STYLE_OPTIONS,
+               DISPLAY_TEXT,
+               ENGRAVED_TEXT,
+               ILLUMINATED_CAPS,
+               TITLING_CAPS,
+               TALL_CAPS,
+               TRADITIONAL_CHARACTERS,
+               SIMPLIFIED_CHARACTERS,
+               JIS1978_CHARACTERS,
+               JIS1983_CHARACTERS,
+               JIS1990_CHARACTERS,
+               TRADITIONAL_ALT_ONE,
+               TRADITIONAL_ALT_TWO,
+               TRADITIONAL_ALT_THREE,
+               TRADITIONAL_ALT_FOUR,
+               TRADITIONAL_ALT_FIVE,
+               EXPERT_CHARACTERS,
+               JIS2004_CHARACTERS,
+               HOJO_CHARACTERS,
+               NLCCHARACTERS,
+               TRADITIONAL_NAMES_CHARACTERS,
+               LOWER_CASE_NUMBERS,
+               UPPER_CASE_NUMBERS,
+               PROPORTIONAL_TEXT,
+               MONOSPACED_TEXT,
+               HALF_WIDTH_TEXT,
+               THIRD_WIDTH_TEXT,
+               QUARTER_WIDTH_TEXT,
+               ALT_PROPORTIONAL_TEXT,
+               ALT_HALF_WIDTH_TEXT,
+               NO_TRANSLITERATION,
+               HANJA_TO_HANGUL,
+               HIRAGANA_TO_KATAKANA,
+               KATAKANA_TO_HIRAGANA,
+               KANA_TO_ROMANIZATION,
+               ROMANIZATION_TO_HIRAGANA,
+               ROMANIZATION_TO_KATAKANA,
+               HANJA_TO_HANGUL_ALT_ONE,
+               HANJA_TO_HANGUL_ALT_TWO,
+               HANJA_TO_HANGUL_ALT_THREE,
+               NO_ANNOTATION,
+               BOX_ANNOTATION,
+               ROUNDED_BOX_ANNOTATION,
+               CIRCLE_ANNOTATION,
+               INVERTED_CIRCLE_ANNOTATION,
+               PARENTHESIS_ANNOTATION,
+               PERIOD_ANNOTATION,
+               ROMAN_NUMERAL_ANNOTATION,
+               DIAMOND_ANNOTATION,
+               INVERTED_BOX_ANNOTATION,
+               INVERTED_ROUNDED_BOX_ANNOTATION,
+               FULL_WIDTH_KANA,
+               PROPORTIONAL_KANA,
+               FULL_WIDTH_IDEOGRAPHS,
+               PROPORTIONAL_IDEOGRAPHS,
+               HALF_WIDTH_IDEOGRAPHS,
+               CANONICAL_COMPOSITION_ON,
+               CANONICAL_COMPOSITION_OFF,
+               COMPATIBILITY_COMPOSITION_ON,
+               COMPATIBILITY_COMPOSITION_OFF,
+               TRANSCODING_COMPOSITION_ON,
+               TRANSCODING_COMPOSITION_OFF,
+               NO_RUBY_KANA,
+               RUBY_KANA,
+               RUBY_KANA_ON,
+               RUBY_KANA_OFF,
+               NO_CJK_SYMBOL_ALTERNATIVES,
+               CJK_SYMBOL_ALT_ONE,
+               CJK_SYMBOL_ALT_TWO,
+               CJK_SYMBOL_ALT_THREE,
+               CJK_SYMBOL_ALT_FOUR,
+               CJK_SYMBOL_ALT_FIVE,
+               NO_IDEOGRAPHIC_ALTERNATIVES,
+               IDEOGRAPHIC_ALT_ONE,
+               IDEOGRAPHIC_ALT_TWO,
+               IDEOGRAPHIC_ALT_THREE,
+               IDEOGRAPHIC_ALT_FOUR,
+               IDEOGRAPHIC_ALT_FIVE,
+               CJK_VERTICAL_ROMAN_CENTERED,
+               CJK_VERTICAL_ROMAN_HBASELINE,
+               NO_CJK_ITALIC_ROMAN,
+               CJK_ITALIC_ROMAN,
+               CJK_ITALIC_ROMAN_ON,
+               CJK_ITALIC_ROMAN_OFF,
+               CASE_SENSITIVE_LAYOUT_ON,
+               CASE_SENSITIVE_LAYOUT_OFF,
+               CASE_SENSITIVE_SPACING_ON,
+               CASE_SENSITIVE_SPACING_OFF,
+               ALTERNATE_HORIZ_KANA_ON,
+               ALTERNATE_HORIZ_KANA_OFF,
+               ALTERNATE_VERT_KANA_ON,
+               ALTERNATE_VERT_KANA_OFF,
+               NO_STYLISTIC_ALTERNATES,
+               STYLISTIC_ALT_ONE_ON,
+               STYLISTIC_ALT_ONE_OFF,
+               STYLISTIC_ALT_TWO_ON,
+               STYLISTIC_ALT_TWO_OFF,
+               STYLISTIC_ALT_THREE_ON,
+               STYLISTIC_ALT_THREE_OFF,
+               STYLISTIC_ALT_FOUR_ON,
+               STYLISTIC_ALT_FOUR_OFF,
+               STYLISTIC_ALT_FIVE_ON,
+               STYLISTIC_ALT_FIVE_OFF,
+               STYLISTIC_ALT_SIX_ON,
+               STYLISTIC_ALT_SIX_OFF,
+               STYLISTIC_ALT_SEVEN_ON,
+               STYLISTIC_ALT_SEVEN_OFF,
+               STYLISTIC_ALT_EIGHT_ON,
+               STYLISTIC_ALT_EIGHT_OFF,
+               STYLISTIC_ALT_NINE_ON,
+               STYLISTIC_ALT_NINE_OFF,
+               STYLISTIC_ALT_TEN_ON,
+               STYLISTIC_ALT_TEN_OFF,
+               STYLISTIC_ALT_ELEVEN_ON,
+               STYLISTIC_ALT_ELEVEN_OFF,
+               STYLISTIC_ALT_TWELVE_ON,
+               STYLISTIC_ALT_TWELVE_OFF,
+               STYLISTIC_ALT_THIRTEEN_ON,
+               STYLISTIC_ALT_THIRTEEN_OFF,
+               STYLISTIC_ALT_FOURTEEN_ON,
+               STYLISTIC_ALT_FOURTEEN_OFF,
+               STYLISTIC_ALT_FIFTEEN_ON,
+               STYLISTIC_ALT_FIFTEEN_OFF,
+               STYLISTIC_ALT_SIXTEEN_ON,
+               STYLISTIC_ALT_SIXTEEN_OFF,
+               STYLISTIC_ALT_SEVENTEEN_ON,
+               STYLISTIC_ALT_SEVENTEEN_OFF,
+               STYLISTIC_ALT_EIGHTEEN_ON,
+               STYLISTIC_ALT_EIGHTEEN_OFF,
+               STYLISTIC_ALT_NINETEEN_ON,
+               STYLISTIC_ALT_NINETEEN_OFF,
+               STYLISTIC_ALT_TWENTY_ON,
+               STYLISTIC_ALT_TWENTY_OFF,
+               CONTEXTUAL_ALTERNATES_ON,
+               CONTEXTUAL_ALTERNATES_OFF,
+               SWASH_ALTERNATES_ON,
+               SWASH_ALTERNATES_OFF,
+               CONTEXTUAL_SWASH_ALTERNATES_ON,
+               CONTEXTUAL_SWASH_ALTERNATES_OFF,
+               DEFAULT_LOWER_CASE,
+               LOWER_CASE_SMALL_CAPS,
+               LOWER_CASE_PETITE_CAPS,
+               DEFAULT_UPPER_CASE,
+               UPPER_CASE_SMALL_CAPS,
+               UPPER_CASE_PETITE_CAPS,
+               HALF_WIDTH_CJK_ROMAN,
+               PROPORTIONAL_CJK_ROMAN,
+               DEFAULT_CJK_ROMAN,
+               FULL_WIDTH_CJK_ROMAN
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_aat_layout_feature_type_t", cprefix = 
"HB_AAT_LAYOUT_FEATURE_TYPE_", type_id = "hb_gobject_aat_layout_feature_type_get_type ()")]
+       [GIR (name = "aat_layout_feature_type_t")]
+       [Version (since = "2.2.0")]
+       public enum AatLayoutFeatureType {
+               INVALID,
+               ALL_TYPOGRAPHIC,
+               LIGATURES,
+               CURISVE_CONNECTION,
+               LETTER_CASE,
+               VERTICAL_SUBSTITUTION,
+               LINGUISTIC_REARRANGEMENT,
+               NUMBER_SPACING,
+               SMART_SWASH_TYPE,
+               DIACRITICS_TYPE,
+               VERTICAL_POSITION,
+               FRACTIONS,
+               OVERLAPPING_CHARACTERS_TYPE,
+               TYPOGRAPHIC_EXTRAS,
+               MATHEMATICAL_EXTRAS,
+               ORNAMENT_SETS_TYPE,
+               CHARACTER_ALTERNATIVES,
+               DESIGN_COMPLEXITY_TYPE,
+               STYLE_OPTIONS,
+               CHARACTER_SHAPE,
+               NUMBER_CASE,
+               TEXT_SPACING,
+               TRANSLITERATION,
+               ANNOTATION_TYPE,
+               KANA_SPACING_TYPE,
+               IDEOGRAPHIC_SPACING_TYPE,
+               UNICODE_DECOMPOSITION_TYPE,
+               RUBY_KANA,
+               CJK_SYMBOL_ALTERNATIVES_TYPE,
+               IDEOGRAPHIC_ALTERNATIVES_TYPE,
+               CJK_VERTICAL_ROMAN_PLACEMENT_TYPE,
+               ITALIC_CJK_ROMAN,
+               CASE_SENSITIVE_LAYOUT,
+               ALTERNATE_KANA,
+               STYLISTIC_ALTERNATIVES,
+               CONTEXTUAL_ALTERNATIVES,
+               LOWER_CASE,
+               UPPER_CASE,
+               LANGUAGE_TAG_TYPE,
+               CJK_ROMAN_SPACING_TYPE
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_buffer_cluster_level_t", cprefix = 
"HB_BUFFER_CLUSTER_LEVEL_", type_id = "hb_gobject_buffer_cluster_level_get_type ()")]
+       [GIR (name = "buffer_cluster_level_t")]
+       [Version (since = "0.9.42")]
+       public enum BufferClusterLevel {
+               MONOTONE_GRAPHEMES,
+               MONOTONE_CHARACTERS,
+               CHARACTERS,
+               DEFAULT
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_buffer_content_type_t", cprefix = 
"HB_BUFFER_CONTENT_TYPE_", type_id = "hb_gobject_buffer_content_type_get_type ()")]
+       [GIR (name = "buffer_content_type_t")]
+       public enum BufferContentType {
+               INVALID,
+               UNICODE,
+               GLYPHS
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_buffer_diff_flags_t", cprefix = 
"HB_BUFFER_DIFF_FLAG_", type_id = "hb_gobject_buffer_diff_flags_get_type ()")]
+       [Flags]
+       [GIR (name = "buffer_diff_flags_t")]
+       public enum BufferDiffFlags {
+               EQUAL,
+               CONTENT_TYPE_MISMATCH,
+               LENGTH_MISMATCH,
+               NOTDEF_PRESENT,
+               DOTTED_CIRCLE_PRESENT,
+               CODEPOINT_MISMATCH,
+               CLUSTER_MISMATCH,
+               GLYPH_FLAGS_MISMATCH,
+               POSITION_MISMATCH
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_buffer_flags_t", cprefix = "HB_BUFFER_FLAG_", 
type_id = "hb_gobject_buffer_flags_get_type ()")]
+       [Flags]
+       [GIR (name = "buffer_flags_t")]
+       [Version (since = "0.9.20")]
+       public enum BufferFlags {
+               DEFAULT,
+               BOT,
+               EOT,
+               PRESERVE_DEFAULT_IGNORABLES,
+               REMOVE_DEFAULT_IGNORABLES,
+               DO_NOT_INSERT_DOTTED_CIRCLE
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_buffer_serialize_flags_t", cprefix = 
"HB_BUFFER_SERIALIZE_FLAG_", type_id = "hb_gobject_buffer_serialize_flags_get_type ()")]
+       [Flags]
+       [GIR (name = "buffer_serialize_flags_t")]
+       [Version (since = "0.9.20")]
+       public enum BufferSerializeFlags {
+               DEFAULT,
+               NO_CLUSTERS,
+               NO_POSITIONS,
+               NO_GLYPH_NAMES,
+               GLYPH_EXTENTS,
+               GLYPH_FLAGS,
+               NO_ADVANCES
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_buffer_serialize_format_t", cprefix = 
"HB_BUFFER_SERIALIZE_FORMAT_", type_id = "hb_gobject_buffer_serialize_format_get_type ()")]
+       [GIR (name = "buffer_serialize_format_t")]
+       [Version (since = "0.9.2")]
+       public enum BufferSerializeFormat {
+               TEXT,
+               JSON,
+               INVALID
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_direction_t", cprefix = "HB_DIRECTION_", 
type_id = "hb_gobject_direction_get_type ()")]
+       [GIR (name = "direction_t")]
+       public enum Direction {
+               INVALID,
+               LTR,
+               RTL,
+               TTB,
+               BTT;
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Direction from_string ([CCode (array_length_cname = "len", 
array_length_pos = 1.1)] uint8[] str);
+               [Version (since = "0.9.2")]
+               public unowned string to_string ();
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_glyph_flags_t", cprefix = "HB_GLYPH_FLAG_", 
type_id = "hb_gobject_glyph_flags_get_type ()")]
+       [Flags]
+       [GIR (name = "glyph_flags_t")]
+       [Version (since = "1.5.0")]
+       public enum GlyphFlags {
+               UNSAFE_TO_BREAK,
+               DEFINED
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_memory_mode_t", cprefix = "HB_MEMORY_MODE_", 
type_id = "hb_gobject_memory_mode_get_type ()")]
+       [GIR (name = "memory_mode_t")]
+       public enum MemoryMode {
+               DUPLICATE,
+               READONLY,
+               WRITABLE,
+               READONLY_MAY_MAKE_WRITABLE
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_color_palette_flags_t", cprefix = 
"HB_OT_COLOR_PALETTE_FLAG_", type_id = "hb_gobject_ot_color_palette_flags_get_type ()")]
+       [Flags]
+       [GIR (name = "ot_color_palette_flags_t")]
+       [Version (since = "2.1.0")]
+       public enum OtColorPalette {
+               DEFAULT,
+               USABLE_WITH_LIGHT_BACKGROUND,
+               USABLE_WITH_DARK_BACKGROUND;
+               public static HarfBuzz.OtNameId color_get_name_id (HarfBuzz.Face face, uint color_index);
+               public static uint get_colors (HarfBuzz.Face face, uint palette_index, uint start_offset, 
[CCode (array_length_cname = "color_count", array_length_pos = 3.5, array_length_type = "guint")] out 
HarfBuzz.Color[]? colors);
+               public static uint get_count (HarfBuzz.Face face);
+               public static HarfBuzz.OtColorPalette get_flags (HarfBuzz.Face face, uint palette_index);
+               public static HarfBuzz.OtNameId get_name_id (HarfBuzz.Face face, uint palette_index);
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_layout_baseline_tag_t", cprefix = 
"HB_OT_LAYOUT_BASELINE_TAG_", type_id = "hb_gobject_ot_layout_baseline_tag_get_type ()")]
+       [GIR (name = "ot_layout_baseline_tag_t")]
+       [Version (since = "2.6.0")]
+       public enum OtLayoutBaselineTag {
+               ROMAN,
+               HANGING,
+               IDEO_FACE_BOTTOM_OR_LEFT,
+               IDEO_FACE_TOP_OR_RIGHT,
+               IDEO_EMBOX_BOTTOM_OR_LEFT,
+               IDEO_EMBOX_TOP_OR_RIGHT,
+               MATH
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_layout_glyph_class_t", cprefix = 
"HB_OT_LAYOUT_GLYPH_CLASS_", type_id = "hb_gobject_ot_layout_glyph_class_get_type ()")]
+       [GIR (name = "ot_layout_glyph_class_t")]
+       public enum OtLayoutGlyphClass {
+               UNCLASSIFIED,
+               BASE_GLYPH,
+               LIGATURE,
+               MARK,
+               COMPONENT
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_math_constant_t", cprefix = 
"HB_OT_MATH_CONSTANT_", type_id = "hb_gobject_ot_math_constant_get_type ()")]
+       [GIR (name = "ot_math_constant_t")]
+       [Version (since = "1.3.3")]
+       public enum OtMathContant {
+               SCRIPT_PERCENT_SCALE_DOWN,
+               SCRIPT_SCRIPT_PERCENT_SCALE_DOWN,
+               DELIMITED_SUB_FORMULA_MIN_HEIGHT,
+               DISPLAY_OPERATOR_MIN_HEIGHT,
+               MATH_LEADING,
+               AXIS_HEIGHT,
+               ACCENT_BASE_HEIGHT,
+               FLATTENED_ACCENT_BASE_HEIGHT,
+               SUBSCRIPT_SHIFT_DOWN,
+               SUBSCRIPT_TOP_MAX,
+               SUBSCRIPT_BASELINE_DROP_MIN,
+               SUPERSCRIPT_SHIFT_UP,
+               SUPERSCRIPT_SHIFT_UP_CRAMPED,
+               SUPERSCRIPT_BOTTOM_MIN,
+               SUPERSCRIPT_BASELINE_DROP_MAX,
+               SUB_SUPERSCRIPT_GAP_MIN,
+               SUPERSCRIPT_BOTTOM_MAX_WITH_SUBSCRIPT,
+               SPACE_AFTER_SCRIPT,
+               UPPER_LIMIT_GAP_MIN,
+               UPPER_LIMIT_BASELINE_RISE_MIN,
+               LOWER_LIMIT_GAP_MIN,
+               LOWER_LIMIT_BASELINE_DROP_MIN,
+               STACK_TOP_SHIFT_UP,
+               STACK_TOP_DISPLAY_STYLE_SHIFT_UP,
+               STACK_BOTTOM_SHIFT_DOWN,
+               STACK_BOTTOM_DISPLAY_STYLE_SHIFT_DOWN,
+               STACK_GAP_MIN,
+               STACK_DISPLAY_STYLE_GAP_MIN,
+               STRETCH_STACK_TOP_SHIFT_UP,
+               STRETCH_STACK_BOTTOM_SHIFT_DOWN,
+               STRETCH_STACK_GAP_ABOVE_MIN,
+               STRETCH_STACK_GAP_BELOW_MIN,
+               FRACTION_NUMERATOR_SHIFT_UP,
+               FRACTION_NUMERATOR_DISPLAY_STYLE_SHIFT_UP,
+               FRACTION_DENOMINATOR_SHIFT_DOWN,
+               FRACTION_DENOMINATOR_DISPLAY_STYLE_SHIFT_DOWN,
+               FRACTION_NUMERATOR_GAP_MIN,
+               FRACTION_NUM_DISPLAY_STYLE_GAP_MIN,
+               FRACTION_RULE_THICKNESS,
+               FRACTION_DENOMINATOR_GAP_MIN,
+               FRACTION_DENOM_DISPLAY_STYLE_GAP_MIN,
+               SKEWED_FRACTION_HORIZONTAL_GAP,
+               SKEWED_FRACTION_VERTICAL_GAP,
+               OVERBAR_VERTICAL_GAP,
+               OVERBAR_RULE_THICKNESS,
+               OVERBAR_EXTRA_ASCENDER,
+               UNDERBAR_VERTICAL_GAP,
+               UNDERBAR_RULE_THICKNESS,
+               UNDERBAR_EXTRA_DESCENDER,
+               RADICAL_VERTICAL_GAP,
+               RADICAL_DISPLAY_STYLE_VERTICAL_GAP,
+               RADICAL_RULE_THICKNESS,
+               RADICAL_EXTRA_ASCENDER,
+               RADICAL_KERN_BEFORE_DEGREE,
+               RADICAL_KERN_AFTER_DEGREE,
+               RADICAL_DEGREE_BOTTOM_RAISE_PERCENT
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_math_glyph_part_flags_t", cprefix = 
"HB_OT_MATH_GLYPH_PART_FLAG_", type_id = "hb_gobject_ot_math_glyph_part_flags_get_type ()")]
+       [Flags]
+       [GIR (name = "ot_math_glyph_part_flags_t")]
+       [Version (since = "1.3.3")]
+       public enum OtMathGlyphPartFlags {
+               EXTENDER
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_math_kern_t", cprefix = "HB_OT_MATH_KERN_", 
type_id = "hb_gobject_ot_math_kern_get_type ()")]
+       [GIR (name = "ot_math_kern_t")]
+       [Version (since = "1.3.3")]
+       public enum OtMathKern {
+               TOP_RIGHT,
+               TOP_LEFT,
+               BOTTOM_RIGHT,
+               BOTTOM_LEFT
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_meta_tag_t", cprefix = "HB_OT_META_TAG_", 
type_id = "hb_gobject_ot_meta_tag_get_type ()")]
+       [GIR (name = "ot_meta_tag_t")]
+       [Version (since = "2.6.0")]
+       public enum OtMetaTag {
+               DESIGN_LANGUAGES,
+               SUPPORTED_LANGUAGES
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_metrics_tag_t", cprefix = 
"HB_OT_METRICS_TAG_", type_id = "hb_gobject_ot_metrics_tag_get_type ()")]
+       [GIR (name = "ot_metrics_tag_t")]
+       [Version (since = "2.6.0")]
+       public enum OtMetricsTag {
+               HORIZONTAL_ASCENDER,
+               HORIZONTAL_DESCENDER,
+               HORIZONTAL_LINE_GAP,
+               HORIZONTAL_CLIPPING_ASCENT,
+               HORIZONTAL_CLIPPING_DESCENT,
+               VERTICAL_ASCENDER,
+               VERTICAL_DESCENDER,
+               VERTICAL_LINE_GAP,
+               HORIZONTAL_CARET_RISE,
+               HORIZONTAL_CARET_RUN,
+               HORIZONTAL_CARET_OFFSET,
+               VERTICAL_CARET_RISE,
+               VERTICAL_CARET_RUN,
+               VERTICAL_CARET_OFFSET,
+               X_HEIGHT,
+               CAP_HEIGHT,
+               SUBSCRIPT_EM_X_SIZE,
+               SUBSCRIPT_EM_Y_SIZE,
+               SUBSCRIPT_EM_X_OFFSET,
+               SUBSCRIPT_EM_Y_OFFSET,
+               SUPERSCRIPT_EM_X_SIZE,
+               SUPERSCRIPT_EM_Y_SIZE,
+               SUPERSCRIPT_EM_X_OFFSET,
+               SUPERSCRIPT_EM_Y_OFFSET,
+               STRIKEOUT_SIZE,
+               STRIKEOUT_OFFSET,
+               UNDERLINE_SIZE,
+               UNDERLINE_OFFSET
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_var_axis_flags_t", cprefix = 
"HB_OT_VAR_AXIS_FLAG_", type_id = "hb_gobject_ot_var_axis_flags_get_type ()")]
+       [Flags]
+       [GIR (name = "ot_var_axis_flags_t")]
+       [Version (since = "2.2.0")]
+       public enum OtVarAxisFlags {
+               HIDDEN
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_script_t", cprefix = "HB_SCRIPT_", type_id = 
"hb_gobject_script_get_type ()")]
+       [GIR (name = "script_t")]
+       public enum Script {
+               COMMON,
+               INHERITED,
+               UNKNOWN,
+               ARABIC,
+               ARMENIAN,
+               BENGALI,
+               CYRILLIC,
+               DEVANAGARI,
+               GEORGIAN,
+               GREEK,
+               GUJARATI,
+               GURMUKHI,
+               HANGUL,
+               HAN,
+               HEBREW,
+               HIRAGANA,
+               KANNADA,
+               KATAKANA,
+               LAO,
+               LATIN,
+               MALAYALAM,
+               ORIYA,
+               TAMIL,
+               TELUGU,
+               THAI,
+               TIBETAN,
+               BOPOMOFO,
+               BRAILLE,
+               CANADIAN_SYLLABICS,
+               CHEROKEE,
+               ETHIOPIC,
+               KHMER,
+               MONGOLIAN,
+               MYANMAR,
+               OGHAM,
+               RUNIC,
+               SINHALA,
+               SYRIAC,
+               THAANA,
+               YI,
+               DESERET,
+               GOTHIC,
+               OLD_ITALIC,
+               BUHID,
+               HANUNOO,
+               TAGALOG,
+               TAGBANWA,
+               CYPRIOT,
+               LIMBU,
+               LINEAR_B,
+               OSMANYA,
+               SHAVIAN,
+               TAI_LE,
+               UGARITIC,
+               BUGINESE,
+               COPTIC,
+               GLAGOLITIC,
+               KHAROSHTHI,
+               NEW_TAI_LUE,
+               OLD_PERSIAN,
+               SYLOTI_NAGRI,
+               TIFINAGH,
+               BALINESE,
+               CUNEIFORM,
+               NKO,
+               PHAGS_PA,
+               PHOENICIAN,
+               CARIAN,
+               CHAM,
+               KAYAH_LI,
+               LEPCHA,
+               LYCIAN,
+               LYDIAN,
+               OL_CHIKI,
+               REJANG,
+               SAURASHTRA,
+               SUNDANESE,
+               VAI,
+               AVESTAN,
+               BAMUM,
+               EGYPTIAN_HIEROGLYPHS,
+               IMPERIAL_ARAMAIC,
+               INSCRIPTIONAL_PAHLAVI,
+               INSCRIPTIONAL_PARTHIAN,
+               JAVANESE,
+               KAITHI,
+               LISU,
+               MEETEI_MAYEK,
+               OLD_SOUTH_ARABIAN,
+               OLD_TURKIC,
+               SAMARITAN,
+               TAI_THAM,
+               TAI_VIET,
+               BATAK,
+               BRAHMI,
+               MANDAIC,
+               CHAKMA,
+               MEROITIC_CURSIVE,
+               MEROITIC_HIEROGLYPHS,
+               MIAO,
+               SHARADA,
+               SORA_SOMPENG,
+               TAKRI,
+               BASSA_VAH,
+               CAUCASIAN_ALBANIAN,
+               DUPLOYAN,
+               ELBASAN,
+               GRANTHA,
+               KHOJKI,
+               KHUDAWADI,
+               LINEAR_A,
+               MAHAJANI,
+               MANICHAEAN,
+               MENDE_KIKAKUI,
+               MODI,
+               MRO,
+               NABATAEAN,
+               OLD_NORTH_ARABIAN,
+               OLD_PERMIC,
+               PAHAWH_HMONG,
+               PALMYRENE,
+               PAU_CIN_HAU,
+               PSALTER_PAHLAVI,
+               SIDDHAM,
+               TIRHUTA,
+               WARANG_CITI,
+               AHOM,
+               ANATOLIAN_HIEROGLYPHS,
+               HATRAN,
+               MULTANI,
+               OLD_HUNGARIAN,
+               SIGNWRITING,
+               ADLAM,
+               BHAIKSUKI,
+               MARCHEN,
+               OSAGE,
+               TANGUT,
+               NEWA,
+               MASARAM_GONDI,
+               NUSHU,
+               SOYOMBO,
+               ZANABAZAR_SQUARE,
+               DOGRA,
+               GUNJALA_GONDI,
+               HANIFI_ROHINGYA,
+               MAKASAR,
+               MEDEFAIDRIN,
+               OLD_SOGDIAN,
+               SOGDIAN,
+               ELYMAIC,
+               NANDINAGARI,
+               NYIAKENG_PUACHUE_HMONG,
+               WANCHO,
+               INVALID;
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Script from_iso15924_tag (HarfBuzz.Tag tag);
+               [Version (since = "0.9.2")]
+               public static HarfBuzz.Script from_string ([CCode (array_length_cname = "len", 
array_length_pos = 1.1)] uint8[] str);
+               [Version (since = "0.9.2")]
+               public HarfBuzz.Direction get_horizontal_direction ();
+               [Version (since = "0.9.2")]
+               public HarfBuzz.Tag to_iso15924_tag ();
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_unicode_combining_class_t", cprefix = 
"HB_UNICODE_COMBINING_CLASS_", type_id = "hb_gobject_unicode_combining_class_get_type ()")]
+       [GIR (name = "unicode_combining_class_t")]
+       public enum UnicodeCombiningClass {
+               NOT_REORDERED,
+               OVERLAY,
+               NUKTA,
+               KANA_VOICING,
+               VIRAMA,
+               CCC10,
+               CCC11,
+               CCC12,
+               CCC13,
+               CCC14,
+               CCC15,
+               CCC16,
+               CCC17,
+               CCC18,
+               CCC19,
+               CCC20,
+               CCC21,
+               CCC22,
+               CCC23,
+               CCC24,
+               CCC25,
+               CCC26,
+               CCC27,
+               CCC28,
+               CCC29,
+               CCC30,
+               CCC31,
+               CCC32,
+               CCC33,
+               CCC34,
+               CCC35,
+               CCC36,
+               CCC84,
+               CCC91,
+               CCC103,
+               CCC107,
+               CCC118,
+               CCC122,
+               CCC129,
+               CCC130,
+               CCC133,
+               ATTACHED_BELOW_LEFT,
+               ATTACHED_BELOW,
+               ATTACHED_ABOVE,
+               ATTACHED_ABOVE_RIGHT,
+               BELOW_LEFT,
+               BELOW,
+               BELOW_RIGHT,
+               LEFT,
+               RIGHT,
+               ABOVE_LEFT,
+               ABOVE,
+               ABOVE_RIGHT,
+               DOUBLE_BELOW,
+               DOUBLE_ABOVE,
+               IOTA_SUBSCRIPT,
+               INVALID
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_unicode_general_category_t", cprefix = 
"HB_UNICODE_GENERAL_CATEGORY_", type_id = "hb_gobject_unicode_general_category_get_type ()")]
+       [GIR (name = "unicode_general_category_t")]
+       public enum UnicodeGeneralCategory {
+               CONTROL,
+               FORMAT,
+               UNASSIGNED,
+               PRIVATE_USE,
+               SURROGATE,
+               LOWERCASE_LETTER,
+               MODIFIER_LETTER,
+               OTHER_LETTER,
+               TITLECASE_LETTER,
+               UPPERCASE_LETTER,
+               SPACING_MARK,
+               ENCLOSING_MARK,
+               NON_SPACING_MARK,
+               DECIMAL_NUMBER,
+               LETTER_NUMBER,
+               OTHER_NUMBER,
+               CONNECT_PUNCTUATION,
+               DASH_PUNCTUATION,
+               CLOSE_PUNCTUATION,
+               FINAL_PUNCTUATION,
+               INITIAL_PUNCTUATION,
+               OTHER_PUNCTUATION,
+               OPEN_PUNCTUATION,
+               CURRENCY_SYMBOL,
+               MODIFIER_SYMBOL,
+               MATH_SYMBOL,
+               OTHER_SYMBOL,
+               LINE_SEPARATOR,
+               PARAGRAPH_SEPARATOR,
+               SPACE_SEPARATOR
+       }
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_buffer_message_func_t", instance_pos = 3.9)]
+       public delegate HarfBuzz.Bool BufferMessageFunc (HarfBuzz.Buffer buffer, HarfBuzz.Font font, string 
message);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_destroy_func_t", instance_pos = 0.9)]
+       public delegate void DestroyFunc ();
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_draw_close_path_func_t", instance_pos = 0.9)]
+       public delegate void DrawClosePathFunc ();
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_draw_cubic_to_func_t", instance_pos = 6.9)]
+       public delegate void DrawCubicToFunc (HarfBuzz.Position control1_x, HarfBuzz.Position control1_y, 
HarfBuzz.Position control2_x, HarfBuzz.Position control2_y, HarfBuzz.Position to_x, HarfBuzz.Position to_y);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_draw_line_to_func_t", instance_pos = 2.9)]
+       public delegate void DrawLineToFunc (HarfBuzz.Position to_x, HarfBuzz.Position to_y);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_draw_move_to_func_t", instance_pos = 2.9)]
+       public delegate void DrawMoveToFunc (HarfBuzz.Position to_x, HarfBuzz.Position to_y);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_draw_quadratic_to_func_t", instance_pos = 4.9)]
+       public delegate void DrawQuadraticToFunc (HarfBuzz.Position control_x, HarfBuzz.Position control_y, 
HarfBuzz.Position to_x, HarfBuzz.Position to_y);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_font_extents_func_t", instance_pos = 
3.9)]
+       public delegate HarfBuzz.Bool FontGetFontExtentsFunc (HarfBuzz.Font font, void* font_data, 
HarfBuzz.FontExtents extents);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_font_extents_func_t", instance_pos = 
3.9)]
+       public delegate HarfBuzz.Bool FontGetFontHExtentsFunc (HarfBuzz.Font font, void* font_data, 
HarfBuzz.FontExtents extents);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_font_extents_func_t", instance_pos = 
3.9)]
+       public delegate HarfBuzz.Bool FontGetFontVExtentsFunc (HarfBuzz.Font font, void* font_data, 
HarfBuzz.FontExtents extents);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_advance_func_t", instance_pos = 
3.9)]
+       public delegate HarfBuzz.Position FontGetGlyphAdvanceFunc (HarfBuzz.Font font, void* font_data, 
HarfBuzz.Codepoint glyph);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_advances_func_t", instance_pos 
= 7.9)]
+       public delegate void FontGetGlyphAdvancesFunc (HarfBuzz.Font font, void* font_data, uint count, 
HarfBuzz.Codepoint first_glyph, uint glyph_stride, HarfBuzz.Position first_advance, uint advance_stride);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_contour_point_func_t", 
instance_pos = 6.9)]
+       public delegate HarfBuzz.Bool FontGetGlyphContourFunc (HarfBuzz.Font font, void* font_data, 
HarfBuzz.Codepoint glyph, uint point_index, HarfBuzz.Position x, HarfBuzz.Position y);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_extents_func_t", instance_pos = 
4.9)]
+       public delegate HarfBuzz.Bool FontGetGlyphExtentsFunc (HarfBuzz.Font font, void* font_data, 
HarfBuzz.Codepoint glyph, HarfBuzz.GlyphExtents extents);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_from_name_func_t", instance_pos 
= 5.9)]
+       public delegate HarfBuzz.Bool FontGetGlyphFromNameFunc (HarfBuzz.Font font, void* font_data, string 
name, int len, HarfBuzz.Codepoint glyph);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_func_t", instance_pos = 5.9)]
+       public delegate HarfBuzz.Bool FontGetGlyphFunc (HarfBuzz.Font font, void* font_data, 
HarfBuzz.Codepoint unicode, HarfBuzz.Codepoint variation_selector, HarfBuzz.Codepoint glyph);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_advance_func_t", instance_pos = 
3.9)]
+       public delegate HarfBuzz.Position FontGetGlyphHAdvanceFunc (HarfBuzz.Font font, void* font_data, 
HarfBuzz.Codepoint glyph);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_advances_func_t", instance_pos 
= 7.9)]
+       public delegate void FontGetGlyphHAdvancesFunc (HarfBuzz.Font font, void* font_data, uint count, 
HarfBuzz.Codepoint first_glyph, uint glyph_stride, HarfBuzz.Position first_advance, uint advance_stride);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_kerning_func_t", instance_pos = 
4.9)]
+       public delegate HarfBuzz.Position FontGetGlyphHKerningFunc (HarfBuzz.Font font, void* font_data, 
HarfBuzz.Codepoint first_glyph, HarfBuzz.Codepoint second_glyph);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_origin_func_t", instance_pos = 
5.9)]
+       public delegate HarfBuzz.Bool FontGetGlyphHOriginFunc (HarfBuzz.Font font, void* font_data, 
HarfBuzz.Codepoint glyph, HarfBuzz.Position x, HarfBuzz.Position y);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_kerning_func_t", instance_pos = 
4.9)]
+       public delegate HarfBuzz.Position FontGetGlyphKerningFunc (HarfBuzz.Font font, void* font_data, 
HarfBuzz.Codepoint first_glyph, HarfBuzz.Codepoint second_glyph);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_name_func_t", instance_pos = 
5.9)]
+       public delegate HarfBuzz.Bool FontGetGlyphNameFunc (HarfBuzz.Font font, void* font_data, 
HarfBuzz.Codepoint glyph, string name, uint size);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_origin_func_t", instance_pos = 
5.9)]
+       public delegate HarfBuzz.Bool FontGetGlyphOriginFunc (HarfBuzz.Font font, void* font_data, 
HarfBuzz.Codepoint glyph, HarfBuzz.Position x, HarfBuzz.Position y);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_advance_func_t", instance_pos = 
3.9)]
+       public delegate HarfBuzz.Position FontGetGlyphVAdvanceFunc (HarfBuzz.Font font, void* font_data, 
HarfBuzz.Codepoint glyph);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_advances_func_t", instance_pos 
= 7.9)]
+       public delegate void FontGetGlyphVAdvancesFunc (HarfBuzz.Font font, void* font_data, uint count, 
HarfBuzz.Codepoint first_glyph, uint glyph_stride, HarfBuzz.Position first_advance, uint advance_stride);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_kerning_func_t", instance_pos = 
4.9)]
+       public delegate HarfBuzz.Position FontGetGlyphVKerningFunc (HarfBuzz.Font font, void* font_data, 
HarfBuzz.Codepoint first_glyph, HarfBuzz.Codepoint second_glyph);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_origin_func_t", instance_pos = 
5.9)]
+       public delegate HarfBuzz.Bool FontGetGlyphVOriginFunc (HarfBuzz.Font font, void* font_data, 
HarfBuzz.Codepoint glyph, HarfBuzz.Position x, HarfBuzz.Position y);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_nominal_glyph_func_t", instance_pos = 
4.9)]
+       public delegate HarfBuzz.Bool FontGetNominalGlyphFunc (HarfBuzz.Font font, void* font_data, 
HarfBuzz.Codepoint unicode, HarfBuzz.Codepoint glyph);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_nominal_glyphs_func_t", instance_pos 
= 7.9)]
+       public delegate uint FontGetNominalGlyphsFunc (HarfBuzz.Font font, void* font_data, uint count, 
HarfBuzz.Codepoint first_unicode, uint unicode_stride, HarfBuzz.Codepoint first_glyph, uint glyph_stride);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_variation_glyph_func_t", instance_pos 
= 5.9)]
+       public delegate HarfBuzz.Bool FontGetVariantGlyphFunc (HarfBuzz.Font font, void* font_data, 
HarfBuzz.Codepoint unicode, HarfBuzz.Codepoint variation_selector, HarfBuzz.Codepoint glyph);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_reference_table_func_t", instance_pos = 2.9)]
+       public delegate HarfBuzz.Blob ReferenceTableFunc (HarfBuzz.Face face, HarfBuzz.Tag tag);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_unicode_combining_class_func_t", instance_pos 
= 2.9)]
+       public delegate HarfBuzz.UnicodeCombiningClass UnicodeCombiningClassFunc (HarfBuzz.UnicodeFuncs 
ufuncs, HarfBuzz.Codepoint unicode);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_unicode_compose_func_t", instance_pos = 4.9)]
+       public delegate HarfBuzz.Bool UnicodeComposeFunc (HarfBuzz.UnicodeFuncs ufuncs, HarfBuzz.Codepoint a, 
HarfBuzz.Codepoint b, HarfBuzz.Codepoint ab);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_unicode_decompose_func_t", instance_pos = 4.9)]
+       public delegate HarfBuzz.Bool UnicodeDecomposeFunc (HarfBuzz.UnicodeFuncs ufuncs, HarfBuzz.Codepoint 
ab, HarfBuzz.Codepoint a, HarfBuzz.Codepoint b);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_unicode_eastasian_width_func_t", instance_pos 
= 2.9)]
+       [Version (deprecated = true, deprecated_since = "2.0.0")]
+       public delegate uint UnicodeEastasianWidthFunc (HarfBuzz.UnicodeFuncs ufuncs, HarfBuzz.Codepoint 
unicode);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_unicode_general_category_func_t", instance_pos 
= 2.9)]
+       public delegate HarfBuzz.UnicodeGeneralCategory UnicodeGeneralCategoryFunc (HarfBuzz.UnicodeFuncs 
ufuncs, HarfBuzz.Codepoint unicode);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_unicode_mirroring_func_t", instance_pos = 2.9)]
+       public delegate HarfBuzz.Codepoint UnicodeMirroringFunc (HarfBuzz.UnicodeFuncs ufuncs, 
HarfBuzz.Codepoint unicode);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_unicode_script_func_t", instance_pos = 2.9)]
+       public delegate HarfBuzz.Script UnicodeScriptFunc (HarfBuzz.UnicodeFuncs ufuncs, HarfBuzz.Codepoint 
unicode);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "hb_unicode_decompose_compatibility_func_t", 
instance_pos = 3.9)]
+       [Version (deprecated = true, deprecated_since = "2.0.0")]
+       public delegate uint UnicodedeComposeCompatibilityFunc (HarfBuzz.UnicodeFuncs ufuncs, 
HarfBuzz.Codepoint u, HarfBuzz.Codepoint decomposed);
+       [CCode (cheader_filename = "hb-gobject.h", cname = "HB_AAT_LAYOUT_NO_SELECTOR_INDEX")]
+       public const int AAT_LAYOUT_NO_SELECTOR_INDEX;
+       [CCode (cheader_filename = "hb-gobject.h", cname = "HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT")]
+       [Version (since = "0.9.31")]
+       public const int BUFFER_REPLACEMENT_CODEPOINT_DEFAULT;
+       [CCode (cheader_filename = "hb-gobject.h", cname = "HB_FEATURE_GLOBAL_START")]
+       [Version (since = "2.0.0")]
+       public const int FEATURE_GLOBAL_START;
+       [CCode (cheader_filename = "hb-gobject.h", cname = "HB_MAP_VALUE_INVALID")]
+       public const HarfBuzz.Codepoint MAP_VALUE_INVALID;
+       [CCode (cheader_filename = "hb-gobject.h", cname = "HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX")]
+       public const int OT_LAYOUT_DEFAULT_LANGUAGE_INDEX;
+       [CCode (cheader_filename = "hb-gobject.h", cname = "HB_OT_LAYOUT_NO_FEATURE_INDEX")]
+       public const int OT_LAYOUT_NO_FEATURE_INDEX;
+       [CCode (cheader_filename = "hb-gobject.h", cname = "HB_OT_LAYOUT_NO_SCRIPT_INDEX")]
+       public const int OT_LAYOUT_NO_SCRIPT_INDEX;
+       [CCode (cheader_filename = "hb-gobject.h", cname = "HB_OT_LAYOUT_NO_VARIATIONS_INDEX")]
+       public const int OT_LAYOUT_NO_VARIATIONS_INDEX;
+       [CCode (cheader_filename = "hb-gobject.h", cname = "HB_OT_MAX_TAGS_PER_LANGUAGE")]
+       [Version (since = "2.0.0")]
+       public const int OT_MAX_TAGS_PER_LANGUAGE;
+       [CCode (cheader_filename = "hb-gobject.h", cname = "HB_OT_MAX_TAGS_PER_SCRIPT")]
+       [Version (since = "2.0.0")]
+       public const int OT_MAX_TAGS_PER_SCRIPT;
+       [CCode (cheader_filename = "hb-gobject.h", cname = "HB_OT_VAR_NO_AXIS_INDEX")]
+       [Version (deprecated = true, deprecated_since = "2.2.0", since = "1.4.2")]
+       public const int OT_VAR_NO_AXIS_INDEX;
+       [CCode (cheader_filename = "hb-gobject.h", cname = "HB_SET_VALUE_INVALID")]
+       public const HarfBuzz.Codepoint SET_VALUE_INVALID;
+       [CCode (cheader_filename = "hb-gobject.h", cname = "HB_UNICODE_MAX")]
+       [Version (since = "1.9.0")]
+       public const int UNICODE_MAX;
+       [CCode (cheader_filename = "hb-gobject.h", cname = "HB_UNICODE_MAX_DECOMPOSITION_LEN")]
+       [Version (deprecated = true, deprecated_since = "2.0.0")]
+       public const int UNICODE_MAX_DECOMPOSITION_LEN;
+       [CCode (cheader_filename = "hb-gobject.h", cname = "HB_VERSION_MAJOR")]
+       public const int VERSION_MAJOR;
+       [CCode (cheader_filename = "hb-gobject.h", cname = "HB_VERSION_MICRO")]
+       public const int VERSION_MICRO;
+       [CCode (cheader_filename = "hb-gobject.h", cname = "HB_VERSION_MINOR")]
+       public const int VERSION_MINOR;
+       [CCode (cheader_filename = "hb-gobject.h", cname = "HB_VERSION_STRING")]
+       public const string VERSION_STRING;
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static void ft_font_changed (HarfBuzz.Font font);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "1.0.5")]
+       public static int ft_font_get_load_flags (HarfBuzz.Font font);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static void ft_font_set_funcs (HarfBuzz.Font font);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "1.0.5")]
+       public static void ft_font_set_load_flags (HarfBuzz.Font font, int load_flags);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static void ft_font_unlock_face (HarfBuzz.Font font);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "0.9.38")]
+       public static HarfBuzz.Blob glib_blob_create (GLib.Bytes gbytes);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static HarfBuzz.UnicodeFuncs glib_get_unicode_funcs ();
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static GLib.UnicodeScript glib_script_from_script (HarfBuzz.Script script);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static HarfBuzz.Script glib_script_to_script (GLib.UnicodeScript script);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "1.5.0")]
+       public static HarfBuzz.GlyphFlags glyph_info_get_glyph_flags (HarfBuzz.Glyph info);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.1.0")]
+       public static uint ot_color_glyph_get_layers (HarfBuzz.Face face, HarfBuzz.Codepoint glyph, uint 
start_offset, [CCode (array_length_cname = "layer_count", array_length_pos = 3.5, array_length_type = 
"guint")] out unowned HarfBuzz.OtColorLayer[]? layers);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.1.0")]
+       public static HarfBuzz.Blob ot_color_glyph_reference_png (HarfBuzz.Font font, HarfBuzz.Codepoint 
glyph);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.1.0")]
+       public static HarfBuzz.Blob ot_color_glyph_reference_svg (HarfBuzz.Face face, HarfBuzz.Codepoint 
glyph);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.1.0")]
+       public static HarfBuzz.Bool ot_color_has_layers (HarfBuzz.Face face);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.1.0")]
+       public static HarfBuzz.Bool ot_color_has_palettes (HarfBuzz.Face face);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.1.0")]
+       public static HarfBuzz.Bool ot_color_has_png (HarfBuzz.Face face);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.1.0")]
+       public static HarfBuzz.Bool ot_color_has_svg (HarfBuzz.Face face);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "0.9.28")]
+       public static void ot_font_set_funcs (HarfBuzz.Font font);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static void ot_layout_closure_features (HarfBuzz.Face face, HarfBuzz.Tag table_tag, 
HarfBuzz.Map lookup_indexes, out unowned HarfBuzz.Set feature_indexes);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static void ot_layout_closure_lookups (HarfBuzz.Face face, HarfBuzz.Tag table_tag, 
HarfBuzz.Set glyphs, ref HarfBuzz.Set lookup_indexes);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "1.8.5")]
+       public static void ot_layout_collect_features (HarfBuzz.Face face, HarfBuzz.Tag table_tag, 
HarfBuzz.Tag scripts, HarfBuzz.Tag languages, HarfBuzz.Tag features, out unowned HarfBuzz.Set 
feature_indexes);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "0.9.8")]
+       public static void ot_layout_collect_lookups (HarfBuzz.Face face, HarfBuzz.Tag table_tag, 
HarfBuzz.Tag scripts, HarfBuzz.Tag languages, HarfBuzz.Tag features, out unowned HarfBuzz.Set lookup_indexes);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.0.0")]
+       public static uint ot_layout_feature_get_characters (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint 
feature_index, uint start_offset, [CCode (array_length_cname = "char_count", array_length_pos = 4.5, 
array_length_type = "guint")] out unowned HarfBuzz.Codepoint[] characters);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "0.9.7")]
+       public static uint ot_layout_feature_get_lookups (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint 
feature_index, uint start_offset, [CCode (array_length_cname = "lookup_count", array_length_pos = 4.5, 
array_length_type = "guint")] out uint[] lookup_indexes);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.0.0")]
+       public static HarfBuzz.Bool ot_layout_feature_get_name_ids (HarfBuzz.Face face, HarfBuzz.Tag 
table_tag, uint feature_index, out HarfBuzz.OtNameId label_id, out HarfBuzz.OtNameId tooltip_id, out 
HarfBuzz.OtNameId sample_id, out uint num_named_parameters, out HarfBuzz.OtNameId first_param_id);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static uint ot_layout_feature_with_variations_get_lookups (HarfBuzz.Face face, HarfBuzz.Tag 
table_tag, uint feature_index, uint variations_index, uint start_offset, [CCode (array_length_cname = 
"lookup_count", array_length_pos = 5.5, array_length_type = "guint")] out uint[] lookup_indexes);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static uint ot_layout_get_attach_points (HarfBuzz.Face face, HarfBuzz.Codepoint glyph, uint 
start_offset, [CCode (array_length_cname = "point_count", array_length_pos = 3.5, array_length_type = 
"guint")] out uint[] point_array);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.6.0")]
+       public static HarfBuzz.Bool ot_layout_get_baseline (HarfBuzz.Font font, HarfBuzz.OtLayoutBaselineTag 
baseline_tag, HarfBuzz.Direction direction, HarfBuzz.Tag script_tag, HarfBuzz.Tag language_tag, out 
HarfBuzz.Position coord);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "0.9.7")]
+       public static HarfBuzz.OtLayoutGlyphClass ot_layout_get_glyph_class (HarfBuzz.Face face, 
HarfBuzz.Codepoint glyph);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "0.9.7")]
+       public static void ot_layout_get_glyphs_in_class (HarfBuzz.Face face, HarfBuzz.OtLayoutGlyphClass 
klass, out unowned HarfBuzz.Set glyphs);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static uint ot_layout_get_ligature_carets (HarfBuzz.Font font, HarfBuzz.Direction direction, 
HarfBuzz.Codepoint glyph, uint start_offset, [CCode (array_length_cname = "caret_count", array_length_pos = 
4.5, array_length_type = "guint")] out HarfBuzz.Position[] caret_array);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "0.9.10")]
+       public static HarfBuzz.Bool ot_layout_get_size_params (HarfBuzz.Face face, out uint design_size, out 
uint subfamily_id, out HarfBuzz.OtNameId subfamily_name_id, out uint range_start, out uint range_end);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static HarfBuzz.Bool ot_layout_has_glyph_classes (HarfBuzz.Face face);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static HarfBuzz.Bool ot_layout_has_positioning (HarfBuzz.Face face);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static HarfBuzz.Bool ot_layout_has_substitution (HarfBuzz.Face face);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static HarfBuzz.Bool ot_layout_language_find_feature (HarfBuzz.Face face, HarfBuzz.Tag 
table_tag, uint script_index, uint language_index, HarfBuzz.Tag feature_tag, out uint feature_index);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static uint ot_layout_language_get_feature_indexes (HarfBuzz.Face face, HarfBuzz.Tag 
table_tag, uint script_index, uint language_index, uint start_offset, [CCode (array_length_cname = 
"feature_count", array_length_pos = 5.5, array_length_type = "guint")] out uint[] feature_indexes);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static uint ot_layout_language_get_feature_tags (HarfBuzz.Face face, HarfBuzz.Tag table_tag, 
uint script_index, uint language_index, uint start_offset, [CCode (array_length_cname = "feature_count", 
array_length_pos = 5.5, array_length_type = "guint")] out HarfBuzz.Tag[] feature_tags);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "0.9.30")]
+       public static HarfBuzz.Bool ot_layout_language_get_required_feature (HarfBuzz.Face face, HarfBuzz.Tag 
table_tag, uint script_index, uint language_index, out uint feature_index, out HarfBuzz.Tag feature_tag);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static HarfBuzz.Bool ot_layout_language_get_required_feature_index (HarfBuzz.Face face, 
HarfBuzz.Tag table_tag, uint script_index, uint language_index, out uint feature_index);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "0.9.7")]
+       public static void ot_layout_lookup_collect_glyphs (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint 
lookup_index, out unowned HarfBuzz.Set glyphs_before, out unowned HarfBuzz.Set glyphs_input, out unowned 
HarfBuzz.Set glyphs_after, out unowned HarfBuzz.Set glyphs_output);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "0.9.7")]
+       public static void ot_layout_lookup_substitute_closure (HarfBuzz.Face face, uint lookup_index, out 
unowned HarfBuzz.Set glyphs);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "0.9.7")]
+       public static HarfBuzz.Bool ot_layout_lookup_would_substitute (HarfBuzz.Face face, uint lookup_index, 
HarfBuzz.Codepoint glyphs, uint glyphs_length, HarfBuzz.Bool zero_context);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "1.8.1")]
+       public static void ot_layout_lookups_substitute_closure (HarfBuzz.Face face, HarfBuzz.Set lookups, 
out unowned HarfBuzz.Set glyphs);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (deprecated = true)]
+       public static HarfBuzz.Bool ot_layout_script_find_language (HarfBuzz.Face face, HarfBuzz.Tag 
table_tag, uint script_index, HarfBuzz.Tag language_tag, uint language_index);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static uint ot_layout_script_get_language_tags (HarfBuzz.Face face, HarfBuzz.Tag table_tag, 
uint script_index, uint start_offset, [CCode (array_length_cname = "language_count", array_length_pos = 4.5, 
array_length_type = "guint")] out HarfBuzz.Tag[] language_tags);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.0.0")]
+       public static HarfBuzz.Bool ot_layout_script_select_language (HarfBuzz.Face face, HarfBuzz.Tag 
table_tag, uint script_index, uint language_count, HarfBuzz.Tag language_tags, out uint language_index);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static HarfBuzz.Bool ot_layout_table_choose_script (HarfBuzz.Face face, HarfBuzz.Tag 
table_tag, HarfBuzz.Tag script_tags, out uint script_index, out HarfBuzz.Tag chosen_script);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static HarfBuzz.Bool ot_layout_table_find_feature_variations (HarfBuzz.Face face, HarfBuzz.Tag 
table_tag, int coords, uint num_coords, out uint variations_index);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static HarfBuzz.Bool ot_layout_table_find_script (HarfBuzz.Face face, HarfBuzz.Tag table_tag, 
HarfBuzz.Tag script_tag, out uint script_index);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static uint ot_layout_table_get_feature_tags (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint 
start_offset, [CCode (array_length_cname = "feature_count", array_length_pos = 3.5, array_length_type = 
"guint")] out HarfBuzz.Tag[] feature_tags);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "0.9.22")]
+       public static uint ot_layout_table_get_lookup_count (HarfBuzz.Face face, HarfBuzz.Tag table_tag);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static uint ot_layout_table_get_script_tags (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint 
start_offset, [CCode (array_length_cname = "script_count", array_length_pos = 3.5, array_length_type = 
"guint")] out HarfBuzz.Tag[] script_tags);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.0.0")]
+       public static HarfBuzz.Bool ot_layout_table_select_script (HarfBuzz.Face face, HarfBuzz.Tag 
table_tag, uint script_count, HarfBuzz.Tag script_tags, out uint script_index, out HarfBuzz.Tag 
chosen_script);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "1.3.3")]
+       public static HarfBuzz.Position ot_math_get_constant (HarfBuzz.Font font, HarfBuzz.OtMathContant 
constant);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "1.3.3")]
+       public static uint ot_math_get_glyph_assembly (HarfBuzz.Font font, HarfBuzz.Codepoint glyph, 
HarfBuzz.Direction direction, uint start_offset, [CCode (array_length_cname = "parts_count", array_length_pos 
= 4.5, array_length_type = "guint")] out unowned HarfBuzz.OtMathGlypthPart[] parts, out HarfBuzz.Position 
italics_correction);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "1.3.3")]
+       public static HarfBuzz.Position ot_math_get_glyph_italics_correction (HarfBuzz.Font font, 
HarfBuzz.Codepoint glyph);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "1.3.3")]
+       public static HarfBuzz.Position ot_math_get_glyph_kerning (HarfBuzz.Font font, HarfBuzz.Codepoint 
glyph, HarfBuzz.OtMathKern kern, HarfBuzz.Position correction_height);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "1.3.3")]
+       public static HarfBuzz.Position ot_math_get_glyph_top_accent_attachment (HarfBuzz.Font font, 
HarfBuzz.Codepoint glyph);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "1.3.3")]
+       public static uint ot_math_get_glyph_variants (HarfBuzz.Font font, HarfBuzz.Codepoint glyph, 
HarfBuzz.Direction direction, uint start_offset, [CCode (array_length_cname = "variants_count", 
array_length_pos = 4.5, array_length_type = "guint")] out unowned HarfBuzz.OtMathGlypthVariant[] variants);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "1.3.3")]
+       public static HarfBuzz.Position ot_math_get_min_connector_overlap (HarfBuzz.Font font, 
HarfBuzz.Direction direction);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "1.3.3")]
+       public static HarfBuzz.Bool ot_math_has_data (HarfBuzz.Face face);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "1.3.3")]
+       public static HarfBuzz.Bool ot_math_is_glyph_extended_shape (HarfBuzz.Face face, HarfBuzz.Codepoint 
glyph);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static uint ot_meta_get_entry_tags (HarfBuzz.Face face, uint start_offset, uint entries_count, 
HarfBuzz.OtMetaTag entries);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.6.0")]
+       public static HarfBuzz.Blob ot_meta_reference_entry (HarfBuzz.Face face, HarfBuzz.OtMetaTag meta_tag);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.6.0")]
+       public static HarfBuzz.Bool ot_metrics_get_position (HarfBuzz.Font font, HarfBuzz.OtMetricsTag 
metrics_tag, out HarfBuzz.Position position);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.6.0")]
+       public static float ot_metrics_get_variation (HarfBuzz.Font font, HarfBuzz.OtMetricsTag metrics_tag);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.6.0")]
+       public static HarfBuzz.Position ot_metrics_get_x_variation (HarfBuzz.Font font, HarfBuzz.OtMetricsTag 
metrics_tag);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.6.0")]
+       public static HarfBuzz.Position ot_metrics_get_y_variation (HarfBuzz.Font font, HarfBuzz.OtMetricsTag 
metrics_tag);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.1.0")]
+       public static uint ot_name_get_utf16 (HarfBuzz.Face face, HarfBuzz.OtNameId name_id, 
HarfBuzz.Language language, [CCode (array_length_cname = "text_size", array_length_pos = 3.5, 
array_length_type = "guint")] out unowned uint16[] text);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.1.0")]
+       public static uint ot_name_get_utf32 (HarfBuzz.Face face, HarfBuzz.OtNameId name_id, 
HarfBuzz.Language language, [CCode (array_length_cname = "text_size", array_length_pos = 3.5, 
array_length_type = "guint")] out unowned uint32[] text);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.1.0")]
+       public static uint ot_name_get_utf8 (HarfBuzz.Face face, HarfBuzz.OtNameId name_id, HarfBuzz.Language 
language, [CCode (array_length_cname = "text_size", array_length_pos = 3.5, array_length_type = "guint")] out 
unowned string[] text);
+       [CCode (array_length_pos = 1.1, array_length_type = "guint", cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.1.0")]
+       public static unowned HarfBuzz.OtNameEntry[] ot_name_list_names (HarfBuzz.Face face);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "0.9.2")]
+       public static void ot_shape_glyphs_closure (HarfBuzz.Font font, HarfBuzz.Buffer buffer, 
HarfBuzz.Feature features, uint num_features, HarfBuzz.Set glyphs);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static HarfBuzz.Tag ot_tag_from_language (HarfBuzz.Language language);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "0.9.2")]
+       public static unowned HarfBuzz.Language ot_tag_to_language (HarfBuzz.Tag tag);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static HarfBuzz.Script ot_tag_to_script (HarfBuzz.Tag tag);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static void ot_tags_from_script (HarfBuzz.Script script, HarfBuzz.Tag script_tag_1, 
HarfBuzz.Tag script_tag_2);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.0.0")]
+       public static void ot_tags_from_script_and_language (HarfBuzz.Script script, HarfBuzz.Language 
language, uint? script_count, out HarfBuzz.Tag script_tags, uint? language_count, out HarfBuzz.Tag 
language_tags);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.0.0")]
+       public static void ot_tags_to_script_and_language (HarfBuzz.Tag script_tag, HarfBuzz.Tag 
language_tag, HarfBuzz.Script? script, HarfBuzz.Language? language);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (deprecated = true, deprecated_since = "2.2.0", since = "1.4.2")]
+       public static HarfBuzz.Bool ot_var_find_axis (HarfBuzz.Face face, HarfBuzz.Tag axis_tag, uint 
axis_index, HarfBuzz.OtVarAxis axis_info);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.2.0")]
+       public static HarfBuzz.Bool ot_var_find_axis_info (HarfBuzz.Face face, HarfBuzz.Tag axis_tag, 
HarfBuzz.OtVarAxisInfo axis_info);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (deprecated = true, deprecated_since = "2.2.0", since = "1.4.2")]
+       public static uint ot_var_get_axes (HarfBuzz.Face face, uint start_offset, uint axes_count, 
HarfBuzz.OtVarAxis axes_array);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "1.4.2")]
+       public static uint ot_var_get_axis_count (HarfBuzz.Face face);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "2.2.0")]
+       public static uint ot_var_get_axis_infos (HarfBuzz.Face face, uint start_offset, uint axes_count, 
HarfBuzz.OtVarAxisInfo axes_array);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static uint ot_var_get_named_instance_count (HarfBuzz.Face face);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "1.4.2")]
+       public static HarfBuzz.Bool ot_var_has_data (HarfBuzz.Face face);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static uint ot_var_named_instance_get_design_coords (HarfBuzz.Face face, uint instance_index, 
uint coords_length, float coords);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static HarfBuzz.OtNameId ot_var_named_instance_get_postscript_name_id (HarfBuzz.Face face, 
uint instance_index);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       public static HarfBuzz.OtNameId ot_var_named_instance_get_subfamily_name_id (HarfBuzz.Face face, uint 
instance_index);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "1.4.2")]
+       public static void ot_var_normalize_coords (HarfBuzz.Face face, uint coords_length, float 
design_coords, int normalized_coords);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "1.4.2")]
+       public static void ot_var_normalize_variations (HarfBuzz.Face face, HarfBuzz.Variation variations, 
uint variations_length, int coords, uint coords_length);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "0.9.2")]
+       public static void shape (HarfBuzz.Font font, HarfBuzz.Buffer buffer, [CCode (array_length_cname = 
"num_features", array_length_pos = 3.1, array_length_type = "guint")] HarfBuzz.Feature[]? features);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "0.9.2")]
+       public static HarfBuzz.Bool shape_full (HarfBuzz.Font font, HarfBuzz.Buffer buffer, [CCode 
(array_length_cname = "num_features", array_length_pos = 3.5, array_length_type = "guint")] 
HarfBuzz.Feature[]? features, [CCode (array_length = false, array_null_terminated = true)] string[]? 
shaper_list);
+       [CCode (array_length = false, array_null_terminated = true, cheader_filename = "hb-gobject.h")]
+       [Version (since = "0.9.2")]
+       public static unowned string[] shape_list_shapers ();
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "0.9.2")]
+       public static void version (out uint major, out uint minor, out uint micro);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "0.9.30")]
+       public static HarfBuzz.Bool version_atleast (uint major, uint minor, uint micro);
+       [CCode (cheader_filename = "hb-gobject.h")]
+       [Version (since = "0.9.2")]
+       public static unowned string version_string ();
+}
diff --git a/vapi/metadata/HarfBuzz-0.0.metadata b/vapi/metadata/HarfBuzz-0.0.metadata
new file mode 100644
index 000000000..da4694721
--- /dev/null
+++ b/vapi/metadata/HarfBuzz-0.0.metadata
@@ -0,0 +1,121 @@
+HarfBuzz name="HarfBuzz" experimental
+
+// pointer can't be a constant
+LANGUAGE_INVALID skip
+
+// classes
+buffer_t name="Buffer" lower_case_cprefix="hb_buffer_"
+blob_t name="Blob" lower_case_cprefix="hb_blob_"
+draw_funcs_t name="DrawFuncs"
+face_t name="Face" lower_case_cprefix="hb_face_"
+feature_t name="Feature" lower_case_cprefix="hb_feature_"
+font_funcs_t name="FontFuncs" lower_case_cprefix="hb_font_funcs_"
+font_t name="Font" lower_case_cprefix="hb_font_"
+glyph_info_t name="Glyph"
+glyph_position_t name="GlyphPosition"
+language_t name="Language"
+map_t name="Map" lower_case_cprefix="hb_map_"
+ot_math_glyph_part_t name="OtMathGlypthPart"
+ot_math_glyph_variant_t name="OtMathGlypthVariant"
+segment_properties_t name="SegmentProperties" lower_case_cprefix="hb_segment_properties_"
+set_t name="Set" lower_case_cprefix="hb_set_"
+shape_plan_t name="ShapePlan" lower_case_cprefix="hb_shape_plan_"
+unicode_funcs_t name="UnicodeFuncs" lower_case_cprefix="hb_unicode_funcs_"
+user_data_key_t name="UserDataKey"
+
+// structs
+bool_t name="Bool"
+codepoint_t name="Codepoint"
+color_t name="Color"
+font_extents_t name="FontExtents"
+glyph_extents_t name="GlyphExtents"
+mask_t name="Mask"
+ot_color_layer_t name="OtColorLayer"
+ot_name_entry_t name="OtNameEntry"
+ot_name_id_t name="OtNameId"
+ot_var_axis_info_t name="OtVarAxisInfo"
+ot_var_axis_t name="OtVarAxis"
+position_t name="Position"
+tag_t name="Tag" lower_case_cprefix="hb_tag_"
+var_int_t name="VarInt"
+variation_t name="Variation"
+
+// delegates
+buffer_message_func_t name="BufferMessageFunc"
+destroy_func_t name="DestroyFunc"
+draw_close_path_func_t name="DrawClosePathFunc"
+draw_cubic_to_func_t name="DrawCubicToFunc"
+draw_line_to_func_t name="DrawLineToFunc"
+draw_move_to_func_t name="DrawMoveToFunc"
+draw_quadratic_to_func_t name="DrawQuadraticToFunc"
+font_get_font_extents_func_t name="FontGetFontExtentsFunc"
+font_get_font_h_extents_func_t name="FontGetFontHExtentsFunc"
+font_get_font_v_extents_func_t name="FontGetFontVExtentsFunc"
+font_get_glyph_advance_func_t name="FontGetGlyphAdvanceFunc"
+font_get_glyph_advances_func_t name="FontGetGlyphAdvancesFunc"
+font_get_glyph_contour_point_func_t name="FontGetGlyphContourFunc"
+font_get_glyph_extents_func_t name="FontGetGlyphExtentsFunc"
+font_get_glyph_from_name_func_t name="FontGetGlyphFromNameFunc"
+font_get_glyph_func_t name="FontGetGlyphFunc"
+font_get_glyph_h_advance_func_t name="FontGetGlyphHAdvanceFunc"
+font_get_glyph_h_advances_func_t name="FontGetGlyphHAdvancesFunc"
+font_get_glyph_h_kerning_func_t name="FontGetGlyphHKerningFunc"
+font_get_glyph_h_origin_func_t name="FontGetGlyphHOriginFunc"
+font_get_glyph_kerning_func_t name="FontGetGlyphKerningFunc"
+font_get_glyph_name_func_t name="FontGetGlyphNameFunc"
+font_get_glyph_origin_func_t name="FontGetGlyphOriginFunc"
+font_get_glyph_v_advance_func_t name="FontGetGlyphVAdvanceFunc"
+font_get_glyph_v_advances_func_t name="FontGetGlyphVAdvancesFunc"
+font_get_glyph_v_kerning_func_t name="FontGetGlyphVKerningFunc"
+font_get_glyph_v_origin_func_t name="FontGetGlyphVOriginFunc"
+font_get_nominal_glyph_func_t name="FontGetNominalGlyphFunc"
+font_get_nominal_glyphs_func_t name="FontGetNominalGlyphsFunc"
+font_get_variation_glyph_func_t name="FontGetVariantGlyphFunc"
+reference_table_func_t name="ReferenceTableFunc"
+unicode_combining_class_func_t name="UnicodeCombiningClassFunc"
+unicode_compose_func_t name="UnicodeComposeFunc"
+unicode_decompose_compatibility_func_t name="UnicodedeComposeCompatibilityFunc"
+unicode_decompose_func_t name="UnicodeDecomposeFunc"
+unicode_eastasian_width_func_t name="UnicodeEastasianWidthFunc"
+unicode_general_category_func_t name="UnicodeGeneralCategoryFunc"
+unicode_mirroring_func_t name="UnicodeMirroringFunc"
+unicode_script_func_t name="UnicodeScriptFunc"
+
+// enums
+aat_layout_feature_selector_t name="AatLayoutFeatureSelector"
+aat_layout_feature_type_t name="AatLayoutFeatureType"
+buffer_cluster_level_t name="BufferClusterLevel"
+buffer_content_type_t name="BufferContentType"
+buffer_diff_flags_t name="BufferDiffFlags"
+buffer_flags_t name="BufferFlags"
+buffer_serialize_flags_t name="BufferSerializeFlags"
+buffer_serialize_format_t name="BufferSerializeFormat"
+direction_t name="Direction"
+glyph_flags_t name="GlyphFlags"
+memory_mode_t name="MemoryMode"
+ot_color_palette_flags_t name="OtColorPalette"
+ot_layout_baseline_tag_t name="OtLayoutBaselineTag"
+ot_layout_glyph_class_t name="OtLayoutGlyphClass"
+ot_math_constant_t name="OtMathContant"
+ot_math_glyph_part_flags_t name="OtMathGlyphPartFlags"
+ot_math_kern_t name="OtMathKern"
+ot_meta_tag_t name="OtMetaTag"
+ot_metrics_tag_t name="OtMetricsTag"
+ot_var_axis_flags_t name="OtVarAxisFlags"
+script_t name="Script"
+unicode_combining_class_t name="UnicodeCombiningClass"
+unicode_general_category_t name="UnicodeGeneralCategory"
+
+// re-parenting
+blob_*#function name="blob_(.+)" parent="HarfBuzz.Blob"
+buffer_*#function name="buffer_(.+)" parent="HarfBuzz.Buffer"
+face_*#function name="face_(.+)" parent="HarfBuzz.Face"
+feature_*#function name="feature_(.+)" parent="HarfBuzz.Feature"
+font_*#function name="font_(.+)" parent="HarfBuzz.Font"
+font_funcs_*#function name="font_funcs_(.+)" parent="HarfBuzz.FontFuncs"
+map_*#function name="map_(.+)" parent="HarfBuzz.Map"
+set_*#function name="set_(.+)" parent="HarfBuzz.Set"
+segment_properties_*#function name="segment_properties_(.+)" parent="HarfBuzz.SegmentProperties"
+shape_plan_*#function name="shape_plan_(.+)" parent="HarfBuzz.ShapePlan"
+unicode_*#function name="unicode_(.+)" parent="HarfBuzz.UnicodeFuncs"
+unicode_funcs_*#function name="unicode_funcs_(.+)" parent="HarfBuzz.UnicodeFuncs"


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]