Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(365)

Side by Side Diff: third_party/harfbuzz/src/harfbuzz-gsub-private.h

Issue 12413010: Remove unused harfbuzz. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « third_party/harfbuzz/src/harfbuzz-gsub.c ('k') | third_party/harfbuzz/src/harfbuzz-hangul.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /*
2 * Copyright (C) 1998-2004 David Turner and Werner Lemberg
3 * Copyright (C) 2006 Behdad Esfahbod
4 *
5 * This is part of HarfBuzz, an OpenType Layout engine library.
6 *
7 * Permission is hereby granted, without written agreement and without
8 * license or royalty fees, to use, copy, modify, and distribute this
9 * software and its documentation for any purpose, provided that the
10 * above copyright notice and the following two paragraphs appear in
11 * all copies of this software.
12 *
13 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
14 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
15 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
16 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
17 * DAMAGE.
18 *
19 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
20 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
21 * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
22 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
23 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
24 */
25
26 #ifndef HARFBUZZ_GSUB_PRIVATE_H
27 #define HARFBUZZ_GSUB_PRIVATE_H
28
29 #include "harfbuzz-impl.h"
30 #include "harfbuzz-stream-private.h"
31 #include "harfbuzz-gsub.h"
32
33 HB_BEGIN_HEADER
34
35 #ifdef HB_USE_PACKED_STRUCTS
36 #pragma pack(push, 1)
37 #endif
38
39 typedef union HB_GSUB_SubTable_ HB_GSUB_SubTable;
40
41 /* LookupType 1 */
42
43 struct HB_SingleSubstFormat1_
44 {
45 HB_Short DeltaGlyphID; /* constant added to get
46 substitution glyph index */
47 };
48
49 typedef struct HB_SingleSubstFormat1_ HB_SingleSubstFormat1;
50
51
52 struct HB_SingleSubstFormat2_
53 {
54 HB_UShort* Substitute; /* array of substitute glyph IDs */
55 HB_UShort GlyphCount; /* number of glyph IDs in
56 Substitute array */
57 };
58
59 typedef struct HB_SingleSubstFormat2_ HB_SingleSubstFormat2;
60
61
62 struct HB_SingleSubst_
63 {
64 union
65 {
66 HB_SingleSubstFormat1 ssf1;
67 HB_SingleSubstFormat2 ssf2;
68 } ssf;
69
70 HB_Coverage Coverage; /* Coverage table */
71 HB_Byte SubstFormat; /* 1 or 2 */
72 };
73
74 typedef struct HB_SingleSubst_ HB_SingleSubst;
75
76
77 /* LookupType 2 */
78
79 struct HB_Sequence_
80 {
81 HB_UShort* Substitute; /* string of glyph IDs to
82 substitute */
83 HB_UShort GlyphCount; /* number of glyph IDs in the
84 Substitute array */
85 };
86
87 typedef struct HB_Sequence_ HB_Sequence;
88
89
90 struct HB_MultipleSubst_
91 {
92 HB_Sequence* Sequence; /* array of Sequence tables */
93 HB_Coverage Coverage; /* Coverage table */
94 HB_UShort SubstFormat; /* always 1 */
95 HB_UShort SequenceCount; /* number of Sequence tables */
96 };
97
98 typedef struct HB_MultipleSubst_ HB_MultipleSubst;
99
100
101 /* LookupType 3 */
102
103 struct HB_AlternateSet_
104 {
105 HB_UShort* Alternate; /* array of alternate glyph IDs */
106 HB_UShort GlyphCount; /* number of glyph IDs in the
107 Alternate array */
108 };
109
110 typedef struct HB_AlternateSet_ HB_AlternateSet;
111
112
113 struct HB_AlternateSubst_
114 {
115 HB_AlternateSet* AlternateSet; /* array of AlternateSet tables */
116 HB_Coverage Coverage; /* Coverage table */
117 HB_UShort SubstFormat; /* always 1 */
118 HB_UShort AlternateSetCount;
119 /* number of AlternateSet tables */
120 };
121
122 typedef struct HB_AlternateSubst_ HB_AlternateSubst;
123
124
125 /* LookupType 4 */
126
127 struct HB_Ligature_
128 {
129 HB_UShort* Component; /* array of component glyph IDs */
130 HB_UShort LigGlyph; /* glyphID of ligature
131 to substitute */
132 HB_UShort ComponentCount; /* number of components in ligature */
133 };
134
135 typedef struct HB_Ligature_ HB_Ligature;
136
137
138 struct HB_LigatureSet_
139 {
140 HB_Ligature* Ligature; /* array of Ligature tables */
141 HB_UShort LigatureCount; /* number of Ligature tables */
142 };
143
144 typedef struct HB_LigatureSet_ HB_LigatureSet;
145
146
147 struct HB_LigatureSubst_
148 {
149 HB_LigatureSet* LigatureSet; /* array of LigatureSet tables */
150 HB_Coverage Coverage; /* Coverage table */
151 HB_UShort SubstFormat; /* always 1 */
152 HB_UShort LigatureSetCount; /* number of LigatureSet tables */
153 };
154
155 typedef struct HB_LigatureSubst_ HB_LigatureSubst;
156
157
158 /* needed by both lookup type 5 and 6 */
159
160 struct HB_SubstLookupRecord_
161 {
162 HB_UShort SequenceIndex; /* index into current
163 glyph sequence */
164 HB_UShort LookupListIndex; /* Lookup to apply to that pos. */
165 };
166
167 typedef struct HB_SubstLookupRecord_ HB_SubstLookupRecord;
168
169
170 /* LookupType 5 */
171
172 struct HB_SubRule_
173 {
174 HB_UShort* Input; /* array of input glyph IDs */
175 HB_SubstLookupRecord* SubstLookupRecord;
176 /* array of SubstLookupRecord
177 tables */
178 HB_UShort GlyphCount; /* total number of input glyphs */
179 HB_UShort SubstCount; /* number of SubstLookupRecord
180 tables */
181 };
182
183 typedef struct HB_SubRule_ HB_SubRule;
184
185
186 struct HB_SubRuleSet_
187 {
188 HB_SubRule* SubRule; /* array of SubRule tables */
189 HB_UShort SubRuleCount; /* number of SubRule tables */
190 };
191
192 typedef struct HB_SubRuleSet_ HB_SubRuleSet;
193
194
195 struct HB_ContextSubstFormat1_
196 {
197 HB_SubRuleSet* SubRuleSet; /* array of SubRuleSet tables */
198 HB_Coverage Coverage; /* Coverage table */
199 HB_UShort SubRuleSetCount; /* number of SubRuleSet tables */
200 };
201
202 typedef struct HB_ContextSubstFormat1_ HB_ContextSubstFormat1;
203
204
205 struct HB_SubClassRule_
206 {
207 HB_UShort* Class; /* array of classes */
208 HB_SubstLookupRecord* SubstLookupRecord;
209 /* array of SubstLookupRecord
210 tables */
211 HB_UShort GlyphCount; /* total number of context classes */
212 HB_UShort SubstCount; /* number of SubstLookupRecord
213 tables */
214 };
215
216 typedef struct HB_SubClassRule_ HB_SubClassRule;
217
218
219 struct HB_SubClassSet_
220 {
221 HB_SubClassRule* SubClassRule; /* array of SubClassRule tables */
222 HB_UShort SubClassRuleCount;
223 /* number of SubClassRule tables */
224 };
225
226 typedef struct HB_SubClassSet_ HB_SubClassSet;
227
228
229 /* The `MaxContextLength' field is not defined in the TTO specification
230 but simplifies the implementation of this format. It holds the
231 maximal context length used in the context rules. */
232
233 struct HB_ContextSubstFormat2_
234 {
235 HB_SubClassSet* SubClassSet; /* array of SubClassSet tables */
236 HB_Coverage Coverage; /* Coverage table */
237 HB_ClassDefinition ClassDef; /* ClassDef table */
238 HB_UShort SubClassSetCount;
239 /* number of SubClassSet tables */
240 HB_UShort MaxContextLength;
241 /* maximal context length */
242 };
243
244 typedef struct HB_ContextSubstFormat2_ HB_ContextSubstFormat2;
245
246
247 struct HB_ContextSubstFormat3_
248 {
249 HB_Coverage* Coverage; /* array of Coverage tables */
250 HB_SubstLookupRecord* SubstLookupRecord;
251 /* array of substitution lookups */
252 HB_UShort GlyphCount; /* number of input glyphs */
253 HB_UShort SubstCount; /* number of SubstLookupRecords */
254 };
255
256 typedef struct HB_ContextSubstFormat3_ HB_ContextSubstFormat3;
257
258
259 struct HB_ContextSubst_
260 {
261 union
262 {
263 HB_ContextSubstFormat1 csf1;
264 HB_ContextSubstFormat2 csf2;
265 HB_ContextSubstFormat3 csf3;
266 } csf;
267
268 HB_Byte SubstFormat; /* 1, 2, or 3 */
269 };
270
271 typedef struct HB_ContextSubst_ HB_ContextSubst;
272
273
274 /* LookupType 6 */
275
276 struct HB_ChainSubRule_
277 {
278 HB_UShort* Backtrack; /* array of backtrack glyph IDs */
279 HB_UShort* Input; /* array of input glyph IDs */
280 HB_UShort* Lookahead; /* array of lookahead glyph IDs */
281 HB_SubstLookupRecord* SubstLookupRecord;
282 /* array of SubstLookupRecords */
283 HB_UShort BacktrackGlyphCount;
284 /* total number of backtrack glyphs */
285 HB_UShort InputGlyphCount;
286 /* total number of input glyphs */
287 HB_UShort LookaheadGlyphCount;
288 /* total number of lookahead glyphs */
289 HB_UShort SubstCount; /* number of SubstLookupRecords */
290 };
291
292 typedef struct HB_ChainSubRule_ HB_ChainSubRule;
293
294
295 struct HB_ChainSubRuleSet_
296 {
297 HB_ChainSubRule* ChainSubRule; /* array of ChainSubRule tables */
298 HB_UShort ChainSubRuleCount;
299 /* number of ChainSubRule tables */
300 };
301
302 typedef struct HB_ChainSubRuleSet_ HB_ChainSubRuleSet;
303
304
305 struct HB_ChainContextSubstFormat1_
306 {
307 HB_ChainSubRuleSet* ChainSubRuleSet;
308 /* array of ChainSubRuleSet tables */
309 HB_Coverage Coverage; /* Coverage table */
310 HB_UShort ChainSubRuleSetCount;
311 /* number of ChainSubRuleSet tables */
312 };
313
314 typedef struct HB_ChainContextSubstFormat1_ HB_ChainContextSubstFormat1;
315
316
317 struct HB_ChainSubClassRule_
318 {
319 HB_UShort* Backtrack; /* array of backtrack classes */
320 HB_UShort* Input; /* array of context classes */
321 HB_UShort* Lookahead; /* array of lookahead classes */
322 HB_SubstLookupRecord* SubstLookupRecord;
323 /* array of substitution lookups */
324 HB_UShort BacktrackGlyphCount;
325 /* total number of backtrack
326 classes */
327 HB_UShort InputGlyphCount;
328 /* total number of context classes */
329 HB_UShort LookaheadGlyphCount;
330 /* total number of lookahead
331 classes */
332 HB_UShort SubstCount; /* number of SubstLookupRecords */
333 };
334
335 typedef struct HB_ChainSubClassRule_ HB_ChainSubClassRule;
336
337
338 struct HB_ChainSubClassSet_
339 {
340 HB_ChainSubClassRule* ChainSubClassRule;
341 /* array of ChainSubClassRule
342 tables */
343 HB_UShort ChainSubClassRuleCount;
344 /* number of ChainSubClassRule
345 tables */
346 };
347
348 typedef struct HB_ChainSubClassSet_ HB_ChainSubClassSet;
349
350
351 /* The `MaxXXXLength' fields are not defined in the TTO specification
352 but simplifies the implementation of this format. It holds the
353 maximal context length used in the specific context rules. */
354
355 struct HB_ChainContextSubstFormat2_
356 {
357 HB_ChainSubClassSet* ChainSubClassSet;
358 /* array of ChainSubClassSet
359 tables */
360 HB_Coverage Coverage; /* Coverage table */
361
362 HB_ClassDefinition BacktrackClassDef;
363 /* BacktrackClassDef table */
364 HB_ClassDefinition InputClassDef;
365 /* InputClassDef table */
366 HB_ClassDefinition LookaheadClassDef;
367 /* LookaheadClassDef table */
368
369 HB_UShort ChainSubClassSetCount;
370 /* number of ChainSubClassSet
371 tables */
372 HB_UShort MaxBacktrackLength;
373 /* maximal backtrack length */
374 HB_UShort MaxLookaheadLength;
375 /* maximal lookahead length */
376 HB_UShort MaxInputLength;
377 /* maximal input length */
378 };
379
380 typedef struct HB_ChainContextSubstFormat2_ HB_ChainContextSubstFormat2;
381
382
383 struct HB_ChainContextSubstFormat3_
384 {
385 HB_Coverage* BacktrackCoverage;
386 /* array of backtrack Coverage
387 tables */
388 HB_Coverage* InputCoverage;
389 /* array of input coverage
390 tables */
391 HB_Coverage* LookaheadCoverage;
392 /* array of lookahead coverage
393 tables */
394 HB_SubstLookupRecord* SubstLookupRecord;
395 /* array of substitution lookups */
396 HB_UShort BacktrackGlyphCount;
397 /* number of backtrack glyphs */
398 HB_UShort InputGlyphCount;
399 /* number of input glyphs */
400 HB_UShort LookaheadGlyphCount;
401 /* number of lookahead glyphs */
402 HB_UShort SubstCount; /* number of SubstLookupRecords */
403 };
404
405 typedef struct HB_ChainContextSubstFormat3_ HB_ChainContextSubstFormat3;
406
407
408 struct HB_ChainContextSubst_
409 {
410 union
411 {
412 HB_ChainContextSubstFormat1 ccsf1;
413 HB_ChainContextSubstFormat2 ccsf2;
414 HB_ChainContextSubstFormat3 ccsf3;
415 } ccsf;
416
417 HB_Byte SubstFormat; /* 1, 2, or 3 */
418 };
419
420 typedef struct HB_ChainContextSubst_ HB_ChainContextSubst;
421
422
423 #if 0
424 /* LookupType 7 */
425 struct HB_ExtensionSubst_
426 {
427 HB_GSUB_SubTable *subtable; /* referenced subtable */
428 HB_UShort SubstFormat; /* always 1 */
429 HB_UShort LookuptType; /* lookup-type of referenced subtable */
430 };
431
432 typedef struct HB_ExtensionSubst_ HB_ExtensionSubst;
433 #endif
434
435
436 /* LookupType 8 */
437 struct HB_ReverseChainContextSubst_
438 {
439 HB_Coverage* LookaheadCoverage; /* array of lookahead Coverage
440 tables */
441 HB_UShort* Substitute; /* array of substitute Glyph ID */
442 HB_Coverage* BacktrackCoverage; /* array of backtrack Coverage
443 tables */
444 HB_Coverage Coverage; /* coverage table for input glyphs */
445 HB_UShort SubstFormat; /* always 1 */
446 HB_UShort BacktrackGlyphCount; /* number of backtrack glyphs */
447 HB_UShort LookaheadGlyphCount; /* number of lookahead glyphs */
448 HB_UShort GlyphCount; /* number of Glyph IDs */
449 };
450
451 typedef struct HB_ReverseChainContextSubst_ HB_ReverseChainContextSubst;
452
453
454 union HB_GSUB_SubTable_
455 {
456 HB_SingleSubst single;
457 HB_MultipleSubst multiple;
458 HB_AlternateSubst alternate;
459 HB_LigatureSubst ligature;
460 HB_ContextSubst context;
461 HB_ChainContextSubst chain;
462 HB_ReverseChainContextSubst reverse;
463 };
464
465
466
467
468 HB_INTERNAL HB_Error
469 _HB_GSUB_Load_SubTable( HB_GSUB_SubTable* st,
470 HB_Stream stream,
471 HB_UShort lookup_type );
472
473 HB_INTERNAL void
474 _HB_GSUB_Free_SubTable( HB_GSUB_SubTable* st,
475 HB_UShort lookup_type );
476
477 #ifdef HB_USE_PACKED_STRUCTS
478 #pragma pack(pop)
479 #endif
480
481 HB_END_HEADER
482
483 #endif /* HARFBUZZ_GSUB_PRIVATE_H */
OLDNEW
« no previous file with comments | « third_party/harfbuzz/src/harfbuzz-gsub.c ('k') | third_party/harfbuzz/src/harfbuzz-hangul.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698