First public contribution.
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