<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
  "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
[
<!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
<!ENTITY version SYSTEM "version.xml">
]>
<refentry id="pango-Engines">
<refmeta>
<refentrytitle role="top_of_page" id="pango-Engines.top_of_page">Engines</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>PANGO Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>Engines</refname>
<refpurpose>Language-specific and rendering-system-specific processing</refpurpose>
</refnamediv>

<refsect1 id="pango-Engines.functions" role="functions_proto">
<title role="functions_proto.title">Functions</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="functions_proto_type" colwidth="150px"/>
<colspec colname="functions_proto_name"/>
<tbody>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="script-engine-list">script_engine_list</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="script-engine-init">script_engine_init</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="script-engine-exit">script_engine_exit</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="PangoEngine"><returnvalue>PangoEngine</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="script-engine-create">script_engine_create</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<anchor id="PangoEngine"/><refsect1 id="pango-Engines.other" role="other_proto">
<title role="other_proto.title">Types and Values</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="other_proto_type" colwidth="150px"/>
<colspec colname="other_proto_name"/>
<tbody>
<row><entry role="datatype_keyword">struct</entry><entry role="function_name"><link linkend="PangoEngineInfo">PangoEngineInfo</link></entry></row>
<row><entry role="datatype_keyword">struct</entry><entry role="function_name"><link linkend="PangoEngineScriptInfo">PangoEngineScriptInfo</link></entry></row>
<row><entry role="datatype_keyword">struct</entry><entry role="function_name"><link linkend="PangoEngine-struct">PangoEngine</link></entry></row>
<row><entry role="datatype_keyword">struct</entry><entry role="function_name"><link linkend="PangoEngineClass">PangoEngineClass</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="pango-Engines.object-hierarchy" role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<screen>    <link linkend="GObject">GObject</link>
    <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> PangoEngine
        <phrase role="lineart">&#9500;&#9472;&#9472;</phrase> <link linkend="PangoEngineLang">PangoEngineLang</link>
        <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> <link linkend="PangoEngineShape">PangoEngineShape</link>
</screen>
</refsect1>


<refsect1 id="pango-Engines.description" role="desc">
<title role="desc.title">Description</title>
<para>Pango used to have a module architecture in which the language-specific
and render-system-specific components are provided by loadable
modules.</para>
<para>This is no longer the case, and all the APIs related
to modules and engines should not be used anymore.</para>

</refsect1>
<refsect1 id="pango-Engines.functions_details" role="details">
<title role="details.title">Functions</title>
<refsect2 id="script-engine-list" role="function" condition="deprecated:1.38">
<title>script_engine_list&#160;()</title>
<indexterm zone="script-engine-list" role="deprecated"><primary>script_engine_list</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
script_engine_list (<parameter><link linkend="PangoEngineInfo"><type>PangoEngineInfo</type></link> **engines</parameter>,
                    <parameter><link linkend="int"><type>int</type></link> *n_engines</parameter>);</programlisting>
<warning><para><literal>script_engine_list</literal> has been deprecated since version 1.38 and should not be used in newly-written code.</para></warning>
<para>Do not use.</para>

<para><emphasis role="annotation">[<acronym>skip</acronym>]</emphasis></para><refsect3 id="script-engine-list.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>engines</para></entry>
<entry role="parameter_description"><para>location to store a pointer to an array of engines.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_engines</para></entry>
<entry role="parameter_description"><para>location to store the number of elements in <parameter>engines</parameter>
.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="script-engine-init" role="function" condition="deprecated:1.38">
<title>script_engine_init&#160;()</title>
<indexterm zone="script-engine-init" role="deprecated"><primary>script_engine_init</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
script_engine_init (<parameter><link linkend="GTypeModule"><type>GTypeModule</type></link> *module</parameter>);</programlisting>
<warning><para><literal>script_engine_init</literal> has been deprecated since version 1.38 and should not be used in newly-written code.</para></warning>
<para>Do not use.</para>

<para><emphasis role="annotation">[<acronym>skip</acronym>]</emphasis></para><refsect3 id="script-engine-init.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>module</para></entry>
<entry role="parameter_description"><para>a <link linkend="GTypeModule"><type>GTypeModule</type></link> structure used to associate any
GObject types created in this module with the module.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="script-engine-exit" role="function" condition="deprecated:1.38">
<title>script_engine_exit&#160;()</title>
<indexterm zone="script-engine-exit" role="deprecated"><primary>script_engine_exit</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
script_engine_exit (<parameter><type>void</type></parameter>);</programlisting>
<warning><para><literal>script_engine_exit</literal> has been deprecated since version 1.38 and should not be used in newly-written code.</para></warning>
<para>Do not use.</para>

<para><emphasis role="annotation">[<acronym>skip</acronym>]</emphasis></para></refsect2>
<refsect2 id="script-engine-create" role="function" condition="deprecated:1.38">
<title>script_engine_create&#160;()</title>
<indexterm zone="script-engine-create" role="deprecated"><primary>script_engine_create</primary></indexterm>
<programlisting language="C"><link linkend="PangoEngine"><returnvalue>PangoEngine</returnvalue></link>&#160;*
script_engine_create (<parameter>const <link linkend="char"><type>char</type></link> *id</parameter>);</programlisting>
<warning><para><literal>script_engine_create</literal> has been deprecated since version 1.38 and should not be used in newly-written code.</para></warning>
<para>Do not use.</para>

<para><emphasis role="annotation">[<acronym>skip</acronym>]</emphasis></para><refsect3 id="script-engine-create.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>id</para></entry>
<entry role="parameter_description"><para>the ID of an engine as reported by script_engine_list.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>

</refsect1>
<refsect1 id="pango-Engines.other_details" role="details">
<title role="details.title">Types and Values</title>
<refsect2 id="PangoEngineInfo" role="struct" condition="deprecated:1.38">
<title>struct PangoEngineInfo</title>
<indexterm zone="PangoEngineInfo" role="deprecated"><primary>PangoEngineInfo</primary></indexterm>
<programlisting language="C">struct PangoEngineInfo {
  const gchar *id;
  const gchar *engine_type;
  const gchar *render_type;
  PangoEngineScriptInfo *scripts;
  gint n_scripts;
};
</programlisting>
<warning><para><literal>PangoEngineInfo</literal> has been deprecated since version 1.38 and should not be used in newly-written code.</para></warning>
<para>The <link linkend="PangoEngineInfo"><type>PangoEngineInfo</type></link> structure contains information about a particular
engine. It contains the following fields:</para>
<refsect3 id="PangoEngineInfo.members" role="struct_members">
<title>Members</title>
<informaltable role="struct_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="struct_members_name" colwidth="300px"/>
<colspec colname="struct_members_description"/>
<colspec colname="struct_members_annotations" colwidth="200px"/>
<tbody>
<row role="member"><entry role="struct_member_name"><para>const&#160;<link linkend="gchar"><type>gchar</type></link>&#160;*<structfield id="PangoEngineInfo.id">id</structfield>;</para></entry>
<entry role="struct_member_description"><para>a unique string ID for the engine.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para>const&#160;<link linkend="gchar"><type>gchar</type></link>&#160;*<structfield id="PangoEngineInfo.engine-type">engine_type</structfield>;</para></entry>
<entry role="struct_member_description"><para>a string identifying the engine type.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para>const&#160;<link linkend="gchar"><type>gchar</type></link>&#160;*<structfield id="PangoEngineInfo.render-type">render_type</structfield>;</para></entry>
<entry role="struct_member_description"><para>a string identifying the render type.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><link linkend="PangoEngineScriptInfo"><type>PangoEngineScriptInfo</type></link>&#160;*<structfield id="PangoEngineInfo.scripts">scripts</structfield>;</para></entry>
<entry role="struct_member_description"><para>array of scripts this engine supports.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><link linkend="gint"><type>gint</type></link>&#160;<structfield id="PangoEngineInfo.n-scripts">n_scripts</structfield>;</para></entry>
<entry role="struct_member_description"><para>number of items in <parameter>scripts</parameter>
.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3>
</refsect2>
<refsect2 id="PangoEngineScriptInfo" role="struct" condition="deprecated:1.38">
<title>struct PangoEngineScriptInfo</title>
<indexterm zone="PangoEngineScriptInfo" role="deprecated"><primary>PangoEngineScriptInfo</primary></indexterm>
<programlisting language="C">struct PangoEngineScriptInfo {
  PangoScript script;
  const gchar *langs;
};
</programlisting>
<warning><para><literal>PangoEngineScriptInfo</literal> has been deprecated since version 1.38 and should not be used in newly-written code.</para></warning>
<para>The <link linkend="PangoEngineScriptInfo"><type>PangoEngineScriptInfo</type></link> structure contains
information about how the shaper covers a particular script.</para>
<refsect3 id="PangoEngineScriptInfo.members" role="struct_members">
<title>Members</title>
<informaltable role="struct_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="struct_members_name" colwidth="300px"/>
<colspec colname="struct_members_description"/>
<colspec colname="struct_members_annotations" colwidth="200px"/>
<tbody>
<row role="member"><entry role="struct_member_name"><para><link linkend="PangoScript"><type>PangoScript</type></link>&#160;<structfield id="PangoEngineScriptInfo.script">script</structfield>;</para></entry>
<entry role="struct_member_description"><para>a <link linkend="PangoScript"><type>PangoScript</type></link>. The value <link linkend="PANGO-SCRIPT-COMMON:CAPS"><literal>PANGO_SCRIPT_COMMON</literal></link> has
the special meaning here of "all scripts"</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para>const&#160;<link linkend="gchar"><type>gchar</type></link>&#160;*<structfield id="PangoEngineScriptInfo.langs">langs</structfield>;</para></entry>
<entry role="struct_member_description"><para>a semicolon separated list of languages that this
engine handles for this script. This may be empty,
in which case the engine is saying that it is a
fallback choice for all languages for this range,
but should not be used if another engine
indicates that it is specific for the language for
a given code point. An entry in this list of "*"
indicates that this engine is specific to all
languages for this range.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3>
</refsect2>
<refsect2 id="PangoEngine-struct" role="struct">
<title>struct PangoEngine</title>
<indexterm zone="PangoEngine-struct" role="deprecated"><primary>PangoEngine</primary></indexterm>
<programlisting language="C">struct PangoEngine;</programlisting>
<warning><para><literal>PangoEngine</literal> has been deprecated since version 1.38 and should not be used in newly-written code.</para></warning>
<para><link linkend="PangoEngine"><type>PangoEngine</type></link> is the base class for all types of language and
script specific engines. It has no functionality by itself.</para>
</refsect2>
<refsect2 id="PangoEngineClass" role="struct" condition="deprecated:1.38">
<title>struct PangoEngineClass</title>
<indexterm zone="PangoEngineClass" role="deprecated"><primary>PangoEngineClass</primary></indexterm>
<programlisting language="C">struct PangoEngineClass {
};
</programlisting>
<warning><para><literal>PangoEngineClass</literal> has been deprecated since version 1.38 and should not be used in newly-written code.</para></warning>
<para>Class structure for <link linkend="PangoEngine"><type>PangoEngine</type></link></para>
</refsect2>

</refsect1>

</refentry>
