org.freedesktop.harfbuzz.package-info Maven / Gradle / Ivy
Show all versions of harfbuzz Show documentation
/**
* The HarfBuzz text shaping engine
*
* The following native libraries are required and will be loaded: {@code libharfbuzz-gobject.0}
*
* For namespace-global declarations, refer to the {@link 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.
*
* 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 {@code 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.
*
*
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
* {@code hb_font_funcs_t}.
*
* HarfBuzz provides a built-in set of lightweight default
* functions for each method in {@code hb_font_funcs_t}.
*
*
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 {@code hb_unicode_funcs_t} function
* structure.
*
*
Hb-gobject
* Support for using HarfBuzz with the GObject library to provide
* type data.
*
* The types and functions listed here are solely a linkage between
* HarfBuzz's public data types and the GTypes used by the GObject framework.
* HarfBuzz uses GObject introspection to generate its Python bindings
* (and potentially other language bindings); client programs should never need
* to access the GObject-integration mechanics.
*
* For client programs using the GNOME and GTK software stack, please see the
* GLib and FreeType integration pages.
*
*
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 {@code COLR}/{@code CPAL}, {@code sbix}, {@code CBDT}, and {@code 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.
*
* 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 {@code 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 {@code hb_unicode_funcs_t}.
*
* HarfBuzz provides built-in default functions for each method in
* {@code 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.
*
* Hb-graphite2
* Functions for using HarfBuzz with fonts that include Graphite features.
*
* For Graphite features to work, you must be sure that HarfBuzz was compiled
* with the {@code graphite2} shaping engine enabled. Currently, the default is to
* not enable {@code graphite2} shaping.
*/
package org.freedesktop.harfbuzz;