⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 opentype.xml

📁 Pango is a library for layout and rendering of text, with an emphasis on internationalization. Pang
💻 XML
📖 第 1 页 / 共 5 页
字号:
<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 + -