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: