📄 opentype.xml
字号:
<refentry id="pango-OpenType-Font-Handling"><refmeta><refentrytitle role="top_of_page" id="pango-OpenType-Font-Handling.top_of_page">OpenType Font Handling</refentrytitle><manvolnum>3</manvolnum><refmiscinfo>PANGO Library</refmiscinfo></refmeta><refnamediv><refname>OpenType Font Handling</refname><refpurpose>Obtaining information from OpenType tables</refpurpose><!--[<xref linkend="desc" endterm="desc.title"/>]--></refnamediv><refsect1 id="pango-OpenType-Font-Handling.stability-level"><title>Stability Level</title>Unstable, unless otherwise indicated</refsect1><refsynopsisdiv id="pango-OpenType-Font-Handling.synopsis" role="synopsis"><title role="synopsis.title">Synopsis</title><anchor id="PangoOTInfo"/><anchor id="PangoOTRuleset"/><synopsis>typedef <link linkend="PangoOTTag">PangoOTTag</link>; <link linkend="PangoOTInfo-struct">PangoOTInfo</link>; <link linkend="PangoOTBuffer">PangoOTBuffer</link>; <link linkend="PangoOTGlyph">PangoOTGlyph</link>; <link linkend="PangoOTRuleset-struct">PangoOTRuleset</link>; <link linkend="PangoOTRulesetDescription">PangoOTRulesetDescription</link>;enum <link linkend="PangoOTTableType">PangoOTTableType</link>; <link linkend="PangoOTFeatureMap">PangoOTFeatureMap</link>;#define <link linkend="PANGO-OT-TAG-MAKE:CAPS">PANGO_OT_TAG_MAKE</link> (c1,c2,c3,c4)#define <link linkend="PANGO-OT-TAG-MAKE-FROM-STRING:CAPS">PANGO_OT_TAG_MAKE_FROM_STRING</link> (s)#define <link linkend="PANGO-OT-ALL-GLYPHS:CAPS">PANGO_OT_ALL_GLYPHS</link>#define <link linkend="PANGO-OT-NO-FEATURE:CAPS">PANGO_OT_NO_FEATURE</link>#define <link linkend="PANGO-OT-NO-SCRIPT:CAPS">PANGO_OT_NO_SCRIPT</link>#define <link linkend="PANGO-OT-DEFAULT-LANGUAGE:CAPS">PANGO_OT_DEFAULT_LANGUAGE</link>#define <link linkend="PANGO-OT-TAG-DEFAULT-LANGUAGE:CAPS">PANGO_OT_TAG_DEFAULT_LANGUAGE</link>#define <link linkend="PANGO-OT-TAG-DEFAULT-SCRIPT:CAPS">PANGO_OT_TAG_DEFAULT_SCRIPT</link><link linkend="PangoOTInfo">PangoOTInfo</link>* <link linkend="pango-ot-info-get">pango_ot_info_get</link> (<link linkend="FT-Face">FT_Face</link> face);<link linkend="gboolean">gboolean</link> <link linkend="pango-ot-info-find-script">pango_ot_info_find_script</link> (<link linkend="PangoOTInfo">PangoOTInfo</link> *info, <link linkend="PangoOTTableType">PangoOTTableType</link> table_type, <link linkend="PangoOTTag">PangoOTTag</link> script_tag, <link linkend="guint">guint</link> *script_index);<link linkend="gboolean">gboolean</link> <link linkend="pango-ot-info-find-language">pango_ot_info_find_language</link> (<link linkend="PangoOTInfo">PangoOTInfo</link> *info, <link linkend="PangoOTTableType">PangoOTTableType</link> table_type, <link linkend="guint">guint</link> script_index, <link linkend="PangoOTTag">PangoOTTag</link> language_tag, <link linkend="guint">guint</link> *language_index, <link linkend="guint">guint</link> *required_feature_index);<link linkend="gboolean">gboolean</link> <link linkend="pango-ot-info-find-feature">pango_ot_info_find_feature</link> (<link linkend="PangoOTInfo">PangoOTInfo</link> *info, <link linkend="PangoOTTableType">PangoOTTableType</link> table_type, <link linkend="PangoOTTag">PangoOTTag</link> feature_tag, <link linkend="guint">guint</link> script_index, <link linkend="guint">guint</link> language_index, <link linkend="guint">guint</link> *feature_index);<link linkend="PangoOTTag">PangoOTTag</link>* <link linkend="pango-ot-info-list-scripts">pango_ot_info_list_scripts</link> (<link linkend="PangoOTInfo">PangoOTInfo</link> *info, <link linkend="PangoOTTableType">PangoOTTableType</link> table_type);<link linkend="PangoOTTag">PangoOTTag</link>* <link linkend="pango-ot-info-list-languages">pango_ot_info_list_languages</link> (<link linkend="PangoOTInfo">PangoOTInfo</link> *info, <link linkend="PangoOTTableType">PangoOTTableType</link> table_type, <link linkend="guint">guint</link> script_index, <link linkend="PangoOTTag">PangoOTTag</link> language_tag);<link linkend="PangoOTTag">PangoOTTag</link>* <link linkend="pango-ot-info-list-features">pango_ot_info_list_features</link> (<link linkend="PangoOTInfo">PangoOTInfo</link> *info, <link linkend="PangoOTTableType">PangoOTTableType</link> table_type, <link linkend="PangoOTTag">PangoOTTag</link> tag, <link linkend="guint">guint</link> script_index, <link linkend="guint">guint</link> language_index);<link linkend="PangoOTBuffer">PangoOTBuffer</link>* <link linkend="pango-ot-buffer-new">pango_ot_buffer_new</link> (<link linkend="PangoFcFont">PangoFcFont</link> *font);<link linkend="void">void</link> <link linkend="pango-ot-buffer-destroy">pango_ot_buffer_destroy</link> (<link linkend="PangoOTBuffer">PangoOTBuffer</link> *buffer);<link linkend="void">void</link> <link linkend="pango-ot-buffer-clear">pango_ot_buffer_clear</link> (<link linkend="PangoOTBuffer">PangoOTBuffer</link> *buffer);<link linkend="void">void</link> <link linkend="pango-ot-buffer-add-glyph">pango_ot_buffer_add_glyph</link> (<link linkend="PangoOTBuffer">PangoOTBuffer</link> *buffer, <link linkend="guint">guint</link> glyph, <link linkend="guint">guint</link> properties, <link linkend="guint">guint</link> cluster);<link linkend="void">void</link> <link linkend="pango-ot-buffer-set-rtl">pango_ot_buffer_set_rtl</link> (<link linkend="PangoOTBuffer">PangoOTBuffer</link> *buffer, <link linkend="gboolean">gboolean</link> rtl);<link linkend="void">void</link> <link linkend="pango-ot-buffer-set-zero-width-marks">pango_ot_buffer_set_zero_width_marks</link> (<link linkend="PangoOTBuffer">PangoOTBuffer</link> *buffer, <link linkend="gboolean">gboolean</link> zero_width_marks);<link linkend="void">void</link> <link linkend="pango-ot-buffer-get-glyphs">pango_ot_buffer_get_glyphs</link> (const <link linkend="PangoOTBuffer">PangoOTBuffer</link> *buffer, <link linkend="PangoOTGlyph">PangoOTGlyph</link> **glyphs, <link linkend="int">int</link> *n_glyphs);<link linkend="void">void</link> <link linkend="pango-ot-buffer-output">pango_ot_buffer_output</link> (const <link linkend="PangoOTBuffer">PangoOTBuffer</link> *buffer, <link linkend="PangoGlyphString">PangoGlyphString</link> *glyphs);const <link linkend="PangoOTRuleset">PangoOTRuleset</link>* <link linkend="pango-ot-ruleset-get-for-description">pango_ot_ruleset_get_for_description</link> (<link linkend="PangoOTInfo">PangoOTInfo</link> *info, const <link linkend="PangoOTRulesetDescription">PangoOTRulesetDescription</link> *desc);<link linkend="PangoOTRuleset">PangoOTRuleset</link>* <link linkend="pango-ot-ruleset-new">pango_ot_ruleset_new</link> (<link linkend="PangoOTInfo">PangoOTInfo</link> *info);<link linkend="PangoOTRuleset">PangoOTRuleset</link>* <link linkend="pango-ot-ruleset-new-for">pango_ot_ruleset_new_for</link> (<link linkend="PangoOTInfo">PangoOTInfo</link> *info, <link linkend="PangoScript">PangoScript</link> script, <link linkend="PangoLanguage">PangoLanguage</link> *language);<link linkend="PangoOTRuleset">PangoOTRuleset</link>* <link linkend="pango-ot-ruleset-new-from-description">pango_ot_ruleset_new_from_description</link> (<link linkend="PangoOTInfo">PangoOTInfo</link> *info, const <link linkend="PangoOTRulesetDescription">PangoOTRulesetDescription</link> *desc);<link linkend="void">void</link> <link linkend="pango-ot-ruleset-add-feature">pango_ot_ruleset_add_feature</link> (<link linkend="PangoOTRuleset">PangoOTRuleset</link> *ruleset, <link linkend="PangoOTTableType">PangoOTTableType</link> table_type, <link linkend="guint">guint</link> feature_index, <link linkend="gulong">gulong</link> property_bit);<link linkend="gboolean">gboolean</link> <link linkend="pango-ot-ruleset-maybe-add-feature">pango_ot_ruleset_maybe_add_feature</link> (<link linkend="PangoOTRuleset">PangoOTRuleset</link> *ruleset, <link linkend="PangoOTTableType">PangoOTTableType</link> table_type, <link linkend="PangoOTTag">PangoOTTag</link> feature_tag, <link linkend="gulong">gulong</link> property_bit);<link linkend="guint">guint</link> <link linkend="pango-ot-ruleset-maybe-add-features">pango_ot_ruleset_maybe_add_features</link> (<link linkend="PangoOTRuleset">PangoOTRuleset</link> *ruleset, <link linkend="PangoOTTableType">PangoOTTableType</link> table_type, const <link linkend="PangoOTFeatureMap">PangoOTFeatureMap</link> *features, <link linkend="guint">guint</link> n_features);<link linkend="guint">guint</link> <link linkend="pango-ot-ruleset-get-feature-count">pango_ot_ruleset_get_feature_count</link> (const <link linkend="PangoOTRuleset">PangoOTRuleset</link> *ruleset, <link linkend="guint">guint</link> *n_gsub_features, <link linkend="guint">guint</link> *n_gpos_features);<link linkend="void">void</link> <link linkend="pango-ot-ruleset-substitute">pango_ot_ruleset_substitute</link> (const <link linkend="PangoOTRuleset">PangoOTRuleset</link> *ruleset, <link linkend="PangoOTBuffer">PangoOTBuffer</link> *buffer);<link linkend="void">void</link> <link linkend="pango-ot-ruleset-position">pango_ot_ruleset_position</link> (const <link linkend="PangoOTRuleset">PangoOTRuleset</link> *ruleset, <link linkend="PangoOTBuffer">PangoOTBuffer</link> *buffer);<link linkend="PangoOTRulesetDescription">PangoOTRulesetDescription</link>* <link linkend="pango-ot-ruleset-description-copy">pango_ot_ruleset_description_copy</link> (const <link linkend="PangoOTRulesetDescription">PangoOTRulesetDescription</link> *desc);<link linkend="gboolean">gboolean</link> <link linkend="pango-ot-ruleset-description-equal">pango_ot_ruleset_description_equal</link> (const <link linkend="PangoOTRulesetDescription">PangoOTRulesetDescription</link> *desc1, const <link linkend="PangoOTRulesetDescription">PangoOTRulesetDescription</link> *desc2);<link linkend="void">void</link> <link linkend="pango-ot-ruleset-description-free">pango_ot_ruleset_description_free</link> (<link linkend="PangoOTRulesetDescription">PangoOTRulesetDescription</link> *desc);<link linkend="guint">guint</link> <link linkend="pango-ot-ruleset-description-hash">pango_ot_ruleset_description_hash</link> (const <link linkend="PangoOTRulesetDescription">PangoOTRulesetDescription</link> *desc);<link linkend="PangoOTTag">PangoOTTag</link> <link linkend="pango-ot-tag-from-language">pango_ot_tag_from_language</link> (<link linkend="PangoLanguage">PangoLanguage</link> *language);<link linkend="PangoOTTag">PangoOTTag</link> <link linkend="pango-ot-tag-from-script">pango_ot_tag_from_script</link> (<link linkend="PangoScript">PangoScript</link> script);<link linkend="PangoLanguage">PangoLanguage</link>* <link linkend="pango-ot-tag-to-language">pango_ot_tag_to_language</link> (<link linkend="PangoOTTag">PangoOTTag</link> language_tag);<link linkend="PangoScript">PangoScript</link> <link linkend="pango-ot-tag-to-script">pango_ot_tag_to_script</link> (<link linkend="PangoOTTag">PangoOTTag</link> script_tag);</synopsis></refsynopsisdiv><refsect1 id="pango-OpenType-Font-Handling.object-hierarchy" role="object_hierarchy"><title role="object_hierarchy.title">Object Hierarchy</title><synopsis> <link linkend="GObject">GObject</link> +----PangoOTInfo</synopsis><synopsis> <link linkend="GObject">GObject</link> +----PangoOTRuleset</synopsis></refsect1><refsect1 id="pango-OpenType-Font-Handling.description" role="desc"><title role="desc.title">Description</title><para>Functions and macros in this section are used to implement the OpenType Layoutfeatures and algorithms. These are mostly useful when writing Fontconfig-basedshaping engines</para></refsect1><refsect1 id="pango-OpenType-Font-Handling.details" role="details"><title role="details.title">Details</title><refsect2 id="PangoOTTag" role="typedef"><title>PangoOTTag</title><indexterm zone="PangoOTTag"><primary>PangoOTTag</primary></indexterm><programlisting>typedef guint32 PangoOTTag;</programlisting><para>The <type>PangoOTTag</type> typedef is used to represent TrueType and OpenTypefour letter tags inside Pango. Use <link linkend="PANGO-OT-TAG-MAKE:CAPS"><function>PANGO_OT_TAG_MAKE()</function></link>or <link linkend="PANGO-OT-TAG-MAKE-FROM-STRING:CAPS"><function>PANGO_OT_TAG_MAKE_FROM_STRING()</function></link> macros to create <type>PangoOTTag</type>s manually.</para></refsect2><refsect2 id="PangoOTInfo-struct" role="struct"><title>PangoOTInfo</title><indexterm zone="PangoOTInfo-struct"><primary>PangoOTInfo</primary></indexterm><programlisting>typedef struct _PangoOTInfo PangoOTInfo;</programlisting><para>The <link linkend="PangoOTInfo"><type>PangoOTInfo</type></link> struct contains the various tables associated with an OpenType font. It contains only private fields andshould only be accessed via the <function>pango_ot_info_*</function> functionswhich are documented below. To obtain a <link linkend="PangoOTInfo"><type>PangoOTInfo</type></link>,use <link linkend="pango-ot-info-new"><function>pango_ot_info_new()</function></link>.</para></refsect2><refsect2 id="PangoOTBuffer" role="struct"><title>PangoOTBuffer</title><indexterm zone="PangoOTBuffer"><primary>PangoOTBuffer</primary></indexterm><programlisting>typedef struct _PangoOTBuffer PangoOTBuffer;</programlisting><para>The <link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link> structure is used to store strings of glyphs associatedwith a <link linkend="PangoFcFont"><type>PangoFcFont</type></link>, suitable for OpenType layout processing. It containsonly private fields and should only be accessed via the<function>pango_ot_buffer_*</function> functions which are documented below.To obtain a <link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link>, use <link linkend="pango-ot-buffer-new"><function>pango_ot_buffer_new()</function></link>.</para></refsect2><refsect2 id="PangoOTGlyph" role="struct"><title>PangoOTGlyph</title><indexterm zone="PangoOTGlyph"><primary>PangoOTGlyph</primary></indexterm><programlisting>typedef struct { guint glyph; guint properties; guint cluster; gushort component;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -