1 /***************************************************************************
3 * Copyright (C) 1998-2002, International Business Machines
4 * Corporation and others. All Rights Reserved.
6 ************************************************************************/
30 le_uint16 searchRange
;
31 le_uint16 entrySelector
;
33 DirectoryEntry tableDirectory
[ANY_NUMBER
];
37 struct CMAPEncodingSubtableHeader
40 le_uint16 platformSpecificID
;
41 le_uint32 encodingOffset
;
47 le_uint16 numberSubtables
;
48 CMAPEncodingSubtableHeader encodingSubtableHeaders
[ANY_NUMBER
];
51 struct CMAPEncodingSubtable
58 struct CMAPFormat0Encoding
: CMAPEncodingSubtable
60 le_uint8 glyphIndexArray
[256];
63 struct CMAPFormat2Subheader
68 le_uint16 idRangeOffset
;
71 struct CMAPFormat2Encoding
: CMAPEncodingSubtable
73 le_uint16 subHeadKeys
[256];
74 CMAPFormat2Subheader subheaders
[ANY_NUMBER
];
77 struct CMAPFormat4Encoding
: CMAPEncodingSubtable
80 le_uint16 searchRange
;
81 le_uint16 entrySelector
;
83 le_uint16 endCodes
[ANY_NUMBER
];
84 // le_uint16 reservedPad;
85 // le_uint16 startCodes[ANY_NUMBER];
86 // le_uint16 idDelta[ANY_NUMBER];
87 // le_uint16 idRangeOffset[ANY_NUMBER];
88 // le_uint16 glyphIndexArray[ANY_NUMBER];
91 struct CMAPFormat6Encoding
: CMAPEncodingSubtable
95 le_uint16 glyphIndexArray
[ANY_NUMBER
];
98 struct CMAPEncodingSubtable32
107 le_uint32 startCharCode
;
108 le_uint32 endCharCode
;
109 le_uint32 startGlyphCode
;
112 struct CMAPFormat8Encoding
: CMAPEncodingSubtable32
114 le_uint32 is32
[65536/32];
116 CMAPGroup groups
[ANY_NUMBER
];
119 struct CMAPFormat10Encoding
: CMAPEncodingSubtable32
121 le_uint32 startCharCode
;
122 le_uint32 numCharCodes
;
123 le_uint16 glyphs
[ANY_NUMBER
];
126 struct CMAPFormat12Encoding
: CMAPEncodingSubtable32
129 CMAPGroup groups
[ANY_NUMBER
];
132 typedef le_int32 fixed
;
144 le_uint32 checksumAdjustment
;
145 le_uint32 magicNumber
;
147 le_uint16 unitsPerEm
;
154 le_int16 lowestRecPPEM
;
155 le_int16 fontDirectionHint
;
156 le_int16 indexToLocFormat
;
157 le_int16 glyphDataFormat
;
165 le_uint16 maxContours
;
166 le_uint16 maxComponentPoints
;
167 le_uint16 maxComponentContours
;
169 le_uint16 maxTwilightPoints
;
170 le_uint16 maxStorage
;
171 le_uint16 maxFunctionDefs
;
172 le_uint16 maxInstructionDefs
;
173 le_uint16 maxStackElements
;
174 le_uint16 maxSizeOfInstructions
;
175 le_uint16 maxComponentElements
;
176 le_uint16 maxComponentDepth
;
185 le_uint16 advanceWidthMax
;
186 le_int16 minLeftSideBearing
;
187 le_int16 minRightSideBearing
;
189 le_int16 caretSlopeRise
;
190 le_int16 caretSlopeRun
;
191 le_int16 caretOffset
;
196 le_int16 metricDataFormat
;
197 le_uint16 numOfLongHorMetrics
;
202 le_uint16 advanceWidth
;
203 le_int16 leftSideBearing
;
208 LongHorMetric hMetrics
[ANY_NUMBER
]; // ANY_NUMBER = numOfLongHorMetrics from hhea table
209 // le_int16 leftSideBearing[ANY_NUMBER]; // ANY_NUMBER = numGlyphs - numOfLongHorMetrics