blob: 5fa365898589e34433131680e39d705bd630c29a [file] [log] [blame]
Anthony Carricof7c72b42013-02-24 13:00:33 -05001<?xml version="1.0"?>
2<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
4 <!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
5 <!ENTITY version SYSTEM "version.xml">
6]>
7<book id="index">
8 <bookinfo>
Simon Cozens01e16e82015-08-31 10:40:17 +01009 <title>HarfBuzz Manual</title>
Khaled Hosny4dc22652015-12-23 00:26:20 +040010 <abstract>
11 <title>HarfBuzz</title>
12 <graphic fileref="HarfBuzz.png" format="PNG" align="center"/>
13 <para>
Behdad Esfahbod48fcb902020-09-27 16:53:32 -060014 HarfBuzz is a text shaping library. Using the HarfBuzz library allows
Nathan Willis3a27e8f2018-10-12 18:23:26 -050015 programs to convert a sequence of Unicode input into
Khaled Hosnyed5547f2018-10-20 15:00:52 +010016 properly formatted and positioned glyph output&mdash;for any writing
Nathan Willis443f8722018-10-11 15:40:08 -050017 system and language.
Khaled Hosny4dc22652015-12-23 00:26:20 +040018 </para>
Nathan Willis443f8722018-10-11 15:40:08 -050019
Khaled Hosny4dc22652015-12-23 00:26:20 +040020 <para>
Nathan Willis443f8722018-10-11 15:40:08 -050021 The canonical source-code tree is available at
Behdad Esfahbodecac94c2019-04-21 12:27:32 -040022 <ulink url="https://github.com/harfbuzz/harfbuzz">github.com/harfbuzz/harfbuzz</ulink>.
Nathan Willisf028da52018-10-20 15:18:29 +010023 See <xref linkend="download" endterm="download.title"/> for
24 release tarballs.
25 </para>
Khaled Hosny4dc22652015-12-23 00:26:20 +040026 </abstract>
Anthony Carricof7c72b42013-02-24 13:00:33 -050027 </bookinfo>
28
Khaled Hosny3583fce2020-12-31 19:45:11 +020029 <part id="user-manual">
Simon Cozens01e16e82015-08-31 10:40:17 +010030 <title>User's manual</title>
Khaled Hosny493a9222015-12-23 00:33:41 +040031 <xi:include href="usermanual-what-is-harfbuzz.xml"/>
Khaled Hosnyd25317f2015-12-23 01:29:48 +040032 <xi:include href="usermanual-install-harfbuzz.xml"/>
Nathan Willis163ab812018-10-16 17:48:15 -050033 <xi:include href="usermanual-getting-started.xml"/>
Nathan Willis3a27e8f2018-10-12 18:23:26 -050034 <xi:include href="usermanual-shaping-concepts.xml"/>
Nathan Willis98c54cd2019-04-23 17:48:42 +010035 <xi:include href="usermanual-object-model.xml"/>
Khaled Hosny493a9222015-12-23 00:33:41 +040036 <xi:include href="usermanual-buffers-language-script-and-direction.xml"/>
37 <xi:include href="usermanual-fonts-and-faces.xml"/>
38 <xi:include href="usermanual-opentype-features.xml"/>
Nathan Willis68749e92019-04-30 17:23:55 +010039 <xi:include href="usermanual-clusters.xml"/>
40 <xi:include href="usermanual-utilities.xml"/>
Nathan Willis2da567e2019-05-24 11:13:53 +010041 <xi:include href="usermanual-integration.xml"/>
Simon Cozens01e16e82015-08-31 10:40:17 +010042 </part>
Anthony Carricof7c72b42013-02-24 13:00:33 -050043
Khaled Hosny3583fce2020-12-31 19:45:11 +020044 <part id="reference-manual">
Khaled Hosnyd25317f2015-12-23 01:29:48 +040045 <partinfo>
46 <releaseinfo>
47 This document is for HarfBuzz &version;.
48 <!--The latest version of this documentation can be found on-line at
49 <ulink role="online-location" url="http://[SERVER]/libharfbuzz/index.html">http://[SERVER]/libharfbuzz/</ulink>.-->
50 </releaseinfo>
51 </partinfo>
Garret Rieger1b6c1aa2021-06-28 12:57:39 -070052
Simon Cozens01e16e82015-08-31 10:40:17 +010053 <title>Reference manual</title>
Khaled Hosny3583fce2020-12-31 19:45:11 +020054 <chapter id="core-api">
Behdad Esfahbod4740a352018-10-27 05:07:54 -070055 <title>Core API</title>
Simon Cozens01e16e82015-08-31 10:40:17 +010056 <xi:include href="xml/hb-blob.xml"/>
Behdad Esfahbod4740a352018-10-27 05:07:54 -070057 <xi:include href="xml/hb-buffer.xml"/>
58 <xi:include href="xml/hb-common.xml"/>
59 <xi:include href="xml/hb-deprecated.xml"/>
Simon Cozens01e16e82015-08-31 10:40:17 +010060 <xi:include href="xml/hb-face.xml"/>
61 <xi:include href="xml/hb-font.xml"/>
Behdad Esfahbod4740a352018-10-27 05:07:54 -070062 <xi:include href="xml/hb-map.xml"/>
63 <xi:include href="xml/hb-set.xml"/>
64 <xi:include href="xml/hb-shape-plan.xml"/>
Simon Cozens01e16e82015-08-31 10:40:17 +010065 <xi:include href="xml/hb-shape.xml"/>
Behdad Esfahbod00cf4e52018-10-27 04:07:33 -070066 <xi:include href="xml/hb-unicode.xml"/>
Simon Cozens01e16e82015-08-31 10:40:17 +010067 <xi:include href="xml/hb-version.xml"/>
Behdad Esfahbod4740a352018-10-27 05:07:54 -070068 </chapter>
Anthony Carricof7c72b42013-02-24 13:00:33 -050069
Khaled Hosny3583fce2020-12-31 19:45:11 +020070 <chapter id="opentype-api">
Behdad Esfahbod4740a352018-10-27 05:07:54 -070071 <title>OpenType API</title>
72 <xi:include href="xml/hb-ot-color.xml"/>
Behdad Esfahbodd941f662018-10-27 02:55:52 -070073 <xi:include href="xml/hb-ot-font.xml"/>
Simon Cozens01e16e82015-08-31 10:40:17 +010074 <xi:include href="xml/hb-ot-layout.xml"/>
Behdad Esfahboddb5ebcf2016-09-27 16:42:25 +020075 <xi:include href="xml/hb-ot-math.xml"/>
Khaled Hosny08269402020-12-23 00:45:39 +020076 <xi:include href="xml/hb-ot-meta.xml"/>
77 <xi:include href="xml/hb-ot-metrics.xml"/>
Behdad Esfahbod4740a352018-10-27 05:07:54 -070078 <xi:include href="xml/hb-ot-name.xml"/>
Behdad Esfahbodd941f662018-10-27 02:55:52 -070079 <xi:include href="xml/hb-ot-shape.xml"/>
Behdad Esfahbod1d40d722018-10-27 05:00:42 -070080 <xi:include href="xml/hb-ot-var.xml"/>
Behdad Esfahbod4740a352018-10-27 05:07:54 -070081 </chapter>
Anthony Carricof7c72b42013-02-24 13:00:33 -050082
Khaled Hosny3583fce2020-12-31 19:45:11 +020083 <chapter id="apple-advanced-typography-api">
Behdad Esfahbod926f5122018-11-25 01:14:40 -050084 <title>Apple Advanced Typography API</title>
85 <xi:include href="xml/hb-aat-layout.xml"/>
86 </chapter>
87
Khaled Hosny3583fce2020-12-31 19:45:11 +020088 <chapter id="integration-api">
Behdad Esfahbod4740a352018-10-27 05:07:54 -070089 <title>Integration API</title>
90 <xi:include href="xml/hb-coretext.xml"/>
Simon Cozens01e16e82015-08-31 10:40:17 +010091 <xi:include href="xml/hb-ft.xml"/>
Behdad Esfahbod00cf4e52018-10-27 04:07:33 -070092 <xi:include href="xml/hb-glib.xml"/>
Simon Cozens01e16e82015-08-31 10:40:17 +010093 <xi:include href="xml/hb-graphite2.xml"/>
Behdad Esfahbod4740a352018-10-27 05:07:54 -070094 <xi:include href="xml/hb-icu.xml"/>
Simon Cozens01e16e82015-08-31 10:40:17 +010095 <xi:include href="xml/hb-uniscribe.xml"/>
Khaled Hosny08269402020-12-23 00:45:39 +020096 <xi:include href="xml/hb-gdi.xml"/>
97 <xi:include href="xml/hb-directwrite.xml"/>
Simon Cozens01e16e82015-08-31 10:40:17 +010098 </chapter>
Behdad Esfahbod4740a352018-10-27 05:07:54 -070099
Khaled Hosnyeb4075a2021-09-11 00:50:08 +0200100 <chapter id="style-api">
101 <title>Style API</title>
102 <xi:include href="xml/hb-style.xml"/>
103 </chapter>
104
Garret Rieger1b6c1aa2021-06-28 12:57:39 -0700105 <chapter id="subset-api">
106 <title>Subset API</title>
107 <xi:include href="xml/hb-subset.xml"/>
108 </chapter>
109
110
Behdad Esfahbod4740a352018-10-27 05:07:54 -0700111 <!--chapter id="object-tree">
Simon Cozens01e16e82015-08-31 10:40:17 +0100112 <title>Object Hierarchy</title>
113 <xi:include href="xml/tree_index.sgml"/>
Behdad Esfahbod4740a352018-10-27 05:07:54 -0700114 </chapter-->
Behdad Esfahbode7400c02018-10-26 22:09:17 -0700115
Behdad Esfahbod4740a352018-10-27 05:07:54 -0700116 <index id="api-index-full"><title>API Index</title><xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include></index>
117 <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>
118
Khaled Hosny77eeec52021-11-03 23:31:03 +0200119 <index id="api-index-3-1-0" role="3.1.0"><title>Index of new symbols in 3.1.0</title><xi:include href="xml/api-index-3.1.0.xml"><xi:fallback /></xi:include></index>
Khaled Hosny9c387e22021-09-17 21:32:30 +0200120 <index id="api-index-3-0-0" role="3.0.0"><title>Index of new symbols in 3.0.0</title><xi:include href="xml/api-index-3.0.0.xml"><xi:fallback /></xi:include></index>
Khaled Hosny505df5a2021-09-07 13:46:08 +0200121 <index id="api-index-2-9-1" role="2.9.1"><title>Index of new symbols in 2.9.1</title><xi:include href="xml/api-index-2.9.1.xml"><xi:fallback /></xi:include></index>
Khaled Hosny80ff72f2021-08-18 13:09:03 +0200122 <index id="api-index-2-9-0" role="2.9.0"><title>Index of new symbols in 2.9.0</title><xi:include href="xml/api-index-2.9.0.xml"><xi:fallback /></xi:include></index>
Khaled Hosny63e15ea2021-07-08 22:46:33 +0200123 <index id="api-index-2-8-2" role="2.8.2"><title>Index of new symbols in 2.8.2</title><xi:include href="xml/api-index-2.8.2.xml"><xi:fallback /></xi:include></index>
Khaled Hosnyb029a452020-12-22 23:32:48 +0200124 <index id="api-index-2-7-3" role="2.7.3"><title>Index of new symbols in 2.7.3</title><xi:include href="xml/api-index-2.7.3.xml"><xi:fallback /></xi:include></index>
Khaled Hosny53ed5592020-12-30 23:11:33 +0200125 <index id="api-index-2-6-8" role="2.6.8"><title>Index of new symbols in 2.6.8</title><xi:include href="xml/api-index-2.6.8.xml"><xi:fallback /></xi:include></index>
126 <index id="api-index-2-6-5" role="2.6.5"><title>Index of new symbols in 2.6.5</title><xi:include href="xml/api-index-2.6.5.xml"><xi:fallback /></xi:include></index>
127 <index id="api-index-2-6-3" role="2.6.3"><title>Index of new symbols in 2.6.3</title><xi:include href="xml/api-index-2.6.3.xml"><xi:fallback /></xi:include></index>
Behdad Esfahbod64611432019-08-13 22:20:54 -0700128 <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>
129 <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>
130 <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>
131 <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>
Behdad Esfahbode5dfffb2019-03-25 15:15:37 -0700132 <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>
Behdad Esfahbod10193912018-10-30 15:52:26 -0700133 <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>
Behdad Esfahbod4740a352018-10-27 05:07:54 -0700134 <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>
135 <index id="api-index-1-9-0" role="1.9.0"><title>Index of new symbols in 1.9.0</title><xi:include href="xml/api-index-1.9.0.xml"><xi:fallback /></xi:include></index>
136 <index id="api-index-1-8-6" role="1.8.6"><title>Index of new symbols in 1.8.6</title><xi:include href="xml/api-index-1.8.6.xml"><xi:fallback /></xi:include></index>
137 <index id="api-index-1-8-5" role="1.8.5"><title>Index of new symbols in 1.8.5</title><xi:include href="xml/api-index-1.8.5.xml"><xi:fallback /></xi:include></index>
138 <index id="api-index-1-8-1" role="1.8.1"><title>Index of new symbols in 1.8.1</title><xi:include href="xml/api-index-1.8.1.xml"><xi:fallback /></xi:include></index>
139 <index id="api-index-1-8-0" role="1.8.0"><title>Index of new symbols in 1.8.0</title><xi:include href="xml/api-index-1.8.0.xml"><xi:fallback /></xi:include></index>
140 <index id="api-index-1-7-7" role="1.7.7"><title>Index of new symbols in 1.7.7</title><xi:include href="xml/api-index-1.7.7.xml"><xi:fallback /></xi:include></index>
141 <index id="api-index-1-7-5" role="1.7.5"><title>Index of new symbols in 1.7.5</title><xi:include href="xml/api-index-1.7.5.xml"><xi:fallback /></xi:include></index>
Khaled Hosny53ed5592020-12-30 23:11:33 +0200142 <index id="api-index-1-7-2" role="1.7.2"><title>Index of new symbols in 1.7.2</title><xi:include href="xml/api-index-1.7.2.xml"><xi:fallback /></xi:include></index>
Behdad Esfahbod4740a352018-10-27 05:07:54 -0700143 <index id="api-index-1-6-0" role="1.6.0"><title>Index of new symbols in 1.6.0</title><xi:include href="xml/api-index-1.6.0.xml"><xi:fallback /></xi:include></index>
144 <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>
145 <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>
146 <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>
Khaled Hosny3dba7ea2020-12-23 00:55:21 +0200147 <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>
Behdad Esfahbod4740a352018-10-27 05:07:54 -0700148 <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>
149 <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>
150 <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>
151 <index id="api-index-1-1-2" role="1.1.2"><title>Index of new symbols in 1.1.2</title><xi:include href="xml/api-index-1.1.2.xml"><xi:fallback /></xi:include></index>
152 <index id="api-index-1-0-5" role="1.0.5"><title>Index of new symbols in 1.0.5</title><xi:include href="xml/api-index-1.0.5.xml"><xi:fallback /></xi:include></index>
153 <index id="api-index-0-9-42" role="0.9.42"><title>Index of new symbols in 0.9.42</title><xi:include href="xml/api-index-0.9.42.xml"><xi:fallback /></xi:include></index>
154 <index id="api-index-0-9-41" role="0.9.41"><title>Index of new symbols in 0.9.41</title><xi:include href="xml/api-index-0.9.41.xml"><xi:fallback /></xi:include></index>
155 <index id="api-index-0-9-39" role="0.9.39"><title>Index of new symbols in 0.9.39</title><xi:include href="xml/api-index-0.9.39.xml"><xi:fallback /></xi:include></index>
156 <index id="api-index-0-9-38" role="0.9.38"><title>Index of new symbols in 0.9.38</title><xi:include href="xml/api-index-0.9.38.xml"><xi:fallback /></xi:include></index>
Khaled Hosny9b602e82020-12-30 23:28:54 +0200157 <index id="api-index-0-9-33" role="0.9.33"><title>Index of new symbols in 0.9.33</title><xi:include href="xml/api-index-0.9.33.xml"><xi:fallback /></xi:include></index>
Behdad Esfahbod4740a352018-10-27 05:07:54 -0700158 <index id="api-index-0-9-31" role="0.9.31"><title>Index of new symbols in 0.9.31</title><xi:include href="xml/api-index-0.9.31.xml"><xi:fallback /></xi:include></index>
159 <index id="api-index-0-9-30" role="0.9.30"><title>Index of new symbols in 0.9.30</title><xi:include href="xml/api-index-0.9.30.xml"><xi:fallback /></xi:include></index>
160 <index id="api-index-0-9-28" role="0.9.28"><title>Index of new symbols in 0.9.28</title><xi:include href="xml/api-index-0.9.28.xml"><xi:fallback /></xi:include></index>
Khaled Hosny9b602e82020-12-30 23:28:54 +0200161 <index id="api-index-0-9-26" role="0.9.26"><title>Index of new symbols in 0.9.26</title><xi:include href="xml/api-index-0.9.26.xml"><xi:fallback /></xi:include></index>
Behdad Esfahbod4740a352018-10-27 05:07:54 -0700162 <index id="api-index-0-9-22" role="0.9.22"><title>Index of new symbols in 0.9.22</title><xi:include href="xml/api-index-0.9.22.xml"><xi:fallback /></xi:include></index>
Khaled Hosny53ed5592020-12-30 23:11:33 +0200163 <index id="api-index-0-9-21" role="0.9.21"><title>Index of new symbols in 0.9.21</title><xi:include href="xml/api-index-0.9.21.xml"><xi:fallback /></xi:include></index>
Behdad Esfahbod4740a352018-10-27 05:07:54 -0700164 <index id="api-index-0-9-20" role="0.9.20"><title>Index of new symbols in 0.9.20</title><xi:include href="xml/api-index-0.9.20.xml"><xi:fallback /></xi:include></index>
165 <index id="api-index-0-9-11" role="0.9.11"><title>Index of new symbols in 0.9.11</title><xi:include href="xml/api-index-0.9.11.xml"><xi:fallback /></xi:include></index>
166 <index id="api-index-0-9-10" role="0.9.10"><title>Index of new symbols in 0.9.10</title><xi:include href="xml/api-index-0.9.10.xml"><xi:fallback /></xi:include></index>
167 <index id="api-index-0-9-8" role="0.9.8"><title>Index of new symbols in 0.9.8</title><xi:include href="xml/api-index-0.9.8.xml"><xi:fallback /></xi:include></index>
168 <index id="api-index-0-9-7" role="0.9.7"><title>Index of new symbols in 0.9.7</title><xi:include href="xml/api-index-0.9.7.xml"><xi:fallback /></xi:include></index>
169 <index id="api-index-0-9-5" role="0.9.5"><title>Index of new symbols in 0.9.5</title><xi:include href="xml/api-index-0.9.5.xml"><xi:fallback /></xi:include></index>
170 <index id="api-index-0-9-2" role="0.9.2"><title>Index of new symbols in 0.9.2</title><xi:include href="xml/api-index-0.9.2.xml"><xi:fallback /></xi:include></index>
Khaled Hosny9b602e82020-12-30 23:28:54 +0200171 <index id="api-index-0-6-0" role="0.6.0"><title>Index of new symbols in 0.6.0</title><xi:include href="xml/api-index-0.6.0.xml"><xi:fallback /></xi:include></index>
Simon Cozens01e16e82015-08-31 10:40:17 +0100172
173 <xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
174 </part>
Khaled Hosnyb8e6f172020-12-27 15:03:57 +0200175
176 <note>
177 <para>
178 The current HarfBuzz codebase is versioned 2.x.x and is stable
179 and under active maintenance. This is what is used in latest
180 versions of Firefox, GNOME, ChromeOS, Chrome, LibreOffice,
181 XeTeX, Android, and KDE, among other places.
182 </para>
183 <para>
184 Prior to 2012, the original HarfBuzz codebase (which, these days, is
185 referred to as <emphasis>harfbuzz-old</emphasis>) was derived from code
186 in <ulink url="http://freetype.org/">FreeType</ulink>,
187 <ulink url="http://pango.org/">Pango</ulink>, and
188 <ulink url="http://qt-project.org/">Qt</ulink>.
189 It is <emphasis>not</emphasis> actively developed or maintained, and is
190 extremely buggy. All users of harfbuzz-old are encouraged to switch over
191 to the new HarfBuzz as soon as possible.
192 </para>
193 <para>
194 To make this distinction clearer in discussions, the current HarfBuzz
195 codebase is sometimes referred to as <emphasis>harfbuzz-ng</emphasis>.
196 </para>
197 <para>
198 For reference purposes, the harfbuzz-old source tree is archived
199 <ulink url="http://cgit.freedesktop.org/harfbuzz.old/">here</ulink>.
200 There are no release tarballs of harfbuzz-old whatsoever.
201 </para>
202 </note>
203
Anthony Carricof7c72b42013-02-24 13:00:33 -0500204</book>