blob: a764f2ef79b4ea83490771379d2110a3168c62cd (
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
|
<!-- ##### SECTION Title ##### -->
Glyph Storage
<!-- ##### SECTION Short_Description ##### -->
Structures for storing information about glyphs.
<!-- ##### SECTION Long_Description ##### -->
<para>
pango_shape() produces a string of glyphs which
can be measured or drawn to the screen. The following
structures are used to store information about
glyphs.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### STRUCT PangoGlyph ##### -->
<para>
The #PangoGlyph structure represents a single glyph in the output
form of a string. It contains the following fields.
<informaltable pgwide=1 frame="none" role="struct">
<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
<tbody>
<row>
<entry>#PangoGlyphIndex glyph;</entry>
<entry>the index of the glyph into the font. (Rendering system
dependent).</entry>
</row>
<row>
<entry>#PangoCFont *font;</entry>
<entry>the rendering-system-specific font information for this glyph.</entry>
</row>
</tbody></tgroup></informaltable>
</para>
<!-- ##### TYPEDEF PangoGlyphIndex ##### -->
<para>
The #PangoGlyphIndex type is an integral type used to store glyph
indices.
</para>
<!-- ##### STRUCT PangoGlyphGeometry ##### -->
<para>
The #PangoGlyphGeometry structure contains width and positioning
information for a single glyph. Distances are in
1/64ths of a point.
<informaltable pgwide=1 frame="none" role="struct">
<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
<tbody>
<row>
<entry>#PangoGlyphUnit width;</entry>
<entry>the logical width to use for the the character.</entry>
</row>
<row>
<entry>#PangoCFont *x_offset;</entry>
<entry>horizontal offset from nominal character position.</entry>
</row>
<row>
<entry>#PangoCFont *y_offset;</entry>
<entry>vertical offset from nominal character position.</entry>
</row>
</tbody></tgroup></informaltable>
</para>
<!-- ##### TYPEDEF PangoGlyphUnit ##### -->
<para>
The #PangoGlyphUnit type is used to store dimensions within
Pango. Dimensions are stored in 1/64ths of a point.
</para>
<!-- ##### STRUCT PangoGlyphVisAttr ##### -->
<para>
The PangoGlyphVisAttr is used to communicate information between
the shaping phase and the rendering phase. It's contents
are still evolving.
<informaltable pgwide=1 frame="none" role="struct">
<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
<tbody>
<row>
<entry>#guint is_cluster_start : 1;</entry>
<entry>set for the first logical glyph in each cluster. (Clusters
are stored in visual order, within the cluster, glyphs
are always ordered in logical order, since visual
order is meaningless; that is, in Arabic text, accent glyphs
follow the glyphs for the base character.)
</entry>
</row>
</tbody></tgroup></informaltable>
</para>
<!-- ##### STRUCT PangoGlyphString ##### -->
<para>
The #PangoGlyphString structure is used to store strings
of glyphs with geometry and visual attribute information.
The storage for the glyph information is owned
by the structure which simplifies memory management.
</para>
<para>
#PangoGlyphString contains the following publically
accessible fields
<informaltable pgwide=1 frame="none" role="struct">
<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
<tbody>
<row>
<entry>gint #num_glyphs;</entry>
<entry>the number of glyphs in the string.</entry>
</row>
<row>
<entry>PangoGlyph *#glyphs;</entry>
<entry>an array of glyphs of length <structfield>num_glyphs</structfield>.</entry>
</row>
<row>
<entry>PangoGlyphGeometry *#geometry;</entry>
<entry>an array of #PangoGlyphGeometry structures corresponding to <structfield>glyphs</structfield>.</entry>
</row>
<row>
<entry>PangoGlyphVisAttr *#attrs;</entry>
<entry>an array of #PangoGlyphVisAttr structures corresponding to <structfield>glyphs</structfield>.</entry>
</row>
<row>
<entry>gint *#log_clusters;</entry>
<entry>for each glyph, the character index (should this be byte
index?) of the starting character for the cluster.</entry>
</row>
</tbody></tgroup></informaltable>
</para>
<!-- ##### FUNCTION g_glyph_string_new ##### -->
<para>
</para>
@Returns:
<!-- ##### FUNCTION g_glyph_string_set_size ##### -->
<para>
</para>
@string:
@new_len:
<!-- ##### FUNCTION g_glyph_string_free ##### -->
<para>
</para>
@string:
|