Go to the source code of this file.
◆ TT_FACE_HAS_KERNING
◆ tt_face_done_kern()
Definition at line 173 of file ttkern.c.
174 {
176
177
179 face->kern_table_size = 0;
180 face->num_kern_tables = 0;
181 face->kern_avail_bits = 0;
182 face->kern_order_bits = 0;
183 }
#define FT_FRAME_RELEASE(bytes)
GLenum GLuint GLint GLenum face
Referenced by sfnt_done_face().
◆ tt_face_get_kerning()
Definition at line 187 of file ttkern.c.
190 {
195
196
199
201 count > 0 &&
p + 6 <= p_limit;
203 {
211
213
214
216
217 if (
next > p_limit )
219
220 if ( (
face->kern_avail_bits &
mask ) == 0 )
221 goto NextTable;
222
224
227
228 if ( (
next -
p ) < 6 * (
int)num_pairs )
230
231 switch ( coverage >> 8 )
232 {
233 case 0:
234 {
236
237
239 {
242
243
245 {
249
250
252
254 {
257 }
260 else
262 }
263 }
264 else
265 {
267
268
269 for ( count2 = num_pairs; count2 > 0; count2-- )
270 {
272
273
275 {
278 }
280 }
281 }
282 }
283 break;
284
285
286
287
288
289
290 default:
291 ;
292 }
293
294 goto NextTable;
295
297 if ( coverage & 8 )
299 else
301
302 NextTable:
304 }
305
307 }
static const WCHAR version[]
#define FT_ASSERT(condition)
#define FT_NEXT_USHORT(buffer)
#define FT_NEXT_ULONG(buffer)
GLuint GLuint GLsizei count
GLdouble GLdouble GLdouble GLdouble q
GLuint GLsizei GLsizei * length
GLuint64EXT GLuint GLuint GLenum GLenum GLuint GLuint key0
static unsigned __int64 next
FT_UInt FT_UInt right_glyph
#define TT_KERN_INDEX(g1, g2)
◆ tt_face_load_kern()
Definition at line 44 of file ttkern.c.
46 {
52 FT_UInt32
avail = 0, ordered = 0;
53
54
55
59
61 {
63 " kerning table is too small - ignored\n" ));
66 }
67
69 {
71 " could not extract kerning table\n" ));
73 }
74
76
79
82
83 if ( num_tables > 32 )
84 num_tables = 32;
85
86 for ( nn = 0; nn < num_tables; nn++ )
87 {
90 FT_UInt32
mask = (FT_UInt32)1UL << nn;
91
92
93 if (
p + 6 > p_limit )
94 break;
95
97
101
103 break;
104
106
107 if ( p_next > p_limit )
108 p_next = p_limit;
109
111
112
114 goto NextTable;
115
116
117 if ( ( coverage & 3U ) != 0x0001 ||
119 goto NextTable;
120
123
124 if ( ( p_next -
p ) < 6 * (
int)num_pairs )
125 num_pairs = (
FT_UInt)( ( p_next -
p ) / 6 );
126
128
129
130
131
132
133 if ( num_pairs > 0 )
134 {
137
138
141
143 {
144 FT_UInt32 cur_pair;
145
146
148 if ( cur_pair <= old_pair )
149 break;
150
152 old_pair = cur_pair;
153 }
154
157 }
158
159 NextTable:
161 }
162
163 face->num_kern_tables = nn;
165 face->kern_order_bits = ordered;
166
169 }
#define FT_ERROR(varformat)
#define FT_FRAME_EXTRACT(size, bytes)