summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorBowon Ryu <bowon.ryu@samsung.com>2020-02-25 14:54:08 +0900
committerBowon Ryu <bowon.ryu@samsung.com>2020-02-25 15:18:49 +0900
commita280f8312cc9b27515efbab292b95b9d147a2b73 (patch)
tree0da4078efe2870472f9af5cb919f248e007eee87 /docs
parent610626019cd10944b76622e30b2610910bf4b2b8 (diff)
downloadharfbuzz-a280f8312cc9b27515efbab292b95b9d147a2b73.tar.gz
harfbuzz-a280f8312cc9b27515efbab292b95b9d147a2b73.tar.bz2
harfbuzz-a280f8312cc9b27515efbab292b95b9d147a2b73.zip
Imported Upstream version 2.6.4upstream/2.6.4
Change-Id: Icb2ce380590ccf605416ee6165effa40d790cd6e
Diffstat (limited to 'docs')
-rw-r--r--docs/Makefile.am8
-rw-r--r--docs/Makefile.in12
-rw-r--r--docs/harfbuzz-docs.xml16
-rw-r--r--docs/harfbuzz-sections.txt46
-rw-r--r--docs/harfbuzz.types39
-rw-r--r--docs/html/aat-shaping.html4
-rw-r--r--docs/html/adding-text-to-the-buffer.html75
-rw-r--r--docs/html/api-index-full.html376
-rw-r--r--docs/html/buffers-language-script-and-direction.html54
-rw-r--r--docs/html/building.html17
-rw-r--r--docs/html/ch09.html67
-rw-r--r--docs/html/ch10.html52
-rw-r--r--docs/html/ch11.html53
-rw-r--r--docs/html/ch12.html26
-rw-r--r--docs/html/ch13.html32
-rw-r--r--docs/html/ch14.html52
-rw-r--r--docs/html/clusters.html4
-rw-r--r--docs/html/customizing-unicode-functions.html106
-rw-r--r--docs/html/fonts-and-faces-custom-functions.html156
-rw-r--r--docs/html/fonts-and-faces-native-opentype.html93
-rw-r--r--docs/html/fonts-and-faces-variable.html100
-rw-r--r--docs/html/fonts-and-faces.html130
-rw-r--r--docs/html/harfbuzz-hb-aat-layout.html34
-rw-r--r--docs/html/harfbuzz-hb-blob.html75
-rw-r--r--docs/html/harfbuzz-hb-buffer.html362
-rw-r--r--docs/html/harfbuzz-hb-common.html93
-rw-r--r--docs/html/harfbuzz-hb-coretext.html20
-rw-r--r--docs/html/harfbuzz-hb-deprecated.html183
-rw-r--r--docs/html/harfbuzz-hb-face.html101
-rw-r--r--docs/html/harfbuzz-hb-font.html458
-rw-r--r--docs/html/harfbuzz-hb-ft.html34
-rw-r--r--docs/html/harfbuzz-hb-glib.html20
-rw-r--r--docs/html/harfbuzz-hb-gobject.html835
-rw-r--r--docs/html/harfbuzz-hb-graphite2.html6
-rw-r--r--docs/html/harfbuzz-hb-icu.html8
-rw-r--r--docs/html/harfbuzz-hb-map.html57
-rw-r--r--docs/html/harfbuzz-hb-ot-color.html267
-rw-r--r--docs/html/harfbuzz-hb-ot-font.html6
-rw-r--r--docs/html/harfbuzz-hb-ot-layout.html1425
-rw-r--r--docs/html/harfbuzz-hb-ot-math.html276
-rw-r--r--docs/html/harfbuzz-hb-ot-name.html12
-rw-r--r--docs/html/harfbuzz-hb-ot-shape.html12
-rw-r--r--docs/html/harfbuzz-hb-ot-var.html39
-rw-r--r--docs/html/harfbuzz-hb-set.html109
-rw-r--r--docs/html/harfbuzz-hb-shape-plan.html87
-rw-r--r--docs/html/harfbuzz-hb-shape.html41
-rw-r--r--docs/html/harfbuzz-hb-unicode.html96
-rw-r--r--docs/html/harfbuzz-hb-uniscribe.html8
-rw-r--r--docs/html/harfbuzz-hb-version.html14
-rw-r--r--docs/html/harfbuzz.devhelp2184
-rw-r--r--docs/html/index.html51
-rw-r--r--docs/html/level-2.html4
-rw-r--r--docs/html/object-model-blobs.html56
-rw-r--r--docs/html/object-model-lifecycle.html97
-rw-r--r--docs/html/object-model-object-types.html84
-rw-r--r--docs/html/object-model-user-data.html59
-rw-r--r--docs/html/object-model.html73
-rw-r--r--docs/html/plans-and-caching.html31
-rw-r--r--docs/html/pt01.html47
-rw-r--r--docs/html/pt02.html18
-rw-r--r--docs/html/setting-buffer-properties.html133
-rw-r--r--docs/html/shaping-and-shape-plans.html121
-rw-r--r--docs/html/shaping-opentype-features.html109
-rw-r--r--docs/html/shaping-plans-and-caching.html85
-rw-r--r--docs/html/shaping-shaper-selection.html65
-rw-r--r--docs/html/using-harfbuzzs-native-opentype-implementation.html31
-rw-r--r--docs/html/using-your-own-font-functions.html31
-rw-r--r--docs/html/utilities-common-types-apis.html84
-rw-r--r--docs/html/utilities-ucdn.html49
-rw-r--r--docs/html/utilities.html188
-rw-r--r--docs/html/what-about-the-other-scripts.html31
-rw-r--r--docs/html/why-do-i-need-a-shaping-engine.html4
-rw-r--r--docs/html/working-with-harfbuzz-clusters.html10
-rw-r--r--docs/usermanual-buffers-language-script-and-direction.xml372
-rw-r--r--docs/usermanual-clusters.xml10
-rw-r--r--docs/usermanual-fonts-and-faces.xml445
-rw-r--r--docs/usermanual-install-harfbuzz.xml34
-rw-r--r--docs/usermanual-object-model.xml258
-rw-r--r--docs/usermanual-opentype-features.xml291
-rw-r--r--docs/usermanual-utilities.xml244
-rw-r--r--docs/usermanual-what-is-harfbuzz.xml4
-rw-r--r--docs/version.xml2
82 files changed, 7898 insertions, 1603 deletions
diff --git a/docs/Makefile.am b/docs/Makefile.am
index 9b54b40..f4bf2fd 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -33,7 +33,7 @@ SCAN_OPTIONS=--rebuild-types --deprecated-guards="HB_DISABLE_DEPRECATED" \
# Header files or dirs to ignore when scanning. Use base file/dir names
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code
-IGNORE_HFILES=`cd $(top_srcdir)/src; find . -path './hb-*/*.h' | sed 's@^.*/@@'`
+IGNORE_HFILES=`cd $(top_srcdir)/src; find . -path './*/*.h' | sed 's@^.*/@@'`
if HAVE_GOBJECT
else
IGNORE_HFILES+=hb-gobject.h hb-gobject-enums.h hb-gobject-structs.h
@@ -75,12 +75,14 @@ content_files= \
usermanual-what-is-harfbuzz.xml \
usermanual-install-harfbuzz.xml \
usermanual-getting-started.xml \
+ usermanual-glyph-information.xml \
usermanual-shaping-concepts.xml \
+ usermanual-object-model.xml \
usermanual-buffers-language-script-and-direction.xml \
usermanual-fonts-and-faces.xml \
- usermanual-clusters.xml \
usermanual-opentype-features.xml \
- usermanual-glyph-information.xml \
+ usermanual-clusters.xml \
+ usermanual-utilities.xml \
version.xml
# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
diff --git a/docs/Makefile.in b/docs/Makefile.in
index 3fa4a70..c4c2902 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -119,6 +119,7 @@ subdir = docs
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_link_flag.m4 \
$(top_srcdir)/m4/ax_code_coverage.m4 \
+ $(top_srcdir)/m4/ax_cxx_compile_stdcxx.m4 \
$(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
@@ -202,6 +203,8 @@ FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
FREETYPE_DEPS = @FREETYPE_DEPS@
FREETYPE_LIBS = @FREETYPE_LIBS@
GCOV = @GCOV@
+GDI_CFLAGS = @GDI_CFLAGS@
+GDI_LIBS = @GDI_LIBS@
GENHTML = @GENHTML@
GIT = @GIT@
GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -220,6 +223,7 @@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
GTKDOC_REBASE = @GTKDOC_REBASE@
+HAVE_CXX11 = @HAVE_CXX11@
HB_LIBTOOL_VERSION_INFO = @HB_LIBTOOL_VERSION_INFO@
HB_VERSION = @HB_VERSION@
HB_VERSION_MAJOR = @HB_VERSION_MAJOR@
@@ -374,7 +378,7 @@ SCAN_OPTIONS = --rebuild-types --deprecated-guards="HB_DISABLE_DEPRECATED" \
# Header files or dirs to ignore when scanning. Use base file/dir names
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code
-IGNORE_HFILES = `cd $(top_srcdir)/src; find . -path './hb-*/*.h' | sed \
+IGNORE_HFILES = `cd $(top_srcdir)/src; find . -path './*/*.h' | sed \
's@^.*/@@'` $(am__append_1)
# Extra options to supply to gtkdoc-mkdb.
@@ -414,12 +418,14 @@ content_files = \
usermanual-what-is-harfbuzz.xml \
usermanual-install-harfbuzz.xml \
usermanual-getting-started.xml \
+ usermanual-glyph-information.xml \
usermanual-shaping-concepts.xml \
+ usermanual-object-model.xml \
usermanual-buffers-language-script-and-direction.xml \
usermanual-fonts-and-faces.xml \
- usermanual-clusters.xml \
usermanual-opentype-features.xml \
- usermanual-glyph-information.xml \
+ usermanual-clusters.xml \
+ usermanual-utilities.xml \
version.xml
diff --git a/docs/harfbuzz-docs.xml b/docs/harfbuzz-docs.xml
index 0c462f3..433c206 100644
--- a/docs/harfbuzz-docs.xml
+++ b/docs/harfbuzz-docs.xml
@@ -20,11 +20,7 @@
<para>
The canonical source-code tree is available at
- <ulink
- url="https://github.com/harfbuzz/harfbuzz">github.com/harfbuzz/harfbuzz</ulink>
- and is also available at
- <ulink
- url="http://cgit.freedesktop.org/harfbuzz/">cgit.freedesktop.org/harfbuzz</ulink>.
+ <ulink url="https://github.com/harfbuzz/harfbuzz">github.com/harfbuzz/harfbuzz</ulink>.
See <xref linkend="download" endterm="download.title"/> for
release tarballs.
</para>
@@ -37,11 +33,12 @@
<xi:include href="usermanual-install-harfbuzz.xml"/>
<xi:include href="usermanual-getting-started.xml"/>
<xi:include href="usermanual-shaping-concepts.xml"/>
+ <xi:include href="usermanual-object-model.xml"/>
<xi:include href="usermanual-buffers-language-script-and-direction.xml"/>
<xi:include href="usermanual-fonts-and-faces.xml"/>
- <xi:include href="usermanual-clusters.xml"/>
<xi:include href="usermanual-opentype-features.xml"/>
- <xi:include href="usermanual-glyph-information.xml"/>
+ <xi:include href="usermanual-clusters.xml"/>
+ <xi:include href="usermanual-utilities.xml"/>
</part>
<part>
@@ -136,6 +133,10 @@
<index id="api-index-full"><title>API Index</title><xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include></index>
<index id="deprecated-api-index" role="deprecated"><title>Index of deprecated API</title><xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include></index>
+ <index id="api-index-2-6-0" role="2.6.0"><title>Index of new symbols in 2.6.0</title><xi:include href="xml/api-index-2.6.0.xml"><xi:fallback /></xi:include></index>
+ <index id="api-index-2-5-0" role="2.5.0"><title>Index of new symbols in 2.5.0</title><xi:include href="xml/api-index-2.5.0.xml"><xi:fallback /></xi:include></index>
+ <index id="api-index-2-4-0" role="2.4.0"><title>Index of new symbols in 2.4.0</title><xi:include href="xml/api-index-2.4.0.xml"><xi:fallback /></xi:include></index>
+ <index id="api-index-2-3-0" role="2.3.0"><title>Index of new symbols in 2.3.0</title><xi:include href="xml/api-index-2.3.0.xml"><xi:fallback /></xi:include></index>
<index id="api-index-2-2-0" role="2.2.0"><title>Index of new symbols in 2.2.0</title><xi:include href="xml/api-index-2.2.0.xml"><xi:fallback /></xi:include></index>
<index id="api-index-2-1-0" role="2.1.0"><title>Index of new symbols in 2.1.0</title><xi:include href="xml/api-index-2.1.0.xml"><xi:fallback /></xi:include></index>
<index id="api-index-2-0-0" role="2.0.0"><title>Index of new symbols in 2.0.0</title><xi:include href="xml/api-index-2.0.0.xml"><xi:fallback /></xi:include></index>
@@ -150,7 +151,6 @@
<index id="api-index-1-5-0" role="1.5.0"><title>Index of new symbols in 1.5.0</title><xi:include href="xml/api-index-1.5.0.xml"><xi:fallback /></xi:include></index>
<index id="api-index-1-4-3" role="1.4.3"><title>Index of new symbols in 1.4.3</title><xi:include href="xml/api-index-1.4.3.xml"><xi:fallback /></xi:include></index>
<index id="api-index-1-4-2" role="1.4.2"><title>Index of new symbols in 1.4.2</title><xi:include href="xml/api-index-1.4.2.xml"><xi:fallback /></xi:include></index>
- <index id="api-index-1-4-0" role="1.4.0"><title>Index of new symbols in 1.4.0</title><xi:include href="xml/api-index-1.4.0.xml"><xi:fallback /></xi:include></index>
<index id="api-index-1-3-3" role="1.3.3"><title>Index of new symbols in 1.3.3</title><xi:include href="xml/api-index-1.3.3.xml"><xi:fallback /></xi:include></index>
<index id="api-index-1-2-3" role="1.2.3"><title>Index of new symbols in 1.2.3</title><xi:include href="xml/api-index-1.2.3.xml"><xi:fallback /></xi:include></index>
<index id="api-index-1-1-3" role="1.1.3"><title>Index of new symbols in 1.1.3</title><xi:include href="xml/api-index-1.1.3.xml"><xi:fallback /></xi:include></index>
diff --git a/docs/harfbuzz-sections.txt b/docs/harfbuzz-sections.txt
index 27dc1e2..c625b92 100644
--- a/docs/harfbuzz-sections.txt
+++ b/docs/harfbuzz-sections.txt
@@ -1,6 +1,7 @@
<SUBSECTION Private>
HB_H_IN
HB_OT_H_IN
+HB_AAT_H_IN
</SECTION>
<SECTION>
@@ -179,6 +180,7 @@ HB_BUFFER_SERIALIZE_FLAGS_DEFAULT
HB_SCRIPT_CANADIAN_ABORIGINAL
hb_font_funcs_set_glyph_func
hb_font_get_glyph_func_t
+HB_MATH_GLYPH_PART_FLAG_EXTENDER
hb_ot_layout_table_choose_script
hb_ot_layout_table_find_script
hb_ot_tag_from_language
@@ -195,12 +197,7 @@ HB_UNICODE_MAX_DECOMPOSITION_LEN
hb_unicode_decompose_compatibility_func_t
hb_unicode_decompose_compatibility
hb_unicode_funcs_set_decompose_compatibility_func
-hb_font_funcs_set_glyph_h_kerning_func
hb_font_funcs_set_glyph_v_kerning_func
-hb_font_get_glyph_h_kerning
-hb_font_get_glyph_h_kerning_func_t
-hb_font_get_glyph_kerning_for_direction
-hb_font_get_glyph_kerning_func_t
hb_font_get_glyph_v_kerning
hb_font_get_glyph_v_kerning_func_t
</SECTION>
@@ -217,6 +214,14 @@ hb_coretext_font_get_ct_font
</SECTION>
<SECTION>
+<FILE>hb-directwrite</FILE>
+hb_directwrite_face_create
+hb_directwrite_face_get_font_face
+<SUBSECTION Private>
+hb_directwrite_shape_experimental_width
+</SECTION>
+
+<SECTION>
<FILE>hb-face</FILE>
hb_face_count
hb_face_t
@@ -263,6 +268,7 @@ hb_font_funcs_set_glyph_extents_func
hb_font_funcs_set_glyph_from_name_func
hb_font_funcs_set_glyph_h_advance_func
hb_font_funcs_set_glyph_h_advances_func
+hb_font_funcs_set_glyph_h_kerning_func
hb_font_funcs_set_glyph_h_origin_func
hb_font_funcs_set_glyph_name_func
hb_font_funcs_set_glyph_v_advance_func
@@ -292,8 +298,12 @@ hb_font_get_glyph_h_advance
hb_font_get_glyph_h_advance_func_t
hb_font_get_glyph_h_advances
hb_font_get_glyph_h_advances_func_t
+hb_font_get_glyph_h_kerning
+hb_font_get_glyph_h_kerning_func_t
hb_font_get_glyph_h_origin
hb_font_get_glyph_h_origin_func_t
+hb_font_get_glyph_kerning_for_direction
+hb_font_get_glyph_kerning_func_t
hb_font_get_glyph_name
hb_font_get_glyph_name_func_t
hb_font_get_glyph_origin_for_direction
@@ -332,6 +342,7 @@ hb_font_set_user_data
hb_font_set_variations
hb_font_set_var_coords_design
hb_font_set_var_coords_normalized
+hb_font_set_var_named_instance
hb_font_subtract_glyph_origin_for_direction
hb_font_t
hb_reference_table_func_t
@@ -360,6 +371,11 @@ hb_ft_font_set_funcs
</SECTION>
<SECTION>
+<FILE>hb-gdi</FILE>
+hb_gdi_face_create
+</SECTION>
+
+<SECTION>
<FILE>hb-glib</FILE>
hb_glib_get_unicode_funcs
hb_glib_script_from_script
@@ -532,6 +548,7 @@ HB_OT_TAG_GDEF
HB_OT_TAG_GPOS
HB_OT_TAG_GSUB
HB_OT_TAG_JSTF
+hb_ot_layout_baseline_tag_t
hb_ot_layout_collect_lookups
hb_ot_layout_collect_features
hb_ot_layout_feature_get_characters
@@ -539,6 +556,7 @@ hb_ot_layout_feature_get_lookups
hb_ot_layout_feature_get_name_ids
hb_ot_layout_feature_with_variations_get_lookups
hb_ot_layout_get_attach_points
+hb_ot_layout_get_baseline
hb_ot_layout_get_glyph_class
hb_ot_layout_get_glyphs_in_class
hb_ot_layout_get_ligature_carets
@@ -593,6 +611,22 @@ hb_ot_math_get_glyph_assembly
</SECTION>
<SECTION>
+<FILE>hb-ot-meta</FILE>
+hb_ot_meta_tag_t
+hb_ot_meta_get_entry_tags
+hb_ot_meta_reference_entry
+</SECTION>
+
+<SECTION>
+<FILE>hb-ot-metrics</FILE>
+hb_ot_metrics_tag_t
+hb_ot_metrics_get_position
+hb_ot_metrics_get_variation
+hb_ot_metrics_get_x_variation
+hb_ot_metrics_get_y_variation
+</SECTION>
+
+<SECTION>
<FILE>hb-ot-shape</FILE>
hb_ot_shape_glyphs_closure
</SECTION>
@@ -715,8 +749,6 @@ hb_unicode_script_func_t
<FILE>hb-uniscribe</FILE>
hb_uniscribe_font_get_hfont
hb_uniscribe_font_get_logfontw
-<SUBSECTION Private>
-hb_directwrite_shape_experimental_width
</SECTION>
<SECTION>
diff --git a/docs/harfbuzz.types b/docs/harfbuzz.types
new file mode 100644
index 0000000..ef81792
--- /dev/null
+++ b/docs/harfbuzz.types
@@ -0,0 +1,39 @@
+hb_gobject_aat_layout_feature_selector_get_type
+hb_gobject_aat_layout_feature_type_get_type
+hb_gobject_blob_get_type
+hb_gobject_buffer_cluster_level_get_type
+hb_gobject_buffer_content_type_get_type
+hb_gobject_buffer_diff_flags_get_type
+hb_gobject_buffer_flags_get_type
+hb_gobject_buffer_get_type
+hb_gobject_buffer_serialize_flags_get_type
+hb_gobject_buffer_serialize_format_get_type
+hb_gobject_direction_get_type
+hb_gobject_face_get_type
+hb_gobject_feature_get_type
+hb_gobject_font_funcs_get_type
+hb_gobject_font_get_type
+hb_gobject_glyph_flags_get_type
+hb_gobject_glyph_info_get_type
+hb_gobject_glyph_position_get_type
+hb_gobject_map_get_type
+hb_gobject_memory_mode_get_type
+hb_gobject_ot_color_palette_flags_get_type
+hb_gobject_ot_layout_baseline_tag_get_type
+hb_gobject_ot_layout_glyph_class_get_type
+hb_gobject_ot_math_constant_get_type
+hb_gobject_ot_math_glyph_part_flags_get_type
+hb_gobject_ot_math_glyph_part_get_type
+hb_gobject_ot_math_glyph_variant_get_type
+hb_gobject_ot_math_kern_get_type
+hb_gobject_ot_meta_tag_get_type
+hb_gobject_ot_metrics_tag_get_type
+hb_gobject_ot_var_axis_flags_get_type
+hb_gobject_script_get_type
+hb_gobject_segment_properties_get_type
+hb_gobject_set_get_type
+hb_gobject_shape_plan_get_type
+hb_gobject_unicode_combining_class_get_type
+hb_gobject_unicode_funcs_get_type
+hb_gobject_unicode_general_category_get_type
+hb_gobject_user_data_key_get_type
diff --git a/docs/html/aat-shaping.html b/docs/html/aat-shaping.html
index 8a50f3f..eede307 100644
--- a/docs/html/aat-shaping.html
+++ b/docs/html/aat-shaping.html
@@ -7,7 +7,7 @@
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="shaping-concepts.html" title="Shaping concepts">
<link rel="prev" href="graphite-shaping.html" title="Graphite shaping">
-<link rel="next" href="buffers-language-script-and-direction.html" title="Buffers, language, script and direction">
+<link rel="next" href="object-model.html" title="The HarfBuzz object model">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
@@ -17,7 +17,7 @@
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="shaping-concepts.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="graphite-shaping.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="buffers-language-script-and-direction.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="object-model.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
diff --git a/docs/html/adding-text-to-the-buffer.html b/docs/html/adding-text-to-the-buffer.html
index 07e7dda..e44694b 100644
--- a/docs/html/adding-text-to-the-buffer.html
+++ b/docs/html/adding-text-to-the-buffer.html
@@ -25,8 +25,79 @@
<p>
Now we have a brand new HarfBuzz buffer. Let's start filling it
with text! From HarfBuzz's perspective, a buffer is just a stream
- of Unicode codepoints, but your input string is probably in one of
- the standard Unicode character encodings (UTF-8, UTF-16, UTF-32)
+ of Unicode code points, but your input string is probably in one of
+ the standard Unicode character encodings (UTF-8, UTF-16, or
+ UTF-32). HarfBuzz provides convenience functions that accept
+ each of these encodings:
+ <code class="function">hb_buffer_add_utf8()</code>,
+ <code class="function">hb_buffer_add_utf16()</code>, and
+ <code class="function">hb_buffer_add_utf32()</code>. Other than the
+ character encoding they accept, they function identically.
+ </p>
+<p>
+ You can add UTF-8 text to a buffer by passing in the text array,
+ the array's length, an offset into the array for the first
+ character to add, and the length of the segment to add:
+ </p>
+<pre class="programlisting">
+ hb_buffer_add_utf8 (hb_buffer_t *buf,
+ const char *text,
+ int text_length,
+ unsigned int item_offset,
+ int item_length)
+ </pre>
+<p>
+ So, in practice, you can say:
+ </p>
+<pre class="programlisting">
+ hb_buffer_add_utf8(buf, text, strlen(text), 0, strlen(text));
+ </pre>
+<p>
+ This will append your new characters to
+ <em class="parameter"><code>buf</code></em>, not replace its existing
+ contents. Also, note that you can use <code class="literal">-1</code> in
+ place of the first instance of <code class="function">strlen(text)</code>
+ if your text array is NULL-terminated. Similarly, you can also use
+ <code class="literal">-1</code> as the final argument want to add its full
+ contents.
+ </p>
+<p>
+ Whatever start <em class="parameter"><code>item_offset</code></em> and
+ <em class="parameter"><code>item_length</code></em> you provide, HarfBuzz will also
+ attempt to grab the five characters <span class="emphasis"><em>before</em></span>
+ the offset point and the five characters
+ <span class="emphasis"><em>after</em></span> the designated end. These are the
+ before and after "context" segments, which are used internally
+ for HarfBuzz to make shaping decisions. They will not be part of
+ the final output, but they ensure that HarfBuzz's
+ script-specific shaping operations are correct. If there are
+ fewer than five characters available for the before or after
+ contexts, HarfBuzz will just grab what is there.
+ </p>
+<p>
+ For longer text runs, such as full paragraphs, it might be
+ tempting to only add smaller sub-segments to a buffer and
+ shape them in piecemeal fashion. Generally, this is not a good
+ idea, however, because a lot of shaping decisions are
+ dependent on this context information. For example, in Arabic
+ and other connected scripts, HarfBuzz needs to know the code
+ points before and after each character in order to correctly
+ determine which glyph to return.
+ </p>
+<p>
+ The safest approach is to add all of the text available, then
+ use <em class="parameter"><code>item_offset</code></em> and
+ <em class="parameter"><code>item_length</code></em> to indicate which characters you
+ want shaped, so that HarfBuzz has access to any context.
+ </p>
+<p>
+ You can also add Unicode code points directly with
+ <code class="function">hb_buffer_add_codepoints()</code>. The arguments
+ to this function are the same as those for the UTF
+ encodings. But it is particularly important to note that
+ HarfBuzz does not do validity checking on the text that is added
+ to a buffer. Invalid code points will be replaced, but it is up
+ to you to do any deep-sanity checking necessary.
</p>
</div>
<div class="footer">
diff --git a/docs/html/api-index-full.html b/docs/html/api-index-full.html
index 9e3926d..2f9ee96 100644
--- a/docs/html/api-index-full.html
+++ b/docs/html/api-index-full.html
@@ -147,7 +147,7 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t">hb_blob_t</a>, typedef in <a class="link" href="harfbuzz-hb-blob.html" title="hb-blob">hb-blob</a>
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t">hb_blob_t</a>, typedef in <a class="link" href="harfbuzz-hb-blob.html" title="hb-blob">hb-blob</a>
</dt>
<dd></dd>
<dt>
@@ -407,7 +407,7 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t">hb_buffer_t</a>, typedef in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
+<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t">hb_buffer_t</a>, typedef in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
</dt>
<dd></dd>
<a name="idxC"></a><h3 class="title">C</h3>
@@ -420,19 +420,19 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-color-get-alpha" title="hb_color_get_alpha()">hb_color_get_alpha</a>, macro in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
+<a class="link" href="harfbuzz-hb-ot-color.html#hb-color-get-alpha" title="hb_color_get_alpha ()">hb_color_get_alpha</a>, function in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-color-get-blue" title="hb_color_get_blue()">hb_color_get_blue</a>, macro in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
+<a class="link" href="harfbuzz-hb-ot-color.html#hb-color-get-blue" title="hb_color_get_blue ()">hb_color_get_blue</a>, function in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-color-get-green" title="hb_color_get_green()">hb_color_get_green</a>, macro in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
+<a class="link" href="harfbuzz-hb-ot-color.html#hb-color-get-green" title="hb_color_get_green ()">hb_color_get_green</a>, function in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-color-get-red" title="hb_color_get_red()">hb_color_get_red</a>, macro in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
+<a class="link" href="harfbuzz-hb-ot-color.html#hb-color-get-red" title="hb_color_get_red ()">hb_color_get_red</a>, function in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
</dt>
<dd></dd>
<dt>
@@ -508,6 +508,14 @@
<a class="link" href="harfbuzz-hb-common.html#hb-direction-to-string" title="hb_direction_to_string ()">hb_direction_to_string</a>, function in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
</dt>
<dd></dd>
+<dt>
+hb_directwrite_face_create, function in hb-directwrite
+</dt>
+<dd></dd>
+<dt>
+hb_directwrite_face_get_font_face, function in hb-directwrite
+</dt>
+<dd></dd>
<a name="idxF"></a><h3 class="title">F</h3>
<dt>
<a class="link" href="harfbuzz-hb-face.html#hb-face-builder-add-table" title="hb_face_builder_add_table ()">hb_face_builder_add_table</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
@@ -606,7 +614,7 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t">hb_face_t</a>, typedef in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
+<a class="link" href="harfbuzz-hb-face.html#hb-face-t">hb_face_t</a>, typedef in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
</dt>
<dd></dd>
<dt>
@@ -622,7 +630,7 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t">hb_feature_t</a>, struct in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
+<a class="link" href="harfbuzz-hb-common.html#hb-feature-t-struct" title="hb_feature_t">hb_feature_t</a>, struct in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
</dt>
<dd></dd>
<dt>
@@ -702,7 +710,7 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#hb-font-funcs-set-glyph-h-kerning-func" title="hb_font_funcs_set_glyph_h_kerning_func ()">hb_font_funcs_set_glyph_h_kerning_func</a>, function in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
+<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-set-glyph-h-kerning-func" title="hb_font_funcs_set_glyph_h_kerning_func ()">hb_font_funcs_set_glyph_h_kerning_func</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
</dt>
<dd></dd>
<dt>
@@ -746,7 +754,7 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t">hb_font_funcs_t</a>, typedef in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
+<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t">hb_font_funcs_t</a>, typedef in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
</dt>
<dd></dd>
<dt>
@@ -846,11 +854,11 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#hb-font-get-glyph-h-kerning" title="hb_font_get_glyph_h_kerning ()">hb_font_get_glyph_h_kerning</a>, function in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
+<a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-h-kerning" title="hb_font_get_glyph_h_kerning ()">hb_font_get_glyph_h_kerning</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#hb-font-get-glyph-h-kerning-func-t" title="hb_font_get_glyph_h_kerning_func_t">hb_font_get_glyph_h_kerning_func_t</a>, typedef in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
+<a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-h-kerning-func-t" title="hb_font_get_glyph_h_kerning_func_t">hb_font_get_glyph_h_kerning_func_t</a>, typedef in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
</dt>
<dd></dd>
<dt>
@@ -862,11 +870,11 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#hb-font-get-glyph-kerning-for-direction" title="hb_font_get_glyph_kerning_for_direction ()">hb_font_get_glyph_kerning_for_direction</a>, function in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
+<a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-kerning-for-direction" title="hb_font_get_glyph_kerning_for_direction ()">hb_font_get_glyph_kerning_for_direction</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#hb-font-get-glyph-kerning-func-t" title="hb_font_get_glyph_kerning_func_t ()">hb_font_get_glyph_kerning_func_t</a>, user_function in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
+<a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-kerning-func-t" title="hb_font_get_glyph_kerning_func_t ()">hb_font_get_glyph_kerning_func_t</a>, user_function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
</dt>
<dd></dd>
<dt>
@@ -926,6 +934,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="harfbuzz-hb-font.html#hb-font-get-nominal-glyphs" title="hb_font_get_nominal_glyphs ()">hb_font_get_nominal_glyphs</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="harfbuzz-hb-font.html#hb-font-get-nominal-glyph-func-t" title="hb_font_get_nominal_glyph_func_t ()">hb_font_get_nominal_glyph_func_t</a>, user_function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
</dt>
<dd></dd>
@@ -1030,11 +1042,15 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="harfbuzz-hb-font.html#hb-font-set-var-named-instance" title="hb_font_set_var_named_instance ()">hb_font_set_var_named_instance</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="harfbuzz-hb-font.html#hb-font-subtract-glyph-origin-for-direction" title="hb_font_subtract_glyph_origin_for_direction ()">hb_font_subtract_glyph_origin_for_direction</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t">hb_font_t</a>, typedef in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
+<a class="link" href="harfbuzz-hb-font.html#hb-font-t">hb_font_t</a>, typedef in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
</dt>
<dd></dd>
<dt>
@@ -1079,6 +1095,10 @@
<dd></dd>
<a name="idxG"></a><h3 class="title">G</h3>
<dt>
+hb_gdi_face_create, function in hb-gdi
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="harfbuzz-hb-glib.html#hb-glib-blob-create" title="hb_glib_blob_create ()">hb_glib_blob_create</a>, function in <a class="link" href="harfbuzz-hb-glib.html" title="hb-glib">hb-glib</a>
</dt>
<dd></dd>
@@ -1103,7 +1123,271 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t" title="hb_glyph_position_t">hb_glyph_position_t</a>, struct in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
+<a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t-struct" title="hb_glyph_position_t">hb_glyph_position_t</a>, struct in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-blob-get-type" title="hb_gobject_blob_get_type ()">hb_gobject_blob_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-cluster-level-get-type" title="hb_gobject_buffer_cluster_level_get_type ()">hb_gobject_buffer_cluster_level_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-content-type-get-type" title="hb_gobject_buffer_content_type_get_type ()">hb_gobject_buffer_content_type_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-diff-flags-get-type" title="hb_gobject_buffer_diff_flags_get_type ()">hb_gobject_buffer_diff_flags_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-flags-get-type" title="hb_gobject_buffer_flags_get_type ()">hb_gobject_buffer_flags_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-get-type" title="hb_gobject_buffer_get_type ()">hb_gobject_buffer_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-serialize-flags-get-type" title="hb_gobject_buffer_serialize_flags_get_type ()">hb_gobject_buffer_serialize_flags_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-serialize-format-get-type" title="hb_gobject_buffer_serialize_format_get_type ()">hb_gobject_buffer_serialize_format_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-direction-get-type" title="hb_gobject_direction_get_type ()">hb_gobject_direction_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-face-get-type" title="hb_gobject_face_get_type ()">hb_gobject_face_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-feature-get-type" title="hb_gobject_feature_get_type ()">hb_gobject_feature_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-font-funcs-get-type" title="hb_gobject_font_funcs_get_type ()">hb_gobject_font_funcs_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-font-get-type" title="hb_gobject_font_get_type ()">hb_gobject_font_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-glyph-flags-get-type" title="hb_gobject_glyph_flags_get_type ()">hb_gobject_glyph_flags_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-glyph-info-get-type" title="hb_gobject_glyph_info_get_type ()">hb_gobject_glyph_info_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-glyph-position-get-type" title="hb_gobject_glyph_position_get_type ()">hb_gobject_glyph_position_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-map-get-type" title="hb_gobject_map_get_type ()">hb_gobject_map_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-memory-mode-get-type" title="hb_gobject_memory_mode_get_type ()">hb_gobject_memory_mode_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-color-palette-flags-get-type" title="hb_gobject_ot_color_palette_flags_get_type ()">hb_gobject_ot_color_palette_flags_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-layout-glyph-class-get-type" title="hb_gobject_ot_layout_glyph_class_get_type ()">hb_gobject_ot_layout_glyph_class_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-math-constant-get-type" title="hb_gobject_ot_math_constant_get_type ()">hb_gobject_ot_math_constant_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-math-glyph-part-flags-get-type" title="hb_gobject_ot_math_glyph_part_flags_get_type ()">hb_gobject_ot_math_glyph_part_flags_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-math-glyph-part-get-type" title="hb_gobject_ot_math_glyph_part_get_type ()">hb_gobject_ot_math_glyph_part_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-math-glyph-variant-get-type" title="hb_gobject_ot_math_glyph_variant_get_type ()">hb_gobject_ot_math_glyph_variant_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-math-kern-get-type" title="hb_gobject_ot_math_kern_get_type ()">hb_gobject_ot_math_kern_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-script-get-type" title="hb_gobject_script_get_type ()">hb_gobject_script_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-segment-properties-get-type" title="hb_gobject_segment_properties_get_type ()">hb_gobject_segment_properties_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-set-get-type" title="hb_gobject_set_get_type ()">hb_gobject_set_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-shape-plan-get-type" title="hb_gobject_shape_plan_get_type ()">hb_gobject_shape_plan_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BLOB:CAPS" title="HB_GOBJECT_TYPE_BLOB">HB_GOBJECT_TYPE_BLOB</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER:CAPS" title="HB_GOBJECT_TYPE_BUFFER">HB_GOBJECT_TYPE_BUFFER</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-CLUSTER-LEVEL:CAPS" title="HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL">HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-CONTENT-TYPE:CAPS" title="HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE">HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-DIFF-FLAGS:CAPS" title="HB_GOBJECT_TYPE_BUFFER_DIFF_FLAGS">HB_GOBJECT_TYPE_BUFFER_DIFF_FLAGS</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-FLAGS:CAPS" title="HB_GOBJECT_TYPE_BUFFER_FLAGS">HB_GOBJECT_TYPE_BUFFER_FLAGS</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-SERIALIZE-FLAGS:CAPS" title="HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FLAGS">HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FLAGS</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-SERIALIZE-FORMAT:CAPS" title="HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FORMAT">HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FORMAT</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-DIRECTION:CAPS" title="HB_GOBJECT_TYPE_DIRECTION">HB_GOBJECT_TYPE_DIRECTION</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FACE:CAPS" title="HB_GOBJECT_TYPE_FACE">HB_GOBJECT_TYPE_FACE</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FEATURE:CAPS" title="HB_GOBJECT_TYPE_FEATURE">HB_GOBJECT_TYPE_FEATURE</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FONT:CAPS" title="HB_GOBJECT_TYPE_FONT">HB_GOBJECT_TYPE_FONT</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FONT-FUNCS:CAPS" title="HB_GOBJECT_TYPE_FONT_FUNCS">HB_GOBJECT_TYPE_FONT_FUNCS</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-GLYPH-FLAGS:CAPS" title="HB_GOBJECT_TYPE_GLYPH_FLAGS">HB_GOBJECT_TYPE_GLYPH_FLAGS</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-GLYPH-INFO:CAPS" title="HB_GOBJECT_TYPE_GLYPH_INFO">HB_GOBJECT_TYPE_GLYPH_INFO</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-GLYPH-POSITION:CAPS" title="HB_GOBJECT_TYPE_GLYPH_POSITION">HB_GOBJECT_TYPE_GLYPH_POSITION</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-MAP:CAPS" title="HB_GOBJECT_TYPE_MAP">HB_GOBJECT_TYPE_MAP</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-MEMORY-MODE:CAPS" title="HB_GOBJECT_TYPE_MEMORY_MODE">HB_GOBJECT_TYPE_MEMORY_MODE</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-COLOR-PALETTE-FLAGS:CAPS" title="HB_GOBJECT_TYPE_OT_COLOR_PALETTE_FLAGS">HB_GOBJECT_TYPE_OT_COLOR_PALETTE_FLAGS</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-LAYOUT-GLYPH-CLASS:CAPS" title="HB_GOBJECT_TYPE_OT_LAYOUT_GLYPH_CLASS">HB_GOBJECT_TYPE_OT_LAYOUT_GLYPH_CLASS</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-CONSTANT:CAPS" title="HB_GOBJECT_TYPE_OT_MATH_CONSTANT">HB_GOBJECT_TYPE_OT_MATH_CONSTANT</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-GLYPH-PART:CAPS" title="HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART">HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-GLYPH-PART-FLAGS:CAPS" title="HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART_FLAGS">HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART_FLAGS</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-GLYPH-VARIANT:CAPS" title="HB_GOBJECT_TYPE_OT_MATH_GLYPH_VARIANT">HB_GOBJECT_TYPE_OT_MATH_GLYPH_VARIANT</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-KERN:CAPS" title="HB_GOBJECT_TYPE_OT_MATH_KERN">HB_GOBJECT_TYPE_OT_MATH_KERN</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SCRIPT:CAPS" title="HB_GOBJECT_TYPE_SCRIPT">HB_GOBJECT_TYPE_SCRIPT</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SEGMENT-PROPERTIES:CAPS" title="HB_GOBJECT_TYPE_SEGMENT_PROPERTIES">HB_GOBJECT_TYPE_SEGMENT_PROPERTIES</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SET:CAPS" title="HB_GOBJECT_TYPE_SET">HB_GOBJECT_TYPE_SET</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SHAPE-PLAN:CAPS" title="HB_GOBJECT_TYPE_SHAPE_PLAN">HB_GOBJECT_TYPE_SHAPE_PLAN</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-COMBINING-CLASS:CAPS" title="HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS">HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-FUNCS:CAPS" title="HB_GOBJECT_TYPE_UNICODE_FUNCS">HB_GOBJECT_TYPE_UNICODE_FUNCS</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-GENERAL-CATEGORY:CAPS" title="HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY">HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-USER-DATA-KEY:CAPS" title="HB_GOBJECT_TYPE_USER_DATA_KEY">HB_GOBJECT_TYPE_USER_DATA_KEY</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-unicode-combining-class-get-type" title="hb_gobject_unicode_combining_class_get_type ()">hb_gobject_unicode_combining_class_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-unicode-funcs-get-type" title="hb_gobject_unicode_funcs_get_type ()">hb_gobject_unicode_funcs_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-unicode-general-category-get-type" title="hb_gobject_unicode_general_category_get_type ()">hb_gobject_unicode_general_category_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-user-data-key-get-type" title="hb_gobject_user_data_key_get_type ()">hb_gobject_user_data_key_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
</dt>
<dd></dd>
<dt>
@@ -1206,7 +1490,7 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t">hb_map_t</a>, typedef in <a class="link" href="harfbuzz-hb-map.html" title="hb-map">hb-map</a>
+<a class="link" href="harfbuzz-hb-map.html#hb-map-t">hb_map_t</a>, typedef in <a class="link" href="harfbuzz-hb-map.html" title="hb-map">hb-map</a>
</dt>
<dd></dd>
<dt>
@@ -1218,6 +1502,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="harfbuzz-hb-deprecated.html#HB-MATH-GLYPH-PART-FLAG-EXTENDER:CAPS" title="HB_MATH_GLYPH_PART_FLAG_EXTENDER">HB_MATH_GLYPH_PART_FLAG_EXTENDER</a>, macro in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="harfbuzz-hb-blob.html#hb-memory-mode-t" title="enum hb_memory_mode_t">hb_memory_mode_t</a>, enum in <a class="link" href="harfbuzz-hb-blob.html" title="hb-blob">hb-blob</a>
</dt>
<dd></dd>
@@ -1279,6 +1567,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-baseline-tag-t" title="enum hb_ot_layout_baseline_tag_t">hb_ot_layout_baseline_tag_t</a>, enum in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-collect-features" title="hb_ot_layout_collect_features ()">hb_ot_layout_collect_features</a>, function in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
</dt>
<dd></dd>
@@ -1311,6 +1603,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-get-baseline" title="hb_ot_layout_get_baseline ()">hb_ot_layout_get_baseline</a>, function in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-get-glyphs-in-class" title="hb_ot_layout_get_glyphs_in_class ()">hb_ot_layout_get_glyphs_in_class</a>, function in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
</dt>
<dd></dd>
@@ -1463,11 +1759,11 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t" title="hb_ot_math_glyph_part_t">hb_ot_math_glyph_part_t</a>, struct in <a class="link" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">hb-ot-math</a>
+<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t-struct" title="hb_ot_math_glyph_part_t">hb_ot_math_glyph_part_t</a>, struct in <a class="link" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">hb-ot-math</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t" title="hb_ot_math_glyph_variant_t">hb_ot_math_glyph_variant_t</a>, struct in <a class="link" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">hb-ot-math</a>
+<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t-struct" title="hb_ot_math_glyph_variant_t">hb_ot_math_glyph_variant_t</a>, struct in <a class="link" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">hb-ot-math</a>
</dt>
<dd></dd>
<dt>
@@ -1495,6 +1791,38 @@
</dt>
<dd></dd>
<dt>
+hb_ot_meta_get_entry_tags, function in hb-ot-meta
+</dt>
+<dd></dd>
+<dt>
+hb_ot_meta_reference_entry, function in hb-ot-meta
+</dt>
+<dd></dd>
+<dt>
+hb_ot_meta_tag_t, enum in hb-ot-meta
+</dt>
+<dd></dd>
+<dt>
+hb_ot_metrics_get_position, function in hb-ot-metrics
+</dt>
+<dd></dd>
+<dt>
+hb_ot_metrics_get_variation, function in hb-ot-metrics
+</dt>
+<dd></dd>
+<dt>
+hb_ot_metrics_get_x_variation, function in hb-ot-metrics
+</dt>
+<dd></dd>
+<dt>
+hb_ot_metrics_get_y_variation, function in hb-ot-metrics
+</dt>
+<dd></dd>
+<dt>
+hb_ot_metrics_tag_t, enum in hb-ot-metrics
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-get-utf16" title="hb_ot_name_get_utf16 ()">hb_ot_name_get_utf16</a>, function in <a class="link" href="harfbuzz-hb-ot-name.html" title="hb-ot-name">hb-ot-name</a>
</dt>
<dd></dd>
@@ -1686,7 +2014,7 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t">hb_segment_properties_t</a>, struct in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
+<a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t-struct" title="hb_segment_properties_t">hb_segment_properties_t</a>, struct in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
</dt>
<dd></dd>
<dt>
@@ -1798,7 +2126,7 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t">hb_set_t</a>, typedef in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
+<a class="link" href="harfbuzz-hb-set.html#hb-set-t">hb_set_t</a>, typedef in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
</dt>
<dd></dd>
<dt>
@@ -1866,7 +2194,7 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t">hb_shape_plan_t</a>, typedef in <a class="link" href="harfbuzz-hb-shape-plan.html" title="hb-shape-plan">hb-shape-plan</a>
+<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t">hb_shape_plan_t</a>, typedef in <a class="link" href="harfbuzz-hb-shape-plan.html" title="hb-shape-plan">hb-shape-plan</a>
</dt>
<dd></dd>
<a name="idxT"></a><h3 class="title">T</h3>
@@ -1992,7 +2320,7 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t">hb_unicode_funcs_t</a>, typedef in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
+<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t">hb_unicode_funcs_t</a>, typedef in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
</dt>
<dd></dd>
<dt>
@@ -2044,7 +2372,7 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t">hb_user_data_key_t</a>, struct in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
+<a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t-struct" title="hb_user_data_key_t">hb_user_data_key_t</a>, struct in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
</dt>
<dd></dd>
<a name="idxV"></a><h3 class="title">V</h3>
diff --git a/docs/html/buffers-language-script-and-direction.html b/docs/html/buffers-language-script-and-direction.html
index 57f2f59..2f0aca5 100644
--- a/docs/html/buffers-language-script-and-direction.html
+++ b/docs/html/buffers-language-script-and-direction.html
@@ -6,7 +6,7 @@
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="pt01.html" title="Part I. User's manual">
-<link rel="prev" href="aat-shaping.html" title="AAT shaping">
+<link rel="prev" href="object-model-blobs.html" title="Blobs">
<link rel="next" href="adding-text-to-the-buffer.html" title="Adding text to the buffer">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
@@ -16,7 +16,7 @@
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="pt01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="aat-shaping.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="object-model-blobs.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="adding-text-to-the-buffer.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
@@ -26,14 +26,21 @@
<dt><span class="section"><a href="buffers-language-script-and-direction.html#creating-and-destroying-buffers">Creating and destroying buffers</a></span></dt>
<dt><span class="section"><a href="adding-text-to-the-buffer.html">Adding text to the buffer</a></span></dt>
<dt><span class="section"><a href="setting-buffer-properties.html">Setting buffer properties</a></span></dt>
-<dt><span class="section"><a href="what-about-the-other-scripts.html">What about the other scripts?</a></span></dt>
<dt><span class="section"><a href="customizing-unicode-functions.html">Customizing Unicode functions</a></span></dt>
</dl></div>
<p>
- The input to HarfBuzz is a series of Unicode characters, stored in a
+ The input to the HarfBuzz shaper is a series of Unicode characters, stored in a
buffer. In this chapter, we'll look at how to set up a buffer with
- the text that we want and then customize the properties of the
- buffer.
+ the text that we want and how to customize the properties of the
+ buffer. We'll also look at a piece of lower-level machinery that
+ you will need to understand before proceeding: the functions that
+ HarfBuzz uses to retrieve Unicode information.
+ </p>
+<p>
+ After shaping is complete, HarfBuzz puts its output back
+ into the buffer. But getting that output requires setting up a
+ face and a font first, so we will look at that in the next chapter
+ instead of here.
</p>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -41,20 +48,20 @@
<p>
As we saw in our <span class="emphasis"><em>Getting Started</em></span> example, a
buffer is created and
- initialized with <code class="literal">hb_buffer_create()</code>. This
+ initialized with <code class="function">hb_buffer_create()</code>. This
produces a new, empty buffer object, instantiated with some
default values and ready to accept your Unicode strings.
</p>
<p>
HarfBuzz manages the memory of objects (such as buffers) that it
creates, so you don't have to. When you have finished working on
- a buffer, you can call <code class="literal">hb_buffer_destroy()</code>:
+ a buffer, you can call <code class="function">hb_buffer_destroy()</code>:
</p>
<pre class="programlisting">
- hb_buffer_t *buffer = hb_buffer_create();
- ...
- hb_buffer_destroy(buffer);
-</pre>
+ hb_buffer_t *buf = hb_buffer_create();
+ ...
+ hb_buffer_destroy(buf);
+ </pre>
<p>
This will destroy the object and free its associated memory -
unless some other part of the program holds a reference to this
@@ -63,22 +70,27 @@
else destroying it, you should increase its reference count:
</p>
<pre class="programlisting">
-void somefunc(hb_buffer_t *buffer) {
- buffer = hb_buffer_reference(buffer);
- ...
-</pre>
+ void somefunc(hb_buffer_t *buf) {
+ buf = hb_buffer_reference(buf);
+ ...
+ </pre>
<p>
And then decrease it once you're done with it:
</p>
<pre class="programlisting">
- hb_buffer_destroy(buffer);
-}
-</pre>
+ hb_buffer_destroy(buf);
+ }
+ </pre>
+<p>
+ While we are on the subject of reference-counting buffers, it is
+ worth noting that an individual buffer can only meaningfully be
+ used by one thread at a time.
+ </p>
<p>
To throw away all the data in your buffer and start from scratch,
- call <code class="literal">hb_buffer_reset(buffer)</code>. If you want to
+ call <code class="function">hb_buffer_reset(buf)</code>. If you want to
throw away the string in the buffer but keep the options, you can
- instead call <code class="literal">hb_buffer_clear_contents(buffer)</code>.
+ instead call <code class="function">hb_buffer_clear_contents(buf)</code>.
</p>
</div>
</div>
diff --git a/docs/html/building.html b/docs/html/building.html
index 7b158ae..8870342 100644
--- a/docs/html/building.html
+++ b/docs/html/building.html
@@ -322,23 +322,6 @@
</td>
</tr>
<tr>
-<td><p><span class="term"><span class="command"><strong>--with-ucdn</strong></span></span></p></td>
-<td>
-<p>
- Use HarfBuzz's <a class="ulink" href="https://github.com/harfbuzz/harfbuzz/tree/master/src/hb-ucdn" target="_top">built-in UCDN library</a>. <span class="emphasis"><em>(Default = auto)</em></span>
- </p>
-<p>
- The HarfBuzz source tree includes a <span class="emphasis"><em>Unicode
- Database and Normalization</em></span> (UCDN) library
- that provides access to basic character properties in
- the Unicode Character Database (UCD) as well as low-level
- normalization functions. HarfBuzz can be built without
- this UCDN support if the usage of a different UCDN
- library is desired.
- </p>
-</td>
-</tr>
-<tr>
<td><p><span class="term"><span class="command"><strong>--with-graphite2</strong></span></span></p></td>
<td>
<p>
diff --git a/docs/html/ch09.html b/docs/html/ch09.html
deleted file mode 100644
index c6cac7b..0000000
--- a/docs/html/ch09.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Core API: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="pt02.html" title="Part II. Reference manual">
-<link rel="next" href="harfbuzz-hb-blob.html" title="hb-blob">
-<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="pt02.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="harfbuzz-hb-blob.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="chapter">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="id-1.3.4"></a>Core API</h2></div></div></div>
-<div class="toc"><dl class="toc">
-<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-blob.html">hb-blob</a></span><span class="refpurpose"> — Binary data containers</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-buffer.html">hb-buffer</a></span><span class="refpurpose"> — Input and output buffers</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-common.html">hb-common</a></span><span class="refpurpose"> — Common data types</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-deprecated.html">hb-deprecated</a></span><span class="refpurpose"> — Deprecated API</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-face.html">hb-face</a></span><span class="refpurpose"> — Font face objects</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-font.html">hb-font</a></span><span class="refpurpose"> — Font objects</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-map.html">hb-map</a></span><span class="refpurpose"> — Object representing integer to integer mapping</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-set.html">hb-set</a></span><span class="refpurpose"> — Object representing a set of integers</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-shape-plan.html">hb-shape-plan</a></span><span class="refpurpose"> — Object representing a shaping plan</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-shape.html">hb-shape</a></span><span class="refpurpose"> — Conversion of text strings into positioned glyphs</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-unicode.html">hb-unicode</a></span><span class="refpurpose"> — Unicode character property access</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-version.html">hb-version</a></span><span class="refpurpose"> — Information about the version of HarfBuzz in use</span>
-</dt>
-</dl></div>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.29</div>
-</body>
-</html> \ No newline at end of file
diff --git a/docs/html/ch10.html b/docs/html/ch10.html
deleted file mode 100644
index 7c615c1..0000000
--- a/docs/html/ch10.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>OpenType API: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="harfbuzz-hb-version.html" title="hb-version">
-<link rel="next" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">
-<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="harfbuzz-hb-version.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="harfbuzz-hb-ot-color.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="chapter">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="id-1.3.5"></a>OpenType API</h2></div></div></div>
-<div class="toc"><dl class="toc">
-<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-ot-color.html">hb-ot-color</a></span><span class="refpurpose"> — OpenType Color Fonts</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-ot-font.html">hb-ot-font</a></span><span class="refpurpose"> — OpenType font implementation</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-ot-layout.html">hb-ot-layout</a></span><span class="refpurpose"> — OpenType Layout</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-ot-math.html">hb-ot-math</a></span><span class="refpurpose"> — OpenType Math information</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-ot-name.html">hb-ot-name</a></span><span class="refpurpose"> — OpenType font name information</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-ot-shape.html">hb-ot-shape</a></span><span class="refpurpose"> — OpenType shaping support</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-ot-var.html">hb-ot-var</a></span><span class="refpurpose"> — OpenType Font Variations</span>
-</dt>
-</dl></div>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.29</div>
-</body>
-</html> \ No newline at end of file
diff --git a/docs/html/ch11.html b/docs/html/ch11.html
index 4081a6d..c6cac7b 100644
--- a/docs/html/ch11.html
+++ b/docs/html/ch11.html
@@ -2,12 +2,12 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Apple Advanced Typography API: HarfBuzz Manual</title>
+<title>Core API: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="harfbuzz-hb-ot-var.html" title="hb-ot-var">
-<link rel="next" href="harfbuzz-hb-aat-layout.html" title="hb-aat-layout">
+<link rel="prev" href="pt02.html" title="Part II. Reference manual">
+<link rel="next" href="harfbuzz-hb-blob.html" title="hb-blob">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
@@ -16,15 +16,50 @@
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="harfbuzz-hb-ot-var.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="harfbuzz-hb-aat-layout.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="pt02.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="harfbuzz-hb-blob.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
-<a name="id-1.3.6"></a>Apple Advanced Typography API</h2></div></div></div>
-<div class="toc"><dl class="toc"><dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-aat-layout.html">hb-aat-layout</a></span><span class="refpurpose"> — Apple Advanced Typography Layout</span>
-</dt></dl></div>
+<a name="id-1.3.4"></a>Core API</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt>
+<span class="refentrytitle"><a href="harfbuzz-hb-blob.html">hb-blob</a></span><span class="refpurpose"> — Binary data containers</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="harfbuzz-hb-buffer.html">hb-buffer</a></span><span class="refpurpose"> — Input and output buffers</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="harfbuzz-hb-common.html">hb-common</a></span><span class="refpurpose"> — Common data types</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="harfbuzz-hb-deprecated.html">hb-deprecated</a></span><span class="refpurpose"> — Deprecated API</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="harfbuzz-hb-face.html">hb-face</a></span><span class="refpurpose"> — Font face objects</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="harfbuzz-hb-font.html">hb-font</a></span><span class="refpurpose"> — Font objects</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="harfbuzz-hb-map.html">hb-map</a></span><span class="refpurpose"> — Object representing integer to integer mapping</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="harfbuzz-hb-set.html">hb-set</a></span><span class="refpurpose"> — Object representing a set of integers</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="harfbuzz-hb-shape-plan.html">hb-shape-plan</a></span><span class="refpurpose"> — Object representing a shaping plan</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="harfbuzz-hb-shape.html">hb-shape</a></span><span class="refpurpose"> — Conversion of text strings into positioned glyphs</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="harfbuzz-hb-unicode.html">hb-unicode</a></span><span class="refpurpose"> — Unicode character property access</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="harfbuzz-hb-version.html">hb-version</a></span><span class="refpurpose"> — Information about the version of HarfBuzz in use</span>
+</dt>
+</dl></div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.29</div>
diff --git a/docs/html/ch12.html b/docs/html/ch12.html
index b504c84..7c615c1 100644
--- a/docs/html/ch12.html
+++ b/docs/html/ch12.html
@@ -2,12 +2,12 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Integration API: HarfBuzz Manual</title>
+<title>OpenType API: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="harfbuzz-hb-aat-layout.html" title="hb-aat-layout">
-<link rel="next" href="harfbuzz-hb-coretext.html" title="hb-coretext">
+<link rel="prev" href="harfbuzz-hb-version.html" title="hb-version">
+<link rel="next" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
@@ -16,33 +16,33 @@
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="harfbuzz-hb-aat-layout.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="harfbuzz-hb-coretext.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="harfbuzz-hb-version.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="harfbuzz-hb-ot-color.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
-<a name="id-1.3.7"></a>Integration API</h2></div></div></div>
+<a name="id-1.3.5"></a>OpenType API</h2></div></div></div>
<div class="toc"><dl class="toc">
<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-coretext.html">hb-coretext</a></span><span class="refpurpose"> — CoreText integration</span>
+<span class="refentrytitle"><a href="harfbuzz-hb-ot-color.html">hb-ot-color</a></span><span class="refpurpose"> — OpenType Color Fonts</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-ft.html">hb-ft</a></span><span class="refpurpose"> — FreeType integration</span>
+<span class="refentrytitle"><a href="harfbuzz-hb-ot-font.html">hb-ot-font</a></span><span class="refpurpose"> — OpenType font implementation</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-glib.html">hb-glib</a></span><span class="refpurpose"> — GLib integration</span>
+<span class="refentrytitle"><a href="harfbuzz-hb-ot-layout.html">hb-ot-layout</a></span><span class="refpurpose"> — OpenType Layout</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-gobject.html">hb-gobject</a></span><span class="refpurpose"> — GObject integration</span>
+<span class="refentrytitle"><a href="harfbuzz-hb-ot-math.html">hb-ot-math</a></span><span class="refpurpose"> — OpenType Math information</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-graphite2.html">hb-graphite2</a></span><span class="refpurpose"> — Graphite2 integration</span>
+<span class="refentrytitle"><a href="harfbuzz-hb-ot-name.html">hb-ot-name</a></span><span class="refpurpose"> — OpenType font name information</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-icu.html">hb-icu</a></span><span class="refpurpose"> — ICU integration</span>
+<span class="refentrytitle"><a href="harfbuzz-hb-ot-shape.html">hb-ot-shape</a></span><span class="refpurpose"> — OpenType shaping support</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="harfbuzz-hb-uniscribe.html">hb-uniscribe</a></span><span class="refpurpose"> — Windows integration</span>
+<span class="refentrytitle"><a href="harfbuzz-hb-ot-var.html">hb-ot-var</a></span><span class="refpurpose"> — OpenType Font Variations</span>
</dt>
</dl></div>
</div>
diff --git a/docs/html/ch13.html b/docs/html/ch13.html
new file mode 100644
index 0000000..4081a6d
--- /dev/null
+++ b/docs/html/ch13.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Apple Advanced Typography API: HarfBuzz Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="HarfBuzz Manual">
+<link rel="up" href="pt02.html" title="Part II. Reference manual">
+<link rel="prev" href="harfbuzz-hb-ot-var.html" title="hb-ot-var">
+<link rel="next" href="harfbuzz-hb-aat-layout.html" title="hb-aat-layout">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="harfbuzz-hb-ot-var.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="harfbuzz-hb-aat-layout.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="id-1.3.6"></a>Apple Advanced Typography API</h2></div></div></div>
+<div class="toc"><dl class="toc"><dt>
+<span class="refentrytitle"><a href="harfbuzz-hb-aat-layout.html">hb-aat-layout</a></span><span class="refpurpose"> — Apple Advanced Typography Layout</span>
+</dt></dl></div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.29</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/html/ch14.html b/docs/html/ch14.html
new file mode 100644
index 0000000..b504c84
--- /dev/null
+++ b/docs/html/ch14.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Integration API: HarfBuzz Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="HarfBuzz Manual">
+<link rel="up" href="pt02.html" title="Part II. Reference manual">
+<link rel="prev" href="harfbuzz-hb-aat-layout.html" title="hb-aat-layout">
+<link rel="next" href="harfbuzz-hb-coretext.html" title="hb-coretext">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="harfbuzz-hb-aat-layout.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="harfbuzz-hb-coretext.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="id-1.3.7"></a>Integration API</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt>
+<span class="refentrytitle"><a href="harfbuzz-hb-coretext.html">hb-coretext</a></span><span class="refpurpose"> — CoreText integration</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="harfbuzz-hb-ft.html">hb-ft</a></span><span class="refpurpose"> — FreeType integration</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="harfbuzz-hb-glib.html">hb-glib</a></span><span class="refpurpose"> — GLib integration</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="harfbuzz-hb-gobject.html">hb-gobject</a></span><span class="refpurpose"> — GObject integration</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="harfbuzz-hb-graphite2.html">hb-graphite2</a></span><span class="refpurpose"> — Graphite2 integration</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="harfbuzz-hb-icu.html">hb-icu</a></span><span class="refpurpose"> — ICU integration</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="harfbuzz-hb-uniscribe.html">hb-uniscribe</a></span><span class="refpurpose"> — Windows integration</span>
+</dt>
+</dl></div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.29</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/html/clusters.html b/docs/html/clusters.html
index 2d6c36d..d6f3d6a 100644
--- a/docs/html/clusters.html
+++ b/docs/html/clusters.html
@@ -6,7 +6,7 @@
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="pt01.html" title="Part I. User's manual">
-<link rel="prev" href="using-your-own-font-functions.html" title="Using your own font functions">
+<link rel="prev" href="shaping-plans-and-caching.html" title="Plans and caching">
<link rel="next" href="working-with-harfbuzz-clusters.html" title="Working with HarfBuzz clusters">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
@@ -16,7 +16,7 @@
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="pt01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="using-your-own-font-functions.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="shaping-plans-and-caching.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="working-with-harfbuzz-clusters.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
diff --git a/docs/html/customizing-unicode-functions.html b/docs/html/customizing-unicode-functions.html
index 5528b53..76b4645 100644
--- a/docs/html/customizing-unicode-functions.html
+++ b/docs/html/customizing-unicode-functions.html
@@ -6,8 +6,8 @@
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="buffers-language-script-and-direction.html" title="Buffers, language, script and direction">
-<link rel="prev" href="what-about-the-other-scripts.html" title="What about the other scripts?">
-<link rel="next" href="fonts-and-faces.html" title="Fonts and faces">
+<link rel="prev" href="setting-buffer-properties.html" title="Setting buffer properties">
+<link rel="next" href="fonts-and-faces.html" title="Fonts, faces, and output">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
@@ -16,13 +16,113 @@
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="buffers-language-script-and-direction.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="what-about-the-other-scripts.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="setting-buffer-properties.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="fonts-and-faces.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="customizing-unicode-functions"></a>Customizing Unicode functions</h2></div></div></div>
<p>
+ HarfBuzz requires some simple functions for accessing
+ information from the Unicode Character Database (such as the
+ <code class="literal">General_Category</code> (gc) and
+ <code class="literal">Script</code> (sc) properties) that is useful
+ for shaping, as well as some useful operations like composing and
+ decomposing code points.
+ </p>
+<p>
+ HarfBuzz includes its own internal, lightweight set of Unicode
+ functions. At build time, it is also possible to compile support
+ for some other options, such as the Unicode functions provided
+ by GLib or the International Components for Unicode (ICU)
+ library. Generally, this option is only of interest for client
+ programs that have specific integration requirements or that do
+ a significant amount of customization.
+ </p>
+<p>
+ If your program has access to other Unicode functions, however,
+ such as through a system library or application framework, you
+ might prefer to use those instead of the built-in
+ options. HarfBuzz supports this by implementing its Unicode
+ functions as a set of virtual methods that you can replace —
+ without otherwise affecting HarfBuzz's functionality.
+ </p>
+<p>
+ The Unicode functions are specified in a structure called
+ <code class="literal">unicode_funcs</code> which is attached to each
+ buffer. But even though <code class="literal">unicode_funcs</code> is
+ associated with a <span class="type">hb_buffer_t</span>, the functions
+ themselves are called by other HarfBuzz APIs that access
+ buffers, so it would be unwise for you to hook different
+ functions into different buffers.
+ </p>
+<p>
+ In addition, you can mark your <code class="literal">unicode_funcs</code>
+ as immutable by calling
+ <code class="function">hb_unicode_funcs_make_immutable (ufuncs)</code>.
+ This is especially useful if your code is a
+ library or framework that will have its own client programs. By
+ marking your Unicode function choices as immutable, you prevent
+ your own client programs from changing the
+ <code class="literal">unicode_funcs</code> configuration and introducing
+ inconsistencies and errors downstream.
+ </p>
+<p>
+ You can retrieve the Unicode-functions configuration for
+ your buffer by calling <code class="function">hb_buffer_get_unicode_funcs()</code>:
+ </p>
+<pre class="programlisting">
+ hb_unicode_funcs_t *ufunctions;
+ ufunctions = hb_buffer_get_unicode_funcs(buf);
+ </pre>
+<p>
+ The current version of <code class="literal">unicode_funcs</code> uses six functions:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+ <code class="function">hb_unicode_combining_class_func_t</code>:
+ returns the Canonical Combining Class of a code point.
+ </p></li>
+<li class="listitem"><p>
+ <code class="function">hb_unicode_general_category_func_t</code>:
+ returns the General Category (gc) of a code point.
+ </p></li>
+<li class="listitem"><p>
+ <code class="function">hb_unicode_mirroring_func_t</code>: returns
+ the Mirroring Glyph code point (for bi-directional
+ replacement) of a code point.
+ </p></li>
+<li class="listitem"><p>
+ <code class="function">hb_unicode_script_func_t</code>: returns the
+ Script (sc) property of a code point.
+ </p></li>
+<li class="listitem"><p>
+ <code class="function">hb_unicode_compose_func_t</code>: returns the
+ canonical composition of a sequence of two code points.
+ </p></li>
+<li class="listitem"><p>
+ <code class="function">hb_unicode_decompose_func_t</code>: returns
+ the canonical decomposition of a code point.
+ </p></li>
+</ul></div>
+<p>
+ Note, however, that future HarfBuzz releases may alter this set.
+ </p>
+<p>
+ Each Unicode function has a corresponding setter, with which you
+ can assign a callback to your replacement function. For example,
+ to replace
+ <code class="function">hb_unicode_general_category_func_t</code>, you can call
+ </p>
+<pre class="programlisting">
+ hb_unicode_funcs_set_general_category_func (*ufuncs, func, *user_data, destroy)
+ </pre>
+<p>
+ Virtualizing this set of Unicode functions is primarily intended
+ to improve portability. There is no need for every client
+ program to make the effort to replace the default options, so if
+ you are unsure, do not feel any pressure to customize
+ <code class="literal">unicode_funcs</code>.
</p>
</div>
<div class="footer">
diff --git a/docs/html/fonts-and-faces-custom-functions.html b/docs/html/fonts-and-faces-custom-functions.html
new file mode 100644
index 0000000..80221f2
--- /dev/null
+++ b/docs/html/fonts-and-faces-custom-functions.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Customizing font functions: HarfBuzz Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="HarfBuzz Manual">
+<link rel="up" href="fonts-and-faces.html" title="Fonts, faces, and output">
+<link rel="prev" href="fonts-and-faces.html" title="Fonts, faces, and output">
+<link rel="next" href="fonts-and-faces-native-opentype.html" title="Font objects and HarfBuzz's native OpenType implementation">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="fonts-and-faces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="fonts-and-faces.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="fonts-and-faces-native-opentype.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="fonts-and-faces-custom-functions"></a>Customizing font functions</h2></div></div></div>
+<p>
+ During shaping, HarfBuzz frequently needs to query font objects
+ to get at the contents and parameters of the glyphs in a font
+ file. It includes a built-in set of functions that is tailored
+ to working with OpenType fonts. However, as was the case with
+ Unicode functions in the buffers chapter, HarfBuzz also wants to
+ make it easy for you to assign a substitute set of font
+ functions if you are developing a program to work with a library
+ or platform that provides its own font functions.
+ </p>
+<p>
+ Therefore, the HarfBuzz API defines a set of virtual
+ methods for accessing font-object properties, and you can
+ replace the defaults with your own selections without
+ interfering with the shaping process. Each font object in
+ HarfBuzz includes a structure called
+ <code class="literal">font_funcs</code> that serves as a vtable for the
+ font object. The virtual methods in
+ <code class="literal">font_funcs</code> are:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+ <code class="function">hb_font_get_font_h_extents_func_t</code>: returns
+ the extents of the font for horizontal text.
+ </p></li>
+<li class="listitem"><p>
+ <code class="function">hb_font_get_font_v_extents_func_t</code>: returns
+ the extents of the font for vertical text.
+ </p></li>
+<li class="listitem"><p>
+ <code class="function">hb_font_get_nominal_glyph_func_t</code>: returns
+ the font's nominal glyph for a given code point.
+ </p></li>
+<li class="listitem"><p>
+ <code class="function">hb_font_get_variation_glyph_func_t</code>: returns
+ the font's glyph for a given code point when it is followed by a
+ given Variation Selector.
+ </p></li>
+<li class="listitem"><p>
+ <code class="function">hb_font_get_nominal_glyphs_func_t</code>: returns
+ the font's nominal glyphs for a series of code points.
+ </p></li>
+<li class="listitem"><p>
+ <code class="function">hb_font_get_glyph_advance_func_t</code>: returns
+ the advance for a glyph.
+ </p></li>
+<li class="listitem"><p>
+ <code class="function">hb_font_get_glyph_h_advance_func_t</code>: returns
+ the advance for a glyph for horizontal text.
+ </p></li>
+<li class="listitem"><p>
+ <code class="function">hb_font_get_glyph_v_advance_func_t</code>:returns
+ the advance for a glyph for vertical text.
+ </p></li>
+<li class="listitem"><p>
+ <code class="function">hb_font_get_glyph_advances_func_t</code>: returns
+ the advances for a series of glyphs.
+ </p></li>
+<li class="listitem"><p>
+ <code class="function">hb_font_get_glyph_h_advances_func_t</code>: returns
+ the advances for a series of glyphs for horizontal text .
+ </p></li>
+<li class="listitem"><p>
+ <code class="function">hb_font_get_glyph_v_advances_func_t</code>: returns
+ the advances for a series of glyphs for vertical text.
+ </p></li>
+<li class="listitem"><p>
+ <code class="function">hb_font_get_glyph_origin_func_t</code>: returns
+ the origin coordinates of a glyph.
+ </p></li>
+<li class="listitem"><p>
+ <code class="function">hb_font_get_glyph_h_origin_func_t</code>: returns
+ the origin coordinates of a glyph for horizontal text.
+ </p></li>
+<li class="listitem"><p>
+ <code class="function">hb_font_get_glyph_v_origin_func_t</code>: returns
+ the origin coordinates of a glyph for vertical text.
+ </p></li>
+<li class="listitem"><p>
+ <code class="function">hb_font_get_glyph_extents_func_t</code>: returns
+ the extents for a glyph.
+ </p></li>
+<li class="listitem"><p>
+ <code class="function">hb_font_get_glyph_contour_point_func_t</code>:
+ returns the coordinates of a specific contour point from a glyph.
+ </p></li>
+<li class="listitem"><p>
+ <code class="function">hb_font_get_glyph_name_func_t</code>: returns the
+ name of a glyph (from its glyph index).
+ </p></li>
+<li class="listitem"><p>
+ <code class="function">hb_font_get_glyph_from_name_func_t</code>: returns
+ the glyph index that corresponds to a given glyph name.
+ </p></li>
+</ul></div>
+<p>
+ You can fetch the font-functions configuration for a font object
+ by calling <code class="function">hb_font_get_font_funcs()</code>:
+ </p>
+<pre class="programlisting">
+ hb_font_funcs_t *ffunctions;
+ ffunctions = hb_font_get_font_funcs (font);
+ </pre>
+<p>
+ The individual methods can each be replaced with their own setter
+ function, such as
+ <code class="function">hb_font_funcs_set_nominal_glyph_func(*ffunctions,
+ func, *user_data, destroy)</code>.
+ </p>
+<p>
+ Font-functions structures can be reused for multiple font
+ objects, and can be reference counted with
+ <code class="function">hb_font_funcs_reference()</code> and
+ <code class="function">hb_font_funcs_destroy()</code>. Just like other
+ objects in HarfBuzz, you can set user-data for each
+ font-functions structure and assign a destroy callback for
+ it.
+ </p>
+<p>
+ You can also mark a font-functions structure as immutable,
+ with <code class="function">hb_font_funcs_make_immutable()</code>. This
+ is especially useful if your code is a library or framework that
+ will have its own client programs. By marking your
+ font-functions structures as immutable, you prevent your client
+ programs from changing the configuration and introducing
+ inconsistencies and errors downstream.
+ </p>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.29</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/html/fonts-and-faces-native-opentype.html b/docs/html/fonts-and-faces-native-opentype.html
new file mode 100644
index 0000000..48daf19
--- /dev/null
+++ b/docs/html/fonts-and-faces-native-opentype.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Font objects and HarfBuzz's native OpenType implementation: HarfBuzz Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="HarfBuzz Manual">
+<link rel="up" href="fonts-and-faces.html" title="Fonts, faces, and output">
+<link rel="prev" href="fonts-and-faces-custom-functions.html" title="Customizing font functions">
+<link rel="next" href="fonts-and-faces-variable.html" title="Working with OpenType Variable Fonts">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="fonts-and-faces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="fonts-and-faces-custom-functions.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="fonts-and-faces-variable.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="fonts-and-faces-native-opentype"></a>Font objects and HarfBuzz's native OpenType implementation</h2></div></div></div>
+<p>
+ By default, whenever HarfBuzz creates a font object, it will
+ configure the font to use a built-in set of font functions that
+ supports contemporary OpenType font internals. If you want to
+ work with OpenType or TrueType fonts, you should be able to use
+ these functions without difficulty.
+ </p>
+<p>
+ Many of the methods in the font-functions structure deal with
+ the fundamental properties of glyphs that are required for
+ shaping text: extents (the maximums and minimums on each axis),
+ origins (the <code class="literal">(0,0)</code> coordinate point which
+ glyphs are drawn in reference to), and advances (the amount that
+ the cursor needs to be moved after drawing each glyph, including
+ any empty space for the glyph's side bearings).
+ </p>
+<p>
+ As you can see in the list of functions, there are separate "horizontal"
+ and "vertical" variants depending on whether the text is set in
+ the horizontal or vertical direction. For some scripts, fonts
+ that are designed to support text set horizontally or vertically (for
+ example, in Japanese) may include metrics for both text
+ directions. When fonts don't include this information, HarfBuzz
+ does its best to transform what the font provides.
+ </p>
+<p>
+ In addition to the direction-specific functions, HarfBuzz
+ provides some higher-level functions for fetching information
+ like extents and advances for a glyph. If you call
+ </p>
+<pre class="programlisting">
+ hb_font_get_glyph_advance_for_direction(font, direction, extents);
+ </pre>
+<p>
+ then you can provide any <span class="type">hb_direction_t</span> as the
+ <em class="parameter"><code>direction</code></em> parameter, and HarfBuzz will
+ use the correct function variant for the text direction. There
+ are similar higher-level versions of the functions for fetching
+ extents, origin coordinates, and contour-point
+ coordinates. There are also addition and subtraction functions
+ for moving points with respect to the origin.
+ </p>
+<p>
+ There are also methods for fetching the glyph ID that
+ corresponds to a Unicode code point (possibly when followed by a
+ variation-selector code point), fetching the glyph name from the
+ font, and fetching the glyph ID that corresponds to a glyph name
+ you already have.
+ </p>
+<p>
+ HarfBuzz also provides functions for converting between glyph
+ names and string
+ variables. <code class="function">hb_font_glyph_to_string(font, glyph, s,
+ size)</code> retrieves the name for the glyph ID
+ <em class="parameter"><code>glyph</code></em> from the font object. It generates a
+ generic name of the form <code class="literal">gidDDD</code> (where DDD is
+ the glyph index) if there is no name for the glyph in the
+ font. The <code class="function">hb_font_glyph_from_string(font, s, len,
+ glyph)</code> takes an input string <em class="parameter"><code>s</code></em>
+ and looks for a glyph with that name in the font, returning its
+ glyph ID in the <em class="parameter"><code>glyph</code></em>
+ output parameter. It automatically parses
+ <code class="literal">gidDDD</code> and <code class="literal">uniUUUU</code> strings.
+ </p>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.29</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/html/fonts-and-faces-variable.html b/docs/html/fonts-and-faces-variable.html
new file mode 100644
index 0000000..b0a1f39
--- /dev/null
+++ b/docs/html/fonts-and-faces-variable.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Working with OpenType Variable Fonts: HarfBuzz Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="HarfBuzz Manual">
+<link rel="up" href="fonts-and-faces.html" title="Fonts, faces, and output">
+<link rel="prev" href="fonts-and-faces-native-opentype.html" title="Font objects and HarfBuzz's native OpenType implementation">
+<link rel="next" href="shaping-and-shape-plans.html" title="Shaping and shape plans">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="fonts-and-faces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="fonts-and-faces-native-opentype.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="shaping-and-shape-plans.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="fonts-and-faces-variable"></a>Working with OpenType Variable Fonts</h2></div></div></div>
+<p>
+ If you are working with OpenType Variable Fonts, there are a few
+ additional functions you should use to specify the
+ variation-axis settings of your font object. Without doing so,
+ your variable font's font object can still be used, but only at
+ the default setting for every axis (which, of course, is
+ sometimes what you want, but does not cover general usage).
+ </p>
+<p>
+ HarfBuzz manages variation settings in the
+ <span class="type">hb_variation_t</span> data type, which holds a <span class="property">tag</span> for the
+ variation-axis identifier tag and a <span class="property">value</span> for its
+ setting. You can retrieve the list of variation axes in a font
+ binary from the face object (not from a font object, notably) by
+ calling <code class="function">hb_ot_var_get_axis_count(face)</code> to
+ find the number of axes, then using
+ <code class="function">hb_ot_var_get_axis_infos()</code> to collect the
+ axis structures:
+ </p>
+<pre class="programlisting">
+ axes = hb_ot_var_get_axis_count(face);
+ ...
+ hb_ot_var_get_axis_infos(face, 0, axes, axes_array);
+ </pre>
+<p>
+ For each axis returned in the array, you can can access the
+ identifier in its <span class="property">tag</span>. HarfBuzz also has
+ tag definitions predefined for the five standard axes specified
+ in OpenType (<code class="literal">ital</code> for italic,
+ <code class="literal">opsz</code> for optical size,
+ <code class="literal">slnt</code> for slant, <code class="literal">wdth</code> for
+ width, and <code class="literal">wght</code> for weight). Each axis also
+ has a <span class="property">min_value</span>, a
+ <span class="property">default_value</span>, and a <span class="property">max_value</span>.
+ </p>
+<p>
+ To set your font object's variation settings, you call the
+ <code class="function">hb_font_set_variations()</code> function with an
+ array of <span class="type">hb_variation_t</span> variation settings. Let's
+ say our font has weight and width axes. We need to specify each
+ of the axes by tag and assign a value on the axis:
+ </p>
+<pre class="programlisting">
+ unsigned int variation_count = 2;
+ hb_variation_t variation_data[variation_count];
+ variation_data[0].tag = HB_OT_TAG_VAR_AXIS_WIDTH;
+ variation_data[1].tag = HB_OT_TAG_VAR_AXIS_WEIGHT;
+ variation_data[0].value = 80;
+ variation_data[1].value = 750;
+ ...
+ hb_font_set_variations(font, variation_data, variation_count);
+ </pre>
+<p>
+ That should give us a slightly condensed font ("normal" on the
+ <code class="literal">wdth</code> axis is 100) at a noticeably bolder
+ weight ("regular" is 400 on the <code class="literal">wght</code> axis).
+ </p>
+<p>
+ In practice, though, you should always check that the value you
+ want to set on the axis is within the
+ [<span class="property">min_value</span>,<span class="property">max_value</span>]
+ range actually implemented in the font's variation axis. After
+ all, a font might only provide lighter-than-regular weights, and
+ setting a heavier value on the <code class="literal">wght</code> axis will
+ not change that.
+ </p>
+<p>
+ Once your variation settings are specified on your font object,
+ however, shaping with a variable font is just like shaping a
+ static font.
+ </p>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.29</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/html/fonts-and-faces.html b/docs/html/fonts-and-faces.html
index b5b825f..97a1a7a 100644
--- a/docs/html/fonts-and-faces.html
+++ b/docs/html/fonts-and-faces.html
@@ -2,12 +2,12 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Fonts and faces: HarfBuzz Manual</title>
+<title>Fonts, faces, and output: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="pt01.html" title="Part I. User's manual">
<link rel="prev" href="customizing-unicode-functions.html" title="Customizing Unicode functions">
-<link rel="next" href="using-harfbuzzs-native-opentype-implementation.html" title="Using HarfBuzz's native OpenType implementation">
+<link rel="next" href="fonts-and-faces-custom-functions.html" title="Customizing font functions">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
@@ -17,20 +17,134 @@
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="pt01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="customizing-unicode-functions.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="using-harfbuzzs-native-opentype-implementation.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="fonts-and-faces-custom-functions.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
-<a name="fonts-and-faces"></a>Fonts and faces</h2></div></div></div>
+<a name="fonts-and-faces"></a>Fonts, faces, and output</h2></div></div></div>
<div class="toc"><dl class="toc">
-<dt><span class="section"><a href="fonts-and-faces.html#using-freetype">Using FreeType</a></span></dt>
-<dt><span class="section"><a href="using-harfbuzzs-native-opentype-implementation.html">Using HarfBuzz's native OpenType implementation</a></span></dt>
-<dt><span class="section"><a href="using-your-own-font-functions.html">Using your own font functions</a></span></dt>
+<dt><span class="section"><a href="fonts-and-faces.html#fonts-and-faces-objects">Font and face objects</a></span></dt>
+<dt><span class="section"><a href="fonts-and-faces-custom-functions.html">Customizing font functions</a></span></dt>
+<dt><span class="section"><a href="fonts-and-faces-native-opentype.html">Font objects and HarfBuzz's native OpenType implementation</a></span></dt>
+<dt><span class="section"><a href="fonts-and-faces-variable.html">Working with OpenType Variable Fonts</a></span></dt>
</dl></div>
+<p>
+ In the previous chapter, we saw how to set up a buffer and fill
+ it with text as Unicode code points. In order to shape this
+ buffer text with HarfBuzz, you will need also need a font
+ object.
+ </p>
+<p>
+ HarfBuzz provides abstractions to help you cache and reuse the
+ heavier parts of working with binary fonts, so we will look at
+ how to do that. We will also look at how to work with the
+ FreeType font-rendering library and at how you can customize
+ HarfBuzz to work with other libraries.
+ </p>
+<p>
+ Finally, we will look at how to work with OpenType variable
+ fonts, the latest update to the OpenType font format, and at
+ some other recent additions to OpenType.
+ </p>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="using-freetype"></a>Using FreeType</h2></div></div></div>
+<a name="fonts-and-faces-objects"></a>Font and face objects</h2></div></div></div>
+<p>
+ The outcome of shaping a run of text depends on the contents of
+ a specific font file (such as the substitutions and positioning
+ moves in the 'GSUB' and 'GPOS' tables), so HarfBuzz makes
+ accessing those internals fast.
+ </p>
+<p>
+ An <span class="type">hb_face_t</span> represents a <span class="emphasis"><em>face</em></span>
+ in HarfBuzz. This data type is a wrapper around an
+ <span class="type">hb_blob_t</span> blob that holds the contents of a binary
+ font file. Since HarfBuzz supports TrueType Collections and
+ OpenType Collections (each of which can include multiple
+ typefaces), a HarfBuzz face also requires an index number
+ specifying which typeface in the file you want to use. Most of
+ the font files you will encounter in the wild include just a
+ single face, however, so most of the time you would pass in
+ <code class="literal">0</code> as the index when you create a face:
+ </p>
+<pre class="programlisting">
+ hb_blob_t* blob = hb_blob_create_from_file(file);
+ ...
+ hb_face_t* face = hb_face_create(blob, 0);
+ </pre>
+<p>
+ On its own, a face object is not quite ready to use for
+ shaping. The typeface must be set to a specific point size in
+ order for some details (such as hinting) to work. In addition,
+ if the font file in question is an OpenType Variable Font, then
+ you may need to specify one or variation-axis settings (or a
+ named instance) in order to get the output you need.
+ </p>
+<p>
+ In HarfBuzz, you do this by creating a <span class="emphasis"><em>font</em></span>
+ object from your face.
+ </p>
+<p>
+ Font objects also have the advantage of being considerably
+ lighter-weight than face objects (remember that a face contains
+ the contents of a binary font file mapped into memory). As a
+ result, you can cache and reuse a font object, but you could
+ also create a new one for each additional size you needed.
+ Creating new fonts incurs some additional overhead, of course,
+ but whether or not it is excessive is your call in the end. In
+ contrast, face objects are substantially larger, and you really
+ should cache them and reuse them whenever possible.
+ </p>
+<p>
+ You can create a font object from a face object:
+ </p>
+<pre class="programlisting">
+ hb_font_t* hb_font = hb_font_create(hb_face);
+ </pre>
+<p>
+ After creating a font, there are a few properties you should
+ set. Many fonts enable and disable hints based on the size it
+ is used at, so setting this is important for font
+ objects. <code class="function">hb_font_set_ppem(font, x_ppem,
+ y_ppem)</code> sets the pixels-per-EM value of the font. You
+ can also set the point size of the font with
+ <code class="function">hb_font_set_ptem(font, ptem)</code>. HarfBuzz uses the
+ industry standard 72 points per inch.
+ </p>
+<p>
+ HarfBuzz lets you specify the degree subpixel precision you want
+ through a scaling factor. You can set horizontal and
+ vertical scaling factors on the
+ font by calling <code class="function">hb_font_set_scale(font, x_scale,
+ y_scale)</code>.
+ </p>
+<p>
+ There may be times when you are handed a font object and need to
+ access the face object that it comes from. For that, you can call
+ </p>
+<pre class="programlisting">
+ hb_face = hb_font_get_face(hb_font);
+ </pre>
+<p>
+ You can also create a font object from an existing font object
+ using the <code class="function">hb_font_create_sub_font()</code>
+ function. This creates a child font object that is initiated
+ with the same attributes as its parent; it can be used to
+ quickly set up a new font for the purpose of overriding a specific
+ font-functions method.
+ </p>
+<p>
+ All face objects and font objects are lifecycle-managed by
+ HarfBuzz. After creating a face, you increase its reference
+ count with <code class="function">hb_face_reference(face)</code> and
+ decrease it with
+ <code class="function">hb_face_destroy(face)</code>. Likewise, you
+ increase the reference count on a font with
+ <code class="function">hb_font_reference(font)</code> and decrease it
+ with <code class="function">hb_font_destroy(font)</code>.
+ </p>
<p>
+ You can also attach user data to face objects and font objects.
</p>
</div>
</div>
diff --git a/docs/html/harfbuzz-hb-aat-layout.html b/docs/html/harfbuzz-hb-aat-layout.html
index 55c8b1c..b2e3e01 100644
--- a/docs/html/harfbuzz-hb-aat-layout.html
+++ b/docs/html/harfbuzz-hb-aat-layout.html
@@ -5,9 +5,9 @@
<title>hb-aat-layout: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch11.html" title="Apple Advanced Typography API">
-<link rel="prev" href="ch11.html" title="Apple Advanced Typography API">
-<link rel="next" href="ch12.html" title="Integration API">
+<link rel="up" href="ch13.html" title="Apple Advanced Typography API">
+<link rel="prev" href="ch13.html" title="Apple Advanced Typography API">
+<link rel="next" href="ch14.html" title="Integration API">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
@@ -15,12 +15,13 @@
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
- <a href="#harfbuzz-hb-aat-layout.description" class="shortcut">Description</a></span>
+ <a href="#harfbuzz-hb-aat-layout.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+ <a href="#harfbuzz-hb-aat-layout.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch11.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="ch11.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="ch12.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="u" href="ch13.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="ch13.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="ch14.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="harfbuzz-hb-aat-layout"></a><div class="titlepage"></div>
@@ -112,6 +113,13 @@
</table></div>
</div>
<div class="refsect1">
+<a name="harfbuzz-hb-aat-layout.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GEnum</a>
+ <span class="lineart">├──</span> hb_aat_layout_feature_selector_t
+ <span class="lineart">╰──</span> hb_aat_layout_feature_type_t
+</pre>
+</div>
+<div class="refsect1">
<a name="harfbuzz-hb-aat-layout.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;hb-aat.h&gt;
</pre>
@@ -126,7 +134,7 @@
<a name="hb-aat-layout-feature-type-get-name-id"></a><h3>hb_aat_layout_feature_type_get_name_id ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="returnvalue">hb_ot_name_id_t</span></a>
hb_aat_layout_feature_type_get_name_id
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-aat-layout.html#hb-aat-layout-feature-type-t" title="enum hb_aat_layout_feature_type_t"><span class="type">hb_aat_layout_feature_type_t</span></a> feature_type</code></em>);</pre>
<div class="refsect3">
<a name="hb-aat-layout-feature-type-get-name-id.parameters"></a><h4>Parameters</h4>
@@ -161,7 +169,7 @@ hb_aat_layout_feature_type_get_name_id
<a name="hb-aat-layout-feature-type-get-selector-infos"></a><h3>hb_aat_layout_feature_type_get_selector_infos ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
hb_aat_layout_feature_type_get_selector_infos
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-aat-layout.html#hb-aat-layout-feature-type-t" title="enum hb_aat_layout_feature_type_t"><span class="type">hb_aat_layout_feature_type_t</span></a> feature_type</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *selector_count</code></em>,
@@ -172,7 +180,7 @@ hb_aat_layout_feature_type_get_selector_infos
<div class="refsect2">
<a name="hb-aat-layout-get-feature-types"></a><h3>hb_aat_layout_get_feature_types ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_aat_layout_get_feature_types (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_aat_layout_get_feature_types (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *feature_count</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-aat-layout.html#hb-aat-layout-feature-type-t" title="enum hb_aat_layout_feature_type_t"><span class="type">hb_aat_layout_feature_type_t</span></a> *features</code></em>);</pre>
@@ -218,19 +226,19 @@ hb_aat_layout_get_feature_types (<em class="parameter"><code><a class="link" hre
<div class="refsect2">
<a name="hb-aat-layout-has-positioning"></a><h3>hb_aat_layout_has_positioning ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_aat_layout_has_positioning (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_aat_layout_has_positioning (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-aat-layout-has-substitution"></a><h3>hb_aat_layout_has_substitution ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_aat_layout_has_substitution (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_aat_layout_has_substitution (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-aat-layout-has-tracking"></a><h3>hb_aat_layout_has_tracking ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_aat_layout_has_tracking (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_aat_layout_has_tracking (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
</div>
</div>
<div class="refsect1">
diff --git a/docs/html/harfbuzz-hb-blob.html b/docs/html/harfbuzz-hb-blob.html
index f6ff6e7..6a4cf42 100644
--- a/docs/html/harfbuzz-hb-blob.html
+++ b/docs/html/harfbuzz-hb-blob.html
@@ -5,8 +5,8 @@
<title>hb-blob: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch09.html" title="Core API">
-<link rel="prev" href="ch09.html" title="Core API">
+<link rel="up" href="ch11.html" title="Core API">
+<link rel="prev" href="ch11.html" title="Core API">
<link rel="next" href="harfbuzz-hb-buffer.html" title="hb-buffer">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
@@ -15,11 +15,12 @@
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
- <a href="#harfbuzz-hb-blob.description" class="shortcut">Description</a></span>
+ <a href="#harfbuzz-hb-blob.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+ <a href="#harfbuzz-hb-blob.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch09.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="ch09.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch11.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="ch11.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="harfbuzz-hb-buffer.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
@@ -41,7 +42,7 @@
<tbody>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-blob.html#hb-blob-create" title="hb_blob_create ()">hb_blob_create</a> <span class="c_punctuation">()</span>
@@ -49,7 +50,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-blob.html#hb-blob-create-from-file" title="hb_blob_create_from_file ()">hb_blob_create_from_file</a> <span class="c_punctuation">()</span>
@@ -57,7 +58,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-blob.html#hb-blob-create-sub-blob" title="hb_blob_create_sub_blob ()">hb_blob_create_sub_blob</a> <span class="c_punctuation">()</span>
@@ -65,7 +66,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-blob.html#hb-blob-copy-writable-or-fail" title="hb_blob_copy_writable_or_fail ()">hb_blob_copy_writable_or_fail</a> <span class="c_punctuation">()</span>
@@ -96,7 +97,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-blob.html#hb-blob-get-empty" title="hb_blob_get_empty ()">hb_blob_get_empty</a> <span class="c_punctuation">()</span>
@@ -135,7 +136,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-blob.html#hb-blob-reference" title="hb_blob_reference ()">hb_blob_reference</a> <span class="c_punctuation">()</span>
@@ -152,7 +153,7 @@
</tbody>
</table></div>
</div>
-<div class="refsect1">
+<a name="hb-blob-t"></a><div class="refsect1">
<a name="harfbuzz-hb-blob.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
@@ -162,7 +163,7 @@
<tbody>
<tr>
<td class="typedef_keyword">typedef</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t">hb_blob_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t">hb_blob_t</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
@@ -172,6 +173,14 @@
</table></div>
</div>
<div class="refsect1">
+<a name="harfbuzz-hb-blob.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
+ <span class="lineart">╰──</span> hb_blob_t
+ <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GEnum</a>
+ <span class="lineart">╰──</span> hb_memory_mode_t
+</pre>
+</div>
+<div class="refsect1">
<a name="harfbuzz-hb-blob.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;hb.h&gt;
</pre>
@@ -187,7 +196,7 @@ pass around other binary data.</p>
<a name="harfbuzz-hb-blob.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="hb-blob-create"></a><h3>hb_blob_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
hb_blob_create (<em class="parameter"><code>const <span class="type">char</span> *data</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> length</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-memory-mode-t" title="enum hb_memory_mode_t"><span class="type">hb_memory_mode_t</span></a> mode</code></em>,
@@ -251,7 +260,7 @@ zero. Destroy with <a class="link" href="harfbuzz-hb-blob.html#hb-blob-destroy"
<hr>
<div class="refsect2">
<a name="hb-blob-create-from-file"></a><h3>hb_blob_create_from_file ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
hb_blob_create_from_file (<em class="parameter"><code>const <span class="type">char</span> *file_name</code></em>);</pre>
<div class="refsect3">
<a name="hb-blob-create-from-file.parameters"></a><h4>Parameters</h4>
@@ -277,8 +286,8 @@ hb_blob_create_from_file (<em class="parameter"><code>const <span class="type">c
<hr>
<div class="refsect2">
<a name="hb-blob-create-sub-blob"></a><h3>hb_blob_create_sub_blob ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
-hb_blob_create_sub_blob (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *parent</code></em>,
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
+hb_blob_create_sub_blob (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *parent</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> length</code></em>);</pre>
<p>Returns a blob that represents a range of bytes in <em class="parameter"><code>parent</code></em>
@@ -331,8 +340,8 @@ with <a class="link" href="harfbuzz-hb-blob.html#hb-blob-destroy" title="hb_blob
<hr>
<div class="refsect2">
<a name="hb-blob-copy-writable-or-fail"></a><h3>hb_blob_copy_writable_or_fail ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
-hb_blob_copy_writable_or_fail (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
+hb_blob_copy_writable_or_fail (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
<p>Makes a writable copy of <em class="parameter"><code>blob</code></em>
.</p>
<div class="refsect3">
@@ -360,7 +369,7 @@ hb_blob_copy_writable_or_fail (<em class="parameter"><code><a class="link" href=
<div class="refsect2">
<a name="hb-blob-destroy"></a><h3>hb_blob_destroy ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_blob_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
+hb_blob_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
<p>Decreases the reference count on <em class="parameter"><code>blob</code></em>
, and if it reaches zero, destroys
<em class="parameter"><code>blob</code></em>
@@ -389,7 +398,7 @@ was created for if it has not been called already.</p>
<div class="refsect2">
<a name="hb-blob-get-data"></a><h3>hb_blob_get_data ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> *
-hb_blob_get_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
+hb_blob_get_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *length</code></em>);</pre>
<div class="refsect3">
<a name="hb-blob-get-data.parameters"></a><h4>Parameters</h4>
@@ -424,7 +433,7 @@ hb_blob_get_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
<div class="refsect2">
<a name="hb-blob-get-data-writable"></a><h3>hb_blob_get_data_writable ()</h3>
<pre class="programlisting"><span class="returnvalue">char</span> *
-hb_blob_get_data_writable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
+hb_blob_get_data_writable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *length</code></em>);</pre>
<p>Tries to make blob data writable (possibly copying it) and
return pointer to data.</p>
@@ -455,7 +464,7 @@ fails.</p>
<div class="refsect3">
<a name="hb-blob-get-data-writable.returns"></a><h4>Returns</h4>
<p>Writable blob data,
-or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if failed. </p>
+or <code class="literal">NULL</code> if failed. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=length]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
@@ -463,7 +472,7 @@ or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><c
<hr>
<div class="refsect2">
<a name="hb-blob-get-empty"></a><h3>hb_blob_get_empty ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
hb_blob_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>Returns the singleton empty blob.</p>
<p>See TODO:link object types for more information.</p>
@@ -478,7 +487,7 @@ hb_blob_get_empty (<em class="parameter"><code><span class="type">void</span></c
<div class="refsect2">
<a name="hb-blob-get-length"></a><h3>hb_blob_get_length ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_blob_get_length (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
+hb_blob_get_length (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
<div class="refsect3">
<a name="hb-blob-get-length.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -504,8 +513,8 @@ hb_blob_get_length (<em class="parameter"><code><a class="link" href="harfbuzz-h
<div class="refsect2">
<a name="hb-blob-get-user-data"></a><h3>hb_blob_get_user_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> *
-hb_blob_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
+hb_blob_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-blob-get-user-data.parameters"></a><h4>Parameters</h4>
@@ -540,7 +549,7 @@ hb_blob_get_user_data (<em class="parameter"><code><a class="link" href="harfbuz
<div class="refsect2">
<a name="hb-blob-is-immutable"></a><h3>hb_blob_is_immutable ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_blob_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
+hb_blob_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
<div class="refsect3">
<a name="hb-blob-is-immutable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -566,7 +575,7 @@ hb_blob_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz
<div class="refsect2">
<a name="hb-blob-make-immutable"></a><h3>hb_blob_make_immutable ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_blob_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
+hb_blob_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
<div class="refsect3">
<a name="hb-blob-make-immutable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -587,8 +596,8 @@ hb_blob_make_immutable (<em class="parameter"><code><a class="link" href="harfbu
<hr>
<div class="refsect2">
<a name="hb-blob-reference"></a><h3>hb_blob_reference ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
-hb_blob_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
+hb_blob_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
<p>Increases the reference count on <em class="parameter"><code>blob</code></em>
.</p>
<p>See TODO:link object types for more information.</p>
@@ -619,8 +628,8 @@ hb_blob_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb
<div class="refsect2">
<a name="hb-blob-set-user-data"></a><h3>hb_blob_set_user_data ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_blob_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
+hb_blob_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
<em class="parameter"><code><span class="type">void</span> *data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
diff --git a/docs/html/harfbuzz-hb-buffer.html b/docs/html/harfbuzz-hb-buffer.html
index 1aeee6f..0ab8ae1 100644
--- a/docs/html/harfbuzz-hb-buffer.html
+++ b/docs/html/harfbuzz-hb-buffer.html
@@ -5,7 +5,7 @@
<title>hb-buffer: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch09.html" title="Core API">
+<link rel="up" href="ch11.html" title="Core API">
<link rel="prev" href="harfbuzz-hb-blob.html" title="hb-blob">
<link rel="next" href="harfbuzz-hb-common.html" title="hb-common">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
@@ -15,10 +15,11 @@
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
- <a href="#harfbuzz-hb-buffer.description" class="shortcut">Description</a></span>
+ <a href="#harfbuzz-hb-buffer.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+ <a href="#harfbuzz-hb-buffer.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch09.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch11.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="harfbuzz-hb-blob.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="harfbuzz-hb-common.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
@@ -41,7 +42,7 @@
<tbody>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="returnvalue">hb_buffer_t</span></a> *
+<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="returnvalue">hb_buffer_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-create" title="hb_buffer_create ()">hb_buffer_create</a> <span class="c_punctuation">()</span>
@@ -49,7 +50,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="returnvalue">hb_buffer_t</span></a> *
+<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="returnvalue">hb_buffer_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-reference" title="hb_buffer_reference ()">hb_buffer_reference</a> <span class="c_punctuation">()</span>
@@ -57,7 +58,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="returnvalue">hb_buffer_t</span></a> *
+<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="returnvalue">hb_buffer_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-empty" title="hb_buffer_get_empty ()">hb_buffer_get_empty</a> <span class="c_punctuation">()</span>
@@ -304,7 +305,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-unicode-funcs" title="hb_buffer_get_unicode_funcs ()">hb_buffer_get_unicode_funcs</a> <span class="c_punctuation">()</span>
@@ -336,7 +337,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t" title="hb_glyph_position_t"><span class="returnvalue">hb_glyph_position_t</span></a> *
+<a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t"><span class="returnvalue">hb_glyph_position_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-glyph-positions" title="hb_buffer_get_glyph_positions ()">hb_buffer_get_glyph_positions</a> <span class="c_punctuation">()</span>
@@ -493,7 +494,7 @@
</tbody>
</table></div>
</div>
-<div class="refsect1">
+<a name="hb-buffer-t"></a><a name="hb-glyph-position-t"></a><a name="hb-segment-properties-t"></a><div class="refsect1">
<a name="harfbuzz-hb-buffer.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
@@ -511,7 +512,7 @@
</tr>
<tr>
<td class="typedef_keyword">typedef</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t">hb_buffer_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t">hb_buffer_t</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
@@ -519,7 +520,7 @@
</tr>
<tr>
<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t" title="hb_glyph_position_t">hb_glyph_position_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t-struct" title="hb_glyph_position_t">hb_glyph_position_t</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
@@ -535,7 +536,7 @@
</tr>
<tr>
<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t">hb_segment_properties_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t-struct" title="hb_segment_properties_t">hb_segment_properties_t</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
@@ -553,6 +554,23 @@
</table></div>
</div>
<div class="refsect1">
+<a name="harfbuzz-hb-buffer.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
+ <span class="lineart">├──</span> hb_buffer_t
+ <span class="lineart">├──</span> hb_glyph_position_t
+ <span class="lineart">╰──</span> hb_segment_properties_t
+ <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GEnum</a>
+ <span class="lineart">├──</span> hb_buffer_cluster_level_t
+ <span class="lineart">├──</span> hb_buffer_content_type_t
+ <span class="lineart">╰──</span> hb_buffer_serialize_format_t
+ <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GFlags</a>
+ <span class="lineart">├──</span> hb_buffer_diff_flags_t
+ <span class="lineart">├──</span> hb_buffer_flags_t
+ <span class="lineart">├──</span> hb_buffer_serialize_flags_t
+ <span class="lineart">╰──</span> hb_glyph_flags_t
+</pre>
+</div>
+<div class="refsect1">
<a name="harfbuzz-hb-buffer.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;hb.h&gt;
</pre>
@@ -566,16 +584,16 @@ passed to <a class="link" href="harfbuzz-hb-shape.html#hb-shape" title="hb_shape
<a name="harfbuzz-hb-buffer.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="hb-buffer-create"></a><h3>hb_buffer_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="returnvalue">hb_buffer_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="returnvalue">hb_buffer_t</span></a> *
hb_buffer_create (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Creates a new <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> with all properties to defaults.</p>
+<p>Creates a new <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> with all properties to defaults.</p>
<p><span class="annotation">[Xconstructor]</span></p>
<div class="refsect3">
<a name="hb-buffer-create.returns"></a><h4>Returns</h4>
-<p>A newly allocated <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> with a reference count of 1. The initial
+<p>A newly allocated <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> with a reference count of 1. The initial
reference count should be released with <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-destroy" title="hb_buffer_destroy ()"><code class="function">hb_buffer_destroy()</code></a> when you are done
-using the <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>. This function never returns <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. If memory cannot
-be allocated, a special <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> object will be returned on which
+using the <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>. This function never returns <code class="literal">NULL</code>. If memory cannot
+be allocated, a special <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> object will be returned on which
<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-allocation-successful" title="hb_buffer_allocation_successful ()"><code class="function">hb_buffer_allocation_successful()</code></a> returns <code class="literal">false</code>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
@@ -584,8 +602,8 @@ be allocated, a special <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-
<hr>
<div class="refsect2">
<a name="hb-buffer-reference"></a><h3>hb_buffer_reference ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="returnvalue">hb_buffer_t</span></a> *
-hb_buffer_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="returnvalue">hb_buffer_t</span></a> *
+hb_buffer_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>Increases the reference count on <em class="parameter"><code>buffer</code></em>
by one. This prevents <em class="parameter"><code>buffer</code></em>
from
@@ -601,14 +619,14 @@ being destroyed until a matching call to <a class="link" href="harfbuzz-hb-buffe
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="hb-buffer-reference.returns"></a><h4>Returns</h4>
-<p>The referenced <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>. </p>
+<p>The referenced <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
@@ -616,7 +634,7 @@ being destroyed until a matching call to <a class="link" href="harfbuzz-hb-buffe
<hr>
<div class="refsect2">
<a name="hb-buffer-get-empty"></a><h3>hb_buffer_get_empty ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="returnvalue">hb_buffer_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="returnvalue">hb_buffer_t</span></a> *
hb_buffer_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<div class="refsect3">
<a name="hb-buffer-get-empty.returns"></a><h4>Returns</h4>
@@ -629,7 +647,7 @@ hb_buffer_get_empty (<em class="parameter"><code><span class="type">void</span><
<div class="refsect2">
<a name="hb-buffer-destroy"></a><h3>hb_buffer_destroy ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>Deallocate the <em class="parameter"><code>buffer</code></em>
.
Decreases the reference count on <em class="parameter"><code>buffer</code></em>
@@ -647,7 +665,7 @@ Decreases the reference count on <em class="parameter"><code>buffer</code></em>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -658,7 +676,7 @@ Decreases the reference count on <em class="parameter"><code>buffer</code></em>
<div class="refsect2">
<a name="hb-buffer-reset"></a><h3>hb_buffer_reset ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_reset (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_reset (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>Resets the buffer to its initial status, as if it was just newly created
with <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-create" title="hb_buffer_create ()"><code class="function">hb_buffer_create()</code></a>.</p>
<div class="refsect3">
@@ -671,7 +689,7 @@ with <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-create" title="hb_b
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -682,7 +700,7 @@ with <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-create" title="hb_b
<div class="refsect2">
<a name="hb-buffer-clear-contents"></a><h3>hb_buffer_clear_contents ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_clear_contents (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_clear_contents (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>Similar to <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-reset" title="hb_buffer_reset ()"><code class="function">hb_buffer_reset()</code></a>, but does not clear the Unicode functions and
the replacement code point.</p>
<div class="refsect3">
@@ -695,7 +713,7 @@ the replacement code point.</p>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -706,7 +724,7 @@ the replacement code point.</p>
<div class="refsect2">
<a name="hb-buffer-pre-allocate"></a><h3>hb_buffer_pre_allocate ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_buffer_pre_allocate (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_pre_allocate (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> size</code></em>);</pre>
<p>Pre allocates memory for <em class="parameter"><code>buffer</code></em>
to fit at least <em class="parameter"><code>size</code></em>
@@ -722,7 +740,7 @@ hb_buffer_pre_allocate (<em class="parameter"><code><a class="link" href="harfbu
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -744,7 +762,7 @@ memory allocation succeeded, <code class="literal">false</code> otherwise.</p>
<div class="refsect2">
<a name="hb-buffer-allocation-successful"></a><h3>hb_buffer_allocation_successful ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_buffer_allocation_successful (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_allocation_successful (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>Check if allocating memory for the buffer succeeded.</p>
<div class="refsect3">
<a name="hb-buffer-allocation-successful.parameters"></a><h4>Parameters</h4>
@@ -756,7 +774,7 @@ hb_buffer_allocation_successful (<em class="parameter"><code><a class="link" hre
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -772,7 +790,7 @@ memory allocation succeeded, <code class="literal">false</code> otherwise.</p>
<div class="refsect2">
<a name="hb-buffer-add"></a><h3>hb_buffer_add ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_add (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_add (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> codepoint</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> cluster</code></em>);</pre>
<p>Appends a character with the Unicode value of <em class="parameter"><code>codepoint</code></em>
@@ -797,7 +815,7 @@ caller to ensure it is a valid Unicode code point.</p>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -820,7 +838,7 @@ caller to ensure it is a valid Unicode code point.</p>
<div class="refsect2">
<a name="hb-buffer-add-codepoints"></a><h3>hb_buffer_add_codepoints ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_add_codepoints (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_add_codepoints (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *text</code></em>,
<em class="parameter"><code><span class="type">int</span> text_length</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> item_offset</code></em>,
@@ -855,7 +873,7 @@ to ensure it contains a valid Unicode code points.</p>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>a <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> to append characters to.</p></td>
+<td class="parameter_description"><p>a <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> to append characters to.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -866,7 +884,7 @@ to ensure it contains a valid Unicode code points.</p>
<tr>
<td class="parameter_name"><p>text_length</p></td>
<td class="parameter_description"><p>the length of the <em class="parameter"><code>text</code></em>
-, or -1 if it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated.</p></td>
+, or -1 if it is <code class="literal">NULL</code> terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -880,7 +898,7 @@ to ensure it contains a valid Unicode code points.</p>
<td class="parameter_description"><p>the number of code points to add to the <em class="parameter"><code>buffer</code></em>
, or -1 for the
end of <em class="parameter"><code>text</code></em>
-(assuming it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated).</p></td>
+(assuming it is <code class="literal">NULL</code> terminated).</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -892,7 +910,7 @@ end of <em class="parameter"><code>text</code></em>
<div class="refsect2">
<a name="hb-buffer-add-utf32"></a><h3>hb_buffer_add_utf32 ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_add_utf32 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_add_utf32 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code>const <span class="type">uint32_t</span> *text</code></em>,
<em class="parameter"><code><span class="type">int</span> text_length</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> item_offset</code></em>,
@@ -912,7 +930,7 @@ see <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-replacement-code
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -923,7 +941,7 @@ see <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-replacement-code
<tr>
<td class="parameter_name"><p>text_length</p></td>
<td class="parameter_description"><p>the length of the <em class="parameter"><code>text</code></em>
-, or -1 if it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated.</p></td>
+, or -1 if it is <code class="literal">NULL</code> terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -937,7 +955,7 @@ see <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-replacement-code
<td class="parameter_description"><p>the number of characters to add to the <em class="parameter"><code>buffer</code></em>
, or -1 for the
end of <em class="parameter"><code>text</code></em>
-(assuming it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated).</p></td>
+(assuming it is <code class="literal">NULL</code> terminated).</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -949,7 +967,7 @@ end of <em class="parameter"><code>text</code></em>
<div class="refsect2">
<a name="hb-buffer-add-utf16"></a><h3>hb_buffer_add_utf16 ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_add_utf16 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_add_utf16 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code>const <span class="type">uint16_t</span> *text</code></em>,
<em class="parameter"><code><span class="type">int</span> text_length</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> item_offset</code></em>,
@@ -969,7 +987,7 @@ see <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-replacement-code
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -980,7 +998,7 @@ see <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-replacement-code
<tr>
<td class="parameter_name"><p>text_length</p></td>
<td class="parameter_description"><p>the length of the <em class="parameter"><code>text</code></em>
-, or -1 if it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated.</p></td>
+, or -1 if it is <code class="literal">NULL</code> terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -994,7 +1012,7 @@ see <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-replacement-code
<td class="parameter_description"><p>the number of characters to add to the <em class="parameter"><code>buffer</code></em>
, or -1 for the
end of <em class="parameter"><code>text</code></em>
-(assuming it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated).</p></td>
+(assuming it is <code class="literal">NULL</code> terminated).</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -1006,7 +1024,7 @@ end of <em class="parameter"><code>text</code></em>
<div class="refsect2">
<a name="hb-buffer-add-utf8"></a><h3>hb_buffer_add_utf8 ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_add_utf8 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_add_utf8 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *text</code></em>,
<em class="parameter"><code><span class="type">int</span> text_length</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> item_offset</code></em>,
@@ -1026,7 +1044,7 @@ see <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-replacement-code
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -1038,7 +1056,7 @@ characters to append. </p></td>
<tr>
<td class="parameter_name"><p>text_length</p></td>
<td class="parameter_description"><p>the length of the <em class="parameter"><code>text</code></em>
-, or -1 if it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated.</p></td>
+, or -1 if it is <code class="literal">NULL</code> terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -1052,7 +1070,7 @@ characters to append. </p></td>
<td class="parameter_description"><p>the number of characters to add to the <em class="parameter"><code>buffer</code></em>
, or -1 for the
end of <em class="parameter"><code>text</code></em>
-(assuming it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated).</p></td>
+(assuming it is <code class="literal">NULL</code> terminated).</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -1064,7 +1082,7 @@ end of <em class="parameter"><code>text</code></em>
<div class="refsect2">
<a name="hb-buffer-add-latin1"></a><h3>hb_buffer_add_latin1 ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_add_latin1 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_add_latin1 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code>const <span class="type">uint8_t</span> *text</code></em>,
<em class="parameter"><code><span class="type">int</span> text_length</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> item_offset</code></em>,
@@ -1083,7 +1101,7 @@ Unicode code points that can fit in 8-bit strings.</p>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -1095,7 +1113,7 @@ characters to append. </p></td>
<tr>
<td class="parameter_name"><p>text_length</p></td>
<td class="parameter_description"><p>the length of the <em class="parameter"><code>text</code></em>
-, or -1 if it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated.</p></td>
+, or -1 if it is <code class="literal">NULL</code> terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -1109,7 +1127,7 @@ characters to append. </p></td>
<td class="parameter_description"><p>the number of characters to add to the <em class="parameter"><code>buffer</code></em>
, or -1 for the
end of <em class="parameter"><code>text</code></em>
-(assuming it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated).</p></td>
+(assuming it is <code class="literal">NULL</code> terminated).</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -1121,8 +1139,8 @@ end of <em class="parameter"><code>text</code></em>
<div class="refsect2">
<a name="hb-buffer-append"></a><h3>hb_buffer_append ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_append (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *source</code></em>,
+hb_buffer_append (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *source</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> end</code></em>);</pre>
<p>Append (part of) contents of another buffer to this buffer.</p>
@@ -1137,12 +1155,12 @@ hb_buffer_append (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>source</p></td>
-<td class="parameter_description"><p>source <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>source <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -1164,7 +1182,7 @@ hb_buffer_append (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
<div class="refsect2">
<a name="hb-buffer-set-content-type"></a><h3>hb_buffer_set_content_type ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_set_content_type (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_set_content_type (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-content-type-t" title="enum hb_buffer_content_type_t"><span class="type">hb_buffer_content_type_t</span></a> content_type</code></em>);</pre>
<p>Sets the type of <em class="parameter"><code>buffer</code></em>
contents, buffers are either empty, contain
@@ -1180,7 +1198,7 @@ characters (before shaping) or glyphs (the result of shaping).</p>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -1197,7 +1215,7 @@ characters (before shaping) or glyphs (the result of shaping).</p>
<div class="refsect2">
<a name="hb-buffer-get-content-type"></a><h3>hb_buffer_get_content_type ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-content-type-t" title="enum hb_buffer_content_type_t"><span class="returnvalue">hb_buffer_content_type_t</span></a>
-hb_buffer_get_content_type (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_get_content_type (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>see <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-content-type" title="hb_buffer_set_content_type ()"><code class="function">hb_buffer_set_content_type()</code></a>.</p>
<div class="refsect3">
<a name="hb-buffer-get-content-type.parameters"></a><h4>Parameters</h4>
@@ -1209,7 +1227,7 @@ hb_buffer_get_content_type (<em class="parameter"><code><a class="link" href="ha
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -1225,7 +1243,7 @@ contents.</p>
<div class="refsect2">
<a name="hb-buffer-set-direction"></a><h3>hb_buffer_set_direction ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_set_direction (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_set_direction (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>);</pre>
<p>Set the text flow direction of the buffer. No shaping can happen without
setting <em class="parameter"><code>buffer</code></em>
@@ -1246,7 +1264,7 @@ direction.</p>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -1264,7 +1282,7 @@ direction.</p>
<div class="refsect2">
<a name="hb-buffer-get-direction"></a><h3>hb_buffer_get_direction ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="returnvalue">hb_direction_t</span></a>
-hb_buffer_get_direction (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_get_direction (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>See <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-direction" title="hb_buffer_set_direction ()"><code class="function">hb_buffer_set_direction()</code></a></p>
<div class="refsect3">
<a name="hb-buffer-get-direction.parameters"></a><h4>Parameters</h4>
@@ -1276,7 +1294,7 @@ hb_buffer_get_direction (<em class="parameter"><code><a class="link" href="harfb
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -1292,7 +1310,7 @@ hb_buffer_get_direction (<em class="parameter"><code><a class="link" href="harfb
<div class="refsect2">
<a name="hb-buffer-set-script"></a><h3>hb_buffer_set_script ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_set_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_set_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> script</code></em>);</pre>
<p>Sets the script of <em class="parameter"><code>buffer</code></em>
to <em class="parameter"><code>script</code></em>
@@ -1314,7 +1332,7 @@ corresponding script from an ISO 15924 script tag.</p>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -1331,7 +1349,7 @@ corresponding script from an ISO 15924 script tag.</p>
<div class="refsect2">
<a name="hb-buffer-get-script"></a><h3>hb_buffer_get_script ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="returnvalue">hb_script_t</span></a>
-hb_buffer_get_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_get_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>See <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-script" title="hb_buffer_set_script ()"><code class="function">hb_buffer_set_script()</code></a>.</p>
<div class="refsect3">
<a name="hb-buffer-get-script.parameters"></a><h4>Parameters</h4>
@@ -1343,7 +1361,7 @@ hb_buffer_get_script (<em class="parameter"><code><a class="link" href="harfbuzz
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -1359,7 +1377,7 @@ hb_buffer_get_script (<em class="parameter"><code><a class="link" href="harfbuzz
<div class="refsect2">
<a name="hb-buffer-set-language"></a><h3>hb_buffer_set_language ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_set_language (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_set_language (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> language</code></em>);</pre>
<p>Sets the language of <em class="parameter"><code>buffer</code></em>
to <em class="parameter"><code>language</code></em>
@@ -1381,7 +1399,7 @@ different concepts and should not be confused with each other.</p>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -1398,7 +1416,7 @@ different concepts and should not be confused with each other.</p>
<div class="refsect2">
<a name="hb-buffer-get-language"></a><h3>hb_buffer_get_language ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="returnvalue">hb_language_t</span></a>
-hb_buffer_get_language (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_get_language (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>See <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-language" title="hb_buffer_set_language ()"><code class="function">hb_buffer_set_language()</code></a>.</p>
<div class="refsect3">
<a name="hb-buffer-get-language.parameters"></a><h4>Parameters</h4>
@@ -1410,7 +1428,7 @@ hb_buffer_get_language (<em class="parameter"><code><a class="link" href="harfbu
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -1426,7 +1444,7 @@ hb_buffer_get_language (<em class="parameter"><code><a class="link" href="harfbu
<div class="refsect2">
<a name="hb-buffer-set-flags"></a><h3>hb_buffer_set_flags ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_set_flags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_set_flags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-flags-t" title="enum hb_buffer_flags_t"><span class="type">hb_buffer_flags_t</span></a> flags</code></em>);</pre>
<p>Sets <em class="parameter"><code>buffer</code></em>
flags to <em class="parameter"><code>flags</code></em>
@@ -1442,7 +1460,7 @@ hb_buffer_set_flags (<em class="parameter"><code><a class="link" href="harfbuzz-
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -1459,7 +1477,7 @@ hb_buffer_set_flags (<em class="parameter"><code><a class="link" href="harfbuzz-
<div class="refsect2">
<a name="hb-buffer-get-flags"></a><h3>hb_buffer_get_flags ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-flags-t" title="enum hb_buffer_flags_t"><span class="returnvalue">hb_buffer_flags_t</span></a>
-hb_buffer_get_flags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_get_flags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>See <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-flags" title="hb_buffer_set_flags ()"><code class="function">hb_buffer_set_flags()</code></a>.</p>
<div class="refsect3">
<a name="hb-buffer-get-flags.parameters"></a><h4>Parameters</h4>
@@ -1471,7 +1489,7 @@ hb_buffer_get_flags (<em class="parameter"><code><a class="link" href="harfbuzz-
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -1487,7 +1505,7 @@ flags.</p>
<div class="refsect2">
<a name="hb-buffer-set-cluster-level"></a><h3>hb_buffer_set_cluster_level ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_set_cluster_level (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_set_cluster_level (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-cluster-level-t" title="enum hb_buffer_cluster_level_t"><span class="type">hb_buffer_cluster_level_t</span></a> cluster_level</code></em>);</pre>
<div class="refsect3">
<a name="hb-buffer-set-cluster-level.parameters"></a><h4>Parameters</h4>
@@ -1499,7 +1517,7 @@ hb_buffer_set_cluster_level (<em class="parameter"><code><a class="link" href="h
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -1510,7 +1528,7 @@ hb_buffer_set_cluster_level (<em class="parameter"><code><a class="link" href="h
<div class="refsect2">
<a name="hb-buffer-get-cluster-level"></a><h3>hb_buffer_get_cluster_level ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-cluster-level-t" title="enum hb_buffer_cluster_level_t"><span class="returnvalue">hb_buffer_cluster_level_t</span></a>
-hb_buffer_get_cluster_level (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_get_cluster_level (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<div class="refsect3">
<a name="hb-buffer-get-cluster-level.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1521,7 +1539,7 @@ hb_buffer_get_cluster_level (<em class="parameter"><code><a class="link" href="h
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -1532,7 +1550,7 @@ hb_buffer_get_cluster_level (<em class="parameter"><code><a class="link" href="h
<div class="refsect2">
<a name="hb-buffer-set-length"></a><h3>hb_buffer_set_length ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_buffer_set_length (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_set_length (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> length</code></em>);</pre>
<p>Similar to <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-pre-allocate" title="hb_buffer_pre_allocate ()"><code class="function">hb_buffer_pre_allocate()</code></a>, but clears any new items added at the
end.</p>
@@ -1547,7 +1565,7 @@ end.</p>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -1570,7 +1588,7 @@ memory allocation succeeded, <code class="literal">false</code> otherwise.</p>
<div class="refsect2">
<a name="hb-buffer-get-length"></a><h3>hb_buffer_get_length ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_buffer_get_length (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_get_length (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>Returns the number of items in the buffer.</p>
<div class="refsect3">
<a name="hb-buffer-get-length.parameters"></a><h4>Parameters</h4>
@@ -1582,7 +1600,7 @@ hb_buffer_get_length (<em class="parameter"><code><a class="link" href="harfbuzz
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -1599,8 +1617,8 @@ The value valid as long as buffer has not been modified.</p>
<div class="refsect2">
<a name="hb-buffer-set-segment-properties"></a><h3>hb_buffer_set_segment_properties ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_set_segment_properties (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>);</pre>
+hb_buffer_set_segment_properties (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>);</pre>
<p>Sets the segment properties of the buffer, a shortcut for calling
<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-direction" title="hb_buffer_set_direction ()"><code class="function">hb_buffer_set_direction()</code></a>, <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-script" title="hb_buffer_set_script ()"><code class="function">hb_buffer_set_script()</code></a> and
<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-language" title="hb_buffer_set_language ()"><code class="function">hb_buffer_set_language()</code></a> individually.</p>
@@ -1615,12 +1633,12 @@ hb_buffer_set_segment_properties (<em class="parameter"><code><a class="link" hr
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>props</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> to use.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> to use.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -1632,10 +1650,10 @@ hb_buffer_set_segment_properties (<em class="parameter"><code><a class="link" hr
<div class="refsect2">
<a name="hb-buffer-get-segment-properties"></a><h3>hb_buffer_get_segment_properties ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_get_segment_properties (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>);</pre>
+hb_buffer_get_segment_properties (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>);</pre>
<p>Sets <em class="parameter"><code>props</code></em>
- to the <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> of <em class="parameter"><code>buffer</code></em>
+ to the <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> of <em class="parameter"><code>buffer</code></em>
.</p>
<div class="refsect3">
<a name="hb-buffer-get-segment-properties.parameters"></a><h4>Parameters</h4>
@@ -1648,12 +1666,12 @@ hb_buffer_get_segment_properties (<em class="parameter"><code><a class="link" hr
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>props</p></td>
-<td class="parameter_description"><p>the output <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a>. </p></td>
+<td class="parameter_description"><p>the output <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
@@ -1665,7 +1683,7 @@ hb_buffer_get_segment_properties (<em class="parameter"><code><a class="link" hr
<div class="refsect2">
<a name="hb-buffer-guess-segment-properties"></a><h3>hb_buffer_guess_segment_properties ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_guess_segment_properties (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_guess_segment_properties (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>Sets unset buffer segment properties based on buffer Unicode
contents. If buffer is not empty, it must have content type
<a class="link" href="harfbuzz-hb-buffer.html#HB-BUFFER-CONTENT-TYPE-UNICODE:CAPS"><code class="literal">HB_BUFFER_CONTENT_TYPE_UNICODE</code></a>.</p>
@@ -1694,7 +1712,7 @@ it is called. See documentation for that function for details.</p>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -1705,8 +1723,8 @@ it is called. See documentation for that function for details.</p>
<div class="refsect2">
<a name="hb-buffer-set-unicode-funcs"></a><h3>hb_buffer_set_unicode_funcs ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_set_unicode_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *unicode_funcs</code></em>);</pre>
+hb_buffer_set_unicode_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *unicode_funcs</code></em>);</pre>
<div class="refsect3">
<a name="hb-buffer-set-unicode-funcs.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1717,7 +1735,7 @@ hb_buffer_set_unicode_funcs (<em class="parameter"><code><a class="link" href="h
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -1727,8 +1745,8 @@ hb_buffer_set_unicode_funcs (<em class="parameter"><code><a class="link" href="h
<hr>
<div class="refsect2">
<a name="hb-buffer-get-unicode-funcs"></a><h3>hb_buffer_get_unicode_funcs ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
-hb_buffer_get_unicode_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+hb_buffer_get_unicode_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<div class="refsect3">
<a name="hb-buffer-get-unicode-funcs.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1739,7 +1757,7 @@ hb_buffer_get_unicode_funcs (<em class="parameter"><code><a class="link" href="h
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -1750,8 +1768,8 @@ hb_buffer_get_unicode_funcs (<em class="parameter"><code><a class="link" href="h
<div class="refsect2">
<a name="hb-buffer-set-user-data"></a><h3>hb_buffer_set_user_data ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_buffer_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
+hb_buffer_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
<em class="parameter"><code><span class="type">void</span> *data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
@@ -1766,7 +1784,7 @@ hb_buffer_set_user_data (<em class="parameter"><code><a class="link" href="harfb
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -1777,8 +1795,8 @@ hb_buffer_set_user_data (<em class="parameter"><code><a class="link" href="harfb
<div class="refsect2">
<a name="hb-buffer-get-user-data"></a><h3>hb_buffer_get_user_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> *
-hb_buffer_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
+hb_buffer_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-buffer-get-user-data.parameters"></a><h4>Parameters</h4>
@@ -1790,7 +1808,7 @@ hb_buffer_get_user_data (<em class="parameter"><code><a class="link" href="harfb
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -1801,7 +1819,7 @@ hb_buffer_get_user_data (<em class="parameter"><code><a class="link" href="harfb
<div class="refsect2">
<a name="hb-buffer-get-glyph-infos"></a><h3>hb_buffer_get_glyph_infos ()</h3>
<pre class="programlisting"><span class="returnvalue">hb_glyph_info_t</span> *
-hb_buffer_get_glyph_infos (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_get_glyph_infos (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *length</code></em>);</pre>
<p>Returns <em class="parameter"><code>buffer</code></em>
glyph information array. Returned pointer
@@ -1818,7 +1836,7 @@ is valid as long as <em class="parameter"><code>buffer</code></em>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -1841,8 +1859,8 @@ The value valid as long as buffer has not been modified. </p>
<hr>
<div class="refsect2">
<a name="hb-buffer-get-glyph-positions"></a><h3>hb_buffer_get_glyph_positions ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t" title="hb_glyph_position_t"><span class="returnvalue">hb_glyph_position_t</span></a> *
-hb_buffer_get_glyph_positions (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t"><span class="returnvalue">hb_glyph_position_t</span></a> *
+hb_buffer_get_glyph_positions (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *length</code></em>);</pre>
<p>Returns <em class="parameter"><code>buffer</code></em>
glyph position array. Returned pointer
@@ -1859,7 +1877,7 @@ is valid as long as <em class="parameter"><code>buffer</code></em>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -1883,7 +1901,7 @@ The value valid as long as buffer has not been modified. </p>
<div class="refsect2">
<a name="hb-buffer-get-invisible-glyph"></a><h3>hb_buffer_get_invisible_glyph ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="returnvalue">hb_codepoint_t</span></a>
-hb_buffer_get_invisible_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_get_invisible_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>See <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-invisible-glyph" title="hb_buffer_set_invisible_glyph ()"><code class="function">hb_buffer_set_invisible_glyph()</code></a>.</p>
<div class="refsect3">
<a name="hb-buffer-get-invisible-glyph.parameters"></a><h4>Parameters</h4>
@@ -1895,7 +1913,7 @@ hb_buffer_get_invisible_glyph (<em class="parameter"><code><a class="link" href=
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -1911,7 +1929,7 @@ invisible <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="h
<div class="refsect2">
<a name="hb-buffer-set-invisible-glyph"></a><h3>hb_buffer_set_invisible_glyph ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_set_invisible_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_set_invisible_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> invisible</code></em>);</pre>
<p>Sets the <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> that replaces invisible characters in
the shaping result. If set to zero (default), the glyph for the
@@ -1928,7 +1946,7 @@ verbatim.</p>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -1945,7 +1963,7 @@ verbatim.</p>
<div class="refsect2">
<a name="hb-buffer-set-replacement-codepoint"></a><h3>hb_buffer_set_replacement_codepoint ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_set_replacement_codepoint (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_set_replacement_codepoint (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> replacement</code></em>);</pre>
<p>Sets the <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> that replaces invalid entries for a given encoding
when adding text to <em class="parameter"><code>buffer</code></em>
@@ -1962,7 +1980,7 @@ when adding text to <em class="parameter"><code>buffer</code></em>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -1979,7 +1997,7 @@ when adding text to <em class="parameter"><code>buffer</code></em>
<div class="refsect2">
<a name="hb-buffer-get-replacement-codepoint"></a><h3>hb_buffer_get_replacement_codepoint ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="returnvalue">hb_codepoint_t</span></a>
-hb_buffer_get_replacement_codepoint (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_get_replacement_codepoint (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>See <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-replacement-codepoint" title="hb_buffer_set_replacement_codepoint ()"><code class="function">hb_buffer_set_replacement_codepoint()</code></a>.</p>
<div class="refsect3">
<a name="hb-buffer-get-replacement-codepoint.parameters"></a><h4>Parameters</h4>
@@ -1991,7 +2009,7 @@ hb_buffer_get_replacement_codepoint (<em class="parameter"><code><a class="link"
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -2007,7 +2025,7 @@ replacement <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title=
<div class="refsect2">
<a name="hb-buffer-normalize-glyphs"></a><h3>hb_buffer_normalize_glyphs ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_normalize_glyphs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_normalize_glyphs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>Reorders a glyph buffer to have canonical in-cluster glyph order / position.
The resulting clusters should behave identical to pre-reordering clusters.</p>
<div class="note">This has nothing to do with Unicode normalization.</div>
@@ -2021,7 +2039,7 @@ The resulting clusters should behave identical to pre-reordering clusters.</p>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -2032,7 +2050,7 @@ The resulting clusters should behave identical to pre-reordering clusters.</p>
<div class="refsect2">
<a name="hb-buffer-reverse"></a><h3>hb_buffer_reverse ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_reverse (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_reverse (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>Reverses buffer contents.</p>
<div class="refsect3">
<a name="hb-buffer-reverse.parameters"></a><h4>Parameters</h4>
@@ -2044,7 +2062,7 @@ hb_buffer_reverse (<em class="parameter"><code><a class="link" href="harfbuzz-hb
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -2055,7 +2073,7 @@ hb_buffer_reverse (<em class="parameter"><code><a class="link" href="harfbuzz-hb
<div class="refsect2">
<a name="hb-buffer-reverse-range"></a><h3>hb_buffer_reverse_range ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_reverse_range (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_reverse_range (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> end</code></em>);</pre>
<p>Reverses buffer contents between start to end.</p>
@@ -2070,7 +2088,7 @@ hb_buffer_reverse_range (<em class="parameter"><code><a class="link" href="harfb
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -2092,7 +2110,7 @@ hb_buffer_reverse_range (<em class="parameter"><code><a class="link" href="harfb
<div class="refsect2">
<a name="hb-buffer-reverse-clusters"></a><h3>hb_buffer_reverse_clusters ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_reverse_clusters (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_reverse_clusters (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>Reverses buffer clusters. That is, the buffer contents are
reversed, then each cluster (consecutive items having the
same cluster number) are reversed again.</p>
@@ -2106,7 +2124,7 @@ same cluster number) are reversed again.</p>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -2117,13 +2135,13 @@ same cluster number) are reversed again.</p>
<div class="refsect2">
<a name="hb-buffer-serialize-glyphs"></a><h3>hb_buffer_serialize_glyphs ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_buffer_serialize_glyphs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_serialize_glyphs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> end</code></em>,
<em class="parameter"><code><span class="type">char</span> *buf</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> buf_size</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *buf_consumed</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t"><span class="type">hb_buffer_serialize_format_t</span></a> format</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-flags-t" title="enum hb_buffer_serialize_flags_t"><span class="type">hb_buffer_serialize_flags_t</span></a> flags</code></em>);</pre>
<p>Serializes <em class="parameter"><code>buffer</code></em>
@@ -2131,7 +2149,7 @@ hb_buffer_serialize_glyphs (<em class="parameter"><code><a class="link" href="ha
useful for showing the contents of the buffer, for example during debugging.
There are currently two supported serialization formats:</p>
<div class="refsect3">
-<a name="id-1.3.4.3.7.48.5"></a><h4>text</h4>
+<a name="id-1.3.4.3.11.48.5"></a><h4>text</h4>
<p>A human-readable, plain text format.
The serialized glyphs will look something like:</p>
<p><code class="literal">
@@ -2146,10 +2164,10 @@ The serialized glyphs will look something like:</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem"><p>If <a class="link" href="harfbuzz-hb-buffer.html#HB-BUFFER-SERIALIZE-FLAG-NO-CLUSTERS:CAPS"><span class="type">HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS</span></a> is not set, <code class="literal">=</code> then <span class="type">hb_glyph_info_t.cluster</span>.</p></li>
<li class="listitem">
-<p>If <a class="link" href="harfbuzz-hb-buffer.html#HB-BUFFER-SERIALIZE-FLAG-NO-POSITIONS:CAPS"><span class="type">HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS</span></a> is not set, the <a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t" title="hb_glyph_position_t"><span class="type">hb_glyph_position_t</span></a> in the format:</p>
+<p>If <a class="link" href="harfbuzz-hb-buffer.html#HB-BUFFER-SERIALIZE-FLAG-NO-POSITIONS:CAPS"><span class="type">HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS</span></a> is not set, the <a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t"><span class="type">hb_glyph_position_t</span></a> in the format:</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: square; ">
-<li class="listitem"><p>If both <a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t.x-offset"><span class="type">hb_glyph_position_t.x_offset</span></a> and <a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t.y-offset"><span class="type">hb_glyph_position_t.y_offset</span></a> are not 0, <code class="literal">@x_offset,y_offset</code>. Then,</p></li>
-<li class="listitem"><p><code class="literal">+x_advance</code>, then <code class="literal">,y_advance</code> if <a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t.y-advance"><span class="type">hb_glyph_position_t.y_advance</span></a> is not 0. Then,</p></li>
+<li class="listitem"><p>If both <span class="type">hb_glyph_position_t.x_offset</span> and <span class="type">hb_glyph_position_t.y_offset</span> are not 0, <code class="literal">@x_offset,y_offset</code>. Then,</p></li>
+<li class="listitem"><p><code class="literal">+x_advance</code>, then <code class="literal">,y_advance</code> if <span class="type">hb_glyph_position_t.y_advance</span> is not 0. Then,</p></li>
</ul></div>
</li>
<li class="listitem"><p>If <a class="link" href="harfbuzz-hb-buffer.html#HB-BUFFER-SERIALIZE-FLAG-GLYPH-EXTENTS:CAPS"><span class="type">HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS</span></a> is set, the
@@ -2160,7 +2178,7 @@ The serialized glyphs will look something like:</p>
</ul></div>
</div>
<div class="refsect3">
-<a name="id-1.3.4.3.7.48.6"></a><h4>json</h4>
+<a name="id-1.3.4.3.11.48.6"></a><h4>json</h4>
<p>TODO.</p>
</div>
<div class="refsect3">
@@ -2174,7 +2192,7 @@ The serialized glyphs will look something like:</p>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> buffer.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> buffer.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -2203,14 +2221,14 @@ write serialized buffer into. </p></td>
</tr>
<tr>
<td class="parameter_name"><p>buf_consumed</p></td>
-<td class="parameter_description"><p>if not <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, will be set to the number of byes written into <em class="parameter"><code>buf</code></em>
+<td class="parameter_description"><p>if not <code class="literal">NULL</code>, will be set to the number of byes written into <em class="parameter"><code>buf</code></em>
. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p>the <a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> used to shape this buffer, needed to
-read glyph names and extents. If <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, and empty font will be used. </p></td>
+<td class="parameter_description"><p>the <a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> used to shape this buffer, needed to
+read glyph names and extents. If <code class="literal">NULL</code>, and empty font will be used. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
@@ -2237,11 +2255,11 @@ to serialize.</p></td>
<div class="refsect2">
<a name="hb-buffer-deserialize-glyphs"></a><h3>hb_buffer_deserialize_glyphs ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_buffer_deserialize_glyphs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_deserialize_glyphs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *buf</code></em>,
<em class="parameter"><code><span class="type">int</span> buf_len</code></em>,
<em class="parameter"><code>const <span class="type">char</span> **end_ptr</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t"><span class="type">hb_buffer_serialize_format_t</span></a> format</code></em>);</pre>
<div class="refsect3">
<a name="hb-buffer-deserialize-glyphs.parameters"></a><h4>Parameters</h4>
@@ -2254,7 +2272,7 @@ hb_buffer_deserialize_glyphs (<em class="parameter"><code><a class="link" href="
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> buffer.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> buffer.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -2300,7 +2318,7 @@ hb_buffer_serialize_format_from_string
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>length of <em class="parameter"><code>str</code></em>
-, or -1 if string is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated</p></td>
+, or -1 if string is <code class="literal">NULL</code> terminated</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -2318,7 +2336,7 @@ hb_buffer_serialize_format_from_string
<pre class="programlisting">const <span class="returnvalue">char</span> *
hb_buffer_serialize_format_to_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t"><span class="type">hb_buffer_serialize_format_t</span></a> format</code></em>);</pre>
<p>Converts <em class="parameter"><code>format</code></em>
- to the string corresponding it, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if it is not a valid
+ to the string corresponding it, or <code class="literal">NULL</code> if it is not a valid
<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t"><span class="type">hb_buffer_serialize_format_t</span></a>.</p>
<div class="refsect3">
<a name="hb-buffer-serialize-format-to-string.parameters"></a><h4>Parameters</h4>
@@ -2337,7 +2355,7 @@ hb_buffer_serialize_format_to_string (<em class="parameter"><code><a class="link
</div>
<div class="refsect3">
<a name="hb-buffer-serialize-format-to-string.returns"></a><h4>Returns</h4>
-<p>A <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated string corresponding to <em class="parameter"><code>format</code></em>
+<p>A <code class="literal">NULL</code> terminated string corresponding to <em class="parameter"><code>format</code></em>
. Should not be freed. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
@@ -2360,9 +2378,9 @@ hb_buffer_serialize_list_formats (<em class="parameter"><code><span class="type"
<div class="refsect2">
<a name="hb-segment-properties-equal"></a><h3>hb_segment_properties_equal ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_segment_properties_equal (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> *a</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> *b</code></em>);</pre>
-<p>Checks the equality of two <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a>'s.</p>
+hb_segment_properties_equal (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> *a</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> *b</code></em>);</pre>
+<p>Checks the equality of two <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a>'s.</p>
<div class="refsect3">
<a name="hb-segment-properties-equal.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -2374,12 +2392,12 @@ hb_segment_properties_equal (<em class="parameter"><code>const <a class="link" h
<tbody>
<tr>
<td class="parameter_name"><p>a</p></td>
-<td class="parameter_description"><p>first <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> to compare.</p></td>
+<td class="parameter_description"><p>first <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> to compare.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>b</p></td>
-<td class="parameter_description"><p>second <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> to compare.</p></td>
+<td class="parameter_description"><p>second <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> to compare.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -2397,7 +2415,7 @@ equal those of <em class="parameter"><code>b</code></em>
<div class="refsect2">
<a name="hb-segment-properties-hash"></a><h3>hb_segment_properties_hash ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_segment_properties_hash (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> *p</code></em>);</pre>
+hb_segment_properties_hash (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> *p</code></em>);</pre>
<p>Creates a hash representing <em class="parameter"><code>p</code></em>
.</p>
<div class="refsect3">
@@ -2410,7 +2428,7 @@ hb_segment_properties_hash (<em class="parameter"><code>const <a class="link" hr
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>p</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> to hash.</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> to hash.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -2426,8 +2444,8 @@ hb_segment_properties_hash (<em class="parameter"><code>const <a class="link" hr
<div class="refsect2">
<a name="hb-buffer-diff"></a><h3>hb_buffer_diff ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-diff-flags-t" title="enum hb_buffer_diff_flags_t"><span class="returnvalue">hb_buffer_diff_flags_t</span></a>
-hb_buffer_diff (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *reference</code></em>,
+hb_buffer_diff (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *reference</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> dottedcircle_glyph</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> position_fuzz</code></em>);</pre>
<p>If dottedcircle_glyph is (hb_codepoint_t) -1 then <a class="link" href="harfbuzz-hb-buffer.html#HB-BUFFER-DIFF-FLAG-DOTTED-CIRCLE-PRESENT:CAPS"><code class="literal">HB_BUFFER_DIFF_FLAG_DOTTED_CIRCLE_PRESENT</code></a>
@@ -2471,7 +2489,7 @@ callers if just comparing two buffers is needed.</p>
<div class="refsect2">
<a name="hb-buffer-set-message-func"></a><h3>hb_buffer_set_message_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_set_message_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_set_message_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-message-func-t" title="hb_buffer_message_func_t ()"><span class="type">hb_buffer_message_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
@@ -2486,7 +2504,7 @@ hb_buffer_set_message_func (<em class="parameter"><code><a class="link" href="ha
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -2531,8 +2549,8 @@ hb_glyph_info_get_glyph_flags (<em class="parameter"><code>const <span class="ty
<div class="refsect2">
<a name="hb-buffer-message-func-t"></a><h3>hb_buffer_message_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-<span class="c_punctuation">(</span>*hb_buffer_message_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_buffer_message_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *message</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
</div>
@@ -2607,7 +2625,7 @@ and output glyphs and their information after shaping.</p>
</div>
<hr>
<div class="refsect2">
-<a name="hb-glyph-position-t"></a><h3>hb_glyph_position_t</h3>
+<a name="hb-glyph-position-t-struct"></a><h3>hb_glyph_position_t</h3>
<pre class="programlisting">typedef struct {
hb_position_t x_advance;
hb_position_t y_advance;
@@ -2615,9 +2633,9 @@ and output glyphs and their information after shaping.</p>
hb_position_t y_offset;
} hb_glyph_position_t;
</pre>
-<p>The <a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t" title="hb_glyph_position_t"><span class="type">hb_glyph_position_t</span></a> is the structure that holds the positions of the
+<p>The <a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t"><span class="type">hb_glyph_position_t</span></a> is the structure that holds the positions of the
glyph in both horizontal and vertical directions. All positions in
-<a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t" title="hb_glyph_position_t"><span class="type">hb_glyph_position_t</span></a> are relative to the current point.</p>
+<a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t"><span class="type">hb_glyph_position_t</span></a> are relative to the current point.</p>
<div class="refsect3">
<a name="hb-glyph-position-t.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -2628,25 +2646,25 @@ glyph in both horizontal and vertical directions. All positions in
</colgroup>
<tbody>
<tr>
-<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-glyph-position-t.x-advance"></a>x_advance</code></em>;</p></td>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-glyph-position-t-struct.x-advance"></a>x_advance</code></em>;</p></td>
<td class="struct_member_description"><p>how much the line advances after drawing this glyph when setting
text in horizontal direction.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
-<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-glyph-position-t.y-advance"></a>y_advance</code></em>;</p></td>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-glyph-position-t-struct.y-advance"></a>y_advance</code></em>;</p></td>
<td class="struct_member_description"><p>how much the line advances after drawing this glyph when setting
text in vertical direction.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
-<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-glyph-position-t.x-offset"></a>x_offset</code></em>;</p></td>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-glyph-position-t-struct.x-offset"></a>x_offset</code></em>;</p></td>
<td class="struct_member_description"><p>how much the glyph moves on the X-axis before drawing it, this
should not affect how much the line advances.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
-<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-glyph-position-t.y-offset"></a>y_offset</code></em>;</p></td>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-glyph-position-t-struct.y-offset"></a>y_offset</code></em>;</p></td>
<td class="struct_member_description"><p>how much the glyph moves on the Y-axis before drawing it, this
should not affect how much the line advances.</p></td>
<td class="struct_member_annotations"> </td>
@@ -2821,14 +2839,14 @@ should not affect how much the line advances.</p></td>
</div>
<hr>
<div class="refsect2">
-<a name="hb-segment-properties-t"></a><h3>hb_segment_properties_t</h3>
+<a name="hb-segment-properties-t-struct"></a><h3>hb_segment_properties_t</h3>
<pre class="programlisting">typedef struct {
hb_direction_t direction;
hb_script_t script;
hb_language_t language;
} hb_segment_properties_t;
</pre>
-<p>The structure that holds various text properties of an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>. Can be
+<p>The structure that holds various text properties of an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>. Can be
set and retrieved using <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-segment-properties" title="hb_buffer_set_segment_properties ()"><code class="function">hb_buffer_set_segment_properties()</code></a> and
<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-segment-properties" title="hb_buffer_get_segment_properties ()"><code class="function">hb_buffer_get_segment_properties()</code></a>, respectively.</p>
<div class="refsect3">
@@ -2841,17 +2859,17 @@ set and retrieved using <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-
</colgroup>
<tbody>
<tr>
-<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> <em class="structfield"><code><a name="hb-segment-properties-t.direction"></a>direction</code></em>;</p></td>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> <em class="structfield"><code><a name="hb-segment-properties-t-struct.direction"></a>direction</code></em>;</p></td>
<td class="struct_member_description"><p>the <a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> of the buffer, see <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-direction" title="hb_buffer_set_direction ()"><code class="function">hb_buffer_set_direction()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
-<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> <em class="structfield"><code><a name="hb-segment-properties-t.script"></a>script</code></em>;</p></td>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> <em class="structfield"><code><a name="hb-segment-properties-t-struct.script"></a>script</code></em>;</p></td>
<td class="struct_member_description"><p>the <a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> of the buffer, see <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-script" title="hb_buffer_set_script ()"><code class="function">hb_buffer_set_script()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
-<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> <em class="structfield"><code><a name="hb-segment-properties-t.language"></a>language</code></em>;</p></td>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> <em class="structfield"><code><a name="hb-segment-properties-t-struct.language"></a>language</code></em>;</p></td>
<td class="struct_member_description"><p>the <a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> of the buffer, see <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-language" title="hb_buffer_set_language ()"><code class="function">hb_buffer_set_language()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
diff --git a/docs/html/harfbuzz-hb-common.html b/docs/html/harfbuzz-hb-common.html
index 7074d2c..9e6e597 100644
--- a/docs/html/harfbuzz-hb-common.html
+++ b/docs/html/harfbuzz-hb-common.html
@@ -5,7 +5,7 @@
<title>hb-common: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch09.html" title="Core API">
+<link rel="up" href="ch11.html" title="Core API">
<link rel="prev" href="harfbuzz-hb-buffer.html" title="hb-buffer">
<link rel="next" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
@@ -15,10 +15,11 @@
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
- <a href="#harfbuzz-hb-common.description" class="shortcut">Description</a></span>
+ <a href="#harfbuzz-hb-common.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+ <a href="#harfbuzz-hb-common.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch09.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch11.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="harfbuzz-hb-buffer.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="harfbuzz-hb-deprecated.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
@@ -216,7 +217,7 @@
</tbody>
</table></div>
</div>
-<div class="refsect1">
+<a name="hb-feature-t"></a><a name="hb-user-data-key-t"></a><div class="refsect1">
<a name="harfbuzz-hb-common.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
@@ -242,7 +243,7 @@
</tr>
<tr>
<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t">hb_feature_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-common.html#hb-feature-t-struct" title="hb_feature_t">hb_feature_t</a></td>
</tr>
<tr>
<td class="datatype_keyword"> </td>
@@ -266,7 +267,7 @@
</tr>
<tr>
<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t">hb_user_data_key_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t-struct" title="hb_user_data_key_t">hb_user_data_key_t</a></td>
</tr>
<tr>
<td class="datatype_keyword"> </td>
@@ -300,6 +301,16 @@
</table></div>
</div>
<div class="refsect1">
+<a name="harfbuzz-hb-common.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
+ <span class="lineart">├──</span> hb_feature_t
+ <span class="lineart">╰──</span> hb_user_data_key_t
+ <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GEnum</a>
+ <span class="lineart">├──</span> hb_direction_t
+ <span class="lineart">╰──</span> hb_script_t
+</pre>
+</div>
+<div class="refsect1">
<a name="harfbuzz-hb-common.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;hb.h&gt;
</pre>
@@ -445,7 +456,7 @@ ISO 15924 tag. </p></td>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>length of the <em class="parameter"><code>str</code></em>
-, or -1 if it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated.</p></td>
+, or -1 if it is <code class="literal">NULL</code>-terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -473,7 +484,7 @@ hb_script_to_iso15924_tag (<em class="parameter"><code><a class="link" href="har
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>script</p></td>
-<td class="parameter_description"><p>an <span class="type">hb_script_</span> to convert.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> to convert.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -518,7 +529,7 @@ a BCP 47 language tag. </p></td>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>length of the <em class="parameter"><code>str</code></em>
-, or -1 if it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated.</p></td>
+, or -1 if it is <code class="literal">NULL</code>-terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -554,7 +565,7 @@ hb_language_to_string (<em class="parameter"><code><a class="link" href="harfbuz
</div>
<div class="refsect3">
<a name="hb-language-to-string.returns"></a><h4>Returns</h4>
-<p>A <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated string representing the <em class="parameter"><code>language</code></em>
+<p>A <code class="literal">NULL</code>-terminated string representing the <em class="parameter"><code>language</code></em>
. Must not be freed by
the caller. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
@@ -586,8 +597,8 @@ HarfBuzz itself.</p>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
hb_feature_from_string (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>,
<em class="parameter"><code><span class="type">int</span> len</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> *feature</code></em>);</pre>
-<p>Parses a string into a <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a>.</p>
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-feature-t"><span class="type">hb_feature_t</span></a> *feature</code></em>);</pre>
+<p>Parses a string into a <a class="link" href="harfbuzz-hb-common.html#hb-feature-t"><span class="type">hb_feature_t</span></a>.</p>
<p>The format for specifying feature strings follows. All valid CSS
font-feature-settings values other than 'normal' and the global values are
also accepted, though not documented below. CSS string escapes are not
@@ -742,12 +753,12 @@ position before the first character is always 0.</p>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>length of <em class="parameter"><code>str</code></em>
-, or -1 if string is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated</p></td>
+, or -1 if string is <code class="literal">NULL</code> terminated</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>feature</p></td>
-<td class="parameter_description"><p>the <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> to initialize with the parsed values. </p></td>
+<td class="parameter_description"><p>the <a class="link" href="harfbuzz-hb-common.html#hb-feature-t"><span class="type">hb_feature_t</span></a> to initialize with the parsed values. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
@@ -764,10 +775,10 @@ is successfully parsed, <code class="literal">false</code> otherwise.</p>
<div class="refsect2">
<a name="hb-feature-to-string"></a><h3>hb_feature_to_string ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_feature_to_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> *feature</code></em>,
+hb_feature_to_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-feature-t"><span class="type">hb_feature_t</span></a> *feature</code></em>,
<em class="parameter"><code><span class="type">char</span> *buf</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> size</code></em>);</pre>
-<p>Converts a <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> into a <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated string in the format
+<p>Converts a <a class="link" href="harfbuzz-hb-common.html#hb-feature-t"><span class="type">hb_feature_t</span></a> into a <code class="literal">NULL</code>-terminated string in the format
understood by <a class="link" href="harfbuzz-hb-common.html#hb-feature-from-string" title="hb_feature_from_string ()"><code class="function">hb_feature_from_string()</code></a>. The client in responsible for
allocating big enough size for <em class="parameter"><code>buf</code></em>
, 128 bytes is more than enough.</p>
@@ -782,7 +793,7 @@ allocating big enough size for <em class="parameter"><code>buf</code></em>
<tbody>
<tr>
<td class="parameter_name"><p>feature</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> to convert</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-common.html#hb-feature-t"><span class="type">hb_feature_t</span></a> to convert</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -946,7 +957,7 @@ hb_variation_to_string (<em class="parameter"><code><a class="link" href="harfbu
</div>
<hr>
<div class="refsect2">
-<a name="hb-feature-t"></a><h3>hb_feature_t</h3>
+<a name="hb-feature-t-struct"></a><h3>hb_feature_t</h3>
<pre class="programlisting">typedef struct {
hb_tag_t tag;
uint32_t value;
@@ -954,6 +965,50 @@ hb_variation_to_string (<em class="parameter"><code><a class="link" href="harfbu
unsigned int end;
} hb_feature_t;
</pre>
+<p>The <a class="link" href="harfbuzz-hb-common.html#hb-feature-t"><span class="type">hb_feature_t</span></a> is the structure that holds information about requested
+feature application. The feature will be applied with the given value to all
+glyphs which are in clusters between <em class="parameter"><code>start</code></em>
+ (inclusive) and <em class="parameter"><code>end</code></em>
+ (exclusive).
+Setting start to <em class="parameter"><code>HB_FEATURE_GLOBAL_START</code></em>
+ and end to <em class="parameter"><code>HB_FEATURE_GLOBAL_END</code></em>
+
+specifies that the feature always applies to the entire buffer.</p>
+<div class="refsect3">
+<a name="hb-feature-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> <em class="structfield"><code><a name="hb-feature-t-struct.tag"></a>tag</code></em>;</p></td>
+<td class="struct_member_description"><p>a feature tag</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">uint32_t</span> <em class="structfield"><code><a name="hb-feature-t-struct.value"></a>value</code></em>;</p></td>
+<td class="struct_member_description"><p>0 disables the feature, non-zero (usually 1) enables the feature.
+For features implemented as lookup type 3 (like 'salt') the <em class="parameter"><code>value</code></em>
+is a one
+based index into the alternates.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p>unsigned <span class="type">int</span> <em class="structfield"><code><a name="hb-feature-t-struct.start"></a>start</code></em>;</p></td>
+<td class="struct_member_description"><p>the cluster to start applying this feature setting (inclusive).</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p>unsigned <span class="type">int</span> <em class="structfield"><code><a name="hb-feature-t-struct.end"></a>end</code></em>;</p></td>
+<td class="struct_member_description"><p>the cluster to end applying this feature setting (exclusive).</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
</div>
<hr>
<div class="refsect2">
@@ -1041,7 +1096,7 @@ hb_variation_to_string (<em class="parameter"><code><a class="link" href="harfbu
</div>
<hr>
<div class="refsect2">
-<a name="hb-user-data-key-t"></a><h3>hb_user_data_key_t</h3>
+<a name="hb-user-data-key-t-struct"></a><h3>hb_user_data_key_t</h3>
<pre class="programlisting">typedef struct {
} hb_user_data_key_t;
</pre>
diff --git a/docs/html/harfbuzz-hb-coretext.html b/docs/html/harfbuzz-hb-coretext.html
index 143871a..3235a3a 100644
--- a/docs/html/harfbuzz-hb-coretext.html
+++ b/docs/html/harfbuzz-hb-coretext.html
@@ -5,8 +5,8 @@
<title>hb-coretext: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch12.html" title="Integration API">
-<link rel="prev" href="ch12.html" title="Integration API">
+<link rel="up" href="ch14.html" title="Integration API">
+<link rel="prev" href="ch14.html" title="Integration API">
<link rel="next" href="harfbuzz-hb-ft.html" title="hb-ft">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
@@ -18,8 +18,8 @@
<a href="#harfbuzz-hb-coretext.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch12.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="ch12.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch14.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="ch14.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="harfbuzz-hb-ft.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
@@ -41,7 +41,7 @@
<tbody>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
+<a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-coretext.html#hb-coretext-face-create" title="hb_coretext_face_create ()">hb_coretext_face_create</a> <span class="c_punctuation">()</span>
@@ -49,7 +49,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
+<a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-coretext.html#hb-coretext-font-create" title="hb_coretext_font_create ()">hb_coretext_font_create</a> <span class="c_punctuation">()</span>
@@ -110,26 +110,26 @@
<a name="harfbuzz-hb-coretext.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="hb-coretext-face-create"></a><h3>hb_coretext_face_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
hb_coretext_face_create (<em class="parameter"><code><span class="type">CGFontRef</span> cg_font</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-coretext-font-create"></a><h3>hb_coretext_font_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
hb_coretext_font_create (<em class="parameter"><code><span class="type">CTFontRef</span> ct_font</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-coretext-face-get-cg-font"></a><h3>hb_coretext_face_get_cg_font ()</h3>
<pre class="programlisting"><span class="returnvalue">CGFontRef</span>
-hb_coretext_face_get_cg_font (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_coretext_face_get_cg_font (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-coretext-font-get-ct-font"></a><h3>hb_coretext_font_get_ct_font ()</h3>
<pre class="programlisting"><span class="returnvalue">CTFontRef</span>
-hb_coretext_font_get_ct_font (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+hb_coretext_font_get_ct_font (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
</div>
</div>
<div class="refsect1">
diff --git a/docs/html/harfbuzz-hb-deprecated.html b/docs/html/harfbuzz-hb-deprecated.html
index 428c2a7..2ad43b9 100644
--- a/docs/html/harfbuzz-hb-deprecated.html
+++ b/docs/html/harfbuzz-hb-deprecated.html
@@ -5,7 +5,7 @@
<title>hb-deprecated: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch09.html" title="Core API">
+<link rel="up" href="ch11.html" title="Core API">
<link rel="prev" href="harfbuzz-hb-common.html" title="hb-common">
<link rel="next" href="harfbuzz-hb-face.html" title="hb-face">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
@@ -18,7 +18,7 @@
<a href="#harfbuzz-hb-deprecated.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch09.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch11.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="harfbuzz-hb-common.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="harfbuzz-hb-face.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
@@ -60,14 +60,6 @@
<span class="returnvalue">void</span>
</td>
<td class="function_name">
-<a class="link" href="harfbuzz-hb-deprecated.html#hb-font-funcs-set-glyph-h-kerning-func" title="hb_font_funcs_set_glyph_h_kerning_func ()">hb_font_funcs_set_glyph_h_kerning_func</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">void</span>
-</td>
-<td class="function_name">
<a class="link" href="harfbuzz-hb-deprecated.html#hb-font-funcs-set-glyph-v-kerning-func" title="hb_font_funcs_set_glyph_v_kerning_func ()">hb_font_funcs_set_glyph_v_kerning_func</a> <span class="c_punctuation">()</span>
</td>
</tr>
@@ -76,30 +68,6 @@
<a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
</td>
<td class="function_name">
-<a class="link" href="harfbuzz-hb-deprecated.html#hb-font-get-glyph-h-kerning" title="hb_font_get_glyph_h_kerning ()">hb_font_get_glyph_h_kerning</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">void</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-deprecated.html#hb-font-get-glyph-kerning-for-direction" title="hb_font_get_glyph_kerning_for_direction ()">hb_font_get_glyph_kerning_for_direction</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
-</td>
-<td class="function_name">
-<span class="c_punctuation">(</span><a class="link" href="harfbuzz-hb-deprecated.html#hb-font-get-glyph-kerning-func-t" title="hb_font_get_glyph_kerning_func_t ()">*hb_font_get_glyph_kerning_func_t</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
-</td>
-<td class="function_name">
<a class="link" href="harfbuzz-hb-deprecated.html#hb-font-get-glyph-v-kerning" title="hb_font_get_glyph_v_kerning ()">hb_font_get_glyph_v_kerning</a> <span class="c_punctuation">()</span>
</td>
</tr>
@@ -128,15 +96,15 @@
</tr>
<tr>
<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-deprecated.html#HB-OT-VAR-NO-AXIS-INDEX:CAPS" title="HB_OT_VAR_NO_AXIS_INDEX">HB_OT_VAR_NO_AXIS_INDEX</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-deprecated.html#HB-MATH-GLYPH-PART-FLAG-EXTENDER:CAPS" title="HB_MATH_GLYPH_PART_FLAG_EXTENDER">HB_MATH_GLYPH_PART_FLAG_EXTENDER</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-deprecated.html#HB-UNICODE-MAX-DECOMPOSITION-LEN:CAPS" title="HB_UNICODE_MAX_DECOMPOSITION_LEN">HB_UNICODE_MAX_DECOMPOSITION_LEN</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-deprecated.html#HB-OT-VAR-NO-AXIS-INDEX:CAPS" title="HB_OT_VAR_NO_AXIS_INDEX">HB_OT_VAR_NO_AXIS_INDEX</a></td>
</tr>
<tr>
-<td class="typedef_keyword">typedef</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-deprecated.html#hb-font-get-glyph-h-kerning-func-t" title="hb_font_get_glyph_h_kerning_func_t">hb_font_get_glyph_h_kerning_func_t</a></td>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-deprecated.html#HB-UNICODE-MAX-DECOMPOSITION-LEN:CAPS" title="HB_UNICODE_MAX_DECOMPOSITION_LEN">HB_UNICODE_MAX_DECOMPOSITION_LEN</a></td>
</tr>
<tr>
<td class="typedef_keyword">typedef</td>
@@ -160,7 +128,7 @@ were deemed unnecessary.</p>
<div class="refsect2">
<a name="hb-font-get-glyph-func-t"></a><h3>hb_font_get_glyph_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-<span class="c_punctuation">(</span>*hb_font_get_glyph_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_font_get_glyph_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> variation_selector</code></em>,
@@ -172,23 +140,14 @@ were deemed unnecessary.</p>
<div class="refsect2">
<a name="hb-ot-layout-table-find-script"></a><h3>hb_ot_layout_table_find_script ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_layout_table_find_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_table_find_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> script_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *script_index</code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-font-funcs-set-glyph-h-kerning-func"></a><h3>hb_font_funcs_set_glyph_h_kerning_func ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_funcs_set_glyph_h_kerning_func
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-deprecated.html#hb-font-get-glyph-h-kerning-func-t" title="hb_font_get_glyph_h_kerning_func_t"><span class="type">hb_font_get_glyph_h_kerning_func_t</span></a> func</code></em>,
- <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
-<div class="warning"><p><code class="literal">hb_font_funcs_set_glyph_h_kerning_func</code> has been deprecated since version 2.0.0 and should not be used in newly-written code.</p></div>
+<p>Fetches the index if a given script tag in the specified face's GSUB table
+or GPOS table.</p>
<div class="refsect3">
-<a name="hb-font-funcs-set-glyph-h-kerning-func.parameters"></a><h4>Parameters</h4>
+<a name="hb-ot-layout-table-find-script.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
@@ -197,26 +156,39 @@ hb_font_funcs_set_glyph_h_kerning_func
</colgroup>
<tbody>
<tr>
-<td class="parameter_name"><p>ffuncs</p></td>
-<td class="parameter_description"><p>font functions.</p></td>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td class="parameter_name"><p>func</p></td>
-<td class="parameter_description"><p>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym> user_data][<acronym title="This parameter is a 'destroy_data', for callbacks."><span class="acronym">destroy</span></acronym> destroy][<acronym title="The callback is valid until the GDestroyNotify argument is called."><span class="acronym">scope notified</span></acronym>]</span></td>
+<td class="parameter_name"><p>table_tag</p></td>
+<td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>script_tag</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> of the script tag requested</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>script_index</p></td>
+<td class="parameter_description"><p>The index of the requested script tag. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="hb-ot-layout-table-find-script.returns"></a><h4>Returns</h4>
+<p> true if the script is found, false otherwise</p>
+</div>
</div>
<hr>
<div class="refsect2">
<a name="hb-font-funcs-set-glyph-v-kerning-func"></a><h3>hb_font_funcs_set_glyph_v_kerning_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_funcs_set_glyph_v_kerning_func
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-deprecated.html#hb-font-get-glyph-v-kerning-func-t" title="hb_font_get_glyph_v_kerning_func_t"><span class="type">hb_font_get_glyph_v_kerning_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
@@ -247,86 +219,9 @@ hb_font_funcs_set_glyph_v_kerning_func
</div>
<hr>
<div class="refsect2">
-<a name="hb-font-get-glyph-h-kerning"></a><h3>hb_font_get_glyph_h_kerning ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
-hb_font_get_glyph_h_kerning (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> left_glyph</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> right_glyph</code></em>);</pre>
-<div class="warning"><p><code class="literal">hb_font_get_glyph_h_kerning</code> has been deprecated since version 2.0.0 and should not be used in newly-written code.</p></div>
-<div class="refsect3">
-<a name="hb-font-get-glyph-h-kerning.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p>a font.</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-font-get-glyph-kerning-for-direction"></a><h3>hb_font_get_glyph_kerning_for_direction ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_get_glyph_kerning_for_direction
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> first_glyph</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> second_glyph</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *y</code></em>);</pre>
-<div class="warning"><p><code class="literal">hb_font_get_glyph_kerning_for_direction</code> has been deprecated since version 2.0.0 and should not be used in newly-written code.</p></div>
-<div class="refsect3">
-<a name="hb-font-get-glyph-kerning-for-direction.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p>a font.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>x</p></td>
-<td class="parameter_description"><p>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>y</p></td>
-<td class="parameter_description"><p>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-font-get-glyph-kerning-func-t"></a><h3>hb_font_get_glyph_kerning_func_t ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
-<span class="c_punctuation">(</span>*hb_font_get_glyph_kerning_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
- <em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> first_glyph</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> second_glyph</code></em>,
- <em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
-<div class="warning"><p><code class="literal">hb_font_get_glyph_kerning_func_t</code> is deprecated and should not be used in newly-written code.</p></div>
-</div>
-<hr>
-<div class="refsect2">
<a name="hb-font-get-glyph-v-kerning"></a><h3>hb_font_get_glyph_v_kerning ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
-hb_font_get_glyph_v_kerning (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_v_kerning (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> top_glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> bottom_glyph</code></em>);</pre>
<div class="warning"><p><code class="literal">hb_font_get_glyph_v_kerning</code> has been deprecated since version 2.0.0 and should not be used in newly-written code.</p></div>
@@ -372,6 +267,13 @@ hb_font_get_glyph_v_kerning (<em class="parameter"><code><a class="link" href="h
</div>
<hr>
<div class="refsect2">
+<a name="HB-MATH-GLYPH-PART-FLAG-EXTENDER:CAPS"></a><h3>HB_MATH_GLYPH_PART_FLAG_EXTENDER</h3>
+<pre class="programlisting">#define HB_MATH_GLYPH_PART_FLAG_EXTENDER HB_OT_MATH_GLYPH_PART_FLAG_EXTENDER
+</pre>
+<div class="warning"><p><code class="literal">HB_MATH_GLYPH_PART_FLAG_EXTENDER</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
<a name="HB-OT-VAR-NO-AXIS-INDEX:CAPS"></a><h3>HB_OT_VAR_NO_AXIS_INDEX</h3>
<pre class="programlisting">#define HB_OT_VAR_NO_AXIS_INDEX 0xFFFFFFFFu
</pre>
@@ -388,13 +290,6 @@ hb_font_get_glyph_v_kerning (<em class="parameter"><code><a class="link" href="h
</div>
<hr>
<div class="refsect2">
-<a name="hb-font-get-glyph-h-kerning-func-t"></a><h3>hb_font_get_glyph_h_kerning_func_t</h3>
-<pre class="programlisting">typedef hb_font_get_glyph_kerning_func_t hb_font_get_glyph_h_kerning_func_t;
-</pre>
-<div class="warning"><p><code class="literal">hb_font_get_glyph_h_kerning_func_t</code> is deprecated and should not be used in newly-written code.</p></div>
-</div>
-<hr>
-<div class="refsect2">
<a name="hb-font-get-glyph-v-kerning-func-t"></a><h3>hb_font_get_glyph_v_kerning_func_t</h3>
<pre class="programlisting">typedef hb_font_get_glyph_kerning_func_t hb_font_get_glyph_v_kerning_func_t;
</pre>
diff --git a/docs/html/harfbuzz-hb-face.html b/docs/html/harfbuzz-hb-face.html
index e32b160..b5ecebe 100644
--- a/docs/html/harfbuzz-hb-face.html
+++ b/docs/html/harfbuzz-hb-face.html
@@ -5,7 +5,7 @@
<title>hb-face: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch09.html" title="Core API">
+<link rel="up" href="ch11.html" title="Core API">
<link rel="prev" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">
<link rel="next" href="harfbuzz-hb-font.html" title="hb-font">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
@@ -15,10 +15,11 @@
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
- <a href="#harfbuzz-hb-face.description" class="shortcut">Description</a></span>
+ <a href="#harfbuzz-hb-face.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+ <a href="#harfbuzz-hb-face.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch09.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch11.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="harfbuzz-hb-deprecated.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="harfbuzz-hb-font.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
@@ -48,7 +49,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
+<a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-face.html#hb-face-create" title="hb_face_create ()">hb_face_create</a> <span class="c_punctuation">()</span>
@@ -56,7 +57,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
+<a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-face.html#hb-face-create-for-tables" title="hb_face_create_for_tables ()">hb_face_create_for_tables</a> <span class="c_punctuation">()</span>
@@ -72,7 +73,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
+<a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-face.html#hb-face-get-empty" title="hb_face_get_empty ()">hb_face_get_empty</a> <span class="c_punctuation">()</span>
@@ -132,7 +133,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
+<a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-face.html#hb-face-reference" title="hb_face_reference ()">hb_face_reference</a> <span class="c_punctuation">()</span>
@@ -140,7 +141,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-face.html#hb-face-reference-blob" title="hb_face_reference_blob ()">hb_face_reference_blob</a> <span class="c_punctuation">()</span>
@@ -148,7 +149,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-face.html#hb-face-reference-table" title="hb_face_reference_table ()">hb_face_reference_table</a> <span class="c_punctuation">()</span>
@@ -212,7 +213,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
+<a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-face.html#hb-face-builder-create" title="hb_face_builder_create ()">hb_face_builder_create</a> <span class="c_punctuation">()</span>
@@ -229,7 +230,7 @@
</tbody>
</table></div>
</div>
-<div class="refsect1">
+<a name="hb-face-t"></a><div class="refsect1">
<a name="harfbuzz-hb-face.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
@@ -238,11 +239,17 @@
</colgroup>
<tbody><tr>
<td class="typedef_keyword">typedef</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t">hb_face_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-face.html#hb-face-t">hb_face_t</a></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
+<a name="harfbuzz-hb-face.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
+ <span class="lineart">╰──</span> hb_face_t
+</pre>
+</div>
+<div class="refsect1">
<a name="harfbuzz-hb-face.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;hb.h&gt;
</pre>
@@ -259,7 +266,7 @@ Font faces are used to create fonts.</p>
<div class="refsect2">
<a name="hb-face-count"></a><h3>hb_face_count ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_face_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
+hb_face_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
<p>Get number of faces in a blob.</p>
<div class="refsect3">
<a name="hb-face-count.parameters"></a><h4>Parameters</h4>
@@ -286,8 +293,8 @@ hb_face_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blo
<hr>
<div class="refsect2">
<a name="hb-face-create"></a><h3>hb_face_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
-hb_face_create (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
+hb_face_create (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> index</code></em>);</pre>
<p><span class="annotation">[Xconstructor]</span></p>
<div class="refsect3">
@@ -300,7 +307,7 @@ hb_face_create (<em class="parameter"><code><a class="link" href="harfbuzz-hb-bl
<hr>
<div class="refsect2">
<a name="hb-face-create-for-tables"></a><h3>hb_face_create_for_tables ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
hb_face_create_for_tables (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-reference-table-func-t" title="hb_reference_table_func_t ()"><span class="type">hb_reference_table_func_t</span></a> reference_table_func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
@@ -329,7 +336,7 @@ hb_face_create_for_tables (<em class="parameter"><code><a class="link" href="har
<div class="refsect2">
<a name="hb-face-destroy"></a><h3>hb_face_destroy ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_face_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_face_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-face-destroy.parameters"></a><h4>Parameters</h4>
@@ -351,7 +358,7 @@ hb_face_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-f
<hr>
<div class="refsect2">
<a name="hb-face-get-empty"></a><h3>hb_face_get_empty ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
hb_face_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<div class="refsect3">
<a name="hb-face-get-empty.returns"></a><h4>Returns</h4>
@@ -363,7 +370,7 @@ hb_face_get_empty (<em class="parameter"><code><span class="type">void</span></c
<div class="refsect2">
<a name="hb-face-get-table-tags"></a><h3>hb_face_get_table_tags ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_face_get_table_tags (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_face_get_table_tags (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *table_count</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *table_tags</code></em>);</pre>
@@ -411,7 +418,7 @@ array, output number of items written.</p></td>
<div class="refsect2">
<a name="hb-face-get-glyph-count"></a><h3>hb_face_get_glyph_count ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_face_get_glyph_count (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_face_get_glyph_count (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-get-glyph-count.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -433,7 +440,7 @@ hb_face_get_glyph_count (<em class="parameter"><code>const <a class="link" href=
<div class="refsect2">
<a name="hb-face-get-index"></a><h3>hb_face_get_index ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_face_get_index (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_face_get_index (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-get-index.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -455,7 +462,7 @@ hb_face_get_index (<em class="parameter"><code>const <a class="link" href="harfb
<div class="refsect2">
<a name="hb-face-get-upem"></a><h3>hb_face_get_upem ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_face_get_upem (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_face_get_upem (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-get-upem.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -477,8 +484,8 @@ hb_face_get_upem (<em class="parameter"><code>const <a class="link" href="harfbu
<div class="refsect2">
<a name="hb-face-get-user-data"></a><h3>hb_face_get_user_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> *
-hb_face_get_user_data (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
+hb_face_get_user_data (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-face-get-user-data.parameters"></a><h4>Parameters</h4>
@@ -506,7 +513,7 @@ hb_face_get_user_data (<em class="parameter"><code>const <a class="link" href="h
<div class="refsect2">
<a name="hb-face-is-immutable"></a><h3>hb_face_is_immutable ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_face_is_immutable (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_face_is_immutable (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-is-immutable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -528,7 +535,7 @@ hb_face_is_immutable (<em class="parameter"><code>const <a class="link" href="ha
<div class="refsect2">
<a name="hb-face-make-immutable"></a><h3>hb_face_make_immutable ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_face_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_face_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-make-immutable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -549,8 +556,8 @@ hb_face_make_immutable (<em class="parameter"><code><a class="link" href="harfbu
<hr>
<div class="refsect2">
<a name="hb-face-reference"></a><h3>hb_face_reference ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
-hb_face_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
+hb_face_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-face-reference.parameters"></a><h4>Parameters</h4>
@@ -572,8 +579,8 @@ hb_face_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb
<hr>
<div class="refsect2">
<a name="hb-face-reference-blob"></a><h3>hb_face_reference_blob ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
-hb_face_reference_blob (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
+hb_face_reference_blob (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-reference-blob.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -599,8 +606,8 @@ hb_face_reference_blob (<em class="parameter"><code><a class="link" href="harfbu
<hr>
<div class="refsect2">
<a name="hb-face-reference-table"></a><h3>hb_face_reference_table ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
-hb_face_reference_table (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
+hb_face_reference_table (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> tag</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-reference-table.parameters"></a><h4>Parameters</h4>
@@ -628,7 +635,7 @@ hb_face_reference_table (<em class="parameter"><code>const <a class="link" href=
<div class="refsect2">
<a name="hb-face-set-glyph-count"></a><h3>hb_face_set_glyph_count ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_face_set_glyph_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_face_set_glyph_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> glyph_count</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-set-glyph-count.parameters"></a><h4>Parameters</h4>
@@ -651,7 +658,7 @@ hb_face_set_glyph_count (<em class="parameter"><code><a class="link" href="harfb
<div class="refsect2">
<a name="hb-face-set-index"></a><h3>hb_face_set_index ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_face_set_index (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_face_set_index (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> index</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-set-index.parameters"></a><h4>Parameters</h4>
@@ -674,7 +681,7 @@ hb_face_set_index (<em class="parameter"><code><a class="link" href="harfbuzz-hb
<div class="refsect2">
<a name="hb-face-set-upem"></a><h3>hb_face_set_upem ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_face_set_upem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_face_set_upem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> upem</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-set-upem.parameters"></a><h4>Parameters</h4>
@@ -697,8 +704,8 @@ hb_face_set_upem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
<div class="refsect2">
<a name="hb-face-set-user-data"></a><h3>hb_face_set_user_data ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_face_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
+hb_face_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
<em class="parameter"><code><span class="type">void</span> *data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
@@ -724,8 +731,8 @@ hb_face_set_user_data (<em class="parameter"><code><a class="link" href="harfbuz
<div class="refsect2">
<a name="hb-face-collect-unicodes"></a><h3>hb_face_collect_unicodes ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_face_collect_unicodes (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *out</code></em>);</pre>
+hb_face_collect_unicodes (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *out</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-collect-unicodes.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -755,8 +762,8 @@ to.</p></td>
<div class="refsect2">
<a name="hb-face-collect-variation-selectors"></a><h3>hb_face_collect_variation_selectors ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_face_collect_variation_selectors (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *out</code></em>);</pre>
+hb_face_collect_variation_selectors (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *out</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-collect-variation-selectors.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -786,9 +793,9 @@ to.</p></td>
<div class="refsect2">
<a name="hb-face-collect-variation-unicodes"></a><h3>hb_face_collect_variation_unicodes ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_face_collect_variation_unicodes (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_face_collect_variation_unicodes (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> variation_selector</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *out</code></em>);</pre>
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *out</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-collect-variation-unicodes.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -818,9 +825,9 @@ to.</p></td>
<hr>
<div class="refsect2">
<a name="hb-face-builder-create"></a><h3>hb_face_builder_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
hb_face_builder_create (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Creates a <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> that can be used with <a class="link" href="harfbuzz-hb-face.html#hb-face-builder-add-table" title="hb_face_builder_add_table ()"><code class="function">hb_face_builder_add_table()</code></a>.
+<p>Creates a <a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> that can be used with <a class="link" href="harfbuzz-hb-face.html#hb-face-builder-add-table" title="hb_face_builder_add_table ()"><code class="function">hb_face_builder_add_table()</code></a>.
After tables are added to the face, it can be compiled to a binary
font file by calling <a class="link" href="harfbuzz-hb-face.html#hb-face-reference-blob" title="hb_face_reference_blob ()"><code class="function">hb_face_reference_blob()</code></a>.</p>
<div class="refsect3">
@@ -834,9 +841,9 @@ font file by calling <a class="link" href="harfbuzz-hb-face.html#hb-face-referen
<div class="refsect2">
<a name="hb-face-builder-add-table"></a><h3>hb_face_builder_add_table ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_face_builder_add_table (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_face_builder_add_table (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> tag</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
<p>Add table for <em class="parameter"><code>tag</code></em>
with data provided by <em class="parameter"><code>blob</code></em>
to the face. <em class="parameter"><code>face</code></em>
diff --git a/docs/html/harfbuzz-hb-font.html b/docs/html/harfbuzz-hb-font.html
index 5c9785f..4cc59b3 100644
--- a/docs/html/harfbuzz-hb-font.html
+++ b/docs/html/harfbuzz-hb-font.html
@@ -5,7 +5,7 @@
<title>hb-font: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch09.html" title="Core API">
+<link rel="up" href="ch11.html" title="Core API">
<link rel="prev" href="harfbuzz-hb-face.html" title="hb-face">
<link rel="next" href="harfbuzz-hb-map.html" title="hb-map">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
@@ -15,10 +15,11 @@
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
- <a href="#harfbuzz-hb-font.description" class="shortcut">Description</a></span>
+ <a href="#harfbuzz-hb-font.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+ <a href="#harfbuzz-hb-font.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch09.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch11.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="harfbuzz-hb-face.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="harfbuzz-hb-map.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
@@ -49,7 +50,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
+<a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-font.html#hb-font-create" title="hb_font_create ()">hb_font_create</a> <span class="c_punctuation">()</span>
@@ -57,7 +58,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
+<a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-font.html#hb-font-create-sub-font" title="hb_font_create_sub_font ()">hb_font_create_sub_font</a> <span class="c_punctuation">()</span>
@@ -73,7 +74,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="returnvalue">hb_font_funcs_t</span></a> *
+<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="returnvalue">hb_font_funcs_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-create" title="hb_font_funcs_create ()">hb_font_funcs_create</a> <span class="c_punctuation">()</span>
@@ -89,7 +90,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="returnvalue">hb_font_funcs_t</span></a> *
+<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="returnvalue">hb_font_funcs_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-get-empty" title="hb_font_funcs_get_empty ()">hb_font_funcs_get_empty</a> <span class="c_punctuation">()</span>
@@ -121,7 +122,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="returnvalue">hb_font_funcs_t</span></a> *
+<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="returnvalue">hb_font_funcs_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-reference" title="hb_font_funcs_reference ()">hb_font_funcs_reference</a> <span class="c_punctuation">()</span>
@@ -172,6 +173,14 @@
<span class="returnvalue">void</span>
</td>
<td class="function_name">
+<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-set-glyph-h-kerning-func" title="hb_font_funcs_set_glyph_h_kerning_func ()">hb_font_funcs_set_glyph_h_kerning_func</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-set-glyph-h-origin-func" title="hb_font_funcs_set_glyph_h_origin_func ()">hb_font_funcs_set_glyph_h_origin_func</a> <span class="c_punctuation">()</span>
</td>
</tr>
@@ -241,7 +250,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
+<a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-font.html#hb-font-get-empty" title="hb_font_get_empty ()">hb_font_get_empty</a> <span class="c_punctuation">()</span>
@@ -249,7 +258,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
+<a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-font.html#hb-font-get-face" title="hb_font_get_face ()">hb_font_get_face</a> <span class="c_punctuation">()</span>
@@ -377,6 +386,14 @@
</tr>
<tr>
<td class="function_type">
+<a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-h-kerning" title="hb_font_get_glyph_h_kerning ()">hb_font_get_glyph_h_kerning</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
<a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
</td>
<td class="function_name">
@@ -385,6 +402,22 @@
</tr>
<tr>
<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-kerning-for-direction" title="hb_font_get_glyph_kerning_for_direction ()">hb_font_get_glyph_kerning_for_direction</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-kerning-func-t" title="hb_font_get_glyph_kerning_func_t ()">*hb_font_get_glyph_kerning_func_t</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
<a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
</td>
<td class="function_name">
@@ -456,8 +489,15 @@
</td>
</tr>
<tr>
+<td class="function_type">unsigned <span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-font.html#hb-font-get-nominal-glyphs" title="hb_font_get_nominal_glyphs ()">hb_font_get_nominal_glyphs</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
+<a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-font.html#hb-font-get-parent" title="hb_font_get_parent ()">hb_font_get_parent</a> <span class="c_punctuation">()</span>
@@ -552,7 +592,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
+<a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-font.html#hb-font-reference" title="hb_font_reference ()">hb_font_reference</a> <span class="c_punctuation">()</span>
@@ -651,12 +691,20 @@
<span class="returnvalue">void</span>
</td>
<td class="function_name">
+<a class="link" href="harfbuzz-hb-font.html#hb-font-set-var-named-instance" title="hb_font_set_var_named_instance ()">hb_font_set_var_named_instance</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
<a class="link" href="harfbuzz-hb-font.html#hb-font-subtract-glyph-origin-for-direction" title="hb_font_subtract_glyph_origin_for_direction ()">hb_font_subtract_glyph_origin_for_direction</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
</td>
<td class="function_name">
<span class="c_punctuation">(</span><a class="link" href="harfbuzz-hb-font.html#hb-reference-table-func-t" title="hb_reference_table_func_t ()">*hb_reference_table_func_t</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
@@ -713,7 +761,7 @@
</tbody>
</table></div>
</div>
-<div class="refsect1">
+<a name="hb-font-funcs-t"></a><a name="hb-font-t"></a><div class="refsect1">
<a name="harfbuzz-hb-font.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
@@ -723,7 +771,7 @@
<tbody>
<tr>
<td class="typedef_keyword">typedef</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t">hb_font_funcs_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t">hb_font_funcs_t</a></td>
</tr>
<tr>
<td class="typedef_keyword">typedef</td>
@@ -735,6 +783,10 @@
</tr>
<tr>
<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-h-kerning-func-t" title="hb_font_get_glyph_h_kerning_func_t">hb_font_get_glyph_h_kerning_func_t</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
<td class="function_name"><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-h-origin-func-t" title="hb_font_get_glyph_h_origin_func_t">hb_font_get_glyph_h_origin_func_t</a></td>
</tr>
<tr>
@@ -751,7 +803,7 @@
</tr>
<tr>
<td class="typedef_keyword">typedef</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t">hb_font_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-font.html#hb-font-t">hb_font_t</a></td>
</tr>
<tr>
<td class="typedef_keyword">typedef</td>
@@ -765,6 +817,13 @@
</table></div>
</div>
<div class="refsect1">
+<a name="harfbuzz-hb-font.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
+ <span class="lineart">├──</span> hb_font_funcs_t
+ <span class="lineart">╰──</span> hb_font_t
+</pre>
+</div>
+<div class="refsect1">
<a name="harfbuzz-hb-font.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;hb.h&gt;
</pre>
@@ -782,7 +841,7 @@ Fonts are created from font faces, and are used as input to
<a name="hb-font-add-glyph-origin-for-direction"></a><h3>hb_font_add_glyph_origin_for_direction ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_add_glyph_origin_for_direction
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
@@ -819,8 +878,8 @@ hb_font_add_glyph_origin_for_direction
<hr>
<div class="refsect2">
<a name="hb-font-create"></a><h3>hb_font_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
-hb_font_create (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
+hb_font_create (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<p><span class="annotation">[Xconstructor]</span></p>
<div class="refsect3">
<a name="hb-font-create.parameters"></a><h4>Parameters</h4>
@@ -847,8 +906,8 @@ hb_font_create (<em class="parameter"><code><a class="link" href="harfbuzz-hb-fa
<hr>
<div class="refsect2">
<a name="hb-font-create-sub-font"></a><h3>hb_font_create_sub_font ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
-hb_font_create_sub_font (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *parent</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
+hb_font_create_sub_font (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *parent</code></em>);</pre>
<div class="refsect3">
<a name="hb-font-create-sub-font.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -875,7 +934,7 @@ hb_font_create_sub_font (<em class="parameter"><code><a class="link" href="harfb
<div class="refsect2">
<a name="hb-font-destroy"></a><h3>hb_font_destroy ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+hb_font_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-font-destroy.parameters"></a><h4>Parameters</h4>
@@ -897,7 +956,7 @@ hb_font_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-f
<hr>
<div class="refsect2">
<a name="hb-font-funcs-create"></a><h3>hb_font_funcs_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="returnvalue">hb_font_funcs_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="returnvalue">hb_font_funcs_t</span></a> *
hb_font_funcs_create (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p><span class="annotation">[Xconstructor]</span></p>
<div class="refsect3">
@@ -911,7 +970,7 @@ hb_font_funcs_create (<em class="parameter"><code><span class="type">void</span>
<div class="refsect2">
<a name="hb-font-funcs-destroy"></a><h3>hb_font_funcs_destroy ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_funcs_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>);</pre>
+hb_font_funcs_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-font-funcs-destroy.parameters"></a><h4>Parameters</h4>
@@ -933,7 +992,7 @@ hb_font_funcs_destroy (<em class="parameter"><code><a class="link" href="harfbuz
<hr>
<div class="refsect2">
<a name="hb-font-funcs-get-empty"></a><h3>hb_font_funcs_get_empty ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="returnvalue">hb_font_funcs_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="returnvalue">hb_font_funcs_t</span></a> *
hb_font_funcs_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<div class="refsect3">
<a name="hb-font-funcs-get-empty.returns"></a><h4>Returns</h4>
@@ -946,8 +1005,8 @@ hb_font_funcs_get_empty (<em class="parameter"><code><span class="type">void</sp
<div class="refsect2">
<a name="hb-font-funcs-get-user-data"></a><h3>hb_font_funcs_get_user_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> *
-hb_font_funcs_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
+hb_font_funcs_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-font-funcs-get-user-data.parameters"></a><h4>Parameters</h4>
@@ -975,7 +1034,7 @@ hb_font_funcs_get_user_data (<em class="parameter"><code><a class="link" href="h
<div class="refsect2">
<a name="hb-font-funcs-is-immutable"></a><h3>hb_font_funcs_is_immutable ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_funcs_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>);</pre>
+hb_font_funcs_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>);</pre>
<div class="refsect3">
<a name="hb-font-funcs-is-immutable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -997,7 +1056,7 @@ hb_font_funcs_is_immutable (<em class="parameter"><code><a class="link" href="ha
<div class="refsect2">
<a name="hb-font-funcs-make-immutable"></a><h3>hb_font_funcs_make_immutable ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_funcs_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>);</pre>
+hb_font_funcs_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>);</pre>
<div class="refsect3">
<a name="hb-font-funcs-make-immutable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1018,8 +1077,8 @@ hb_font_funcs_make_immutable (<em class="parameter"><code><a class="link" href="
<hr>
<div class="refsect2">
<a name="hb-font-funcs-reference"></a><h3>hb_font_funcs_reference ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="returnvalue">hb_font_funcs_t</span></a> *
-hb_font_funcs_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="returnvalue">hb_font_funcs_t</span></a> *
+hb_font_funcs_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-font-funcs-reference.parameters"></a><h4>Parameters</h4>
@@ -1043,7 +1102,7 @@ hb_font_funcs_reference (<em class="parameter"><code><a class="link" href="harfb
<a name="hb-font-funcs-set-glyph-contour-point-func"></a><h3>hb_font_funcs_set_glyph_contour_point_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_funcs_set_glyph_contour_point_func
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-contour-point-func-t" title="hb_font_get_glyph_contour_point_func_t ()"><span class="type">hb_font_get_glyph_contour_point_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
@@ -1075,7 +1134,7 @@ hb_font_funcs_set_glyph_contour_point_func
<div class="refsect2">
<a name="hb-font-funcs-set-glyph-extents-func"></a><h3>hb_font_funcs_set_glyph_extents_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_funcs_set_glyph_extents_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+hb_font_funcs_set_glyph_extents_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-extents-func-t" title="hb_font_get_glyph_extents_func_t ()"><span class="type">hb_font_get_glyph_extents_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
@@ -1108,7 +1167,7 @@ hb_font_funcs_set_glyph_extents_func (<em class="parameter"><code><a class="link
<a name="hb-font-funcs-set-glyph-from-name-func"></a><h3>hb_font_funcs_set_glyph_from_name_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_funcs_set_glyph_from_name_func
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-from-name-func-t" title="hb_font_get_glyph_from_name_func_t ()"><span class="type">hb_font_get_glyph_from_name_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
@@ -1141,7 +1200,7 @@ hb_font_funcs_set_glyph_from_name_func
<a name="hb-font-funcs-set-glyph-h-advance-func"></a><h3>hb_font_funcs_set_glyph_h_advance_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_funcs_set_glyph_h_advance_func
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-h-advance-func-t" title="hb_font_get_glyph_h_advance_func_t"><span class="type">hb_font_get_glyph_h_advance_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
@@ -1174,7 +1233,7 @@ hb_font_funcs_set_glyph_h_advance_func
<a name="hb-font-funcs-set-glyph-h-advances-func"></a><h3>hb_font_funcs_set_glyph_h_advances_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_funcs_set_glyph_h_advances_func
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-h-advances-func-t" title="hb_font_get_glyph_h_advances_func_t"><span class="type">hb_font_get_glyph_h_advances_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
@@ -1204,9 +1263,42 @@ hb_font_funcs_set_glyph_h_advances_func
</div>
<hr>
<div class="refsect2">
+<a name="hb-font-funcs-set-glyph-h-kerning-func"></a><h3>hb_font_funcs_set_glyph_h_kerning_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hb_font_funcs_set_glyph_h_kerning_func
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-h-kerning-func-t" title="hb_font_get_glyph_h_kerning_func_t"><span class="type">hb_font_get_glyph_h_kerning_func_t</span></a> func</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
+<div class="refsect3">
+<a name="hb-font-funcs-set-glyph-h-kerning-func.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>ffuncs</p></td>
+<td class="parameter_description"><p>font functions.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym> user_data][<acronym title="This parameter is a 'destroy_data', for callbacks."><span class="acronym">destroy</span></acronym> destroy][<acronym title="The callback is valid until the GDestroyNotify argument is called."><span class="acronym">scope notified</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+</div>
+<hr>
+<div class="refsect2">
<a name="hb-font-funcs-set-glyph-h-origin-func"></a><h3>hb_font_funcs_set_glyph_h_origin_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_funcs_set_glyph_h_origin_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+hb_font_funcs_set_glyph_h_origin_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-h-origin-func-t" title="hb_font_get_glyph_h_origin_func_t"><span class="type">hb_font_get_glyph_h_origin_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
@@ -1238,7 +1330,7 @@ hb_font_funcs_set_glyph_h_origin_func (<em class="parameter"><code><a class="lin
<div class="refsect2">
<a name="hb-font-funcs-set-glyph-name-func"></a><h3>hb_font_funcs_set_glyph_name_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_funcs_set_glyph_name_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+hb_font_funcs_set_glyph_name_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-name-func-t" title="hb_font_get_glyph_name_func_t ()"><span class="type">hb_font_get_glyph_name_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
@@ -1271,7 +1363,7 @@ hb_font_funcs_set_glyph_name_func (<em class="parameter"><code><a class="link" h
<a name="hb-font-funcs-set-glyph-v-advance-func"></a><h3>hb_font_funcs_set_glyph_v_advance_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_funcs_set_glyph_v_advance_func
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-v-advance-func-t" title="hb_font_get_glyph_v_advance_func_t"><span class="type">hb_font_get_glyph_v_advance_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
@@ -1304,7 +1396,7 @@ hb_font_funcs_set_glyph_v_advance_func
<a name="hb-font-funcs-set-glyph-v-advances-func"></a><h3>hb_font_funcs_set_glyph_v_advances_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_funcs_set_glyph_v_advances_func
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-v-advances-func-t" title="hb_font_get_glyph_v_advances_func_t"><span class="type">hb_font_get_glyph_v_advances_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
@@ -1336,7 +1428,7 @@ hb_font_funcs_set_glyph_v_advances_func
<div class="refsect2">
<a name="hb-font-funcs-set-glyph-v-origin-func"></a><h3>hb_font_funcs_set_glyph_v_origin_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_funcs_set_glyph_v_origin_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+hb_font_funcs_set_glyph_v_origin_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-v-origin-func-t" title="hb_font_get_glyph_v_origin_func_t"><span class="type">hb_font_get_glyph_v_origin_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
@@ -1368,7 +1460,7 @@ hb_font_funcs_set_glyph_v_origin_func (<em class="parameter"><code><a class="lin
<div class="refsect2">
<a name="hb-font-funcs-set-nominal-glyph-func"></a><h3>hb_font_funcs_set_nominal_glyph_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_funcs_set_nominal_glyph_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+hb_font_funcs_set_nominal_glyph_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-nominal-glyph-func-t" title="hb_font_get_nominal_glyph_func_t ()"><span class="type">hb_font_get_nominal_glyph_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
@@ -1400,7 +1492,7 @@ hb_font_funcs_set_nominal_glyph_func (<em class="parameter"><code><a class="link
<div class="refsect2">
<a name="hb-font-funcs-set-nominal-glyphs-func"></a><h3>hb_font_funcs_set_nominal_glyphs_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_funcs_set_nominal_glyphs_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+hb_font_funcs_set_nominal_glyphs_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><span class="type">hb_font_get_nominal_glyphs_func_t</span> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
@@ -1432,8 +1524,8 @@ hb_font_funcs_set_nominal_glyphs_func (<em class="parameter"><code><a class="lin
<div class="refsect2">
<a name="hb-font-funcs-set-user-data"></a><h3>hb_font_funcs_set_user_data ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_funcs_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
+hb_font_funcs_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
<em class="parameter"><code><span class="type">void</span> *data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
@@ -1460,7 +1552,7 @@ hb_font_funcs_set_user_data (<em class="parameter"><code><a class="link" href="h
<a name="hb-font-funcs-set-variation-glyph-func"></a><h3>hb_font_funcs_set_variation_glyph_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_funcs_set_variation_glyph_func
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-variation-glyph-func-t" title="hb_font_get_variation_glyph_func_t ()"><span class="type">hb_font_get_variation_glyph_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
@@ -1491,7 +1583,7 @@ hb_font_funcs_set_variation_glyph_func
<hr>
<div class="refsect2">
<a name="hb-font-get-empty"></a><h3>hb_font_get_empty ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
hb_font_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<div class="refsect3">
<a name="hb-font-get-empty.returns"></a><h4>Returns</h4>
@@ -1502,8 +1594,8 @@ hb_font_get_empty (<em class="parameter"><code><span class="type">void</span></c
<hr>
<div class="refsect2">
<a name="hb-font-get-face"></a><h3>hb_font_get_face ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
-hb_font_get_face (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
+hb_font_get_face (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
<div class="refsect3">
<a name="hb-font-get-face.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1530,7 +1622,7 @@ hb_font_get_face (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
<div class="refsect2">
<a name="hb-font-get-glyph"></a><h3>hb_font_get_glyph ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_get_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> variation_selector</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *glyph</code></em>);</pre>
@@ -1563,7 +1655,7 @@ hb_font_get_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb
<a name="hb-font-get-glyph-advance-for-direction"></a><h3>hb_font_get_glyph_advance_for_direction ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_get_glyph_advance_for_direction
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
@@ -1601,7 +1693,7 @@ hb_font_get_glyph_advance_for_direction
<div class="refsect2">
<a name="hb-font-get-glyph-advance-func-t"></a><h3>hb_font_get_glyph_advance_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
-<span class="c_punctuation">(</span>*hb_font_get_glyph_advance_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_font_get_glyph_advance_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
@@ -1611,7 +1703,7 @@ hb_font_get_glyph_advance_for_direction
<a name="hb-font-get-glyph-advances-for-direction"></a><h3>hb_font_get_glyph_advances_for_direction ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_get_glyph_advances_for_direction
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> count</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *first_glyph</code></em>,
@@ -1639,7 +1731,7 @@ hb_font_get_glyph_advances_for_direction
<div class="refsect2">
<a name="hb-font-get-glyph-advances-func-t"></a><h3>hb_font_get_glyph_advances_func_t ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-<span class="c_punctuation">(</span>*hb_font_get_glyph_advances_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_font_get_glyph_advances_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> count</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *first_glyph</code></em>,
@@ -1652,7 +1744,7 @@ hb_font_get_glyph_advances_for_direction
<div class="refsect2">
<a name="hb-font-get-glyph-contour-point"></a><h3>hb_font_get_glyph_contour_point ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_get_glyph_contour_point (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_contour_point (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> point_index</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
@@ -1691,7 +1783,7 @@ hb_font_get_glyph_contour_point (<em class="parameter"><code><a class="link" hre
<a name="hb-font-get-glyph-contour-point-for-origin"></a><h3>hb_font_get_glyph_contour_point_for_origin ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
hb_font_get_glyph_contour_point_for_origin
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> point_index</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
@@ -1731,7 +1823,7 @@ hb_font_get_glyph_contour_point_for_origin
<a name="hb-font-get-glyph-contour-point-func-t"></a><h3>hb_font_get_glyph_contour_point_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
<span class="c_punctuation">(</span>*hb_font_get_glyph_contour_point_func_t<span class="c_punctuation">)</span>
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> point_index</code></em>,
@@ -1743,7 +1835,7 @@ hb_font_get_glyph_contour_point_for_origin
<div class="refsect2">
<a name="hb-font-get-glyph-extents"></a><h3>hb_font_get_glyph_extents ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_get_glyph_extents (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_extents (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><span class="type">hb_glyph_extents_t</span> *extents</code></em>);</pre>
<div class="refsect3">
@@ -1774,7 +1866,7 @@ hb_font_get_glyph_extents (<em class="parameter"><code><a class="link" href="har
<div class="refsect2">
<a name="hb-font-get-glyph-extents-for-origin"></a><h3>hb_font_get_glyph_extents_for_origin ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_get_glyph_extents_for_origin (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_extents_for_origin (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
<em class="parameter"><code><span class="type">hb_glyph_extents_t</span> *extents</code></em>);</pre>
@@ -1806,7 +1898,7 @@ hb_font_get_glyph_extents_for_origin (<em class="parameter"><code><a class="link
<div class="refsect2">
<a name="hb-font-get-glyph-extents-func-t"></a><h3>hb_font_get_glyph_extents_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-<span class="c_punctuation">(</span>*hb_font_get_glyph_extents_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_font_get_glyph_extents_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><span class="type">hb_glyph_extents_t</span> *extents</code></em>,
@@ -1816,7 +1908,7 @@ hb_font_get_glyph_extents_for_origin (<em class="parameter"><code><a class="link
<div class="refsect2">
<a name="hb-font-get-glyph-from-name"></a><h3>hb_font_get_glyph_from_name ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_get_glyph_from_name (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_from_name (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
<em class="parameter"><code><span class="type">int</span> len</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *glyph</code></em>);</pre>
@@ -1853,7 +1945,7 @@ hb_font_get_glyph_from_name (<em class="parameter"><code><a class="link" href="h
<div class="refsect2">
<a name="hb-font-get-glyph-from-name-func-t"></a><h3>hb_font_get_glyph_from_name_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-<span class="c_punctuation">(</span>*hb_font_get_glyph_from_name_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_font_get_glyph_from_name_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
<em class="parameter"><code><span class="type">int</span> len</code></em>);</pre>
@@ -1862,7 +1954,7 @@ hb_font_get_glyph_from_name (<em class="parameter"><code><a class="link" href="h
<div class="refsect2">
<a name="hb-font-get-glyph-h-advance"></a><h3>hb_font_get_glyph_h_advance ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
-hb_font_get_glyph_h_advance (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_h_advance (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>);</pre>
<div class="refsect3">
<a name="hb-font-get-glyph-h-advance.parameters"></a><h4>Parameters</h4>
@@ -1885,7 +1977,7 @@ hb_font_get_glyph_h_advance (<em class="parameter"><code><a class="link" href="h
<div class="refsect2">
<a name="hb-font-get-glyph-h-advances"></a><h3>hb_font_get_glyph_h_advances ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_get_glyph_h_advances (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_h_advances (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> count</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *first_glyph</code></em>,
<em class="parameter"><code><span class="type">unsigned </span> glyph_stride</code></em>,
@@ -1910,9 +2002,33 @@ hb_font_get_glyph_h_advances (<em class="parameter"><code><a class="link" href="
</div>
<hr>
<div class="refsect2">
+<a name="hb-font-get-glyph-h-kerning"></a><h3>hb_font_get_glyph_h_kerning ()</h3>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
+hb_font_get_glyph_h_kerning (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> left_glyph</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> right_glyph</code></em>);</pre>
+<div class="refsect3">
+<a name="hb-font-get-glyph-h-kerning.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>font</p></td>
+<td class="parameter_description"><p>a font.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+</div>
+<hr>
+<div class="refsect2">
<a name="hb-font-get-glyph-h-origin"></a><h3>hb_font_get_glyph_h_origin ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_get_glyph_h_origin (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_h_origin (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *y</code></em>);</pre>
@@ -1947,9 +2063,59 @@ hb_font_get_glyph_h_origin (<em class="parameter"><code><a class="link" href="ha
</div>
<hr>
<div class="refsect2">
+<a name="hb-font-get-glyph-kerning-for-direction"></a><h3>hb_font_get_glyph_kerning_for_direction ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hb_font_get_glyph_kerning_for_direction
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> first_glyph</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> second_glyph</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *y</code></em>);</pre>
+<div class="refsect3">
+<a name="hb-font-get-glyph-kerning-for-direction.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>font</p></td>
+<td class="parameter_description"><p>a font.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-font-get-glyph-kerning-func-t"></a><h3>hb_font_get_glyph_kerning_func_t ()</h3>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
+<span class="c_punctuation">(</span>*hb_font_get_glyph_kerning_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> first_glyph</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> second_glyph</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
<a name="hb-font-get-glyph-name"></a><h3>hb_font_get_glyph_name ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_get_glyph_name (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_name (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><span class="type">char</span> *name</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> size</code></em>);</pre>
@@ -1981,7 +2147,7 @@ hb_font_get_glyph_name (<em class="parameter"><code><a class="link" href="harfbu
<div class="refsect2">
<a name="hb-font-get-glyph-name-func-t"></a><h3>hb_font_get_glyph_name_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-<span class="c_punctuation">(</span>*hb_font_get_glyph_name_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_font_get_glyph_name_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><span class="type">char</span> *name</code></em>,
@@ -1993,7 +2159,7 @@ hb_font_get_glyph_name (<em class="parameter"><code><a class="link" href="harfbu
<a name="hb-font-get-glyph-origin-for-direction"></a><h3>hb_font_get_glyph_origin_for_direction ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_get_glyph_origin_for_direction
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
@@ -2031,7 +2197,7 @@ hb_font_get_glyph_origin_for_direction
<div class="refsect2">
<a name="hb-font-get-glyph-origin-func-t"></a><h3>hb_font_get_glyph_origin_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-<span class="c_punctuation">(</span>*hb_font_get_glyph_origin_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_font_get_glyph_origin_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
@@ -2042,7 +2208,7 @@ hb_font_get_glyph_origin_for_direction
<div class="refsect2">
<a name="hb-font-get-glyph-v-advance"></a><h3>hb_font_get_glyph_v_advance ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
-hb_font_get_glyph_v_advance (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_v_advance (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>);</pre>
<div class="refsect3">
<a name="hb-font-get-glyph-v-advance.parameters"></a><h4>Parameters</h4>
@@ -2065,7 +2231,7 @@ hb_font_get_glyph_v_advance (<em class="parameter"><code><a class="link" href="h
<div class="refsect2">
<a name="hb-font-get-glyph-v-advances"></a><h3>hb_font_get_glyph_v_advances ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_get_glyph_v_advances (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_v_advances (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> count</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *first_glyph</code></em>,
<em class="parameter"><code><span class="type">unsigned </span> glyph_stride</code></em>,
@@ -2092,7 +2258,7 @@ hb_font_get_glyph_v_advances (<em class="parameter"><code><a class="link" href="
<div class="refsect2">
<a name="hb-font-get-glyph-v-origin"></a><h3>hb_font_get_glyph_v_origin ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_get_glyph_v_origin (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_v_origin (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *y</code></em>);</pre>
@@ -2129,7 +2295,7 @@ hb_font_get_glyph_v_origin (<em class="parameter"><code><a class="link" href="ha
<div class="refsect2">
<a name="hb-font-get-nominal-glyph"></a><h3>hb_font_get_nominal_glyph ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_get_nominal_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_nominal_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *glyph</code></em>);</pre>
<div class="refsect3">
@@ -2160,7 +2326,7 @@ hb_font_get_nominal_glyph (<em class="parameter"><code><a class="link" href="har
<div class="refsect2">
<a name="hb-font-get-nominal-glyph-func-t"></a><h3>hb_font_get_nominal_glyph_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-<span class="c_punctuation">(</span>*hb_font_get_nominal_glyph_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_font_get_nominal_glyph_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *glyph</code></em>,
@@ -2168,9 +2334,36 @@ hb_font_get_nominal_glyph (<em class="parameter"><code><a class="link" href="har
</div>
<hr>
<div class="refsect2">
+<a name="hb-font-get-nominal-glyphs"></a><h3>hb_font_get_nominal_glyphs ()</h3>
+<pre class="programlisting">unsigned <span class="returnvalue">int</span>
+hb_font_get_nominal_glyphs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> count</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *first_unicode</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> unicode_stride</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *first_glyph</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> glyph_stride</code></em>);</pre>
+<div class="refsect3">
+<a name="hb-font-get-nominal-glyphs.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>font</p></td>
+<td class="parameter_description"><p>a font.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 2.6.3</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="hb-font-get-parent"></a><h3>hb_font_get_parent ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
-hb_font_get_parent (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
+hb_font_get_parent (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
<div class="refsect3">
<a name="hb-font-get-parent.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -2197,7 +2390,7 @@ hb_font_get_parent (<em class="parameter"><code><a class="link" href="harfbuzz-h
<div class="refsect2">
<a name="hb-font-get-ppem"></a><h3>hb_font_get_ppem ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_get_ppem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_ppem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *x_ppem</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *y_ppem</code></em>);</pre>
<div class="refsect3">
@@ -2233,7 +2426,7 @@ hb_font_get_ppem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
<div class="refsect2">
<a name="hb-font-get-ptem"></a><h3>hb_font_get_ptem ()</h3>
<pre class="programlisting"><span class="returnvalue">float</span>
-hb_font_get_ptem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+hb_font_get_ptem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
<p>Gets the "point size" of the font. A value of 0 means unset.</p>
<div class="refsect3">
<a name="hb-font-get-ptem.parameters"></a><h4>Parameters</h4>
@@ -2260,7 +2453,7 @@ hb_font_get_ptem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
<div class="refsect2">
<a name="hb-font-get-scale"></a><h3>hb_font_get_scale ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_get_scale (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_scale (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">int</span> *x_scale</code></em>,
<em class="parameter"><code><span class="type">int</span> *y_scale</code></em>);</pre>
<div class="refsect3">
@@ -2296,8 +2489,8 @@ hb_font_get_scale (<em class="parameter"><code><a class="link" href="harfbuzz-hb
<div class="refsect2">
<a name="hb-font-get-user-data"></a><h3>hb_font_get_user_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> *
-hb_font_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
+hb_font_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-font-get-user-data.parameters"></a><h4>Parameters</h4>
@@ -2325,7 +2518,7 @@ hb_font_get_user_data (<em class="parameter"><code><a class="link" href="harfbuz
<div class="refsect2">
<a name="hb-font-get-variation-glyph"></a><h3>hb_font_get_variation_glyph ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_get_variation_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_variation_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> variation_selector</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *glyph</code></em>);</pre>
@@ -2357,7 +2550,7 @@ hb_font_get_variation_glyph (<em class="parameter"><code><a class="link" href="h
<div class="refsect2">
<a name="hb-font-get-variation-glyph-func-t"></a><h3>hb_font_get_variation_glyph_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-<span class="c_punctuation">(</span>*hb_font_get_variation_glyph_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_font_get_variation_glyph_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> variation_selector</code></em>,
@@ -2368,7 +2561,7 @@ hb_font_get_variation_glyph (<em class="parameter"><code><a class="link" href="h
<div class="refsect2">
<a name="hb-font-get-var-coords-normalized"></a><h3>hb_font_get_var_coords_normalized ()</h3>
<pre class="programlisting">const <span class="returnvalue">int</span> *
-hb_font_get_var_coords_normalized (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_var_coords_normalized (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *length</code></em>);</pre>
<p>Return value is valid as long as variation coordinates of the font
are not modified.</p>
@@ -2378,7 +2571,7 @@ are not modified.</p>
<div class="refsect2">
<a name="hb-font-glyph-from-string"></a><h3>hb_font_glyph_from_string ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_glyph_from_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_glyph_from_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *s</code></em>,
<em class="parameter"><code><span class="type">int</span> len</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *glyph</code></em>);</pre>
@@ -2415,7 +2608,7 @@ hb_font_glyph_from_string (<em class="parameter"><code><a class="link" href="har
<div class="refsect2">
<a name="hb-font-glyph-to-string"></a><h3>hb_font_glyph_to_string ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_glyph_to_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_glyph_to_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><span class="type">char</span> *s</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> size</code></em>);</pre>
@@ -2447,7 +2640,7 @@ hb_font_glyph_to_string (<em class="parameter"><code><a class="link" href="harfb
<div class="refsect2">
<a name="hb-font-is-immutable"></a><h3>hb_font_is_immutable ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+hb_font_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
<div class="refsect3">
<a name="hb-font-is-immutable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -2469,7 +2662,7 @@ hb_font_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz
<div class="refsect2">
<a name="hb-font-make-immutable"></a><h3>hb_font_make_immutable ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+hb_font_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
<div class="refsect3">
<a name="hb-font-make-immutable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -2490,8 +2683,8 @@ hb_font_make_immutable (<em class="parameter"><code><a class="link" href="harfbu
<hr>
<div class="refsect2">
<a name="hb-font-reference"></a><h3>hb_font_reference ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
-hb_font_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
+hb_font_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-font-reference.parameters"></a><h4>Parameters</h4>
@@ -2519,8 +2712,8 @@ hb_font_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb
<div class="refsect2">
<a name="hb-font-set-face"></a><h3>hb_font_set_face ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_set_face (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_font_set_face (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<p>Sets font-face of <em class="parameter"><code>font</code></em>
.</p>
<div class="refsect3">
@@ -2551,8 +2744,8 @@ hb_font_set_face (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
<div class="refsect2">
<a name="hb-font-set-funcs"></a><h3>hb_font_set_funcs ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_set_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *klass</code></em>,
+hb_font_set_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *klass</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<div class="refsect3">
@@ -2583,7 +2776,7 @@ hb_font_set_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb
<div class="refsect2">
<a name="hb-font-set-funcs-data"></a><h3>hb_font_set_funcs_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_set_funcs_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_set_funcs_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<div class="refsect3">
@@ -2614,8 +2807,8 @@ hb_font_set_funcs_data (<em class="parameter"><code><a class="link" href="harfbu
<div class="refsect2">
<a name="hb-font-set-parent"></a><h3>hb_font_set_parent ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_set_parent (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *parent</code></em>);</pre>
+hb_font_set_parent (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *parent</code></em>);</pre>
<p>Sets parent font of <em class="parameter"><code>font</code></em>
.</p>
<div class="refsect3">
@@ -2646,7 +2839,7 @@ hb_font_set_parent (<em class="parameter"><code><a class="link" href="harfbuzz-h
<div class="refsect2">
<a name="hb-font-set-ppem"></a><h3>hb_font_set_ppem ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_set_ppem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_set_ppem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> x_ppem</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> y_ppem</code></em>);</pre>
<div class="refsect3">
@@ -2670,7 +2863,7 @@ hb_font_set_ppem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
<div class="refsect2">
<a name="hb-font-set-ptem"></a><h3>hb_font_set_ptem ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_set_ptem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_set_ptem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">float</span> ptem</code></em>);</pre>
<p>Sets "point size" of the font. Set to 0 to unset.</p>
<p>There are 72 points in an inch.</p>
@@ -2702,7 +2895,7 @@ hb_font_set_ptem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
<div class="refsect2">
<a name="hb-font-set-scale"></a><h3>hb_font_set_scale ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_set_scale (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_set_scale (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">int</span> x_scale</code></em>,
<em class="parameter"><code><span class="type">int</span> y_scale</code></em>);</pre>
<div class="refsect3">
@@ -2726,8 +2919,8 @@ hb_font_set_scale (<em class="parameter"><code><a class="link" href="harfbuzz-hb
<div class="refsect2">
<a name="hb-font-set-user-data"></a><h3>hb_font_set_user_data ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
+hb_font_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
<em class="parameter"><code><span class="type">void</span> *data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
@@ -2753,7 +2946,7 @@ hb_font_set_user_data (<em class="parameter"><code><a class="link" href="harfbuz
<div class="refsect2">
<a name="hb-font-set-variations"></a><h3>hb_font_set_variations ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_set_variations (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_set_variations (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-variation-t" title="hb_variation_t"><span class="type">hb_variation_t</span></a> *variations</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> variations_length</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-1-4-2.html#api-index-1.4.2">1.4.2</a></p>
@@ -2762,7 +2955,7 @@ hb_font_set_variations (<em class="parameter"><code><a class="link" href="harfbu
<div class="refsect2">
<a name="hb-font-set-var-coords-design"></a><h3>hb_font_set_var_coords_design ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_set_var_coords_design (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_set_var_coords_design (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code>const <span class="type">float</span> *coords</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> coords_length</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-1-4-2.html#api-index-1.4.2">1.4.2</a></p>
@@ -2771,17 +2964,48 @@ hb_font_set_var_coords_design (<em class="parameter"><code><a class="link" href=
<div class="refsect2">
<a name="hb-font-set-var-coords-normalized"></a><h3>hb_font_set_var_coords_normalized ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_set_var_coords_normalized (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_set_var_coords_normalized (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code>const <span class="type">int</span> *coords</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> coords_length</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-1-4-2.html#api-index-1.4.2">1.4.2</a></p>
</div>
<hr>
<div class="refsect2">
+<a name="hb-font-set-var-named-instance"></a><h3>hb_font_set_var_named_instance ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hb_font_set_var_named_instance (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> instance_index</code></em>);</pre>
+<p>Sets design coords of a font from a named instance index.</p>
+<div class="refsect3">
+<a name="hb-font-set-var-named-instance.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>font</p></td>
+<td class="parameter_description"><p>a font.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>instance_index</p></td>
+<td class="parameter_description"><p>named instance index.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: <a class="link" href="api-index-2-6-0.html#api-index-2.6.0">2.6.0</a></p>
+</div>
+<hr>
+<div class="refsect2">
<a name="hb-font-subtract-glyph-origin-for-direction"></a><h3>hb_font_subtract_glyph_origin_for_direction ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_subtract_glyph_origin_for_direction
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
@@ -2818,8 +3042,8 @@ hb_font_subtract_glyph_origin_for_direction
<hr>
<div class="refsect2">
<a name="hb-reference-table-func-t"></a><h3>hb_reference_table_func_t ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
-<span class="c_punctuation">(</span>*hb_reference_table_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
+<span class="c_punctuation">(</span>*hb_reference_table_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> tag</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
</div>
@@ -2827,7 +3051,7 @@ hb_font_subtract_glyph_origin_for_direction
<div class="refsect2">
<a name="hb-font-funcs-set-font-h-extents-func"></a><h3>hb_font_funcs_set_font_h_extents_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_funcs_set_font_h_extents_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+hb_font_funcs_set_font_h_extents_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-font-h-extents-func-t" title="hb_font_get_font_h_extents_func_t"><span class="type">hb_font_get_font_h_extents_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
@@ -2859,7 +3083,7 @@ hb_font_funcs_set_font_h_extents_func (<em class="parameter"><code><a class="lin
<div class="refsect2">
<a name="hb-font-funcs-set-font-v-extents-func"></a><h3>hb_font_funcs_set_font_v_extents_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_funcs_set_font_v_extents_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+hb_font_funcs_set_font_v_extents_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-font-v-extents-func-t" title="hb_font_get_font_v_extents_func_t"><span class="type">hb_font_get_font_v_extents_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
@@ -2891,7 +3115,7 @@ hb_font_funcs_set_font_v_extents_func (<em class="parameter"><code><a class="lin
<div class="refsect2">
<a name="hb-font-get-extents-for-direction"></a><h3>hb_font_get_extents_for_direction ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_get_extents_for_direction (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_extents_for_direction (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
<em class="parameter"><code><span class="type">hb_font_extents_t</span> *extents</code></em>);</pre>
<div class="refsect3">
@@ -2922,7 +3146,7 @@ hb_font_get_extents_for_direction (<em class="parameter"><code><a class="link" h
<div class="refsect2">
<a name="hb-font-get-font-extents-func-t"></a><h3>hb_font_get_font_extents_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-<span class="c_punctuation">(</span>*hb_font_get_font_extents_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_font_get_font_extents_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code><span class="type">hb_font_extents_t</span> *extents</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
@@ -2931,7 +3155,7 @@ hb_font_get_extents_for_direction (<em class="parameter"><code><a class="link" h
<div class="refsect2">
<a name="hb-font-get-h-extents"></a><h3>hb_font_get_h_extents ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_get_h_extents (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_h_extents (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">hb_font_extents_t</span> *extents</code></em>);</pre>
<div class="refsect3">
<a name="hb-font-get-h-extents.parameters"></a><h4>Parameters</h4>
@@ -2961,7 +3185,7 @@ hb_font_get_h_extents (<em class="parameter"><code><a class="link" href="harfbuz
<div class="refsect2">
<a name="hb-font-get-v-extents"></a><h3>hb_font_get_v_extents ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_get_v_extents (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_v_extents (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">hb_font_extents_t</span> *extents</code></em>);</pre>
<div class="refsect3">
<a name="hb-font-get-v-extents.parameters"></a><h4>Parameters</h4>
@@ -3009,6 +3233,12 @@ hb_font_get_v_extents (<em class="parameter"><code><a class="link" href="harfbuz
</div>
<hr>
<div class="refsect2">
+<a name="hb-font-get-glyph-h-kerning-func-t"></a><h3>hb_font_get_glyph_h_kerning_func_t</h3>
+<pre class="programlisting">typedef hb_font_get_glyph_kerning_func_t hb_font_get_glyph_h_kerning_func_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
<a name="hb-font-get-glyph-h-origin-func-t"></a><h3>hb_font_get_glyph_h_origin_func_t</h3>
<pre class="programlisting">typedef hb_font_get_glyph_origin_func_t hb_font_get_glyph_h_origin_func_t;
</pre>
diff --git a/docs/html/harfbuzz-hb-ft.html b/docs/html/harfbuzz-hb-ft.html
index dbc1f41..06884b7 100644
--- a/docs/html/harfbuzz-hb-ft.html
+++ b/docs/html/harfbuzz-hb-ft.html
@@ -5,7 +5,7 @@
<title>hb-ft: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch12.html" title="Integration API">
+<link rel="up" href="ch14.html" title="Integration API">
<link rel="prev" href="harfbuzz-hb-coretext.html" title="hb-coretext">
<link rel="next" href="harfbuzz-hb-glib.html" title="hb-glib">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
@@ -18,7 +18,7 @@
<a href="#harfbuzz-hb-ft.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch12.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch14.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="harfbuzz-hb-coretext.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="harfbuzz-hb-glib.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
@@ -41,7 +41,7 @@
<tbody>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
+<a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-ft.html#hb-ft-face-create" title="hb_ft_face_create ()">hb_ft_face_create</a> <span class="c_punctuation">()</span>
@@ -49,7 +49,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
+<a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-ft.html#hb-ft-face-create-cached" title="hb_ft_face_create_cached ()">hb_ft_face_create_cached</a> <span class="c_punctuation">()</span>
@@ -57,7 +57,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
+<a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-ft.html#hb-ft-face-create-referenced" title="hb_ft_face_create_referenced ()">hb_ft_face_create_referenced</a> <span class="c_punctuation">()</span>
@@ -65,7 +65,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
+<a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-ft.html#hb-ft-font-create" title="hb_ft_font_create ()">hb_ft_font_create</a> <span class="c_punctuation">()</span>
@@ -73,7 +73,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
+<a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-ft.html#hb-ft-font-create-referenced" title="hb_ft_font_create_referenced ()">hb_ft_font_create_referenced</a> <span class="c_punctuation">()</span>
@@ -136,7 +136,7 @@ font data.</p>
<a name="harfbuzz-hb-ft.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="hb-ft-face-create"></a><h3>hb_ft_face_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
hb_ft_face_create (<em class="parameter"><code><span class="type">FT_Face</span> ft_face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<div class="refsect3">
@@ -164,7 +164,7 @@ hb_ft_face_create (<em class="parameter"><code><span class="type">FT_Face</span>
<hr>
<div class="refsect2">
<a name="hb-ft-face-create-cached"></a><h3>hb_ft_face_create_cached ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
hb_ft_face_create_cached (<em class="parameter"><code><span class="type">FT_Face</span> ft_face</code></em>);</pre>
<div class="refsect3">
<a name="hb-ft-face-create-cached.returns"></a><h4>Returns</h4>
@@ -176,7 +176,7 @@ hb_ft_face_create_cached (<em class="parameter"><code><span class="type">FT_Face
<hr>
<div class="refsect2">
<a name="hb-ft-face-create-referenced"></a><h3>hb_ft_face_create_referenced ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
hb_ft_face_create_referenced (<em class="parameter"><code><span class="type">FT_Face</span> ft_face</code></em>);</pre>
<div class="refsect3">
<a name="hb-ft-face-create-referenced.returns"></a><h4>Returns</h4>
@@ -188,7 +188,7 @@ hb_ft_face_create_referenced (<em class="parameter"><code><span class="type">FT_
<hr>
<div class="refsect2">
<a name="hb-ft-font-create"></a><h3>hb_ft_font_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
hb_ft_font_create (<em class="parameter"><code><span class="type">FT_Face</span> ft_face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<div class="refsect3">
@@ -216,7 +216,7 @@ hb_ft_font_create (<em class="parameter"><code><span class="type">FT_Face</span>
<hr>
<div class="refsect2">
<a name="hb-ft-font-create-referenced"></a><h3>hb_ft_font_create_referenced ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
hb_ft_font_create_referenced (<em class="parameter"><code><span class="type">FT_Face</span> ft_face</code></em>);</pre>
<div class="refsect3">
<a name="hb-ft-font-create-referenced.returns"></a><h4>Returns</h4>
@@ -229,19 +229,19 @@ hb_ft_font_create_referenced (<em class="parameter"><code><span class="type">FT_
<div class="refsect2">
<a name="hb-ft-font-changed"></a><h3>hb_ft_font_changed ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_ft_font_changed (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+hb_ft_font_changed (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-ft-font-get-face"></a><h3>hb_ft_font_get_face ()</h3>
<pre class="programlisting"><span class="returnvalue">FT_Face</span>
-hb_ft_font_get_face (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+hb_ft_font_get_face (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-ft-font-set-load-flags"></a><h3>hb_ft_font_set_load_flags ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_ft_font_set_load_flags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_ft_font_set_load_flags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">int</span> load_flags</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-1-0-5.html#api-index-1.0.5">1.0.5</a></p>
</div>
@@ -249,14 +249,14 @@ hb_ft_font_set_load_flags (<em class="parameter"><code><a class="link" href="har
<div class="refsect2">
<a name="hb-ft-font-get-load-flags"></a><h3>hb_ft_font_get_load_flags ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
-hb_ft_font_get_load_flags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+hb_ft_font_get_load_flags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-1-0-5.html#api-index-1.0.5">1.0.5</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ft-font-set-funcs"></a><h3>hb_ft_font_set_funcs ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_ft_font_set_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+hb_ft_font_set_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
</div>
</div>
<div class="refsect1">
diff --git a/docs/html/harfbuzz-hb-glib.html b/docs/html/harfbuzz-hb-glib.html
index 2cfc4f2..2cbf3bd 100644
--- a/docs/html/harfbuzz-hb-glib.html
+++ b/docs/html/harfbuzz-hb-glib.html
@@ -5,7 +5,7 @@
<title>hb-glib: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch12.html" title="Integration API">
+<link rel="up" href="ch14.html" title="Integration API">
<link rel="prev" href="harfbuzz-hb-ft.html" title="hb-ft">
<link rel="next" href="harfbuzz-hb-gobject.html" title="hb-gobject">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
@@ -18,7 +18,7 @@
<a href="#harfbuzz-hb-glib.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch12.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch14.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="harfbuzz-hb-ft.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="harfbuzz-hb-gobject.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
@@ -41,7 +41,7 @@
<tbody>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-glib.html#hb-glib-get-unicode-funcs" title="hb_glib_get_unicode_funcs ()">hb_glib_get_unicode_funcs</a> <span class="c_punctuation">()</span>
@@ -49,7 +49,7 @@
</tr>
<tr>
<td class="function_type">
-<a href="/usr/share/gtk-doc/html/glib/glib-Unicode-Manipulation.html#GUnicodeScript"><span class="returnvalue">GUnicodeScript</span></a>
+<span class="returnvalue">GUnicodeScript</span>
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-glib.html#hb-glib-script-from-script" title="hb_glib_script_from_script ()">hb_glib_script_from_script</a> <span class="c_punctuation">()</span>
@@ -65,7 +65,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-glib.html#hb-glib-blob-create" title="hb_glib_blob_create ()">hb_glib_blob_create</a> <span class="c_punctuation">()</span>
@@ -87,26 +87,26 @@
<a name="harfbuzz-hb-glib.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="hb-glib-get-unicode-funcs"></a><h3>hb_glib_get_unicode_funcs ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
hb_glib_get_unicode_funcs (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-glib-script-from-script"></a><h3>hb_glib_script_from_script ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Unicode-Manipulation.html#GUnicodeScript"><span class="returnvalue">GUnicodeScript</span></a>
+<pre class="programlisting"><span class="returnvalue">GUnicodeScript</span>
hb_glib_script_from_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> script</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-glib-script-to-script"></a><h3>hb_glib_script_to_script ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="returnvalue">hb_script_t</span></a>
-hb_glib_script_to_script (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Unicode-Manipulation.html#GUnicodeScript"><span class="type">GUnicodeScript</span></a> script</code></em>);</pre>
+hb_glib_script_to_script (<em class="parameter"><code><span class="type">GUnicodeScript</span> script</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-glib-blob-create"></a><h3>hb_glib_blob_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
-hb_glib_blob_create (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Byte-Arrays.html#GBytes"><span class="type">GBytes</span></a> *gbytes</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
+hb_glib_blob_create (<em class="parameter"><code><span class="type">GBytes</span> *gbytes</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-0-9-38.html#api-index-0.9.38">0.9.38</a></p>
</div>
</div>
diff --git a/docs/html/harfbuzz-hb-gobject.html b/docs/html/harfbuzz-hb-gobject.html
index 60558e8..a733126 100644
--- a/docs/html/harfbuzz-hb-gobject.html
+++ b/docs/html/harfbuzz-hb-gobject.html
@@ -5,7 +5,7 @@
<title>hb-gobject: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch12.html" title="Integration API">
+<link rel="up" href="ch14.html" title="Integration API">
<link rel="prev" href="harfbuzz-hb-glib.html" title="hb-glib">
<link rel="next" href="harfbuzz-hb-graphite2.html" title="hb-graphite2">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
@@ -18,7 +18,7 @@
<a href="#harfbuzz-hb-gobject.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch12.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch14.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="harfbuzz-hb-glib.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="harfbuzz-hb-graphite2.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
@@ -32,6 +32,424 @@
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
+<a name="harfbuzz-hb-gobject.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-blob-get-type" title="hb_gobject_blob_get_type ()">hb_gobject_blob_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-content-type-get-type" title="hb_gobject_buffer_content_type_get_type ()">hb_gobject_buffer_content_type_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-diff-flags-get-type" title="hb_gobject_buffer_diff_flags_get_type ()">hb_gobject_buffer_diff_flags_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-flags-get-type" title="hb_gobject_buffer_flags_get_type ()">hb_gobject_buffer_flags_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-get-type" title="hb_gobject_buffer_get_type ()">hb_gobject_buffer_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-serialize-flags-get-type" title="hb_gobject_buffer_serialize_flags_get_type ()">hb_gobject_buffer_serialize_flags_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-serialize-format-get-type" title="hb_gobject_buffer_serialize_format_get_type ()">hb_gobject_buffer_serialize_format_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-direction-get-type" title="hb_gobject_direction_get_type ()">hb_gobject_direction_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-face-get-type" title="hb_gobject_face_get_type ()">hb_gobject_face_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-font-funcs-get-type" title="hb_gobject_font_funcs_get_type ()">hb_gobject_font_funcs_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-font-get-type" title="hb_gobject_font_get_type ()">hb_gobject_font_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-glyph-flags-get-type" title="hb_gobject_glyph_flags_get_type ()">hb_gobject_glyph_flags_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-map-get-type" title="hb_gobject_map_get_type ()">hb_gobject_map_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-memory-mode-get-type" title="hb_gobject_memory_mode_get_type ()">hb_gobject_memory_mode_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-color-palette-flags-get-type" title="hb_gobject_ot_color_palette_flags_get_type ()">hb_gobject_ot_color_palette_flags_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-layout-glyph-class-get-type" title="hb_gobject_ot_layout_glyph_class_get_type ()">hb_gobject_ot_layout_glyph_class_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-math-constant-get-type" title="hb_gobject_ot_math_constant_get_type ()">hb_gobject_ot_math_constant_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-math-glyph-part-get-type" title="hb_gobject_ot_math_glyph_part_get_type ()">hb_gobject_ot_math_glyph_part_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-math-glyph-part-flags-get-type" title="hb_gobject_ot_math_glyph_part_flags_get_type ()">hb_gobject_ot_math_glyph_part_flags_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-math-glyph-variant-get-type" title="hb_gobject_ot_math_glyph_variant_get_type ()">hb_gobject_ot_math_glyph_variant_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-math-kern-get-type" title="hb_gobject_ot_math_kern_get_type ()">hb_gobject_ot_math_kern_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-script-get-type" title="hb_gobject_script_get_type ()">hb_gobject_script_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-shape-plan-get-type" title="hb_gobject_shape_plan_get_type ()">hb_gobject_shape_plan_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-unicode-combining-class-get-type" title="hb_gobject_unicode_combining_class_get_type ()">hb_gobject_unicode_combining_class_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-unicode-funcs-get-type" title="hb_gobject_unicode_funcs_get_type ()">hb_gobject_unicode_funcs_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-unicode-general-category-get-type" title="hb_gobject_unicode_general_category_get_type ()">hb_gobject_unicode_general_category_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-cluster-level-get-type" title="hb_gobject_buffer_cluster_level_get_type ()">hb_gobject_buffer_cluster_level_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-feature-get-type" title="hb_gobject_feature_get_type ()">hb_gobject_feature_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-glyph-info-get-type" title="hb_gobject_glyph_info_get_type ()">hb_gobject_glyph_info_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-glyph-position-get-type" title="hb_gobject_glyph_position_get_type ()">hb_gobject_glyph_position_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-segment-properties-get-type" title="hb_gobject_segment_properties_get_type ()">hb_gobject_segment_properties_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-set-get-type" title="hb_gobject_set_get_type ()">hb_gobject_set_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-user-data-key-get-type" title="hb_gobject_user_data_key_get_type ()">hb_gobject_user_data_key_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="harfbuzz-hb-gobject.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BLOB:CAPS" title="HB_GOBJECT_TYPE_BLOB">HB_GOBJECT_TYPE_BLOB</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER:CAPS" title="HB_GOBJECT_TYPE_BUFFER">HB_GOBJECT_TYPE_BUFFER</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-CONTENT-TYPE:CAPS" title="HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE">HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-DIFF-FLAGS:CAPS" title="HB_GOBJECT_TYPE_BUFFER_DIFF_FLAGS">HB_GOBJECT_TYPE_BUFFER_DIFF_FLAGS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-FLAGS:CAPS" title="HB_GOBJECT_TYPE_BUFFER_FLAGS">HB_GOBJECT_TYPE_BUFFER_FLAGS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-SERIALIZE-FLAGS:CAPS" title="HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FLAGS">HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FLAGS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-SERIALIZE-FORMAT:CAPS" title="HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FORMAT">HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FORMAT</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-DIRECTION:CAPS" title="HB_GOBJECT_TYPE_DIRECTION">HB_GOBJECT_TYPE_DIRECTION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FACE:CAPS" title="HB_GOBJECT_TYPE_FACE">HB_GOBJECT_TYPE_FACE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FONT:CAPS" title="HB_GOBJECT_TYPE_FONT">HB_GOBJECT_TYPE_FONT</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FONT-FUNCS:CAPS" title="HB_GOBJECT_TYPE_FONT_FUNCS">HB_GOBJECT_TYPE_FONT_FUNCS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-GLYPH-FLAGS:CAPS" title="HB_GOBJECT_TYPE_GLYPH_FLAGS">HB_GOBJECT_TYPE_GLYPH_FLAGS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-MAP:CAPS" title="HB_GOBJECT_TYPE_MAP">HB_GOBJECT_TYPE_MAP</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-MEMORY-MODE:CAPS" title="HB_GOBJECT_TYPE_MEMORY_MODE">HB_GOBJECT_TYPE_MEMORY_MODE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-COLOR-PALETTE-FLAGS:CAPS" title="HB_GOBJECT_TYPE_OT_COLOR_PALETTE_FLAGS">HB_GOBJECT_TYPE_OT_COLOR_PALETTE_FLAGS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-LAYOUT-GLYPH-CLASS:CAPS" title="HB_GOBJECT_TYPE_OT_LAYOUT_GLYPH_CLASS">HB_GOBJECT_TYPE_OT_LAYOUT_GLYPH_CLASS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-CONSTANT:CAPS" title="HB_GOBJECT_TYPE_OT_MATH_CONSTANT">HB_GOBJECT_TYPE_OT_MATH_CONSTANT</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-GLYPH-PART:CAPS" title="HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART">HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-GLYPH-PART-FLAGS:CAPS" title="HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART_FLAGS">HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART_FLAGS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-GLYPH-VARIANT:CAPS" title="HB_GOBJECT_TYPE_OT_MATH_GLYPH_VARIANT">HB_GOBJECT_TYPE_OT_MATH_GLYPH_VARIANT</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-KERN:CAPS" title="HB_GOBJECT_TYPE_OT_MATH_KERN">HB_GOBJECT_TYPE_OT_MATH_KERN</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SCRIPT:CAPS" title="HB_GOBJECT_TYPE_SCRIPT">HB_GOBJECT_TYPE_SCRIPT</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SHAPE-PLAN:CAPS" title="HB_GOBJECT_TYPE_SHAPE_PLAN">HB_GOBJECT_TYPE_SHAPE_PLAN</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-COMBINING-CLASS:CAPS" title="HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS">HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-FUNCS:CAPS" title="HB_GOBJECT_TYPE_UNICODE_FUNCS">HB_GOBJECT_TYPE_UNICODE_FUNCS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-GENERAL-CATEGORY:CAPS" title="HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY">HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-CLUSTER-LEVEL:CAPS" title="HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL">HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FEATURE:CAPS" title="HB_GOBJECT_TYPE_FEATURE">HB_GOBJECT_TYPE_FEATURE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-GLYPH-INFO:CAPS" title="HB_GOBJECT_TYPE_GLYPH_INFO">HB_GOBJECT_TYPE_GLYPH_INFO</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-GLYPH-POSITION:CAPS" title="HB_GOBJECT_TYPE_GLYPH_POSITION">HB_GOBJECT_TYPE_GLYPH_POSITION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SEGMENT-PROPERTIES:CAPS" title="HB_GOBJECT_TYPE_SEGMENT_PROPERTIES">HB_GOBJECT_TYPE_SEGMENT_PROPERTIES</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SET:CAPS" title="HB_GOBJECT_TYPE_SET">HB_GOBJECT_TYPE_SET</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-USER-DATA-KEY:CAPS" title="HB_GOBJECT_TYPE_USER_DATA_KEY">HB_GOBJECT_TYPE_USER_DATA_KEY</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
<a name="harfbuzz-hb-gobject.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;hb-gobject.h&gt;
</pre>
@@ -43,10 +461,421 @@ type data.</p>
</div>
<div class="refsect1">
<a name="harfbuzz-hb-gobject.functions_details"></a><h2>Functions</h2>
-<p></p>
+<div class="refsect2">
+<a name="hb-gobject-blob-get-type"></a><h3>hb_gobject_blob_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_blob_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-buffer-content-type-get-type"></a><h3>hb_gobject_buffer_content_type_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_buffer_content_type_get_type
+ ();</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-buffer-diff-flags-get-type"></a><h3>hb_gobject_buffer_diff_flags_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_buffer_diff_flags_get_type ();</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-buffer-flags-get-type"></a><h3>hb_gobject_buffer_flags_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_buffer_flags_get_type ();</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-buffer-get-type"></a><h3>hb_gobject_buffer_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_buffer_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-buffer-serialize-flags-get-type"></a><h3>hb_gobject_buffer_serialize_flags_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_buffer_serialize_flags_get_type
+ ();</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-buffer-serialize-format-get-type"></a><h3>hb_gobject_buffer_serialize_format_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_buffer_serialize_format_get_type
+ ();</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-direction-get-type"></a><h3>hb_gobject_direction_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_direction_get_type ();</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-face-get-type"></a><h3>hb_gobject_face_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_face_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-font-funcs-get-type"></a><h3>hb_gobject_font_funcs_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_font_funcs_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-font-get-type"></a><h3>hb_gobject_font_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_font_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-glyph-flags-get-type"></a><h3>hb_gobject_glyph_flags_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_glyph_flags_get_type ();</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-map-get-type"></a><h3>hb_gobject_map_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_map_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-memory-mode-get-type"></a><h3>hb_gobject_memory_mode_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_memory_mode_get_type ();</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-ot-color-palette-flags-get-type"></a><h3>hb_gobject_ot_color_palette_flags_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_ot_color_palette_flags_get_type
+ ();</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-ot-layout-glyph-class-get-type"></a><h3>hb_gobject_ot_layout_glyph_class_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_ot_layout_glyph_class_get_type
+ ();</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-ot-math-constant-get-type"></a><h3>hb_gobject_ot_math_constant_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_ot_math_constant_get_type ();</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-ot-math-glyph-part-get-type"></a><h3>hb_gobject_ot_math_glyph_part_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_ot_math_glyph_part_get_type
+ (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-ot-math-glyph-part-flags-get-type"></a><h3>hb_gobject_ot_math_glyph_part_flags_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_ot_math_glyph_part_flags_get_type
+ ();</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-ot-math-glyph-variant-get-type"></a><h3>hb_gobject_ot_math_glyph_variant_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_ot_math_glyph_variant_get_type
+ (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-ot-math-kern-get-type"></a><h3>hb_gobject_ot_math_kern_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_ot_math_kern_get_type ();</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-script-get-type"></a><h3>hb_gobject_script_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_script_get_type ();</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-shape-plan-get-type"></a><h3>hb_gobject_shape_plan_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_shape_plan_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-unicode-combining-class-get-type"></a><h3>hb_gobject_unicode_combining_class_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_unicode_combining_class_get_type
+ ();</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-unicode-funcs-get-type"></a><h3>hb_gobject_unicode_funcs_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_unicode_funcs_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-unicode-general-category-get-type"></a><h3>hb_gobject_unicode_general_category_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_unicode_general_category_get_type
+ ();</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-buffer-cluster-level-get-type"></a><h3>hb_gobject_buffer_cluster_level_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_buffer_cluster_level_get_type
+ ();</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-feature-get-type"></a><h3>hb_gobject_feature_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_feature_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-glyph-info-get-type"></a><h3>hb_gobject_glyph_info_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_glyph_info_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-glyph-position-get-type"></a><h3>hb_gobject_glyph_position_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_glyph_position_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-segment-properties-get-type"></a><h3>hb_gobject_segment_properties_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_segment_properties_get_type
+ (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-set-get-type"></a><h3>hb_gobject_set_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_set_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-user-data-key-get-type"></a><h3>hb_gobject_user_data_key_get_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+hb_gobject_user_data_key_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
</div>
<div class="refsect1">
<a name="harfbuzz-hb-gobject.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-BLOB:CAPS"></a><h3>HB_GOBJECT_TYPE_BLOB</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_BLOB (hb_gobject_blob_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-BUFFER:CAPS"></a><h3>HB_GOBJECT_TYPE_BUFFER</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_BUFFER (hb_gobject_buffer_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-BUFFER-CONTENT-TYPE:CAPS"></a><h3>HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE (hb_gobject_buffer_content_type_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-BUFFER-DIFF-FLAGS:CAPS"></a><h3>HB_GOBJECT_TYPE_BUFFER_DIFF_FLAGS</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_BUFFER_DIFF_FLAGS (hb_gobject_buffer_diff_flags_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-BUFFER-FLAGS:CAPS"></a><h3>HB_GOBJECT_TYPE_BUFFER_FLAGS</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_BUFFER_FLAGS (hb_gobject_buffer_flags_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-BUFFER-SERIALIZE-FLAGS:CAPS"></a><h3>HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FLAGS</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FLAGS (hb_gobject_buffer_serialize_flags_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-BUFFER-SERIALIZE-FORMAT:CAPS"></a><h3>HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FORMAT</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FORMAT (hb_gobject_buffer_serialize_format_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-DIRECTION:CAPS"></a><h3>HB_GOBJECT_TYPE_DIRECTION</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_DIRECTION (hb_gobject_direction_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-FACE:CAPS"></a><h3>HB_GOBJECT_TYPE_FACE</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_FACE (hb_gobject_face_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-FONT:CAPS"></a><h3>HB_GOBJECT_TYPE_FONT</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_FONT (hb_gobject_font_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-FONT-FUNCS:CAPS"></a><h3>HB_GOBJECT_TYPE_FONT_FUNCS</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_FONT_FUNCS (hb_gobject_font_funcs_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-GLYPH-FLAGS:CAPS"></a><h3>HB_GOBJECT_TYPE_GLYPH_FLAGS</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_GLYPH_FLAGS (hb_gobject_glyph_flags_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-MAP:CAPS"></a><h3>HB_GOBJECT_TYPE_MAP</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_MAP (hb_gobject_map_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-MEMORY-MODE:CAPS"></a><h3>HB_GOBJECT_TYPE_MEMORY_MODE</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_MEMORY_MODE (hb_gobject_memory_mode_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-OT-COLOR-PALETTE-FLAGS:CAPS"></a><h3>HB_GOBJECT_TYPE_OT_COLOR_PALETTE_FLAGS</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_OT_COLOR_PALETTE_FLAGS (hb_gobject_ot_color_palette_flags_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-OT-LAYOUT-GLYPH-CLASS:CAPS"></a><h3>HB_GOBJECT_TYPE_OT_LAYOUT_GLYPH_CLASS</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_OT_LAYOUT_GLYPH_CLASS (hb_gobject_ot_layout_glyph_class_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-OT-MATH-CONSTANT:CAPS"></a><h3>HB_GOBJECT_TYPE_OT_MATH_CONSTANT</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_OT_MATH_CONSTANT (hb_gobject_ot_math_constant_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-OT-MATH-GLYPH-PART:CAPS"></a><h3>HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART (hb_gobject_ot_math_glyph_part_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-OT-MATH-GLYPH-PART-FLAGS:CAPS"></a><h3>HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART_FLAGS</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART_FLAGS (hb_gobject_ot_math_glyph_part_flags_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-OT-MATH-GLYPH-VARIANT:CAPS"></a><h3>HB_GOBJECT_TYPE_OT_MATH_GLYPH_VARIANT</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_OT_MATH_GLYPH_VARIANT (hb_gobject_ot_math_glyph_variant_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-OT-MATH-KERN:CAPS"></a><h3>HB_GOBJECT_TYPE_OT_MATH_KERN</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_OT_MATH_KERN (hb_gobject_ot_math_kern_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-SCRIPT:CAPS"></a><h3>HB_GOBJECT_TYPE_SCRIPT</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_SCRIPT (hb_gobject_script_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-SHAPE-PLAN:CAPS"></a><h3>HB_GOBJECT_TYPE_SHAPE_PLAN</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_SHAPE_PLAN (hb_gobject_shape_plan_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-UNICODE-COMBINING-CLASS:CAPS"></a><h3>HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS (hb_gobject_unicode_combining_class_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-UNICODE-FUNCS:CAPS"></a><h3>HB_GOBJECT_TYPE_UNICODE_FUNCS</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_UNICODE_FUNCS (hb_gobject_unicode_funcs_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-UNICODE-GENERAL-CATEGORY:CAPS"></a><h3>HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY (hb_gobject_unicode_general_category_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-BUFFER-CLUSTER-LEVEL:CAPS"></a><h3>HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL (hb_gobject_buffer_cluster_level_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-FEATURE:CAPS"></a><h3>HB_GOBJECT_TYPE_FEATURE</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_FEATURE (hb_gobject_feature_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-GLYPH-INFO:CAPS"></a><h3>HB_GOBJECT_TYPE_GLYPH_INFO</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_GLYPH_INFO (hb_gobject_glyph_info_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-GLYPH-POSITION:CAPS"></a><h3>HB_GOBJECT_TYPE_GLYPH_POSITION</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_GLYPH_POSITION (hb_gobject_glyph_position_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-SEGMENT-PROPERTIES:CAPS"></a><h3>HB_GOBJECT_TYPE_SEGMENT_PROPERTIES</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_SEGMENT_PROPERTIES (hb_gobject_segment_properties_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-SET:CAPS"></a><h3>HB_GOBJECT_TYPE_SET</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_SET (hb_gobject_set_get_type ())
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-GOBJECT-TYPE-USER-DATA-KEY:CAPS"></a><h3>HB_GOBJECT_TYPE_USER_DATA_KEY</h3>
+<pre class="programlisting">#define HB_GOBJECT_TYPE_USER_DATA_KEY (hb_gobject_user_data_key_get_type ())
+</pre>
+</div>
</div>
</div>
<div class="footer">
diff --git a/docs/html/harfbuzz-hb-graphite2.html b/docs/html/harfbuzz-hb-graphite2.html
index b6d779b..57a087d 100644
--- a/docs/html/harfbuzz-hb-graphite2.html
+++ b/docs/html/harfbuzz-hb-graphite2.html
@@ -5,7 +5,7 @@
<title>hb-graphite2: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch12.html" title="Integration API">
+<link rel="up" href="ch14.html" title="Integration API">
<link rel="prev" href="harfbuzz-hb-gobject.html" title="hb-gobject">
<link rel="next" href="harfbuzz-hb-icu.html" title="hb-icu">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
@@ -18,7 +18,7 @@
<a href="#harfbuzz-hb-graphite2.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch12.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch14.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="harfbuzz-hb-gobject.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="harfbuzz-hb-icu.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
@@ -75,7 +75,7 @@
<div class="refsect2">
<a name="hb-graphite2-face-get-gr-face"></a><h3>hb_graphite2_face_get_gr_face ()</h3>
<pre class="programlisting"><span class="returnvalue">gr_face</span> *
-hb_graphite2_face_get_gr_face (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_graphite2_face_get_gr_face (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
</div>
</div>
<div class="refsect1">
diff --git a/docs/html/harfbuzz-hb-icu.html b/docs/html/harfbuzz-hb-icu.html
index d1a31de..d89128c 100644
--- a/docs/html/harfbuzz-hb-icu.html
+++ b/docs/html/harfbuzz-hb-icu.html
@@ -5,7 +5,7 @@
<title>hb-icu: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch12.html" title="Integration API">
+<link rel="up" href="ch14.html" title="Integration API">
<link rel="prev" href="harfbuzz-hb-graphite2.html" title="hb-graphite2">
<link rel="next" href="harfbuzz-hb-uniscribe.html" title="hb-uniscribe">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
@@ -18,7 +18,7 @@
<a href="#harfbuzz-hb-icu.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch12.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch14.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="harfbuzz-hb-graphite2.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="harfbuzz-hb-uniscribe.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
@@ -41,7 +41,7 @@
<tbody>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-icu.html#hb-icu-get-unicode-funcs" title="hb_icu_get_unicode_funcs ()">hb_icu_get_unicode_funcs</a> <span class="c_punctuation">()</span>
@@ -79,7 +79,7 @@
<a name="harfbuzz-hb-icu.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="hb-icu-get-unicode-funcs"></a><h3>hb_icu_get_unicode_funcs ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
hb_icu_get_unicode_funcs (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
</div>
<hr>
diff --git a/docs/html/harfbuzz-hb-map.html b/docs/html/harfbuzz-hb-map.html
index 1e62513..e54c629 100644
--- a/docs/html/harfbuzz-hb-map.html
+++ b/docs/html/harfbuzz-hb-map.html
@@ -5,7 +5,7 @@
<title>hb-map: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch09.html" title="Core API">
+<link rel="up" href="ch11.html" title="Core API">
<link rel="prev" href="harfbuzz-hb-font.html" title="hb-font">
<link rel="next" href="harfbuzz-hb-set.html" title="hb-set">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
@@ -15,10 +15,11 @@
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
- <a href="#harfbuzz-hb-map.description" class="shortcut">Description</a></span>
+ <a href="#harfbuzz-hb-map.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+ <a href="#harfbuzz-hb-map.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch09.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch11.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="harfbuzz-hb-font.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="harfbuzz-hb-set.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
@@ -57,7 +58,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="returnvalue">hb_map_t</span></a> *
+<a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="returnvalue">hb_map_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-map.html#hb-map-create" title="hb_map_create ()">hb_map_create</a> <span class="c_punctuation">()</span>
@@ -89,7 +90,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="returnvalue">hb_map_t</span></a> *
+<a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="returnvalue">hb_map_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-map.html#hb-map-get-empty" title="hb_map_get_empty ()">hb_map_get_empty</a> <span class="c_punctuation">()</span>
@@ -128,7 +129,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="returnvalue">hb_map_t</span></a> *
+<a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="returnvalue">hb_map_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-map.html#hb-map-reference" title="hb_map_reference ()">hb_map_reference</a> <span class="c_punctuation">()</span>
@@ -153,7 +154,7 @@
</tbody>
</table></div>
</div>
-<div class="refsect1">
+<a name="hb-map-t"></a><div class="refsect1">
<a name="harfbuzz-hb-map.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
@@ -167,12 +168,18 @@
</tr>
<tr>
<td class="typedef_keyword">typedef</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t">hb_map_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-map.html#hb-map-t">hb_map_t</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
+<a name="harfbuzz-hb-map.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
+ <span class="lineart">╰──</span> hb_map_t
+</pre>
+</div>
+<div class="refsect1">
<a name="harfbuzz-hb-map.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;hb.h&gt;
</pre>
@@ -188,7 +195,7 @@ use if desired.</p>
<div class="refsect2">
<a name="hb-map-allocation-successful"></a><h3>hb_map_allocation_successful ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_map_allocation_successful (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *map</code></em>);</pre>
+hb_map_allocation_successful (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="type">hb_map_t</span></a> *map</code></em>);</pre>
<div class="refsect3">
<a name="hb-map-allocation-successful.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -210,7 +217,7 @@ hb_map_allocation_successful (<em class="parameter"><code>const <a class="link"
<div class="refsect2">
<a name="hb-map-clear"></a><h3>hb_map_clear ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_map_clear (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *map</code></em>);</pre>
+hb_map_clear (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="type">hb_map_t</span></a> *map</code></em>);</pre>
<div class="refsect3">
<a name="hb-map-clear.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -231,7 +238,7 @@ hb_map_clear (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.
<hr>
<div class="refsect2">
<a name="hb-map-create"></a><h3>hb_map_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="returnvalue">hb_map_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="returnvalue">hb_map_t</span></a> *
hb_map_create (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p><span class="annotation">[Xconstructor]</span></p>
<div class="refsect3">
@@ -245,7 +252,7 @@ hb_map_create (<em class="parameter"><code><span class="type">void</span></code>
<div class="refsect2">
<a name="hb-map-del"></a><h3>hb_map_del ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_map_del (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *map</code></em>,
+hb_map_del (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="type">hb_map_t</span></a> *map</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> key</code></em>);</pre>
<div class="refsect3">
<a name="hb-map-del.parameters"></a><h4>Parameters</h4>
@@ -268,7 +275,7 @@ hb_map_del (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.ht
<div class="refsect2">
<a name="hb-map-destroy"></a><h3>hb_map_destroy ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_map_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *map</code></em>);</pre>
+hb_map_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="type">hb_map_t</span></a> *map</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-map-destroy.parameters"></a><h4>Parameters</h4>
@@ -291,7 +298,7 @@ hb_map_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-ma
<div class="refsect2">
<a name="hb-map-get"></a><h3>hb_map_get ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="returnvalue">hb_codepoint_t</span></a>
-hb_map_get (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *map</code></em>,
+hb_map_get (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="type">hb_map_t</span></a> *map</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> key</code></em>);</pre>
<div class="refsect3">
<a name="hb-map-get.parameters"></a><h4>Parameters</h4>
@@ -313,7 +320,7 @@ hb_map_get (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-
<hr>
<div class="refsect2">
<a name="hb-map-get-empty"></a><h3>hb_map_get_empty ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="returnvalue">hb_map_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="returnvalue">hb_map_t</span></a> *
hb_map_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<div class="refsect3">
<a name="hb-map-get-empty.returns"></a><h4>Returns</h4>
@@ -326,7 +333,7 @@ hb_map_get_empty (<em class="parameter"><code><span class="type">void</span></co
<div class="refsect2">
<a name="hb-map-get-population"></a><h3>hb_map_get_population ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_map_get_population (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *map</code></em>);</pre>
+hb_map_get_population (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="type">hb_map_t</span></a> *map</code></em>);</pre>
<div class="refsect3">
<a name="hb-map-get-population.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -348,8 +355,8 @@ hb_map_get_population (<em class="parameter"><code>const <a class="link" href="h
<div class="refsect2">
<a name="hb-map-get-user-data"></a><h3>hb_map_get_user_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> *
-hb_map_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *map</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
+hb_map_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="type">hb_map_t</span></a> *map</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-map-get-user-data.parameters"></a><h4>Parameters</h4>
@@ -377,7 +384,7 @@ hb_map_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz
<div class="refsect2">
<a name="hb-map-has"></a><h3>hb_map_has ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_map_has (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *map</code></em>,
+hb_map_has (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="type">hb_map_t</span></a> *map</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> key</code></em>);</pre>
<div class="refsect3">
<a name="hb-map-has.parameters"></a><h4>Parameters</h4>
@@ -400,7 +407,7 @@ hb_map_has (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-
<div class="refsect2">
<a name="hb-map-is-empty"></a><h3>hb_map_is_empty ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_map_is_empty (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *map</code></em>);</pre>
+hb_map_is_empty (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="type">hb_map_t</span></a> *map</code></em>);</pre>
<div class="refsect3">
<a name="hb-map-is-empty.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -421,8 +428,8 @@ hb_map_is_empty (<em class="parameter"><code>const <a class="link" href="harfbuz
<hr>
<div class="refsect2">
<a name="hb-map-reference"></a><h3>hb_map_reference ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="returnvalue">hb_map_t</span></a> *
-hb_map_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *map</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="returnvalue">hb_map_t</span></a> *
+hb_map_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="type">hb_map_t</span></a> *map</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-map-reference.parameters"></a><h4>Parameters</h4>
@@ -450,7 +457,7 @@ hb_map_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
<div class="refsect2">
<a name="hb-map-set"></a><h3>hb_map_set ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_map_set (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *map</code></em>,
+hb_map_set (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="type">hb_map_t</span></a> *map</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> key</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> value</code></em>);</pre>
<div class="refsect3">
@@ -474,8 +481,8 @@ hb_map_set (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.ht
<div class="refsect2">
<a name="hb-map-set-user-data"></a><h3>hb_map_set_user_data ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_map_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *map</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
+hb_map_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="type">hb_map_t</span></a> *map</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
<em class="parameter"><code><span class="type">void</span> *data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
diff --git a/docs/html/harfbuzz-hb-ot-color.html b/docs/html/harfbuzz-hb-ot-color.html
index 0d230e0..ed364e4 100644
--- a/docs/html/harfbuzz-hb-ot-color.html
+++ b/docs/html/harfbuzz-hb-ot-color.html
@@ -5,8 +5,8 @@
<title>hb-ot-color: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch10.html" title="OpenType API">
-<link rel="prev" href="ch10.html" title="OpenType API">
+<link rel="up" href="ch12.html" title="OpenType API">
+<link rel="prev" href="ch12.html" title="OpenType API">
<link rel="next" href="harfbuzz-hb-ot-font.html" title="hb-ot-font">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
@@ -15,11 +15,12 @@
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
- <a href="#harfbuzz-hb-ot-color.description" class="shortcut">Description</a></span>
+ <a href="#harfbuzz-hb-ot-color.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+ <a href="#harfbuzz-hb-ot-color.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch10.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="ch10.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch12.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="ch12.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="harfbuzz-hb-ot-font.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
@@ -46,27 +47,35 @@
</td>
</tr>
<tr>
-<td class="define_keyword">#define</td>
+<td class="function_type">
+<span class="returnvalue">uint8_t</span>
+</td>
<td class="function_name">
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-color-get-alpha" title="hb_color_get_alpha()">hb_color_get_alpha</a><span class="c_punctuation">()</span>
+<a class="link" href="harfbuzz-hb-ot-color.html#hb-color-get-alpha" title="hb_color_get_alpha ()">hb_color_get_alpha</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td class="define_keyword">#define</td>
+<td class="function_type">
+<span class="returnvalue">uint8_t</span>
+</td>
<td class="function_name">
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-color-get-blue" title="hb_color_get_blue()">hb_color_get_blue</a><span class="c_punctuation">()</span>
+<a class="link" href="harfbuzz-hb-ot-color.html#hb-color-get-blue" title="hb_color_get_blue ()">hb_color_get_blue</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td class="define_keyword">#define</td>
+<td class="function_type">
+<span class="returnvalue">uint8_t</span>
+</td>
<td class="function_name">
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-color-get-green" title="hb_color_get_green()">hb_color_get_green</a><span class="c_punctuation">()</span>
+<a class="link" href="harfbuzz-hb-ot-color.html#hb-color-get-green" title="hb_color_get_green ()">hb_color_get_green</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td class="define_keyword">#define</td>
+<td class="function_type">
+<span class="returnvalue">uint8_t</span>
+</td>
<td class="function_name">
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-color-get-red" title="hb_color_get_red()">hb_color_get_red</a><span class="c_punctuation">()</span>
+<a class="link" href="harfbuzz-hb-ot-color.html#hb-color-get-red" title="hb_color_get_red ()">hb_color_get_red</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
@@ -78,7 +87,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-ot-color.html#hb-ot-color-glyph-reference-png" title="hb_ot_color_glyph_reference_png ()">hb_ot_color_glyph_reference_png</a> <span class="c_punctuation">()</span>
@@ -86,7 +95,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-ot-color.html#hb-ot-color-glyph-reference-svg" title="hb_ot_color_glyph_reference_svg ()">hb_ot_color_glyph_reference_svg</a> <span class="c_punctuation">()</span>
@@ -185,6 +194,12 @@
</table></div>
</div>
<div class="refsect1">
+<a name="harfbuzz-hb-ot-color.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GFlags</a>
+ <span class="lineart">╰──</span> hb_ot_color_palette_flags_t
+</pre>
+</div>
+<div class="refsect1">
<a name="harfbuzz-hb-ot-color.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;hb-ot.h&gt;
</pre>
@@ -192,6 +207,7 @@
<div class="refsect1">
<a name="harfbuzz-hb-ot-color.description"></a><h2>Description</h2>
<p>Functions for fetching color-font information from OpenType font faces.</p>
+<p>HarfBuzz supports <code class="literal">COLR</code>/<code class="literal">CPAL</code>, <code class="literal">sbix</code>, <code class="literal">CBDT</code>, and <code class="literal">SVG</code> color fonts.</p>
</div>
<div class="refsect1">
<a name="harfbuzz-hb-ot-color.functions_details"></a><h2>Functions</h2>
@@ -202,41 +218,59 @@
</div>
<hr>
<div class="refsect2">
-<a name="hb-color-get-alpha"></a><h3>hb_color_get_alpha()</h3>
-<pre class="programlisting">#define hb_color_get_alpha(color) ((color) &amp; 0xFF)
-</pre>
+<a name="hb-color-get-alpha"></a><h3>hb_color_get_alpha ()</h3>
+<pre class="programlisting"><span class="returnvalue">uint8_t</span>
+hb_color_get_alpha (<em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-color.html#hb-color-t" title="hb_color_t"><span class="type">hb_color_t</span></a> color</code></em>);</pre>
+<div class="refsect3">
+<a name="hb-color-get-alpha.returns"></a><h4>Returns</h4>
+<p> Alpha channel value of the given color</p>
+</div>
<p class="since">Since: <a class="link" href="api-index-2-1-0.html#api-index-2.1.0">2.1.0</a></p>
</div>
<hr>
<div class="refsect2">
-<a name="hb-color-get-blue"></a><h3>hb_color_get_blue()</h3>
-<pre class="programlisting">#define hb_color_get_blue(color) (((color) &gt;&gt; 24) &amp; 0xFF)
-</pre>
+<a name="hb-color-get-blue"></a><h3>hb_color_get_blue ()</h3>
+<pre class="programlisting"><span class="returnvalue">uint8_t</span>
+hb_color_get_blue (<em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-color.html#hb-color-t" title="hb_color_t"><span class="type">hb_color_t</span></a> color</code></em>);</pre>
+<div class="refsect3">
+<a name="hb-color-get-blue.returns"></a><h4>Returns</h4>
+<p> Blue channel value of the given color</p>
+</div>
<p class="since">Since: <a class="link" href="api-index-2-1-0.html#api-index-2.1.0">2.1.0</a></p>
</div>
<hr>
<div class="refsect2">
-<a name="hb-color-get-green"></a><h3>hb_color_get_green()</h3>
-<pre class="programlisting">#define hb_color_get_green(color) (((color) &gt;&gt; 16) &amp; 0xFF)
-</pre>
+<a name="hb-color-get-green"></a><h3>hb_color_get_green ()</h3>
+<pre class="programlisting"><span class="returnvalue">uint8_t</span>
+hb_color_get_green (<em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-color.html#hb-color-t" title="hb_color_t"><span class="type">hb_color_t</span></a> color</code></em>);</pre>
+<div class="refsect3">
+<a name="hb-color-get-green.returns"></a><h4>Returns</h4>
+<p> Green channel value of the given color</p>
+</div>
<p class="since">Since: <a class="link" href="api-index-2-1-0.html#api-index-2.1.0">2.1.0</a></p>
</div>
<hr>
<div class="refsect2">
-<a name="hb-color-get-red"></a><h3>hb_color_get_red()</h3>
-<pre class="programlisting">#define hb_color_get_red(color) (((color) &gt;&gt; 8) &amp; 0xFF)
-</pre>
+<a name="hb-color-get-red"></a><h3>hb_color_get_red ()</h3>
+<pre class="programlisting"><span class="returnvalue">uint8_t</span>
+hb_color_get_red (<em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-color.html#hb-color-t" title="hb_color_t"><span class="type">hb_color_t</span></a> color</code></em>);</pre>
+<div class="refsect3">
+<a name="hb-color-get-red.returns"></a><h4>Returns</h4>
+<p> Red channel value of the given color</p>
+</div>
<p class="since">Since: <a class="link" href="api-index-2-1-0.html#api-index-2.1.0">2.1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-color-glyph-get-layers"></a><h3>hb_ot_color_glyph_get_layers ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_color_glyph_get_layers (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_color_glyph_get_layers (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
- <em class="parameter"><code>unsigned <span class="type">int</span> *count</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *layer_count</code></em>,
<em class="parameter"><code><span class="type">hb_ot_color_layer_t</span> *layers</code></em>);</pre>
+<p>Fetches a list of all color layers for the specified glyph index in the specified
+face. The list returned will begin at the offset provided.</p>
<div class="refsect3">
<a name="hb-ot-color-glyph-get-layers.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -248,46 +282,49 @@ hb_ot_color_glyph_get_layers (<em class="parameter"><code><a class="link" href="
<tbody>
<tr>
<td class="parameter_name"><p>face</p></td>
-<td class="parameter_description"><p>a font face.</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>glyph</p></td>
-<td class="parameter_description"><p>a layered color glyph id.</p></td>
+<td class="parameter_description"><p>The glyph index to query</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>start_offset</p></td>
-<td class="parameter_description"><p>starting offset of layers.</p></td>
+<td class="parameter_description"><p>offset of the first layer to retrieve</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td class="parameter_name"><p>count</p></td>
-<td class="parameter_description"><p>gets number of layers available to be written on buffer
-and returns number of written layers. </p></td>
+<td class="parameter_name"><p>layer_count</p></td>
+<td class="parameter_description"><p>Input = the maximum number of layers to return;
+Output = the actual number of layers returned (may be zero). </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>layers</p></td>
-<td class="parameter_description"><p>layers buffer to buffer. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=count][<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
+<td class="parameter_description"><p>The array of layers found. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=layer_count][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="hb-ot-color-glyph-get-layers.returns"></a><h4>Returns</h4>
-<p> Total number of layers a layered color glyph have.</p>
+<p> Total number of layers available for the glyph index queried</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-1-0.html#api-index-2.1.0">2.1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-color-glyph-reference-png"></a><h3>hb_ot_color_glyph_reference_png ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
-hb_ot_color_glyph_reference_png (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
+hb_ot_color_glyph_reference_png (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>);</pre>
-<p>Get PNG image for a glyph.</p>
+<p>Fetches the PNG image for a glyph. This function takes a font object, not a face object,
+as input. To get an optimally sized PNG blob, the UPEM value must be set on the <em class="parameter"><code>font</code></em>
+
+object. If UPEM is unset, the blob returned will be the largest PNG available.</p>
<div class="refsect3">
<a name="hb-ot-color-glyph-reference-png.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -299,14 +336,12 @@ hb_ot_color_glyph_reference_png (<em class="parameter"><code><a class="link" hre
<tbody>
<tr>
<td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p>a font object, not face. upem should be set on
-that font object if one wants to get optimal png blob, otherwise
-return the biggest one</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> to work upon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>glyph</p></td>
-<td class="parameter_description"><p>a glyph index.</p></td>
+<td class="parameter_description"><p>a glyph index</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -314,7 +349,7 @@ return the biggest one</p></td>
</div>
<div class="refsect3">
<a name="hb-ot-color-glyph-reference-png.returns"></a><h4>Returns</h4>
-<p>respective PNG blob of the glyph, if available. </p>
+<p>An <a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> containing the PNG image for the glyph, if available. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-1-0.html#api-index-2.1.0">2.1.0</a></p>
@@ -322,10 +357,10 @@ return the biggest one</p></td>
<hr>
<div class="refsect2">
<a name="hb-ot-color-glyph-reference-svg"></a><h3>hb_ot_color_glyph_reference_svg ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
-hb_ot_color_glyph_reference_svg (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
+hb_ot_color_glyph_reference_svg (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>);</pre>
-<p>Get SVG document for a glyph. The blob may be either plain text or gzip-encoded.</p>
+<p>Fetches the SVG document for a glyph. The blob may be either plain text or gzip-encoded.</p>
<div class="refsect3">
<a name="hb-ot-color-glyph-reference-svg.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -337,12 +372,12 @@ hb_ot_color_glyph_reference_svg (<em class="parameter"><code><a class="link" hre
<tbody>
<tr>
<td class="parameter_name"><p>face</p></td>
-<td class="parameter_description"><p>a font face.</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>glyph</p></td>
-<td class="parameter_description"><p>a svg glyph index.</p></td>
+<td class="parameter_description"><p>a svg glyph index</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -350,7 +385,7 @@ hb_ot_color_glyph_reference_svg (<em class="parameter"><code><a class="link" hre
</div>
<div class="refsect3">
<a name="hb-ot-color-glyph-reference-svg.returns"></a><h4>Returns</h4>
-<p>respective svg blob of the glyph, if available. </p>
+<p>An <a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> containing the SVG document of the glyph, if available. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-1-0.html#api-index-2.1.0">2.1.0</a></p>
@@ -359,7 +394,8 @@ hb_ot_color_glyph_reference_svg (<em class="parameter"><code><a class="link" hre
<div class="refsect2">
<a name="hb-ot-color-has-layers"></a><h3>hb_ot_color_has_layers ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_color_has_layers (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_ot_color_has_layers (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+<p>Tests whether a face includes any <code class="literal">COLR</code> color layers.</p>
<div class="refsect3">
<a name="hb-ot-color-has-layers.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -370,14 +406,14 @@ hb_ot_color_has_layers (<em class="parameter"><code><a class="link" href="harfbu
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>face</p></td>
-<td class="parameter_description"><p>a font face.</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="hb-ot-color-has-layers.returns"></a><h4>Returns</h4>
-<p> whether COLR table is available.</p>
+<p> true if data found, false otherwise</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-1-0.html#api-index-2.1.0">2.1.0</a></p>
</div>
@@ -385,7 +421,8 @@ hb_ot_color_has_layers (<em class="parameter"><code><a class="link" href="harfbu
<div class="refsect2">
<a name="hb-ot-color-has-palettes"></a><h3>hb_ot_color_has_palettes ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_color_has_palettes (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_ot_color_has_palettes (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+<p>Tests whether a face includes a <code class="literal">CPAL</code> color-palette table.</p>
<div class="refsect3">
<a name="hb-ot-color-has-palettes.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -396,14 +433,14 @@ hb_ot_color_has_palettes (<em class="parameter"><code><a class="link" href="harf
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>face</p></td>
-<td class="parameter_description"><p>a font face.</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="hb-ot-color-has-palettes.returns"></a><h4>Returns</h4>
-<p> whether CPAL table is available.</p>
+<p> true if data found, false otherwise</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-1-0.html#api-index-2.1.0">2.1.0</a></p>
</div>
@@ -411,10 +448,8 @@ hb_ot_color_has_palettes (<em class="parameter"><code><a class="link" href="harf
<div class="refsect2">
<a name="hb-ot-color-has-png"></a><h3>hb_ot_color_has_png ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_color_has_png (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
-<p>Check whether <em class="parameter"><code>face</code></em>
- has PNG glyph images (either CBDT or sbix tables).</p>
-<p>Returns true if available, false otherwise.</p>
+hb_ot_color_has_png (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+<p>Tests whether a face has PNG glyph images (either in <code class="literal">CBDT</code> or <code class="literal">sbix</code> tables).</p>
<div class="refsect3">
<a name="hb-ot-color-has-png.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -425,21 +460,23 @@ hb_ot_color_has_png (<em class="parameter"><code><a class="link" href="harfbuzz-
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>face</p></td>
-<td class="parameter_description"><p>a font face.</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="hb-ot-color-has-png.returns"></a><h4>Returns</h4>
+<p> true if data found, false otherwise</p>
+</div>
<p class="since">Since: <a class="link" href="api-index-2-1-0.html#api-index-2.1.0">2.1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-color-has-svg"></a><h3>hb_ot_color_has_svg ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_color_has_svg (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
-<p>Check whether <em class="parameter"><code>face</code></em>
- has SVG glyph images.</p>
-<p>Returns true if available, false otherwise.</p>
+hb_ot_color_has_svg (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+<p>Tests whether a face includes any <code class="literal">SVG</code> glyph images.</p>
<div class="refsect3">
<a name="hb-ot-color-has-svg.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -450,19 +487,27 @@ hb_ot_color_has_svg (<em class="parameter"><code><a class="link" href="harfbuzz-
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>face</p></td>
-<td class="parameter_description"><p>a font face.</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="hb-ot-color-has-svg.returns"></a><h4>Returns</h4>
+<p> true if data found, false otherwise.</p>
+</div>
<p class="since">Since: <a class="link" href="api-index-2-1-0.html#api-index-2.1.0">2.1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-color-palette-color-get-name-id"></a><h3>hb_ot_color_palette_color_get_name_id ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="returnvalue">hb_ot_name_id_t</span></a>
-hb_ot_color_palette_color_get_name_id (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_color_palette_color_get_name_id (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> color_index</code></em>);</pre>
+<p>Fetches the <code class="literal">name</code> table Name ID that provides display names for
+the specificed color in a face's <code class="literal">CPAL</code> color palette. </p>
+<p>Display names can be generic (e.g., "Background") or specific
+(e.g., "Eye color").</p>
<div class="refsect3">
<a name="hb-ot-color-palette-color-get-name-id.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -474,12 +519,12 @@ hb_ot_color_palette_color_get_name_id (<em class="parameter"><code><a class="lin
<tbody>
<tr>
<td class="parameter_name"><p>face</p></td>
-<td class="parameter_description"><p>a font face.</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>color_index</p></td>
-<td class="parameter_description"><p>palette entry index.</p></td>
+<td class="parameter_description"><p>The index of the color</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -487,7 +532,7 @@ hb_ot_color_palette_color_get_name_id (<em class="parameter"><code><a class="lin
</div>
<div class="refsect3">
<a name="hb-ot-color-palette-color-get-name-id.returns"></a><h4>Returns</h4>
-<p> Name ID associated with a palette entry, e.g. eye color</p>
+<p> the Name ID found for the color.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-1-0.html#api-index-2.1.0">2.1.0</a></p>
</div>
@@ -495,12 +540,19 @@ hb_ot_color_palette_color_get_name_id (<em class="parameter"><code><a class="lin
<div class="refsect2">
<a name="hb-ot-color-palette-get-colors"></a><h3>hb_ot_color_palette_get_colors ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_color_palette_get_colors (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_color_palette_get_colors (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> palette_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *color_count</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-color.html#hb-color-t" title="hb_color_t"><span class="type">hb_color_t</span></a> *colors</code></em>);</pre>
-<p>Retrieves the colors in a color palette.</p>
+<p>Fetches a list of the colors in a color palette.</p>
+<p>After calling this function, <em class="parameter"><code>colors</code></em>
+ will be filled with the palette
+colors. If <em class="parameter"><code>colors</code></em>
+ is NULL, the function will just return the number
+of total colors without storing any actual colors; this can be used
+for allocating a buffer of suitable size before calling
+<a class="link" href="harfbuzz-hb-ot-color.html#hb-ot-color-palette-get-colors" title="hb_ot_color_palette_get_colors ()"><code class="function">hb_ot_color_palette_get_colors()</code></a> a second time.</p>
<div class="refsect3">
<a name="hb-ot-color-palette-get-colors.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -512,47 +564,36 @@ hb_ot_color_palette_get_colors (<em class="parameter"><code><a class="link" href
<tbody>
<tr>
<td class="parameter_name"><p>face</p></td>
-<td class="parameter_description"><p>a font face.</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>palette_index</p></td>
-<td class="parameter_description"><p>the index of the color palette whose colors
-are being requested.</p></td>
+<td class="parameter_description"><p>the index of the color palette to query</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>start_offset</p></td>
-<td class="parameter_description"><p>the index of the first color being requested.</p></td>
+<td class="parameter_description"><p>offset of the first color to retrieve</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>color_count</p></td>
-<td class="parameter_description"><p>on input, how many colors
-can be maximally stored into the <em class="parameter"><code>colors</code></em>
-array;
-on output, how many colors were actually stored. </p></td>
+<td class="parameter_description"><p>Input = the maximum number of colors to return;
+Output = the actual number of colors returned (may be zero). </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>colors</p></td>
-<td class="parameter_description"><p>an array of <a class="link" href="harfbuzz-hb-ot-color.html#hb-color-t" title="hb_color_t"><span class="type">hb_color_t</span></a> records. After calling
-this function, <em class="parameter"><code>colors</code></em>
-will be filled with
-the palette colors. If <em class="parameter"><code>colors</code></em>
-is NULL, the function
-will just return the number of total colors
-without storing any actual colors; this can be used
-for allocating a buffer of suitable size before calling
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-ot-color-palette-get-colors" title="hb_ot_color_palette_get_colors ()"><code class="function">hb_ot_color_palette_get_colors()</code></a> a second time. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=color_count][<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
+<td class="parameter_description"><p>The array of <a class="link" href="harfbuzz-hb-ot-color.html#hb-color-t" title="hb_color_t"><span class="type">hb_color_t</span></a> records found. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=color_count][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="hb-ot-color-palette-get-colors.returns"></a><h4>Returns</h4>
-<p> the total number of colors in the palette.</p>
+<p> the total number of colors in the palette</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-1-0.html#api-index-2.1.0">2.1.0</a></p>
</div>
@@ -560,7 +601,8 @@ for allocating a buffer of suitable size before calling
<div class="refsect2">
<a name="hb-ot-color-palette-get-count"></a><h3>hb_ot_color_palette_get_count ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_color_palette_get_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_ot_color_palette_get_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+<p>Fetches the number of color palettes in a face.</p>
<div class="refsect3">
<a name="hb-ot-color-palette-get-count.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -571,17 +613,14 @@ hb_ot_color_palette_get_count (<em class="parameter"><code><a class="link" href=
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>face</p></td>
-<td class="parameter_description"><p>a font face.</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="hb-ot-color-palette-get-count.returns"></a><h4>Returns</h4>
-<p> the number of color palettes in <em class="parameter"><code>face</code></em>
-, or zero if <em class="parameter"><code>face</code></em>
-has
-no colors.</p>
+<p> the number of palettes found</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-1-0.html#api-index-2.1.0">2.1.0</a></p>
</div>
@@ -589,8 +628,9 @@ no colors.</p>
<div class="refsect2">
<a name="hb-ot-color-palette-get-flags"></a><h3>hb_ot_color_palette_get_flags ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-ot-color.html#hb-ot-color-palette-flags-t" title="enum hb_ot_color_palette_flags_t"><span class="returnvalue">hb_ot_color_palette_flags_t</span></a>
-hb_ot_color_palette_get_flags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_color_palette_get_flags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> palette_index</code></em>);</pre>
+<p>Fetches the flags defined for a color palette.</p>
<div class="refsect3">
<a name="hb-ot-color-palette-get-flags.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -602,12 +642,12 @@ hb_ot_color_palette_get_flags (<em class="parameter"><code><a class="link" href=
<tbody>
<tr>
<td class="parameter_name"><p>face</p></td>
-<td class="parameter_description"><p>a font face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>palette_index</p></td>
-<td class="parameter_description"><p>the index of the color palette whose flags are being requested</p></td>
+<td class="parameter_description"><p>The index of the color palette</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -615,7 +655,7 @@ hb_ot_color_palette_get_flags (<em class="parameter"><code><a class="link" href=
</div>
<div class="refsect3">
<a name="hb-ot-color-palette-get-flags.returns"></a><h4>Returns</h4>
-<p> the flags for the requested color palette.</p>
+<p> the <a class="link" href="harfbuzz-hb-ot-color.html#hb-ot-color-palette-flags-t" title="enum hb_ot_color_palette_flags_t"><span class="type">hb_ot_color_palette_flags_t</span></a> of the requested color palette</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-1-0.html#api-index-2.1.0">2.1.0</a></p>
</div>
@@ -623,10 +663,12 @@ hb_ot_color_palette_get_flags (<em class="parameter"><code><a class="link" href=
<div class="refsect2">
<a name="hb-ot-color-palette-get-name-id"></a><h3>hb_ot_color_palette_get_name_id ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="returnvalue">hb_ot_name_id_t</span></a>
-hb_ot_color_palette_get_name_id (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_color_palette_get_name_id (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> palette_index</code></em>);</pre>
-<p>Retrieves the name id of a color palette. For example, a color font can
-have themed palettes like "Spring", "Summer", "Fall", and "Winter".</p>
+<p>Fetches the <code class="literal">name</code> table Name ID that provides display names for
+a <code class="literal">CPAL</code> color palette. </p>
+<p>Palette display names can be generic (e.g., "Default") or provide
+specific, themed names (e.g., "Spring", "Summer", "Fall", and "Winter").</p>
<div class="refsect3">
<a name="hb-ot-color-palette-get-name-id.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -638,12 +680,12 @@ have themed palettes like "Spring", "Summer", "Fall", and "Winter".</p>
<tbody>
<tr>
<td class="parameter_name"><p>face</p></td>
-<td class="parameter_description"><p>a font face.</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>palette_index</p></td>
-<td class="parameter_description"><p>the index of the color palette whose name is being requested.</p></td>
+<td class="parameter_description"><p>The index of the color palette </p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -651,8 +693,7 @@ have themed palettes like "Spring", "Summer", "Fall", and "Winter".</p>
</div>
<div class="refsect3">
<a name="hb-ot-color-palette-get-name-id.returns"></a><h4>Returns</h4>
-<p> an identifier within <em class="parameter"><code>face</code></em>
-'s <code class="literal">name</code> table.
+<p> the Named ID found for the palette.
If the requested palette has no name the result is <span class="type">HB_OT_NAME_ID_INVALID</span>.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-1-0.html#api-index-2.1.0">2.1.0</a></p>
@@ -682,7 +723,7 @@ If the requested palette has no name the result is <span class="type">HB_OT_NAME
<tr>
<td class="enum_member_name"><p><a name="HB-OT-COLOR-PALETTE-FLAG-DEFAULT:CAPS"></a>HB_OT_COLOR_PALETTE_FLAG_DEFAULT</p></td>
<td class="enum_member_description">
-<p>default indicating that there is nothing special
+<p>Default indicating that there is nothing special
to note about a color palette.</p>
</td>
<td class="enum_member_annotations"> </td>
@@ -690,7 +731,7 @@ If the requested palette has no name the result is <span class="type">HB_OT_NAME
<tr>
<td class="enum_member_name"><p><a name="HB-OT-COLOR-PALETTE-FLAG-USABLE-WITH-LIGHT-BACKGROUND:CAPS"></a>HB_OT_COLOR_PALETTE_FLAG_USABLE_WITH_LIGHT_BACKGROUND</p></td>
<td class="enum_member_description">
-<p>flag indicating that the color
+<p>Flag indicating that the color
palette is appropriate to use when displaying the font on a light background such as white.</p>
</td>
<td class="enum_member_annotations"> </td>
@@ -698,7 +739,7 @@ If the requested palette has no name the result is <span class="type">HB_OT_NAME
<tr>
<td class="enum_member_name"><p><a name="HB-OT-COLOR-PALETTE-FLAG-USABLE-WITH-DARK-BACKGROUND:CAPS"></a>HB_OT_COLOR_PALETTE_FLAG_USABLE_WITH_DARK_BACKGROUND</p></td>
<td class="enum_member_description">
-<p>flag indicating that the color
+<p>Flag indicating that the color
palette is appropriate to use when displaying the font on a dark background such as black.</p>
</td>
<td class="enum_member_annotations"> </td>
diff --git a/docs/html/harfbuzz-hb-ot-font.html b/docs/html/harfbuzz-hb-ot-font.html
index 6c955ca..635c7f3 100644
--- a/docs/html/harfbuzz-hb-ot-font.html
+++ b/docs/html/harfbuzz-hb-ot-font.html
@@ -5,7 +5,7 @@
<title>hb-ot-font: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch10.html" title="OpenType API">
+<link rel="up" href="ch12.html" title="OpenType API">
<link rel="prev" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">
<link rel="next" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
@@ -18,7 +18,7 @@
<a href="#harfbuzz-hb-ot-font.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch10.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch12.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="harfbuzz-hb-ot-color.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="harfbuzz-hb-ot-layout.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
@@ -64,7 +64,7 @@ never need to call these functions directly.</p>
<div class="refsect2">
<a name="hb-ot-font-set-funcs"></a><h3>hb_ot_font_set_funcs ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_ot_font_set_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+hb_ot_font_set_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-0-9-28.html#api-index-0.9.28">0.9.28</a></p>
</div>
</div>
diff --git a/docs/html/harfbuzz-hb-ot-layout.html b/docs/html/harfbuzz-hb-ot-layout.html
index 76be161..ab5d19f 100644
--- a/docs/html/harfbuzz-hb-ot-layout.html
+++ b/docs/html/harfbuzz-hb-ot-layout.html
@@ -5,7 +5,7 @@
<title>hb-ot-layout: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch10.html" title="OpenType API">
+<link rel="up" href="ch12.html" title="OpenType API">
<link rel="prev" href="harfbuzz-hb-ot-font.html" title="hb-ot-font">
<link rel="next" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
@@ -15,10 +15,11 @@
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
- <a href="#harfbuzz-hb-ot-layout.description" class="shortcut">Description</a></span>
+ <a href="#harfbuzz-hb-ot-layout.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+ <a href="#harfbuzz-hb-ot-layout.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch10.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch12.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="harfbuzz-hb-ot-font.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="harfbuzz-hb-ot-math.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
@@ -125,6 +126,14 @@
</tr>
<tr>
<td class="function_type">
+<a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-get-baseline" title="hb_ot_layout_get_baseline ()">hb_ot_layout_get_baseline</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-glyph-class-t" title="enum hb_ot_layout_glyph_class_t"><span class="returnvalue">hb_ot_layout_glyph_class_t</span></a>
</td>
<td class="function_name">
@@ -381,12 +390,23 @@
</tr>
<tr>
<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-baseline-tag-t" title="enum hb_ot_layout_baseline_tag_t">hb_ot_layout_baseline_tag_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-glyph-class-t" title="enum hb_ot_layout_glyph_class_t">hb_ot_layout_glyph_class_t</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
+<a name="harfbuzz-hb-ot-layout.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GEnum</a>
+ <span class="lineart">├──</span> hb_ot_layout_baseline_tag_t
+ <span class="lineart">╰──</span> hb_ot_layout_glyph_class_t
+</pre>
+</div>
+<div class="refsect1">
<a name="harfbuzz-hb-ot-layout.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;hb-ot.h&gt;
</pre>
@@ -527,38 +547,137 @@ and
<div class="refsect2">
<a name="hb-ot-layout-collect-lookups"></a><h3>hb_ot_layout_collect_lookups ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_ot_layout_collect_lookups (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_collect_lookups (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *scripts</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *languages</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *features</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *lookup_indexes</code></em>);</pre>
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *lookup_indexes</code></em>);</pre>
+<p>Fetches a list of all feature-lookup indexes in the specified face's GSUB
+table or GPOS table, underneath the specified scripts, languages, and
+features. If no list of scripts is provided, all scripts will be queried.
+If no list of languages is provided, all languages will be queried. If no
+list of features is provided, all features will be queried.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-collect-lookups.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>table_tag</p></td>
+<td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>scripts</p></td>
+<td class="parameter_description"><p>The array of scripts to collect lookups for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>languages</p></td>
+<td class="parameter_description"><p>The array of languages to collect lookups for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>features</p></td>
+<td class="parameter_description"><p>The array of features to collect lookups for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>lookup_indexes</p></td>
+<td class="parameter_description"><p>The array of lookup indexes found for the query. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
<p class="since">Since: <a class="link" href="api-index-0-9-8.html#api-index-0.9.8">0.9.8</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-collect-features"></a><h3>hb_ot_layout_collect_features ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_ot_layout_collect_features (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_collect_features (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *scripts</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *languages</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *features</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *feature_indexes</code></em>);</pre>
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *feature_indexes</code></em>);</pre>
+<p>Fetches a list of all feature indexes in the specified face's GSUB table
+or GPOS table, underneath the specified scripts, languages, and features.
+If no list of scripts is provided, all scripts will be queried. If no list
+of languages is provided, all languages will be queried. If no list of
+features is provided, all features will be queried.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-collect-features.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>table_tag</p></td>
+<td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>scripts</p></td>
+<td class="parameter_description"><p>The array of scripts to collect features for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>languages</p></td>
+<td class="parameter_description"><p>The array of languages to collect features for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>features</p></td>
+<td class="parameter_description"><p>The array of features to collect</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>feature_indexes</p></td>
+<td class="parameter_description"><p>The array of feature indexes found for the query. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
<p class="since">Since: <a class="link" href="api-index-1-8-5.html#api-index-1.8.5">1.8.5</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-feature-get-characters"></a><h3>hb_ot_layout_feature_get_characters ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_layout_feature_get_characters (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_feature_get_characters (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> feature_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *char_count</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *characters</code></em>);</pre>
-<p>Fetches characters listed by designer under feature parameters for "Character
-Variant" ("cvXX") features.</p>
+<p>Fetches a list of the characters defined as having a variant under the specified
+"Character Variant" ("cvXX") feature tag.</p>
+<div class="note">Note: If the char_count output value is equal to its input value, then there
+ is a chance there were more characters defined under the feature tag than were
+ returned. This function can be called with incrementally larger start_offset
+ until the char_count output value is lower than its input value, or the size
+ of the characters array can be increased.</div>
<div class="refsect3">
<a name="hb-ot-layout-feature-get-characters.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -570,7 +689,7 @@ Variant" ("cvXX") features.</p>
<tbody>
<tr>
<td class="parameter_name"><p>face</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -585,23 +704,20 @@ Variant" ("cvXX") features.</p>
</tr>
<tr>
<td class="parameter_name"><p>start_offset</p></td>
-<td class="parameter_description"><p>In case the resulting char_count was equal to its input value, there
-is a chance there were more characters on the tag so this API can be
-called with an offset till resulting char_count gets to a number
-lower than input buffer (or consider using just a bigger buffer for
-one shot copying).</p></td>
+<td class="parameter_description"><p>offset of the first character to retrieve</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>char_count</p></td>
-<td class="parameter_description"><p>The count of characters for which this feature
-provides glyph variants. (May be zero.). </p></td>
+<td class="parameter_description"><p>Input = the maximum number of characters to return;
+Output = the actual number of characters returned (may be zero). </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>characters</p></td>
-<td class="parameter_description"><p>A buffer pointer. The Unicode codepoints
-of the characters for which this feature provides glyph variants. </p></td>
+<td class="parameter_description"><p>A buffer pointer.
+The Unicode codepoints of the characters for which this feature provides
+glyph variants. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=char_count]</span></td>
</tr>
</tbody>
@@ -617,19 +733,65 @@ of the characters for which this feature provides glyph variants. </p></td>
<div class="refsect2">
<a name="hb-ot-layout-feature-get-lookups"></a><h3>hb_ot_layout_feature_get_lookups ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_layout_feature_get_lookups (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_feature_get_lookups (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> feature_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *lookup_count</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *lookup_indexes</code></em>);</pre>
+<p>Fetches a list of all lookups enumerated for the specified feature, in
+the specified face's GSUB table or GPOS table. The list returned will
+begin at the offset provided.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-feature-get-lookups.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>table_tag</p></td>
+<td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>feature_index</p></td>
+<td class="parameter_description"><p>The index of the requested feature</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>start_offset</p></td>
+<td class="parameter_description"><p>offset of the first lookup to retrieve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>lookup_count</p></td>
+<td class="parameter_description"><p>Input = the maximum number of lookups to return;
+Output = the actual number of lookups returned (may be zero). </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>lookup_indexes</p></td>
+<td class="parameter_description"><p>The array of lookup indexes found for the query. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=lookup_count]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-feature-get-name-ids"></a><h3>hb_ot_layout_feature_get_name_ids ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_layout_feature_get_name_ids (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_feature_get_name_ids (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> feature_index</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="type">hb_ot_name_id_t</span></a> *label_id</code></em>,
@@ -650,7 +812,7 @@ hb_ot_layout_feature_get_name_ids (<em class="parameter"><code><a class="link" h
<tbody>
<tr>
<td class="parameter_name"><p>face</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -708,69 +870,376 @@ parameters. (Must be zero if numParameters is zero.). </p></td>
<a name="hb-ot-layout-feature-with-variations-get-lookups"></a><h3>hb_ot_layout_feature_with_variations_get_lookups ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
hb_ot_layout_feature_with_variations_get_lookups
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> feature_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> variations_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *lookup_count</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *lookup_indexes</code></em>);</pre>
+<p>Fetches a list of all lookups enumerated for the specified feature, in
+the specified face's GSUB table or GPOS table, enabled at the specified
+variations index. The list returned will begin at the offset provided.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-feature-with-variations-get-lookups.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>table_tag</p></td>
+<td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>feature_index</p></td>
+<td class="parameter_description"><p>The index of the feature to query</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>variations_index</p></td>
+<td class="parameter_description"><p>The index of the feature variation to query</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>start_offset</p></td>
+<td class="parameter_description"><p>offset of the first lookup to retrieve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>lookup_count</p></td>
+<td class="parameter_description"><p>Input = the maximum number of lookups to return;
+Output = the actual number of lookups returned (may be zero). </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>lookup_indexes</p></td>
+<td class="parameter_description"><p>The array of lookups found for the query. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=lookup_count]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-get-attach-points"></a><h3>hb_ot_layout_get_attach_points ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_layout_get_attach_points (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_get_attach_points (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *point_count</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *point_array</code></em>);</pre>
+<p>Fetches a list of all attachment points for the specified glyph in the GDEF
+table of the face. The list returned will begin at the offset provided.</p>
+<p>Useful if the client program wishes to cache the list.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-get-attach-points.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work on</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>glyph</p></td>
+<td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> code point to query</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>start_offset</p></td>
+<td class="parameter_description"><p>offset of the first attachment point to retrieve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>point_count</p></td>
+<td class="parameter_description"><p>Input = the maximum number of attachment points to return;
+Output = the actual number of attachment points returned (may be zero). </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>point_array</p></td>
+<td class="parameter_description"><p>The array of attachment points found for the query. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=point_count]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-ot-layout-get-baseline"></a><h3>hb_ot_layout_get_baseline ()</h3>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
+hb_ot_layout_get_baseline (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-baseline-tag-t" title="enum hb_ot_layout_baseline_tag_t"><span class="type">hb_ot_layout_baseline_tag_t</span></a> baseline_tag</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> script_tag</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> language_tag</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *coord</code></em>);</pre>
+<p>Fetches a baseline value from the face.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-get-baseline.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>font</p></td>
+<td class="parameter_description"><p>a font</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>baseline_tag</p></td>
+<td class="parameter_description"><p>a baseline tag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>direction</p></td>
+<td class="parameter_description"><p>text direction.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>script_tag</p></td>
+<td class="parameter_description"><p>script tag.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>language_tag</p></td>
+<td class="parameter_description"><p>language tag.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>coord</p></td>
+<td class="parameter_description"><p>baseline value if found. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="hb-ot-layout-get-baseline.returns"></a><h4>Returns</h4>
+<p> if found baseline value in the the font.</p>
+</div>
+<p class="since">Since: <a class="link" href="api-index-2-6-0.html#api-index-2.6.0">2.6.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-get-glyph-class"></a><h3>hb_ot_layout_get_glyph_class ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-glyph-class-t" title="enum hb_ot_layout_glyph_class_t"><span class="returnvalue">hb_ot_layout_glyph_class_t</span></a>
-hb_ot_layout_get_glyph_class (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_get_glyph_class (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>);</pre>
+<p>Fetches the GDEF class of the requested glyph in the specified face.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-get-glyph-class.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work on</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>glyph</p></td>
+<td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> code point to query</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="hb-ot-layout-get-glyph-class.returns"></a><h4>Returns</h4>
+<p> The <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-glyph-class-t" title="enum hb_ot_layout_glyph_class_t"><span class="type">hb_ot_layout_glyph_class_t</span></a> glyph class of the given code
+point in the GDEF table of the face.</p>
+</div>
<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-get-glyphs-in-class"></a><h3>hb_ot_layout_get_glyphs_in_class ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_ot_layout_get_glyphs_in_class (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_get_glyphs_in_class (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-glyph-class-t" title="enum hb_ot_layout_glyph_class_t"><span class="type">hb_ot_layout_glyph_class_t</span></a> klass</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *glyphs</code></em>);</pre>
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *glyphs</code></em>);</pre>
+<p>Retrieves the set of all glyphs from the face that belong to the requested
+glyph class in the face's GDEF table.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-get-glyphs-in-class.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work on</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>klass</p></td>
+<td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-glyph-class-t" title="enum hb_ot_layout_glyph_class_t"><span class="type">hb_ot_layout_glyph_class_t</span></a> GDEF class to retrieve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>glyphs</p></td>
+<td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> set of all glyphs belonging to the requested
+class. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-get-ligature-carets"></a><h3>hb_ot_layout_get_ligature_carets ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_layout_get_ligature_carets (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_ot_layout_get_ligature_carets (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *caret_count</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *caret_array</code></em>);</pre>
+<p>Fetches a list of the caret positions defined for a ligature glyph in the GDEF
+table of the font. The list returned will begin at the offset provided.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-get-ligature-carets.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>font</p></td>
+<td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> to work on</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>direction</p></td>
+<td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> text direction to use</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>glyph</p></td>
+<td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> code point to query</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>start_offset</p></td>
+<td class="parameter_description"><p>offset of the first caret position to retrieve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>caret_count</p></td>
+<td class="parameter_description"><p>Input = the maximum number of caret positions to return;
+Output = the actual number of caret positions returned (may be zero). </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>caret_array</p></td>
+<td class="parameter_description"><p>The array of caret positions found for the query. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=caret_count]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-get-size-params"></a><h3>hb_ot_layout_get_size_params ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_layout_get_size_params (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_get_size_params (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *design_size</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *subfamily_id</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="type">hb_ot_name_id_t</span></a> *subfamily_name_id</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *range_start</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *range_end</code></em>);</pre>
+<p>Fetches optical-size feature data (i.e., the <code class="literal">size</code> feature from GPOS). Note that
+the subfamily_id and the subfamily name string (accessible via the subfamily_name_id)
+as used here are defined as pertaining only to fonts within a font family that differ
+specifically in their respective size ranges; other ways to differentiate fonts within
+a subfamily are not covered by the <code class="literal">size</code> feature.</p>
+<p>For more information on this distinction, see the <code class="literal">size</code> documentation at
+https://docs.microsoft.com/en-us/typography/opentype/spec/features_pt<span class="type">tag-39size39</span></p>
+<div class="refsect3">
+<a name="hb-ot-layout-get-size-params.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>design_size</p></td>
+<td class="parameter_description"><p>The design size of the face. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>subfamily_id</p></td>
+<td class="parameter_description"><p>The identifier of the face within the font subfamily. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>subfamily_name_id</p></td>
+<td class="parameter_description"><p>The ‘name’ table name ID of the face within the font subfamily. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>range_start</p></td>
+<td class="parameter_description"><p>The minimum size of the recommended size range for the face. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>range_end</p></td>
+<td class="parameter_description"><p>The maximum size of the recommended size range for the face. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="hb-ot-layout-get-size-params.returns"></a><h4>Returns</h4>
+<p> true if data found, false otherwise</p>
+</div>
<p class="since">Since: <a class="link" href="api-index-0-9-10.html#api-index-0.9.10">0.9.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-glyph-sequence-func-t"></a><h3>hb_ot_layout_glyph_sequence_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-<span class="c_punctuation">(</span>*hb_ot_layout_glyph_sequence_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_ot_layout_glyph_sequence_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> lookup_index</code></em>,
<em class="parameter"><code>const <span class="type">hb_ot_layout_glyph_sequence_t</span> *sequence</code></em>,
@@ -780,81 +1249,387 @@ hb_ot_layout_get_size_params (<em class="parameter"><code><a class="link" href="
<div class="refsect2">
<a name="hb-ot-layout-has-glyph-classes"></a><h3>hb_ot_layout_has_glyph_classes ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_layout_has_glyph_classes (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_ot_layout_has_glyph_classes (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+<p>Tests whether a face has any glyph classes defined in its GDEF table.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-has-glyph-classes.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="hb-ot-layout-has-glyph-classes.returns"></a><h4>Returns</h4>
+<p> true if data found, false otherwise</p>
+</div>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-has-positioning"></a><h3>hb_ot_layout_has_positioning ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_layout_has_positioning (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_ot_layout_has_positioning (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+<div class="refsect3">
+<a name="hb-ot-layout-has-positioning.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="hb-ot-layout-has-positioning.returns"></a><h4>Returns</h4>
+<p> true if the face has GPOS data, false otherwise</p>
+</div>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-has-substitution"></a><h3>hb_ot_layout_has_substitution ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_layout_has_substitution (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_ot_layout_has_substitution (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+<p>Tests whether the specified face includes any GSUB substitutions.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-has-substitution.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="hb-ot-layout-has-substitution.returns"></a><h4>Returns</h4>
+<p> true if data found, false otherwise</p>
+</div>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-language-find-feature"></a><h3>hb_ot_layout_language_find_feature ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_layout_language_find_feature (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_language_find_feature (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> script_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> language_index</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> feature_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *feature_index</code></em>);</pre>
+<p>Fetches the index of a given feature tag in the specified face's GSUB table
+or GPOS table, underneath the specified script and language.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-language-find-feature.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>table_tag</p></td>
+<td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>script_index</p></td>
+<td class="parameter_description"><p>The index of the requested script tag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>language_index</p></td>
+<td class="parameter_description"><p>The index of the requested language tag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>feature_tag</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> of the feature tag requested</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>feature_index</p></td>
+<td class="parameter_description"><p>The index of the requested feature. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="hb-ot-layout-language-find-feature.returns"></a><h4>Returns</h4>
+<p> true if the feature is found, false otherwise</p>
+</div>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-language-get-feature-indexes"></a><h3>hb_ot_layout_language_get_feature_indexes ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
hb_ot_layout_language_get_feature_indexes
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> script_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> language_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *feature_count</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *feature_indexes</code></em>);</pre>
+<p>Fetches a list of all features in the specified face's GSUB table
+or GPOS table, underneath the specified script and language. The list
+returned will begin at the offset provided.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-language-get-feature-indexes.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>table_tag</p></td>
+<td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>script_index</p></td>
+<td class="parameter_description"><p>The index of the requested script tag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>language_index</p></td>
+<td class="parameter_description"><p>The index of the requested language tag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>start_offset</p></td>
+<td class="parameter_description"><p>offset of the first feature tag to retrieve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>feature_count</p></td>
+<td class="parameter_description"><p>Input = the maximum number of feature tags to return;
+Output: the actual number of feature tags returned (may be zero). </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>feature_indexes</p></td>
+<td class="parameter_description"><p>The array of feature indexes found for the query. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=feature_count]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-language-get-feature-tags"></a><h3>hb_ot_layout_language_get_feature_tags ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
hb_ot_layout_language_get_feature_tags
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> script_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> language_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *feature_count</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *feature_tags</code></em>);</pre>
+<p>Fetches a list of all features in the specified face's GSUB table
+or GPOS table, underneath the specified script and language. The list
+returned will begin at the offset provided.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-language-get-feature-tags.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>table_tag</p></td>
+<td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>script_index</p></td>
+<td class="parameter_description"><p>The index of the requested script tag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>language_index</p></td>
+<td class="parameter_description"><p>The index of the requested language tag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>start_offset</p></td>
+<td class="parameter_description"><p>offset of the first feature tag to retrieve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>feature_count</p></td>
+<td class="parameter_description"><p>Input = the maximum number of feature tags to return;
+Output = the actual number of feature tags returned (may be zero). </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>feature_tags</p></td>
+<td class="parameter_description"><p>The array of <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> feature tags found for the query. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=feature_count]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-language-get-required-feature"></a><h3>hb_ot_layout_language_get_required_feature ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
hb_ot_layout_language_get_required_feature
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> script_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> language_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *feature_index</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *feature_tag</code></em>);</pre>
+<p>Fetches the tag of a requested feature index in the given face's GSUB or GPOS table,
+underneath the specified script and language.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-language-get-required-feature.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>table_tag</p></td>
+<td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>script_index</p></td>
+<td class="parameter_description"><p>The index of the requested script tag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>language_index</p></td>
+<td class="parameter_description"><p>The index of the requested language tag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>feature_index</p></td>
+<td class="parameter_description"><p>The index of the requested feature</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>feature_tag</p></td>
+<td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> of the requested feature. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="hb-ot-layout-language-get-required-feature.returns"></a><h4>Returns</h4>
+<p> true if the feature is found, false otherwise</p>
+</div>
<p class="since">Since: <a class="link" href="api-index-0-9-30.html#api-index-0.9.30">0.9.30</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-lookup-collect-glyphs"></a><h3>hb_ot_layout_lookup_collect_glyphs ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_ot_layout_lookup_collect_glyphs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_lookup_collect_glyphs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> lookup_index</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *glyphs_before</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *glyphs_input</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *glyphs_after</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *glyphs_output</code></em>);</pre>
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *glyphs_before</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *glyphs_input</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *glyphs_after</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *glyphs_output</code></em>);</pre>
+<p>Fetches a list of all glyphs affected by the specified lookup in the
+specified face's GSUB table or GPOS table.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-lookup-collect-glyphs.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>table_tag</p></td>
+<td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>lookup_index</p></td>
+<td class="parameter_description"><p>The index of the feature lookup to query</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>glyphs_before</p></td>
+<td class="parameter_description"><p>Array of glyphs preceding the substitution range. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>glyphs_input</p></td>
+<td class="parameter_description"><p>Array of input glyphs that would be substituted by the lookup. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>glyphs_after</p></td>
+<td class="parameter_description"><p>Array of glyphs following the substition range. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>glyphs_output</p></td>
+<td class="parameter_description"><p>Array of glyphs that would be the substitued output of the lookup. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
</div>
<hr>
@@ -862,9 +1637,38 @@ hb_ot_layout_lookup_collect_glyphs (<em class="parameter"><code><a class="link"
<a name="hb-ot-layout-lookup-substitute-closure"></a><h3>hb_ot_layout_lookup_substitute_closure ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_ot_layout_lookup_substitute_closure
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> lookup_index</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *glyphs</code></em>);</pre>
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *glyphs</code></em>);</pre>
+<p>Compute the transitive closure of glyphs needed for a
+specified lookup.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-lookup-substitute-closure.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>lookup_index</p></td>
+<td class="parameter_description"><p>index of the feature lookup to query</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>glyphs</p></td>
+<td class="parameter_description"><p>Array of glyphs comprising the transitive closure of the lookup. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
</div>
<hr>
@@ -872,45 +1676,208 @@ hb_ot_layout_lookup_substitute_closure
<a name="hb-ot-layout-lookups-substitute-closure"></a><h3>hb_ot_layout_lookups_substitute_closure ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_ot_layout_lookups_substitute_closure
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *lookups</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *glyphs</code></em>);</pre>
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *lookups</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *glyphs</code></em>);</pre>
<p>Compute the transitive closure of glyphs needed for all of the
provided lookups.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-lookups-substitute-closure.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>lookups</p></td>
+<td class="parameter_description"><p>The set of lookups to query</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>glyphs</p></td>
+<td class="parameter_description"><p>Array of glyphs comprising the transitive closure of the lookups. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
<p class="since">Since: <a class="link" href="api-index-1-8-1.html#api-index-1.8.1">1.8.1</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-lookup-would-substitute"></a><h3>hb_ot_layout_lookup_would_substitute ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_layout_lookup_would_substitute (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_lookup_would_substitute (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> lookup_index</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *glyphs</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> glyphs_length</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> zero_context</code></em>);</pre>
+<p>Tests whether a specified lookup in the specified face would
+trigger a substitution on the given glyph sequence.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-lookup-would-substitute.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>lookup_index</p></td>
+<td class="parameter_description"><p>The index of the lookup to query</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>glyphs</p></td>
+<td class="parameter_description"><p>The sequence of glyphs to query for substitution</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>glyphs_length</p></td>
+<td class="parameter_description"><p>The length of the glyph sequence</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>zero_context</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> indicating whether substitutions should be context-free</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="hb-ot-layout-lookup-would-substitute.returns"></a><h4>Returns</h4>
+<p> true if a substitution would be triggered, false otherwise</p>
+</div>
<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-script-get-language-tags"></a><h3>hb_ot_layout_script_get_language_tags ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_layout_script_get_language_tags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_script_get_language_tags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> script_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *language_count</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *language_tags</code></em>);</pre>
+<p>Fetches a list of language tags in the given face's GSUB or GPOS table, underneath
+the specified script index. The list returned will begin at the offset provided.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-script-get-language-tags.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>table_tag</p></td>
+<td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>script_index</p></td>
+<td class="parameter_description"><p>The index of the requested script tag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>start_offset</p></td>
+<td class="parameter_description"><p>offset of the first language tag to retrieve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>language_count</p></td>
+<td class="parameter_description"><p>Input = the maximum number of language tags to return;
+Output = the actual number of language tags returned (may be zero). </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>language_tags</p></td>
+<td class="parameter_description"><p>Array of language tags found in the table. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=language_count]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-script-select-language"></a><h3>hb_ot_layout_script_select_language ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_layout_script_select_language (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_script_select_language (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> script_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> language_count</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *language_tags</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *language_index</code></em>);</pre>
+<p>Fetches the index of a given language tag in the specified face's GSUB table
+or GPOS table, underneath the specified script index.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-script-select-language.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>table_tag</p></td>
+<td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>script_index</p></td>
+<td class="parameter_description"><p>The index of the requested script tag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>language_count</p></td>
+<td class="parameter_description"><p>The number of languages in the specified script</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>language_tags</p></td>
+<td class="parameter_description"><p>The array of language tags</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>language_index</p></td>
+<td class="parameter_description"><p>The index of the requested language. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="hb-ot-layout-script-select-language.returns"></a><h4>Returns</h4>
+<p> true if the language tag is found, false otherwise</p>
+</div>
<p class="since">Since: <a class="link" href="api-index-2-0-0.html#api-index-2.0.0">2.0.0</a></p>
</div>
<hr>
@@ -918,59 +1885,243 @@ hb_ot_layout_script_select_language (<em class="parameter"><code><a class="link"
<a name="hb-ot-layout-table-find-feature-variations"></a><h3>hb_ot_layout_table_find_feature_variations ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
hb_ot_layout_table_find_feature_variations
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>const <span class="type">int</span> *coords</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> num_coords</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *variations_index</code></em>);</pre>
+<p>Fetches a list of feature variations in the specified face's GSUB table
+or GPOS table, at the specified variation coordinates.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-table-find-feature-variations.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>table_tag</p></td>
+<td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>coords</p></td>
+<td class="parameter_description"><p>The variation coordinates to query</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>num_coords</p></td>
+<td class="parameter_description"><p>The number of variation coorinates</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>variations_index</p></td>
+<td class="parameter_description"><p>The array of feature variations found for the query. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-table-get-feature-tags"></a><h3>hb_ot_layout_table_get_feature_tags ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_layout_table_get_feature_tags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_table_get_feature_tags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *feature_count</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *feature_tags</code></em>);</pre>
+<p>Fetches a list of all feature tags in the given face's GSUB or GPOS table.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-table-get-feature-tags.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>table_tag</p></td>
+<td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>start_offset</p></td>
+<td class="parameter_description"><p>offset of the first feature tag to retrieve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>feature_count</p></td>
+<td class="parameter_description"><p>Input = the maximum number of feature tags to return;
+Output = the actual number of feature tags returned (may be zero). </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>feature_tags</p></td>
+<td class="parameter_description"><p>Array of feature tags found in the table. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=feature_count]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-table-get-script-tags"></a><h3>hb_ot_layout_table_get_script_tags ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_layout_table_get_script_tags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_table_get_script_tags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *script_count</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *script_tags</code></em>);</pre>
+<p>Fetches a list of all scripts enumerated in the specified face's GSUB table
+or GPOS table. The list returned will begin at the offset provided.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-table-get-script-tags.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>table_tag</p></td>
+<td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>start_offset</p></td>
+<td class="parameter_description"><p>offset of the first script tag to retrieve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>script_count</p></td>
+<td class="parameter_description"><p>Input = the maximum number of script tags to return;
+Output = the actual number of script tags returned (may be zero). </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>script_tags</p></td>
+<td class="parameter_description"><p>The array of <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> script tags found for the query. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=script_count]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-table-get-lookup-count"></a><h3>hb_ot_layout_table_get_lookup_count ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_layout_table_get_lookup_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_table_get_lookup_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>);</pre>
+<p>Fetches the total number of lookups enumerated in the specified
+face's GSUB table or GPOS table.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-table-get-lookup-count.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>table_tag</p></td>
+<td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
<p class="since">Since: <a class="link" href="api-index-0-9-22.html#api-index-0.9.22">0.9.22</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-table-select-script"></a><h3>hb_ot_layout_table_select_script ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_layout_table_select_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_table_select_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> script_count</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *script_tags</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *script_index</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *chosen_script</code></em>);</pre>
+<div class="refsect3">
+<a name="hb-ot-layout-table-select-script.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>table_tag</p></td>
+<td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>script_count</p></td>
+<td class="parameter_description"><p>Number of script tags in the array</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>script_tags</p></td>
+<td class="parameter_description"><p>Array of <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> script tags</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>script_index</p></td>
+<td class="parameter_description"><p>The index of the requested script. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>chosen_script</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> of the requested script. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
<p class="since">Since: <a class="link" href="api-index-2-0-0.html#api-index-2.0.0">2.0.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-shape-plan-collect-lookups"></a><h3>hb_ot_shape_plan_collect_lookups ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_ot_shape_plan_collect_lookups (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>,
+hb_ot_shape_plan_collect_lookups (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *lookup_indexes</code></em>);</pre>
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *lookup_indexes</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
</div>
<hr>
@@ -978,11 +2129,54 @@ hb_ot_shape_plan_collect_lookups (<em class="parameter"><code><a class="link" hr
<a name="hb-ot-layout-language-get-required-feature-index"></a><h3>hb_ot_layout_language_get_required_feature_index ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
hb_ot_layout_language_get_required_feature_index
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> script_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> language_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *feature_index</code></em>);</pre>
+<p>Fetches the index of a requested feature in the given face's GSUB or GPOS table,
+underneath the specified script and language.</p>
+<div class="refsect3">
+<a name="hb-ot-layout-language-get-required-feature-index.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>table_tag</p></td>
+<td class="parameter_description"><p>HB_OT_TAG_GSUB or HB_OT_TAG_GPOS</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>script_index</p></td>
+<td class="parameter_description"><p>The index of the requested script tag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>language_index</p></td>
+<td class="parameter_description"><p>The index of the requested language tag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>feature_index</p></td>
+<td class="parameter_description"><p>The index of the requested feature. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="hb-ot-layout-language-get-required-feature-index.returns"></a><h4>Returns</h4>
+<p> true if the feature is found, false otherwise</p>
+</div>
</div>
</div>
<div class="refsect1">
@@ -1068,7 +2262,90 @@ hb_ot_layout_language_get_required_feature_index
</div>
<hr>
<div class="refsect2">
+<a name="hb-ot-layout-baseline-tag-t"></a><h3>enum hb_ot_layout_baseline_tag_t</h3>
+<p>Baseline tags from https://docs.microsoft.com/en-us/typography/opentype/spec/baselinetags</p>
+<div class="refsect3">
+<a name="hb-ot-layout-baseline-tag-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="HB-OT-LAYOUT-BASELINE-TAG-ROMAN:CAPS"></a>HB_OT_LAYOUT_BASELINE_TAG_ROMAN</p></td>
+<td class="enum_member_description">
+<p>The baseline used by alphabetic scripts such as Latin, Cyrillic and Greek.
+In vertical writing mode, the alphabetic baseline for characters rotated 90 degrees clockwise.
+(This would not apply to alphabetic characters that remain upright in vertical writing mode, since these
+characters are not rotated.)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-OT-LAYOUT-BASELINE-TAG-HANGING:CAPS"></a>HB_OT_LAYOUT_BASELINE_TAG_HANGING</p></td>
+<td class="enum_member_description">
+<p>The hanging baseline. In horizontal direction, this is the horizontal
+line from which syllables seem, to hang in Tibetan and other similar scripts. In vertical writing mode,
+for Tibetan (or some other similar script) characters rotated 90 degrees clockwise.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-OT-LAYOUT-BASELINE-TAG-IDEO-FACE-BOTTOM-OR-LEFT:CAPS"></a>HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_BOTTOM_OR_LEFT</p></td>
+<td class="enum_member_description">
+<p>Ideographic character face bottom or left edge,
+if the direction is horizontal or vertical, respectively.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-OT-LAYOUT-BASELINE-TAG-IDEO-FACE-TOP-OR-RIGHT:CAPS"></a>HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_TOP_OR_RIGHT</p></td>
+<td class="enum_member_description">
+<p>Ideographic character face top or right edge,
+if the direction is horizontal or vertical, respectively.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-OT-LAYOUT-BASELINE-TAG-IDEO-EMBOX-BOTTOM-OR-LEFT:CAPS"></a>HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_BOTTOM_OR_LEFT</p></td>
+<td class="enum_member_description">
+<p>Ideographic em-box bottom or left edge,
+if the direction is horizontal or vertical, respectively.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-OT-LAYOUT-BASELINE-TAG-IDEO-EMBOX-TOP-OR-RIGHT:CAPS"></a>HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_TOP_OR_RIGHT</p></td>
+<td class="enum_member_description">
+<p>Ideographic em-box top or right edge baseline,
+if the direction is horizontal or vertical, respectively.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-OT-LAYOUT-BASELINE-TAG-MATH:CAPS"></a>HB_OT_LAYOUT_BASELINE_TAG_MATH</p></td>
+<td class="enum_member_description">
+<p>The baseline about which mathematical characters are centered.
+In vertical writing mode when mathematical characters rotated 90 degrees clockwise, are centered.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-OT-LAYOUT-BASELINE-TAG-MAX-VALUE:CAPS"></a>_HB_OT_LAYOUT_BASELINE_TAG_MAX_VALUE</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: <a class="link" href="api-index-2-6-0.html#api-index-2.6.0">2.6.0</a></p>
+</div>
+<hr>
+<div class="refsect2">
<a name="hb-ot-layout-glyph-class-t"></a><h3>enum hb_ot_layout_glyph_class_t</h3>
+<p>The GDEF classes defined for glyphs.</p>
<div class="refsect3">
<a name="hb-ot-layout-glyph-class-t.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1080,28 +2357,38 @@ hb_ot_layout_language_get_required_feature_index
<tbody>
<tr>
<td class="enum_member_name"><p><a name="HB-OT-LAYOUT-GLYPH-CLASS-UNCLASSIFIED:CAPS"></a>HB_OT_LAYOUT_GLYPH_CLASS_UNCLASSIFIED</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>Glyphs not matching the other classifications</p>
+</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="HB-OT-LAYOUT-GLYPH-CLASS-BASE-GLYPH:CAPS"></a>HB_OT_LAYOUT_GLYPH_CLASS_BASE_GLYPH</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>Spacing, single characters, capable of accepting marks</p>
+</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="HB-OT-LAYOUT-GLYPH-CLASS-LIGATURE:CAPS"></a>HB_OT_LAYOUT_GLYPH_CLASS_LIGATURE</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>Glyphs that represent ligation of multiple characters</p>
+</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="HB-OT-LAYOUT-GLYPH-CLASS-MARK:CAPS"></a>HB_OT_LAYOUT_GLYPH_CLASS_MARK</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>Non-spacing, combining glyphs that represent marks</p>
+</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="HB-OT-LAYOUT-GLYPH-CLASS-COMPONENT:CAPS"></a>HB_OT_LAYOUT_GLYPH_CLASS_COMPONENT</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>Spacing glyphs that represent part of a single character</p>
+</td>
+<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
diff --git a/docs/html/harfbuzz-hb-ot-math.html b/docs/html/harfbuzz-hb-ot-math.html
index 679acde..45476dd 100644
--- a/docs/html/harfbuzz-hb-ot-math.html
+++ b/docs/html/harfbuzz-hb-ot-math.html
@@ -5,7 +5,7 @@
<title>hb-ot-math: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch10.html" title="OpenType API">
+<link rel="up" href="ch12.html" title="OpenType API">
<link rel="prev" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">
<link rel="next" href="harfbuzz-hb-ot-name.html" title="hb-ot-name">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
@@ -15,10 +15,11 @@
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
- <a href="#harfbuzz-hb-ot-math.description" class="shortcut">Description</a></span>
+ <a href="#harfbuzz-hb-ot-math.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+ <a href="#harfbuzz-hb-ot-math.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch10.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch12.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="harfbuzz-hb-ot-layout.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="harfbuzz-hb-ot-name.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
@@ -112,7 +113,7 @@
</tbody>
</table></div>
</div>
-<div class="refsect1">
+<a name="hb-ot-math-glyph-variant-t"></a><a name="hb-ot-math-glyph-part-t"></a><div class="refsect1">
<a name="harfbuzz-hb-ot-math.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
@@ -138,7 +139,7 @@
</tr>
<tr>
<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t" title="hb_ot_math_glyph_variant_t">hb_ot_math_glyph_variant_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t-struct" title="hb_ot_math_glyph_variant_t">hb_ot_math_glyph_variant_t</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
@@ -146,12 +147,24 @@
</tr>
<tr>
<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t" title="hb_ot_math_glyph_part_t">hb_ot_math_glyph_part_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t-struct" title="hb_ot_math_glyph_part_t">hb_ot_math_glyph_part_t</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
+<a name="harfbuzz-hb-ot-math.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
+ <span class="lineart">├──</span> hb_ot_math_glyph_part_t
+ <span class="lineart">╰──</span> hb_ot_math_glyph_variant_t
+ <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GEnum</a>
+ <span class="lineart">├──</span> hb_ot_math_constant_t
+ <span class="lineart">╰──</span> hb_ot_math_kern_t
+ <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GFlags</a>
+ <span class="lineart">╰──</span> hb_ot_math_glyph_part_flags_t
+</pre>
+</div>
+<div class="refsect1">
<a name="harfbuzz-hb-ot-math.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;hb-ot.h&gt;
</pre>
@@ -159,15 +172,17 @@
<div class="refsect1">
<a name="harfbuzz-hb-ot-math.description"></a><h2>Description</h2>
<p>Functions for fetching mathematics layout data from OpenType fonts.</p>
+<p>HarfBuzz itself does not implement a math layout solution. The
+functions and types provided can be used by client programs to access
+the font data necessary for typesetting OpenType Math layout.</p>
</div>
<div class="refsect1">
<a name="harfbuzz-hb-ot-math.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="hb-ot-math-has-data"></a><h3>hb_ot_math_has_data ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_math_has_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
-<p>This function allows to verify the presence of an OpenType MATH table on the
-face.</p>
+hb_ot_math_has_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+<p>Tests whether a face has a <code class="literal">MATH</code> table.</p>
<div class="refsect3">
<a name="hb-ot-math-has-data.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -178,14 +193,14 @@ face.</p>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>face</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to test</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to test</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="hb-ot-math-has-data.returns"></a><h4>Returns</h4>
-<p> true if face has a MATH table, false otherwise</p>
+<p> true if the table is found, false otherwise</p>
</div>
<p class="since">Since: <a class="link" href="api-index-1-3-3.html#api-index-1.3.3">1.3.3</a></p>
</div>
@@ -193,13 +208,14 @@ face.</p>
<div class="refsect2">
<a name="hb-ot-math-get-constant"></a><h3>hb_ot_math_get_constant ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
-hb_ot_math_get_constant (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_ot_math_get_constant (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-constant-t" title="enum hb_ot_math_constant_t"><span class="type">hb_ot_math_constant_t</span></a> constant</code></em>);</pre>
-<p>This function returns the requested math constants as a <a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a>.
-If the request constant is HB_OT_MATH_CONSTANT_SCRIPT_PERCENT_SCALE_DOWN,
-HB_OT_MATH_CONSTANT_SCRIPT_SCRIPT_PERCENT_SCALE_DOWN or
-HB_OT_MATH_CONSTANT_SCRIPT_PERCENT_SCALE_DOWN then the return value is
-actually an integer between 0 and 100 representing that percentage.</p>
+<p>Fetches the specified math constant. For most constants, the value returned
+is an <a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a>.</p>
+<p>However, if the requested constant is <a class="link" href="harfbuzz-hb-ot-math.html#HB-OT-MATH-CONSTANT-SCRIPT-PERCENT-SCALE-DOWN:CAPS"><span class="type">HB_OT_MATH_CONSTANT_SCRIPT_PERCENT_SCALE_DOWN</span></a>,
+<a class="link" href="harfbuzz-hb-ot-math.html#HB-OT-MATH-CONSTANT-SCRIPT-SCRIPT-PERCENT-SCALE-DOWN:CAPS"><span class="type">HB_OT_MATH_CONSTANT_SCRIPT_SCRIPT_PERCENT_SCALE_DOWN</span></a> or
+<a class="link" href="harfbuzz-hb-ot-math.html#HB-OT-MATH-CONSTANT-SCRIPT-PERCENT-SCALE-DOWN:CAPS"><span class="type">HB_OT_MATH_CONSTANT_SCRIPT_PERCENT_SCALE_DOWN</span></a>, then the return value is
+an integer between 0 and 100 representing that percentage.</p>
<div class="refsect3">
<a name="hb-ot-math-get-constant.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -211,7 +227,7 @@ actually an integer between 0 and 100 representing that percentage.</p>
<tbody>
<tr>
<td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> from which to retrieve the value</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> to work upon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -224,7 +240,7 @@ actually an integer between 0 and 100 representing that percentage.</p>
</div>
<div class="refsect3">
<a name="hb-ot-math-get-constant.returns"></a><h4>Returns</h4>
-<p> the requested constant or 0</p>
+<p> the requested constant or zero</p>
</div>
<p class="since">Since: <a class="link" href="api-index-1-3-3.html#api-index-1.3.3">1.3.3</a></p>
</div>
@@ -233,8 +249,10 @@ actually an integer between 0 and 100 representing that percentage.</p>
<a name="hb-ot-math-get-glyph-italics-correction"></a><h3>hb_ot_math_get_glyph_italics_correction ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
hb_ot_math_get_glyph_italics_correction
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>);</pre>
+<p>Fetches an italics-correction value (if one exists) for the specified
+glyph index.</p>
<div class="refsect3">
<a name="hb-ot-math-get-glyph-italics-correction.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -246,12 +264,12 @@ hb_ot_math_get_glyph_italics_correction
<tbody>
<tr>
<td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> from which to retrieve the value</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> to work upon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>glyph</p></td>
-<td class="parameter_description"><p>glyph index from which to retrieve the value</p></td>
+<td class="parameter_description"><p>The glyph index from which to retrieve the value</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -259,7 +277,7 @@ hb_ot_math_get_glyph_italics_correction
</div>
<div class="refsect3">
<a name="hb-ot-math-get-glyph-italics-correction.returns"></a><h4>Returns</h4>
-<p> the italics correction of the glyph or 0</p>
+<p> the italics correction of the glyph or zero</p>
</div>
<p class="since">Since: <a class="link" href="api-index-1-3-3.html#api-index-1.3.3">1.3.3</a></p>
</div>
@@ -268,8 +286,16 @@ hb_ot_math_get_glyph_italics_correction
<a name="hb-ot-math-get-glyph-top-accent-attachment"></a><h3>hb_ot_math_get_glyph_top_accent_attachment ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
hb_ot_math_get_glyph_top_accent_attachment
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>);</pre>
+<p>Fetches a top-accent-attachment value (if one exists) for the specified
+glyph index.</p>
+<p>For any glyph that does not have a top-accent-attachment value - that is,
+a glyph not covered by the <code class="literal">MathTopAccentAttachment</code> table (or, when
+<em class="parameter"><code>font</code></em>
+ has no <code class="literal">MathTopAccentAttachment</code> table or no <code class="literal">MATH</code> table, any
+glyph) - the function synthesizes a value, returning the position at
+one-half the glyph's advance width.</p>
<div class="refsect3">
<a name="hb-ot-math-get-glyph-top-accent-attachment.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -281,12 +307,12 @@ hb_ot_math_get_glyph_top_accent_attachment
<tbody>
<tr>
<td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> from which to retrieve the value</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> to work upon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>glyph</p></td>
-<td class="parameter_description"><p>glyph index from which to retrieve the value</p></td>
+<td class="parameter_description"><p>The glyph index from which to retrieve the value</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -294,7 +320,9 @@ hb_ot_math_get_glyph_top_accent_attachment
</div>
<div class="refsect3">
<a name="hb-ot-math-get-glyph-top-accent-attachment.returns"></a><h4>Returns</h4>
-<p> the top accent attachment of the glyph or 0</p>
+<p> the top accent attachment of the glyph or 0.5 * the advance
+width of <em class="parameter"><code>glyph</code></em>
+</p>
</div>
<p class="since">Since: <a class="link" href="api-index-1-3-3.html#api-index-1.3.3">1.3.3</a></p>
</div>
@@ -302,15 +330,18 @@ hb_ot_math_get_glyph_top_accent_attachment
<div class="refsect2">
<a name="hb-ot-math-get-glyph-kerning"></a><h3>hb_ot_math_get_glyph_kerning ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
-hb_ot_math_get_glyph_kerning (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_ot_math_get_glyph_kerning (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-kern-t" title="enum hb_ot_math_kern_t"><span class="type">hb_ot_math_kern_t</span></a> kern</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> correction_height</code></em>);</pre>
-<p>This function tries to retrieve the MathKern table for the specified font,
-glyph and <a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-kern-t" title="enum hb_ot_math_kern_t"><span class="type">hb_ot_math_kern_t</span></a>. Then it browses the list of heights from the
-MathKern table to find one value that is greater or equal to specified
-correction_height. If one is found the corresponding value from the list of
-kerns is returned and otherwise the last kern value is returned.</p>
+<p>Fetches the math kerning (cut-ins) value for the specified font, glyph index, and
+<em class="parameter"><code>kern</code></em>
+. </p>
+<p>If the MathKern table is found, the function examines it to find a height
+value that is greater or equal to <em class="parameter"><code>correction_height</code></em>
+. If such a height
+value is found, corresponding kerning value from the table is returned. If
+no such height value is found, the last kerning value is returned.</p>
<div class="refsect3">
<a name="hb-ot-math-get-glyph-kerning.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -322,17 +353,17 @@ kerns is returned and otherwise the last kern value is returned.</p>
<tbody>
<tr>
<td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> from which to retrieve the value</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> to work upon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>glyph</p></td>
-<td class="parameter_description"><p>glyph index from which to retrieve the value</p></td>
+<td class="parameter_description"><p>The glyph index from which to retrieve the value</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>kern</p></td>
-<td class="parameter_description"><p>the <a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-kern-t" title="enum hb_ot_math_kern_t"><span class="type">hb_ot_math_kern_t</span></a> from which to retrieve the value</p></td>
+<td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-kern-t" title="enum hb_ot_math_kern_t"><span class="type">hb_ot_math_kern_t</span></a> from which to retrieve the value</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -345,7 +376,7 @@ kerns is returned and otherwise the last kern value is returned.</p>
</div>
<div class="refsect3">
<a name="hb-ot-math-get-glyph-kerning.returns"></a><h4>Returns</h4>
-<p> requested kerning or 0</p>
+<p> requested kerning value or zero</p>
</div>
<p class="since">Since: <a class="link" href="api-index-1-3-3.html#api-index-1.3.3">1.3.3</a></p>
</div>
@@ -353,8 +384,9 @@ kerns is returned and otherwise the last kern value is returned.</p>
<div class="refsect2">
<a name="hb-ot-math-is-glyph-extended-shape"></a><h3>hb_ot_math_is_glyph_extended_shape ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_math_is_glyph_extended_shape (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_math_is_glyph_extended_shape (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>);</pre>
+<p>Tests whether the given glyph index is an extended shape in the face.</p>
<div class="refsect3">
<a name="hb-ot-math-is-glyph-extended-shape.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -366,12 +398,12 @@ hb_ot_math_is_glyph_extended_shape (<em class="parameter"><code><a class="link"
<tbody>
<tr>
<td class="parameter_name"><p>face</p></td>
-<td class="parameter_description"><p>a <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to test</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>glyph</p></td>
-<td class="parameter_description"><p>a glyph index to test</p></td>
+<td class="parameter_description"><p>The glyph index to test</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -387,16 +419,19 @@ hb_ot_math_is_glyph_extended_shape (<em class="parameter"><code><a class="link"
<div class="refsect2">
<a name="hb-ot-math-get-glyph-variants"></a><h3>hb_ot_math_get_glyph_variants ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_math_get_glyph_variants (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_ot_math_get_glyph_variants (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *variants_count</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t" title="hb_ot_math_glyph_variant_t"><span class="type">hb_ot_math_glyph_variant_t</span></a> *variants</code></em>);</pre>
-<p>This function tries to retrieve the MathGlyphConstruction for the specified
-font, glyph and direction. Note that only the value of
-<a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-IS-HORIZONTAL:CAPS" title="HB_DIRECTION_IS_HORIZONTAL()"><span class="type">HB_DIRECTION_IS_HORIZONTAL</span></a> is considered. It provides the corresponding list
-of size variants as an array of hb_ot_math_glyph_variant_t structs.</p>
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t"><span class="type">hb_ot_math_glyph_variant_t</span></a> *variants</code></em>);</pre>
+<p>Fetches the MathGlyphConstruction for the specified font, glyph index, and
+direction. The corresponding list of size variants is returned as a list of
+<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t"><span class="type">hb_ot_math_glyph_variant_t</span></a> structs.</p>
+<div class="note">The <em class="parameter"><code>direction</code></em> parameter is only used to select between horizontal
+or vertical directions for the construction. Even though all <a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a>
+values are accepted, only the result of <a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-IS-HORIZONTAL:CAPS" title="HB_DIRECTION_IS_HORIZONTAL()"><span class="type">HB_DIRECTION_IS_HORIZONTAL</span></a> is
+considered.</div>
<div class="refsect3">
<a name="hb-ot-math-get-glyph-variants.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -408,17 +443,17 @@ of size variants as an array of hb_ot_math_glyph_variant_t structs.</p>
<tbody>
<tr>
<td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> from which to retrieve the values</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> to work upon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>glyph</p></td>
-<td class="parameter_description"><p>index of the glyph to stretch</p></td>
+<td class="parameter_description"><p>The index of the glyph to stretch</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>direction</p></td>
-<td class="parameter_description"><p>direction of the stretching</p></td>
+<td class="parameter_description"><p>The direction of the stretching (horizontal or vertical)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -428,22 +463,21 @@ of size variants as an array of hb_ot_math_glyph_variant_t structs.</p>
</tr>
<tr>
<td class="parameter_name"><p>variants_count</p></td>
-<td class="parameter_description"><p>maximum number of variants to retrieve after start_offset
-(IN) and actual number of variants retrieved (OUT)</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>Input = the maximum number of variants to return;
+Output = the actual number of variants returned. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>variants</p></td>
-<td class="parameter_description"><p>array of size at least <em class="parameter"><code>variants_count</code></em>
-to store the result</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>array of variants returned. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=variants_count]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="hb-ot-math-get-glyph-variants.returns"></a><h4>Returns</h4>
-<p> the total number of size variants available or 0</p>
+<p> the total number of size variants available or zero</p>
</div>
<p class="since">Since: <a class="link" href="api-index-1-3-3.html#api-index-1.3.3">1.3.3</a></p>
</div>
@@ -451,12 +485,15 @@ to store the result</p></td>
<div class="refsect2">
<a name="hb-ot-math-get-min-connector-overlap"></a><h3>hb_ot_math_get_min_connector_overlap ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
-hb_ot_math_get_min_connector_overlap (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_ot_math_get_min_connector_overlap (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>);</pre>
-<p>This function tries to retrieve the MathVariants table for the specified
-font and returns the minimum overlap of connecting glyphs to draw a glyph
-assembly in the specified direction. Note that only the value of
-<a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-IS-HORIZONTAL:CAPS" title="HB_DIRECTION_IS_HORIZONTAL()"><span class="type">HB_DIRECTION_IS_HORIZONTAL</span></a> is considered.</p>
+<p>Fetches the MathVariants table for the specified font and returns the
+minimum overlap of connecting glyphs that are required to draw a glyph
+assembly in the specified direction.</p>
+<div class="note">The <em class="parameter"><code>direction</code></em> parameter is only used to select between horizontal
+or vertical directions for the construction. Even though all <a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a>
+values are accepted, only the result of <a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-IS-HORIZONTAL:CAPS" title="HB_DIRECTION_IS_HORIZONTAL()"><span class="type">HB_DIRECTION_IS_HORIZONTAL</span></a> is
+considered.</div>
<div class="refsect3">
<a name="hb-ot-math-get-min-connector-overlap.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -468,12 +505,12 @@ assembly in the specified direction. Note that only the value of
<tbody>
<tr>
<td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> from which to retrieve the value</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> to work upon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>direction</p></td>
-<td class="parameter_description"><p>direction of the stretching</p></td>
+<td class="parameter_description"><p>direction of the stretching (horizontal or vertical)</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -481,7 +518,7 @@ assembly in the specified direction. Note that only the value of
</div>
<div class="refsect3">
<a name="hb-ot-math-get-min-connector-overlap.returns"></a><h4>Returns</h4>
-<p> requested min connector overlap or 0</p>
+<p> requested minimum connector overlap or zero</p>
</div>
<p class="since">Since: <a class="link" href="api-index-1-3-3.html#api-index-1.3.3">1.3.3</a></p>
</div>
@@ -489,17 +526,21 @@ assembly in the specified direction. Note that only the value of
<div class="refsect2">
<a name="hb-ot-math-get-glyph-assembly"></a><h3>hb_ot_math_get_glyph_assembly ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_math_get_glyph_assembly (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_ot_math_get_glyph_assembly (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *parts_count</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t" title="hb_ot_math_glyph_part_t"><span class="type">hb_ot_math_glyph_part_t</span></a> *parts</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t"><span class="type">hb_ot_math_glyph_part_t</span></a> *parts</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *italics_correction</code></em>);</pre>
-<p>This function tries to retrieve the GlyphAssembly for the specified font,
-glyph and direction. Note that only the value of <a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-IS-HORIZONTAL:CAPS" title="HB_DIRECTION_IS_HORIZONTAL()"><span class="type">HB_DIRECTION_IS_HORIZONTAL</span></a>
-is considered. It provides the information necessary to draw the glyph
-assembly as an array of <a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t" title="hb_ot_math_glyph_part_t"><span class="type">hb_ot_math_glyph_part_t</span></a>.</p>
+<p>Fetches the GlyphAssembly for the specified font, glyph index, and direction.
+Returned are a list of <a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t"><span class="type">hb_ot_math_glyph_part_t</span></a> glyph parts that can be
+used to draw the glyph and an italics-correction value (if one is defined
+in the font).</p>
+<div class="note">The <em class="parameter"><code>direction</code></em> parameter is only used to select between horizontal
+or vertical directions for the construction. Even though all <a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a>
+values are accepted, only the result of <a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-IS-HORIZONTAL:CAPS" title="HB_DIRECTION_IS_HORIZONTAL()"><span class="type">HB_DIRECTION_IS_HORIZONTAL</span></a> is
+considered.</div>
<div class="refsect3">
<a name="hb-ot-math-get-glyph-assembly.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -511,17 +552,17 @@ assembly as an array of <a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-mat
<tbody>
<tr>
<td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> from which to retrieve the values</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> to work upon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>glyph</p></td>
-<td class="parameter_description"><p>index of the glyph to stretch</p></td>
+<td class="parameter_description"><p>The index of the glyph to stretch</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>direction</p></td>
-<td class="parameter_description"><p>direction of the stretching</p></td>
+<td class="parameter_description"><p>direction of the stretching (horizontal or vertical)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -531,20 +572,19 @@ assembly as an array of <a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-mat
</tr>
<tr>
<td class="parameter_name"><p>parts_count</p></td>
-<td class="parameter_description"><p>maximum number of glyph parts to retrieve after start_offset
-(IN) and actual number of parts retrieved (OUT)</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>Input = maximum number of glyph parts to return;
+Output = actual number of parts returned. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>parts</p></td>
-<td class="parameter_description"><p>array of size at least <em class="parameter"><code>parts_count</code></em>
-to store the result</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>the glyph parts returned. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=parts_count]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>italics_correction</p></td>
-<td class="parameter_description"><p>italic correction of the glyph assembly</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>italics correction of the glyph assembly. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
@@ -572,6 +612,8 @@ to store the result</p></td>
<hr>
<div class="refsect2">
<a name="hb-ot-math-constant-t"></a><h3>enum hb_ot_math_constant_t</h3>
+<p>The 'MATH' table constants specified at
+https://docs.microsoft.com/en-us/typography/opentype/spec/math</p>
<div class="refsect3">
<a name="hb-ot-math-constant-t.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -869,6 +911,8 @@ to store the result</p></td>
<hr>
<div class="refsect2">
<a name="hb-ot-math-kern-t"></a><h3>enum hb_ot_math_kern_t</h3>
+<p>The math kerning-table types defined for the four corners
+of a glyph.</p>
<div class="refsect3">
<a name="hb-ot-math-kern-t.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -905,17 +949,41 @@ to store the result</p></td>
</div>
<hr>
<div class="refsect2">
-<a name="hb-ot-math-glyph-variant-t"></a><h3>hb_ot_math_glyph_variant_t</h3>
+<a name="hb-ot-math-glyph-variant-t-struct"></a><h3>hb_ot_math_glyph_variant_t</h3>
<pre class="programlisting">typedef struct {
hb_codepoint_t glyph;
hb_position_t advance;
} hb_ot_math_glyph_variant_t;
</pre>
+<p>Data type to hold math-variant information for a glyph.</p>
+<div class="refsect3">
+<a name="hb-ot-math-glyph-variant-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> <em class="structfield"><code><a name="hb-ot-math-glyph-variant-t-struct.glyph"></a>glyph</code></em>;</p></td>
+<td class="struct_member_description"><p>The glyph index of the variant</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-ot-math-glyph-variant-t-struct.advance"></a>advance</code></em>;</p></td>
+<td class="struct_member_description"><p>The advance width of the variant</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
<p class="since">Since: <a class="link" href="api-index-1-3-3.html#api-index-1.3.3">1.3.3</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-math-glyph-part-flags-t"></a><h3>enum hb_ot_math_glyph_part_flags_t</h3>
+<p>Flags for math glyph parts.</p>
<div class="refsect3">
<a name="hb-ot-math-glyph-part-flags-t.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -925,7 +993,7 @@ to store the result</p></td>
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody><tr>
-<td class="enum_member_name"><p><a name="HB-MATH-GLYPH-PART-FLAG-EXTENDER:CAPS"></a>HB_MATH_GLYPH_PART_FLAG_EXTENDER</p></td>
+<td class="enum_member_name"><p><a name="HB-OT-MATH-GLYPH-PART-FLAG-EXTENDER:CAPS"></a>HB_OT_MATH_GLYPH_PART_FLAG_EXTENDER</p></td>
<td> </td>
<td> </td>
</tr></tbody>
@@ -935,7 +1003,7 @@ to store the result</p></td>
</div>
<hr>
<div class="refsect2">
-<a name="hb-ot-math-glyph-part-t"></a><h3>hb_ot_math_glyph_part_t</h3>
+<a name="hb-ot-math-glyph-part-t-struct"></a><h3>hb_ot_math_glyph_part_t</h3>
<pre class="programlisting">typedef struct {
hb_codepoint_t glyph;
hb_position_t start_connector_length;
@@ -944,6 +1012,46 @@ to store the result</p></td>
hb_ot_math_glyph_part_flags_t flags;
} hb_ot_math_glyph_part_t;
</pre>
+<p>Data type to hold information for a "part" component of a math-variant glyph.
+Large variants for stretchable math glyphs (such as parentheses) can be constructed
+on the fly from parts.</p>
+<div class="refsect3">
+<a name="hb-ot-math-glyph-part-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> <em class="structfield"><code><a name="hb-ot-math-glyph-part-t-struct.glyph"></a>glyph</code></em>;</p></td>
+<td class="struct_member_description"><p>The glyph index of the variant part</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-ot-math-glyph-part-t-struct.start-connector-length"></a>start_connector_length</code></em>;</p></td>
+<td class="struct_member_description"><p>The length of the connector on the starting side of the variant part</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-ot-math-glyph-part-t-struct.end-connector-length"></a>end_connector_length</code></em>;</p></td>
+<td class="struct_member_description"><p>The length of the connector on the ending side of the variant part</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-ot-math-glyph-part-t-struct.full-advance"></a>full_advance</code></em>;</p></td>
+<td class="struct_member_description"><p>The total advance of the part</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-flags-t" title="enum hb_ot_math_glyph_part_flags_t"><span class="type">hb_ot_math_glyph_part_flags_t</span></a> <em class="structfield"><code><a name="hb-ot-math-glyph-part-t-struct.flags"></a>flags</code></em>;</p></td>
+<td class="struct_member_description"><p><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-flags-t" title="enum hb_ot_math_glyph_part_flags_t"><span class="type">hb_ot_math_glyph_part_flags_t</span></a> flags for the part</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
<p class="since">Since: <a class="link" href="api-index-1-3-3.html#api-index-1.3.3">1.3.3</a></p>
</div>
</div>
diff --git a/docs/html/harfbuzz-hb-ot-name.html b/docs/html/harfbuzz-hb-ot-name.html
index 1087a86..3fbf48d 100644
--- a/docs/html/harfbuzz-hb-ot-name.html
+++ b/docs/html/harfbuzz-hb-ot-name.html
@@ -5,7 +5,7 @@
<title>hb-ot-name: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch10.html" title="OpenType API">
+<link rel="up" href="ch12.html" title="OpenType API">
<link rel="prev" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">
<link rel="next" href="harfbuzz-hb-ot-shape.html" title="hb-ot-shape">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
@@ -18,7 +18,7 @@
<a href="#harfbuzz-hb-ot-name.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch10.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch12.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="harfbuzz-hb-ot-math.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="harfbuzz-hb-ot-shape.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
@@ -97,7 +97,7 @@
<div class="refsect2">
<a name="hb-ot-name-list-names"></a><h3>hb_ot_name_list_names ()</h3>
<pre class="programlisting">const <span class="returnvalue">hb_ot_name_entry_t</span> *
-hb_ot_name_list_names (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_name_list_names (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *num_entries</code></em>);</pre>
<p>Enumerates all available name IDs and language combinations. Returned
array is owned by the <em class="parameter"><code>face</code></em>
@@ -137,7 +137,7 @@ used as long as <em class="parameter"><code>face</code></em>
<div class="refsect2">
<a name="hb-ot-name-get-utf16"></a><h3>hb_ot_name_get_utf16 ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_name_get_utf16 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_name_get_utf16 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="type">hb_ot_name_id_t</span></a> name_id</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> language</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *text_size</code></em>,
@@ -195,7 +195,7 @@ text written to buffer. </p></td>
<div class="refsect2">
<a name="hb-ot-name-get-utf32"></a><h3>hb_ot_name_get_utf32 ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_name_get_utf32 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_name_get_utf32 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="type">hb_ot_name_id_t</span></a> name_id</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> language</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *text_size</code></em>,
@@ -253,7 +253,7 @@ text written to buffer. </p></td>
<div class="refsect2">
<a name="hb-ot-name-get-utf8"></a><h3>hb_ot_name_get_utf8 ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_name_get_utf8 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_name_get_utf8 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="type">hb_ot_name_id_t</span></a> name_id</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> language</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *text_size</code></em>,
diff --git a/docs/html/harfbuzz-hb-ot-shape.html b/docs/html/harfbuzz-hb-ot-shape.html
index 5814dfe..56d06c9 100644
--- a/docs/html/harfbuzz-hb-ot-shape.html
+++ b/docs/html/harfbuzz-hb-ot-shape.html
@@ -5,7 +5,7 @@
<title>hb-ot-shape: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch10.html" title="OpenType API">
+<link rel="up" href="ch12.html" title="OpenType API">
<link rel="prev" href="harfbuzz-hb-ot-name.html" title="hb-ot-name">
<link rel="next" href="harfbuzz-hb-ot-var.html" title="hb-ot-var">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
@@ -18,7 +18,7 @@
<a href="#harfbuzz-hb-ot-shape.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch10.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch12.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="harfbuzz-hb-ot-name.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="harfbuzz-hb-ot-var.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
@@ -62,11 +62,11 @@
<div class="refsect2">
<a name="hb-ot-shape-glyphs-closure"></a><h3>hb_ot_shape_glyphs_closure ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_ot_shape_glyphs_closure (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> *features</code></em>,
+hb_ot_shape_glyphs_closure (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t"><span class="type">hb_feature_t</span></a> *features</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> num_features</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *glyphs</code></em>);</pre>
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *glyphs</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
</div>
</div>
diff --git a/docs/html/harfbuzz-hb-ot-var.html b/docs/html/harfbuzz-hb-ot-var.html
index f65fd8d..11fee9b 100644
--- a/docs/html/harfbuzz-hb-ot-var.html
+++ b/docs/html/harfbuzz-hb-ot-var.html
@@ -5,9 +5,9 @@
<title>hb-ot-var: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch10.html" title="OpenType API">
+<link rel="up" href="ch12.html" title="OpenType API">
<link rel="prev" href="harfbuzz-hb-ot-shape.html" title="hb-ot-shape">
-<link rel="next" href="ch11.html" title="Apple Advanced Typography API">
+<link rel="next" href="ch13.html" title="Apple Advanced Typography API">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
@@ -15,12 +15,13 @@
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
- <a href="#harfbuzz-hb-ot-var.description" class="shortcut">Description</a></span>
+ <a href="#harfbuzz-hb-ot-var.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+ <a href="#harfbuzz-hb-ot-var.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch10.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch12.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="harfbuzz-hb-ot-shape.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="ch11.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="ch13.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="harfbuzz-hb-ot-var"></a><div class="titlepage"></div>
@@ -154,6 +155,12 @@
</table></div>
</div>
<div class="refsect1">
+<a name="harfbuzz-hb-ot-var.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GFlags</a>
+ <span class="lineart">╰──</span> hb_ot_var_axis_flags_t
+</pre>
+</div>
+<div class="refsect1">
<a name="harfbuzz-hb-ot-var.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;hb-ot.h&gt;
</pre>
@@ -167,7 +174,7 @@
<div class="refsect2">
<a name="hb-ot-var-has-data"></a><h3>hb_ot_var_has_data ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_var_has_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_ot_var_has_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<p>This function allows to verify the presence of OpenType variation data on the face.</p>
<div class="refsect3">
<a name="hb-ot-var-has-data.parameters"></a><h4>Parameters</h4>
@@ -179,7 +186,7 @@ hb_ot_var_has_data (<em class="parameter"><code><a class="link" href="harfbuzz-h
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>face</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to test</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to test</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
@@ -194,7 +201,7 @@ hb_ot_var_has_data (<em class="parameter"><code><a class="link" href="harfbuzz-h
<div class="refsect2">
<a name="hb-ot-var-find-axis-info"></a><h3>hb_ot_var_find_axis_info ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_var_find_axis_info (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_var_find_axis_info (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> axis_tag</code></em>,
<em class="parameter"><code><span class="type">hb_ot_var_axis_info_t</span> *axis_info</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-2-2-0.html#api-index-2.2.0">2.2.0</a></p>
@@ -203,14 +210,14 @@ hb_ot_var_find_axis_info (<em class="parameter"><code><a class="link" href="harf
<div class="refsect2">
<a name="hb-ot-var-get-axis-count"></a><h3>hb_ot_var_get_axis_count ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_var_get_axis_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_ot_var_get_axis_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-1-4-2.html#api-index-1.4.2">1.4.2</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-var-get-axis-infos"></a><h3>hb_ot_var_get_axis_infos ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_var_get_axis_infos (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_var_get_axis_infos (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *axes_count</code></em>,
<em class="parameter"><code><span class="type">hb_ot_var_axis_info_t</span> *axes_array</code></em>);</pre>
@@ -220,14 +227,14 @@ hb_ot_var_get_axis_infos (<em class="parameter"><code><a class="link" href="harf
<div class="refsect2">
<a name="hb-ot-var-get-named-instance-count"></a><h3>hb_ot_var_get_named_instance_count ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_var_get_named_instance_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_ot_var_get_named_instance_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-var-named-instance-get-subfamily-name-id"></a><h3>hb_ot_var_named_instance_get_subfamily_name_id ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="returnvalue">hb_ot_name_id_t</span></a>
hb_ot_var_named_instance_get_subfamily_name_id
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> instance_index</code></em>);</pre>
</div>
<hr>
@@ -235,7 +242,7 @@ hb_ot_var_named_instance_get_subfamily_name_id
<a name="hb-ot-var-named-instance-get-postscript-name-id"></a><h3>hb_ot_var_named_instance_get_postscript_name_id ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="returnvalue">hb_ot_name_id_t</span></a>
hb_ot_var_named_instance_get_postscript_name_id
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> instance_index</code></em>);</pre>
</div>
<hr>
@@ -243,7 +250,7 @@ hb_ot_var_named_instance_get_postscript_name_id
<a name="hb-ot-var-named-instance-get-design-coords"></a><h3>hb_ot_var_named_instance_get_design_coords ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
hb_ot_var_named_instance_get_design_coords
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> instance_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *coords_length</code></em>,
<em class="parameter"><code><span class="type">float</span> *coords</code></em>);</pre>
@@ -252,7 +259,7 @@ hb_ot_var_named_instance_get_design_coords
<div class="refsect2">
<a name="hb-ot-var-normalize-variations"></a><h3>hb_ot_var_normalize_variations ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_ot_var_normalize_variations (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_var_normalize_variations (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-variation-t" title="hb_variation_t"><span class="type">hb_variation_t</span></a> *variations</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> variations_length</code></em>,
<em class="parameter"><code><span class="type">int</span> *coords</code></em>,
@@ -263,7 +270,7 @@ hb_ot_var_normalize_variations (<em class="parameter"><code><a class="link" href
<div class="refsect2">
<a name="hb-ot-var-normalize-coords"></a><h3>hb_ot_var_normalize_coords ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_ot_var_normalize_coords (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_var_normalize_coords (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> coords_length</code></em>,
<em class="parameter"><code>const <span class="type">float</span> *design_coords</code></em>,
<em class="parameter"><code><span class="type">int</span> *normalized_coords</code></em>);</pre>
diff --git a/docs/html/harfbuzz-hb-set.html b/docs/html/harfbuzz-hb-set.html
index 7607ab2..8c2c408 100644
--- a/docs/html/harfbuzz-hb-set.html
+++ b/docs/html/harfbuzz-hb-set.html
@@ -5,7 +5,7 @@
<title>hb-set: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch09.html" title="Core API">
+<link rel="up" href="ch11.html" title="Core API">
<link rel="prev" href="harfbuzz-hb-map.html" title="hb-map">
<link rel="next" href="harfbuzz-hb-shape-plan.html" title="hb-shape-plan">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
@@ -15,10 +15,11 @@
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
- <a href="#harfbuzz-hb-set.description" class="shortcut">Description</a></span>
+ <a href="#harfbuzz-hb-set.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+ <a href="#harfbuzz-hb-set.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch09.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch11.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="harfbuzz-hb-map.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="harfbuzz-hb-shape-plan.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
@@ -73,7 +74,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="returnvalue">hb_set_t</span></a> *
+<a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="returnvalue">hb_set_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-set.html#hb-set-create" title="hb_set_create ()">hb_set_create</a> <span class="c_punctuation">()</span>
@@ -105,7 +106,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="returnvalue">hb_set_t</span></a> *
+<a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="returnvalue">hb_set_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-set.html#hb-set-get-empty" title="hb_set_get_empty ()">hb_set_get_empty</a> <span class="c_punctuation">()</span>
@@ -216,7 +217,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="returnvalue">hb_set_t</span></a> *
+<a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="returnvalue">hb_set_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-set.html#hb-set-reference" title="hb_set_reference ()">hb_set_reference</a> <span class="c_punctuation">()</span>
@@ -265,7 +266,7 @@
</tbody>
</table></div>
</div>
-<div class="refsect1">
+<a name="hb-set-t"></a><div class="refsect1">
<a name="harfbuzz-hb-set.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
@@ -279,12 +280,18 @@
</tr>
<tr>
<td class="typedef_keyword">typedef</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t">hb_set_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-set.html#hb-set-t">hb_set_t</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
+<a name="harfbuzz-hb-set.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
+ <span class="lineart">╰──</span> hb_set_t
+</pre>
+</div>
+<div class="refsect1">
<a name="harfbuzz-hb-set.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;hb.h&gt;
</pre>
@@ -300,7 +307,7 @@ or other integer values.</p>
<div class="refsect2">
<a name="hb-set-add"></a><h3>hb_set_add ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_set_add (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
+hb_set_add (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> codepoint</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-add.parameters"></a><h4>Parameters</h4>
@@ -323,7 +330,7 @@ hb_set_add (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.ht
<div class="refsect2">
<a name="hb-set-add-range"></a><h3>hb_set_add_range ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_set_add_range (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
+hb_set_add_range (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> first</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> last</code></em>);</pre>
<div class="refsect3">
@@ -347,7 +354,7 @@ hb_set_add_range (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
<div class="refsect2">
<a name="hb-set-allocation-successful"></a><h3>hb_set_allocation_successful ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_set_allocation_successful (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
+hb_set_allocation_successful (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-allocation-successful.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -369,7 +376,7 @@ hb_set_allocation_successful (<em class="parameter"><code>const <a class="link"
<div class="refsect2">
<a name="hb-set-clear"></a><h3>hb_set_clear ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_set_clear (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
+hb_set_clear (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-clear.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -390,7 +397,7 @@ hb_set_clear (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.
<hr>
<div class="refsect2">
<a name="hb-set-create"></a><h3>hb_set_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="returnvalue">hb_set_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="returnvalue">hb_set_t</span></a> *
hb_set_create (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p><span class="annotation">[Xconstructor]</span></p>
<div class="refsect3">
@@ -404,7 +411,7 @@ hb_set_create (<em class="parameter"><code><span class="type">void</span></code>
<div class="refsect2">
<a name="hb-set-del"></a><h3>hb_set_del ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_set_del (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
+hb_set_del (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> codepoint</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-del.parameters"></a><h4>Parameters</h4>
@@ -427,7 +434,7 @@ hb_set_del (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.ht
<div class="refsect2">
<a name="hb-set-del-range"></a><h3>hb_set_del_range ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_set_del_range (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
+hb_set_del_range (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> first</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> last</code></em>);</pre>
<div class="refsect3">
@@ -451,7 +458,7 @@ hb_set_del_range (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
<div class="refsect2">
<a name="hb-set-destroy"></a><h3>hb_set_destroy ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_set_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
+hb_set_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-set-destroy.parameters"></a><h4>Parameters</h4>
@@ -473,7 +480,7 @@ hb_set_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-se
<hr>
<div class="refsect2">
<a name="hb-set-get-empty"></a><h3>hb_set_get_empty ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="returnvalue">hb_set_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="returnvalue">hb_set_t</span></a> *
hb_set_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<div class="refsect3">
<a name="hb-set-get-empty.returns"></a><h4>Returns</h4>
@@ -486,7 +493,7 @@ hb_set_get_empty (<em class="parameter"><code><span class="type">void</span></co
<div class="refsect2">
<a name="hb-set-get-max"></a><h3>hb_set_get_max ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="returnvalue">hb_codepoint_t</span></a>
-hb_set_get_max (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
+hb_set_get_max (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
<p>Finds the maximum number in the set.</p>
<div class="refsect3">
<a name="hb-set-get-max.parameters"></a><h4>Parameters</h4>
@@ -513,7 +520,7 @@ hb_set_get_max (<em class="parameter"><code>const <a class="link" href="harfbuzz
<div class="refsect2">
<a name="hb-set-get-min"></a><h3>hb_set_get_min ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="returnvalue">hb_codepoint_t</span></a>
-hb_set_get_min (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
+hb_set_get_min (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
<p>Finds the minimum number in the set.</p>
<div class="refsect3">
<a name="hb-set-get-min.parameters"></a><h4>Parameters</h4>
@@ -540,7 +547,7 @@ hb_set_get_min (<em class="parameter"><code>const <a class="link" href="harfbuzz
<div class="refsect2">
<a name="hb-set-get-population"></a><h3>hb_set_get_population ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_set_get_population (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
+hb_set_get_population (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
<p>Returns the number of numbers in the set.</p>
<div class="refsect3">
<a name="hb-set-get-population.parameters"></a><h4>Parameters</h4>
@@ -567,8 +574,8 @@ hb_set_get_population (<em class="parameter"><code>const <a class="link" href="h
<div class="refsect2">
<a name="hb-set-get-user-data"></a><h3>hb_set_get_user_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> *
-hb_set_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
+hb_set_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-set-get-user-data.parameters"></a><h4>Parameters</h4>
@@ -596,7 +603,7 @@ hb_set_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz
<div class="refsect2">
<a name="hb-set-has"></a><h3>hb_set_has ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_set_has (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
+hb_set_has (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> codepoint</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-has.parameters"></a><h4>Parameters</h4>
@@ -619,8 +626,8 @@ hb_set_has (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-
<div class="refsect2">
<a name="hb-set-intersect"></a><h3>hb_set_intersect ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_set_intersect (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
+hb_set_intersect (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-intersect.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -642,7 +649,7 @@ hb_set_intersect (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
<div class="refsect2">
<a name="hb-set-is-empty"></a><h3>hb_set_is_empty ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_set_is_empty (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
+hb_set_is_empty (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-is-empty.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -664,8 +671,8 @@ hb_set_is_empty (<em class="parameter"><code>const <a class="link" href="harfbuz
<div class="refsect2">
<a name="hb-set-is-equal"></a><h3>hb_set_is_equal ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_set_is_equal (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
+hb_set_is_equal (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-is-equal.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -690,7 +697,7 @@ hb_set_is_equal (<em class="parameter"><code>const <a class="link" href="harfbuz
</div>
<div class="refsect3">
<a name="hb-set-is-equal.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the two sets are equal, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
+<p> <code class="literal">TRUE</code> if the two sets are equal, <code class="literal">FALSE</code> otherwise.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
</div>
@@ -698,8 +705,8 @@ hb_set_is_equal (<em class="parameter"><code>const <a class="link" href="harfbuz
<div class="refsect2">
<a name="hb-set-is-subset"></a><h3>hb_set_is_subset ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_set_is_subset (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *larger_set</code></em>);</pre>
+hb_set_is_subset (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *larger_set</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-is-subset.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -724,9 +731,9 @@ hb_set_is_subset (<em class="parameter"><code>const <a class="link" href="harfbu
</div>
<div class="refsect3">
<a name="hb-set-is-subset.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <em class="parameter"><code>set</code></em>
+<p> <code class="literal">TRUE</code> if the <em class="parameter"><code>set</code></em>
is a subset of (or equal to) <em class="parameter"><code>larger_set</code></em>
-, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
+, <code class="literal">FALSE</code> otherwise.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-1-8-1.html#api-index-1.8.1">1.8.1</a></p>
</div>
@@ -734,7 +741,7 @@ is a subset of (or equal to) <em class="parameter"><code>larger_set</code></em>
<div class="refsect2">
<a name="hb-set-next"></a><h3>hb_set_next ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_set_next (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
+hb_set_next (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *codepoint</code></em>);</pre>
<p>Gets the next number in <em class="parameter"><code>set</code></em>
that is greater than current value of <em class="parameter"><code>codepoint</code></em>
@@ -773,7 +780,7 @@ hb_set_next (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb
<div class="refsect2">
<a name="hb-set-next-range"></a><h3>hb_set_next_range ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_set_next_range (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
+hb_set_next_range (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *first</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *last</code></em>);</pre>
<p>Gets the next consecutive range of numbers in <em class="parameter"><code>set</code></em>
@@ -819,10 +826,10 @@ are greater than current value of <em class="parameter"><code>last</code></em>
<div class="refsect2">
<a name="hb-set-previous"></a><h3>hb_set_previous ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_set_previous (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
+hb_set_previous (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *codepoint</code></em>);</pre>
<p>Gets the previous number in <em class="parameter"><code>set</code></em>
- that is slower than current value of <em class="parameter"><code>codepoint</code></em>
+ that is lower than current value of <em class="parameter"><code>codepoint</code></em>
.</p>
<p>Set <em class="parameter"><code>codepoint</code></em>
to <a class="link" href="harfbuzz-hb-set.html#HB-SET-VALUE-INVALID:CAPS" title="HB_SET_VALUE_INVALID"><code class="literal">HB_SET_VALUE_INVALID</code></a> to get started.</p>
@@ -858,12 +865,12 @@ hb_set_previous (<em class="parameter"><code>const <a class="link" href="harfbuz
<div class="refsect2">
<a name="hb-set-previous-range"></a><h3>hb_set_previous_range ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_set_previous_range (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
+hb_set_previous_range (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *first</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *last</code></em>);</pre>
<p>Gets the previous consecutive range of numbers in <em class="parameter"><code>set</code></em>
that
-are greater than current value of <em class="parameter"><code>last</code></em>
+are less than current value of <em class="parameter"><code>first</code></em>
.</p>
<p>Set <em class="parameter"><code>first</code></em>
to <a class="link" href="harfbuzz-hb-set.html#HB-SET-VALUE-INVALID:CAPS" title="HB_SET_VALUE_INVALID"><code class="literal">HB_SET_VALUE_INVALID</code></a> to get started.</p>
@@ -903,8 +910,8 @@ are greater than current value of <em class="parameter"><code>last</code></em>
<hr>
<div class="refsect2">
<a name="hb-set-reference"></a><h3>hb_set_reference ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="returnvalue">hb_set_t</span></a> *
-hb_set_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="returnvalue">hb_set_t</span></a> *
+hb_set_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-set-reference.parameters"></a><h4>Parameters</h4>
@@ -932,8 +939,8 @@ hb_set_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
<div class="refsect2">
<a name="hb-set-set"></a><h3>hb_set_set ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_set_set (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
+hb_set_set (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-set.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -955,8 +962,8 @@ hb_set_set (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.ht
<div class="refsect2">
<a name="hb-set-set-user-data"></a><h3>hb_set_set_user_data ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_set_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
+hb_set_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
<em class="parameter"><code><span class="type">void</span> *data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
@@ -982,8 +989,8 @@ hb_set_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz
<div class="refsect2">
<a name="hb-set-subtract"></a><h3>hb_set_subtract ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_set_subtract (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
+hb_set_subtract (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-subtract.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1005,8 +1012,8 @@ hb_set_subtract (<em class="parameter"><code><a class="link" href="harfbuzz-hb-s
<div class="refsect2">
<a name="hb-set-symmetric-difference"></a><h3>hb_set_symmetric_difference ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_set_symmetric_difference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
+hb_set_symmetric_difference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-symmetric-difference.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1028,8 +1035,8 @@ hb_set_symmetric_difference (<em class="parameter"><code><a class="link" href="h
<div class="refsect2">
<a name="hb-set-union"></a><h3>hb_set_union ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_set_union (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
+hb_set_union (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-union.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
diff --git a/docs/html/harfbuzz-hb-shape-plan.html b/docs/html/harfbuzz-hb-shape-plan.html
index e9c3501..577c556 100644
--- a/docs/html/harfbuzz-hb-shape-plan.html
+++ b/docs/html/harfbuzz-hb-shape-plan.html
@@ -5,7 +5,7 @@
<title>hb-shape-plan: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch09.html" title="Core API">
+<link rel="up" href="ch11.html" title="Core API">
<link rel="prev" href="harfbuzz-hb-set.html" title="hb-set">
<link rel="next" href="harfbuzz-hb-shape.html" title="hb-shape">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
@@ -15,10 +15,11 @@
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
- <a href="#harfbuzz-hb-shape-plan.description" class="shortcut">Description</a></span>
+ <a href="#harfbuzz-hb-shape-plan.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+ <a href="#harfbuzz-hb-shape-plan.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch09.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch11.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="harfbuzz-hb-set.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="harfbuzz-hb-shape.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
@@ -41,7 +42,7 @@
<tbody>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="returnvalue">hb_shape_plan_t</span></a> *
+<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-create" title="hb_shape_plan_create ()">hb_shape_plan_create</a> <span class="c_punctuation">()</span>
@@ -49,7 +50,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="returnvalue">hb_shape_plan_t</span></a> *
+<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-create-cached" title="hb_shape_plan_create_cached ()">hb_shape_plan_create_cached</a> <span class="c_punctuation">()</span>
@@ -57,7 +58,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="returnvalue">hb_shape_plan_t</span></a> *
+<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-create2" title="hb_shape_plan_create2 ()">hb_shape_plan_create2</a> <span class="c_punctuation">()</span>
@@ -65,7 +66,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="returnvalue">hb_shape_plan_t</span></a> *
+<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-create-cached2" title="hb_shape_plan_create_cached2 ()">hb_shape_plan_create_cached2</a> <span class="c_punctuation">()</span>
@@ -89,7 +90,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="returnvalue">hb_shape_plan_t</span></a> *
+<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-get-empty" title="hb_shape_plan_get_empty ()">hb_shape_plan_get_empty</a> <span class="c_punctuation">()</span>
@@ -112,7 +113,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="returnvalue">hb_shape_plan_t</span></a> *
+<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-reference" title="hb_shape_plan_reference ()">hb_shape_plan_reference</a> <span class="c_punctuation">()</span>
@@ -129,7 +130,7 @@
</tbody>
</table></div>
</div>
-<div class="refsect1">
+<a name="hb-shape-plan-t"></a><div class="refsect1">
<a name="harfbuzz-hb-shape-plan.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
@@ -138,11 +139,17 @@
</colgroup>
<tbody><tr>
<td class="typedef_keyword">typedef</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t">hb_shape_plan_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t">hb_shape_plan_t</a></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
+<a name="harfbuzz-hb-shape-plan.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
+ <span class="lineart">╰──</span> hb_shape_plan_t
+</pre>
+</div>
+<div class="refsect1">
<a name="harfbuzz-hb-shape-plan.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;hb.h&gt;
</pre>
@@ -158,10 +165,10 @@ Most client would not need to deal with shape plans directly.</p>
<a name="harfbuzz-hb-shape-plan.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="hb-shape-plan-create"></a><h3>hb_shape_plan_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="returnvalue">hb_shape_plan_t</span></a> *
-hb_shape_plan_create (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> *user_features</code></em>,
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
+hb_shape_plan_create (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t"><span class="type">hb_feature_t</span></a> *user_features</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> num_user_features</code></em>,
<em class="parameter"><code>const <span class="type">char</span> * const *shaper_list</code></em>);</pre>
<p><span class="annotation">[Xconstructor]</span></p>
@@ -197,10 +204,10 @@ hb_shape_plan_create (<em class="parameter"><code><a class="link" href="harfbuzz
<hr>
<div class="refsect2">
<a name="hb-shape-plan-create-cached"></a><h3>hb_shape_plan_create_cached ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="returnvalue">hb_shape_plan_t</span></a> *
-hb_shape_plan_create_cached (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> *user_features</code></em>,
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
+hb_shape_plan_create_cached (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t"><span class="type">hb_feature_t</span></a> *user_features</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> num_user_features</code></em>,
<em class="parameter"><code>const <span class="type">char</span> * const *shaper_list</code></em>);</pre>
<div class="refsect3">
@@ -235,10 +242,10 @@ hb_shape_plan_create_cached (<em class="parameter"><code><a class="link" href="h
<hr>
<div class="refsect2">
<a name="hb-shape-plan-create2"></a><h3>hb_shape_plan_create2 ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="returnvalue">hb_shape_plan_t</span></a> *
-hb_shape_plan_create2 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> *user_features</code></em>,
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
+hb_shape_plan_create2 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t"><span class="type">hb_feature_t</span></a> *user_features</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> num_user_features</code></em>,
<em class="parameter"><code>const <span class="type">int</span> *coords</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> num_coords</code></em>,
@@ -247,10 +254,10 @@ hb_shape_plan_create2 (<em class="parameter"><code><a class="link" href="harfbuz
<hr>
<div class="refsect2">
<a name="hb-shape-plan-create-cached2"></a><h3>hb_shape_plan_create_cached2 ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="returnvalue">hb_shape_plan_t</span></a> *
-hb_shape_plan_create_cached2 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> *user_features</code></em>,
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
+hb_shape_plan_create_cached2 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t"><span class="type">hb_feature_t</span></a> *user_features</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> num_user_features</code></em>,
<em class="parameter"><code>const <span class="type">int</span> *coords</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> num_coords</code></em>,
@@ -260,7 +267,7 @@ hb_shape_plan_create_cached2 (<em class="parameter"><code><a class="link" href="
<div class="refsect2">
<a name="hb-shape-plan-destroy"></a><h3>hb_shape_plan_destroy ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_shape_plan_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>);</pre>
+hb_shape_plan_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-shape-plan-destroy.parameters"></a><h4>Parameters</h4>
@@ -283,10 +290,10 @@ hb_shape_plan_destroy (<em class="parameter"><code><a class="link" href="harfbuz
<div class="refsect2">
<a name="hb-shape-plan-execute"></a><h3>hb_shape_plan_execute ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_shape_plan_execute (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> *features</code></em>,
+hb_shape_plan_execute (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t"><span class="type">hb_feature_t</span></a> *features</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> num_features</code></em>);</pre>
<div class="refsect3">
<a name="hb-shape-plan-execute.parameters"></a><h4>Parameters</h4>
@@ -325,7 +332,7 @@ hb_shape_plan_execute (<em class="parameter"><code><a class="link" href="harfbuz
<hr>
<div class="refsect2">
<a name="hb-shape-plan-get-empty"></a><h3>hb_shape_plan_get_empty ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="returnvalue">hb_shape_plan_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
hb_shape_plan_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<div class="refsect3">
<a name="hb-shape-plan-get-empty.returns"></a><h4>Returns</h4>
@@ -338,7 +345,7 @@ hb_shape_plan_get_empty (<em class="parameter"><code><span class="type">void</sp
<div class="refsect2">
<a name="hb-shape-plan-get-shaper"></a><h3>hb_shape_plan_get_shaper ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> *
-hb_shape_plan_get_shaper (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>);</pre>
+hb_shape_plan_get_shaper (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>);</pre>
<div class="refsect3">
<a name="hb-shape-plan-get-shaper.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -365,8 +372,8 @@ hb_shape_plan_get_shaper (<em class="parameter"><code><a class="link" href="harf
<div class="refsect2">
<a name="hb-shape-plan-get-user-data"></a><h3>hb_shape_plan_get_user_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> *
-hb_shape_plan_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
+hb_shape_plan_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-shape-plan-get-user-data.parameters"></a><h4>Parameters</h4>
@@ -393,8 +400,8 @@ hb_shape_plan_get_user_data (<em class="parameter"><code><a class="link" href="h
<hr>
<div class="refsect2">
<a name="hb-shape-plan-reference"></a><h3>hb_shape_plan_reference ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="returnvalue">hb_shape_plan_t</span></a> *
-hb_shape_plan_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
+hb_shape_plan_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-shape-plan-reference.parameters"></a><h4>Parameters</h4>
@@ -422,8 +429,8 @@ hb_shape_plan_reference (<em class="parameter"><code><a class="link" href="harfb
<div class="refsect2">
<a name="hb-shape-plan-set-user-data"></a><h3>hb_shape_plan_set_user_data ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_shape_plan_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
+hb_shape_plan_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
<em class="parameter"><code><span class="type">void</span> *data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
diff --git a/docs/html/harfbuzz-hb-shape.html b/docs/html/harfbuzz-hb-shape.html
index 0785017..d61f3ea 100644
--- a/docs/html/harfbuzz-hb-shape.html
+++ b/docs/html/harfbuzz-hb-shape.html
@@ -5,7 +5,7 @@
<title>hb-shape: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch09.html" title="Core API">
+<link rel="up" href="ch11.html" title="Core API">
<link rel="prev" href="harfbuzz-hb-shape-plan.html" title="hb-shape-plan">
<link rel="next" href="harfbuzz-hb-unicode.html" title="hb-unicode">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
@@ -18,7 +18,7 @@
<a href="#harfbuzz-hb-shape.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch09.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch11.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="harfbuzz-hb-shape-plan.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="harfbuzz-hb-unicode.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
@@ -82,16 +82,19 @@ contains the output glyphs and their positions.</p>
<div class="refsect2">
<a name="hb-shape"></a><h3>hb_shape ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_shape (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> *features</code></em>,
+hb_shape (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t"><span class="type">hb_feature_t</span></a> *features</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> num_features</code></em>);</pre>
<p>Shapes <em class="parameter"><code>buffer</code></em>
using <em class="parameter"><code>font</code></em>
turning its Unicode characters content to
positioned glyphs. If <em class="parameter"><code>features</code></em>
- is not <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, it will be used to control the
-features applied during shaping.</p>
+ is not <code class="literal">NULL</code>, it will be used to control the
+features applied during shaping. If two <em class="parameter"><code>features</code></em>
+ have the same tag but
+overlapping ranges the value of the feature with the higher index takes
+precedence.</p>
<div class="refsect3">
<a name="hb-shape.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -103,18 +106,18 @@ features applied during shaping.</p>
<tbody>
<tr>
<td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> to use for shaping</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> to use for shaping</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> to shape</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> to shape</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>features</p></td>
<td class="parameter_description"><p>an array of user
-specified <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+specified <a class="link" href="harfbuzz-hb-common.html#hb-feature-t"><span class="type">hb_feature_t</span></a> or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=num_features][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
@@ -132,13 +135,13 @@ array</p></td>
<div class="refsect2">
<a name="hb-shape-full"></a><h3>hb_shape_full ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_shape_full (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> *features</code></em>,
+hb_shape_full (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t"><span class="type">hb_feature_t</span></a> *features</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> num_features</code></em>,
<em class="parameter"><code>const <span class="type">char</span> * const *shaper_list</code></em>);</pre>
<p>See <a class="link" href="harfbuzz-hb-shape.html#hb-shape" title="hb_shape ()"><code class="function">hb_shape()</code></a> for details. If <em class="parameter"><code>shaper_list</code></em>
- is not <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the specified
+ is not <code class="literal">NULL</code>, the specified
shapers will be used in the given order, otherwise the default shapers list
will be used.</p>
<div class="refsect3">
@@ -152,18 +155,18 @@ will be used.</p>
<tbody>
<tr>
<td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> to use for shaping</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> to use for shaping</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> to shape</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> to shape</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>features</p></td>
<td class="parameter_description"><p>an array of user
-specified <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+specified <a class="link" href="harfbuzz-hb-common.html#hb-feature-t"><span class="type">hb_feature_t</span></a> or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=num_features][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
@@ -174,8 +177,8 @@ array</p></td>
</tr>
<tr>
<td class="parameter_name"><p>shaper_list</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated
-array of shapers to use or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_description"><p>a <code class="literal">NULL</code>-terminated
+array of shapers to use or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
diff --git a/docs/html/harfbuzz-hb-unicode.html b/docs/html/harfbuzz-hb-unicode.html
index 51a72c6..2762f3c 100644
--- a/docs/html/harfbuzz-hb-unicode.html
+++ b/docs/html/harfbuzz-hb-unicode.html
@@ -5,7 +5,7 @@
<title>hb-unicode: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch09.html" title="Core API">
+<link rel="up" href="ch11.html" title="Core API">
<link rel="prev" href="harfbuzz-hb-shape.html" title="hb-shape">
<link rel="next" href="harfbuzz-hb-version.html" title="hb-version">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
@@ -15,10 +15,11 @@
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
- <a href="#harfbuzz-hb-unicode.description" class="shortcut">Description</a></span>
+ <a href="#harfbuzz-hb-unicode.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+ <a href="#harfbuzz-hb-unicode.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch09.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch11.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="harfbuzz-hb-shape.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="harfbuzz-hb-version.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
@@ -89,7 +90,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-create" title="hb_unicode_funcs_create ()">hb_unicode_funcs_create</a> <span class="c_punctuation">()</span>
@@ -105,7 +106,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-get-default" title="hb_unicode_funcs_get_default ()">hb_unicode_funcs_get_default</a> <span class="c_punctuation">()</span>
@@ -113,7 +114,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-get-empty" title="hb_unicode_funcs_get_empty ()">hb_unicode_funcs_get_empty</a> <span class="c_punctuation">()</span>
@@ -121,7 +122,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-get-parent" title="hb_unicode_funcs_get_parent ()">hb_unicode_funcs_get_parent</a> <span class="c_punctuation">()</span>
@@ -153,7 +154,7 @@
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-reference" title="hb_unicode_funcs_reference ()">hb_unicode_funcs_reference</a> <span class="c_punctuation">()</span>
@@ -266,7 +267,7 @@
</tbody>
</table></div>
</div>
-<div class="refsect1">
+<a name="hb-unicode-funcs-t"></a><div class="refsect1">
<a name="harfbuzz-hb-unicode.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
@@ -284,7 +285,7 @@
</tr>
<tr>
<td class="typedef_keyword">typedef</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t">hb_unicode_funcs_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t">hb_unicode_funcs_t</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
@@ -294,6 +295,15 @@
</table></div>
</div>
<div class="refsect1">
+<a name="harfbuzz-hb-unicode.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
+ <span class="lineart">╰──</span> hb_unicode_funcs_t
+ <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GEnum</a>
+ <span class="lineart">├──</span> hb_unicode_combining_class_t
+ <span class="lineart">╰──</span> hb_unicode_general_category_t
+</pre>
+</div>
+<div class="refsect1">
<a name="harfbuzz-hb-unicode.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;hb.h&gt;
</pre>
@@ -311,7 +321,7 @@ properties, such as General Category, Script, Combining Class, etc.</p>
<div class="refsect2">
<a name="hb-unicode-combining-class"></a><h3>hb_unicode_combining_class ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-combining-class-t" title="enum hb_unicode_combining_class_t"><span class="returnvalue">hb_unicode_combining_class_t</span></a>
-hb_unicode_combining_class (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+hb_unicode_combining_class (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
</div>
@@ -319,7 +329,7 @@ hb_unicode_combining_class (<em class="parameter"><code><a class="link" href="ha
<div class="refsect2">
<a name="hb-unicode-combining-class-func-t"></a><h3>hb_unicode_combining_class_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-combining-class-t" title="enum hb_unicode_combining_class_t"><span class="returnvalue">hb_unicode_combining_class_t</span></a>
-<span class="c_punctuation">(</span>*hb_unicode_combining_class_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+<span class="c_punctuation">(</span>*hb_unicode_combining_class_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
</div>
@@ -327,7 +337,7 @@ hb_unicode_combining_class (<em class="parameter"><code><a class="link" href="ha
<div class="refsect2">
<a name="hb-unicode-compose"></a><h3>hb_unicode_compose ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_unicode_compose (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+hb_unicode_compose (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> a</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> b</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *ab</code></em>);</pre>
@@ -359,7 +369,7 @@ hb_unicode_compose (<em class="parameter"><code><a class="link" href="harfbuzz-h
<div class="refsect2">
<a name="hb-unicode-compose-func-t"></a><h3>hb_unicode_compose_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-<span class="c_punctuation">(</span>*hb_unicode_compose_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+<span class="c_punctuation">(</span>*hb_unicode_compose_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> a</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> b</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *ab</code></em>,
@@ -369,7 +379,7 @@ hb_unicode_compose (<em class="parameter"><code><a class="link" href="harfbuzz-h
<div class="refsect2">
<a name="hb-unicode-decompose"></a><h3>hb_unicode_decompose ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_unicode_decompose (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+hb_unicode_decompose (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> ab</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *a</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *b</code></em>);</pre>
@@ -406,7 +416,7 @@ hb_unicode_decompose (<em class="parameter"><code><a class="link" href="harfbuzz
<div class="refsect2">
<a name="hb-unicode-decompose-func-t"></a><h3>hb_unicode_decompose_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-<span class="c_punctuation">(</span>*hb_unicode_decompose_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+<span class="c_punctuation">(</span>*hb_unicode_decompose_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> ab</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *a</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *b</code></em>,
@@ -415,8 +425,8 @@ hb_unicode_decompose (<em class="parameter"><code><a class="link" href="harfbuzz
<hr>
<div class="refsect2">
<a name="hb-unicode-funcs-create"></a><h3>hb_unicode_funcs_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
-hb_unicode_funcs_create (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *parent</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+hb_unicode_funcs_create (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *parent</code></em>);</pre>
<p><span class="annotation">[Xconstructor]</span></p>
<div class="refsect3">
<a name="hb-unicode-funcs-create.parameters"></a><h4>Parameters</h4>
@@ -444,7 +454,7 @@ hb_unicode_funcs_create (<em class="parameter"><code><a class="link" href="harfb
<div class="refsect2">
<a name="hb-unicode-funcs-destroy"></a><h3>hb_unicode_funcs_destroy ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_unicode_funcs_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
+hb_unicode_funcs_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-unicode-funcs-destroy.parameters"></a><h4>Parameters</h4>
@@ -466,13 +476,13 @@ hb_unicode_funcs_destroy (<em class="parameter"><code><a class="link" href="harf
<hr>
<div class="refsect2">
<a name="hb-unicode-funcs-get-default"></a><h3>hb_unicode_funcs_get_default ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
hb_unicode_funcs_get_default (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-unicode-funcs-get-empty"></a><h3>hb_unicode_funcs_get_empty ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
hb_unicode_funcs_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<div class="refsect3">
<a name="hb-unicode-funcs-get-empty.returns"></a><h4>Returns</h4>
@@ -484,8 +494,8 @@ hb_unicode_funcs_get_empty (<em class="parameter"><code><span class="type">void<
<hr>
<div class="refsect2">
<a name="hb-unicode-funcs-get-parent"></a><h3>hb_unicode_funcs_get_parent ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
-hb_unicode_funcs_get_parent (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+hb_unicode_funcs_get_parent (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
<div class="refsect3">
<a name="hb-unicode-funcs-get-parent.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -507,8 +517,8 @@ hb_unicode_funcs_get_parent (<em class="parameter"><code><a class="link" href="h
<div class="refsect2">
<a name="hb-unicode-funcs-get-user-data"></a><h3>hb_unicode_funcs_get_user_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> *
-hb_unicode_funcs_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
+hb_unicode_funcs_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-unicode-funcs-get-user-data.parameters"></a><h4>Parameters</h4>
@@ -536,7 +546,7 @@ hb_unicode_funcs_get_user_data (<em class="parameter"><code><a class="link" href
<div class="refsect2">
<a name="hb-unicode-funcs-is-immutable"></a><h3>hb_unicode_funcs_is_immutable ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_unicode_funcs_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
+hb_unicode_funcs_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
<div class="refsect3">
<a name="hb-unicode-funcs-is-immutable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -558,7 +568,7 @@ hb_unicode_funcs_is_immutable (<em class="parameter"><code><a class="link" href=
<div class="refsect2">
<a name="hb-unicode-funcs-make-immutable"></a><h3>hb_unicode_funcs_make_immutable ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_unicode_funcs_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
+hb_unicode_funcs_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
<div class="refsect3">
<a name="hb-unicode-funcs-make-immutable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -579,8 +589,8 @@ hb_unicode_funcs_make_immutable (<em class="parameter"><code><a class="link" hre
<hr>
<div class="refsect2">
<a name="hb-unicode-funcs-reference"></a><h3>hb_unicode_funcs_reference ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
-hb_unicode_funcs_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+hb_unicode_funcs_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-unicode-funcs-reference.parameters"></a><h4>Parameters</h4>
@@ -609,7 +619,7 @@ hb_unicode_funcs_reference (<em class="parameter"><code><a class="link" href="ha
<a name="hb-unicode-funcs-set-combining-class-func"></a><h3>hb_unicode_funcs_set_combining_class_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_unicode_funcs_set_combining_class_func
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-combining-class-func-t" title="hb_unicode_combining_class_func_t ()"><span class="type">hb_unicode_combining_class_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
@@ -641,7 +651,7 @@ hb_unicode_funcs_set_combining_class_func
<div class="refsect2">
<a name="hb-unicode-funcs-set-compose-func"></a><h3>hb_unicode_funcs_set_compose_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_unicode_funcs_set_compose_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+hb_unicode_funcs_set_compose_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-compose-func-t" title="hb_unicode_compose_func_t ()"><span class="type">hb_unicode_compose_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
@@ -673,7 +683,7 @@ hb_unicode_funcs_set_compose_func (<em class="parameter"><code><a class="link" h
<div class="refsect2">
<a name="hb-unicode-funcs-set-decompose-func"></a><h3>hb_unicode_funcs_set_decompose_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_unicode_funcs_set_decompose_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+hb_unicode_funcs_set_decompose_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-decompose-func-t" title="hb_unicode_decompose_func_t ()"><span class="type">hb_unicode_decompose_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
@@ -706,7 +716,7 @@ hb_unicode_funcs_set_decompose_func (<em class="parameter"><code><a class="link"
<a name="hb-unicode-funcs-set-general-category-func"></a><h3>hb_unicode_funcs_set_general_category_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_unicode_funcs_set_general_category_func
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-general-category-func-t" title="hb_unicode_general_category_func_t ()"><span class="type">hb_unicode_general_category_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
@@ -738,7 +748,7 @@ hb_unicode_funcs_set_general_category_func
<div class="refsect2">
<a name="hb-unicode-funcs-set-mirroring-func"></a><h3>hb_unicode_funcs_set_mirroring_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_unicode_funcs_set_mirroring_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+hb_unicode_funcs_set_mirroring_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-mirroring-func-t" title="hb_unicode_mirroring_func_t ()"><span class="type">hb_unicode_mirroring_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
@@ -770,7 +780,7 @@ hb_unicode_funcs_set_mirroring_func (<em class="parameter"><code><a class="link"
<div class="refsect2">
<a name="hb-unicode-funcs-set-script-func"></a><h3>hb_unicode_funcs_set_script_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_unicode_funcs_set_script_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+hb_unicode_funcs_set_script_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-script-func-t" title="hb_unicode_script_func_t ()"><span class="type">hb_unicode_script_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
@@ -802,8 +812,8 @@ hb_unicode_funcs_set_script_func (<em class="parameter"><code><a class="link" hr
<div class="refsect2">
<a name="hb-unicode-funcs-set-user-data"></a><h3>hb_unicode_funcs_set_user_data ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_unicode_funcs_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
+hb_unicode_funcs_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
<em class="parameter"><code><span class="type">void</span> *data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
@@ -829,7 +839,7 @@ hb_unicode_funcs_set_user_data (<em class="parameter"><code><a class="link" href
<div class="refsect2">
<a name="hb-unicode-general-category"></a><h3>hb_unicode_general_category ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-general-category-t" title="enum hb_unicode_general_category_t"><span class="returnvalue">hb_unicode_general_category_t</span></a>
-hb_unicode_general_category (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+hb_unicode_general_category (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
</div>
@@ -837,7 +847,7 @@ hb_unicode_general_category (<em class="parameter"><code><a class="link" href="h
<div class="refsect2">
<a name="hb-unicode-general-category-func-t"></a><h3>hb_unicode_general_category_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-general-category-t" title="enum hb_unicode_general_category_t"><span class="returnvalue">hb_unicode_general_category_t</span></a>
-<span class="c_punctuation">(</span>*hb_unicode_general_category_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+<span class="c_punctuation">(</span>*hb_unicode_general_category_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
</div>
@@ -845,7 +855,7 @@ hb_unicode_general_category (<em class="parameter"><code><a class="link" href="h
<div class="refsect2">
<a name="hb-unicode-mirroring"></a><h3>hb_unicode_mirroring ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="returnvalue">hb_codepoint_t</span></a>
-hb_unicode_mirroring (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+hb_unicode_mirroring (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
</div>
@@ -853,7 +863,7 @@ hb_unicode_mirroring (<em class="parameter"><code><a class="link" href="harfbuzz
<div class="refsect2">
<a name="hb-unicode-mirroring-func-t"></a><h3>hb_unicode_mirroring_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="returnvalue">hb_codepoint_t</span></a>
-<span class="c_punctuation">(</span>*hb_unicode_mirroring_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+<span class="c_punctuation">(</span>*hb_unicode_mirroring_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
</div>
@@ -861,7 +871,7 @@ hb_unicode_mirroring (<em class="parameter"><code><a class="link" href="harfbuzz
<div class="refsect2">
<a name="hb-unicode-script"></a><h3>hb_unicode_script ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="returnvalue">hb_script_t</span></a>
-hb_unicode_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+hb_unicode_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
</div>
@@ -869,7 +879,7 @@ hb_unicode_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb
<div class="refsect2">
<a name="hb-unicode-script-func-t"></a><h3>hb_unicode_script_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="returnvalue">hb_script_t</span></a>
-<span class="c_punctuation">(</span>*hb_unicode_script_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+<span class="c_punctuation">(</span>*hb_unicode_script_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
</div>
diff --git a/docs/html/harfbuzz-hb-uniscribe.html b/docs/html/harfbuzz-hb-uniscribe.html
index 2b60884..7ad9a1e 100644
--- a/docs/html/harfbuzz-hb-uniscribe.html
+++ b/docs/html/harfbuzz-hb-uniscribe.html
@@ -5,7 +5,7 @@
<title>hb-uniscribe: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch12.html" title="Integration API">
+<link rel="up" href="ch14.html" title="Integration API">
<link rel="prev" href="harfbuzz-hb-icu.html" title="hb-icu">
<link rel="next" href="api-index-full.html" title="API Index">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
@@ -18,7 +18,7 @@
<a href="#harfbuzz-hb-uniscribe.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch12.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch14.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="harfbuzz-hb-icu.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="api-index-full.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
@@ -72,13 +72,13 @@
<div class="refsect2">
<a name="hb-uniscribe-font-get-hfont"></a><h3>hb_uniscribe_font_get_hfont ()</h3>
<pre class="programlisting"><span class="returnvalue">HFONT</span>
-hb_uniscribe_font_get_hfont (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+hb_uniscribe_font_get_hfont (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-uniscribe-font-get-logfontw"></a><h3>hb_uniscribe_font_get_logfontw ()</h3>
<pre class="programlisting"><span class="returnvalue">LOGFONTW</span> *
-hb_uniscribe_font_get_logfontw (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+hb_uniscribe_font_get_logfontw (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
</div>
</div>
<div class="refsect1">
diff --git a/docs/html/harfbuzz-hb-version.html b/docs/html/harfbuzz-hb-version.html
index 54c66aa..2039c3b 100644
--- a/docs/html/harfbuzz-hb-version.html
+++ b/docs/html/harfbuzz-hb-version.html
@@ -5,9 +5,9 @@
<title>hb-version: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch09.html" title="Core API">
+<link rel="up" href="ch11.html" title="Core API">
<link rel="prev" href="harfbuzz-hb-unicode.html" title="hb-unicode">
-<link rel="next" href="ch10.html" title="OpenType API">
+<link rel="next" href="ch12.html" title="OpenType API">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
@@ -18,9 +18,9 @@
<a href="#harfbuzz-hb-version.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch09.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch11.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="harfbuzz-hb-unicode.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="ch10.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="ch12.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="harfbuzz-hb-version"></a><div class="titlepage"></div>
@@ -184,19 +184,19 @@ hb_version_string (<em class="parameter"><code><span class="type">void</span></c
<hr>
<div class="refsect2">
<a name="HB-VERSION-MICRO:CAPS"></a><h3>HB_VERSION_MICRO</h3>
-<pre class="programlisting">#define HB_VERSION_MICRO 0
+<pre class="programlisting">#define HB_VERSION_MICRO 4
</pre>
</div>
<hr>
<div class="refsect2">
<a name="HB-VERSION-MINOR:CAPS"></a><h3>HB_VERSION_MINOR</h3>
-<pre class="programlisting">#define HB_VERSION_MINOR 4
+<pre class="programlisting">#define HB_VERSION_MINOR 6
</pre>
</div>
<hr>
<div class="refsect2">
<a name="HB-VERSION-STRING:CAPS"></a><h3>HB_VERSION_STRING</h3>
-<pre class="programlisting">#define HB_VERSION_STRING "2.4.0"
+<pre class="programlisting">#define HB_VERSION_STRING "2.6.4"
</pre>
</div>
</div>
diff --git a/docs/html/harfbuzz.devhelp2 b/docs/html/harfbuzz.devhelp2
index 3b9d482..a577faf 100644
--- a/docs/html/harfbuzz.devhelp2
+++ b/docs/html/harfbuzz.devhelp2
@@ -33,17 +33,30 @@
<sub name="Graphite shaping" link="graphite-shaping.html"/>
<sub name="AAT shaping" link="aat-shaping.html"/>
</sub>
+ <sub name="The HarfBuzz object model" link="object-model.html">
+ <sub name="An overview of data types in HarfBuzz" link="object-model.html#object-model-intro"/>
+ <sub name="Objects in HarfBuzz" link="object-model-object-types.html"/>
+ <sub name="Object lifecycle management" link="object-model-lifecycle.html"/>
+ <sub name="User data" link="object-model-user-data.html"/>
+ <sub name="Blobs" link="object-model-blobs.html"/>
+ </sub>
<sub name="Buffers, language, script and direction" link="buffers-language-script-and-direction.html">
<sub name="Creating and destroying buffers" link="buffers-language-script-and-direction.html#creating-and-destroying-buffers"/>
<sub name="Adding text to the buffer" link="adding-text-to-the-buffer.html"/>
<sub name="Setting buffer properties" link="setting-buffer-properties.html"/>
- <sub name="What about the other scripts?" link="what-about-the-other-scripts.html"/>
<sub name="Customizing Unicode functions" link="customizing-unicode-functions.html"/>
</sub>
- <sub name="Fonts and faces" link="fonts-and-faces.html">
- <sub name="Using FreeType" link="fonts-and-faces.html#using-freetype"/>
- <sub name="Using HarfBuzz's native OpenType implementation" link="using-harfbuzzs-native-opentype-implementation.html"/>
- <sub name="Using your own font functions" link="using-your-own-font-functions.html"/>
+ <sub name="Fonts, faces, and output" link="fonts-and-faces.html">
+ <sub name="Font and face objects" link="fonts-and-faces.html#fonts-and-faces-objects"/>
+ <sub name="Customizing font functions" link="fonts-and-faces-custom-functions.html"/>
+ <sub name="Font objects and HarfBuzz's native OpenType implementation" link="fonts-and-faces-native-opentype.html"/>
+ <sub name="Working with OpenType Variable Fonts" link="fonts-and-faces-variable.html"/>
+ </sub>
+ <sub name="Shaping and shape plans" link="shaping-and-shape-plans.html">
+ <sub name="Shaping and buffer output" link="shaping-and-shape-plans.html#shaping-buffer-output"/>
+ <sub name="OpenType features" link="shaping-opentype-features.html"/>
+ <sub name="Shaper selection" link="shaping-shaper-selection.html"/>
+ <sub name="Plans and caching" link="shaping-plans-and-caching.html"/>
</sub>
<sub name="Clusters" link="clusters.html">
<sub name="Clusters and shaping" link="clusters.html#clusters-and-shaping"/>
@@ -57,14 +70,18 @@
<sub name="Other considerations in level 2" link="level-2.html#other-considerations-in-level-2"/>
</sub>
</sub>
- <sub name="Shaping and shape plans" link="shaping-and-shape-plans.html">
- <sub name="OpenType features" link="shaping-and-shape-plans.html#opentype-features"/>
- <sub name="Plans and caching" link="plans-and-caching.html"/>
+ <sub name="Utilities" link="utilities.html">
+ <sub name="Command-line tools" link="utilities.html#utilities-command-line-tools">
+ <sub name="hb-shape" link="utilities.html#utilities-command-line-hbshape"/>
+ <sub name="hb-view" link="utilities.html#utilities-command-line-hbview"/>
+ <sub name="hb-subset" link="utilities.html#utilities-command-line-hbsubset"/>
+ </sub>
+ <sub name="Common data types and APIs" link="utilities-common-types-apis.html"/>
+ <sub name="UCDN" link="utilities-ucdn.html"/>
</sub>
- <sub name="Glyph information" link="pt01.html#glyph-information"/>
</sub>
<sub name="Reference manual" link="pt02.html">
- <sub name="Core API" link="ch09.html">
+ <sub name="Core API" link="ch11.html">
<sub name="hb-blob" link="harfbuzz-hb-blob.html"/>
<sub name="hb-buffer" link="harfbuzz-hb-buffer.html"/>
<sub name="hb-common" link="harfbuzz-hb-common.html"/>
@@ -78,7 +95,7 @@
<sub name="hb-unicode" link="harfbuzz-hb-unicode.html"/>
<sub name="hb-version" link="harfbuzz-hb-version.html"/>
</sub>
- <sub name="OpenType API" link="ch10.html">
+ <sub name="OpenType API" link="ch12.html">
<sub name="hb-ot-color" link="harfbuzz-hb-ot-color.html"/>
<sub name="hb-ot-font" link="harfbuzz-hb-ot-font.html"/>
<sub name="hb-ot-layout" link="harfbuzz-hb-ot-layout.html"/>
@@ -87,10 +104,10 @@
<sub name="hb-ot-shape" link="harfbuzz-hb-ot-shape.html"/>
<sub name="hb-ot-var" link="harfbuzz-hb-ot-var.html"/>
</sub>
- <sub name="Apple Advanced Typography API" link="ch11.html">
+ <sub name="Apple Advanced Typography API" link="ch13.html">
<sub name="hb-aat-layout" link="harfbuzz-hb-aat-layout.html"/>
</sub>
- <sub name="Integration API" link="ch12.html">
+ <sub name="Integration API" link="ch14.html">
<sub name="hb-coretext" link="harfbuzz-hb-coretext.html"/>
<sub name="hb-ft" link="harfbuzz-hb-ft.html"/>
<sub name="hb-glib" link="harfbuzz-hb-glib.html"/>
@@ -101,6 +118,10 @@
</sub>
<sub name="API Index" link="api-index-full.html"/>
<sub name="Index of deprecated API" link="deprecated-api-index.html"/>
+ <sub name="Index of new symbols in 2.6.0" link="api-index-2-6-0.html"/>
+ <sub name="Index of new symbols in 2.5.0" link="api-index-2-5-0.html"/>
+ <sub name="Index of new symbols in 2.4.0" link="api-index-2-4-0.html"/>
+ <sub name="Index of new symbols in 2.3.0" link="api-index-2-3-0.html"/>
<sub name="Index of new symbols in 2.2.0" link="api-index-2-2-0.html"/>
<sub name="Index of new symbols in 2.1.0" link="api-index-2-1-0.html"/>
<sub name="Index of new symbols in 2.0.0" link="api-index-2-0-0.html"/>
@@ -115,7 +136,6 @@
<sub name="Index of new symbols in 1.5.0" link="api-index-1-5-0.html"/>
<sub name="Index of new symbols in 1.4.3" link="api-index-1-4-3.html"/>
<sub name="Index of new symbols in 1.4.2" link="api-index-1-4-2.html"/>
- <sub name="Index of new symbols in 1.4.0" link="api-index-1-4-0.html"/>
<sub name="Index of new symbols in 1.3.3" link="api-index-1-3-3.html"/>
<sub name="Index of new symbols in 1.2.3" link="api-index-1-2-3.html"/>
<sub name="Index of new symbols in 1.1.3" link="api-index-1-1-3.html"/>
@@ -217,11 +237,11 @@
<keyword type="macro" name="HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT" link="harfbuzz-hb-buffer.html#HB-BUFFER-REPLACEMENT-CODEPOINT-DEFAULT:CAPS" since="0.9.31"/>
<keyword type="typedef" name="hb_buffer_t" link="harfbuzz-hb-buffer.html#hb-buffer-t"/>
<keyword type="enum" name="enum hb_glyph_flags_t" link="harfbuzz-hb-buffer.html#hb-glyph-flags-t" since="1.5.0"/>
- <keyword type="struct" name="hb_glyph_position_t" link="harfbuzz-hb-buffer.html#hb-glyph-position-t"/>
+ <keyword type="struct" name="hb_glyph_position_t" link="harfbuzz-hb-buffer.html#hb-glyph-position-t-struct"/>
<keyword type="enum" name="enum hb_buffer_content_type_t" link="harfbuzz-hb-buffer.html#hb-buffer-content-type-t"/>
<keyword type="enum" name="enum hb_buffer_flags_t" link="harfbuzz-hb-buffer.html#hb-buffer-flags-t" since="0.9.20"/>
<keyword type="enum" name="enum hb_buffer_cluster_level_t" link="harfbuzz-hb-buffer.html#hb-buffer-cluster-level-t" since="0.9.42"/>
- <keyword type="struct" name="hb_segment_properties_t" link="harfbuzz-hb-buffer.html#hb-segment-properties-t"/>
+ <keyword type="struct" name="hb_segment_properties_t" link="harfbuzz-hb-buffer.html#hb-segment-properties-t-struct"/>
<keyword type="enum" name="enum hb_buffer_serialize_format_t" link="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-t" since="0.9.2"/>
<keyword type="enum" name="enum hb_buffer_serialize_flags_t" link="harfbuzz-hb-buffer.html#hb-buffer-serialize-flags-t" since="0.9.20"/>
<keyword type="enum" name="enum hb_buffer_diff_flags_t" link="harfbuzz-hb-buffer.html#hb-buffer-diff-flags-t"/>
@@ -253,13 +273,13 @@
<keyword type="typedef" name="hb_codepoint_t" link="harfbuzz-hb-common.html#hb-codepoint-t"/>
<keyword type="enum" name="enum hb_direction_t" link="harfbuzz-hb-common.html#hb-direction-t"/>
<keyword type="typedef" name="hb_language_t" link="harfbuzz-hb-common.html#hb-language-t"/>
- <keyword type="struct" name="hb_feature_t" link="harfbuzz-hb-common.html#hb-feature-t"/>
+ <keyword type="struct" name="hb_feature_t" link="harfbuzz-hb-common.html#hb-feature-t-struct"/>
<keyword type="struct" name="hb_variation_t" link="harfbuzz-hb-common.html#hb-variation-t" since="1.4.2"/>
<keyword type="typedef" name="hb_mask_t" link="harfbuzz-hb-common.html#hb-mask-t"/>
<keyword type="typedef" name="hb_position_t" link="harfbuzz-hb-common.html#hb-position-t"/>
<keyword type="typedef" name="hb_tag_t" link="harfbuzz-hb-common.html#hb-tag-t"/>
<keyword type="enum" name="enum hb_script_t" link="harfbuzz-hb-common.html#hb-script-t"/>
- <keyword type="struct" name="hb_user_data_key_t" link="harfbuzz-hb-common.html#hb-user-data-key-t"/>
+ <keyword type="struct" name="hb_user_data_key_t" link="harfbuzz-hb-common.html#hb-user-data-key-t-struct"/>
<keyword type="union" name="hb_var_int_t" link="harfbuzz-hb-common.html#hb-var-int-t"/>
<keyword type="macro" name="HB_TAG_NONE" link="harfbuzz-hb-common.html#HB-TAG-NONE:CAPS"/>
<keyword type="macro" name="HB_TAG_MAX" link="harfbuzz-hb-common.html#HB-TAG-MAX:CAPS"/>
@@ -269,18 +289,14 @@
<keyword type="macro" name="HB_FEATURE_GLOBAL_START" link="harfbuzz-hb-common.html#HB-FEATURE-GLOBAL-START:CAPS" since="2.0.0"/>
<keyword type="function" name="hb_font_get_glyph_func_t ()" link="harfbuzz-hb-deprecated.html#hb-font-get-glyph-func-t" deprecated=""/>
<keyword type="function" name="hb_ot_layout_table_find_script ()" link="harfbuzz-hb-deprecated.html#hb-ot-layout-table-find-script"/>
- <keyword type="function" name="hb_font_funcs_set_glyph_h_kerning_func ()" link="harfbuzz-hb-deprecated.html#hb-font-funcs-set-glyph-h-kerning-func" deprecated="2.0.0" since="0.9.2"/>
<keyword type="function" name="hb_font_funcs_set_glyph_v_kerning_func ()" link="harfbuzz-hb-deprecated.html#hb-font-funcs-set-glyph-v-kerning-func" deprecated="2.0.0" since="0.9.2"/>
- <keyword type="function" name="hb_font_get_glyph_h_kerning ()" link="harfbuzz-hb-deprecated.html#hb-font-get-glyph-h-kerning" deprecated="2.0.0" since="0.9.2"/>
- <keyword type="function" name="hb_font_get_glyph_kerning_for_direction ()" link="harfbuzz-hb-deprecated.html#hb-font-get-glyph-kerning-for-direction" deprecated="2.0.0" since="0.9.2"/>
- <keyword type="function" name="hb_font_get_glyph_kerning_func_t ()" link="harfbuzz-hb-deprecated.html#hb-font-get-glyph-kerning-func-t" deprecated=""/>
<keyword type="function" name="hb_font_get_glyph_v_kerning ()" link="harfbuzz-hb-deprecated.html#hb-font-get-glyph-v-kerning" deprecated="2.0.0" since="0.9.2"/>
<keyword type="macro" name="HB_BUFFER_FLAGS_DEFAULT" link="harfbuzz-hb-deprecated.html#HB-BUFFER-FLAGS-DEFAULT:CAPS" deprecated=""/>
<keyword type="macro" name="HB_BUFFER_SERIALIZE_FLAGS_DEFAULT" link="harfbuzz-hb-deprecated.html#HB-BUFFER-SERIALIZE-FLAGS-DEFAULT:CAPS" deprecated=""/>
<keyword type="macro" name="HB_SCRIPT_CANADIAN_ABORIGINAL" link="harfbuzz-hb-deprecated.html#HB-SCRIPT-CANADIAN-ABORIGINAL:CAPS" deprecated=""/>
+ <keyword type="macro" name="HB_MATH_GLYPH_PART_FLAG_EXTENDER" link="harfbuzz-hb-deprecated.html#HB-MATH-GLYPH-PART-FLAG-EXTENDER:CAPS" deprecated=""/>
<keyword type="macro" name="HB_OT_VAR_NO_AXIS_INDEX" link="harfbuzz-hb-deprecated.html#HB-OT-VAR-NO-AXIS-INDEX:CAPS" deprecated="2.2.0" since="1.4.2"/>
<keyword type="macro" name="HB_UNICODE_MAX_DECOMPOSITION_LEN" link="harfbuzz-hb-deprecated.html#HB-UNICODE-MAX-DECOMPOSITION-LEN:CAPS" deprecated="2.0.0"/>
- <keyword type="typedef" name="hb_font_get_glyph_h_kerning_func_t" link="harfbuzz-hb-deprecated.html#hb-font-get-glyph-h-kerning-func-t" deprecated=""/>
<keyword type="typedef" name="hb_font_get_glyph_v_kerning_func_t" link="harfbuzz-hb-deprecated.html#hb-font-get-glyph-v-kerning-func-t" deprecated=""/>
<keyword type="function" name="hb_face_count ()" link="harfbuzz-hb-face.html#hb-face-count" since="1.7.7"/>
<keyword type="function" name="hb_face_create ()" link="harfbuzz-hb-face.html#hb-face-create" since="0.9.2"/>
@@ -323,6 +339,7 @@
<keyword type="function" name="hb_font_funcs_set_glyph_from_name_func ()" link="harfbuzz-hb-font.html#hb-font-funcs-set-glyph-from-name-func" since="0.9.2"/>
<keyword type="function" name="hb_font_funcs_set_glyph_h_advance_func ()" link="harfbuzz-hb-font.html#hb-font-funcs-set-glyph-h-advance-func" since="0.9.2"/>
<keyword type="function" name="hb_font_funcs_set_glyph_h_advances_func ()" link="harfbuzz-hb-font.html#hb-font-funcs-set-glyph-h-advances-func" since="1.8.6"/>
+ <keyword type="function" name="hb_font_funcs_set_glyph_h_kerning_func ()" link="harfbuzz-hb-font.html#hb-font-funcs-set-glyph-h-kerning-func" since="0.9.2"/>
<keyword type="function" name="hb_font_funcs_set_glyph_h_origin_func ()" link="harfbuzz-hb-font.html#hb-font-funcs-set-glyph-h-origin-func" since="0.9.2"/>
<keyword type="function" name="hb_font_funcs_set_glyph_name_func ()" link="harfbuzz-hb-font.html#hb-font-funcs-set-glyph-name-func" since="0.9.2"/>
<keyword type="function" name="hb_font_funcs_set_glyph_v_advance_func ()" link="harfbuzz-hb-font.html#hb-font-funcs-set-glyph-v-advance-func" since="0.9.2"/>
@@ -349,7 +366,10 @@
<keyword type="function" name="hb_font_get_glyph_from_name_func_t ()" link="harfbuzz-hb-font.html#hb-font-get-glyph-from-name-func-t"/>
<keyword type="function" name="hb_font_get_glyph_h_advance ()" link="harfbuzz-hb-font.html#hb-font-get-glyph-h-advance" since="0.9.2"/>
<keyword type="function" name="hb_font_get_glyph_h_advances ()" link="harfbuzz-hb-font.html#hb-font-get-glyph-h-advances" since="1.8.6"/>
+ <keyword type="function" name="hb_font_get_glyph_h_kerning ()" link="harfbuzz-hb-font.html#hb-font-get-glyph-h-kerning" since="0.9.2"/>
<keyword type="function" name="hb_font_get_glyph_h_origin ()" link="harfbuzz-hb-font.html#hb-font-get-glyph-h-origin" since="0.9.2"/>
+ <keyword type="function" name="hb_font_get_glyph_kerning_for_direction ()" link="harfbuzz-hb-font.html#hb-font-get-glyph-kerning-for-direction" since="0.9.2"/>
+ <keyword type="function" name="hb_font_get_glyph_kerning_func_t ()" link="harfbuzz-hb-font.html#hb-font-get-glyph-kerning-func-t"/>
<keyword type="function" name="hb_font_get_glyph_name ()" link="harfbuzz-hb-font.html#hb-font-get-glyph-name" since="0.9.2"/>
<keyword type="function" name="hb_font_get_glyph_name_func_t ()" link="harfbuzz-hb-font.html#hb-font-get-glyph-name-func-t"/>
<keyword type="function" name="hb_font_get_glyph_origin_for_direction ()" link="harfbuzz-hb-font.html#hb-font-get-glyph-origin-for-direction" since="0.9.2"/>
@@ -359,6 +379,7 @@
<keyword type="function" name="hb_font_get_glyph_v_origin ()" link="harfbuzz-hb-font.html#hb-font-get-glyph-v-origin" since="0.9.2"/>
<keyword type="function" name="hb_font_get_nominal_glyph ()" link="harfbuzz-hb-font.html#hb-font-get-nominal-glyph" since="1.2.3"/>
<keyword type="function" name="hb_font_get_nominal_glyph_func_t ()" link="harfbuzz-hb-font.html#hb-font-get-nominal-glyph-func-t"/>
+ <keyword type="function" name="hb_font_get_nominal_glyphs ()" link="harfbuzz-hb-font.html#hb-font-get-nominal-glyphs" since="2.6.3"/>
<keyword type="function" name="hb_font_get_parent ()" link="harfbuzz-hb-font.html#hb-font-get-parent" since="0.9.2"/>
<keyword type="function" name="hb_font_get_ppem ()" link="harfbuzz-hb-font.html#hb-font-get-ppem" since="0.9.2"/>
<keyword type="function" name="hb_font_get_ptem ()" link="harfbuzz-hb-font.html#hb-font-get-ptem" since="0.9.2"/>
@@ -383,6 +404,7 @@
<keyword type="function" name="hb_font_set_variations ()" link="harfbuzz-hb-font.html#hb-font-set-variations" since="1.4.2"/>
<keyword type="function" name="hb_font_set_var_coords_design ()" link="harfbuzz-hb-font.html#hb-font-set-var-coords-design" since="1.4.2"/>
<keyword type="function" name="hb_font_set_var_coords_normalized ()" link="harfbuzz-hb-font.html#hb-font-set-var-coords-normalized" since="1.4.2"/>
+ <keyword type="function" name="hb_font_set_var_named_instance ()" link="harfbuzz-hb-font.html#hb-font-set-var-named-instance" since="2.6.0"/>
<keyword type="function" name="hb_font_subtract_glyph_origin_for_direction ()" link="harfbuzz-hb-font.html#hb-font-subtract-glyph-origin-for-direction" since="0.9.2"/>
<keyword type="function" name="hb_reference_table_func_t ()" link="harfbuzz-hb-font.html#hb-reference-table-func-t"/>
<keyword type="function" name="hb_font_funcs_set_font_h_extents_func ()" link="harfbuzz-hb-font.html#hb-font-funcs-set-font-h-extents-func" since="1.1.2"/>
@@ -394,6 +416,7 @@
<keyword type="typedef" name="hb_font_funcs_t" link="harfbuzz-hb-font.html#hb-font-funcs-t"/>
<keyword type="typedef" name="hb_font_get_glyph_h_advance_func_t" link="harfbuzz-hb-font.html#hb-font-get-glyph-h-advance-func-t"/>
<keyword type="typedef" name="hb_font_get_glyph_h_advances_func_t" link="harfbuzz-hb-font.html#hb-font-get-glyph-h-advances-func-t"/>
+ <keyword type="typedef" name="hb_font_get_glyph_h_kerning_func_t" link="harfbuzz-hb-font.html#hb-font-get-glyph-h-kerning-func-t"/>
<keyword type="typedef" name="hb_font_get_glyph_h_origin_func_t" link="harfbuzz-hb-font.html#hb-font-get-glyph-h-origin-func-t"/>
<keyword type="typedef" name="hb_font_get_glyph_v_advance_func_t" link="harfbuzz-hb-font.html#hb-font-get-glyph-v-advance-func-t"/>
<keyword type="typedef" name="hb_font_get_glyph_v_advances_func_t" link="harfbuzz-hb-font.html#hb-font-get-glyph-v-advances-func-t"/>
@@ -503,10 +526,10 @@
<keyword type="macro" name="HB_VERSION_MINOR" link="harfbuzz-hb-version.html#HB-VERSION-MINOR:CAPS"/>
<keyword type="macro" name="HB_VERSION_STRING" link="harfbuzz-hb-version.html#HB-VERSION-STRING:CAPS"/>
<keyword type="macro" name="HB_COLOR()" link="harfbuzz-hb-ot-color.html#HB-COLOR:CAPS"/>
- <keyword type="macro" name="hb_color_get_alpha()" link="harfbuzz-hb-ot-color.html#hb-color-get-alpha" since="2.1.0"/>
- <keyword type="macro" name="hb_color_get_blue()" link="harfbuzz-hb-ot-color.html#hb-color-get-blue" since="2.1.0"/>
- <keyword type="macro" name="hb_color_get_green()" link="harfbuzz-hb-ot-color.html#hb-color-get-green" since="2.1.0"/>
- <keyword type="macro" name="hb_color_get_red()" link="harfbuzz-hb-ot-color.html#hb-color-get-red" since="2.1.0"/>
+ <keyword type="function" name="hb_color_get_alpha ()" link="harfbuzz-hb-ot-color.html#hb-color-get-alpha" since="2.1.0"/>
+ <keyword type="function" name="hb_color_get_blue ()" link="harfbuzz-hb-ot-color.html#hb-color-get-blue" since="2.1.0"/>
+ <keyword type="function" name="hb_color_get_green ()" link="harfbuzz-hb-ot-color.html#hb-color-get-green" since="2.1.0"/>
+ <keyword type="function" name="hb_color_get_red ()" link="harfbuzz-hb-ot-color.html#hb-color-get-red" since="2.1.0"/>
<keyword type="function" name="hb_ot_color_glyph_get_layers ()" link="harfbuzz-hb-ot-color.html#hb-ot-color-glyph-get-layers" since="2.1.0"/>
<keyword type="function" name="hb_ot_color_glyph_reference_png ()" link="harfbuzz-hb-ot-color.html#hb-ot-color-glyph-reference-png" since="2.1.0"/>
<keyword type="function" name="hb_ot_color_glyph_reference_svg ()" link="harfbuzz-hb-ot-color.html#hb-ot-color-glyph-reference-svg" since="2.1.0"/>
@@ -533,6 +556,7 @@
<keyword type="function" name="hb_ot_layout_feature_get_name_ids ()" link="harfbuzz-hb-ot-layout.html#hb-ot-layout-feature-get-name-ids" since="2.0.0"/>
<keyword type="function" name="hb_ot_layout_feature_with_variations_get_lookups ()" link="harfbuzz-hb-ot-layout.html#hb-ot-layout-feature-with-variations-get-lookups"/>
<keyword type="function" name="hb_ot_layout_get_attach_points ()" link="harfbuzz-hb-ot-layout.html#hb-ot-layout-get-attach-points"/>
+ <keyword type="function" name="hb_ot_layout_get_baseline ()" link="harfbuzz-hb-ot-layout.html#hb-ot-layout-get-baseline" since="2.6.0"/>
<keyword type="function" name="hb_ot_layout_get_glyph_class ()" link="harfbuzz-hb-ot-layout.html#hb-ot-layout-get-glyph-class" since="0.9.7"/>
<keyword type="function" name="hb_ot_layout_get_glyphs_in_class ()" link="harfbuzz-hb-ot-layout.html#hb-ot-layout-get-glyphs-in-class" since="0.9.7"/>
<keyword type="function" name="hb_ot_layout_get_ligature_carets ()" link="harfbuzz-hb-ot-layout.html#hb-ot-layout-get-ligature-carets"/>
@@ -571,6 +595,7 @@
<keyword type="macro" name="HB_OT_TAG_GPOS" link="harfbuzz-hb-ot-layout.html#HB-OT-TAG-GPOS:CAPS"/>
<keyword type="macro" name="HB_OT_TAG_GSUB" link="harfbuzz-hb-ot-layout.html#HB-OT-TAG-GSUB:CAPS"/>
<keyword type="macro" name="HB_OT_TAG_JSTF" link="harfbuzz-hb-ot-layout.html#HB-OT-TAG-JSTF:CAPS"/>
+ <keyword type="enum" name="enum hb_ot_layout_baseline_tag_t" link="harfbuzz-hb-ot-layout.html#hb-ot-layout-baseline-tag-t" since="2.6.0"/>
<keyword type="enum" name="enum hb_ot_layout_glyph_class_t" link="harfbuzz-hb-ot-layout.html#hb-ot-layout-glyph-class-t"/>
<keyword type="function" name="hb_ot_math_has_data ()" link="harfbuzz-hb-ot-math.html#hb-ot-math-has-data" since="1.3.3"/>
<keyword type="function" name="hb_ot_math_get_constant ()" link="harfbuzz-hb-ot-math.html#hb-ot-math-get-constant" since="1.3.3"/>
@@ -585,9 +610,9 @@
<keyword type="macro" name="HB_OT_MATH_SCRIPT" link="harfbuzz-hb-ot-math.html#HB-OT-MATH-SCRIPT:CAPS"/>
<keyword type="enum" name="enum hb_ot_math_constant_t" link="harfbuzz-hb-ot-math.html#hb-ot-math-constant-t" since="1.3.3"/>
<keyword type="enum" name="enum hb_ot_math_kern_t" link="harfbuzz-hb-ot-math.html#hb-ot-math-kern-t" since="1.3.3"/>
- <keyword type="struct" name="hb_ot_math_glyph_variant_t" link="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t" since="1.3.3"/>
+ <keyword type="struct" name="hb_ot_math_glyph_variant_t" link="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t-struct"/>
<keyword type="enum" name="enum hb_ot_math_glyph_part_flags_t" link="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-flags-t" since="1.3.3"/>
- <keyword type="struct" name="hb_ot_math_glyph_part_t" link="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t" since="1.3.3"/>
+ <keyword type="struct" name="hb_ot_math_glyph_part_t" link="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t-struct"/>
<keyword type="function" name="hb_ot_name_list_names ()" link="harfbuzz-hb-ot-name.html#hb-ot-name-list-names" since="2.1.0"/>
<keyword type="function" name="hb_ot_name_get_utf16 ()" link="harfbuzz-hb-ot-name.html#hb-ot-name-get-utf16" since="2.1.0"/>
<keyword type="function" name="hb_ot_name_get_utf32 ()" link="harfbuzz-hb-ot-name.html#hb-ot-name-get-utf32" since="2.1.0"/>
@@ -640,6 +665,72 @@
<keyword type="function" name="hb_glib_script_from_script ()" link="harfbuzz-hb-glib.html#hb-glib-script-from-script"/>
<keyword type="function" name="hb_glib_script_to_script ()" link="harfbuzz-hb-glib.html#hb-glib-script-to-script"/>
<keyword type="function" name="hb_glib_blob_create ()" link="harfbuzz-hb-glib.html#hb-glib-blob-create" since="0.9.38"/>
+ <keyword type="function" name="hb_gobject_blob_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-blob-get-type" since="0.9.2"/>
+ <keyword type="function" name="hb_gobject_buffer_content_type_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-content-type-get-type"/>
+ <keyword type="function" name="hb_gobject_buffer_diff_flags_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-diff-flags-get-type"/>
+ <keyword type="function" name="hb_gobject_buffer_flags_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-flags-get-type"/>
+ <keyword type="function" name="hb_gobject_buffer_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-get-type" since="0.9.2"/>
+ <keyword type="function" name="hb_gobject_buffer_serialize_flags_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-serialize-flags-get-type"/>
+ <keyword type="function" name="hb_gobject_buffer_serialize_format_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-serialize-format-get-type"/>
+ <keyword type="function" name="hb_gobject_direction_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-direction-get-type"/>
+ <keyword type="function" name="hb_gobject_face_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-face-get-type" since="0.9.2"/>
+ <keyword type="function" name="hb_gobject_font_funcs_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-font-funcs-get-type" since="0.9.2"/>
+ <keyword type="function" name="hb_gobject_font_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-font-get-type" since="0.9.2"/>
+ <keyword type="function" name="hb_gobject_glyph_flags_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-glyph-flags-get-type"/>
+ <keyword type="function" name="hb_gobject_map_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-map-get-type"/>
+ <keyword type="function" name="hb_gobject_memory_mode_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-memory-mode-get-type"/>
+ <keyword type="function" name="hb_gobject_ot_color_palette_flags_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-ot-color-palette-flags-get-type"/>
+ <keyword type="function" name="hb_gobject_ot_layout_glyph_class_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-ot-layout-glyph-class-get-type"/>
+ <keyword type="function" name="hb_gobject_ot_math_constant_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-ot-math-constant-get-type"/>
+ <keyword type="function" name="hb_gobject_ot_math_glyph_part_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-ot-math-glyph-part-get-type"/>
+ <keyword type="function" name="hb_gobject_ot_math_glyph_part_flags_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-ot-math-glyph-part-flags-get-type"/>
+ <keyword type="function" name="hb_gobject_ot_math_glyph_variant_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-ot-math-glyph-variant-get-type"/>
+ <keyword type="function" name="hb_gobject_ot_math_kern_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-ot-math-kern-get-type"/>
+ <keyword type="function" name="hb_gobject_script_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-script-get-type"/>
+ <keyword type="function" name="hb_gobject_shape_plan_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-shape-plan-get-type"/>
+ <keyword type="function" name="hb_gobject_unicode_combining_class_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-unicode-combining-class-get-type"/>
+ <keyword type="function" name="hb_gobject_unicode_funcs_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-unicode-funcs-get-type" since="0.9.2"/>
+ <keyword type="function" name="hb_gobject_unicode_general_category_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-unicode-general-category-get-type"/>
+ <keyword type="function" name="hb_gobject_buffer_cluster_level_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-cluster-level-get-type"/>
+ <keyword type="function" name="hb_gobject_feature_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-feature-get-type"/>
+ <keyword type="function" name="hb_gobject_glyph_info_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-glyph-info-get-type"/>
+ <keyword type="function" name="hb_gobject_glyph_position_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-glyph-position-get-type"/>
+ <keyword type="function" name="hb_gobject_segment_properties_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-segment-properties-get-type"/>
+ <keyword type="function" name="hb_gobject_set_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-set-get-type"/>
+ <keyword type="function" name="hb_gobject_user_data_key_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-user-data-key-get-type"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_BLOB" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BLOB:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_BUFFER" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-CONTENT-TYPE:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_BUFFER_DIFF_FLAGS" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-DIFF-FLAGS:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_BUFFER_FLAGS" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-FLAGS:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FLAGS" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-SERIALIZE-FLAGS:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FORMAT" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-SERIALIZE-FORMAT:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_DIRECTION" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-DIRECTION:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_FACE" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FACE:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_FONT" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FONT:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_FONT_FUNCS" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FONT-FUNCS:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_GLYPH_FLAGS" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-GLYPH-FLAGS:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_MAP" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-MAP:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_MEMORY_MODE" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-MEMORY-MODE:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_OT_COLOR_PALETTE_FLAGS" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-COLOR-PALETTE-FLAGS:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_OT_LAYOUT_GLYPH_CLASS" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-LAYOUT-GLYPH-CLASS:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_OT_MATH_CONSTANT" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-CONSTANT:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-GLYPH-PART:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART_FLAGS" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-GLYPH-PART-FLAGS:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_OT_MATH_GLYPH_VARIANT" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-GLYPH-VARIANT:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_OT_MATH_KERN" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-KERN:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_SCRIPT" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SCRIPT:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_SHAPE_PLAN" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SHAPE-PLAN:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-COMBINING-CLASS:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_UNICODE_FUNCS" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-FUNCS:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-GENERAL-CATEGORY:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-CLUSTER-LEVEL:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_FEATURE" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FEATURE:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_GLYPH_INFO" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-GLYPH-INFO:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_GLYPH_POSITION" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-GLYPH-POSITION:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_SEGMENT_PROPERTIES" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SEGMENT-PROPERTIES:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_SET" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SET:CAPS"/>
+ <keyword type="macro" name="HB_GOBJECT_TYPE_USER_DATA_KEY" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-USER-DATA-KEY:CAPS"/>
<keyword type="function" name="hb_graphite2_face_get_gr_face ()" link="harfbuzz-hb-graphite2.html#hb-graphite2-face-get-gr-face"/>
<keyword type="macro" name="HB_GRAPHITE2_TAG_SILF" link="harfbuzz-hb-graphite2.html#HB-GRAPHITE2-TAG-SILF:CAPS"/>
<keyword type="function" name="hb_icu_get_unicode_funcs ()" link="harfbuzz-hb-icu.html#hb-icu-get-unicode-funcs"/>
@@ -788,6 +879,14 @@
<keyword type="constant" name="HB_OT_COLOR_PALETTE_FLAG_DEFAULT" link="harfbuzz-hb-ot-color.html#HB-OT-COLOR-PALETTE-FLAG-DEFAULT:CAPS"/>
<keyword type="constant" name="HB_OT_COLOR_PALETTE_FLAG_USABLE_WITH_LIGHT_BACKGROUND" link="harfbuzz-hb-ot-color.html#HB-OT-COLOR-PALETTE-FLAG-USABLE-WITH-LIGHT-BACKGROUND:CAPS"/>
<keyword type="constant" name="HB_OT_COLOR_PALETTE_FLAG_USABLE_WITH_DARK_BACKGROUND" link="harfbuzz-hb-ot-color.html#HB-OT-COLOR-PALETTE-FLAG-USABLE-WITH-DARK-BACKGROUND:CAPS"/>
+ <keyword type="constant" name="HB_OT_LAYOUT_BASELINE_TAG_ROMAN" link="harfbuzz-hb-ot-layout.html#HB-OT-LAYOUT-BASELINE-TAG-ROMAN:CAPS"/>
+ <keyword type="constant" name="HB_OT_LAYOUT_BASELINE_TAG_HANGING" link="harfbuzz-hb-ot-layout.html#HB-OT-LAYOUT-BASELINE-TAG-HANGING:CAPS"/>
+ <keyword type="constant" name="HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_BOTTOM_OR_LEFT" link="harfbuzz-hb-ot-layout.html#HB-OT-LAYOUT-BASELINE-TAG-IDEO-FACE-BOTTOM-OR-LEFT:CAPS"/>
+ <keyword type="constant" name="HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_TOP_OR_RIGHT" link="harfbuzz-hb-ot-layout.html#HB-OT-LAYOUT-BASELINE-TAG-IDEO-FACE-TOP-OR-RIGHT:CAPS"/>
+ <keyword type="constant" name="HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_BOTTOM_OR_LEFT" link="harfbuzz-hb-ot-layout.html#HB-OT-LAYOUT-BASELINE-TAG-IDEO-EMBOX-BOTTOM-OR-LEFT:CAPS"/>
+ <keyword type="constant" name="HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_TOP_OR_RIGHT" link="harfbuzz-hb-ot-layout.html#HB-OT-LAYOUT-BASELINE-TAG-IDEO-EMBOX-TOP-OR-RIGHT:CAPS"/>
+ <keyword type="constant" name="HB_OT_LAYOUT_BASELINE_TAG_MATH" link="harfbuzz-hb-ot-layout.html#HB-OT-LAYOUT-BASELINE-TAG-MATH:CAPS"/>
+ <keyword type="constant" name="_HB_OT_LAYOUT_BASELINE_TAG_MAX_VALUE" link="harfbuzz-hb-ot-layout.html#HB-OT-LAYOUT-BASELINE-TAG-MAX-VALUE:CAPS"/>
<keyword type="constant" name="HB_OT_LAYOUT_GLYPH_CLASS_UNCLASSIFIED" link="harfbuzz-hb-ot-layout.html#HB-OT-LAYOUT-GLYPH-CLASS-UNCLASSIFIED:CAPS"/>
<keyword type="constant" name="HB_OT_LAYOUT_GLYPH_CLASS_BASE_GLYPH" link="harfbuzz-hb-ot-layout.html#HB-OT-LAYOUT-GLYPH-CLASS-BASE-GLYPH:CAPS"/>
<keyword type="constant" name="HB_OT_LAYOUT_GLYPH_CLASS_LIGATURE" link="harfbuzz-hb-ot-layout.html#HB-OT-LAYOUT-GLYPH-CLASS-LIGATURE:CAPS"/>
@@ -853,7 +952,7 @@
<keyword type="constant" name="HB_OT_MATH_KERN_TOP_LEFT" link="harfbuzz-hb-ot-math.html#HB-OT-MATH-KERN-TOP-LEFT:CAPS"/>
<keyword type="constant" name="HB_OT_MATH_KERN_BOTTOM_RIGHT" link="harfbuzz-hb-ot-math.html#HB-OT-MATH-KERN-BOTTOM-RIGHT:CAPS"/>
<keyword type="constant" name="HB_OT_MATH_KERN_BOTTOM_LEFT" link="harfbuzz-hb-ot-math.html#HB-OT-MATH-KERN-BOTTOM-LEFT:CAPS"/>
- <keyword type="constant" name="HB_MATH_GLYPH_PART_FLAG_EXTENDER" link="harfbuzz-hb-ot-math.html#HB-MATH-GLYPH-PART-FLAG-EXTENDER:CAPS"/>
+ <keyword type="constant" name="HB_OT_MATH_GLYPH_PART_FLAG_EXTENDER" link="harfbuzz-hb-ot-math.html#HB-OT-MATH-GLYPH-PART-FLAG-EXTENDER:CAPS"/>
<keyword type="constant" name="HB_OT_VAR_AXIS_FLAG_HIDDEN" link="harfbuzz-hb-ot-var.html#HB-OT-VAR-AXIS-FLAG-HIDDEN:CAPS"/>
<keyword type="constant" name="_HB_OT_VAR_AXIS_FLAG_MAX_VALUE" link="harfbuzz-hb-ot-var.html#HB-OT-VAR-AXIS-FLAG-MAX-VALUE:CAPS"/>
<keyword type="constant" name="HB_AAT_LAYOUT_FEATURE_TYPE_INVALID" link="harfbuzz-hb-aat-layout.html#HB-AAT-LAYOUT-FEATURE-TYPE-INVALID:CAPS"/>
@@ -1149,12 +1248,23 @@
<keyword type="constant" name="HB_AAT_LAYOUT_FEATURE_SELECTOR_DEFAULT_CJK_ROMAN" link="harfbuzz-hb-aat-layout.html#HB-AAT-LAYOUT-FEATURE-SELECTOR-DEFAULT-CJK-ROMAN:CAPS"/>
<keyword type="constant" name="HB_AAT_LAYOUT_FEATURE_SELECTOR_FULL_WIDTH_CJK_ROMAN" link="harfbuzz-hb-aat-layout.html#HB-AAT-LAYOUT-FEATURE-SELECTOR-FULL-WIDTH-CJK-ROMAN:CAPS"/>
<keyword type="constant" name="_HB_AAT_LAYOUT_FEATURE_SELECTOR_MAX_VALUE" link="harfbuzz-hb-aat-layout.html#HB-AAT-LAYOUT-FEATURE-SELECTOR-MAX-VALUE:CAPS"/>
- <keyword type="member" name="hb-glyph-position-t.x-advance" link="harfbuzz-hb-buffer.html#hb-glyph-position-t.x-advance"/>
- <keyword type="member" name="hb-glyph-position-t.y-advance" link="harfbuzz-hb-buffer.html#hb-glyph-position-t.y-advance"/>
- <keyword type="member" name="hb-glyph-position-t.x-offset" link="harfbuzz-hb-buffer.html#hb-glyph-position-t.x-offset"/>
- <keyword type="member" name="hb-glyph-position-t.y-offset" link="harfbuzz-hb-buffer.html#hb-glyph-position-t.y-offset"/>
- <keyword type="member" name="hb-segment-properties-t.direction" link="harfbuzz-hb-buffer.html#hb-segment-properties-t.direction"/>
- <keyword type="member" name="hb-segment-properties-t.script" link="harfbuzz-hb-buffer.html#hb-segment-properties-t.script"/>
- <keyword type="member" name="hb-segment-properties-t.language" link="harfbuzz-hb-buffer.html#hb-segment-properties-t.language"/>
+ <keyword type="member" name="hb-glyph-position-t-struct.x-advance" link="harfbuzz-hb-buffer.html#hb-glyph-position-t-struct.x-advance"/>
+ <keyword type="member" name="hb-glyph-position-t-struct.y-advance" link="harfbuzz-hb-buffer.html#hb-glyph-position-t-struct.y-advance"/>
+ <keyword type="member" name="hb-glyph-position-t-struct.x-offset" link="harfbuzz-hb-buffer.html#hb-glyph-position-t-struct.x-offset"/>
+ <keyword type="member" name="hb-glyph-position-t-struct.y-offset" link="harfbuzz-hb-buffer.html#hb-glyph-position-t-struct.y-offset"/>
+ <keyword type="member" name="hb-segment-properties-t-struct.direction" link="harfbuzz-hb-buffer.html#hb-segment-properties-t-struct.direction"/>
+ <keyword type="member" name="hb-segment-properties-t-struct.script" link="harfbuzz-hb-buffer.html#hb-segment-properties-t-struct.script"/>
+ <keyword type="member" name="hb-segment-properties-t-struct.language" link="harfbuzz-hb-buffer.html#hb-segment-properties-t-struct.language"/>
+ <keyword type="member" name="hb-feature-t-struct.tag" link="harfbuzz-hb-common.html#hb-feature-t-struct.tag"/>
+ <keyword type="member" name="hb-feature-t-struct.value" link="harfbuzz-hb-common.html#hb-feature-t-struct.value"/>
+ <keyword type="member" name="hb-feature-t-struct.start" link="harfbuzz-hb-common.html#hb-feature-t-struct.start"/>
+ <keyword type="member" name="hb-feature-t-struct.end" link="harfbuzz-hb-common.html#hb-feature-t-struct.end"/>
+ <keyword type="member" name="hb-ot-math-glyph-variant-t-struct.glyph" link="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t-struct.glyph"/>
+ <keyword type="member" name="hb-ot-math-glyph-variant-t-struct.advance" link="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t-struct.advance"/>
+ <keyword type="member" name="hb-ot-math-glyph-part-t-struct.glyph" link="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t-struct.glyph"/>
+ <keyword type="member" name="hb-ot-math-glyph-part-t-struct.start-connector-length" link="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t-struct.start-connector-length"/>
+ <keyword type="member" name="hb-ot-math-glyph-part-t-struct.end-connector-length" link="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t-struct.end-connector-length"/>
+ <keyword type="member" name="hb-ot-math-glyph-part-t-struct.full-advance" link="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t-struct.full-advance"/>
+ <keyword type="member" name="hb-ot-math-glyph-part-t-struct.flags" link="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t-struct.flags"/>
</functions>
</book>
diff --git a/docs/html/index.html b/docs/html/index.html
index c2fcb4c..12cfdee 100644
--- a/docs/html/index.html
+++ b/docs/html/index.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>HarfBuzz Manual: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
-<meta name="description" content="HarfBuzz HarfBuzz is an OpenType text shaping engine. Using the HarfBuzz library allows programs to convert a sequence of Unicode input into properly formatted and positioned glyph output—for any writing system and language. The canonical source-code tree is available at github.com/harfbuzz/harfbuzz and is also available at cgit.freedesktop.org/harfbuzz. See for release tarballs.">
+<meta name="description" content="HarfBuzz HarfBuzz is an OpenType text shaping engine. Using the HarfBuzz library allows programs to convert a sequence of Unicode input into properly formatted and positioned glyph output—for any writing system and language. The canonical source-code tree is available at github.com/harfbuzz/harfbuzz. See for release tarballs.">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="next" href="pt01.html" title="Part I. User's manual">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
@@ -27,9 +27,7 @@
</p>
<p>
The canonical source-code tree is available at
- <a class="ulink" href="https://github.com/harfbuzz/harfbuzz" target="_top">github.com/harfbuzz/harfbuzz</a>
- and is also available at
- <a class="ulink" href="http://cgit.freedesktop.org/harfbuzz/" target="_top">cgit.freedesktop.org/harfbuzz</a>.
+ <a class="ulink" href="https://github.com/harfbuzz/harfbuzz" target="_top">github.com/harfbuzz/harfbuzz</a>.
See <a class="xref" href="install-harfbuzz.html#download" title="Downloading HarfBuzz">Downloading HarfBuzz</a> for
release tarballs.
</p>
@@ -76,19 +74,34 @@
<dt><span class="section"><a href="graphite-shaping.html">Graphite shaping</a></span></dt>
<dt><span class="section"><a href="aat-shaping.html">AAT shaping</a></span></dt>
</dl></dd>
+<dt><span class="chapter"><a href="object-model.html">The HarfBuzz object model</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="object-model.html#object-model-intro">An overview of data types in HarfBuzz</a></span></dt>
+<dt><span class="section"><a href="object-model-object-types.html">Objects in HarfBuzz</a></span></dt>
+<dt><span class="section"><a href="object-model-lifecycle.html">Object lifecycle management</a></span></dt>
+<dt><span class="section"><a href="object-model-user-data.html">User data</a></span></dt>
+<dt><span class="section"><a href="object-model-blobs.html">Blobs</a></span></dt>
+</dl></dd>
<dt><span class="chapter"><a href="buffers-language-script-and-direction.html">Buffers, language, script and direction</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="buffers-language-script-and-direction.html#creating-and-destroying-buffers">Creating and destroying buffers</a></span></dt>
<dt><span class="section"><a href="adding-text-to-the-buffer.html">Adding text to the buffer</a></span></dt>
<dt><span class="section"><a href="setting-buffer-properties.html">Setting buffer properties</a></span></dt>
-<dt><span class="section"><a href="what-about-the-other-scripts.html">What about the other scripts?</a></span></dt>
<dt><span class="section"><a href="customizing-unicode-functions.html">Customizing Unicode functions</a></span></dt>
</dl></dd>
-<dt><span class="chapter"><a href="fonts-and-faces.html">Fonts and faces</a></span></dt>
+<dt><span class="chapter"><a href="fonts-and-faces.html">Fonts, faces, and output</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="fonts-and-faces.html#fonts-and-faces-objects">Font and face objects</a></span></dt>
+<dt><span class="section"><a href="fonts-and-faces-custom-functions.html">Customizing font functions</a></span></dt>
+<dt><span class="section"><a href="fonts-and-faces-native-opentype.html">Font objects and HarfBuzz's native OpenType implementation</a></span></dt>
+<dt><span class="section"><a href="fonts-and-faces-variable.html">Working with OpenType Variable Fonts</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="shaping-and-shape-plans.html">Shaping and shape plans</a></span></dt>
<dd><dl>
-<dt><span class="section"><a href="fonts-and-faces.html#using-freetype">Using FreeType</a></span></dt>
-<dt><span class="section"><a href="using-harfbuzzs-native-opentype-implementation.html">Using HarfBuzz's native OpenType implementation</a></span></dt>
-<dt><span class="section"><a href="using-your-own-font-functions.html">Using your own font functions</a></span></dt>
+<dt><span class="section"><a href="shaping-and-shape-plans.html#shaping-buffer-output">Shaping and buffer output</a></span></dt>
+<dt><span class="section"><a href="shaping-opentype-features.html">OpenType features</a></span></dt>
+<dt><span class="section"><a href="shaping-shaper-selection.html">Shaper selection</a></span></dt>
+<dt><span class="section"><a href="shaping-plans-and-caching.html">Plans and caching</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="clusters.html">Clusters</a></span></dt>
<dd><dl>
@@ -104,15 +117,21 @@
<dt><span class="section"><a href="level-2.html#other-considerations-in-level-2">Other considerations in level 2</a></span></dt>
</dl></dd>
</dl></dd>
-<dt><span class="chapter"><a href="shaping-and-shape-plans.html">Shaping and shape plans</a></span></dt>
+<dt><span class="chapter"><a href="utilities.html">Utilities</a></span></dt>
<dd><dl>
-<dt><span class="section"><a href="shaping-and-shape-plans.html#opentype-features">OpenType features</a></span></dt>
-<dt><span class="section"><a href="plans-and-caching.html">Plans and caching</a></span></dt>
+<dt><span class="section"><a href="utilities.html#utilities-command-line-tools">Command-line tools</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="utilities.html#utilities-command-line-hbshape">hb-shape</a></span></dt>
+<dt><span class="section"><a href="utilities.html#utilities-command-line-hbview">hb-view</a></span></dt>
+<dt><span class="section"><a href="utilities.html#utilities-command-line-hbsubset">hb-subset</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="utilities-common-types-apis.html">Common data types and APIs</a></span></dt>
+<dt><span class="section"><a href="utilities-ucdn.html">UCDN</a></span></dt>
</dl></dd>
</dl></dd>
<dt><span class="part"><a href="pt02.html">II. Reference manual</a></span></dt>
<dd><dl>
-<dt><span class="chapter"><a href="ch09.html">Core API</a></span></dt>
+<dt><span class="chapter"><a href="ch11.html">Core API</a></span></dt>
<dd><dl>
<dt>
<span class="refentrytitle"><a href="harfbuzz-hb-blob.html">hb-blob</a></span><span class="refpurpose"> — Binary data containers</span>
@@ -151,7 +170,7 @@
<span class="refentrytitle"><a href="harfbuzz-hb-version.html">hb-version</a></span><span class="refpurpose"> — Information about the version of HarfBuzz in use</span>
</dt>
</dl></dd>
-<dt><span class="chapter"><a href="ch10.html">OpenType API</a></span></dt>
+<dt><span class="chapter"><a href="ch12.html">OpenType API</a></span></dt>
<dd><dl>
<dt>
<span class="refentrytitle"><a href="harfbuzz-hb-ot-color.html">hb-ot-color</a></span><span class="refpurpose"> — OpenType Color Fonts</span>
@@ -175,11 +194,11 @@
<span class="refentrytitle"><a href="harfbuzz-hb-ot-var.html">hb-ot-var</a></span><span class="refpurpose"> — OpenType Font Variations</span>
</dt>
</dl></dd>
-<dt><span class="chapter"><a href="ch11.html">Apple Advanced Typography API</a></span></dt>
+<dt><span class="chapter"><a href="ch13.html">Apple Advanced Typography API</a></span></dt>
<dd><dl><dt>
<span class="refentrytitle"><a href="harfbuzz-hb-aat-layout.html">hb-aat-layout</a></span><span class="refpurpose"> — Apple Advanced Typography Layout</span>
</dt></dl></dd>
-<dt><span class="chapter"><a href="ch12.html">Integration API</a></span></dt>
+<dt><span class="chapter"><a href="ch14.html">Integration API</a></span></dt>
<dd><dl>
<dt>
<span class="refentrytitle"><a href="harfbuzz-hb-coretext.html">hb-coretext</a></span><span class="refpurpose"> — CoreText integration</span>
diff --git a/docs/html/level-2.html b/docs/html/level-2.html
index a30f6f6..25670c2 100644
--- a/docs/html/level-2.html
+++ b/docs/html/level-2.html
@@ -7,7 +7,7 @@
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="clusters.html" title="Clusters">
<link rel="prev" href="the-distinction-between-levels-0-and-1.html" title="The distinction between levels 0 and 1">
-<link rel="next" href="shaping-and-shape-plans.html" title="Shaping and shape plans">
+<link rel="next" href="utilities.html" title="Utilities">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
@@ -17,7 +17,7 @@
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="clusters.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="the-distinction-between-levels-0-and-1.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="shaping-and-shape-plans.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="utilities.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
diff --git a/docs/html/object-model-blobs.html b/docs/html/object-model-blobs.html
new file mode 100644
index 0000000..dece05f
--- /dev/null
+++ b/docs/html/object-model-blobs.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Blobs: HarfBuzz Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="HarfBuzz Manual">
+<link rel="up" href="object-model.html" title="The HarfBuzz object model">
+<link rel="prev" href="object-model-user-data.html" title="User data">
+<link rel="next" href="buffers-language-script-and-direction.html" title="Buffers, language, script and direction">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="object-model.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="object-model-user-data.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="buffers-language-script-and-direction.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="object-model-blobs"></a>Blobs</h2></div></div></div>
+<p>
+ While most of HarfBuzz's object types are specific to the
+ shaping process, <span class="emphasis"><em>blobs</em></span> are somewhat
+ different.
+ </p>
+<p>
+ Blobs are an abstraction desgined to negotiate lifecycle and
+ permissions for raw pieces of data. For example, when you load
+ the raw font data into memory and want to pass it to HarfBuzz,
+ you do so in a <code class="literal">hb_blob_t</code> wrapper.
+ </p>
+<p>
+ This allows you to take advantage of HarffBuzz's
+ reference-counting and <code class="function">destroy</code>
+ callbacks. If you allocated the memory for the data using
+ <code class="function">malloc()</code>, you would create the blob using
+ </p>
+<pre class="programlisting">
+ hb_blob_create (data, length, HB_MEMORY_MODE_WRITABLE, NULL, free)
+ </pre>
+<p>
+ That way, HarfBuzz will call <code class="function">free()</code> on the
+ allocated memory whenever the blob drops its last reference and
+ is deconstructed. Consequently, the user code can stop worrying
+ about freeing memory and let the reference-counting machinery
+ take care of that.
+ </p>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.29</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/html/object-model-lifecycle.html b/docs/html/object-model-lifecycle.html
new file mode 100644
index 0000000..5e9adfd
--- /dev/null
+++ b/docs/html/object-model-lifecycle.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Object lifecycle management: HarfBuzz Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="HarfBuzz Manual">
+<link rel="up" href="object-model.html" title="The HarfBuzz object model">
+<link rel="prev" href="object-model-object-types.html" title="Objects in HarfBuzz">
+<link rel="next" href="object-model-user-data.html" title="User data">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="object-model.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="object-model-object-types.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="object-model-user-data.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="object-model-lifecycle"></a>Object lifecycle management</h2></div></div></div>
+<p>
+ Each object type in HarfBuzz provides a
+ <code class="function">create()</code> method. Some object types provide
+ additional variants of <code class="function">create()</code> to handle
+ special cases or to speed up common tasks; those variants are
+ documented in the API reference. For example,
+ <code class="function">hb_blob_create_from_file()</code> constructs a new
+ blob directly from the contents of a file.
+ </p>
+<p>
+ All objects are created with an initial reference count of
+ <code class="literal">1</code>. Client programs can increase the reference
+ count on an object by calling its
+ <code class="function">reference()</code> method. Whenever a client
+ program is finished with an object, it should call its
+ corresponding <code class="function">destroy()</code> method. The destroy
+ method will decrease the reference count on the object and,
+ whenever the reference count reaches zero, it will also destroy
+ the object and free all of the associated memory.
+ </p>
+<p>
+ All of HarfBuzz's object-lifecycle-management APIs are
+ thread-safe (unless you compiled HarfBuzz from source with the
+ <code class="literal">HB_NO_MT</code> configuration flag), even when the
+ object as a whole is not thread-safe.
+ It is also permissible to <code class="function">reference()</code> or to
+ <code class="function">destroy()</code> the <code class="literal">NULL</code>
+ value.
+ </p>
+<p>
+ Some objects are thread-safe after they have been constructed
+ and set up. The general pattern is to
+ <code class="function">create()</code> the object, make a few
+ <code class="function">set_*()</code> calls to set up the
+ object, and then use it without further modification.
+ </p>
+<p>
+ To ensure that such an object is not modified, client programs
+ can explicitly mark an object as immutable. HarfBuzz provides
+ <code class="function">make_immutable()</code> methods to mark an object
+ as immutable and <code class="function">is_immutable()</code> methods to
+ test whether or not an object is immutable. Attempts to use
+ setter functions on immutable objects will fail silently; see the API
+ Reference manual for specifics.
+ </p>
+<p>
+ Note also that there are no "make mutable" methods. If client
+ programs need to alter an object previously marked as immutable,
+ they will need to make a duplicate of the original.
+ </p>
+<p>
+ Finally, object constructors (and, indeed, as much of the
+ shaping API as possible) will never return
+ <code class="literal">NULL</code>. Instead, if there is an allocation
+ error, each constructor will return an “empty” object
+ singleton.
+ </p>
+<p>
+ These empty-object singletons are inert and safe (although
+ typically useless) to pass around. This design choice avoids
+ having to check for <code class="literal">NULL</code> pointers all
+ throughout the code.
+ </p>
+<p>
+ In addition, this “empty” object singleton can also be accessed
+ using the <code class="function">get_empty()</code> method of the object
+ type in question.
+ </p>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.29</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/html/object-model-object-types.html b/docs/html/object-model-object-types.html
new file mode 100644
index 0000000..330511c
--- /dev/null
+++ b/docs/html/object-model-object-types.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Objects in HarfBuzz: HarfBuzz Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="HarfBuzz Manual">
+<link rel="up" href="object-model.html" title="The HarfBuzz object model">
+<link rel="prev" href="object-model.html" title="The HarfBuzz object model">
+<link rel="next" href="object-model-lifecycle.html" title="Object lifecycle management">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="object-model.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="object-model.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="object-model-lifecycle.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="object-model-object-types"></a>Objects in HarfBuzz</h2></div></div></div>
+<p>
+ <span class="emphasis"><em>Object types:</em></span> Opaque struct types are used
+ for what HarfBuzz loosely calls "objects." This doesn’t have
+ much to do with the terminology from object-oriented programming
+ (OOP), although some of the concepts are similar.
+ </p>
+<p>
+ In HarfBuzz, all object types provide certain
+ lifecycle-management APIs. Objects are reference-counted, and
+ constructed with various <code class="function">create()</code> methods, referenced via
+ <code class="function">reference()</code> and dereferenced using
+ <code class="function">destroy()</code>.
+ </p>
+<p>
+ For example,
+ the <code class="literal">hb_buffer_t</code> object has
+ <code class="function">hb_buffer_create()</code> as its constructor,
+ <code class="function">hb_buffer_reference()</code> to reference, and
+ <code class="function">hb_buffer_destroy()</code> to dereference.
+ </p>
+<p>
+ After construction, each object's properties are accessible only
+ through the setter and getter functions described in the API
+ Reference manual.
+ </p>
+<p>
+ Key object types provided by HarfBuzz include:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc; ">
+<li class="listitem"><p>
+ <span class="emphasis"><em>blobs</em></span>, which act as low-level wrappers around binary
+ data. Blobs are typically used to hold the contents of a
+ binary font file.
+ </p></li>
+<li class="listitem"><p>
+ <span class="emphasis"><em>faces</em></span>, which represent typefaces from a
+ font file, but without specific parameters (such as size) set.
+ </p></li>
+<li class="listitem"><p>
+ <span class="emphasis"><em>fonts</em></span>, which represent instances of a
+ face with all of their parameters specified.
+ </p></li>
+<li class="listitem"><p>
+ <span class="emphasis"><em>buffers</em></span>, which hold Unicode code points
+ for characters (before shaping) and the shaped glyph output
+ (after shaping).
+ </p></li>
+<li class="listitem"><p>
+ <span class="emphasis"><em>shape plans</em></span>, which store the settings
+ that HarfBuzz will use when shaping a particular text
+ segment. Shape plans are not generally used by client
+ programs directly, but as we will see in a later chapter,
+ they are still valuable to understand.
+ </p></li>
+</ul></div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.29</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/html/object-model-user-data.html b/docs/html/object-model-user-data.html
new file mode 100644
index 0000000..9ffd864
--- /dev/null
+++ b/docs/html/object-model-user-data.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>User data: HarfBuzz Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="HarfBuzz Manual">
+<link rel="up" href="object-model.html" title="The HarfBuzz object model">
+<link rel="prev" href="object-model-lifecycle.html" title="Object lifecycle management">
+<link rel="next" href="object-model-blobs.html" title="Blobs">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="object-model.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="object-model-lifecycle.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="object-model-blobs.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="object-model-user-data"></a>User data</h2></div></div></div>
+<p>
+ To better integrate with client programs, HarfBuzz's objects
+ offer a "user data" mechanism that can be used to attach
+ arbitrary data to the object. User-data attachment can be
+ useful for tying the lifecycles of various pieces of data
+ together, or for creating language bindings.
+ </p>
+<p>
+ Each object type has a <code class="function">set_user_data()</code>
+ method and a <code class="function">get_user_data()</code> method. The
+ <code class="function">set_user_data()</code> methods take a client-provided
+ <code class="literal">key</code> and a pointer,
+ <code class="literal">user_data</code>, pointing to the data itself. Once
+ the key-data pair has been attached to the object, the
+ <code class="function">get_user_data()</code> method can be called with
+ the key, returning the <code class="function">user_data</code> pointer.
+ </p>
+<p>
+ The <code class="function">set_user_data()</code> methods also support an
+ optional <code class="function">destroy</code> callback. Client programs
+ can set the <code class="function">destroy</code> callback and receive
+ notification from HarfBuzz whenever the object is destructed.
+ </p>
+<p>
+ Finally, each <code class="function">set_user_data()</code> method allows
+ the client program to set a <code class="literal">replace</code> Boolean
+ indicating whether or not the function call should replace any
+ existing <code class="literal">user_data</code>
+ associated with the specified key.
+ </p>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.29</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/html/object-model.html b/docs/html/object-model.html
new file mode 100644
index 0000000..838d320
--- /dev/null
+++ b/docs/html/object-model.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>The HarfBuzz object model: HarfBuzz Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="HarfBuzz Manual">
+<link rel="up" href="pt01.html" title="Part I. User's manual">
+<link rel="prev" href="aat-shaping.html" title="AAT shaping">
+<link rel="next" href="object-model-object-types.html" title="Objects in HarfBuzz">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="pt01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="aat-shaping.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="object-model-object-types.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="object-model"></a>The HarfBuzz object model</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section"><a href="object-model.html#object-model-intro">An overview of data types in HarfBuzz</a></span></dt>
+<dt><span class="section"><a href="object-model-object-types.html">Objects in HarfBuzz</a></span></dt>
+<dt><span class="section"><a href="object-model-lifecycle.html">Object lifecycle management</a></span></dt>
+<dt><span class="section"><a href="object-model-user-data.html">User data</a></span></dt>
+<dt><span class="section"><a href="object-model-blobs.html">Blobs</a></span></dt>
+</dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="object-model-intro"></a>An overview of data types in HarfBuzz</h2></div></div></div>
+<p>
+ HarfBuzz features two kinds of data types: non-opaque,
+ pass-by-value types and opaque, heap-allocated types. This kind
+ of separation is common in C libraries that have to provide
+ API/ABI compatibility (almost) indefinitely.
+ </p>
+<p>
+ <span class="emphasis"><em>Value types:</em></span> The non-opaque, pass-by-value
+ types include integer types, enums, and small structs. Exposing
+ a struct in the public API makes it impossible to expand the
+ struct in the future. As such, exposing structs is reserved for
+ cases where it’s extremely inefficient to do otherwise.
+ </p>
+<p>
+ In HarfBuzz, several structs, like <code class="literal">hb_glyph_info_t</code> and
+ <code class="literal">hb_glyph_position_t</code>, fall into that efficiency-sensitive
+ category and are non-opaque.
+ </p>
+<p>
+ For all non-opaque structs where future extensibility may be
+ necessary, reserved members are included to hold space for
+ possible future members. As such, it’s important to provide
+ <code class="function">equal()</code>, and <code class="function">hash()</code>
+ methods for such structs, allowing users of the API do
+ effectively deal with the type without having to
+ adapt their code to future changes.
+ </p>
+<p>
+ Important value types provided by HarfBuzz include the structs
+ for working with Unicode code points, glyphs, and tags for font
+ tables and features, as well as the enums for many Unicode and
+ OpenType properties.
+ </p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.29</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/html/plans-and-caching.html b/docs/html/plans-and-caching.html
deleted file mode 100644
index 7407f1e..0000000
--- a/docs/html/plans-and-caching.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Plans and caching: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="shaping-and-shape-plans.html" title="Shaping and shape plans">
-<link rel="prev" href="shaping-and-shape-plans.html" title="Shaping and shape plans">
-<link rel="next" href="pt02.html" title="Part II. Reference manual">
-<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="shaping-and-shape-plans.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="shaping-and-shape-plans.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="pt02.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="section">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="plans-and-caching"></a>Plans and caching</h2></div></div></div>
-<p>
- </p>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.29</div>
-</body>
-</html> \ No newline at end of file
diff --git a/docs/html/pt01.html b/docs/html/pt01.html
index 90e6f93..9db76e5 100644
--- a/docs/html/pt01.html
+++ b/docs/html/pt01.html
@@ -61,19 +61,34 @@
<dt><span class="section"><a href="graphite-shaping.html">Graphite shaping</a></span></dt>
<dt><span class="section"><a href="aat-shaping.html">AAT shaping</a></span></dt>
</dl></dd>
+<dt><span class="chapter"><a href="object-model.html">The HarfBuzz object model</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="object-model.html#object-model-intro">An overview of data types in HarfBuzz</a></span></dt>
+<dt><span class="section"><a href="object-model-object-types.html">Objects in HarfBuzz</a></span></dt>
+<dt><span class="section"><a href="object-model-lifecycle.html">Object lifecycle management</a></span></dt>
+<dt><span class="section"><a href="object-model-user-data.html">User data</a></span></dt>
+<dt><span class="section"><a href="object-model-blobs.html">Blobs</a></span></dt>
+</dl></dd>
<dt><span class="chapter"><a href="buffers-language-script-and-direction.html">Buffers, language, script and direction</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="buffers-language-script-and-direction.html#creating-and-destroying-buffers">Creating and destroying buffers</a></span></dt>
<dt><span class="section"><a href="adding-text-to-the-buffer.html">Adding text to the buffer</a></span></dt>
<dt><span class="section"><a href="setting-buffer-properties.html">Setting buffer properties</a></span></dt>
-<dt><span class="section"><a href="what-about-the-other-scripts.html">What about the other scripts?</a></span></dt>
<dt><span class="section"><a href="customizing-unicode-functions.html">Customizing Unicode functions</a></span></dt>
</dl></dd>
-<dt><span class="chapter"><a href="fonts-and-faces.html">Fonts and faces</a></span></dt>
+<dt><span class="chapter"><a href="fonts-and-faces.html">Fonts, faces, and output</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="fonts-and-faces.html#fonts-and-faces-objects">Font and face objects</a></span></dt>
+<dt><span class="section"><a href="fonts-and-faces-custom-functions.html">Customizing font functions</a></span></dt>
+<dt><span class="section"><a href="fonts-and-faces-native-opentype.html">Font objects and HarfBuzz's native OpenType implementation</a></span></dt>
+<dt><span class="section"><a href="fonts-and-faces-variable.html">Working with OpenType Variable Fonts</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="shaping-and-shape-plans.html">Shaping and shape plans</a></span></dt>
<dd><dl>
-<dt><span class="section"><a href="fonts-and-faces.html#using-freetype">Using FreeType</a></span></dt>
-<dt><span class="section"><a href="using-harfbuzzs-native-opentype-implementation.html">Using HarfBuzz's native OpenType implementation</a></span></dt>
-<dt><span class="section"><a href="using-your-own-font-functions.html">Using your own font functions</a></span></dt>
+<dt><span class="section"><a href="shaping-and-shape-plans.html#shaping-buffer-output">Shaping and buffer output</a></span></dt>
+<dt><span class="section"><a href="shaping-opentype-features.html">OpenType features</a></span></dt>
+<dt><span class="section"><a href="shaping-shaper-selection.html">Shaper selection</a></span></dt>
+<dt><span class="section"><a href="shaping-plans-and-caching.html">Plans and caching</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="clusters.html">Clusters</a></span></dt>
<dd><dl>
@@ -89,23 +104,19 @@
<dt><span class="section"><a href="level-2.html#other-considerations-in-level-2">Other considerations in level 2</a></span></dt>
</dl></dd>
</dl></dd>
-<dt><span class="chapter"><a href="shaping-and-shape-plans.html">Shaping and shape plans</a></span></dt>
+<dt><span class="chapter"><a href="utilities.html">Utilities</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="utilities.html#utilities-command-line-tools">Command-line tools</a></span></dt>
<dd><dl>
-<dt><span class="section"><a href="shaping-and-shape-plans.html#opentype-features">OpenType features</a></span></dt>
-<dt><span class="section"><a href="plans-and-caching.html">Plans and caching</a></span></dt>
+<dt><span class="section"><a href="utilities.html#utilities-command-line-hbshape">hb-shape</a></span></dt>
+<dt><span class="section"><a href="utilities.html#utilities-command-line-hbview">hb-view</a></span></dt>
+<dt><span class="section"><a href="utilities.html#utilities-command-line-hbsubset">hb-subset</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="utilities-common-types-apis.html">Common data types and APIs</a></span></dt>
+<dt><span class="section"><a href="utilities-ucdn.html">UCDN</a></span></dt>
</dl></dd>
</dl>
</div>
-<div class="sect1">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="glyph-information"></a>Glyph information</h2></div></div></div>
-<div class="sect2">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="names-and-numbers"></a>Names and numbers</h3></div></div></div>
-<p>
- </p>
-</div>
-</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.29</div>
diff --git a/docs/html/pt02.html b/docs/html/pt02.html
index 33add13..11b2734 100644
--- a/docs/html/pt02.html
+++ b/docs/html/pt02.html
@@ -6,8 +6,8 @@
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="index.html" title="HarfBuzz Manual">
-<link rel="prev" href="plans-and-caching.html" title="Plans and caching">
-<link rel="next" href="ch09.html" title="Core API">
+<link rel="prev" href="utilities-ucdn.html" title="UCDN">
+<link rel="next" href="ch11.html" title="Core API">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
@@ -16,15 +16,15 @@
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
-<td><a accesskey="p" href="plans-and-caching.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="ch09.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="utilities-ucdn.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="ch11.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="part">
<div class="titlepage"><div>
<div><h1 class="title">
<a name="id-1.3"></a>Part II. Reference manual</h1></div>
<div><p class="releaseinfo">
- This document is for HarfBuzz 2.4.0
+ This document is for HarfBuzz 2.6.4
.
</p></div>
@@ -32,7 +32,7 @@
<div class="toc">
<p><b>Table of Contents</b></p>
<dl class="toc">
-<dt><span class="chapter"><a href="ch09.html">Core API</a></span></dt>
+<dt><span class="chapter"><a href="ch11.html">Core API</a></span></dt>
<dd><dl>
<dt>
<span class="refentrytitle"><a href="harfbuzz-hb-blob.html">hb-blob</a></span><span class="refpurpose"> — Binary data containers</span>
@@ -71,7 +71,7 @@
<span class="refentrytitle"><a href="harfbuzz-hb-version.html">hb-version</a></span><span class="refpurpose"> — Information about the version of HarfBuzz in use</span>
</dt>
</dl></dd>
-<dt><span class="chapter"><a href="ch10.html">OpenType API</a></span></dt>
+<dt><span class="chapter"><a href="ch12.html">OpenType API</a></span></dt>
<dd><dl>
<dt>
<span class="refentrytitle"><a href="harfbuzz-hb-ot-color.html">hb-ot-color</a></span><span class="refpurpose"> — OpenType Color Fonts</span>
@@ -95,11 +95,11 @@
<span class="refentrytitle"><a href="harfbuzz-hb-ot-var.html">hb-ot-var</a></span><span class="refpurpose"> — OpenType Font Variations</span>
</dt>
</dl></dd>
-<dt><span class="chapter"><a href="ch11.html">Apple Advanced Typography API</a></span></dt>
+<dt><span class="chapter"><a href="ch13.html">Apple Advanced Typography API</a></span></dt>
<dd><dl><dt>
<span class="refentrytitle"><a href="harfbuzz-hb-aat-layout.html">hb-aat-layout</a></span><span class="refpurpose"> — Apple Advanced Typography Layout</span>
</dt></dl></dd>
-<dt><span class="chapter"><a href="ch12.html">Integration API</a></span></dt>
+<dt><span class="chapter"><a href="ch14.html">Integration API</a></span></dt>
<dd><dl>
<dt>
<span class="refentrytitle"><a href="harfbuzz-hb-coretext.html">hb-coretext</a></span><span class="refpurpose"> — CoreText integration</span>
diff --git a/docs/html/setting-buffer-properties.html b/docs/html/setting-buffer-properties.html
index e35cf7a..aba2eac 100644
--- a/docs/html/setting-buffer-properties.html
+++ b/docs/html/setting-buffer-properties.html
@@ -7,7 +7,7 @@
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="buffers-language-script-and-direction.html" title="Buffers, language, script and direction">
<link rel="prev" href="adding-text-to-the-buffer.html" title="Adding text to the buffer">
-<link rel="next" href="what-about-the-other-scripts.html" title="What about the other scripts?">
+<link rel="next" href="customizing-unicode-functions.html" title="Customizing Unicode functions">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
@@ -17,12 +17,141 @@
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="buffers-language-script-and-direction.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="adding-text-to-the-buffer.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="what-about-the-other-scripts.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="customizing-unicode-functions.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="setting-buffer-properties"></a>Setting buffer properties</h2></div></div></div>
<p>
+ Buffers containing input characters still need several
+ properties set before HarfBuzz can shape their text correctly.
+ </p>
+<p>
+ Initially, all buffers are set to the
+ <code class="literal">HB_BUFFER_CONTENT_TYPE_INVALID</code> content
+ type. After adding text, the buffer should be set to
+ <code class="literal">HB_BUFFER_CONTENT_TYPE_UNICODE</code> instead, which
+ indicates that it contains un-shaped input
+ characters. After shaping, the buffer will have the
+ <code class="literal">HB_BUFFER_CONTENT_TYPE_GLYPHS</code> content type.
+ </p>
+<p>
+ <code class="function">hb_buffer_add_utf8()</code> and the
+ other UTF functions set the content type of their buffer
+ automatically. But if you are reusing a buffer you may want to
+ check its state with
+ <code class="function">hb_buffer_get_content_type(buffer)</code>. If
+ necessary you can set the content type with
+ </p>
+<pre class="programlisting">
+ hb_buffer_set_content_type(buf, HB_BUFFER_CONTENT_TYPE_UNICODE);
+ </pre>
+<p>
+ to prepare for shaping.
+ </p>
+<p>
+ Buffers also need to carry information about the script,
+ language, and text direction of their contents. You can set
+ these properties individually:
+ </p>
+<pre class="programlisting">
+ hb_buffer_set_direction(buf, HB_DIRECTION_LTR);
+ hb_buffer_set_script(buf, HB_SCRIPT_LATIN);
+ hb_buffer_set_language(buf, hb_language_from_string("en", -1));
+ </pre>
+<p>
+ However, since these properties are often the repeated for
+ multiple text runs, you can also save them in a
+ <code class="literal">hb_segment_properties_t</code> for reuse:
+ </p>
+<pre class="programlisting">
+ hb_segment_properties_t *savedprops;
+ hb_buffer_get_segment_properties (buf, savedprops);
+ ...
+ hb_buffer_set_segment_properties (buf2, savedprops);
+ </pre>
+<p>
+ HarfBuzz also provides getter functions to retrieve a buffer's
+ direction, script, and language properties individually.
+ </p>
+<p>
+ HarfBuzz recognizes four text directions in
+ <span class="type">hb_direction_t</span>: left-to-right
+ (<code class="literal">HB_DIRECTION_LTR</code>), right-to-left (<code class="literal">HB_DIRECTION_RTL</code>),
+ top-to-bottom (<code class="literal">HB_DIRECTION_TTB</code>), and
+ bottom-to-top (<code class="literal">HB_DIRECTION_BTT</code>). For the
+ script property, HarfBuzz uses identifiers based on the
+ <a class="ulink" href="https://unicode.org/iso15924/" target="_top">ISO 15924
+ standard</a>. For languages, HarfBuzz uses tags based on the
+ <a class="ulink" href="https://tools.ietf.org/html/bcp47" target="_top">IETF BCP 47</a> standard.
+ </p>
+<p>
+ Helper functions are provided to convert character strings into
+ the necessary script and language tag types.
+ </p>
+<p>
+ Two additional buffer properties to be aware of are the
+ "invisible glyph" and the replacement code point. The
+ replacement code point is inserted into buffer output in place of
+ any invalid code points encountered in the input. By default, it
+ is the Unicode <code class="literal">REPLACEMENT CHARACTER</code> code
+ point, <code class="literal">U+FFFD</code> "�". You can change this with
+ </p>
+<pre class="programlisting">
+ hb_buffer_set_replacement_codepoint(buf, replacement);
+ </pre>
+<p>
+ passing in the replacement Unicode code point as the
+ <em class="parameter"><code>replacement</code></em> parameter.
+ </p>
+<p>
+ The invisible glyph is used to replace all output glyphs that
+ are invisible. By default, the standard space character
+ <code class="literal">U+0020</code> is used; you can replace this (for
+ example, when using a font that provides script-specific
+ spaces) with
+ </p>
+<pre class="programlisting">
+ hb_buffer_set_invisible_glyph(buf, replacement_glyph);
+ </pre>
+<p>
+ Do note that in the <em class="parameter"><code>replacement_glyph</code></em>
+ parameter, you must provide the glyph ID of the replacement you
+ wish to use, not the Unicode code point.
+ </p>
+<p>
+ HarfBuzz supports a few additional flags you might want to set
+ on your buffer under certain circumstances. The
+ <code class="literal">HB_BUFFER_FLAG_BOT</code> and
+ <code class="literal">HB_BUFFER_FLAG_EOT</code> flags tell HarfBuzz
+ that the buffer represents the beginning or end (respectively)
+ of a text element (such as a paragraph or other block). Knowing
+ this allows HarfBuzz to apply certain contextual font features
+ when shaping, such as initial or final variants in connected
+ scripts.
+ </p>
+<p>
+ <code class="literal">HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES</code>
+ tells HarfBuzz not to hide glyphs with the
+ <code class="literal">Default_Ignorable</code> property in Unicode. This
+ property designates control characters and other non-printing
+ code points, such as joiners and variation selectors. Normally
+ HarfBuzz replaces them in the output buffer with zero-width
+ space glyphs (using the "invisible glyph" property discussed
+ above); setting this flag causes them to be printed, which can
+ be helpful for troubleshooting.
+ </p>
+<p>
+ Conversely, setting the
+ <code class="literal">HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES</code> flag
+ tells HarfBuzz to remove <code class="literal">Default_Ignorable</code>
+ glyphs from the output buffer entirely. Finally, setting the
+ <code class="literal">HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE</code>
+ flag tells HarfBuzz not to insert the dotted-circle glyph
+ (<code class="literal">U+25CC</code>, "◌"), which is normally
+ inserted into buffer output when broken character sequences are
+ encountered (such as combining marks that are not attached to a
+ base character).
</p>
</div>
<div class="footer">
diff --git a/docs/html/shaping-and-shape-plans.html b/docs/html/shaping-and-shape-plans.html
index 2831034..a3ac1aa 100644
--- a/docs/html/shaping-and-shape-plans.html
+++ b/docs/html/shaping-and-shape-plans.html
@@ -6,8 +6,8 @@
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="pt01.html" title="Part I. User's manual">
-<link rel="prev" href="level-2.html" title="Level 2">
-<link rel="next" href="plans-and-caching.html" title="Plans and caching">
+<link rel="prev" href="fonts-and-faces-variable.html" title="Working with OpenType Variable Fonts">
+<link rel="next" href="shaping-opentype-features.html" title="OpenType features">
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
@@ -16,20 +16,127 @@
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="pt01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="level-2.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="plans-and-caching.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="fonts-and-faces-variable.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="shaping-opentype-features.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
<a name="shaping-and-shape-plans"></a>Shaping and shape plans</h2></div></div></div>
<div class="toc"><dl class="toc">
-<dt><span class="section"><a href="shaping-and-shape-plans.html#opentype-features">OpenType features</a></span></dt>
-<dt><span class="section"><a href="plans-and-caching.html">Plans and caching</a></span></dt>
+<dt><span class="section"><a href="shaping-and-shape-plans.html#shaping-buffer-output">Shaping and buffer output</a></span></dt>
+<dt><span class="section"><a href="shaping-opentype-features.html">OpenType features</a></span></dt>
+<dt><span class="section"><a href="shaping-shaper-selection.html">Shaper selection</a></span></dt>
+<dt><span class="section"><a href="shaping-plans-and-caching.html">Plans and caching</a></span></dt>
</dl></div>
+<p>
+ Once you have your face and font objects configured as desired and
+ your input buffer is filled with the characters you need to shape,
+ all you need to do is call <code class="function">hb_shape()</code>.
+ </p>
+<p>
+ HarfBuzz will return the shaped version of the text in the same
+ buffer that you provided, but it will be in output mode. At that
+ point, you can iterate through the glyphs in the buffer, drawing
+ each one at the specified position or handing them off to the
+ appropriate graphics library.
+ </p>
+<p>
+ For the most part, HarfBuzz's shaping step is straightforward from
+ the outside. But that doesn't mean there will never be cases where
+ you want to look under the hood and see what is happening on the
+ inside. HarfBuzz provides facilities for doing that, too.
+ </p>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="opentype-features"></a>OpenType features</h2></div></div></div>
+<a name="shaping-buffer-output"></a>Shaping and buffer output</h2></div></div></div>
+<p>
+ The <code class="function">hb_shape()</code> function call takes four arguments: the font
+ object to use, the buffer of characters to shape, an array of
+ user-specified features to apply, and the length of that feature
+ array. The feature array can be NULL, so for the sake of
+ simplicity we will start with that case.
+ </p>
+<p>
+ Internally, HarfBuzz looks at the tables of the font file to
+ determine where glyph classes, substitutions, and positioning
+ are defined, using that information to decide which
+ <span class="emphasis"><em>shaper</em></span> to use (<code class="literal">ot</code> for
+ OpenType fonts, <code class="literal">aat</code> for Apple Advanced
+ Typography fonts, and so on). It also looks at the direction,
+ script, and language properties of the segment to figure out
+ which script-specific shaping model is needed (at least, in
+ shapers that support multiple options).
+ </p>
+<p>
+ If a font has a GDEF table, then that is used for
+ glyph classes; if not, HarfBuzz will fall back to Unicode
+ categorization by code point. If a font has an AAT "morx" table,
+ then it is used for substitutions; if not, but there is a GSUB
+ table, then the GSUB table is used. If the font has an AAT
+ "kerx" table, then it is used for positioning; if not, but
+ there is a GPOS table, then the GPOS table is used. If neither
+ table is found, but there is a "kern" table, then HarfBuzz will
+ use the "kern" table. If there is no "kerx", no GPOS, and no
+ "kern", HarfBuzz will fall back to positioning marks itself.
+ </p>
+<p>
+ With a well-behaved OpenType font, you expect GDEF, GSUB, and
+ GPOS tables to all be applied. HarfBuzz implements the
+ script-specific shaping models in internal functions, rather
+ than in the public API.
+ </p>
+<p>
+ The algorithms
+ used for complex scripts can be quite involved; HarfBuzz tries
+ to be compatible with the OpenType Layout specification
+ and, wherever there is any ambiguity, HarfBuzz attempts to replicate the
+ output of Microsoft's Uniscribe engine. See the <a class="ulink" href="https://docs.microsoft.com/en-us/typography/script-development/standard" target="_top">Microsoft
+ Typography pages</a> for more detail.
+ </p>
+<p>
+ In general, though, all that you need to know is that
+ <code class="function">hb_shape()</code> returns the results of shaping
+ in the same buffer that you provided. The buffer's content type
+ will now be set to
+ <code class="literal">HB_BUFFER_CONTENT_TYPE_GLYPHS</code>, indicating
+ that it contains shaped output, rather than input text. You can
+ now extract the glyph information and positioning arrays:
+ </p>
+<pre class="programlisting">
+ hb_glyph_info_t *glyph_info = hb_buffer_get_glyph_infos(buf, &amp;glyph_count);
+ hb_glyph_position_t *glyph_pos = hb_buffer_get_glyph_positions(buf, &amp;glyph_count);
+ </pre>
+<p>
+ The glyph information array holds a <span class="type">hb_glyph_info_t</span>
+ for each output glyph, which has two fields:
+ <em class="parameter"><code>codepoint</code></em> and
+ <em class="parameter"><code>cluster</code></em>. Whereas, in the input buffer,
+ the <em class="parameter"><code>codepoint</code></em> field contained the Unicode
+ code point, it now contains the glyph ID of the corresponding
+ glyph in the font. The <em class="parameter"><code>cluster</code></em> field is
+ an integer that you can use to help identify when shaping has
+ reordered, split, or combined code points; we will say more
+ about that in the next chapter.
+ </p>
+<p>
+ The glyph positions array holds a corresponding
+ <span class="type">hb_glyph_position_t</span> for each output glyph,
+ containing four fields: <em class="parameter"><code>x_advance</code></em>,
+ <em class="parameter"><code>y_advance</code></em>,
+ <em class="parameter"><code>x_offset</code></em>, and
+ <em class="parameter"><code>y_offset</code></em>. The advances tell you how far
+ you need to move the drawing point after drawing this glyph,
+ depending on whether you are setting horizontal text (in which
+ case you will have x advances) or vertical text (for which you
+ will have y advances). The x and y offsets tell you where to
+ move to start drawing the glyph; usually you will have both and
+ x and a y offset, regardless of the text direction.
+ </p>
<p>
+ Most of the time, you will rely on a font-rendering library or
+ other graphics library to do the actual drawing of glyphs, so
+ you will need to iterate through the glyphs in the buffer and
+ pass the corresponding values off.
</p>
</div>
</div>
diff --git a/docs/html/shaping-opentype-features.html b/docs/html/shaping-opentype-features.html
new file mode 100644
index 0000000..2a22f12
--- /dev/null
+++ b/docs/html/shaping-opentype-features.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>OpenType features: HarfBuzz Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="HarfBuzz Manual">
+<link rel="up" href="shaping-and-shape-plans.html" title="Shaping and shape plans">
+<link rel="prev" href="shaping-and-shape-plans.html" title="Shaping and shape plans">
+<link rel="next" href="shaping-shaper-selection.html" title="Shaper selection">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="shaping-and-shape-plans.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="shaping-and-shape-plans.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="shaping-shaper-selection.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="shaping-opentype-features"></a>OpenType features</h2></div></div></div>
+<p>
+ OpenType features enable fonts to include smart behavior,
+ implemented as "lookup" rules stored in the GSUB and GPOS
+ tables. The OpenType specification defines a long list of
+ standard features that fonts can use for these behaviors; each
+ feature has a four-character reserved name and a well-defined
+ semantic meaning.
+ </p>
+<p>
+ Some OpenType features are defined for the purpose of supporting
+ complex-script shaping, and are automatically activated, but
+ only when a buffer's script property is set to a script that the
+ feature supports.
+ </p>
+<p>
+ Other features are more generic and can apply to several (or
+ any) script, and shaping engines are expected to implement
+ them. By default, HarfBuzz activates several of these features
+ on every text run. They include <code class="literal">abvm</code>,
+ <code class="literal">blwm</code>, <code class="literal">ccmp</code>,
+ <code class="literal">locl</code>, <code class="literal">mark</code>,
+ <code class="literal">mkmk</code>, and <code class="literal">rlig</code>.
+ </p>
+<p>
+ In addition, if the text direction is horizontal, HarfBuzz
+ also applies the <code class="literal">calt</code>,
+ <code class="literal">clig</code>, <code class="literal">curs</code>,
+ <code class="literal">dist</code>, <code class="literal">kern</code>,
+ <code class="literal">liga</code>, <code class="literal">rclt</code>,
+ and <code class="literal">frac</code> features.
+ </p>
+<p>
+ If the text direction is vertical, HarfBuzz applies
+ the <code class="literal">vert</code> feature by default.
+ </p>
+<p>
+ Still other features are designed to be purely optional and left
+ up to the application or the end user to enable or disable as desired.
+ </p>
+<p>
+ You can adjust the set of features that HarfBuzz applies to a
+ buffer by supplying an array of <span class="type">hb_feature_t</span>
+ features as the third argument to
+ <code class="function">hb_shape()</code>. For a simple case, let's just
+ enable the <code class="literal">dlig</code> feature, which turns on any
+ "discretionary" ligatures in the font:
+ </p>
+<pre class="programlisting">
+ hb_feature_t userfeatures[1];
+ userfeatures[0].tag = HB_TAG('d','l','i','g');
+ userfeatures[0].value = 1;
+ userfeatures[0].start = HB_FEATURE_GLOBAL_START;
+ userfeatures[0].end = HB_FEATURE_GLOBAL_END;
+ </pre>
+<p>
+ <code class="literal">HB_FEATURE_GLOBAL_END</code> and
+ <code class="literal">HB_FEATURE_GLOBAL_END</code> are macros we can use
+ to indicate that the features will be applied to the entire
+ buffer. We could also have used a literal <code class="literal">0</code>
+ for the start and a <code class="literal">-1</code> to indicate the end of
+ the buffer (or have selected other start and end positions, if needed).
+ </p>
+<p>
+ When we pass the <code class="varname">userfeatures</code> array to
+ <code class="function">hb_shape()</code>, any discretionary ligature
+ substitutions from our font that match the text in our buffer
+ will get performed:
+ </p>
+<pre class="programlisting">
+ hb_shape(font, buf, userfeatures, num_features);
+ </pre>
+<p>
+ Just like we enabled the <code class="literal">dlig</code> feature by
+ setting its <em class="parameter"><code>value</code></em> to
+ <code class="literal">1</code>, you would disable a feature by setting its
+ <em class="parameter"><code>value</code></em> to <code class="literal">0</code>. Some
+ features can take other <em class="parameter"><code>value</code></em> settings;
+ be sure you read the full specification of each feature tag to
+ understand what it does and how to control it.
+ </p>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.29</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/html/shaping-plans-and-caching.html b/docs/html/shaping-plans-and-caching.html
new file mode 100644
index 0000000..7a17f0f
--- /dev/null
+++ b/docs/html/shaping-plans-and-caching.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Plans and caching: HarfBuzz Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="HarfBuzz Manual">
+<link rel="up" href="shaping-and-shape-plans.html" title="Shaping and shape plans">
+<link rel="prev" href="shaping-shaper-selection.html" title="Shaper selection">
+<link rel="next" href="clusters.html" title="Clusters">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="shaping-and-shape-plans.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="shaping-shaper-selection.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="clusters.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="shaping-plans-and-caching"></a>Plans and caching</h2></div></div></div>
+<p>
+ Internally, HarfBuzz uses a structure called a shape plan to
+ track its decisions about how to shape the contents of a
+ buffer. The <code class="function">hb_shape()</code> function builds up the shape plan by
+ examining segment properties and by inspecting the contents of
+ the font.
+ </p>
+<p>
+ This process can involve some decision-making and
+ trade-offs — for example, HarfBuzz inspects the GSUB and GPOS
+ lookups for the script and language tags set on the segment
+ properties, but it falls back on the lookups under the
+ <code class="literal">DFLT</code> tag (and sometimes other common tags)
+ if there are actually no lookups for the tag requested.
+ </p>
+<p>
+ HarfBuzz also includes some work-arounds for
+ handling well-known older font conventions that do not follow
+ OpenType or Unicode specifications, for buggy system fonts, and for
+ peculiarities of Microsoft Uniscribe. All of that means that a
+ shape plan, while not something that you should edit directly in
+ client code, still might be an object that you want to
+ inspect. Furthermore, if resources are tight, you might want to
+ cache the shape plan that HarfBuzz builds for your buffer and
+ font, so that you do not have to rebuild it for every shaping call.
+ </p>
+<p>
+ You can create a cacheable shape plan with
+ <code class="function">hb_shape_plan_create_cached(face, props,
+ user_features, num_user_features, shaper_list)</code>, where
+ <em class="parameter"><code>face</code></em> is a face object (not a font object,
+ notably), <em class="parameter"><code>props</code></em> is an
+ <span class="type">hb_segment_properties_t</span>,
+ <em class="parameter"><code>user_features</code></em> is an array of
+ <span class="type">hb_feature_t</span>s (with length
+ <em class="parameter"><code>num_user_features</code></em>), and
+ <em class="parameter"><code>shaper_list</code></em> is a list of shapers to try.
+ </p>
+<p>
+ Shape plans are objects in HarfBuzz, so there are
+ reference-counting functions and user-data attachment functions
+ you can
+ use. <code class="function">hb_shape_plan_reference(shape_plan)</code>
+ increases the reference count on a shape plan, while
+ <code class="function">hb_shape_plan_destroy(shape_plan)</code> decreases
+ the reference count, destroying the shape plan when the last
+ reference is dropped.
+ </p>
+<p>
+ You can attach user data to a shaper (with a key) using the
+ <code class="function">hb_shape_plan_set_user_data(shape_plan,key,data,destroy,replace)</code>
+ function, optionally supplying a <code class="function">destroy</code>
+ callback to use. You can then fetch the user data attached to a
+ shape plan with
+ <code class="function">hb_shape_plan_get_user_data(shape_plan, key)</code>.
+ </p>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.29</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/html/shaping-shaper-selection.html b/docs/html/shaping-shaper-selection.html
new file mode 100644
index 0000000..c6112ae
--- /dev/null
+++ b/docs/html/shaping-shaper-selection.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Shaper selection: HarfBuzz Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="HarfBuzz Manual">
+<link rel="up" href="shaping-and-shape-plans.html" title="Shaping and shape plans">
+<link rel="prev" href="shaping-opentype-features.html" title="OpenType features">
+<link rel="next" href="shaping-plans-and-caching.html" title="Plans and caching">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="shaping-and-shape-plans.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="shaping-opentype-features.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="shaping-plans-and-caching.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="shaping-shaper-selection"></a>Shaper selection</h2></div></div></div>
+<p>
+ The basic version of <code class="function">hb_shape()</code> determines
+ its shaping strategy based on examining the capabilities of the
+ font file. OpenType font tables cause HarfBuzz to try the
+ <code class="literal">ot</code> shaper, while AAT font tables cause HarfBuzz to try the
+ <code class="literal">aat</code> shaper.
+ </p>
+<p>
+ In the real world, however, a font might include some unusual
+ mix of tables, or one of the tables might simply be broken for
+ the script you need to shape. So, sometimes, you might not
+ want to rely on HarfBuzz's process for deciding what to do, and
+ just tell <code class="function">hb_shape()</code> what you want it to try.
+ </p>
+<p>
+ <code class="function">hb_shape_full()</code> is an alternate shaping
+ function that lets you supply a list of shapers for HarfBuzz to
+ try, in order, when shaping your buffer. For example, if you
+ have determined that HarfBuzz's attempts to work around broken
+ tables gives you better results than the AAT shaper itself does,
+ you might move the AAT shaper to the end of your list of
+ preferences and call <code class="function">hb_shape_full()</code>
+ </p>
+<pre class="programlisting">
+ char *shaperprefs[3] = {"ot", "default", "aat"};
+ ...
+ hb_shape_full(font, buf, userfeatures, num_features, shaperprefs);
+ </pre>
+<p>
+ to get results you are happier with.
+ </p>
+<p>
+ You may also want to call
+ <code class="function">hb_shape_list_shapers()</code> to get a list of
+ the shapers that were built at compile time in your copy of HarfBuzz.
+ </p>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.29</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/html/using-harfbuzzs-native-opentype-implementation.html b/docs/html/using-harfbuzzs-native-opentype-implementation.html
deleted file mode 100644
index 1ee3f3e..0000000
--- a/docs/html/using-harfbuzzs-native-opentype-implementation.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Using HarfBuzz's native OpenType implementation: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="fonts-and-faces.html" title="Fonts and faces">
-<link rel="prev" href="fonts-and-faces.html" title="Fonts and faces">
-<link rel="next" href="using-your-own-font-functions.html" title="Using your own font functions">
-<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="fonts-and-faces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="fonts-and-faces.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="using-your-own-font-functions.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="section">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="using-harfbuzzs-native-opentype-implementation"></a>Using HarfBuzz's native OpenType implementation</h2></div></div></div>
-<p>
- </p>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.29</div>
-</body>
-</html> \ No newline at end of file
diff --git a/docs/html/using-your-own-font-functions.html b/docs/html/using-your-own-font-functions.html
deleted file mode 100644
index 53f33ac..0000000
--- a/docs/html/using-your-own-font-functions.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Using your own font functions: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="fonts-and-faces.html" title="Fonts and faces">
-<link rel="prev" href="using-harfbuzzs-native-opentype-implementation.html" title="Using HarfBuzz's native OpenType implementation">
-<link rel="next" href="clusters.html" title="Clusters">
-<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="fonts-and-faces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="using-harfbuzzs-native-opentype-implementation.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="clusters.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="section">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="using-your-own-font-functions"></a>Using your own font functions</h2></div></div></div>
-<p>
- </p>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.29</div>
-</body>
-</html> \ No newline at end of file
diff --git a/docs/html/utilities-common-types-apis.html b/docs/html/utilities-common-types-apis.html
new file mode 100644
index 0000000..fbde14a
--- /dev/null
+++ b/docs/html/utilities-common-types-apis.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Common data types and APIs: HarfBuzz Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="HarfBuzz Manual">
+<link rel="up" href="utilities.html" title="Utilities">
+<link rel="prev" href="utilities.html" title="Utilities">
+<link rel="next" href="utilities-ucdn.html" title="UCDN">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="utilities.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="utilities.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="utilities-ucdn.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="utilities-common-types-apis"></a>Common data types and APIs</h2></div></div></div>
+<p>
+ HarfBuzz includes several APIs for working with general-purpose
+ data that you may find convenient to leverage in your own
+ software. They include set operations and integer-to-integer
+ mapping operations.
+ </p>
+<p>
+ HarfBuzz uses set operations for internal bookkeeping, such as
+ when it collects all of the glyph IDs covered by a particular
+ font feature. You can also use the set API to build sets, add
+ and remove elements, test whether or not sets contain particular
+ elements, or compute the unions, intersections, or differences
+ between sets.
+ </p>
+<p>
+ All set elements are integers (specifically,
+ <span class="type">hb_codepoint_t</span> 32-bit unsigned ints), and there are
+ functions for fetching the minimum and maximum element from a
+ set. The set API also includes some functions that might not
+ be part of a generic set facility, such as the ability to add a
+ contiguous range of integer elements to a set in bulk, and the
+ ability to fetch the next-smallest or next-largest element.
+ </p>
+<p>
+ The HarfBuzz set API includes some conveniences as well. All
+ sets are lifecycle-managed, just like other HarfBuzz
+ objects. You increase the reference count on a set with
+ <code class="function">hb_set_reference()</code> and decrease it with
+ <code class="function">hb_set_destroy()</code>. You can also attach
+ user data to a set, just like you can to blobs, buffers, faces,
+ fonts, and other objects, and set destroy callbacks.
+ </p>
+<p>
+ HarfBuzz also provides an API for keeping track of
+ integer-to-integer mappings. As with the set API, each integer is
+ stored as an unsigned 32-bit <span class="type">hb_codepoint_t</span>
+ element. Maps, like other objects, are reference counted with
+ reference and destroy functions, and you can attach user data to
+ them. The mapping operations include adding and deleting
+ integer-to-integer key:value pairs to the map, testing for the
+ presence of a key, fetching the population of the map, and so on.
+ </p>
+<p>
+ There are several other internal HarfBuzz facilities that are
+ exposed publicly and which you may want to take advantage of
+ while processing text. HarfBuzz uses a common
+ <span class="type">hb_tag_t</span> for a variety of OpenType tag identifiers (for
+ scripts, languages, font features, table names, variation-axis
+ names, and more), and provides functions for converting strings
+ to tags and vice-versa.
+ </p>
+<p>
+ Finally, HarfBuzz also includes data type for Booleans, bit
+ masks, and other simple types.
+ </p>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.29</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/html/utilities-ucdn.html b/docs/html/utilities-ucdn.html
new file mode 100644
index 0000000..0d932f9
--- /dev/null
+++ b/docs/html/utilities-ucdn.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>UCDN: HarfBuzz Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="HarfBuzz Manual">
+<link rel="up" href="utilities.html" title="Utilities">
+<link rel="prev" href="utilities-common-types-apis.html" title="Common data types and APIs">
+<link rel="next" href="pt02.html" title="Part II. Reference manual">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="utilities.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="utilities-common-types-apis.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="pt02.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="utilities-ucdn"></a>UCDN</h2></div></div></div>
+<p>
+ HarfBuzz includes a copy of the <a class="ulink" href="https://github.com/grigorig/ucdn" target="_top">UCDN</a> (Unicode
+ Database and Normalization) library, which provides functions
+ for accessing basic Unicode character properties, performing
+ canonical composition, and performing both canonical and
+ compatibility decomposition.
+ </p>
+<p>
+ Currently, UCDN supports direct queries for several more character
+ properties than HarfBuzz's built-in set of Unicode functions
+ does, such as the BiDirectional Class, East Asian Width, Paired
+ Bracket and Resolved Linebreak properties. If you need to access
+ more properties than HarfBuzz's internal implementation
+ provides, using the built-in UCDN functions may be a useful solution.
+ </p>
+<p>
+ The built-in UCDN functions are compiled by default when
+ building HarfBuzz from source, but this can be disabled with a
+ compile-time switch.
+ </p>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.29</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/html/utilities.html b/docs/html/utilities.html
new file mode 100644
index 0000000..05ff3ea
--- /dev/null
+++ b/docs/html/utilities.html
@@ -0,0 +1,188 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Utilities: HarfBuzz Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="HarfBuzz Manual">
+<link rel="up" href="pt01.html" title="Part I. User's manual">
+<link rel="prev" href="level-2.html" title="Level 2">
+<link rel="next" href="utilities-common-types-apis.html" title="Common data types and APIs">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="pt01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="level-2.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="utilities-common-types-apis.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="utilities"></a>Utilities</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section"><a href="utilities.html#utilities-command-line-tools">Command-line tools</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="utilities.html#utilities-command-line-hbshape">hb-shape</a></span></dt>
+<dt><span class="section"><a href="utilities.html#utilities-command-line-hbview">hb-view</a></span></dt>
+<dt><span class="section"><a href="utilities.html#utilities-command-line-hbsubset">hb-subset</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="utilities-common-types-apis.html">Common data types and APIs</a></span></dt>
+<dt><span class="section"><a href="utilities-ucdn.html">UCDN</a></span></dt>
+</dl></div>
+<p>
+ HarfBuzz includes several auxiliary components in addition to the
+ main APIs. These include a set of command-line tools, a set of
+ lower-level APIs for common data types that may be of interest to
+ client programs, and an embedded library for working with
+ Unicode Character Database (UCD) data.
+ </p>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="utilities-command-line-tools"></a>Command-line tools</h2></div></div></div>
+<p>
+ HarfBuzz include three command-line tools:
+ <span style="color: red">&lt;program&gt;hb-shape&lt;/program&gt;</span>, <span style="color: red">&lt;program&gt;hb-view&lt;/program&gt;</span>, and
+ <span style="color: red">&lt;program&gt;hb-subset&lt;/program&gt;</span>. They can be used to examine
+ HarfBuzz's functionality, debug font binaries, or explore the
+ various shaping models and features from a terminal.
+ </p>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="utilities-command-line-hbshape"></a>hb-shape</h3></div></div></div>
+<p>
+ <span class="emphasis"><em><span style="color: red">&lt;program&gt;hb-shape&lt;/program&gt;</span></em></span> allows you to run HarfBuzz's
+ <code class="function">hb_shape()</code> function on an input string and
+ to examine the outcome, in human-readable form, as terminal
+ output. <span style="color: red">&lt;program&gt;hb-shape&lt;/program&gt;</span> does
+ <span class="emphasis"><em>not</em></span> render the results of the shaping call
+ into rendered text (you can use <span style="color: red">&lt;program&gt;hb-view&lt;/program&gt;</span>, below, for
+ that). Instead, it prints out the final glyph indices and
+ positions, taking all shaping operations into account, as if the
+ input string were a HarfBuzz input buffer.
+ </p>
+<p>
+ You can specify the font to be used for shaping and, with
+ command-line options, you can add various aspects of the
+ internal state to the output that is sent to the terminal. The
+ general format is
+ </p>
+<pre class="programlisting">
+ <span class="command"><strong>hb-shape</strong></span> [<span class="optional">[OPTIONS]</span>]
+ <em class="parameter"><code>path/to/font/file.ttf</code></em>
+ <em class="parameter"><code>yourinputtext</code></em>
+ </pre>
+<p>
+ The default output format is plain text (although JSON output
+ can be selected instead by specifying the option
+ [<span class="optional">--output-format=json</span>]). The default output
+ syntax reports each glyph name (or glyph index if there is no
+ name) followed by its cluster value, its horizontal and vertical
+ position displacement, and its horizontal and vertical advances.
+ </p>
+<p>
+ Output options exist to skip any of these elements in the
+ output, and to include additional data, such as Unicode
+ code-point values, glyph extents, glyph flags, or interim
+ shaping results.
+ </p>
+<p>
+ Output can also be redirected to a file, or input read from a
+ file. Additional options enable you to enable or disable
+ specific font features, to set variation-font axis values, to
+ alter the language, script, direction, and clustering settings
+ used, to enable sanity checks, or to change which shaping engine is used.
+ </p>
+<p>
+ For a complete explanation of the options available, run
+ </p>
+<pre class="programlisting">
+ <span class="command"><strong>hb-shape</strong></span> <em class="parameter"><code>--help</code></em>
+ </pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="utilities-command-line-hbview"></a>hb-view</h3></div></div></div>
+<p>
+ <span class="emphasis"><em><span style="color: red">&lt;program&gt;hb-view&lt;/program&gt;</span></em></span> allows you to
+ see the shaped output of an input string in rendered
+ form. Like <span style="color: red">&lt;program&gt;hb-shape&lt;/program&gt;</span>,
+ <span style="color: red">&lt;program&gt;hb-view&lt;/program&gt;</span> takes a font file and a text string
+ as its arguments:
+ </p>
+<pre class="programlisting">
+ <span class="command"><strong>hb-view</strong></span> [<span class="optional">[OPTIONS]</span>]
+ <em class="parameter"><code>path/to/font/file.ttf</code></em>
+ <em class="parameter"><code>yourinputtext</code></em>
+ </pre>
+<p>
+ By default, <span style="color: red">&lt;program&gt;hb-view&lt;/program&gt;</span> renders the shaped
+ text in ASCII block-character images as terminal output. By
+ appending the
+ <span class="command"><strong>--output-file=[<span class="optional">filename</span>]</strong></span>
+ switch, you can write the output to a PNG, SVG, or PDF file
+ (among other formats).
+ </p>
+<p>
+ As with <span style="color: red">&lt;program&gt;hb-shape&lt;/program&gt;</span>, a lengthy set of options
+ is available, with which you can enable or disable
+ specific font features, set variation-font axis values,
+ alter the language, script, direction, and clustering settings
+ used, enable sanity checks, or change which shaping engine is
+ used.
+ </p>
+<p>
+ You can also set the foreground and background colors used for
+ the output, independently control the width of all four
+ margins, alter the line spacing, and annotate the output image
+ with
+ </p>
+<p>
+ In general, <span style="color: red">&lt;program&gt;hb-view&lt;/program&gt;</span> is a quick way to
+ verify that the output of HarfBuzz's shaping operation looks
+ correct for a given text-and-font combination, but you may
+ want to use <span style="color: red">&lt;program&gt;hb-shape&lt;/program&gt;</span> to figure out exactly
+ why something does not appear as expected.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="utilities-command-line-hbsubset"></a>hb-subset</h3></div></div></div>
+<p>
+ <span class="emphasis"><em><span style="color: red">&lt;program&gt;hb-subset&lt;/program&gt;</span></em></span> allows you
+ to generate a subset of a given font, with a limited set of
+ supported characters, features, and variation settings.
+ </p>
+<p>
+ By default, you provide an input font and an input text string
+ as the arguments to <span style="color: red">&lt;program&gt;hb-subset&lt;/program&gt;</span>, and it will
+ generate a font that covers the input text exactly like the
+ input font does, but includes no other characters or features.
+ </p>
+<pre class="programlisting">
+ <span class="command"><strong>hb-subset</strong></span> [<span class="optional">[OPTIONS]</span>]
+ <em class="parameter"><code>path/to/font/file.ttf</code></em>
+ <em class="parameter"><code>yourinputtext</code></em>
+ </pre>
+<p>
+ For example, to create a subset of Noto Serif that just includes the
+ numerals and the lowercase Latin alphabet, you could run
+ </p>
+<pre class="programlisting">
+ <span class="command"><strong>hb-subset</strong></span> [<span class="optional">[OPTIONS]</span>]
+ <em class="parameter"><code>NotoSerif-Regular.ttf</code></em>
+ <em class="parameter"><code>0123456789abcdefghijklmnopqrstuvwxyz</code></em>
+ </pre>
+<p>
+ There are options available to remove hinting from the
+ subsetted font and to specify a list of variation-axis settings.
+ </p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.29</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/html/what-about-the-other-scripts.html b/docs/html/what-about-the-other-scripts.html
deleted file mode 100644
index edb7235..0000000
--- a/docs/html/what-about-the-other-scripts.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>What about the other scripts?: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="buffers-language-script-and-direction.html" title="Buffers, language, script and direction">
-<link rel="prev" href="setting-buffer-properties.html" title="Setting buffer properties">
-<link rel="next" href="customizing-unicode-functions.html" title="Customizing Unicode functions">
-<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="buffers-language-script-and-direction.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="setting-buffer-properties.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="customizing-unicode-functions.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="section">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="what-about-the-other-scripts"></a>What about the other scripts?</h2></div></div></div>
-<p>
- </p>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.29</div>
-</body>
-</html> \ No newline at end of file
diff --git a/docs/html/why-do-i-need-a-shaping-engine.html b/docs/html/why-do-i-need-a-shaping-engine.html
index e340ac5..fb61aed 100644
--- a/docs/html/why-do-i-need-a-shaping-engine.html
+++ b/docs/html/why-do-i-need-a-shaping-engine.html
@@ -97,9 +97,9 @@
</p>
<p>
For example, in Tamil, when the letter "TTA" (ட)
- letter is followed by "U" (உ), the pair
+ letter is followed by the vowel sign "U" (ு), the pair
must be replaced by the single glyph "டு". The
- sequence of Unicode characters "டஉ" needs to be
+ sequence of Unicode characters "ட,ு" needs to be
substituted with a single "டு" glyph from the
font.
</p>
diff --git a/docs/html/working-with-harfbuzz-clusters.html b/docs/html/working-with-harfbuzz-clusters.html
index 74ffd3b..1fab4ad 100644
--- a/docs/html/working-with-harfbuzz-clusters.html
+++ b/docs/html/working-with-harfbuzz-clusters.html
@@ -76,18 +76,20 @@
order.
</p>
<p>
- For left-to-right scripts (LTR) and top-to-bottom scripts (TTB),
+ For buffers in the left-to-right (LTR)
+ or top-to-bottom (TTB) text flow direction,
HarfBuzz will preserve the monotonic property: client programs
- are guaranteed that monotonically increasing initial clulster
+ are guaranteed that monotonically increasing initial cluster
values will be returned as monotonically increasing final
cluster values.
</p>
<p>
- For right-to-left scripts (RTL) and bottom-to-top scripts (BTT),
+ For buffers in the right-to-left (RTL)
+ or bottom-to-top (BTT) text flow direction,
the directionality of the buffer itself is reversed for final
output as a matter of design. Therefore, HarfBuzz inverts the
monotonic property: client programs are guaranteed that
- monotonically increasing initial clulster values will be
+ monotonically increasing initial cluster values will be
returned as monotonically <span class="emphasis"><em>decreasing</em></span> final
cluster values.
</p>
diff --git a/docs/usermanual-buffers-language-script-and-direction.xml b/docs/usermanual-buffers-language-script-and-direction.xml
index 1c6b5da..2865426 100644
--- a/docs/usermanual-buffers-language-script-and-direction.xml
+++ b/docs/usermanual-buffers-language-script-and-direction.xml
@@ -7,30 +7,38 @@
<chapter id="buffers-language-script-and-direction">
<title>Buffers, language, script and direction</title>
<para>
- The input to HarfBuzz is a series of Unicode characters, stored in a
+ The input to the HarfBuzz shaper is a series of Unicode characters, stored in a
buffer. In this chapter, we'll look at how to set up a buffer with
- the text that we want and then customize the properties of the
- buffer.
+ the text that we want and how to customize the properties of the
+ buffer. We'll also look at a piece of lower-level machinery that
+ you will need to understand before proceeding: the functions that
+ HarfBuzz uses to retrieve Unicode information.
+ </para>
+ <para>
+ After shaping is complete, HarfBuzz puts its output back
+ into the buffer. But getting that output requires setting up a
+ face and a font first, so we will look at that in the next chapter
+ instead of here.
</para>
<section id="creating-and-destroying-buffers">
<title>Creating and destroying buffers</title>
<para>
As we saw in our <emphasis>Getting Started</emphasis> example, a
buffer is created and
- initialized with <literal>hb_buffer_create()</literal>. This
+ initialized with <function>hb_buffer_create()</function>. This
produces a new, empty buffer object, instantiated with some
default values and ready to accept your Unicode strings.
</para>
<para>
HarfBuzz manages the memory of objects (such as buffers) that it
creates, so you don't have to. When you have finished working on
- a buffer, you can call <literal>hb_buffer_destroy()</literal>:
+ a buffer, you can call <function>hb_buffer_destroy()</function>:
</para>
<programlisting language="C">
- hb_buffer_t *buffer = hb_buffer_create();
- ...
- hb_buffer_destroy(buffer);
-</programlisting>
+ hb_buffer_t *buf = hb_buffer_create();
+ ...
+ hb_buffer_destroy(buf);
+ </programlisting>
<para>
This will destroy the object and free its associated memory -
unless some other part of the program holds a reference to this
@@ -39,46 +47,364 @@
else destroying it, you should increase its reference count:
</para>
<programlisting language="C">
-void somefunc(hb_buffer_t *buffer) {
- buffer = hb_buffer_reference(buffer);
- ...
-</programlisting>
+ void somefunc(hb_buffer_t *buf) {
+ buf = hb_buffer_reference(buf);
+ ...
+ </programlisting>
<para>
And then decrease it once you're done with it:
</para>
<programlisting language="C">
- hb_buffer_destroy(buffer);
-}
-</programlisting>
+ hb_buffer_destroy(buf);
+ }
+ </programlisting>
+ <para>
+ While we are on the subject of reference-counting buffers, it is
+ worth noting that an individual buffer can only meaningfully be
+ used by one thread at a time.
+ </para>
<para>
To throw away all the data in your buffer and start from scratch,
- call <literal>hb_buffer_reset(buffer)</literal>. If you want to
+ call <function>hb_buffer_reset(buf)</function>. If you want to
throw away the string in the buffer but keep the options, you can
- instead call <literal>hb_buffer_clear_contents(buffer)</literal>.
+ instead call <function>hb_buffer_clear_contents(buf)</function>.
</para>
</section>
+
<section id="adding-text-to-the-buffer">
<title>Adding text to the buffer</title>
<para>
Now we have a brand new HarfBuzz buffer. Let's start filling it
with text! From HarfBuzz's perspective, a buffer is just a stream
- of Unicode codepoints, but your input string is probably in one of
- the standard Unicode character encodings (UTF-8, UTF-16, UTF-32)
+ of Unicode code points, but your input string is probably in one of
+ the standard Unicode character encodings (UTF-8, UTF-16, or
+ UTF-32). HarfBuzz provides convenience functions that accept
+ each of these encodings:
+ <function>hb_buffer_add_utf8()</function>,
+ <function>hb_buffer_add_utf16()</function>, and
+ <function>hb_buffer_add_utf32()</function>. Other than the
+ character encoding they accept, they function identically.
+ </para>
+ <para>
+ You can add UTF-8 text to a buffer by passing in the text array,
+ the array's length, an offset into the array for the first
+ character to add, and the length of the segment to add:
</para>
+ <programlisting language="C">
+ hb_buffer_add_utf8 (hb_buffer_t *buf,
+ const char *text,
+ int text_length,
+ unsigned int item_offset,
+ int item_length)
+ </programlisting>
+ <para>
+ So, in practice, you can say:
+ </para>
+ <programlisting language="C">
+ hb_buffer_add_utf8(buf, text, strlen(text), 0, strlen(text));
+ </programlisting>
+ <para>
+ This will append your new characters to
+ <parameter>buf</parameter>, not replace its existing
+ contents. Also, note that you can use <literal>-1</literal> in
+ place of the first instance of <function>strlen(text)</function>
+ if your text array is NULL-terminated. Similarly, you can also use
+ <literal>-1</literal> as the final argument want to add its full
+ contents.
+ </para>
+ <para>
+ Whatever start <parameter>item_offset</parameter> and
+ <parameter>item_length</parameter> you provide, HarfBuzz will also
+ attempt to grab the five characters <emphasis>before</emphasis>
+ the offset point and the five characters
+ <emphasis>after</emphasis> the designated end. These are the
+ before and after "context" segments, which are used internally
+ for HarfBuzz to make shaping decisions. They will not be part of
+ the final output, but they ensure that HarfBuzz's
+ script-specific shaping operations are correct. If there are
+ fewer than five characters available for the before or after
+ contexts, HarfBuzz will just grab what is there.
+ </para>
+ <para>
+ For longer text runs, such as full paragraphs, it might be
+ tempting to only add smaller sub-segments to a buffer and
+ shape them in piecemeal fashion. Generally, this is not a good
+ idea, however, because a lot of shaping decisions are
+ dependent on this context information. For example, in Arabic
+ and other connected scripts, HarfBuzz needs to know the code
+ points before and after each character in order to correctly
+ determine which glyph to return.
+ </para>
+ <para>
+ The safest approach is to add all of the text available, then
+ use <parameter>item_offset</parameter> and
+ <parameter>item_length</parameter> to indicate which characters you
+ want shaped, so that HarfBuzz has access to any context.
+ </para>
+ <para>
+ You can also add Unicode code points directly with
+ <function>hb_buffer_add_codepoints()</function>. The arguments
+ to this function are the same as those for the UTF
+ encodings. But it is particularly important to note that
+ HarfBuzz does not do validity checking on the text that is added
+ to a buffer. Invalid code points will be replaced, but it is up
+ to you to do any deep-sanity checking necessary.
+ </para>
+
</section>
+
<section id="setting-buffer-properties">
<title>Setting buffer properties</title>
<para>
+ Buffers containing input characters still need several
+ properties set before HarfBuzz can shape their text correctly.
+ </para>
+ <para>
+ Initially, all buffers are set to the
+ <literal>HB_BUFFER_CONTENT_TYPE_INVALID</literal> content
+ type. After adding text, the buffer should be set to
+ <literal>HB_BUFFER_CONTENT_TYPE_UNICODE</literal> instead, which
+ indicates that it contains un-shaped input
+ characters. After shaping, the buffer will have the
+ <literal>HB_BUFFER_CONTENT_TYPE_GLYPHS</literal> content type.
+ </para>
+ <para>
+ <function>hb_buffer_add_utf8()</function> and the
+ other UTF functions set the content type of their buffer
+ automatically. But if you are reusing a buffer you may want to
+ check its state with
+ <function>hb_buffer_get_content_type(buffer)</function>. If
+ necessary you can set the content type with
+ </para>
+ <programlisting language="C">
+ hb_buffer_set_content_type(buf, HB_BUFFER_CONTENT_TYPE_UNICODE);
+ </programlisting>
+ <para>
+ to prepare for shaping.
+ </para>
+ <para>
+ Buffers also need to carry information about the script,
+ language, and text direction of their contents. You can set
+ these properties individually:
+ </para>
+ <programlisting language="C">
+ hb_buffer_set_direction(buf, HB_DIRECTION_LTR);
+ hb_buffer_set_script(buf, HB_SCRIPT_LATIN);
+ hb_buffer_set_language(buf, hb_language_from_string("en", -1));
+ </programlisting>
+ <para>
+ However, since these properties are often the repeated for
+ multiple text runs, you can also save them in a
+ <literal>hb_segment_properties_t</literal> for reuse:
+ </para>
+ <programlisting language="C">
+ hb_segment_properties_t *savedprops;
+ hb_buffer_get_segment_properties (buf, savedprops);
+ ...
+ hb_buffer_set_segment_properties (buf2, savedprops);
+ </programlisting>
+ <para>
+ HarfBuzz also provides getter functions to retrieve a buffer's
+ direction, script, and language properties individually.
+ </para>
+ <para>
+ HarfBuzz recognizes four text directions in
+ <type>hb_direction_t</type>: left-to-right
+ (<literal>HB_DIRECTION_LTR</literal>), right-to-left (<literal>HB_DIRECTION_RTL</literal>),
+ top-to-bottom (<literal>HB_DIRECTION_TTB</literal>), and
+ bottom-to-top (<literal>HB_DIRECTION_BTT</literal>). For the
+ script property, HarfBuzz uses identifiers based on the
+ <ulink
+ url="https://unicode.org/iso15924/">ISO 15924
+ standard</ulink>. For languages, HarfBuzz uses tags based on the
+ <ulink url="https://tools.ietf.org/html/bcp47">IETF BCP 47</ulink> standard.
+ </para>
+ <para>
+ Helper functions are provided to convert character strings into
+ the necessary script and language tag types.
+ </para>
+ <para>
+ Two additional buffer properties to be aware of are the
+ "invisible glyph" and the replacement code point. The
+ replacement code point is inserted into buffer output in place of
+ any invalid code points encountered in the input. By default, it
+ is the Unicode <literal>REPLACEMENT CHARACTER</literal> code
+ point, <literal>U+FFFD</literal> "&#xFFFD;". You can change this with
+ </para>
+ <programlisting language="C">
+ hb_buffer_set_replacement_codepoint(buf, replacement);
+ </programlisting>
+ <para>
+ passing in the replacement Unicode code point as the
+ <parameter>replacement</parameter> parameter.
</para>
- </section>
- <section id="what-about-the-other-scripts">
- <title>What about the other scripts?</title>
<para>
+ The invisible glyph is used to replace all output glyphs that
+ are invisible. By default, the standard space character
+ <literal>U+0020</literal> is used; you can replace this (for
+ example, when using a font that provides script-specific
+ spaces) with
+ </para>
+ <programlisting language="C">
+ hb_buffer_set_invisible_glyph(buf, replacement_glyph);
+ </programlisting>
+ <para>
+ Do note that in the <parameter>replacement_glyph</parameter>
+ parameter, you must provide the glyph ID of the replacement you
+ wish to use, not the Unicode code point.
+ </para>
+ <para>
+ HarfBuzz supports a few additional flags you might want to set
+ on your buffer under certain circumstances. The
+ <literal>HB_BUFFER_FLAG_BOT</literal> and
+ <literal>HB_BUFFER_FLAG_EOT</literal> flags tell HarfBuzz
+ that the buffer represents the beginning or end (respectively)
+ of a text element (such as a paragraph or other block). Knowing
+ this allows HarfBuzz to apply certain contextual font features
+ when shaping, such as initial or final variants in connected
+ scripts.
+ </para>
+ <para>
+ <literal>HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES</literal>
+ tells HarfBuzz not to hide glyphs with the
+ <literal>Default_Ignorable</literal> property in Unicode. This
+ property designates control characters and other non-printing
+ code points, such as joiners and variation selectors. Normally
+ HarfBuzz replaces them in the output buffer with zero-width
+ space glyphs (using the "invisible glyph" property discussed
+ above); setting this flag causes them to be printed, which can
+ be helpful for troubleshooting.
+ </para>
+ <para>
+ Conversely, setting the
+ <literal>HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES</literal> flag
+ tells HarfBuzz to remove <literal>Default_Ignorable</literal>
+ glyphs from the output buffer entirely. Finally, setting the
+ <literal>HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE</literal>
+ flag tells HarfBuzz not to insert the dotted-circle glyph
+ (<literal>U+25CC</literal>, "&#x25CC;"), which is normally
+ inserted into buffer output when broken character sequences are
+ encountered (such as combining marks that are not attached to a
+ base character).
</para>
</section>
+
<section id="customizing-unicode-functions">
<title>Customizing Unicode functions</title>
<para>
+ HarfBuzz requires some simple functions for accessing
+ information from the Unicode Character Database (such as the
+ <literal>General_Category</literal> (gc) and
+ <literal>Script</literal> (sc) properties) that is useful
+ for shaping, as well as some useful operations like composing and
+ decomposing code points.
+ </para>
+ <para>
+ HarfBuzz includes its own internal, lightweight set of Unicode
+ functions. At build time, it is also possible to compile support
+ for some other options, such as the Unicode functions provided
+ by GLib or the International Components for Unicode (ICU)
+ library. Generally, this option is only of interest for client
+ programs that have specific integration requirements or that do
+ a significant amount of customization.
+ </para>
+ <para>
+ If your program has access to other Unicode functions, however,
+ such as through a system library or application framework, you
+ might prefer to use those instead of the built-in
+ options. HarfBuzz supports this by implementing its Unicode
+ functions as a set of virtual methods that you can replace —
+ without otherwise affecting HarfBuzz's functionality.
+ </para>
+ <para>
+ The Unicode functions are specified in a structure called
+ <literal>unicode_funcs</literal> which is attached to each
+ buffer. But even though <literal>unicode_funcs</literal> is
+ associated with a <type>hb_buffer_t</type>, the functions
+ themselves are called by other HarfBuzz APIs that access
+ buffers, so it would be unwise for you to hook different
+ functions into different buffers.
+ </para>
+ <para>
+ In addition, you can mark your <literal>unicode_funcs</literal>
+ as immutable by calling
+ <function>hb_unicode_funcs_make_immutable (ufuncs)</function>.
+ This is especially useful if your code is a
+ library or framework that will have its own client programs. By
+ marking your Unicode function choices as immutable, you prevent
+ your own client programs from changing the
+ <literal>unicode_funcs</literal> configuration and introducing
+ inconsistencies and errors downstream.
+ </para>
+ <para>
+ You can retrieve the Unicode-functions configuration for
+ your buffer by calling <function>hb_buffer_get_unicode_funcs()</function>:
+ </para>
+ <programlisting language="C">
+ hb_unicode_funcs_t *ufunctions;
+ ufunctions = hb_buffer_get_unicode_funcs(buf);
+ </programlisting>
+ <para>
+ The current version of <literal>unicode_funcs</literal> uses six functions:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <function>hb_unicode_combining_class_func_t</function>:
+ returns the Canonical Combining Class of a code point.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <function>hb_unicode_general_category_func_t</function>:
+ returns the General Category (gc) of a code point.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <function>hb_unicode_mirroring_func_t</function>: returns
+ the Mirroring Glyph code point (for bi-directional
+ replacement) of a code point.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <function>hb_unicode_script_func_t</function>: returns the
+ Script (sc) property of a code point.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <function>hb_unicode_compose_func_t</function>: returns the
+ canonical composition of a sequence of two code points.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <function>hb_unicode_decompose_func_t</function>: returns
+ the canonical decomposition of a code point.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ Note, however, that future HarfBuzz releases may alter this set.
+ </para>
+ <para>
+ Each Unicode function has a corresponding setter, with which you
+ can assign a callback to your replacement function. For example,
+ to replace
+ <function>hb_unicode_general_category_func_t</function>, you can call
+ </para>
+ <programlisting language="C">
+ hb_unicode_funcs_set_general_category_func (*ufuncs, func, *user_data, destroy)
+ </programlisting>
+ <para>
+ Virtualizing this set of Unicode functions is primarily intended
+ to improve portability. There is no need for every client
+ program to make the effort to replace the default options, so if
+ you are unsure, do not feel any pressure to customize
+ <literal>unicode_funcs</literal>.
</para>
</section>
+
</chapter>
diff --git a/docs/usermanual-clusters.xml b/docs/usermanual-clusters.xml
index b8d9191..9147ff0 100644
--- a/docs/usermanual-clusters.xml
+++ b/docs/usermanual-clusters.xml
@@ -156,18 +156,20 @@
order.
</para>
<para>
- For left-to-right scripts (LTR) and top-to-bottom scripts (TTB),
+ For buffers in the left-to-right (LTR)
+ or top-to-bottom (TTB) text flow direction,
HarfBuzz will preserve the monotonic property: client programs
- are guaranteed that monotonically increasing initial clulster
+ are guaranteed that monotonically increasing initial cluster
values will be returned as monotonically increasing final
cluster values.
</para>
<para>
- For right-to-left scripts (RTL) and bottom-to-top scripts (BTT),
+ For buffers in the right-to-left (RTL)
+ or bottom-to-top (BTT) text flow direction,
the directionality of the buffer itself is reversed for final
output as a matter of design. Therefore, HarfBuzz inverts the
monotonic property: client programs are guaranteed that
- monotonically increasing initial clulster values will be
+ monotonically increasing initial cluster values will be
returned as monotonically <emphasis>decreasing</emphasis> final
cluster values.
</para>
diff --git a/docs/usermanual-fonts-and-faces.xml b/docs/usermanual-fonts-and-faces.xml
index 5536004..1258bec 100644
--- a/docs/usermanual-fonts-and-faces.xml
+++ b/docs/usermanual-fonts-and-faces.xml
@@ -5,20 +5,449 @@
<!ENTITY version SYSTEM "version.xml">
]>
<chapter id="fonts-and-faces">
- <title>Fonts and faces</title>
- <section id="using-freetype">
- <title>Using FreeType</title>
+ <title>Fonts, faces, and output</title>
+ <para>
+ In the previous chapter, we saw how to set up a buffer and fill
+ it with text as Unicode code points. In order to shape this
+ buffer text with HarfBuzz, you will need also need a font
+ object.
+ </para>
+ <para>
+ HarfBuzz provides abstractions to help you cache and reuse the
+ heavier parts of working with binary fonts, so we will look at
+ how to do that. We will also look at how to work with the
+ FreeType font-rendering library and at how you can customize
+ HarfBuzz to work with other libraries.
+ </para>
+ <para>
+ Finally, we will look at how to work with OpenType variable
+ fonts, the latest update to the OpenType font format, and at
+ some other recent additions to OpenType.
+ </para>
+
+ <section id="fonts-and-faces-objects">
+ <title>Font and face objects</title>
+ <para>
+ The outcome of shaping a run of text depends on the contents of
+ a specific font file (such as the substitutions and positioning
+ moves in the 'GSUB' and 'GPOS' tables), so HarfBuzz makes
+ accessing those internals fast.
+ </para>
+ <para>
+ An <type>hb_face_t</type> represents a <emphasis>face</emphasis>
+ in HarfBuzz. This data type is a wrapper around an
+ <type>hb_blob_t</type> blob that holds the contents of a binary
+ font file. Since HarfBuzz supports TrueType Collections and
+ OpenType Collections (each of which can include multiple
+ typefaces), a HarfBuzz face also requires an index number
+ specifying which typeface in the file you want to use. Most of
+ the font files you will encounter in the wild include just a
+ single face, however, so most of the time you would pass in
+ <literal>0</literal> as the index when you create a face:
+ </para>
+ <programlisting language="C">
+ hb_blob_t* blob = hb_blob_create_from_file(file);
+ ...
+ hb_face_t* face = hb_face_create(blob, 0);
+ </programlisting>
+ <para>
+ On its own, a face object is not quite ready to use for
+ shaping. The typeface must be set to a specific point size in
+ order for some details (such as hinting) to work. In addition,
+ if the font file in question is an OpenType Variable Font, then
+ you may need to specify one or variation-axis settings (or a
+ named instance) in order to get the output you need.
+ </para>
+ <para>
+ In HarfBuzz, you do this by creating a <emphasis>font</emphasis>
+ object from your face.
+ </para>
+ <para>
+ Font objects also have the advantage of being considerably
+ lighter-weight than face objects (remember that a face contains
+ the contents of a binary font file mapped into memory). As a
+ result, you can cache and reuse a font object, but you could
+ also create a new one for each additional size you needed.
+ Creating new fonts incurs some additional overhead, of course,
+ but whether or not it is excessive is your call in the end. In
+ contrast, face objects are substantially larger, and you really
+ should cache them and reuse them whenever possible.
+ </para>
+ <para>
+ You can create a font object from a face object:
+ </para>
+ <programlisting language="C">
+ hb_font_t* hb_font = hb_font_create(hb_face);
+ </programlisting>
+ <para>
+ After creating a font, there are a few properties you should
+ set. Many fonts enable and disable hints based on the size it
+ is used at, so setting this is important for font
+ objects. <function>hb_font_set_ppem(font, x_ppem,
+ y_ppem)</function> sets the pixels-per-EM value of the font. You
+ can also set the point size of the font with
+ <function>hb_font_set_ptem(font, ptem)</function>. HarfBuzz uses the
+ industry standard 72 points per inch.
+ </para>
+ <para>
+ HarfBuzz lets you specify the degree subpixel precision you want
+ through a scaling factor. You can set horizontal and
+ vertical scaling factors on the
+ font by calling <function>hb_font_set_scale(font, x_scale,
+ y_scale)</function>.
+ </para>
+ <para>
+ There may be times when you are handed a font object and need to
+ access the face object that it comes from. For that, you can call
+ </para>
+ <programlisting language="C">
+ hb_face = hb_font_get_face(hb_font);
+ </programlisting>
+ <para>
+ You can also create a font object from an existing font object
+ using the <function>hb_font_create_sub_font()</function>
+ function. This creates a child font object that is initiated
+ with the same attributes as its parent; it can be used to
+ quickly set up a new font for the purpose of overriding a specific
+ font-functions method.
+ </para>
<para>
+ All face objects and font objects are lifecycle-managed by
+ HarfBuzz. After creating a face, you increase its reference
+ count with <function>hb_face_reference(face)</function> and
+ decrease it with
+ <function>hb_face_destroy(face)</function>. Likewise, you
+ increase the reference count on a font with
+ <function>hb_font_reference(font)</function> and decrease it
+ with <function>hb_font_destroy(font)</function>.
+ </para>
+ <para>
+ You can also attach user data to face objects and font objects.
</para>
</section>
- <section id="using-harfbuzzs-native-opentype-implementation">
- <title>Using HarfBuzz's native OpenType implementation</title>
+
+ <section id="fonts-and-faces-custom-functions">
+ <title>Customizing font functions</title>
+ <para>
+ During shaping, HarfBuzz frequently needs to query font objects
+ to get at the contents and parameters of the glyphs in a font
+ file. It includes a built-in set of functions that is tailored
+ to working with OpenType fonts. However, as was the case with
+ Unicode functions in the buffers chapter, HarfBuzz also wants to
+ make it easy for you to assign a substitute set of font
+ functions if you are developing a program to work with a library
+ or platform that provides its own font functions.
+ </para>
+ <para>
+ Therefore, the HarfBuzz API defines a set of virtual
+ methods for accessing font-object properties, and you can
+ replace the defaults with your own selections without
+ interfering with the shaping process. Each font object in
+ HarfBuzz includes a structure called
+ <literal>font_funcs</literal> that serves as a vtable for the
+ font object. The virtual methods in
+ <literal>font_funcs</literal> are:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <function>hb_font_get_font_h_extents_func_t</function>: returns
+ the extents of the font for horizontal text.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <function>hb_font_get_font_v_extents_func_t</function>: returns
+ the extents of the font for vertical text.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <function>hb_font_get_nominal_glyph_func_t</function>: returns
+ the font's nominal glyph for a given code point.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <function>hb_font_get_variation_glyph_func_t</function>: returns
+ the font's glyph for a given code point when it is followed by a
+ given Variation Selector.
+ </para>
+ </listitem>
+ <listitem>
<para>
+ <function>hb_font_get_nominal_glyphs_func_t</function>: returns
+ the font's nominal glyphs for a series of code points.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <function>hb_font_get_glyph_advance_func_t</function>: returns
+ the advance for a glyph.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <function>hb_font_get_glyph_h_advance_func_t</function>: returns
+ the advance for a glyph for horizontal text.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <function>hb_font_get_glyph_v_advance_func_t</function>:returns
+ the advance for a glyph for vertical text.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <function>hb_font_get_glyph_advances_func_t</function>: returns
+ the advances for a series of glyphs.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <function>hb_font_get_glyph_h_advances_func_t</function>: returns
+ the advances for a series of glyphs for horizontal text .
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <function>hb_font_get_glyph_v_advances_func_t</function>: returns
+ the advances for a series of glyphs for vertical text.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <function>hb_font_get_glyph_origin_func_t</function>: returns
+ the origin coordinates of a glyph.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <function>hb_font_get_glyph_h_origin_func_t</function>: returns
+ the origin coordinates of a glyph for horizontal text.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <function>hb_font_get_glyph_v_origin_func_t</function>: returns
+ the origin coordinates of a glyph for vertical text.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <function>hb_font_get_glyph_extents_func_t</function>: returns
+ the extents for a glyph.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <function>hb_font_get_glyph_contour_point_func_t</function>:
+ returns the coordinates of a specific contour point from a glyph.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <function>hb_font_get_glyph_name_func_t</function>: returns the
+ name of a glyph (from its glyph index).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <function>hb_font_get_glyph_from_name_func_t</function>: returns
+ the glyph index that corresponds to a given glyph name.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ You can fetch the font-functions configuration for a font object
+ by calling <function>hb_font_get_font_funcs()</function>:
+ </para>
+ <programlisting language="C">
+ hb_font_funcs_t *ffunctions;
+ ffunctions = hb_font_get_font_funcs (font);
+ </programlisting>
+ <para>
+ The individual methods can each be replaced with their own setter
+ function, such as
+ <function>hb_font_funcs_set_nominal_glyph_func(*ffunctions,
+ func, *user_data, destroy)</function>.
+ </para>
+ <para>
+ Font-functions structures can be reused for multiple font
+ objects, and can be reference counted with
+ <function>hb_font_funcs_reference()</function> and
+ <function>hb_font_funcs_destroy()</function>. Just like other
+ objects in HarfBuzz, you can set user-data for each
+ font-functions structure and assign a destroy callback for
+ it.
+ </para>
+ <para>
+ You can also mark a font-functions structure as immutable,
+ with <function>hb_font_funcs_make_immutable()</function>. This
+ is especially useful if your code is a library or framework that
+ will have its own client programs. By marking your
+ font-functions structures as immutable, you prevent your client
+ programs from changing the configuration and introducing
+ inconsistencies and errors downstream.
</para>
</section>
- <section id="using-your-own-font-functions">
- <title>Using your own font functions</title>
+
+ <section id="fonts-and-faces-native-opentype">
+ <title>Font objects and HarfBuzz's native OpenType implementation</title>
+ <para>
+ By default, whenever HarfBuzz creates a font object, it will
+ configure the font to use a built-in set of font functions that
+ supports contemporary OpenType font internals. If you want to
+ work with OpenType or TrueType fonts, you should be able to use
+ these functions without difficulty.
+ </para>
+ <para>
+ Many of the methods in the font-functions structure deal with
+ the fundamental properties of glyphs that are required for
+ shaping text: extents (the maximums and minimums on each axis),
+ origins (the <literal>(0,0)</literal> coordinate point which
+ glyphs are drawn in reference to), and advances (the amount that
+ the cursor needs to be moved after drawing each glyph, including
+ any empty space for the glyph's side bearings).
+ </para>
+ <para>
+ As you can see in the list of functions, there are separate "horizontal"
+ and "vertical" variants depending on whether the text is set in
+ the horizontal or vertical direction. For some scripts, fonts
+ that are designed to support text set horizontally or vertically (for
+ example, in Japanese) may include metrics for both text
+ directions. When fonts don't include this information, HarfBuzz
+ does its best to transform what the font provides.
+ </para>
+ <para>
+ In addition to the direction-specific functions, HarfBuzz
+ provides some higher-level functions for fetching information
+ like extents and advances for a glyph. If you call
+ </para>
+ <programlisting language="C">
+ hb_font_get_glyph_advance_for_direction(font, direction, extents);
+ </programlisting>
+ <para>
+ then you can provide any <type>hb_direction_t</type> as the
+ <parameter>direction</parameter> parameter, and HarfBuzz will
+ use the correct function variant for the text direction. There
+ are similar higher-level versions of the functions for fetching
+ extents, origin coordinates, and contour-point
+ coordinates. There are also addition and subtraction functions
+ for moving points with respect to the origin.
+ </para>
+ <para>
+ There are also methods for fetching the glyph ID that
+ corresponds to a Unicode code point (possibly when followed by a
+ variation-selector code point), fetching the glyph name from the
+ font, and fetching the glyph ID that corresponds to a glyph name
+ you already have.
+ </para>
+ <para>
+ HarfBuzz also provides functions for converting between glyph
+ names and string
+ variables. <function>hb_font_glyph_to_string(font, glyph, s,
+ size)</function> retrieves the name for the glyph ID
+ <parameter>glyph</parameter> from the font object. It generates a
+ generic name of the form <literal>gidDDD</literal> (where DDD is
+ the glyph index) if there is no name for the glyph in the
+ font. The <function>hb_font_glyph_from_string(font, s, len,
+ glyph)</function> takes an input string <parameter>s</parameter>
+ and looks for a glyph with that name in the font, returning its
+ glyph ID in the <parameter>glyph</parameter>
+ output parameter. It automatically parses
+ <literal>gidDDD</literal> and <literal>uniUUUU</literal> strings.
+ </para>
+ </section>
+
+
+ <!-- Commenting out FreeType integration section-holder for now. May move
+ to the full-blown Integration Chapter. -->
+
+ <!-- <section id="fonts-and-faces-freetype">
+ <title>Using FreeType</title>
+ <para>
+
+ </para>
+ <para>
+
+ </para>
+ </section> -->
+
+ <section id="fonts-and-faces-variable">
+ <title>Working with OpenType Variable Fonts</title>
+ <para>
+ If you are working with OpenType Variable Fonts, there are a few
+ additional functions you should use to specify the
+ variation-axis settings of your font object. Without doing so,
+ your variable font's font object can still be used, but only at
+ the default setting for every axis (which, of course, is
+ sometimes what you want, but does not cover general usage).
+ </para>
+ <para>
+ HarfBuzz manages variation settings in the
+ <type>hb_variation_t</type> data type, which holds a <property>tag</property> for the
+ variation-axis identifier tag and a <property>value</property> for its
+ setting. You can retrieve the list of variation axes in a font
+ binary from the face object (not from a font object, notably) by
+ calling <function>hb_ot_var_get_axis_count(face)</function> to
+ find the number of axes, then using
+ <function>hb_ot_var_get_axis_infos()</function> to collect the
+ axis structures:
+ </para>
+ <programlisting language="C">
+ axes = hb_ot_var_get_axis_count(face);
+ ...
+ hb_ot_var_get_axis_infos(face, 0, axes, axes_array);
+ </programlisting>
+ <para>
+ For each axis returned in the array, you can can access the
+ identifier in its <property>tag</property>. HarfBuzz also has
+ tag definitions predefined for the five standard axes specified
+ in OpenType (<literal>ital</literal> for italic,
+ <literal>opsz</literal> for optical size,
+ <literal>slnt</literal> for slant, <literal>wdth</literal> for
+ width, and <literal>wght</literal> for weight). Each axis also
+ has a <property>min_value</property>, a
+ <property>default_value</property>, and a <property>max_value</property>.
+ </para>
+ <para>
+ To set your font object's variation settings, you call the
+ <function>hb_font_set_variations()</function> function with an
+ array of <type>hb_variation_t</type> variation settings. Let's
+ say our font has weight and width axes. We need to specify each
+ of the axes by tag and assign a value on the axis:
+ </para>
+ <programlisting language="C">
+ unsigned int variation_count = 2;
+ hb_variation_t variation_data[variation_count];
+ variation_data[0].tag = HB_OT_TAG_VAR_AXIS_WIDTH;
+ variation_data[1].tag = HB_OT_TAG_VAR_AXIS_WEIGHT;
+ variation_data[0].value = 80;
+ variation_data[1].value = 750;
+ ...
+ hb_font_set_variations(font, variation_data, variation_count);
+ </programlisting>
+ <para>
+ That should give us a slightly condensed font ("normal" on the
+ <literal>wdth</literal> axis is 100) at a noticeably bolder
+ weight ("regular" is 400 on the <literal>wght</literal> axis).
+ </para>
+ <para>
+ In practice, though, you should always check that the value you
+ want to set on the axis is within the
+ [<property>min_value</property>,<property>max_value</property>]
+ range actually implemented in the font's variation axis. After
+ all, a font might only provide lighter-than-regular weights, and
+ setting a heavier value on the <literal>wght</literal> axis will
+ not change that.
+ </para>
<para>
+ Once your variation settings are specified on your font object,
+ however, shaping with a variable font is just like shaping a
+ static font.
</para>
</section>
-</chapter>
+
+ </chapter>
diff --git a/docs/usermanual-install-harfbuzz.xml b/docs/usermanual-install-harfbuzz.xml
index a1e7ab0..2b61ce8 100644
--- a/docs/usermanual-install-harfbuzz.xml
+++ b/docs/usermanual-install-harfbuzz.xml
@@ -246,7 +246,7 @@
<listitem>
<para>
Use <ulink url="https://developer.gnome.org/glib/">GLib</ulink>. <emphasis>(Default = auto)</emphasis>
- </para>
+ </para>
<para>
This option enables or disables usage of the GLib
library. The default setting is to check for the
@@ -297,7 +297,7 @@
<listitem>
<para>
Use <ulink url="https://www.freedesktop.org/wiki/Software/fontconfig/">Fontconfig</ulink>. <emphasis>(Default = auto)</emphasis>
- </para>
+ </para>
<para>
This option enables or disables usage of the Fontconfig
library, which provides font-matching functions and
@@ -317,7 +317,7 @@
<listitem>
<para>
Use the <ulink url="http://site.icu-project.org/home">ICU</ulink> library. <emphasis>(Default = auto)</emphasis>
- </para>
+ </para>
<para>
This option enables or disables usage of the
<emphasis>International Components for
@@ -331,29 +331,11 @@
</varlistentry>
<varlistentry>
- <term><command>--with-ucdn</command></term>
- <listitem>
- <para>
- Use HarfBuzz's <ulink url="https://github.com/harfbuzz/harfbuzz/tree/master/src/hb-ucdn">built-in UCDN library</ulink>. <emphasis>(Default = auto)</emphasis>
- </para>
- <para>
- The HarfBuzz source tree includes a <emphasis>Unicode
- Database and Normalization</emphasis> (UCDN) library
- that provides access to basic character properties in
- the Unicode Character Database (UCD) as well as low-level
- normalization functions. HarfBuzz can be built without
- this UCDN support if the usage of a different UCDN
- library is desired.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
<term><command>--with-graphite2</command></term>
<listitem>
<para>
Use the <ulink url="http://graphite.sil.org/">Graphite2</ulink> library. <emphasis>(Default = no)</emphasis>
- </para>
+ </para>
<para>
This option enables or disables usage of the Graphite2
library, which provides support for the Graphite shaping
@@ -367,7 +349,7 @@
<listitem>
<para>
Use the <ulink url="https://www.freetype.org/">FreeType</ulink> library. <emphasis>(Default = auto)</emphasis>
- </para>
+ </para>
<para>
This option enables or disables usage of the FreeType
font-rendering library. The default setting is to check for the
@@ -384,7 +366,7 @@
Use the <ulink
url="https://docs.microsoft.com/en-us/windows/desktop/intl/uniscribe">Uniscribe</ulink>
library (experimental). <emphasis>(Default = no)</emphasis>
- </para>
+ </para>
<para>
This option enables or disables usage of the Uniscribe
font-rendering library. Uniscribe is available on
@@ -400,7 +382,7 @@
<listitem>
<para>
Use the <ulink url="https://docs.microsoft.com/en-us/windows/desktop/directwrite/direct-write-portal">DirectWrite</ulink> library (experimental). <emphasis>(Default = no)</emphasis>
- </para>
+ </para>
<para>
This option enables or disables usage of the DirectWrite
font-rendering library. DirectWrite is available on
@@ -416,7 +398,7 @@
<listitem>
<para>
Use the <ulink url="https://developer.apple.com/documentation/coretext">CoreText</ulink> library. <emphasis>(Default = no)</emphasis>
- </para>
+ </para>
<para>
This option enables or disables usage of the CoreText
library. CoreText is available on macOS and iOS systems.
diff --git a/docs/usermanual-object-model.xml b/docs/usermanual-object-model.xml
new file mode 100644
index 0000000..f571c47
--- /dev/null
+++ b/docs/usermanual-object-model.xml
@@ -0,0 +1,258 @@
+<?xml version="1.0"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
+ <!ENTITY version SYSTEM "version.xml">
+]>
+<chapter id="object-model">
+ <title>The HarfBuzz object model</title>
+ <section id="object-model-intro">
+ <title>An overview of data types in HarfBuzz</title>
+ <para>
+ HarfBuzz features two kinds of data types: non-opaque,
+ pass-by-value types and opaque, heap-allocated types. This kind
+ of separation is common in C libraries that have to provide
+ API/ABI compatibility (almost) indefinitely.
+ </para>
+ <para>
+ <emphasis>Value types:</emphasis> The non-opaque, pass-by-value
+ types include integer types, enums, and small structs. Exposing
+ a struct in the public API makes it impossible to expand the
+ struct in the future. As such, exposing structs is reserved for
+ cases where it’s extremely inefficient to do otherwise.
+ </para>
+ <para>
+ In HarfBuzz, several structs, like <literal>hb_glyph_info_t</literal> and
+ <literal>hb_glyph_position_t</literal>, fall into that efficiency-sensitive
+ category and are non-opaque.
+ </para>
+ <para>
+ For all non-opaque structs where future extensibility may be
+ necessary, reserved members are included to hold space for
+ possible future members. As such, it’s important to provide
+ <function>equal()</function>, and <function>hash()</function>
+ methods for such structs, allowing users of the API do
+ effectively deal with the type without having to
+ adapt their code to future changes.
+ </para>
+ <para>
+ Important value types provided by HarfBuzz include the structs
+ for working with Unicode code points, glyphs, and tags for font
+ tables and features, as well as the enums for many Unicode and
+ OpenType properties.
+ </para>
+ </section>
+
+ <section id="object-model-object-types">
+ <title>Objects in HarfBuzz</title>
+ <para>
+ <emphasis>Object types:</emphasis> Opaque struct types are used
+ for what HarfBuzz loosely calls "objects." This doesn’t have
+ much to do with the terminology from object-oriented programming
+ (OOP), although some of the concepts are similar.
+ </para>
+ <para>
+ In HarfBuzz, all object types provide certain
+ lifecycle-management APIs. Objects are reference-counted, and
+ constructed with various <function>create()</function> methods, referenced via
+ <function>reference()</function> and dereferenced using
+ <function>destroy()</function>.
+ </para>
+ <para>
+ For example,
+ the <literal>hb_buffer_t</literal> object has
+ <function>hb_buffer_create()</function> as its constructor,
+ <function>hb_buffer_reference()</function> to reference, and
+ <function>hb_buffer_destroy()</function> to dereference.
+ </para>
+ <para>
+ After construction, each object's properties are accessible only
+ through the setter and getter functions described in the API
+ Reference manual.
+ </para>
+ <para>
+ Key object types provided by HarfBuzz include:
+ </para>
+ <itemizedlist spacing="compact">
+ <listitem>
+ <para>
+ <emphasis>blobs</emphasis>, which act as low-level wrappers around binary
+ data. Blobs are typically used to hold the contents of a
+ binary font file.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>faces</emphasis>, which represent typefaces from a
+ font file, but without specific parameters (such as size) set.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>fonts</emphasis>, which represent instances of a
+ face with all of their parameters specified.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>buffers</emphasis>, which hold Unicode code points
+ for characters (before shaping) and the shaped glyph output
+ (after shaping).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>shape plans</emphasis>, which store the settings
+ that HarfBuzz will use when shaping a particular text
+ segment. Shape plans are not generally used by client
+ programs directly, but as we will see in a later chapter,
+ they are still valuable to understand.
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ </section>
+
+
+
+ <section id="object-model-lifecycle">
+ <title>Object lifecycle management</title>
+ <para>
+ Each object type in HarfBuzz provides a
+ <function>create()</function> method. Some object types provide
+ additional variants of <function>create()</function> to handle
+ special cases or to speed up common tasks; those variants are
+ documented in the API reference. For example,
+ <function>hb_blob_create_from_file()</function> constructs a new
+ blob directly from the contents of a file.
+ </para>
+ <para>
+ All objects are created with an initial reference count of
+ <literal>1</literal>. Client programs can increase the reference
+ count on an object by calling its
+ <function>reference()</function> method. Whenever a client
+ program is finished with an object, it should call its
+ corresponding <function>destroy()</function> method. The destroy
+ method will decrease the reference count on the object and,
+ whenever the reference count reaches zero, it will also destroy
+ the object and free all of the associated memory.
+ </para>
+ <para>
+ All of HarfBuzz's object-lifecycle-management APIs are
+ thread-safe (unless you compiled HarfBuzz from source with the
+ <literal>HB_NO_MT</literal> configuration flag), even when the
+ object as a whole is not thread-safe.
+ It is also permissible to <function>reference()</function> or to
+ <function>destroy()</function> the <literal>NULL</literal>
+ value.
+ </para>
+ <para>
+ Some objects are thread-safe after they have been constructed
+ and set up. The general pattern is to
+ <function>create()</function> the object, make a few
+ <function>set_*()</function> calls to set up the
+ object, and then use it without further modification.
+ </para>
+ <para>
+ To ensure that such an object is not modified, client programs
+ can explicitly mark an object as immutable. HarfBuzz provides
+ <function>make_immutable()</function> methods to mark an object
+ as immutable and <function>is_immutable()</function> methods to
+ test whether or not an object is immutable. Attempts to use
+ setter functions on immutable objects will fail silently; see the API
+ Reference manual for specifics.
+ </para>
+ <para>
+ Note also that there are no "make mutable" methods. If client
+ programs need to alter an object previously marked as immutable,
+ they will need to make a duplicate of the original.
+ </para>
+ <para>
+ Finally, object constructors (and, indeed, as much of the
+ shaping API as possible) will never return
+ <literal>NULL</literal>. Instead, if there is an allocation
+ error, each constructor will return an “empty” object
+ singleton.
+ </para>
+ <para>
+ These empty-object singletons are inert and safe (although
+ typically useless) to pass around. This design choice avoids
+ having to check for <literal>NULL</literal> pointers all
+ throughout the code.
+ </para>
+ <para>
+ In addition, this “empty” object singleton can also be accessed
+ using the <function>get_empty()</function> method of the object
+ type in question.
+ </para>
+ </section>
+
+
+ <section id="object-model-user-data">
+ <title>User data</title>
+ <para>
+ To better integrate with client programs, HarfBuzz's objects
+ offer a "user data" mechanism that can be used to attach
+ arbitrary data to the object. User-data attachment can be
+ useful for tying the lifecycles of various pieces of data
+ together, or for creating language bindings.
+ </para>
+ <para>
+ Each object type has a <function>set_user_data()</function>
+ method and a <function>get_user_data()</function> method. The
+ <function>set_user_data()</function> methods take a client-provided
+ <literal>key</literal> and a pointer,
+ <literal>user_data</literal>, pointing to the data itself. Once
+ the key-data pair has been attached to the object, the
+ <function>get_user_data()</function> method can be called with
+ the key, returning the <function>user_data</function> pointer.
+ </para>
+ <para>
+ The <function>set_user_data()</function> methods also support an
+ optional <function>destroy</function> callback. Client programs
+ can set the <function>destroy</function> callback and receive
+ notification from HarfBuzz whenever the object is destructed.
+ </para>
+ <para>
+ Finally, each <function>set_user_data()</function> method allows
+ the client program to set a <literal>replace</literal> Boolean
+ indicating whether or not the function call should replace any
+ existing <literal>user_data</literal>
+ associated with the specified key.
+ </para>
+ </section>
+
+
+
+ <section id="object-model-blobs">
+ <title>Blobs</title>
+ <para>
+ While most of HarfBuzz's object types are specific to the
+ shaping process, <emphasis>blobs</emphasis> are somewhat
+ different.
+ </para>
+ <para>
+ Blobs are an abstraction desgined to negotiate lifecycle and
+ permissions for raw pieces of data. For example, when you load
+ the raw font data into memory and want to pass it to HarfBuzz,
+ you do so in a <literal>hb_blob_t</literal> wrapper.
+ </para>
+ <para>
+ This allows you to take advantage of HarffBuzz's
+ reference-counting and <function>destroy</function>
+ callbacks. If you allocated the memory for the data using
+ <function>malloc()</function>, you would create the blob using
+ </para>
+ <programlisting language="C">
+ hb_blob_create (data, length, HB_MEMORY_MODE_WRITABLE, NULL, free)
+ </programlisting>
+ <para>
+ That way, HarfBuzz will call <function>free()</function> on the
+ allocated memory whenever the blob drops its last reference and
+ is deconstructed. Consequently, the user code can stop worrying
+ about freeing memory and let the reference-counting machinery
+ take care of that.
+ </para>
+ </section>
+
+</chapter>
diff --git a/docs/usermanual-opentype-features.xml b/docs/usermanual-opentype-features.xml
index 51ff55a..881af2a 100644
--- a/docs/usermanual-opentype-features.xml
+++ b/docs/usermanual-opentype-features.xml
@@ -6,14 +6,301 @@
]>
<chapter id="shaping-and-shape-plans">
<title>Shaping and shape plans</title>
- <section id="opentype-features">
+ <para>
+ Once you have your face and font objects configured as desired and
+ your input buffer is filled with the characters you need to shape,
+ all you need to do is call <function>hb_shape()</function>.
+ </para>
+ <para>
+ HarfBuzz will return the shaped version of the text in the same
+ buffer that you provided, but it will be in output mode. At that
+ point, you can iterate through the glyphs in the buffer, drawing
+ each one at the specified position or handing them off to the
+ appropriate graphics library.
+ </para>
+ <para>
+ For the most part, HarfBuzz's shaping step is straightforward from
+ the outside. But that doesn't mean there will never be cases where
+ you want to look under the hood and see what is happening on the
+ inside. HarfBuzz provides facilities for doing that, too.
+ </para>
+
+ <section id="shaping-buffer-output">
+ <title>Shaping and buffer output</title>
+ <para>
+ The <function>hb_shape()</function> function call takes four arguments: the font
+ object to use, the buffer of characters to shape, an array of
+ user-specified features to apply, and the length of that feature
+ array. The feature array can be NULL, so for the sake of
+ simplicity we will start with that case.
+ </para>
+ <para>
+ Internally, HarfBuzz looks at the tables of the font file to
+ determine where glyph classes, substitutions, and positioning
+ are defined, using that information to decide which
+ <emphasis>shaper</emphasis> to use (<literal>ot</literal> for
+ OpenType fonts, <literal>aat</literal> for Apple Advanced
+ Typography fonts, and so on). It also looks at the direction,
+ script, and language properties of the segment to figure out
+ which script-specific shaping model is needed (at least, in
+ shapers that support multiple options).
+ </para>
+ <para>
+ If a font has a GDEF table, then that is used for
+ glyph classes; if not, HarfBuzz will fall back to Unicode
+ categorization by code point. If a font has an AAT "morx" table,
+ then it is used for substitutions; if not, but there is a GSUB
+ table, then the GSUB table is used. If the font has an AAT
+ "kerx" table, then it is used for positioning; if not, but
+ there is a GPOS table, then the GPOS table is used. If neither
+ table is found, but there is a "kern" table, then HarfBuzz will
+ use the "kern" table. If there is no "kerx", no GPOS, and no
+ "kern", HarfBuzz will fall back to positioning marks itself.
+ </para>
+ <para>
+ With a well-behaved OpenType font, you expect GDEF, GSUB, and
+ GPOS tables to all be applied. HarfBuzz implements the
+ script-specific shaping models in internal functions, rather
+ than in the public API.
+ </para>
+ <para>
+ The algorithms
+ used for complex scripts can be quite involved; HarfBuzz tries
+ to be compatible with the OpenType Layout specification
+ and, wherever there is any ambiguity, HarfBuzz attempts to replicate the
+ output of Microsoft's Uniscribe engine. See the <ulink
+ url="https://docs.microsoft.com/en-us/typography/script-development/standard">Microsoft
+ Typography pages</ulink> for more detail.
+ </para>
+ <para>
+ In general, though, all that you need to know is that
+ <function>hb_shape()</function> returns the results of shaping
+ in the same buffer that you provided. The buffer's content type
+ will now be set to
+ <literal>HB_BUFFER_CONTENT_TYPE_GLYPHS</literal>, indicating
+ that it contains shaped output, rather than input text. You can
+ now extract the glyph information and positioning arrays:
+ </para>
+ <programlisting language="C">
+ hb_glyph_info_t *glyph_info = hb_buffer_get_glyph_infos(buf, &amp;glyph_count);
+ hb_glyph_position_t *glyph_pos = hb_buffer_get_glyph_positions(buf, &amp;glyph_count);
+ </programlisting>
+ <para>
+ The glyph information array holds a <type>hb_glyph_info_t</type>
+ for each output glyph, which has two fields:
+ <parameter>codepoint</parameter> and
+ <parameter>cluster</parameter>. Whereas, in the input buffer,
+ the <parameter>codepoint</parameter> field contained the Unicode
+ code point, it now contains the glyph ID of the corresponding
+ glyph in the font. The <parameter>cluster</parameter> field is
+ an integer that you can use to help identify when shaping has
+ reordered, split, or combined code points; we will say more
+ about that in the next chapter.
+ </para>
+ <para>
+ The glyph positions array holds a corresponding
+ <type>hb_glyph_position_t</type> for each output glyph,
+ containing four fields: <parameter>x_advance</parameter>,
+ <parameter>y_advance</parameter>,
+ <parameter>x_offset</parameter>, and
+ <parameter>y_offset</parameter>. The advances tell you how far
+ you need to move the drawing point after drawing this glyph,
+ depending on whether you are setting horizontal text (in which
+ case you will have x advances) or vertical text (for which you
+ will have y advances). The x and y offsets tell you where to
+ move to start drawing the glyph; usually you will have both and
+ x and a y offset, regardless of the text direction.
+ </para>
+ <para>
+ Most of the time, you will rely on a font-rendering library or
+ other graphics library to do the actual drawing of glyphs, so
+ you will need to iterate through the glyphs in the buffer and
+ pass the corresponding values off.
+ </para>
+ </section>
+
+ <section id="shaping-opentype-features">
<title>OpenType features</title>
<para>
+ OpenType features enable fonts to include smart behavior,
+ implemented as "lookup" rules stored in the GSUB and GPOS
+ tables. The OpenType specification defines a long list of
+ standard features that fonts can use for these behaviors; each
+ feature has a four-character reserved name and a well-defined
+ semantic meaning.
+ </para>
+ <para>
+ Some OpenType features are defined for the purpose of supporting
+ complex-script shaping, and are automatically activated, but
+ only when a buffer's script property is set to a script that the
+ feature supports.
+ </para>
+ <para>
+ Other features are more generic and can apply to several (or
+ any) script, and shaping engines are expected to implement
+ them. By default, HarfBuzz activates several of these features
+ on every text run. They include <literal>abvm</literal>,
+ <literal>blwm</literal>, <literal>ccmp</literal>,
+ <literal>locl</literal>, <literal>mark</literal>,
+ <literal>mkmk</literal>, and <literal>rlig</literal>.
+ </para>
+ <para>
+ In addition, if the text direction is horizontal, HarfBuzz
+ also applies the <literal>calt</literal>,
+ <literal>clig</literal>, <literal>curs</literal>,
+ <literal>dist</literal>, <literal>kern</literal>,
+ <literal>liga</literal>, <literal>rclt</literal>,
+ and <literal>frac</literal> features.
+ </para>
+ <para>
+ If the text direction is vertical, HarfBuzz applies
+ the <literal>vert</literal> feature by default.
+ </para>
+ <para>
+ Still other features are designed to be purely optional and left
+ up to the application or the end user to enable or disable as desired.
+ </para>
+ <para>
+ You can adjust the set of features that HarfBuzz applies to a
+ buffer by supplying an array of <type>hb_feature_t</type>
+ features as the third argument to
+ <function>hb_shape()</function>. For a simple case, let's just
+ enable the <literal>dlig</literal> feature, which turns on any
+ "discretionary" ligatures in the font:
+ </para>
+ <programlisting language="C">
+ hb_feature_t userfeatures[1];
+ userfeatures[0].tag = HB_TAG('d','l','i','g');
+ userfeatures[0].value = 1;
+ userfeatures[0].start = HB_FEATURE_GLOBAL_START;
+ userfeatures[0].end = HB_FEATURE_GLOBAL_END;
+ </programlisting>
+ <para>
+ <literal>HB_FEATURE_GLOBAL_END</literal> and
+ <literal>HB_FEATURE_GLOBAL_END</literal> are macros we can use
+ to indicate that the features will be applied to the entire
+ buffer. We could also have used a literal <literal>0</literal>
+ for the start and a <literal>-1</literal> to indicate the end of
+ the buffer (or have selected other start and end positions, if needed).
+ </para>
+ <para>
+ When we pass the <varname>userfeatures</varname> array to
+ <function>hb_shape()</function>, any discretionary ligature
+ substitutions from our font that match the text in our buffer
+ will get performed:
+ </para>
+ <programlisting language="C">
+ hb_shape(font, buf, userfeatures, num_features);
+ </programlisting>
+ <para>
+ Just like we enabled the <literal>dlig</literal> feature by
+ setting its <parameter>value</parameter> to
+ <literal>1</literal>, you would disable a feature by setting its
+ <parameter>value</parameter> to <literal>0</literal>. Some
+ features can take other <parameter>value</parameter> settings;
+ be sure you read the full specification of each feature tag to
+ understand what it does and how to control it.
</para>
</section>
- <section id="plans-and-caching">
+
+ <section id="shaping-shaper-selection">
+ <title>Shaper selection</title>
+ <para>
+ The basic version of <function>hb_shape()</function> determines
+ its shaping strategy based on examining the capabilities of the
+ font file. OpenType font tables cause HarfBuzz to try the
+ <literal>ot</literal> shaper, while AAT font tables cause HarfBuzz to try the
+ <literal>aat</literal> shaper.
+ </para>
+ <para>
+ In the real world, however, a font might include some unusual
+ mix of tables, or one of the tables might simply be broken for
+ the script you need to shape. So, sometimes, you might not
+ want to rely on HarfBuzz's process for deciding what to do, and
+ just tell <function>hb_shape()</function> what you want it to try.
+ </para>
+ <para>
+ <function>hb_shape_full()</function> is an alternate shaping
+ function that lets you supply a list of shapers for HarfBuzz to
+ try, in order, when shaping your buffer. For example, if you
+ have determined that HarfBuzz's attempts to work around broken
+ tables gives you better results than the AAT shaper itself does,
+ you might move the AAT shaper to the end of your list of
+ preferences and call <function>hb_shape_full()</function>
+ </para>
+ <programlisting language="C">
+ char *shaperprefs[3] = {"ot", "default", "aat"};
+ ...
+ hb_shape_full(font, buf, userfeatures, num_features, shaperprefs);
+ </programlisting>
+ <para>
+ to get results you are happier with.
+ </para>
+ <para>
+ You may also want to call
+ <function>hb_shape_list_shapers()</function> to get a list of
+ the shapers that were built at compile time in your copy of HarfBuzz.
+ </para>
+ </section>
+
+ <section id="shaping-plans-and-caching">
<title>Plans and caching</title>
<para>
+ Internally, HarfBuzz uses a structure called a shape plan to
+ track its decisions about how to shape the contents of a
+ buffer. The <function>hb_shape()</function> function builds up the shape plan by
+ examining segment properties and by inspecting the contents of
+ the font.
+ </para>
+ <para>
+ This process can involve some decision-making and
+ trade-offs — for example, HarfBuzz inspects the GSUB and GPOS
+ lookups for the script and language tags set on the segment
+ properties, but it falls back on the lookups under the
+ <literal>DFLT</literal> tag (and sometimes other common tags)
+ if there are actually no lookups for the tag requested.
+ </para>
+ <para>
+ HarfBuzz also includes some work-arounds for
+ handling well-known older font conventions that do not follow
+ OpenType or Unicode specifications, for buggy system fonts, and for
+ peculiarities of Microsoft Uniscribe. All of that means that a
+ shape plan, while not something that you should edit directly in
+ client code, still might be an object that you want to
+ inspect. Furthermore, if resources are tight, you might want to
+ cache the shape plan that HarfBuzz builds for your buffer and
+ font, so that you do not have to rebuild it for every shaping call.
+ </para>
+ <para>
+ You can create a cacheable shape plan with
+ <function>hb_shape_plan_create_cached(face, props,
+ user_features, num_user_features, shaper_list)</function>, where
+ <parameter>face</parameter> is a face object (not a font object,
+ notably), <parameter>props</parameter> is an
+ <type>hb_segment_properties_t</type>,
+ <parameter>user_features</parameter> is an array of
+ <type>hb_feature_t</type>s (with length
+ <parameter>num_user_features</parameter>), and
+ <parameter>shaper_list</parameter> is a list of shapers to try.
+ </para>
+ <para>
+ Shape plans are objects in HarfBuzz, so there are
+ reference-counting functions and user-data attachment functions
+ you can
+ use. <function>hb_shape_plan_reference(shape_plan)</function>
+ increases the reference count on a shape plan, while
+ <function>hb_shape_plan_destroy(shape_plan)</function> decreases
+ the reference count, destroying the shape plan when the last
+ reference is dropped.
+ </para>
+ <para>
+ You can attach user data to a shaper (with a key) using the
+ <function>hb_shape_plan_set_user_data(shape_plan,key,data,destroy,replace)</function>
+ function, optionally supplying a <function>destroy</function>
+ callback to use. You can then fetch the user data attached to a
+ shape plan with
+ <function>hb_shape_plan_get_user_data(shape_plan, key)</function>.
</para>
</section>
+
</chapter>
diff --git a/docs/usermanual-utilities.xml b/docs/usermanual-utilities.xml
new file mode 100644
index 0000000..1c5370c
--- /dev/null
+++ b/docs/usermanual-utilities.xml
@@ -0,0 +1,244 @@
+<?xml version="1.0"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+ <!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
+ <!ENTITY version SYSTEM "version.xml">
+]>
+<chapter id="utilities">
+ <title>Utilities</title>
+ <para>
+ HarfBuzz includes several auxiliary components in addition to the
+ main APIs. These include a set of command-line tools, a set of
+ lower-level APIs for common data types that may be of interest to
+ client programs, and an embedded library for working with
+ Unicode Character Database (UCD) data.
+ </para>
+
+ <section id="utilities-command-line-tools">
+ <title>Command-line tools</title>
+ <para>
+ HarfBuzz include three command-line tools:
+ <program>hb-shape</program>, <program>hb-view</program>, and
+ <program>hb-subset</program>. They can be used to examine
+ HarfBuzz's functionality, debug font binaries, or explore the
+ various shaping models and features from a terminal.
+ </para>
+
+ <section id="utilities-command-line-hbshape">
+ <title>hb-shape</title>
+ <para>
+ <emphasis><program>hb-shape</program></emphasis> allows you to run HarfBuzz's
+ <function>hb_shape()</function> function on an input string and
+ to examine the outcome, in human-readable form, as terminal
+ output. <program>hb-shape</program> does
+ <emphasis>not</emphasis> render the results of the shaping call
+ into rendered text (you can use <program>hb-view</program>, below, for
+ that). Instead, it prints out the final glyph indices and
+ positions, taking all shaping operations into account, as if the
+ input string were a HarfBuzz input buffer.
+ </para>
+ <para>
+ You can specify the font to be used for shaping and, with
+ command-line options, you can add various aspects of the
+ internal state to the output that is sent to the terminal. The
+ general format is
+ </para>
+ <programlisting>
+ <command>hb-shape</command> <optional>[OPTIONS]</optional>
+ <parameter>path/to/font/file.ttf</parameter>
+ <parameter>yourinputtext</parameter>
+ </programlisting>
+ <para>
+ The default output format is plain text (although JSON output
+ can be selected instead by specifying the option
+ <optional>--output-format=json</optional>). The default output
+ syntax reports each glyph name (or glyph index if there is no
+ name) followed by its cluster value, its horizontal and vertical
+ position displacement, and its horizontal and vertical advances.
+ </para>
+ <para>
+ Output options exist to skip any of these elements in the
+ output, and to include additional data, such as Unicode
+ code-point values, glyph extents, glyph flags, or interim
+ shaping results.
+ </para>
+ <para>
+ Output can also be redirected to a file, or input read from a
+ file. Additional options enable you to enable or disable
+ specific font features, to set variation-font axis values, to
+ alter the language, script, direction, and clustering settings
+ used, to enable sanity checks, or to change which shaping engine is used.
+ </para>
+ <para>
+ For a complete explanation of the options available, run
+ </para>
+ <programlisting>
+ <command>hb-shape</command> <parameter>--help</parameter>
+ </programlisting>
+ </section>
+
+ <section id="utilities-command-line-hbview">
+ <title>hb-view</title>
+ <para>
+ <emphasis><program>hb-view</program></emphasis> allows you to
+ see the shaped output of an input string in rendered
+ form. Like <program>hb-shape</program>,
+ <program>hb-view</program> takes a font file and a text string
+ as its arguments:
+ </para>
+ <programlisting>
+ <command>hb-view</command> <optional>[OPTIONS]</optional>
+ <parameter>path/to/font/file.ttf</parameter>
+ <parameter>yourinputtext</parameter>
+ </programlisting>
+ <para>
+ By default, <program>hb-view</program> renders the shaped
+ text in ASCII block-character images as terminal output. By
+ appending the
+ <command>--output-file=<optional>filename</optional></command>
+ switch, you can write the output to a PNG, SVG, or PDF file
+ (among other formats).
+ </para>
+ <para>
+ As with <program>hb-shape</program>, a lengthy set of options
+ is available, with which you can enable or disable
+ specific font features, set variation-font axis values,
+ alter the language, script, direction, and clustering settings
+ used, enable sanity checks, or change which shaping engine is
+ used.
+ </para>
+ <para>
+ You can also set the foreground and background colors used for
+ the output, independently control the width of all four
+ margins, alter the line spacing, and annotate the output image
+ with
+ </para>
+ <para>
+ In general, <program>hb-view</program> is a quick way to
+ verify that the output of HarfBuzz's shaping operation looks
+ correct for a given text-and-font combination, but you may
+ want to use <program>hb-shape</program> to figure out exactly
+ why something does not appear as expected.
+ </para>
+ </section>
+
+ <section id="utilities-command-line-hbsubset">
+ <title>hb-subset</title>
+ <para>
+ <emphasis><program>hb-subset</program></emphasis> allows you
+ to generate a subset of a given font, with a limited set of
+ supported characters, features, and variation settings.
+ </para>
+ <para>
+ By default, you provide an input font and an input text string
+ as the arguments to <program>hb-subset</program>, and it will
+ generate a font that covers the input text exactly like the
+ input font does, but includes no other characters or features.
+ </para>
+ <programlisting>
+ <command>hb-subset</command> <optional>[OPTIONS]</optional>
+ <parameter>path/to/font/file.ttf</parameter>
+ <parameter>yourinputtext</parameter>
+ </programlisting>
+ <para>
+ For example, to create a subset of Noto Serif that just includes the
+ numerals and the lowercase Latin alphabet, you could run
+ </para>
+ <programlisting>
+ <command>hb-subset</command> <optional>[OPTIONS]</optional>
+ <parameter>NotoSerif-Regular.ttf</parameter>
+ <parameter>0123456789abcdefghijklmnopqrstuvwxyz</parameter>
+ </programlisting>
+ <para>
+ There are options available to remove hinting from the
+ subsetted font and to specify a list of variation-axis settings.
+ </para>
+ </section>
+
+ </section>
+
+ <section id="utilities-common-types-apis">
+ <title>Common data types and APIs</title>
+ <para>
+ HarfBuzz includes several APIs for working with general-purpose
+ data that you may find convenient to leverage in your own
+ software. They include set operations and integer-to-integer
+ mapping operations.
+ </para>
+ <para>
+ HarfBuzz uses set operations for internal bookkeeping, such as
+ when it collects all of the glyph IDs covered by a particular
+ font feature. You can also use the set API to build sets, add
+ and remove elements, test whether or not sets contain particular
+ elements, or compute the unions, intersections, or differences
+ between sets.
+ </para>
+ <para>
+ All set elements are integers (specifically,
+ <type>hb_codepoint_t</type> 32-bit unsigned ints), and there are
+ functions for fetching the minimum and maximum element from a
+ set. The set API also includes some functions that might not
+ be part of a generic set facility, such as the ability to add a
+ contiguous range of integer elements to a set in bulk, and the
+ ability to fetch the next-smallest or next-largest element.
+ </para>
+ <para>
+ The HarfBuzz set API includes some conveniences as well. All
+ sets are lifecycle-managed, just like other HarfBuzz
+ objects. You increase the reference count on a set with
+ <function>hb_set_reference()</function> and decrease it with
+ <function>hb_set_destroy()</function>. You can also attach
+ user data to a set, just like you can to blobs, buffers, faces,
+ fonts, and other objects, and set destroy callbacks.
+ </para>
+ <para>
+ HarfBuzz also provides an API for keeping track of
+ integer-to-integer mappings. As with the set API, each integer is
+ stored as an unsigned 32-bit <type>hb_codepoint_t</type>
+ element. Maps, like other objects, are reference counted with
+ reference and destroy functions, and you can attach user data to
+ them. The mapping operations include adding and deleting
+ integer-to-integer key:value pairs to the map, testing for the
+ presence of a key, fetching the population of the map, and so on.
+ </para>
+ <para>
+ There are several other internal HarfBuzz facilities that are
+ exposed publicly and which you may want to take advantage of
+ while processing text. HarfBuzz uses a common
+ <type>hb_tag_t</type> for a variety of OpenType tag identifiers (for
+ scripts, languages, font features, table names, variation-axis
+ names, and more), and provides functions for converting strings
+ to tags and vice-versa.
+ </para>
+ <para>
+ Finally, HarfBuzz also includes data type for Booleans, bit
+ masks, and other simple types.
+ </para>
+ </section>
+
+ <section id="utilities-ucdn">
+ <title>UCDN</title>
+ <para>
+ HarfBuzz includes a copy of the <ulink
+ url="https://github.com/grigorig/ucdn">UCDN</ulink> (Unicode
+ Database and Normalization) library, which provides functions
+ for accessing basic Unicode character properties, performing
+ canonical composition, and performing both canonical and
+ compatibility decomposition.
+ </para>
+ <para>
+ Currently, UCDN supports direct queries for several more character
+ properties than HarfBuzz's built-in set of Unicode functions
+ does, such as the BiDirectional Class, East Asian Width, Paired
+ Bracket and Resolved Linebreak properties. If you need to access
+ more properties than HarfBuzz's internal implementation
+ provides, using the built-in UCDN functions may be a useful solution.
+ </para>
+ <para>
+ The built-in UCDN functions are compiled by default when
+ building HarfBuzz from source, but this can be disabled with a
+ compile-time switch.
+ </para>
+ </section>
+
+</chapter>
diff --git a/docs/usermanual-what-is-harfbuzz.xml b/docs/usermanual-what-is-harfbuzz.xml
index ed053f9..3513fb2 100644
--- a/docs/usermanual-what-is-harfbuzz.xml
+++ b/docs/usermanual-what-is-harfbuzz.xml
@@ -151,9 +151,9 @@
</para>
<para>
For example, in Tamil, when the letter &quot;TTA&quot; (ட)
- letter is followed by &quot;U&quot; (உ), the pair
+ letter is followed by the vowel sign &quot;U&quot; (ு), the pair
must be replaced by the single glyph &quot;டு&quot;. The
- sequence of Unicode characters &quot;டஉ&quot; needs to be
+ sequence of Unicode characters &quot;ட,ு&quot; needs to be
substituted with a single &quot;டு&quot; glyph from the
font.
</para>
diff --git a/docs/version.xml b/docs/version.xml
index 197c4d5..2714f53 100644
--- a/docs/version.xml
+++ b/docs/version.xml
@@ -1 +1 @@
-2.4.0
+2.6.4