]>
Commit | Line | Data |
---|---|---|
b75a7d8f | 1 | /* |
b75a7d8f | 2 | * |
374ca955 | 3 | * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved |
b75a7d8f A |
4 | * |
5 | */ | |
6 | ||
7 | #ifndef __MORPHTABLES_H | |
8 | #define __MORPHTABLES_H | |
9 | ||
10 | /** | |
11 | * \file | |
12 | * \internal | |
13 | */ | |
14 | ||
15 | #include "LETypes.h" | |
16 | #include "LayoutTables.h" | |
17 | ||
18 | U_NAMESPACE_BEGIN | |
19 | ||
374ca955 A |
20 | class LEGlyphStorage; |
21 | ||
b75a7d8f A |
22 | typedef le_uint32 FeatureFlags; |
23 | ||
24 | typedef le_int16 FeatureType; | |
25 | typedef le_int16 FeatureSetting; | |
26 | ||
27 | struct FeatureTableEntry | |
28 | { | |
29 | FeatureType featureType; | |
30 | FeatureSetting featureSetting; | |
31 | FeatureFlags enableFlags; | |
32 | FeatureFlags disableFlags; | |
33 | }; | |
34 | ||
35 | struct ChainHeader | |
36 | { | |
37 | FeatureFlags defaultFlags; | |
38 | le_uint32 chainLength; | |
39 | le_int16 nFeatureEntries; | |
40 | le_int16 nSubtables; | |
41 | FeatureTableEntry featureTable[ANY_NUMBER]; | |
42 | }; | |
43 | ||
44 | struct MorphTableHeader | |
45 | { | |
46 | le_int32 version; | |
47 | le_uint32 nChains; | |
48 | ChainHeader chains[ANY_NUMBER]; | |
49 | ||
374ca955 | 50 | void process(LEGlyphStorage &glyphStorage) const; |
b75a7d8f A |
51 | }; |
52 | ||
53 | typedef le_int16 SubtableCoverage; | |
54 | ||
55 | enum SubtableCoverageFlags | |
56 | { | |
57 | scfVertical = 0x8000, | |
58 | scfReverse = 0x4000, | |
59 | scfIgnoreVt = 0x2000, | |
60 | scfReserved = 0x1FF8, | |
61 | scfTypeMask = 0x0007 | |
62 | }; | |
63 | ||
64 | enum MorphSubtableType | |
65 | { | |
66 | mstIndicRearrangement = 0, | |
67 | mstContextualGlyphSubstitution = 1, | |
68 | mstLigatureSubstitution = 2, | |
69 | mstReservedUnused = 3, | |
70 | mstNonContextualGlyphSubstitution = 4, | |
71 | mstContextualGlyphInsertion = 5 | |
72 | }; | |
73 | ||
74 | struct MorphSubtableHeader | |
75 | { | |
76 | le_int16 length; | |
77 | SubtableCoverage coverage; | |
78 | FeatureFlags subtableFeatures; | |
79 | ||
374ca955 | 80 | void process(LEGlyphStorage &glyphStorage) const; |
b75a7d8f A |
81 | }; |
82 | ||
83 | U_NAMESPACE_END | |
84 | #endif | |
85 |