2 ****************************************************************************** *
4 * Copyright (C) 1999-2001, International Business Machines
5 * Corporation and others. All Rights Reserved.
7 ****************************************************************************** *
10 * created on: ??/??/2001
11 * created by: Eric R. Mader
36 le_uint16 searchRange
;
37 le_uint16 entrySelector
;
39 DirectoryEntry tableDirectory
[ANY_NUMBER
];
43 struct CMAPEncodingSubtableHeader
46 le_uint16 platformSpecificID
;
47 le_uint32 encodingOffset
;
53 le_uint16 numberSubtables
;
54 CMAPEncodingSubtableHeader encodingSubtableHeaders
[ANY_NUMBER
];
57 struct CMAPEncodingSubtable
64 struct CMAPFormat0Encoding
: CMAPEncodingSubtable
66 le_uint8 glyphIndexArray
[256];
69 struct CMAPFormat2Subheader
74 le_uint16 idRangeOffset
;
77 struct CMAPFormat2Encoding
: CMAPEncodingSubtable
79 le_uint16 subHeadKeys
[256];
80 CMAPFormat2Subheader subheaders
[ANY_NUMBER
];
83 struct CMAPFormat4Encoding
: CMAPEncodingSubtable
86 le_uint16 searchRange
;
87 le_uint16 entrySelector
;
89 le_uint16 endCodes
[ANY_NUMBER
];
90 // le_uint16 reservedPad;
91 // le_uint16 startCodes[ANY_NUMBER];
92 // le_uint16 idDelta[ANY_NUMBER];
93 // le_uint16 idRangeOffset[ANY_NUMBER];
94 // le_uint16 glyphIndexArray[ANY_NUMBER];
97 struct CMAPFormat6Encoding
: CMAPEncodingSubtable
100 le_uint16 entryCount
;
101 le_uint16 glyphIndexArray
[ANY_NUMBER
];
104 struct CMAPEncodingSubtable32
113 le_uint32 startCharCode
;
114 le_uint32 endCharCode
;
115 le_uint32 startGlyphCode
;
118 struct CMAPFormat8Encoding
: CMAPEncodingSubtable32
120 le_uint32 is32
[65536/32];
122 CMAPGroup groups
[ANY_NUMBER
];
125 struct CMAPFormat10Encoding
: CMAPEncodingSubtable32
127 le_uint32 startCharCode
;
128 le_uint32 numCharCodes
;
129 le_uint16 glyphs
[ANY_NUMBER
];
132 struct CMAPFormat12Encoding
: CMAPEncodingSubtable32
135 CMAPGroup groups
[ANY_NUMBER
];
138 typedef le_int32 fixed
;
150 le_uint32 checksumAdjustment
;
151 le_uint32 magicNumber
;
153 le_uint16 unitsPerEm
;
160 le_int16 lowestRecPPEM
;
161 le_int16 fontDirectionHint
;
162 le_int16 indexToLocFormat
;
163 le_int16 glyphDataFormat
;
171 le_uint16 maxContours
;
172 le_uint16 maxComponentPoints
;
173 le_uint16 maxComponentContours
;
175 le_uint16 maxTwilightPoints
;
176 le_uint16 maxStorage
;
177 le_uint16 maxFunctionDefs
;
178 le_uint16 maxInstructionDefs
;
179 le_uint16 maxStackElements
;
180 le_uint16 maxSizeOfInstructions
;
181 le_uint16 maxComponentElements
;
182 le_uint16 maxComponentDepth
;
191 le_uint16 advanceWidthMax
;
192 le_int16 minLeftSideBearing
;
193 le_int16 minRightSideBearing
;
195 le_int16 caretSlopeRise
;
196 le_int16 caretSlopeRun
;
197 le_int16 caretOffset
;
202 le_int16 metricDataFormat
;
203 le_uint16 numOfLongHorMetrics
;
208 le_uint16 advanceWidth
;
209 le_int16 leftSideBearing
;
214 LongHorMetric hMetrics
[ANY_NUMBER
]; // ANY_NUMBER = numOfLongHorMetrics from hhea table
215 // le_int16 leftSideBearing[ANY_NUMBER]; // ANY_NUMBER = numGlyphs - numOfLongHorMetrics