/usr/share/gtk-doc/html/harfbuzz
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Getting started with HarfBuzz: HarfBuzz Manual</title> <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> <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="building.html" title="Building HarfBuzz"> <link rel="next" href="ch03s02.html" title="Terminology"> <meta name="generator" content="GTK-Doc V1.32 (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="building.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> <td><a accesskey="n" href="ch03s02.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="getting-started"></a>Getting started with HarfBuzz</h2></div></div></div> <div class="toc"><dl class="toc"> <dt><span class="section"><a href="getting-started.html#id-1.2.4.2">An overview of the HarfBuzz shaping API</a></span></dt> <dt><span class="section"><a href="ch03s02.html">Terminology</a></span></dt> <dt><span class="section"><a href="ch03s03.html">A simple shaping example</a></span></dt> </dl></div> <div class="section"> <div class="titlepage"><div><div><h2 class="title" style="clear: both"> <a name="id-1.2.4.2"></a>An overview of the HarfBuzz shaping API</h2></div></div></div> <p> The core of the HarfBuzz shaping API is the function <code class="function">hb_shape()</code>. This function takes a font, a buffer containing a string of Unicode codepoints and (optionally) a list of font features as its input. It replaces the codepoints in the buffer with the corresponding glyphs from the font, correctly ordered and positioned, and with any of the optional font features applied. </p> <p> In addition to holding the pre-shaping input (the Unicode codepoints that comprise the input string) and the post-shaping output (the glyphs and positions), a HarfBuzz buffer has several properties that affect shaping. The most important are the text-flow direction (e.g., left-to-right, right-to-left, top-to-bottom, or bottom-to-top), the script tag, and the language tag. </p> <p> For input string buffers, flags are available to denote when the buffer represents the beginning or end of a paragraph, to indicate whether or not to visibly render Unicode <code class="literal">Default Ignorable</code> codepoints, and to modify the cluster-merging behavior for the buffer. For shaped output buffers, the individual X and Y offsets and <code class="literal">advances</code> (the logical dimensions) of each glyph are accessible. HarfBuzz also flags glyphs as <code class="literal">UNSAFE_TO_BREAK</code> if breaking the string at that glyph (e.g., in a line-breaking or hyphenation process) would require re-shaping the text. </p> <p> HarfBuzz also provides methods to compare the contents of buffers, join buffers, normalize buffer contents, and handle invalid codepoints, as well as to determine the state of a buffer (e.g., input codepoints or output glyphs). Buffer lifecycles are managed and all buffers are reference-counted. </p> <p> Although the default <code class="function">hb_shape()</code> function is sufficient for most use cases, a variant is also provide that lets you specify which of HarfBuzz's shapers to use on a buffer. </p> <p> HarfBuzz can read TrueType fonts, TrueType collections, OpenType fonts, and OpenType collections. Functions are provided to query font objects about metrics, Unicode coverage, available tables and features, and variation selectors. Individual glyphs can also be queried for metrics, variations, and glyph names. OpenType variable fonts are supported, and HarfBuzz allows you to set variation-axis coordinates on font objects. </p> <p> HarfBuzz provides glue code to integrate with various other libraries, including FreeType, GObject, and CoreText. Support for integrating with Uniscribe and DirectWrite is experimental at present. </p> </div> </div> <div class="footer"> <hr>Generated by GTK-Doc V1.32</div> </body> </html>
.
Edit
..
Edit
HarfBuzz.png
Edit
HarfBuzz.svg
Edit
a-clustering-example-for-levels-0-and-1.html
Edit
aat-shaping.html
Edit
adding-text-to-the-buffer.html
Edit
annotation-glossary.html
Edit
api-index-0-9-10.html
Edit
api-index-0-9-11.html
Edit
api-index-0-9-2.html
Edit
api-index-0-9-20.html
Edit
api-index-0-9-22.html
Edit
api-index-0-9-28.html
Edit
api-index-0-9-30.html
Edit
api-index-0-9-31.html
Edit
api-index-0-9-38.html
Edit
api-index-0-9-39.html
Edit
api-index-0-9-41.html
Edit
api-index-0-9-42.html
Edit
api-index-0-9-5.html
Edit
api-index-0-9-7.html
Edit
api-index-0-9-8.html
Edit
api-index-1-0-5.html
Edit
api-index-1-1-2.html
Edit
api-index-1-1-3.html
Edit
api-index-1-2-3.html
Edit
api-index-1-3-3.html
Edit
api-index-1-4-0.html
Edit
api-index-1-4-2.html
Edit
api-index-1-4-3.html
Edit
api-index-1-5-0.html
Edit
api-index-1-6-0.html
Edit
api-index-1-7-5.html
Edit
api-index-1-7-7.html
Edit
api-index-1-8-0.html
Edit
api-index-1-8-1.html
Edit
api-index-1-8-5.html
Edit
api-index-1-8-6.html
Edit
api-index-1-9-0.html
Edit
api-index-2-0-0.html
Edit
api-index-2-1-0.html
Edit
api-index-2-2-0.html
Edit
api-index-2-3-0.html
Edit
api-index-2-4-0.html
Edit
api-index-2-5-0.html
Edit
api-index-2-6-0.html
Edit
api-index-2-7-3.html
Edit
api-index-full.html
Edit
buffers-language-script-and-direction.html
Edit
building.html
Edit
ch01s03.html
Edit
ch03s02.html
Edit
ch03s03.html
Edit
ch12.html
Edit
ch13.html
Edit
ch14.html
Edit
ch15.html
Edit
clusters.html
Edit
complex-scripts.html
Edit
customizing-unicode-functions.html
Edit
deprecated-api-index.html
Edit
fonts-and-faces-custom-functions.html
Edit
fonts-and-faces-native-opentype.html
Edit
fonts-and-faces-variable.html
Edit
fonts-and-faces.html
Edit
getting-started.html
Edit
graphite-shaping.html
Edit
harfbuzz-hb-aat-layout.html
Edit
harfbuzz-hb-blob.html
Edit
harfbuzz-hb-buffer.html
Edit
harfbuzz-hb-common.html
Edit
harfbuzz-hb-coretext.html
Edit
harfbuzz-hb-deprecated.html
Edit
harfbuzz-hb-directwrite.html
Edit
harfbuzz-hb-face.html
Edit
harfbuzz-hb-font.html
Edit
harfbuzz-hb-ft.html
Edit
harfbuzz-hb-gdi.html
Edit
harfbuzz-hb-glib.html
Edit
harfbuzz-hb-gobject.html
Edit
harfbuzz-hb-graphite2.html
Edit
harfbuzz-hb-icu.html
Edit
harfbuzz-hb-map.html
Edit
harfbuzz-hb-ot-color.html
Edit
harfbuzz-hb-ot-font.html
Edit
harfbuzz-hb-ot-layout.html
Edit
harfbuzz-hb-ot-math.html
Edit
harfbuzz-hb-ot-meta.html
Edit
harfbuzz-hb-ot-metrics.html
Edit
harfbuzz-hb-ot-name.html
Edit
harfbuzz-hb-ot-shape.html
Edit
harfbuzz-hb-ot-var.html
Edit
harfbuzz-hb-set.html
Edit
harfbuzz-hb-shape-plan.html
Edit
harfbuzz-hb-shape.html
Edit
harfbuzz-hb-unicode.html
Edit
harfbuzz-hb-uniscribe.html
Edit
harfbuzz-hb-version.html
Edit
harfbuzz.devhelp2
Edit
home.png
Edit
index.html
Edit
install-harfbuzz.html
Edit
integration-coretext.html
Edit
integration-freetype.html
Edit
integration-icu.html
Edit
integration-python.html
Edit
integration-uniscribe.html
Edit
integration.html
Edit
left-insensitive.png
Edit
left.png
Edit
level-2.html
Edit
object-model-blobs.html
Edit
object-model-lifecycle.html
Edit
object-model-object-types.html
Edit
object-model-user-data.html
Edit
object-model.html
Edit
opentype-shaping-models.html
Edit
pt01.html
Edit
pt02.html
Edit
reordering-in-levels-0-and-1.html
Edit
right-insensitive.png
Edit
right.png
Edit
setting-buffer-properties.html
Edit
shaping-and-shape-plans.html
Edit
shaping-concepts.html
Edit
shaping-opentype-features.html
Edit
shaping-operations.html
Edit
shaping-plans-and-caching.html
Edit
shaping-shaper-selection.html
Edit
style.css
Edit
text-runs.html
Edit
the-distinction-between-levels-0-and-1.html
Edit
unicode-character-categories.html
Edit
up-insensitive.png
Edit
up.png
Edit
utilities-common-types-apis.html
Edit
utilities-ucdn.html
Edit
utilities.html
Edit
what-harfbuzz-doesnt-do.html
Edit
what-is-harfbuzz.html
Edit
why-do-i-need-a-shaping-engine.html
Edit
why-is-it-called-harfbuzz.html
Edit
working-with-harfbuzz-clusters.html
Edit