summaryrefslogtreecommitdiff
path: root/docs/tmpl/engines.sgml
blob: 2f8efcae57678af51646226f4aa7ba4bbad754cd (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
114
115
116
<!-- ##### 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>

<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### 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: array of scripts this engine supports.
@n_scripts: number of items in @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: