Engines
Language-specific and rendering-system-specific processing
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.
The #PangoEngineInfo structure contains information about a particular
engine. It contains the following fields:
@id: a unique string ID for the engine.
@engine_type: a string identifying the engine type.
@render_type: a string identifying the render type.
@scripts: array of scripts this engine supports.
@n_scripts: number of items in @scripts.
The PangoEngineScriptInfo structure contains
information about how the shaper covers a particular
script.
@script: a #PangoScript. The value %PANGO_SCRIPT_COMMON has
the special meaning here of "all scripts"
@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.
A string constant defining the render type
for engines that are not rendering-system
specific.
@engines: location to store a pointer to an array of engines.
@n_engines: location to store the number of elements in @engines.
@module:
@id:
@Returns: