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

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

Issue 384503008: Delete third_party/harfbuzz (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: remove public header Created 6 years, 5 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
« no previous file with comments | « third_party/harfbuzz/src/harfbuzz-gpos.c ('k') | third_party/harfbuzz/src/harfbuzz-gsub.h » ('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_GPOS_PRIVATE_H
27 #define HARFBUZZ_GPOS_PRIVATE_H
28
29 #include "harfbuzz-impl.h"
30 #include "harfbuzz-stream-private.h"
31 #include "harfbuzz-gpos.h"
32
33 HB_BEGIN_HEADER
34
35
36 /* shared tables */
37
38 struct HB_ValueRecord_
39 {
40 HB_Short XPlacement; /* horizontal adjustment for
41 placement */
42 HB_Short YPlacement; /* vertical adjustment for
43 placement */
44 HB_Short XAdvance; /* horizontal adjustment for
45 advance */
46 HB_Short YAdvance; /* vertical adjustment for
47 advance */
48 HB_Device XPlacementDevice; /* device table for horizontal
49 placement */
50 HB_Device YPlacementDevice; /* device table for vertical
51 placement */
52 HB_Device XAdvanceDevice; /* device table for horizontal
53 advance */
54 HB_Device YAdvanceDevice; /* device table for vertical
55 advance */
56 HB_UShort XIdPlacement; /* horizontal placement metric ID */
57 HB_UShort YIdPlacement; /* vertical placement metric ID */
58 HB_UShort XIdAdvance; /* horizontal advance metric ID */
59 HB_UShort YIdAdvance; /* vertical advance metric ID */
60 };
61
62 typedef struct HB_ValueRecord_ HB_ValueRecord;
63
64
65 /* Mask values to scan the value format of the ValueRecord structure.
66 We always expand compressed ValueRecords of the font. */
67
68 #define HB_GPOS_FORMAT_HAVE_X_PLACEMENT 0x0001
69 #define HB_GPOS_FORMAT_HAVE_Y_PLACEMENT 0x0002
70 #define HB_GPOS_FORMAT_HAVE_X_ADVANCE 0x0004
71 #define HB_GPOS_FORMAT_HAVE_Y_ADVANCE 0x0008
72 #define HB_GPOS_FORMAT_HAVE_X_PLACEMENT_DEVICE 0x0010
73 #define HB_GPOS_FORMAT_HAVE_Y_PLACEMENT_DEVICE 0x0020
74 #define HB_GPOS_FORMAT_HAVE_X_ADVANCE_DEVICE 0x0040
75 #define HB_GPOS_FORMAT_HAVE_Y_ADVANCE_DEVICE 0x0080
76 #define HB_GPOS_FORMAT_HAVE_X_ID_PLACEMENT 0x0100
77 #define HB_GPOS_FORMAT_HAVE_Y_ID_PLACEMENT 0x0200
78 #define HB_GPOS_FORMAT_HAVE_X_ID_ADVANCE 0x0400
79 #define HB_GPOS_FORMAT_HAVE_Y_ID_ADVANCE 0x0800
80
81
82 struct HB_AnchorFormat1_
83 {
84 HB_Short XCoordinate; /* horizontal value */
85 HB_Short YCoordinate; /* vertical value */
86 };
87
88 typedef struct HB_AnchorFormat1_ HB_AnchorFormat1;
89
90
91 struct HB_AnchorFormat2_
92 {
93 HB_Short XCoordinate; /* horizontal value */
94 HB_Short YCoordinate; /* vertical value */
95 HB_UShort AnchorPoint; /* index to glyph contour point */
96 };
97
98 typedef struct HB_AnchorFormat2_ HB_AnchorFormat2;
99
100
101 struct HB_AnchorFormat3_
102 {
103 HB_Short XCoordinate; /* horizontal value */
104 HB_Short YCoordinate; /* vertical value */
105 HB_Device XDeviceTable; /* device table for X coordinate */
106 HB_Device YDeviceTable; /* device table for Y coordinate */
107 };
108
109 typedef struct HB_AnchorFormat3_ HB_AnchorFormat3;
110
111
112 struct HB_AnchorFormat4_
113 {
114 HB_UShort XIdAnchor; /* horizontal metric ID */
115 HB_UShort YIdAnchor; /* vertical metric ID */
116 };
117
118 typedef struct HB_AnchorFormat4_ HB_AnchorFormat4;
119
120
121 struct HB_Anchor_
122 {
123 HB_UShort PosFormat; /* 1, 2, 3, or 4 -- 0 indicates
124 that there is no Anchor table */
125
126 union
127 {
128 HB_AnchorFormat1 af1;
129 HB_AnchorFormat2 af2;
130 HB_AnchorFormat3 af3;
131 HB_AnchorFormat4 af4;
132 } af;
133 };
134
135 typedef struct HB_Anchor_ HB_Anchor;
136
137
138 struct HB_MarkRecord_
139 {
140 HB_UShort Class; /* mark class */
141 HB_Anchor MarkAnchor; /* anchor table */
142 };
143
144 typedef struct HB_MarkRecord_ HB_MarkRecord;
145
146
147 struct HB_MarkArray_
148 {
149 HB_UShort MarkCount; /* number of MarkRecord tables */
150 HB_MarkRecord* MarkRecord; /* array of MarkRecord tables */
151 };
152
153 typedef struct HB_MarkArray_ HB_MarkArray;
154
155
156 /* LookupType 1 */
157
158 struct HB_SinglePosFormat1_
159 {
160 HB_ValueRecord Value; /* ValueRecord for all covered
161 glyphs */
162 };
163
164 typedef struct HB_SinglePosFormat1_ HB_SinglePosFormat1;
165
166
167 struct HB_SinglePosFormat2_
168 {
169 HB_UShort ValueCount; /* number of ValueRecord tables */
170 HB_ValueRecord* Value; /* array of ValueRecord tables */
171 };
172
173 typedef struct HB_SinglePosFormat2_ HB_SinglePosFormat2;
174
175
176 struct HB_SinglePos_
177 {
178 HB_UShort PosFormat; /* 1 or 2 */
179 HB_Coverage Coverage; /* Coverage table */
180
181 HB_UShort ValueFormat; /* format of ValueRecord table */
182
183 union
184 {
185 HB_SinglePosFormat1 spf1;
186 HB_SinglePosFormat2 spf2;
187 } spf;
188 };
189
190 typedef struct HB_SinglePos_ HB_SinglePos;
191
192
193 /* LookupType 2 */
194
195 struct HB_PairValueRecord_
196 {
197 HB_UShort SecondGlyph; /* glyph ID for second glyph */
198 HB_ValueRecord Value1; /* pos. data for first glyph */
199 HB_ValueRecord Value2; /* pos. data for second glyph */
200 };
201
202 typedef struct HB_PairValueRecord_ HB_PairValueRecord;
203
204
205 struct HB_PairSet_
206 {
207 HB_UShort PairValueCount;
208 /* number of PairValueRecord tables */
209 HB_PairValueRecord* PairValueRecord;
210 /* array of PairValueRecord tables */
211 };
212
213 typedef struct HB_PairSet_ HB_PairSet;
214
215
216 struct HB_PairPosFormat1_
217 {
218 HB_UShort PairSetCount; /* number of PairSet tables */
219 HB_PairSet* PairSet; /* array of PairSet tables */
220 };
221
222 typedef struct HB_PairPosFormat1_ HB_PairPosFormat1;
223
224
225 struct HB_Class2Record_
226 {
227 HB_ValueRecord Value1; /* pos. data for first glyph */
228 HB_ValueRecord Value2; /* pos. data for second glyph */
229 };
230
231 typedef struct HB_Class2Record_ HB_Class2Record;
232
233
234 struct HB_Class1Record_
235 {
236 HB_Class2Record* Class2Record; /* array of Class2Record tables */
237 };
238
239 typedef struct HB_Class1Record_ HB_Class1Record;
240
241
242 struct HB_PairPosFormat2_
243 {
244 HB_ClassDefinition ClassDef1; /* class def. for first glyph */
245 HB_ClassDefinition ClassDef2; /* class def. for second glyph */
246 HB_UShort Class1Count; /* number of classes in ClassDef1
247 table */
248 HB_UShort Class2Count; /* number of classes in ClassDef2
249 table */
250 HB_Class1Record* Class1Record; /* array of Class1Record tables */
251 };
252
253 typedef struct HB_PairPosFormat2_ HB_PairPosFormat2;
254
255
256 struct HB_PairPos_
257 {
258 HB_UShort PosFormat; /* 1 or 2 */
259 HB_Coverage Coverage; /* Coverage table */
260 HB_UShort ValueFormat1; /* format of ValueRecord table
261 for first glyph */
262 HB_UShort ValueFormat2; /* format of ValueRecord table
263 for second glyph */
264
265 union
266 {
267 HB_PairPosFormat1 ppf1;
268 HB_PairPosFormat2 ppf2;
269 } ppf;
270 };
271
272 typedef struct HB_PairPos_ HB_PairPos;
273
274
275 /* LookupType 3 */
276
277 struct HB_EntryExitRecord_
278 {
279 HB_Anchor EntryAnchor; /* entry Anchor table */
280 HB_Anchor ExitAnchor; /* exit Anchor table */
281 };
282
283
284 typedef struct HB_EntryExitRecord_ HB_EntryExitRecord;
285
286 struct HB_CursivePos_
287 {
288 HB_UShort PosFormat; /* always 1 */
289 HB_Coverage Coverage; /* Coverage table */
290 HB_UShort EntryExitCount;
291 /* number of EntryExitRecord tables */
292 HB_EntryExitRecord* EntryExitRecord;
293 /* array of EntryExitRecord tables */
294 };
295
296 typedef struct HB_CursivePos_ HB_CursivePos;
297
298
299 /* LookupType 4 */
300
301 struct HB_BaseRecord_
302 {
303 HB_Anchor* BaseAnchor; /* array of base glyph anchor
304 tables */
305 };
306
307 typedef struct HB_BaseRecord_ HB_BaseRecord;
308
309
310 struct HB_BaseArray_
311 {
312 HB_UShort BaseCount; /* number of BaseRecord tables */
313 HB_BaseRecord* BaseRecord; /* array of BaseRecord tables */
314 };
315
316 typedef struct HB_BaseArray_ HB_BaseArray;
317
318
319 struct HB_MarkBasePos_
320 {
321 HB_UShort PosFormat; /* always 1 */
322 HB_Coverage MarkCoverage; /* mark glyph coverage table */
323 HB_Coverage BaseCoverage; /* base glyph coverage table */
324 HB_UShort ClassCount; /* number of mark classes */
325 HB_MarkArray MarkArray; /* mark array table */
326 HB_BaseArray BaseArray; /* base array table */
327 };
328
329 typedef struct HB_MarkBasePos_ HB_MarkBasePos;
330
331
332 /* LookupType 5 */
333
334 struct HB_ComponentRecord_
335 {
336 HB_Anchor* LigatureAnchor; /* array of ligature glyph anchor
337 tables */
338 };
339
340 typedef struct HB_ComponentRecord_ HB_ComponentRecord;
341
342
343 struct HB_LigatureAttach_
344 {
345 HB_UShort ComponentCount;
346 /* number of ComponentRecord tables */
347 HB_ComponentRecord* ComponentRecord;
348 /* array of ComponentRecord tables */
349 };
350
351 typedef struct HB_LigatureAttach_ HB_LigatureAttach;
352
353
354 struct HB_LigatureArray_
355 {
356 HB_UShort LigatureCount; /* number of LigatureAttach tables */
357 HB_LigatureAttach* LigatureAttach;
358 /* array of LigatureAttach tables */
359 };
360
361 typedef struct HB_LigatureArray_ HB_LigatureArray;
362
363
364 struct HB_MarkLigPos_
365 {
366 HB_UShort PosFormat; /* always 1 */
367 HB_Coverage MarkCoverage; /* mark glyph coverage table */
368 HB_Coverage LigatureCoverage;
369 /* ligature glyph coverage table */
370 HB_UShort ClassCount; /* number of mark classes */
371 HB_MarkArray MarkArray; /* mark array table */
372 HB_LigatureArray LigatureArray; /* ligature array table */
373 };
374
375 typedef struct HB_MarkLigPos_ HB_MarkLigPos;
376
377
378 /* LookupType 6 */
379
380 struct HB_Mark2Record_
381 {
382 HB_Anchor* Mark2Anchor; /* array of mark glyph anchor
383 tables */
384 };
385
386 typedef struct HB_Mark2Record_ HB_Mark2Record;
387
388
389 struct HB_Mark2Array_
390 {
391 HB_UShort Mark2Count; /* number of Mark2Record tables */
392 HB_Mark2Record* Mark2Record; /* array of Mark2Record tables */
393 };
394
395 typedef struct HB_Mark2Array_ HB_Mark2Array;
396
397
398 struct HB_MarkMarkPos_
399 {
400 HB_UShort PosFormat; /* always 1 */
401 HB_Coverage Mark1Coverage; /* first mark glyph coverage table */
402 HB_Coverage Mark2Coverage; /* second mark glyph coverave table */
403 HB_UShort ClassCount; /* number of combining mark classes */
404 HB_MarkArray Mark1Array; /* MarkArray table for first mark */
405 HB_Mark2Array Mark2Array; /* MarkArray table for second mark */
406 };
407
408 typedef struct HB_MarkMarkPos_ HB_MarkMarkPos;
409
410
411 /* needed by both lookup type 7 and 8 */
412
413 struct HB_PosLookupRecord_
414 {
415 HB_UShort SequenceIndex; /* index into current
416 glyph sequence */
417 HB_UShort LookupListIndex; /* Lookup to apply to that pos. */
418 };
419
420 typedef struct HB_PosLookupRecord_ HB_PosLookupRecord;
421
422
423 /* LookupType 7 */
424
425 struct HB_PosRule_
426 {
427 HB_UShort GlyphCount; /* total number of input glyphs */
428 HB_UShort PosCount; /* number of PosLookupRecord tables */
429 HB_UShort* Input; /* array of input glyph IDs */
430 HB_PosLookupRecord* PosLookupRecord;
431 /* array of PosLookupRecord tables */
432 };
433
434 typedef struct HB_PosRule_ HB_PosRule;
435
436
437 struct HB_PosRuleSet_
438 {
439 HB_UShort PosRuleCount; /* number of PosRule tables */
440 HB_PosRule* PosRule; /* array of PosRule tables */
441 };
442
443 typedef struct HB_PosRuleSet_ HB_PosRuleSet;
444
445
446 struct HB_ContextPosFormat1_
447 {
448 HB_Coverage Coverage; /* Coverage table */
449 HB_UShort PosRuleSetCount; /* number of PosRuleSet tables */
450 HB_PosRuleSet* PosRuleSet; /* array of PosRuleSet tables */
451 };
452
453 typedef struct HB_ContextPosFormat1_ HB_ContextPosFormat1;
454
455
456 struct HB_PosClassRule_
457 {
458 HB_UShort GlyphCount; /* total number of context classes */
459 HB_UShort PosCount; /* number of PosLookupRecord tables */
460 HB_UShort* Class; /* array of classes */
461 HB_PosLookupRecord* PosLookupRecord;
462 /* array of PosLookupRecord tables */
463 };
464
465 typedef struct HB_PosClassRule_ HB_PosClassRule;
466
467
468 struct HB_PosClassSet_
469 {
470 HB_UShort PosClassRuleCount;
471 /* number of PosClassRule tables */
472 HB_PosClassRule* PosClassRule; /* array of PosClassRule tables */
473 };
474
475 typedef struct HB_PosClassSet_ HB_PosClassSet;
476
477
478 /* The `MaxContextLength' field is not defined in the TTO specification
479 but simplifies the implementation of this format. It holds the
480 maximal context length used in the context rules. */
481
482 struct HB_ContextPosFormat2_
483 {
484 HB_UShort MaxContextLength;
485 /* maximal context length */
486 HB_Coverage Coverage; /* Coverage table */
487 HB_ClassDefinition ClassDef; /* ClassDef table */
488 HB_UShort PosClassSetCount;
489 /* number of PosClassSet tables */
490 HB_PosClassSet* PosClassSet; /* array of PosClassSet tables */
491 };
492
493 typedef struct HB_ContextPosFormat2_ HB_ContextPosFormat2;
494
495
496 struct HB_ContextPosFormat3_
497 {
498 HB_UShort GlyphCount; /* number of input glyphs */
499 HB_UShort PosCount; /* number of PosLookupRecord tables */
500 HB_Coverage* Coverage; /* array of Coverage tables */
501 HB_PosLookupRecord* PosLookupRecord;
502 /* array of PosLookupRecord tables */
503 };
504
505 typedef struct HB_ContextPosFormat3_ HB_ContextPosFormat3;
506
507
508 struct HB_ContextPos_
509 {
510 HB_UShort PosFormat; /* 1, 2, or 3 */
511
512 union
513 {
514 HB_ContextPosFormat1 cpf1;
515 HB_ContextPosFormat2 cpf2;
516 HB_ContextPosFormat3 cpf3;
517 } cpf;
518 };
519
520 typedef struct HB_ContextPos_ HB_ContextPos;
521
522
523 /* LookupType 8 */
524
525 struct HB_ChainPosRule_
526 {
527 HB_UShort BacktrackGlyphCount;
528 /* total number of backtrack glyphs */
529 HB_UShort* Backtrack; /* array of backtrack glyph IDs */
530 HB_UShort InputGlyphCount;
531 /* total number of input glyphs */
532 HB_UShort* Input; /* array of input glyph IDs */
533 HB_UShort LookaheadGlyphCount;
534 /* total number of lookahead glyphs */
535 HB_UShort* Lookahead; /* array of lookahead glyph IDs */
536 HB_UShort PosCount; /* number of PosLookupRecords */
537 HB_PosLookupRecord* PosLookupRecord;
538 /* array of PosLookupRecords */
539 };
540
541 typedef struct HB_ChainPosRule_ HB_ChainPosRule;
542
543
544 struct HB_ChainPosRuleSet_
545 {
546 HB_UShort ChainPosRuleCount;
547 /* number of ChainPosRule tables */
548 HB_ChainPosRule* ChainPosRule; /* array of ChainPosRule tables */
549 };
550
551 typedef struct HB_ChainPosRuleSet_ HB_ChainPosRuleSet;
552
553
554 struct HB_ChainContextPosFormat1_
555 {
556 HB_Coverage Coverage; /* Coverage table */
557 HB_UShort ChainPosRuleSetCount;
558 /* number of ChainPosRuleSet tables */
559 HB_ChainPosRuleSet* ChainPosRuleSet;
560 /* array of ChainPosRuleSet tables */
561 };
562
563 typedef struct HB_ChainContextPosFormat1_ HB_ChainContextPosFormat1;
564
565
566 struct HB_ChainPosClassRule_
567 {
568 HB_UShort BacktrackGlyphCount;
569 /* total number of backtrack
570 classes */
571 HB_UShort* Backtrack; /* array of backtrack classes */
572 HB_UShort InputGlyphCount;
573 /* total number of context classes */
574 HB_UShort* Input; /* array of context classes */
575 HB_UShort LookaheadGlyphCount;
576 /* total number of lookahead
577 classes */
578 HB_UShort* Lookahead; /* array of lookahead classes */
579 HB_UShort PosCount; /* number of PosLookupRecords */
580 HB_PosLookupRecord* PosLookupRecord;
581 /* array of substitution lookups */
582 };
583
584 typedef struct HB_ChainPosClassRule_ HB_ChainPosClassRule;
585
586
587 struct HB_ChainPosClassSet_
588 {
589 HB_UShort ChainPosClassRuleCount;
590 /* number of ChainPosClassRule
591 tables */
592 HB_ChainPosClassRule* ChainPosClassRule;
593 /* array of ChainPosClassRule
594 tables */
595 };
596
597 typedef struct HB_ChainPosClassSet_ HB_ChainPosClassSet;
598
599
600 /* The `MaxXXXLength' fields are not defined in the TTO specification
601 but simplifies the implementation of this format. It holds the
602 maximal context length used in the specific context rules. */
603
604 struct HB_ChainContextPosFormat2_
605 {
606 HB_Coverage Coverage; /* Coverage table */
607
608 HB_UShort MaxBacktrackLength;
609 /* maximal backtrack length */
610 HB_ClassDefinition BacktrackClassDef;
611 /* BacktrackClassDef table */
612 HB_UShort MaxInputLength;
613 /* maximal input length */
614 HB_ClassDefinition InputClassDef;
615 /* InputClassDef table */
616 HB_UShort MaxLookaheadLength;
617 /* maximal lookahead length */
618 HB_ClassDefinition LookaheadClassDef;
619 /* LookaheadClassDef table */
620
621 HB_UShort ChainPosClassSetCount;
622 /* number of ChainPosClassSet
623 tables */
624 HB_ChainPosClassSet* ChainPosClassSet;
625 /* array of ChainPosClassSet
626 tables */
627 };
628
629 typedef struct HB_ChainContextPosFormat2_ HB_ChainContextPosFormat2;
630
631
632 struct HB_ChainContextPosFormat3_
633 {
634 HB_UShort BacktrackGlyphCount;
635 /* number of backtrack glyphs */
636 HB_Coverage* BacktrackCoverage;
637 /* array of backtrack Coverage
638 tables */
639 HB_UShort InputGlyphCount;
640 /* number of input glyphs */
641 HB_Coverage* InputCoverage;
642 /* array of input coverage
643 tables */
644 HB_UShort LookaheadGlyphCount;
645 /* number of lookahead glyphs */
646 HB_Coverage* LookaheadCoverage;
647 /* array of lookahead coverage
648 tables */
649 HB_UShort PosCount; /* number of PosLookupRecords */
650 HB_PosLookupRecord* PosLookupRecord;
651 /* array of substitution lookups */
652 };
653
654 typedef struct HB_ChainContextPosFormat3_ HB_ChainContextPosFormat3;
655
656
657 struct HB_ChainContextPos_
658 {
659 HB_UShort PosFormat; /* 1, 2, or 3 */
660
661 union
662 {
663 HB_ChainContextPosFormat1 ccpf1;
664 HB_ChainContextPosFormat2 ccpf2;
665 HB_ChainContextPosFormat3 ccpf3;
666 } ccpf;
667 };
668
669 typedef struct HB_ChainContextPos_ HB_ChainContextPos;
670
671
672 #if 0
673 /* LookupType 10 */
674 struct HB_ExtensionPos_
675 {
676 HB_UShort PosFormat; /* always 1 */
677 HB_UShort LookuptType; /* lookup-type of referenced subtable */
678 HB_GPOS_SubTable *subtable; /* referenced subtable */
679 };
680
681 typedef struct HB_ExtensionPos_ HB_ExtensionPos;
682 #endif
683
684
685 union HB_GPOS_SubTable_
686 {
687 HB_SinglePos single;
688 HB_PairPos pair;
689 HB_CursivePos cursive;
690 HB_MarkBasePos markbase;
691 HB_MarkLigPos marklig;
692 HB_MarkMarkPos markmark;
693 HB_ContextPos context;
694 HB_ChainContextPos chain;
695 };
696
697 typedef union HB_GPOS_SubTable_ HB_GPOS_SubTable;
698
699
700
701 HB_INTERNAL HB_Error
702 _HB_GPOS_Load_SubTable( HB_GPOS_SubTable* st,
703 HB_Stream stream,
704 HB_UShort lookup_type );
705
706 HB_INTERNAL void
707 _HB_GPOS_Free_SubTable( HB_GPOS_SubTable* st,
708 HB_UShort lookup_type );
709
710 HB_END_HEADER
711
712 #endif /* HARFBUZZ_GPOS_PRIVATE_H */
OLDNEW
« no previous file with comments | « third_party/harfbuzz/src/harfbuzz-gpos.c ('k') | third_party/harfbuzz/src/harfbuzz-gsub.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698