Package org.freedesktop.harfbuzz


package org.freedesktop.harfbuzz
The HarfBuzz text shaping engine

The following native libraries are required and will be loaded: libharfbuzz-gobject.0 libharfbuzz.0

For namespace-global declarations, refer to the HarfBuzz class documentation.

Hb-aat-layout

Functions for querying AAT Layout features in the font face.

HarfBuzz supports all of the AAT tables used to implement shaping. Other AAT tables and their associated features are not supported.

Hb-blob

Blobs wrap a chunk of binary data to handle lifecycle management of data while it is passed between client and HarfBuzz. Blobs are primarily used to create font faces, but also to access font face tables, as well as pass around other binary data.

Hb-buffer

Buffers serve a dual role in HarfBuzz; before shaping, they hold the input characters that are passed to hb_shape(), and after shaping they hold the output glyphs.

The input buffer is a sequence of Unicode codepoints, with associated attributes such as direction and script. The output buffer is a sequence of glyphs, with associated attributes such as position and cluster.

Hb-common

Common data types used across HarfBuzz are defined here.

Hb-deprecated

These API have been deprecated in favor of newer API, or because they were deemed unnecessary.

Hb-draw

Functions for drawing (extracting) glyph shapes.

The hb_draw_funcs_t struct can be used with hb_font_draw_glyph().

Hb-face

A font face is an object that represents a single face from within a font family.

More precisely, a font face represents a single face in a binary font file. Font faces are typically built from a binary blob and a face index. Font faces are used to create fonts.

A font face can be created from a binary blob using hb_face_create(). The face index is used to select a face from a binary blob that contains multiple faces. For example, a binary blob that contains both a regular and a bold face can be used to create two font faces, one for each face index.

Hb-font

Functions for working with font objects.

A font object represents a font face at a specific size and with certain other parameters (pixels-per-em, points-per-em, variation settings) specified. Font objects are created from font face objects, and are used as input to hb_shape(), among other things.

Client programs can optionally pass in their own functions that implement the basic, lower-level queries of font objects. This set of font functions is defined by the virtual methods in hb_font_funcs_t.

HarfBuzz provides a built-in set of lightweight default functions for each method in hb_font_funcs_t.

The default font functions are implemented in terms of the hb_font_funcs_t methods of the parent font object. This allows client programs to override only the methods they need to, and otherwise inherit the parent font's implementation, if any.

Hb-ft

Functions for using HarfBuzz with the FreeType library.

HarfBuzz supports using FreeType to provide face and font data.

<note>Note that FreeType is not thread-safe, therefore these functions are not thread-safe either.</note>

Hb-glib

Functions for using HarfBuzz with the GLib library.

HarfBuzz supports using GLib to provide Unicode data, by attaching GLib functions to the virtual methods in a hb_unicode_funcs_t function structure.

Hb-map

Map objects are integer-to-integer hash-maps. Currently they are not used in the HarfBuzz public API, but are provided for client's use if desired.

Hb-ot-color

Functions for fetching color-font information from OpenType font faces.

HarfBuzz supports COLR/CPAL, sbix, CBDT, and SVG color fonts.

Hb-ot-font

Functions for using OpenType fonts with hb_shape(). Note that fonts returned by hb_font_create() default to using these functions, so most clients would never need to call these functions directly.

Hb-ot-layout

Functions for querying OpenType Layout features in the font face. See the OpenType specification for details.

Hb-ot-math

Functions for fetching mathematics layout data from OpenType fonts.

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.

Hb-ot-meta

Functions for fetching metadata from fonts.

Hb-ot-metrics

Functions for fetching metrics from fonts.

Hb-ot-name

Functions for fetching name strings from OpenType fonts.

Hb-ot-shape

Support functions for OpenType shaping related queries.

Hb-ot-var

Functions for fetching information about OpenType Variable Fonts.

Hb-paint

Functions for painting glyphs.

The main purpose of these functions is to paint (extract) color glyph layers from the COLRv1 table, but the API works for drawing ordinary outlines and images as well.

The hb_paint_funcs_t struct can be used with hb_font_paint_glyph().

Hb-set

Set objects represent a mathematical set of integer values. They are used in non-shaping APIs to query certain sets of characters or glyphs, or other integer values.

Hb-shape

Shaping is the central operation of HarfBuzz. Shaping operates on buffers, which are sequences of Unicode characters that use the same font and have the same text direction, script, and language. After shaping the buffer contains the output glyphs and their positions.

Hb-shape-plan

Shape plans are an internal mechanism. Each plan contains state describing how HarfBuzz will shape a particular text segment, based on the combination of segment properties and the capabilities in the font face in use.

Shape plans are not used for shaping directly, but can be queried to access certain information about how shaping will perform, given a set of specific input parameters (script, language, direction, features, etc.).

Most client programs will not need to deal with shape plans directly.

Hb-style

Functions for fetching style information from fonts.

Hb-unicode

Unicode functions are used to access Unicode character properties. With these functions, client programs can query various properties from the Unicode Character Database for any code point, such as General Category (gc), Script (sc), Canonical Combining Class (ccc), etc.

Client programs can optionally pass in their own Unicode functions that implement the same queries. The set of functions available is defined by the virtual methods in hb_unicode_funcs_t.

HarfBuzz provides built-in default functions for each method in hb_unicode_funcs_t.

Hb-version

These functions and macros allow accessing version of the HarfBuzz library used at compile- as well as run-time, and to direct code conditionally based on those versions, again, at compile- or run-time.