Imported Upstream version 2.3.1
[platform/upstream/harfbuzz.git] / docs / html / ch01s03.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>What does HarfBuzz do?: HarfBuzz Manual</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7 <link rel="home" href="index.html" title="HarfBuzz Manual">
8 <link rel="up" href="what-is-harfbuzz.html" title="What is HarfBuzz?">
9 <link rel="prev" href="why-do-i-need-a-shaping-engine.html" title="Why do I need a shaping engine?">
10 <link rel="next" href="what-harfbuzz-doesnt-do.html" title="What HarfBuzz doesn't do">
11 <meta name="generator" content="GTK-Doc V1.25 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
16 <td width="100%" align="left" class="shortcuts"></td>
17 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
18 <td><a accesskey="u" href="what-is-harfbuzz.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
19 <td><a accesskey="p" href="why-do-i-need-a-shaping-engine.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
20 <td><a accesskey="n" href="what-harfbuzz-doesnt-do.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
21 </tr></table>
22 <div class="section">
23 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
24 <a name="id-1.2.2.6"></a>What does HarfBuzz do?</h2></div></div></div>
25 <p>
26       HarfBuzz provides text shaping through a cross-platform
27       C API that accepts sequences of Unicode codepoints as input. Currently,
28       the following OpenType shaping models are supported:
29     </p>
30 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
31 <li class="listitem"><p>
32           Indic (covering Devanagari, Bengali, Gujarati,
33           Gurmukhi, Kannada, Malayalam, Oriya, Tamil, Telugu, and
34           Sinhala)
35         </p></li>
36 <li class="listitem"><p>
37           Arabic (covering Arabic, N'Ko, Syriac, and Mongolian)
38         </p></li>
39 <li class="listitem"><p>
40           Thai and Lao
41         </p></li>
42 <li class="listitem"><p>
43           Khmer
44         </p></li>
45 <li class="listitem"><p>
46           Myanmar
47         </p></li>
48 <li class="listitem"><p>
49           Tibetan
50         </p></li>
51 <li class="listitem"><p>
52           Hangul
53         </p></li>
54 <li class="listitem"><p>
55           Hebrew
56         </p></li>
57 <li class="listitem"><p>
58           The Universal Shaping Engine or <span class="emphasis"><em>USE</em></span>
59           (covering complex scripts not covered by the above shaping
60           models)
61         </p></li>
62 <li class="listitem"><p>
63           A default shaping model for non-complex scripts
64           (covering Latin, Cyrillic, Greek, Armenian, Georgian, Tifinagh,
65           and many others)
66         </p></li>
67 <li class="listitem"><p>
68           Emoji (including emoji modifier sequences, flag sequences,
69           and ZWJ sequences)
70         </p></li>
71 </ul></div>
72 <p>
73       In addition to OpenType shaping, HarfBuzz supports the latest
74       version of Graphite shaping (the "Graphite 2" model) and AAT
75       shaping.
76     </p>
77 <p>
78       HarfBuzz can read and understand TrueType fonts (.ttf), TrueType
79       collections (.ttc), and OpenType fonts (.otf, including those
80       fonts that contain TrueType-style outlines and those that
81       contain PostScript CFF or CFF2 outlines).
82     </p>
83 <p>
84       HarfBuzz is designed and tested to run on top of the FreeType
85       font renderer. It can run on Linux, Android, Windows, macOS, and
86       iOS systems.
87     </p>
88 <p>
89       In addition to its core shaping functionality, HarfBuzz provides
90       functions for accessing other font features, including optional
91       GSUB and GPOS OpenType features, as well as
92       all color-font formats (<code class="literal">CBDT</code>,
93       <code class="literal">sbix</code>, <code class="literal">COLR/CPAL</code>, and
94       <code class="literal">SVG-OT</code>) and OpenType variable fonts. HarfBuzz
95       also includes a font-subsetting feature. HarfBuzz can perform
96       some low-level math-shaping operations, although it does not
97       currently perform full shaping for mathematical typesetting.
98     </p>
99 <p>
100       A suite of command-line utilities is also provided in the
101       source-code tree, designed to help users test and debug
102       HarfBuzz's features on real-world fonts and input.
103     </p>
104 </div>
105 <div class="footer">
106 <hr>Generated by GTK-Doc V1.25</div>
107 </body>
108 </html>