blob: 47d9921c41dcce3aed0b098dcd98edc844d0372e [file] [log] [blame]
bungeman@google.comf8d1aee2012-02-02 19:15:21 +00001/*
2 * Copyright 2012 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#ifndef SkOTTable_OS_2_V1_DEFINED
9#define SkOTTable_OS_2_V1_DEFINED
10
11#include "SkEndian.h"
12#include "SkIBMFamilyClass.h"
13#include "SkOTTableTypes.h"
14#include "SkPanose.h"
15#include "SkTypedEnum.h"
16
17#pragma pack(push, 1)
18
19struct SkOTTableOS2_V1 {
20 SK_OT_USHORT version;
21 static const SK_OT_USHORT version1 = SkTEndian_SwapBE16(1);
22 SK_OT_SHORT xAvgCharWidth;
23 struct WeightClass {
24 SK_TYPED_ENUM(Value, SK_OT_USHORT,
25 ((Thin, SkTEndian_SwapBE16(100)))
26 ((ExtraLight, SkTEndian_SwapBE16(200)))
27 ((Light, SkTEndian_SwapBE16(300)))
28 ((Normal, SkTEndian_SwapBE16(400)))
29 ((Medium, SkTEndian_SwapBE16(500)))
30 ((SemiBold, SkTEndian_SwapBE16(600)))
31 ((Bold, SkTEndian_SwapBE16(700)))
32 ((ExtraBold, SkTEndian_SwapBE16(800)))
33 ((Black, SkTEndian_SwapBE16(900)))
34 SK_SEQ_END,
35 SK_SEQ_END)
36 SK_OT_USHORT value;
37 } usWeightClass;
38 struct WidthClass {
39 SK_TYPED_ENUM(Value, SK_OT_USHORT,
40 ((UltraCondensed, SkTEndian_SwapBE16(1)))
41 ((ExtraCondensed, SkTEndian_SwapBE16(2)))
42 ((Condensed, SkTEndian_SwapBE16(3)))
43 ((SemiCondensed, SkTEndian_SwapBE16(4)))
44 ((Medium, SkTEndian_SwapBE16(5)))
45 ((SemiExpanded, SkTEndian_SwapBE16(6)))
46 ((Expanded, SkTEndian_SwapBE16(7)))
47 ((ExtraExpanded, SkTEndian_SwapBE16(8)))
48 ((UltraExpanded, SkTEndian_SwapBE16(9)))
49 SK_SEQ_END,
50 (value)SK_SEQ_END)
51 } usWidthClass;
52 union Type {
53 struct Field {
54 //8-15
55 SK_OT_BYTE_BITFIELD(
56 Reserved08,
57 Reserved09,
58 Reserved10,
59 Reserved11,
60 Reserved12,
61 Reserved13,
62 Reserved14,
63 Reserved15)
64 //0-7
65 SK_OT_BYTE_BITFIELD(
66 Reserved00,
67 Restricted,
68 PreviewPrint,
69 Editable,
70 Reserved04,
71 Reserved05,
72 Reserved06,
73 Reserved07)
74 } field;
75 struct Raw {
76 static const SK_OT_USHORT Installable = SkTEndian_SwapBE16(0);
77 static const SK_OT_USHORT RestrictedMask = SkTEndian_SwapBE16(1 << 1);
78 static const SK_OT_USHORT PreviewPrintMask = SkTEndian_SwapBE16(1 << 2);
79 static const SK_OT_USHORT EditableMask = SkTEndian_SwapBE16(1 << 3);
80 SK_OT_USHORT value;
81 } raw;
82 } fsType;
83 SK_OT_SHORT ySubscriptXSize;
84 SK_OT_SHORT ySubscriptYSize;
85 SK_OT_SHORT ySubscriptXOffset;
86 SK_OT_SHORT ySubscriptYOffset;
87 SK_OT_SHORT ySuperscriptXSize;
88 SK_OT_SHORT ySuperscriptYSize;
89 SK_OT_SHORT ySuperscriptXOffset;
90 SK_OT_SHORT ySuperscriptYOffset;
91 SK_OT_SHORT yStrikeoutSize;
92 SK_OT_SHORT yStrikeoutPosition;
93 SkIBMFamilyClass sFamilyClass;
94 SkPanose panose;
95 union UnicodeRange {
96 struct Field {
97 //l0 24-31
98 SK_OT_BYTE_BITFIELD(
99 Thai,
100 Lao,
101 BasicGeorgian,
102 GeorgianExtended,
103 HangulJamo,
104 LatinExtendedAdditional,
105 GreekExtended,
106 GeneralPunctuation)
107 //l0 16-23
108 SK_OT_BYTE_BITFIELD(
109 Bengali,
110 Gurmukhi,
111 Gujarati,
112 Oriya,
113 Tamil,
114 Telugu,
115 Kannada,
116 Malayalam)
117 //l0 8-15
118 SK_OT_BYTE_BITFIELD(
119 GreekSymbolsAndCoptic,
120 Cyrillic,
121 Armenian,
122 BasicHebrew,
123 HebrewExtendedAB,
124 BasicArabic,
125 ArabicExtended,
126 Devanagari)
127 //l0 0-7
128 SK_OT_BYTE_BITFIELD(
129 BasicLatin,
130 Latin1Supplement,
131 LatinExtendedA,
132 LatinExtendedB,
133 IPAExtensions,
134 SpacingModifierLetters,
135 CombiningDiacriticalMarks,
136 BasicGreek)
137
138 //l1 24-31
139 SK_OT_BYTE_BITFIELD(
140 Hangul,
141 Reserved057,
142 Reserved058,
143 CJKUnifiedIdeographs,
144 PrivateUseArea,
145 CJKCompatibilityIdeographs,
146 AlphabeticPresentationForms,
147 ArabicPresentationFormsA)
148 //l1 16-23
149 SK_OT_BYTE_BITFIELD(
150 CJKSymbolsAndPunctuation,
151 Hiragana,
152 Katakana,
153 Bopomofo,
154 HangulCompatibilityJamo,
155 CJKMiscellaneous,
156 EnclosedCJKLettersAndMonths,
157 CJKCompatibility)
158 //l1 8-15
159 SK_OT_BYTE_BITFIELD(
160 ControlPictures,
161 OpticalCharacterRecognition,
162 EnclosedAlphanumerics,
163 BoxDrawing,
164 BlockElements,
165 GeometricShapes,
166 MiscellaneousSymbols,
167 Dingbats)
168 //l1 0-7
169 SK_OT_BYTE_BITFIELD(
170 SuperscriptsAndSubscripts,
171 CurrencySymbols,
172 CombiningDiacriticalMarksForSymbols,
173 LetterlikeSymbols,
174 NumberForms,
175 Arrows,
176 MathematicalOperators,
177 MiscellaneousTechnical)
178
179 //l2 24-31
180 SK_OT_BYTE_BITFIELD(
181 Reserved088,
182 Reserved089,
183 Reserved090,
184 Reserved091,
185 Reserved092,
186 Reserved093,
187 Reserved094,
188 Reserved095)
189 //l2 16-23
190 SK_OT_BYTE_BITFIELD(
191 Reserved080,
192 Reserved081,
193 Reserved082,
194 Reserved083,
195 Reserved084,
196 Reserved085,
197 Reserved086,
198 Reserved087)
199 //l2 8-15
200 SK_OT_BYTE_BITFIELD(
201 Reserved072,
202 Reserved073,
203 Reserved074,
204 Reserved075,
205 Reserved076,
206 Reserved077,
207 Reserved078,
208 Reserved079)
209 //l2 0-7
210 SK_OT_BYTE_BITFIELD(
211 CombiningHalfMarks,
212 CJKCompatibilityForms,
213 SmallFormVariants,
214 ArabicPresentationFormsB,
215 HalfwidthAndFullwidthForms,
216 Specials,
217 Reserved70,
218 Reserved71)
219
220 //l3 24-31
221 SK_OT_BYTE_BITFIELD(
222 Reserved120,
223 Reserved121,
224 Reserved122,
225 Reserved123,
226 Reserved124,
227 Reserved125,
228 Reserved126,
229 Reserved127)
230 //l3 16-23
231 SK_OT_BYTE_BITFIELD(
232 Reserved112,
233 Reserved113,
234 Reserved114,
235 Reserved115,
236 Reserved116,
237 Reserved117,
238 Reserved118,
239 Reserved119)
240 //l3 8-15
241 SK_OT_BYTE_BITFIELD(
242 Reserved104,
243 Reserved105,
244 Reserved106,
245 Reserved107,
246 Reserved108,
247 Reserved109,
248 Reserved110,
249 Reserved111)
250 //l3 0-7
251 SK_OT_BYTE_BITFIELD(
252 Reserved096,
253 Reserved097,
254 Reserved098,
255 Reserved099,
256 Reserved100,
257 Reserved101,
258 Reserved102,
259 Reserved103)
260 } field;
261 struct Raw {
262 struct l0 {
263 static const SK_OT_ULONG BasicLatinMask = SkTEndian_SwapBE32(1 << 0);
264 static const SK_OT_ULONG Latin1SupplementMask = SkTEndian_SwapBE32(1 << 1);
265 static const SK_OT_ULONG LatinExtendedAMask = SkTEndian_SwapBE32(1 << 2);
266 static const SK_OT_ULONG LatinExtendedBMask = SkTEndian_SwapBE32(1 << 3);
267 static const SK_OT_ULONG IPAExtensionsMask = SkTEndian_SwapBE32(1 << 4);
268 static const SK_OT_ULONG SpacingModifierLettersMask = SkTEndian_SwapBE32(1 << 5);
269 static const SK_OT_ULONG CombiningDiacriticalMarksMask = SkTEndian_SwapBE32(1 << 6);
270 static const SK_OT_ULONG BasicGreekMask = SkTEndian_SwapBE32(1 << 7);
271 static const SK_OT_ULONG GreekSymbolsAndCCopticMask = SkTEndian_SwapBE32(1 << 8);
272 static const SK_OT_ULONG CyrillicMask = SkTEndian_SwapBE32(1 << 9);
273 static const SK_OT_ULONG ArmenianMask = SkTEndian_SwapBE32(1 << 10);
274 static const SK_OT_ULONG BasicHebrewMask = SkTEndian_SwapBE32(1 << 11);
275 static const SK_OT_ULONG HebrewExtendedABMask = SkTEndian_SwapBE32(1 << 12);
276 static const SK_OT_ULONG BasicArabicMask = SkTEndian_SwapBE32(1 << 13);
277 static const SK_OT_ULONG ArabicExtendedMask = SkTEndian_SwapBE32(1 << 14);
278 static const SK_OT_ULONG DevanagariMask = SkTEndian_SwapBE32(1 << 15);
279 static const SK_OT_ULONG BengaliMask = SkTEndian_SwapBE32(1 << 16);
280 static const SK_OT_ULONG GurmukhiMask = SkTEndian_SwapBE32(1 << 17);
281 static const SK_OT_ULONG GujaratiMask = SkTEndian_SwapBE32(1 << 18);
282 static const SK_OT_ULONG OriyaMask = SkTEndian_SwapBE32(1 << 19);
283 static const SK_OT_ULONG TamilMask = SkTEndian_SwapBE32(1 << 20);
284 static const SK_OT_ULONG TeluguMask = SkTEndian_SwapBE32(1 << 21);
285 static const SK_OT_ULONG KannadaMask = SkTEndian_SwapBE32(1 << 22);
286 static const SK_OT_ULONG MalayalamMask = SkTEndian_SwapBE32(1 << 23);
287 static const SK_OT_ULONG ThaiMask = SkTEndian_SwapBE32(1 << 24);
288 static const SK_OT_ULONG LaoMask = SkTEndian_SwapBE32(1 << 25);
289 static const SK_OT_ULONG BasicGeorgianMask = SkTEndian_SwapBE32(1 << 26);
290 static const SK_OT_ULONG GeorgianExtendedMask = SkTEndian_SwapBE32(1 << 27);
291 static const SK_OT_ULONG HangulJamoMask = SkTEndian_SwapBE32(1 << 28);
292 static const SK_OT_ULONG LatinExtendedAdditionalMask = SkTEndian_SwapBE32(1 << 29);
293 static const SK_OT_ULONG GreekExtendedMask = SkTEndian_SwapBE32(1 << 30);
294 static const SK_OT_ULONG GeneralPunctuationMask = SkTEndian_SwapBE32(1 << 31);
295 };
296 struct l1 {
297 static const SK_OT_ULONG SuperscriptsAndSubscriptsMask = SkTEndian_SwapBE32(1 << (32 - 32));
298 static const SK_OT_ULONG CurrencySymbolsMask = SkTEndian_SwapBE32(1 << (33 - 32));
299 static const SK_OT_ULONG CombiningDiacriticalMarksForSymbolsMask = SkTEndian_SwapBE32(1 << (34 - 32));
300 static const SK_OT_ULONG LetterlikeSymbolsMask = SkTEndian_SwapBE32(1 << (35 - 32));
301 static const SK_OT_ULONG NumberFormsMask = SkTEndian_SwapBE32(1 << (36 - 32));
302 static const SK_OT_ULONG ArrowsMask = SkTEndian_SwapBE32(1 << (37 - 32));
303 static const SK_OT_ULONG MathematicalOperatorsMask = SkTEndian_SwapBE32(1 << (38 - 32));
304 static const SK_OT_ULONG MiscellaneousTechnicalMask = SkTEndian_SwapBE32(1 << (39 - 32));
305 static const SK_OT_ULONG ControlPicturesMask = SkTEndian_SwapBE32(1 << (40 - 32));
306 static const SK_OT_ULONG OpticalCharacterRecognitionMask = SkTEndian_SwapBE32(1 << (41 - 32));
307 static const SK_OT_ULONG EnclosedAlphanumericsMask = SkTEndian_SwapBE32(1 << (42 - 32));
308 static const SK_OT_ULONG BoxDrawingMask = SkTEndian_SwapBE32(1 << (43 - 32));
309 static const SK_OT_ULONG BlockElementsMask = SkTEndian_SwapBE32(1 << (44 - 32));
310 static const SK_OT_ULONG GeometricShapesMask = SkTEndian_SwapBE32(1 << (45 - 32));
311 static const SK_OT_ULONG MiscellaneousSymbolsMask = SkTEndian_SwapBE32(1 << (46 - 32));
312 static const SK_OT_ULONG DingbatsMask = SkTEndian_SwapBE32(1 << (47 - 32));
313 static const SK_OT_ULONG CJKSymbolsAndPunctuationMask = SkTEndian_SwapBE32(1 << (48 - 32));
314 static const SK_OT_ULONG HiraganaMask = SkTEndian_SwapBE32(1 << (49 - 32));
315 static const SK_OT_ULONG KatakanaMask = SkTEndian_SwapBE32(1 << (50 - 32));
316 static const SK_OT_ULONG BopomofoMask = SkTEndian_SwapBE32(1 << (51 - 32));
317 static const SK_OT_ULONG HangulCompatibilityJamoMask = SkTEndian_SwapBE32(1 << (52 - 32));
318 static const SK_OT_ULONG CJKMiscellaneousMask = SkTEndian_SwapBE32(1 << (53 - 32));
319 static const SK_OT_ULONG EnclosedCJKLettersAndMonthsMask = SkTEndian_SwapBE32(1 << (54 - 32));
320 static const SK_OT_ULONG CJKCompatibilityMask = SkTEndian_SwapBE32(1 << (55 - 32));
321 static const SK_OT_ULONG HangulMask = SkTEndian_SwapBE32(1 << (56 - 32));
322 //Reserved
323 //Reserved
324 static const SK_OT_ULONG CJKUnifiedIdeographsMask = SkTEndian_SwapBE32(1 << (59 - 32));
325 static const SK_OT_ULONG PrivateUseAreaMask = SkTEndian_SwapBE32(1 << (60 - 32));
326 static const SK_OT_ULONG CJKCompatibilityIdeographsMask = SkTEndian_SwapBE32(1 << (61 - 32));
327 static const SK_OT_ULONG AlphabeticPresentationFormsMask = SkTEndian_SwapBE32(1 << (62 - 32));
328 static const SK_OT_ULONG ArabicPresentationFormsAMask = SkTEndian_SwapBE32(1 << (63 - 32));
329 };
330 struct l2 {
331 static const SK_OT_ULONG CombiningHalfMarksMask = SkTEndian_SwapBE32(1 << (64 - 64));
332 static const SK_OT_ULONG CJKCompatibilityFormsMask = SkTEndian_SwapBE32(1 << (65 - 64));
333 static const SK_OT_ULONG SmallFormVariantsMask = SkTEndian_SwapBE32(1 << (66 - 64));
334 static const SK_OT_ULONG ArabicPresentationFormsBMask = SkTEndian_SwapBE32(1 << (67 - 64));
335 static const SK_OT_ULONG HalfwidthAndFullwidthFormsMask = SkTEndian_SwapBE32(1 << (68 - 64));
336 static const SK_OT_ULONG SpecialsMask = SkTEndian_SwapBE32(1 << (69 - 64));
337 };
338 SK_OT_ULONG value[4];
339 } raw;
340 } ulUnicodeRange;
341 SK_OT_CHAR achVendID[4];
342 union Selection {
343 struct Field {
344 //8-15
345 SK_OT_BYTE_BITFIELD(
346 Reserved08,
347 Reserved09,
348 Reserved10,
349 Reserved11,
350 Reserved12,
351 Reserved13,
352 Reserved14,
353 Reserved15)
354 //0-7
355 SK_OT_BYTE_BITFIELD(
356 Italic,
357 Underscore,
358 Negative,
359 Outlined,
360 Strikeout,
361 Bold,
362 Regular,
363 Reserved07)
364 } field;
365 struct Raw {
366 static const SK_OT_USHORT ItalicMask = SkTEndian_SwapBE16(1 << 0);
367 static const SK_OT_USHORT UnderscoreMask = SkTEndian_SwapBE16(1 << 1);
368 static const SK_OT_USHORT NegativeMask = SkTEndian_SwapBE16(1 << 2);
369 static const SK_OT_USHORT OutlinedMask = SkTEndian_SwapBE16(1 << 3);
370 static const SK_OT_USHORT StrikeoutMask = SkTEndian_SwapBE16(1 << 4);
371 static const SK_OT_USHORT BoldMask = SkTEndian_SwapBE16(1 << 5);
372 static const SK_OT_USHORT RegularMask = SkTEndian_SwapBE16(1 << 6);
373 SK_OT_USHORT value;
374 } raw;
375 } fsSelection;
376 SK_OT_USHORT usFirstCharIndex;
377 SK_OT_USHORT usLastCharIndex;
378 //version0
379 SK_OT_SHORT sTypoAscender;
380 SK_OT_SHORT sTypoDescender;
381 SK_OT_SHORT sTypoLineGap;
382 SK_OT_USHORT usWinAscent;
383 SK_OT_USHORT usWinDescent;
384 //version1
385 union CodePageRange {
386 struct Field {
387 //l0 24-31
388 SK_OT_BYTE_BITFIELD(
389 Reserved24,
390 Reserved25,
391 Reserved26,
392 Reserved27,
393 Reserved28,
394 MacintoshCharacterSet,
395 OEMCharacterSet,
396 SymbolCharacterSet)
397 //l0 16-23
398 SK_OT_BYTE_BITFIELD(
399 Thai_874,
400 JISJapan_932,
401 ChineseSimplified_936,
402 KoreanWansung_949,
403 ChineseTraditional_950,
404 KoreanJohab_1361,
405 Reserved22,
406 Reserved23)
407 //l0 8-15
408 SK_OT_BYTE_BITFIELD(
409 Reserved08,
410 Reserved09,
411 Reserved10,
412 Reserved11,
413 Reserved12,
414 Reserved13,
415 Reserved14,
416 Reserved15)
417 //l0 0-7
418 SK_OT_BYTE_BITFIELD(
419 Latin1_1252,
420 Latin2EasternEurope_1250,
421 Cyrillic_1251,
422 Greek_1253,
423 Turkish_1254,
424 Hebrew_1255,
425 Arabic_1256,
426 WindowsBaltic_1257)
427
428 //l1 24-31
429 SK_OT_BYTE_BITFIELD(
430 IBMTurkish_857,
431 IBMCyrillic_855,
432 Latin2_852,
433 MSDOSBaltic_775,
434 Greek_737,
435 Arabic_708,
436 WELatin1_850,
437 US_437)
438 //l1 16-23
439 SK_OT_BYTE_BITFIELD(
440 IBMGreek_869,
441 MSDOSRussian_866,
442 MSDOSNordic_865,
443 Arabic_864,
444 MSDOSCanadianFrench_863,
445 Hebrew_862,
446 MSDOSIcelandic_861,
447 MSDOSPortuguese_860)
448 //l1 8-15
449 SK_OT_BYTE_BITFIELD(
450 Reserved40,
451 Reserved41,
452 Reserved42,
453 Reserved43,
454 Reserved44,
455 Reserved45,
456 Reserved46,
457 Reserved47)
458 //l1 0-7
459 SK_OT_BYTE_BITFIELD(
460 Reserved32,
461 Reserved33,
462 Reserved34,
463 Reserved35,
464 Reserved36,
465 Reserved37,
466 Reserved38,
467 Reserved39)
468 } field;
469 struct Raw {
470 struct l0 {
471 static const SK_OT_ULONG Latin1_1252Mask = SkTEndian_SwapBE32(1 << 0);
472 static const SK_OT_ULONG Latin2EasternEurope_1250Mask = SkTEndian_SwapBE32(1 << 1);
473 static const SK_OT_ULONG Cyrillic_1251Mask = SkTEndian_SwapBE32(1 << 2);
474 static const SK_OT_ULONG Greek_1253Mask = SkTEndian_SwapBE32(1 << 3);
475 static const SK_OT_ULONG Turkish_1254Mask = SkTEndian_SwapBE32(1 << 4);
476 static const SK_OT_ULONG Hebrew_1255Mask = SkTEndian_SwapBE32(1 << 5);
477 static const SK_OT_ULONG Arabic_1256Mask = SkTEndian_SwapBE32(1 << 6);
478 static const SK_OT_ULONG WindowsBaltic_1257Mask = SkTEndian_SwapBE32(1 << 7);
479 static const SK_OT_ULONG Thai_874Mask = SkTEndian_SwapBE32(1 << 16);
480 static const SK_OT_ULONG JISJapan_932Mask = SkTEndian_SwapBE32(1 << 17);
481 static const SK_OT_ULONG ChineseSimplified_936Mask = SkTEndian_SwapBE32(1 << 18);
482 static const SK_OT_ULONG KoreanWansung_949Mask = SkTEndian_SwapBE32(1 << 19);
483 static const SK_OT_ULONG ChineseTraditional_950Mask = SkTEndian_SwapBE32(1 << 20);
484 static const SK_OT_ULONG KoreanJohab_1361Mask = SkTEndian_SwapBE32(1 << 21);
485 static const SK_OT_ULONG MacintoshCharacterSetMask = SkTEndian_SwapBE32(1 << 29);
486 static const SK_OT_ULONG OEMCharacterSetMask = SkTEndian_SwapBE32(1 << 30);
487 static const SK_OT_ULONG SymbolCharacterSetMask = SkTEndian_SwapBE32(1 << 31);
488 };
489 struct l1 {
490 static const SK_OT_ULONG IBMGreek_869Mask = SkTEndian_SwapBE32(1 << (48 - 32));
491 static const SK_OT_ULONG MSDOSRussian_866Mask = SkTEndian_SwapBE32(1 << (49 - 32));
492 static const SK_OT_ULONG MSDOSNordic_865Mask = SkTEndian_SwapBE32(1 << (50 - 32));
493 static const SK_OT_ULONG Arabic_864Mask = SkTEndian_SwapBE32(1 << (51 - 32));
494 static const SK_OT_ULONG MSDOSCanadianFrench_863Mask = SkTEndian_SwapBE32(1 << (52 - 32));
495 static const SK_OT_ULONG Hebrew_862Mask = SkTEndian_SwapBE32(1 << (53 - 32));
496 static const SK_OT_ULONG MSDOSIcelandic_861Mask = SkTEndian_SwapBE32(1 << (54 - 32));
497 static const SK_OT_ULONG MSDOSPortuguese_860Mask = SkTEndian_SwapBE32(1 << (55 - 32));
498 static const SK_OT_ULONG IBMTurkish_857Mask = SkTEndian_SwapBE32(1 << (56 - 32));
499 static const SK_OT_ULONG IBMCyrillic_855Mask = SkTEndian_SwapBE32(1 << (57 - 32));
500 static const SK_OT_ULONG Latin2_852Mask = SkTEndian_SwapBE32(1 << (58 - 32));
501 static const SK_OT_ULONG MSDOSBaltic_775Mask = SkTEndian_SwapBE32(1 << (59 - 32));
502 static const SK_OT_ULONG Greek_737Mask = SkTEndian_SwapBE32(1 << (60 - 32));
503 static const SK_OT_ULONG Arabic_708Mask = SkTEndian_SwapBE32(1 << (61 - 32));
504 static const SK_OT_ULONG WELatin1_850Mask = SkTEndian_SwapBE32(1 << (62 - 32));
505 static const SK_OT_ULONG US_437Mask = SkTEndian_SwapBE32(1 << (63 - 32));
506 };
507 SK_OT_ULONG value[2];
508 } raw;
509 } ulCodePageRange;
510};
511
512#pragma pack(pop)
513
514
515SK_COMPILE_ASSERT(sizeof(SkOTTableOS2_V1) == 86, sizeof_SkOTTableOS2_V1_not_86);
516
517#endif