PangoOT – 1.0
Description: Reference for PangoOT-1.0

### Namespace

# PangoOT – 1.0

OpenType support for Pango

Version | 1.49.4
Authors | Owen Taylor, Behdad Esfahbod
License | GPL-2.1-or-later
Website | https://www.pango.org
Source | https://gitlab.gnome.org/GNOME/pango/

#### Build

C headers | `pango/pango-ot.h`
pkg-config files | `pangoot`

#### Dependencies

Pango | A library for layout out and rendering of text
| Browse documentation

#### Additional documentation

- Classes Hierarchy

#### Classes

Info |
Ruleset | The `PangoOTRuleset` structure holds a set of features selected from the tables in an OpenType font.

#### Structs

Buffer |
FeatureMap | The `PangoOTFeatureMap` typedef is used to represent an OpenType feature with the property bit associated with it. The feature tag is represented as a char array instead of a `PangoOTTag` for convenience.
Glyph | The `PangoOTGlyph` structure represents a single glyph together with information used for OpenType layout processing of the glyph. It contains the following fields.
RulesetDescription | The `PangoOTRuleset` structure holds all the information needed to build a complete `PangoOTRuleset` from an OpenType font. The main use of this struct is to act as the key for a per-font hash of rulesets. The user populates a ruleset description and gets the ruleset using `pango_ot_ruleset_get_for_description()` or create a new one using pango_ot_ruleset_new_from_description().

#### Aliases

Tag | The `PangoOTTag` typedef is used to represent TrueType and OpenType four letter tags inside Pango. Use PANGO_OT_TAG_MAKE() or PANGO_OT_TAG_MAKE_FROM_STRING() macros to create PangoOTTags manually.

#### Enumerations

TableType | The PangoOTTableType enumeration values are used to identify the various OpenType tables in the pango_ot_info_… functions.

#### Functions

tag_from_language | Finds the OpenType language-system tag best describing `language`.
tag_from_script | Finds the OpenType script tag corresponding to `script`.
tag_to_language | Finds a `PangoLanguage` corresponding to `language_tag`.
tag_to_script | Finds the `PangoScript` corresponding to `script_tag`.

#### Function Macros

TAG_MAKE | Creates a `PangoOTTag` from four characters. This is similar and compatible with the FT_MAKE_TAG() macro from FreeType.
TAG_MAKE_FROM_STRING | Creates a `PangoOTTag` from a string. The string should be at least four characters long (pad with space characters if needed), and need not be nul-terminated. This is a convenience wrapper around PANGO_OT_TAG_MAKE(), but cannot be used in certain situations, for example, as a switch expression, as it dereferences pointers.

#### Constants

ALL_GLYPHS | This is used as the property bit in `pango_ot_ruleset_add_feature()` when a feature should be applied to all glyphs.
DEFAULT_LANGUAGE | This is used as the language index in `pango_ot_info_find_feature()` when the default language system of the script is desired.
NO_FEATURE | This is used as a feature index that represent no feature, that is, should be skipped. It may be returned as feature index by `pango_ot_info_find_feature()` if the feature is not found, and `pango_ot_ruleset_add_feature()` function automatically skips this value, so no special handling is required by the user.
NO_SCRIPT | This is used as a script index that represent no script, that is, when the requested script was not found, and a default (‘DFLT’) script was not found either. It may be returned as script index by `pango_ot_info_find_script()` if the script or a default script are not found, all other functions taking a script index essentially return if the input script index is this value, so no special handling is required by the user.