blob: fb7fdfd27adbf1b57c46abd21e38e94a16048d9a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
<!-- ##### SECTION Title ##### -->
Engines
<!-- ##### SECTION Short_Description ##### -->
Language-specific and rendering-system-specific processing
<!-- ##### SECTION Long_Description ##### -->
<para>
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
<firstterm>engines</firstterm>. Each <firstterm>engine</firstterm>
has an associated <firstterm>engine type</firstterm> and
<firstterm>render type</firstterm>. These two types are represented by
strings.
</para>
<para>
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.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### STRUCT PangoEngineInfo ##### -->
<para>
The #PangoEngineInfo structure contains information about a particular
engine. It contains the following fields:
</para>
@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:
@n_scripts:
<!-- ##### STRUCT PangoEngineScriptInfo ##### -->
<para>
The PangoEngineScriptInfo structure contains
information about how the shaper covers a particular
script.
</para>
@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.
<!-- ##### STRUCT PangoEngine ##### -->
<para>
</para>
<!-- ##### STRUCT PangoEngineClass ##### -->
<para>
</para>
<!-- ##### MACRO PANGO_RENDER_TYPE_NONE ##### -->
<para>
A string constant defining the render type
for engines that are not rendering-system
specific.
</para>
<!-- ##### FUNCTION script_engine_list ##### -->
<para>
</para>
@engines: location to store a pointer to an array of engines.
@n_engines: location to store the number of elements in @engines.
<!-- ##### FUNCTION script_engine_init ##### -->
<para>
</para>
@module:
<!-- ##### FUNCTION script_engine_exit ##### -->
<para>
</para>
<!-- ##### FUNCTION script_engine_create ##### -->
<para>
</para>
@id:
@Returns:
|