1 <!-- ##### SECTION Title ##### -->
4 <!-- ##### SECTION Short_Description ##### -->
5 Language-specific and rendering-system-specific processing
7 <!-- ##### SECTION Long_Description ##### -->
9 Pango utilizes a module architecture in which the language-specific
10 and render-system-specific components are provided by loadable
11 modules. Each loadable module supplies one or more
12 <firstterm>engines</firstterm>. Each <firstterm>engine</firstterm>
13 has an associated <firstterm>engine type</firstterm> and
14 <firstterm>render type</firstterm>. These two types are represented by
18 Each dynamically-loaded module exports several functions which provide
19 the public API. These functions are script_engine_list(),
20 script_engine_init() and script_engine_exit, and
21 script_engine_create(). The latter three functions are used when
22 creating engines from the module at run time, while the first
23 function is used when building a catalog of all available modules.
26 <!-- ##### SECTION See_Also ##### -->
31 <!-- ##### SECTION Stability_Level ##### -->
34 <!-- ##### SECTION Image ##### -->
37 <!-- ##### STRUCT PangoEngineInfo ##### -->
39 The #PangoEngineInfo structure contains information about a particular
40 engine. It contains the following fields:
43 @id: a unique string ID for the engine.
44 @engine_type: a string identifying the engine type.
45 @render_type: a string identifying the render type.
46 @scripts: array of scripts this engine supports.
47 @n_scripts: number of items in @scripts.
49 <!-- ##### STRUCT PangoEngineScriptInfo ##### -->
51 The #PangoEngineScriptInfo structure contains
52 information about how the shaper covers a particular
56 @script: a #PangoScript. The value %PANGO_SCRIPT_COMMON has
57 the special meaning here of "all scripts"
58 @langs: a semicolon separated list of languages that this
59 engine handles for this script. This may be empty,
60 in which case the engine is saying that it is a
61 fallback choice for all languages for this range,
62 but should not be used if another engine
63 indicates that it is specific for the language for
64 a given code point. An entry in this list of "*"
65 indicates that this engine is specific to all
66 languages for this range.
68 <!-- ##### STRUCT PangoEngine ##### -->
73 <!-- ##### STRUCT PangoEngineClass ##### -->
79 <!-- ##### MACRO PANGO_RENDER_TYPE_NONE ##### -->
81 A string constant defining the render type
82 for engines that are not rendering-system
88 <!-- ##### FUNCTION script_engine_list ##### -->
92 @engines: location to store a pointer to an array of engines.
93 @n_engines: location to store the number of elements in @engines.
96 <!-- ##### FUNCTION script_engine_init ##### -->
104 <!-- ##### FUNCTION script_engine_exit ##### -->
112 <!-- ##### FUNCTION script_engine_create ##### -->