OpenType Font Handling
Obtaining information from OpenType tables
The PangoOTTag typedef is used to represent TrueType and OpenType
four letter tags inside Pango. Use the FT_MAKE_TAG() macro
defined in the FreeType2 header freetype/freetype.h to
create PangoOTTags manually.
The #PangoOTInfo struct contains the various
tables associated with an OpenType font. It contains only private fields and
should only be accessed via the pango_ot_info_* functions
which are documented below. To obtain a #PangoOTInfo,
use pango_ot_info_new().
The #PangoOTBuffer structure is used to store strings of glyphs associated
with a #PangoFcFont, suitable for OpenType layout processing. It contains
only private fields and should only be accessed via the
pango_ot_buffer_* functions which are documented below.
To obtain a #PangoOTBuffer, use pango_ot_buffer_new().
The #PangoOTGlyph structure represents a single glyph together with
information used for OpenType layout processing of the glyph.
It contains the following fields.
@glyph: the glyph itself.
@properties: the properties value, identifying which features should be
applied on this glyph. See pango_ruleset_add_feature().
@cluster: the cluster that this glyph belongs to.
@component: a component value, set by the OpenType layout engine.
@ligID: a ligature index value, set by the OpenType layout engine.
@property_cache: for internal use.
The #PangoOTRuleSet structure holds a
set of features selected from the tables in an OpenType font.
(A feature is an operation such as adjusting glyph positioning
that should be applied to a text feature such as a certain
type of accent.) A #PangoOTRuleSet
is created with pango_ot_ruleset_new(), features are addded
to it with pango_ot_ruleset_add_feature(), then it is
applied to a #PangoGlyphString with pango_ot_ruleset_shape().
The PangoOTTableType enumeration values are used to
identify the various OpenType tables in the
pango_ot_info_* functions.
@PANGO_OT_TABLE_GSUB: The GSUB table.
@PANGO_OT_TABLE_GPOS: The GPOS table.
@face:
@Returns:
@info:
@table_type:
@script_tag:
@script_index:
@Returns:
@info:
@table_type:
@script_index:
@language_tag:
@language_index:
@required_feature_index:
@Returns:
@info:
@table_type:
@feature_tag:
@script_index:
@language_index:
@feature_index:
@Returns:
@info:
@table_type:
@Returns:
@info:
@table_type:
@script_index:
@language_tag:
@Returns:
@info:
@table_type:
@tag:
@script_index:
@language_index:
@Returns:
@font:
@Returns:
@buffer:
@buffer:
@buffer:
@glyph:
@properties:
@cluster:
@buffer:
@rtl:
@buffer:
@zero_width_marks:
@buffer:
@glyphs:
@n_glyphs:
@buffer:
@glyphs:
@info:
@Returns:
@ruleset:
@table_type:
@feature_index:
@property_bit:
@ruleset:
@buffer:
@ruleset:
@buffer: