## Engines

Engines — Language-specific and rendering-system-specific processing

## Functions

void | script_engine_list ()
void | script_engine_init ()
void | script_engine_exit ()
PangoEngine * | script_engine_create ()

## Types and Values

struct | PangoEngineInfo
struct | PangoEngineScriptInfo
struct | PangoEngine
struct | PangoEngineClass
#define | PANGO_RENDER_TYPE_NONE

## Object Hierarchy

        GObject
        ╰── PangoEngine
            ├── PangoEngineLang
            ╰── PangoEngineShape

## Description

Pango utilizes a module architecture in which the language-specific and render-system-specific components are provided by loadable modules. Each loadable module supplies one or more engines. Each engine has an associated engine type and render type. These two types are represented by strings.

Each dynamically-loaded module exports several functions which provide the public API. These functions are `script_engine_list()`, `script_engine_init()` and script_engine_exit, and `script_engine_create()`. The latter three functions are used when creating engines from the module at run time, while the first function is used when building a catalog of all available modules.

## Functions

### script_engine_list ()

    void
    script_engine_list (PangoEngineInfo **engines,
                        int *n_engines);

`script_engine_list` has been deprecated since version 1.38 and should not be used in newly-written code.

Do not use.

[skip]

#### Parameters

engines | location to store a pointer to an array of engines. |
n_engines | location to store the number of elements in `engines` . |

### script_engine_init ()

    void
    script_engine_init (GTypeModule *module);

`script_engine_init` has been deprecated since version 1.38 and should not be used in newly-written code.

Do not use.

[skip]

#### Parameters

module | a GTypeModule structure used to associate any GObject types created in this module with the module. |

### script_engine_exit ()

    void
    script_engine_exit (void);

`script_engine_exit` has been deprecated since version 1.38 and should not be used in newly-written code.

Do not use.

[skip]

### script_engine_create ()

    PangoEngine *
    script_engine_create (const char *id);

`script_engine_create` has been deprecated since version 1.38 and should not be used in newly-written code.

Do not use.

[skip]

#### Parameters

id | the ID of an engine as reported by script_engine_list. |

## Types and Values

### struct PangoEngineInfo

    struct PangoEngineInfo {
      const gchar *id;
      const gchar *engine_type;
      const gchar *render_type;
      PangoEngineScriptInfo *scripts;
      gint n_scripts;
    };

`PangoEngineInfo` has been deprecated since version 1.38 and should not be used in newly-written code.

The PangoEngineInfo structure contains information about a particular engine. It contains the following fields:

#### Members

const gchar *`id`; | a unique string ID for the engine. |
const gchar *`engine_type`; | a string identifying the engine type. |
const gchar *`render_type`; | a string identifying the render type. |
PangoEngineScriptInfo *`scripts`; | array of scripts this engine supports. |
gint `n_scripts`; | number of items in `scripts` . |

### struct PangoEngineScriptInfo

    struct PangoEngineScriptInfo {
      PangoScript script;
      const gchar *langs;
    };

`PangoEngineScriptInfo` has been deprecated since version 1.38 and should not be used in newly-written code.

The PangoEngineScriptInfo structure contains information about how the shaper covers a particular script.

#### Members

PangoScript `script`; | a PangoScript. The value `PANGO_SCRIPT_COMMON` has the special meaning here of "all scripts" |
const gchar *`langs`; | 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. |

### struct PangoEngine

    struct PangoEngine;

`PangoEngine` has been deprecated since version 1.38 and should not be used in newly-written code.

PangoEngine is the base class for all types of language and script specific engines. It has no functionality by itself.

### struct PangoEngineClass

    struct PangoEngineClass {
    };

`PangoEngineClass` has been deprecated since version 1.38 and should not be used in newly-written code.

Class structure for PangoEngine

### PANGO_RENDER_TYPE_NONE

    #define PANGO_RENDER_TYPE_NONE "PangoRenderNone"

`PANGO_RENDER_TYPE_NONE` has been deprecated since version 1.38 and should not be used in newly-written code.

A string constant defining the render type for engines that are not rendering-system specific.