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