Imported Upstream version 8.2.2
[platform/upstream/harfbuzz.git] / docs / html / what-does-harfbuzz-do.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.32 (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="what-does-harfbuzz-do"></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, and Telugu)
34         </p></li>
35 <li class="listitem"><p>
36           Arabic (covering Arabic, N'Ko, Syriac, and Mongolian)
37         </p></li>
38 <li class="listitem"><p>
39           Thai and Lao
40         </p></li>
41 <li class="listitem"><p>
42           Khmer
43         </p></li>
44 <li class="listitem"><p>
45           Myanmar
46         </p></li>
47 <li class="listitem"><p>
48           Tibetan
49         </p></li>
50 <li class="listitem"><p>
51           Hangul
52         </p></li>
53 <li class="listitem"><p>
54           Hebrew
55         </p></li>
56 <li class="listitem"><p>
57           The Universal Shaping Engine or <span class="emphasis"><em>USE</em></span>
58           (covering complex scripts not covered by the above shaping
59           models)
60         </p></li>
61 <li class="listitem"><p>
62           A default shaping model for non-complex scripts
63           (covering Latin, Cyrillic, Greek, Armenian, Georgian, Tifinagh,
64           and many others)
65         </p></li>
66 <li class="listitem"><p>
67           Emoji (including emoji modifier sequences, flag sequences,
68           and ZWJ sequences)
69         </p></li>
70 </ul></div>
71 <p>
72       In addition to OpenType shaping, HarfBuzz supports the latest
73       version of Graphite shaping (the "Graphite 2" model) and AAT
74       shaping.
75     </p>
76 <p>
77       HarfBuzz can read and understand TrueType fonts (.ttf), TrueType
78       collections (.ttc), and OpenType fonts (.otf, including those
79       fonts that contain TrueType-style outlines and those that
80       contain PostScript CFF or CFF2 outlines).
81     </p>
82 <p>
83       HarfBuzz is designed and tested to run on top of the FreeType
84       font renderer. It can run on Linux, Android, Windows, macOS, and
85       iOS systems.
86     </p>
87 <p>
88       In addition to its core shaping functionality, HarfBuzz provides
89       functions for accessing other font features, including optional
90       GSUB and GPOS OpenType features, as well as
91       all color-font formats (<code class="literal">CBDT</code>,
92       <code class="literal">sbix</code>, <code class="literal">COLR/CPAL</code>, and
93       <code class="literal">SVG-OT</code>) and OpenType variable fonts. HarfBuzz
94       also includes a font-subsetting feature. HarfBuzz can perform
95       some low-level math-shaping operations, although it does not
96       currently perform full shaping for mathematical typesetting.
97     </p>
98 <p>
99       A suite of command-line utilities is also provided in the
100       source-code tree, designed to help users test and debug
101       HarfBuzz's features on real-world fonts and input.
102     </p>
103 </div>
104 <div class="footer">
105 <hr>Generated by GTK-Doc V1.32</div>
106 </body>
107 </html>