From 562b2e67a29f24db4c258aa2fa59cd7b4ee15174 Mon Sep 17 00:00:00 2001 From: "bungeman@google.com" Date: Wed, 12 Mar 2014 21:41:06 +0000 Subject: Fix (1 << 31) to (1u << 31) in SkOTTable_OS_2. When ints are 32 bits, (1 << 31) is undefined. R=reed@google.com Committed: https://code.google.com/p/skia/source/detail?r=13757 Review URL: https://codereview.chromium.org/189093020 git-svn-id: http://skia.googlecode.com/svn/trunk@13779 2bbb7eff-a529-9590-31e7-b0007b416f81 --- src/sfnt/SkOTTableTypes.h | 13 ++ src/sfnt/SkOTTable_OS_2_V0.h | 22 +-- src/sfnt/SkOTTable_OS_2_V1.h | 224 ++++++++++++++-------------- src/sfnt/SkOTTable_OS_2_V2.h | 252 +++++++++++++++---------------- src/sfnt/SkOTTable_OS_2_V3.h | 268 ++++++++++++++++----------------- src/sfnt/SkOTTable_OS_2_V4.h | 346 +++++++++++++++++++++---------------------- src/sfnt/SkOTTable_OS_2_VA.h | 20 +-- 7 files changed, 579 insertions(+), 566 deletions(-) (limited to 'src/sfnt') diff --git a/src/sfnt/SkOTTableTypes.h b/src/sfnt/SkOTTableTypes.h index 9adec9b81e..c978cc0179 100644 --- a/src/sfnt/SkOTTableTypes.h +++ b/src/sfnt/SkOTTableTypes.h @@ -8,6 +8,7 @@ #ifndef SkOTTableTypes_DEFINED #define SkOTTableTypes_DEFINED +#include "SkTemplates.h" #include "SkTypes.h" #include "SkEndian.h" @@ -45,4 +46,16 @@ public: ); }; +/** SkOTSetUSHORTBit::value is an SK_OT_USHORT with the Nth BE bit set. */ +template struct SkOTSetUSHORTBit { + static const uint16_t bit = SkTSetBit::value; + static const SK_OT_USHORT value = SkTEndian_SwapBE16(bit); +}; + +/** SkOTSetUSHORTBit::value is an SK_OT_ULONG with the Nth BE bit set. */ +template struct SkOTSetULONGBit { + static const uint32_t bit = SkTSetBit::value; + static const SK_OT_ULONG value = SkTEndian_SwapBE32(bit); +}; + #endif diff --git a/src/sfnt/SkOTTable_OS_2_V0.h b/src/sfnt/SkOTTable_OS_2_V0.h index 14d322f7ce..b65bcf7f63 100644 --- a/src/sfnt/SkOTTable_OS_2_V0.h +++ b/src/sfnt/SkOTTable_OS_2_V0.h @@ -76,10 +76,10 @@ struct SkOTTableOS2_V0 { Reserved07) } field; struct Raw { - static const SK_OT_USHORT Installable = SkTEndian_SwapBE16(0); - static const SK_OT_USHORT RestrictedMask = SkTEndian_SwapBE16(1 << 1); - static const SK_OT_USHORT PreviewPrintMask = SkTEndian_SwapBE16(1 << 2); - static const SK_OT_USHORT EditableMask = SkTEndian_SwapBE16(1 << 3); + static const SK_OT_USHORT Installable = 0; + static const SK_OT_USHORT RestrictedMask = SkOTSetUSHORTBit<1>::value; + static const SK_OT_USHORT PreviewPrintMask = SkOTSetUSHORTBit<2>::value; + static const SK_OT_USHORT EditableMask = SkOTSetUSHORTBit<3>::value; SK_OT_USHORT value; } raw; } fsType; @@ -121,13 +121,13 @@ struct SkOTTableOS2_V0 { Reserved07) } field; struct Raw { - static const SK_OT_USHORT ItalicMask = SkTEndian_SwapBE16(1 << 0); - static const SK_OT_USHORT UnderscoreMask = SkTEndian_SwapBE16(1 << 1); - static const SK_OT_USHORT NegativeMask = SkTEndian_SwapBE16(1 << 2); - static const SK_OT_USHORT OutlinedMask = SkTEndian_SwapBE16(1 << 3); - static const SK_OT_USHORT StrikeoutMask = SkTEndian_SwapBE16(1 << 4); - static const SK_OT_USHORT BoldMask = SkTEndian_SwapBE16(1 << 5); - static const SK_OT_USHORT RegularMask = SkTEndian_SwapBE16(1 << 6); + static const SK_OT_USHORT ItalicMask = SkOTSetUSHORTBit<0>::value; + static const SK_OT_USHORT UnderscoreMask = SkOTSetUSHORTBit<1>::value; + static const SK_OT_USHORT NegativeMask = SkOTSetUSHORTBit<2>::value; + static const SK_OT_USHORT OutlinedMask = SkOTSetUSHORTBit<3>::value; + static const SK_OT_USHORT StrikeoutMask = SkOTSetUSHORTBit<4>::value; + static const SK_OT_USHORT BoldMask = SkOTSetUSHORTBit<5>::value; + static const SK_OT_USHORT RegularMask = SkOTSetUSHORTBit<6>::value; SK_OT_USHORT value; } raw; } fsSelection; diff --git a/src/sfnt/SkOTTable_OS_2_V1.h b/src/sfnt/SkOTTable_OS_2_V1.h index 52a60c0a4d..e53c0e67a5 100644 --- a/src/sfnt/SkOTTable_OS_2_V1.h +++ b/src/sfnt/SkOTTable_OS_2_V1.h @@ -74,10 +74,10 @@ struct SkOTTableOS2_V1 { Reserved07) } field; struct Raw { - static const SK_OT_USHORT Installable = SkTEndian_SwapBE16(0); - static const SK_OT_USHORT RestrictedMask = SkTEndian_SwapBE16(1 << 1); - static const SK_OT_USHORT PreviewPrintMask = SkTEndian_SwapBE16(1 << 2); - static const SK_OT_USHORT EditableMask = SkTEndian_SwapBE16(1 << 3); + static const SK_OT_USHORT Installable = 0; + static const SK_OT_USHORT RestrictedMask = SkOTSetUSHORTBit<1>::value; + static const SK_OT_USHORT PreviewPrintMask = SkOTSetUSHORTBit<2>::value; + static const SK_OT_USHORT EditableMask = SkOTSetUSHORTBit<3>::value; SK_OT_USHORT value; } raw; } fsType; @@ -261,80 +261,80 @@ struct SkOTTableOS2_V1 { } field; struct Raw { struct l0 { - static const SK_OT_ULONG BasicLatinMask = SkTEndian_SwapBE32(1 << 0); - static const SK_OT_ULONG Latin1SupplementMask = SkTEndian_SwapBE32(1 << 1); - static const SK_OT_ULONG LatinExtendedAMask = SkTEndian_SwapBE32(1 << 2); - static const SK_OT_ULONG LatinExtendedBMask = SkTEndian_SwapBE32(1 << 3); - static const SK_OT_ULONG IPAExtensionsMask = SkTEndian_SwapBE32(1 << 4); - static const SK_OT_ULONG SpacingModifierLettersMask = SkTEndian_SwapBE32(1 << 5); - static const SK_OT_ULONG CombiningDiacriticalMarksMask = SkTEndian_SwapBE32(1 << 6); - static const SK_OT_ULONG BasicGreekMask = SkTEndian_SwapBE32(1 << 7); - static const SK_OT_ULONG GreekSymbolsAndCCopticMask = SkTEndian_SwapBE32(1 << 8); - static const SK_OT_ULONG CyrillicMask = SkTEndian_SwapBE32(1 << 9); - static const SK_OT_ULONG ArmenianMask = SkTEndian_SwapBE32(1 << 10); - static const SK_OT_ULONG BasicHebrewMask = SkTEndian_SwapBE32(1 << 11); - static const SK_OT_ULONG HebrewExtendedABMask = SkTEndian_SwapBE32(1 << 12); - static const SK_OT_ULONG BasicArabicMask = SkTEndian_SwapBE32(1 << 13); - static const SK_OT_ULONG ArabicExtendedMask = SkTEndian_SwapBE32(1 << 14); - static const SK_OT_ULONG DevanagariMask = SkTEndian_SwapBE32(1 << 15); - static const SK_OT_ULONG BengaliMask = SkTEndian_SwapBE32(1 << 16); - static const SK_OT_ULONG GurmukhiMask = SkTEndian_SwapBE32(1 << 17); - static const SK_OT_ULONG GujaratiMask = SkTEndian_SwapBE32(1 << 18); - static const SK_OT_ULONG OriyaMask = SkTEndian_SwapBE32(1 << 19); - static const SK_OT_ULONG TamilMask = SkTEndian_SwapBE32(1 << 20); - static const SK_OT_ULONG TeluguMask = SkTEndian_SwapBE32(1 << 21); - static const SK_OT_ULONG KannadaMask = SkTEndian_SwapBE32(1 << 22); - static const SK_OT_ULONG MalayalamMask = SkTEndian_SwapBE32(1 << 23); - static const SK_OT_ULONG ThaiMask = SkTEndian_SwapBE32(1 << 24); - static const SK_OT_ULONG LaoMask = SkTEndian_SwapBE32(1 << 25); - static const SK_OT_ULONG BasicGeorgianMask = SkTEndian_SwapBE32(1 << 26); - static const SK_OT_ULONG GeorgianExtendedMask = SkTEndian_SwapBE32(1 << 27); - static const SK_OT_ULONG HangulJamoMask = SkTEndian_SwapBE32(1 << 28); - static const SK_OT_ULONG LatinExtendedAdditionalMask = SkTEndian_SwapBE32(1 << 29); - static const SK_OT_ULONG GreekExtendedMask = SkTEndian_SwapBE32(1 << 30); - static const SK_OT_ULONG GeneralPunctuationMask = SkTEndian_SwapBE32(1 << 31); + static const SK_OT_ULONG BasicLatinMask = SkOTSetULONGBit<0>::value; + static const SK_OT_ULONG Latin1SupplementMask = SkOTSetULONGBit<1>::value; + static const SK_OT_ULONG LatinExtendedAMask = SkOTSetULONGBit<2>::value; + static const SK_OT_ULONG LatinExtendedBMask = SkOTSetULONGBit<3>::value; + static const SK_OT_ULONG IPAExtensionsMask = SkOTSetULONGBit<4>::value; + static const SK_OT_ULONG SpacingModifierLettersMask = SkOTSetULONGBit<5>::value; + static const SK_OT_ULONG CombiningDiacriticalMarksMask = SkOTSetULONGBit<6>::value; + static const SK_OT_ULONG BasicGreekMask = SkOTSetULONGBit<7>::value; + static const SK_OT_ULONG GreekSymbolsAndCCopticMask = SkOTSetULONGBit<8>::value; + static const SK_OT_ULONG CyrillicMask = SkOTSetULONGBit<9>::value; + static const SK_OT_ULONG ArmenianMask = SkOTSetULONGBit<10>::value; + static const SK_OT_ULONG BasicHebrewMask = SkOTSetULONGBit<11>::value; + static const SK_OT_ULONG HebrewExtendedABMask = SkOTSetULONGBit<12>::value; + static const SK_OT_ULONG BasicArabicMask = SkOTSetULONGBit<13>::value; + static const SK_OT_ULONG ArabicExtendedMask = SkOTSetULONGBit<14>::value; + static const SK_OT_ULONG DevanagariMask = SkOTSetULONGBit<15>::value; + static const SK_OT_ULONG BengaliMask = SkOTSetULONGBit<16>::value; + static const SK_OT_ULONG GurmukhiMask = SkOTSetULONGBit<17>::value; + static const SK_OT_ULONG GujaratiMask = SkOTSetULONGBit<18>::value; + static const SK_OT_ULONG OriyaMask = SkOTSetULONGBit<19>::value; + static const SK_OT_ULONG TamilMask = SkOTSetULONGBit<20>::value; + static const SK_OT_ULONG TeluguMask = SkOTSetULONGBit<21>::value; + static const SK_OT_ULONG KannadaMask = SkOTSetULONGBit<22>::value; + static const SK_OT_ULONG MalayalamMask = SkOTSetULONGBit<23>::value; + static const SK_OT_ULONG ThaiMask = SkOTSetULONGBit<24>::value; + static const SK_OT_ULONG LaoMask = SkOTSetULONGBit<25>::value; + static const SK_OT_ULONG BasicGeorgianMask = SkOTSetULONGBit<26>::value; + static const SK_OT_ULONG GeorgianExtendedMask = SkOTSetULONGBit<27>::value; + static const SK_OT_ULONG HangulJamoMask = SkOTSetULONGBit<28>::value; + static const SK_OT_ULONG LatinExtendedAdditionalMask = SkOTSetULONGBit<29>::value; + static const SK_OT_ULONG GreekExtendedMask = SkOTSetULONGBit<30>::value; + static const SK_OT_ULONG GeneralPunctuationMask = SkOTSetULONGBit<31>::value; }; struct l1 { - static const SK_OT_ULONG SuperscriptsAndSubscriptsMask = SkTEndian_SwapBE32(1 << (32 - 32)); - static const SK_OT_ULONG CurrencySymbolsMask = SkTEndian_SwapBE32(1 << (33 - 32)); - static const SK_OT_ULONG CombiningDiacriticalMarksForSymbolsMask = SkTEndian_SwapBE32(1 << (34 - 32)); - static const SK_OT_ULONG LetterlikeSymbolsMask = SkTEndian_SwapBE32(1 << (35 - 32)); - static const SK_OT_ULONG NumberFormsMask = SkTEndian_SwapBE32(1 << (36 - 32)); - static const SK_OT_ULONG ArrowsMask = SkTEndian_SwapBE32(1 << (37 - 32)); - static const SK_OT_ULONG MathematicalOperatorsMask = SkTEndian_SwapBE32(1 << (38 - 32)); - static const SK_OT_ULONG MiscellaneousTechnicalMask = SkTEndian_SwapBE32(1 << (39 - 32)); - static const SK_OT_ULONG ControlPicturesMask = SkTEndian_SwapBE32(1 << (40 - 32)); - static const SK_OT_ULONG OpticalCharacterRecognitionMask = SkTEndian_SwapBE32(1 << (41 - 32)); - static const SK_OT_ULONG EnclosedAlphanumericsMask = SkTEndian_SwapBE32(1 << (42 - 32)); - static const SK_OT_ULONG BoxDrawingMask = SkTEndian_SwapBE32(1 << (43 - 32)); - static const SK_OT_ULONG BlockElementsMask = SkTEndian_SwapBE32(1 << (44 - 32)); - static const SK_OT_ULONG GeometricShapesMask = SkTEndian_SwapBE32(1 << (45 - 32)); - static const SK_OT_ULONG MiscellaneousSymbolsMask = SkTEndian_SwapBE32(1 << (46 - 32)); - static const SK_OT_ULONG DingbatsMask = SkTEndian_SwapBE32(1 << (47 - 32)); - static const SK_OT_ULONG CJKSymbolsAndPunctuationMask = SkTEndian_SwapBE32(1 << (48 - 32)); - static const SK_OT_ULONG HiraganaMask = SkTEndian_SwapBE32(1 << (49 - 32)); - static const SK_OT_ULONG KatakanaMask = SkTEndian_SwapBE32(1 << (50 - 32)); - static const SK_OT_ULONG BopomofoMask = SkTEndian_SwapBE32(1 << (51 - 32)); - static const SK_OT_ULONG HangulCompatibilityJamoMask = SkTEndian_SwapBE32(1 << (52 - 32)); - static const SK_OT_ULONG CJKMiscellaneousMask = SkTEndian_SwapBE32(1 << (53 - 32)); - static const SK_OT_ULONG EnclosedCJKLettersAndMonthsMask = SkTEndian_SwapBE32(1 << (54 - 32)); - static const SK_OT_ULONG CJKCompatibilityMask = SkTEndian_SwapBE32(1 << (55 - 32)); - static const SK_OT_ULONG HangulMask = SkTEndian_SwapBE32(1 << (56 - 32)); + static const SK_OT_ULONG SuperscriptsAndSubscriptsMask = SkOTSetULONGBit<32 - 32>::value; + static const SK_OT_ULONG CurrencySymbolsMask = SkOTSetULONGBit<33 - 32>::value; + static const SK_OT_ULONG CombiningDiacriticalMarksForSymbolsMask = SkOTSetULONGBit<34 - 32>::value; + static const SK_OT_ULONG LetterlikeSymbolsMask = SkOTSetULONGBit<35 - 32>::value; + static const SK_OT_ULONG NumberFormsMask = SkOTSetULONGBit<36 - 32>::value; + static const SK_OT_ULONG ArrowsMask = SkOTSetULONGBit<37 - 32>::value; + static const SK_OT_ULONG MathematicalOperatorsMask = SkOTSetULONGBit<38 - 32>::value; + static const SK_OT_ULONG MiscellaneousTechnicalMask = SkOTSetULONGBit<39 - 32>::value; + static const SK_OT_ULONG ControlPicturesMask = SkOTSetULONGBit<40 - 32>::value; + static const SK_OT_ULONG OpticalCharacterRecognitionMask = SkOTSetULONGBit<41 - 32>::value; + static const SK_OT_ULONG EnclosedAlphanumericsMask = SkOTSetULONGBit<42 - 32>::value; + static const SK_OT_ULONG BoxDrawingMask = SkOTSetULONGBit<43 - 32>::value; + static const SK_OT_ULONG BlockElementsMask = SkOTSetULONGBit<44 - 32>::value; + static const SK_OT_ULONG GeometricShapesMask = SkOTSetULONGBit<45 - 32>::value; + static const SK_OT_ULONG MiscellaneousSymbolsMask = SkOTSetULONGBit<46 - 32>::value; + static const SK_OT_ULONG DingbatsMask = SkOTSetULONGBit<47 - 32>::value; + static const SK_OT_ULONG CJKSymbolsAndPunctuationMask = SkOTSetULONGBit<48 - 32>::value; + static const SK_OT_ULONG HiraganaMask = SkOTSetULONGBit<49 - 32>::value; + static const SK_OT_ULONG KatakanaMask = SkOTSetULONGBit<50 - 32>::value; + static const SK_OT_ULONG BopomofoMask = SkOTSetULONGBit<51 - 32>::value; + static const SK_OT_ULONG HangulCompatibilityJamoMask = SkOTSetULONGBit<52 - 32>::value; + static const SK_OT_ULONG CJKMiscellaneousMask = SkOTSetULONGBit<53 - 32>::value; + static const SK_OT_ULONG EnclosedCJKLettersAndMonthsMask = SkOTSetULONGBit<54 - 32>::value; + static const SK_OT_ULONG CJKCompatibilityMask = SkOTSetULONGBit<55 - 32>::value; + static const SK_OT_ULONG HangulMask = SkOTSetULONGBit<56 - 32>::value; //Reserved //Reserved - static const SK_OT_ULONG CJKUnifiedIdeographsMask = SkTEndian_SwapBE32(1 << (59 - 32)); - static const SK_OT_ULONG PrivateUseAreaMask = SkTEndian_SwapBE32(1 << (60 - 32)); - static const SK_OT_ULONG CJKCompatibilityIdeographsMask = SkTEndian_SwapBE32(1 << (61 - 32)); - static const SK_OT_ULONG AlphabeticPresentationFormsMask = SkTEndian_SwapBE32(1 << (62 - 32)); - static const SK_OT_ULONG ArabicPresentationFormsAMask = SkTEndian_SwapBE32(1 << (63 - 32)); + static const SK_OT_ULONG CJKUnifiedIdeographsMask = SkOTSetULONGBit<59 - 32>::value; + static const SK_OT_ULONG PrivateUseAreaMask = SkOTSetULONGBit<60 - 32>::value; + static const SK_OT_ULONG CJKCompatibilityIdeographsMask = SkOTSetULONGBit<61 - 32>::value; + static const SK_OT_ULONG AlphabeticPresentationFormsMask = SkOTSetULONGBit<62 - 32>::value; + static const SK_OT_ULONG ArabicPresentationFormsAMask = SkOTSetULONGBit<63 - 32>::value; }; struct l2 { - static const SK_OT_ULONG CombiningHalfMarksMask = SkTEndian_SwapBE32(1 << (64 - 64)); - static const SK_OT_ULONG CJKCompatibilityFormsMask = SkTEndian_SwapBE32(1 << (65 - 64)); - static const SK_OT_ULONG SmallFormVariantsMask = SkTEndian_SwapBE32(1 << (66 - 64)); - static const SK_OT_ULONG ArabicPresentationFormsBMask = SkTEndian_SwapBE32(1 << (67 - 64)); - static const SK_OT_ULONG HalfwidthAndFullwidthFormsMask = SkTEndian_SwapBE32(1 << (68 - 64)); - static const SK_OT_ULONG SpecialsMask = SkTEndian_SwapBE32(1 << (69 - 64)); + static const SK_OT_ULONG CombiningHalfMarksMask = SkOTSetULONGBit<64 - 64>::value; + static const SK_OT_ULONG CJKCompatibilityFormsMask = SkOTSetULONGBit<65 - 64>::value; + static const SK_OT_ULONG SmallFormVariantsMask = SkOTSetULONGBit<66 - 64>::value; + static const SK_OT_ULONG ArabicPresentationFormsBMask = SkOTSetULONGBit<67 - 64>::value; + static const SK_OT_ULONG HalfwidthAndFullwidthFormsMask = SkOTSetULONGBit<68 - 64>::value; + static const SK_OT_ULONG SpecialsMask = SkOTSetULONGBit<69 - 64>::value; }; SK_OT_ULONG value[4]; } raw; @@ -364,13 +364,13 @@ struct SkOTTableOS2_V1 { Reserved07) } field; struct Raw { - static const SK_OT_USHORT ItalicMask = SkTEndian_SwapBE16(1 << 0); - static const SK_OT_USHORT UnderscoreMask = SkTEndian_SwapBE16(1 << 1); - static const SK_OT_USHORT NegativeMask = SkTEndian_SwapBE16(1 << 2); - static const SK_OT_USHORT OutlinedMask = SkTEndian_SwapBE16(1 << 3); - static const SK_OT_USHORT StrikeoutMask = SkTEndian_SwapBE16(1 << 4); - static const SK_OT_USHORT BoldMask = SkTEndian_SwapBE16(1 << 5); - static const SK_OT_USHORT RegularMask = SkTEndian_SwapBE16(1 << 6); + static const SK_OT_USHORT ItalicMask = SkOTSetUSHORTBit<0>::value; + static const SK_OT_USHORT UnderscoreMask = SkOTSetUSHORTBit<1>::value; + static const SK_OT_USHORT NegativeMask = SkOTSetUSHORTBit<2>::value; + static const SK_OT_USHORT OutlinedMask = SkOTSetUSHORTBit<3>::value; + static const SK_OT_USHORT StrikeoutMask = SkOTSetUSHORTBit<4>::value; + static const SK_OT_USHORT BoldMask = SkOTSetUSHORTBit<5>::value; + static const SK_OT_USHORT RegularMask = SkOTSetUSHORTBit<6>::value; SK_OT_USHORT value; } raw; } fsSelection; @@ -469,41 +469,41 @@ struct SkOTTableOS2_V1 { } field; struct Raw { struct l0 { - static const SK_OT_ULONG Latin1_1252Mask = SkTEndian_SwapBE32(1 << 0); - static const SK_OT_ULONG Latin2EasternEurope_1250Mask = SkTEndian_SwapBE32(1 << 1); - static const SK_OT_ULONG Cyrillic_1251Mask = SkTEndian_SwapBE32(1 << 2); - static const SK_OT_ULONG Greek_1253Mask = SkTEndian_SwapBE32(1 << 3); - static const SK_OT_ULONG Turkish_1254Mask = SkTEndian_SwapBE32(1 << 4); - static const SK_OT_ULONG Hebrew_1255Mask = SkTEndian_SwapBE32(1 << 5); - static const SK_OT_ULONG Arabic_1256Mask = SkTEndian_SwapBE32(1 << 6); - static const SK_OT_ULONG WindowsBaltic_1257Mask = SkTEndian_SwapBE32(1 << 7); - static const SK_OT_ULONG Thai_874Mask = SkTEndian_SwapBE32(1 << 16); - static const SK_OT_ULONG JISJapan_932Mask = SkTEndian_SwapBE32(1 << 17); - static const SK_OT_ULONG ChineseSimplified_936Mask = SkTEndian_SwapBE32(1 << 18); - static const SK_OT_ULONG KoreanWansung_949Mask = SkTEndian_SwapBE32(1 << 19); - static const SK_OT_ULONG ChineseTraditional_950Mask = SkTEndian_SwapBE32(1 << 20); - static const SK_OT_ULONG KoreanJohab_1361Mask = SkTEndian_SwapBE32(1 << 21); - static const SK_OT_ULONG MacintoshCharacterSetMask = SkTEndian_SwapBE32(1 << 29); - static const SK_OT_ULONG OEMCharacterSetMask = SkTEndian_SwapBE32(1 << 30); - static const SK_OT_ULONG SymbolCharacterSetMask = SkTEndian_SwapBE32(1 << 31); + static const SK_OT_ULONG Latin1_1252Mask = SkOTSetULONGBit<0>::value; + static const SK_OT_ULONG Latin2EasternEurope_1250Mask = SkOTSetULONGBit<1>::value; + static const SK_OT_ULONG Cyrillic_1251Mask = SkOTSetULONGBit<2>::value; + static const SK_OT_ULONG Greek_1253Mask = SkOTSetULONGBit<3>::value; + static const SK_OT_ULONG Turkish_1254Mask = SkOTSetULONGBit<4>::value; + static const SK_OT_ULONG Hebrew_1255Mask = SkOTSetULONGBit<5>::value; + static const SK_OT_ULONG Arabic_1256Mask = SkOTSetULONGBit<6>::value; + static const SK_OT_ULONG WindowsBaltic_1257Mask = SkOTSetULONGBit<7>::value; + static const SK_OT_ULONG Thai_874Mask = SkOTSetULONGBit<16>::value; + static const SK_OT_ULONG JISJapan_932Mask = SkOTSetULONGBit<17>::value; + static const SK_OT_ULONG ChineseSimplified_936Mask = SkOTSetULONGBit<18>::value; + static const SK_OT_ULONG KoreanWansung_949Mask = SkOTSetULONGBit<19>::value; + static const SK_OT_ULONG ChineseTraditional_950Mask = SkOTSetULONGBit<20>::value; + static const SK_OT_ULONG KoreanJohab_1361Mask = SkOTSetULONGBit<21>::value; + static const SK_OT_ULONG MacintoshCharacterSetMask = SkOTSetULONGBit<29>::value; + static const SK_OT_ULONG OEMCharacterSetMask = SkOTSetULONGBit<30>::value; + static const SK_OT_ULONG SymbolCharacterSetMask = SkOTSetULONGBit<31>::value; }; struct l1 { - static const SK_OT_ULONG IBMGreek_869Mask = SkTEndian_SwapBE32(1 << (48 - 32)); - static const SK_OT_ULONG MSDOSRussian_866Mask = SkTEndian_SwapBE32(1 << (49 - 32)); - static const SK_OT_ULONG MSDOSNordic_865Mask = SkTEndian_SwapBE32(1 << (50 - 32)); - static const SK_OT_ULONG Arabic_864Mask = SkTEndian_SwapBE32(1 << (51 - 32)); - static const SK_OT_ULONG MSDOSCanadianFrench_863Mask = SkTEndian_SwapBE32(1 << (52 - 32)); - static const SK_OT_ULONG Hebrew_862Mask = SkTEndian_SwapBE32(1 << (53 - 32)); - static const SK_OT_ULONG MSDOSIcelandic_861Mask = SkTEndian_SwapBE32(1 << (54 - 32)); - static const SK_OT_ULONG MSDOSPortuguese_860Mask = SkTEndian_SwapBE32(1 << (55 - 32)); - static const SK_OT_ULONG IBMTurkish_857Mask = SkTEndian_SwapBE32(1 << (56 - 32)); - static const SK_OT_ULONG IBMCyrillic_855Mask = SkTEndian_SwapBE32(1 << (57 - 32)); - static const SK_OT_ULONG Latin2_852Mask = SkTEndian_SwapBE32(1 << (58 - 32)); - static const SK_OT_ULONG MSDOSBaltic_775Mask = SkTEndian_SwapBE32(1 << (59 - 32)); - static const SK_OT_ULONG Greek_737Mask = SkTEndian_SwapBE32(1 << (60 - 32)); - static const SK_OT_ULONG Arabic_708Mask = SkTEndian_SwapBE32(1 << (61 - 32)); - static const SK_OT_ULONG WELatin1_850Mask = SkTEndian_SwapBE32(1 << (62 - 32)); - static const SK_OT_ULONG US_437Mask = SkTEndian_SwapBE32(1 << (63 - 32)); + static const SK_OT_ULONG IBMGreek_869Mask = SkOTSetULONGBit<48 - 32>::value; + static const SK_OT_ULONG MSDOSRussian_866Mask = SkOTSetULONGBit<49 - 32>::value; + static const SK_OT_ULONG MSDOSNordic_865Mask = SkOTSetULONGBit<50 - 32>::value; + static const SK_OT_ULONG Arabic_864Mask = SkOTSetULONGBit<51 - 32>::value; + static const SK_OT_ULONG MSDOSCanadianFrench_863Mask = SkOTSetULONGBit<52 - 32>::value; + static const SK_OT_ULONG Hebrew_862Mask = SkOTSetULONGBit<53 - 32>::value; + static const SK_OT_ULONG MSDOSIcelandic_861Mask = SkOTSetULONGBit<54 - 32>::value; + static const SK_OT_ULONG MSDOSPortuguese_860Mask = SkOTSetULONGBit<55 - 32>::value; + static const SK_OT_ULONG IBMTurkish_857Mask = SkOTSetULONGBit<56 - 32>::value; + static const SK_OT_ULONG IBMCyrillic_855Mask = SkOTSetULONGBit<57 - 32>::value; + static const SK_OT_ULONG Latin2_852Mask = SkOTSetULONGBit<58 - 32>::value; + static const SK_OT_ULONG MSDOSBaltic_775Mask = SkOTSetULONGBit<59 - 32>::value; + static const SK_OT_ULONG Greek_737Mask = SkOTSetULONGBit<60 - 32>::value; + static const SK_OT_ULONG Arabic_708Mask = SkOTSetULONGBit<61 - 32>::value; + static const SK_OT_ULONG WELatin1_850Mask = SkOTSetULONGBit<62 - 32>::value; + static const SK_OT_ULONG US_437Mask = SkOTSetULONGBit<63 - 32>::value; }; SK_OT_ULONG value[2]; } raw; diff --git a/src/sfnt/SkOTTable_OS_2_V2.h b/src/sfnt/SkOTTable_OS_2_V2.h index 4be2e199a6..52f946057a 100644 --- a/src/sfnt/SkOTTable_OS_2_V2.h +++ b/src/sfnt/SkOTTable_OS_2_V2.h @@ -73,12 +73,12 @@ struct SkOTTableOS2_V2 { Reserved07) } field; struct Raw { - static const SK_OT_USHORT Installable = SkTEndian_SwapBE16(0); - static const SK_OT_USHORT RestrictedMask = SkTEndian_SwapBE16(1 << 1); - static const SK_OT_USHORT PreviewPrintMask = SkTEndian_SwapBE16(1 << 2); - static const SK_OT_USHORT EditableMask = SkTEndian_SwapBE16(1 << 3); - static const SK_OT_USHORT NoSubsettingMask = SkTEndian_SwapBE16(1 << 8); - static const SK_OT_USHORT BitmapMask = SkTEndian_SwapBE16(1 << 9); + static const SK_OT_USHORT Installable = 0; + static const SK_OT_USHORT RestrictedMask = SkOTSetUSHORTBit<1>::value; + static const SK_OT_USHORT PreviewPrintMask = SkOTSetUSHORTBit<2>::value; + static const SK_OT_USHORT EditableMask = SkOTSetUSHORTBit<3>::value; + static const SK_OT_USHORT NoSubsettingMask = SkOTSetUSHORTBit<8>::value; + static const SK_OT_USHORT BitmapMask = SkOTSetUSHORTBit<9>::value; SK_OT_USHORT value; } raw; } fsType; @@ -262,94 +262,94 @@ struct SkOTTableOS2_V2 { } field; struct Raw { struct l0 { - static const SK_OT_ULONG BasicLatinMask = SkTEndian_SwapBE32(1 << 0); - static const SK_OT_ULONG Latin1SupplementMask = SkTEndian_SwapBE32(1 << 1); - static const SK_OT_ULONG LatinExtendedAMask = SkTEndian_SwapBE32(1 << 2); - static const SK_OT_ULONG LatinExtendedBMask = SkTEndian_SwapBE32(1 << 3); - static const SK_OT_ULONG IPAExtensionsMask = SkTEndian_SwapBE32(1 << 4); - static const SK_OT_ULONG SpacingModifierLettersMask = SkTEndian_SwapBE32(1 << 5); - static const SK_OT_ULONG CombiningDiacriticalMarksMask = SkTEndian_SwapBE32(1 << 6); - static const SK_OT_ULONG GreekMask = SkTEndian_SwapBE32(1 << 7); + static const SK_OT_ULONG BasicLatinMask = SkOTSetULONGBit<0>::value; + static const SK_OT_ULONG Latin1SupplementMask = SkOTSetULONGBit<1>::value; + static const SK_OT_ULONG LatinExtendedAMask = SkOTSetULONGBit<2>::value; + static const SK_OT_ULONG LatinExtendedBMask = SkOTSetULONGBit<3>::value; + static const SK_OT_ULONG IPAExtensionsMask = SkOTSetULONGBit<4>::value; + static const SK_OT_ULONG SpacingModifierLettersMask = SkOTSetULONGBit<5>::value; + static const SK_OT_ULONG CombiningDiacriticalMarksMask = SkOTSetULONGBit<6>::value; + static const SK_OT_ULONG GreekMask = SkOTSetULONGBit<7>::value; //Reserved - static const SK_OT_ULONG CyrillicMask = SkTEndian_SwapBE32(1 << 9); - static const SK_OT_ULONG ArmenianMask = SkTEndian_SwapBE32(1 << 10); - static const SK_OT_ULONG HebrewMask = SkTEndian_SwapBE32(1 << 11); + static const SK_OT_ULONG CyrillicMask = SkOTSetULONGBit<9>::value; + static const SK_OT_ULONG ArmenianMask = SkOTSetULONGBit<10>::value; + static const SK_OT_ULONG HebrewMask = SkOTSetULONGBit<11>::value; //Reserved - static const SK_OT_ULONG ArabicMask = SkTEndian_SwapBE32(1 << 13); + static const SK_OT_ULONG ArabicMask = SkOTSetULONGBit<13>::value; //Reserved - static const SK_OT_ULONG DevanagariMask = SkTEndian_SwapBE32(1 << 15); - static const SK_OT_ULONG BengaliMask = SkTEndian_SwapBE32(1 << 16); - static const SK_OT_ULONG GurmukhiMask = SkTEndian_SwapBE32(1 << 17); - static const SK_OT_ULONG GujaratiMask = SkTEndian_SwapBE32(1 << 18); - static const SK_OT_ULONG OriyaMask = SkTEndian_SwapBE32(1 << 19); - static const SK_OT_ULONG TamilMask = SkTEndian_SwapBE32(1 << 20); - static const SK_OT_ULONG TeluguMask = SkTEndian_SwapBE32(1 << 21); - static const SK_OT_ULONG KannadaMask = SkTEndian_SwapBE32(1 << 22); - static const SK_OT_ULONG MalayalamMask = SkTEndian_SwapBE32(1 << 23); - static const SK_OT_ULONG ThaiMask = SkTEndian_SwapBE32(1 << 24); - static const SK_OT_ULONG LaoMask = SkTEndian_SwapBE32(1 << 25); - static const SK_OT_ULONG GeorgianMask = SkTEndian_SwapBE32(1 << 26); + static const SK_OT_ULONG DevanagariMask = SkOTSetULONGBit<15>::value; + static const SK_OT_ULONG BengaliMask = SkOTSetULONGBit<16>::value; + static const SK_OT_ULONG GurmukhiMask = SkOTSetULONGBit<17>::value; + static const SK_OT_ULONG GujaratiMask = SkOTSetULONGBit<18>::value; + static const SK_OT_ULONG OriyaMask = SkOTSetULONGBit<19>::value; + static const SK_OT_ULONG TamilMask = SkOTSetULONGBit<20>::value; + static const SK_OT_ULONG TeluguMask = SkOTSetULONGBit<21>::value; + static const SK_OT_ULONG KannadaMask = SkOTSetULONGBit<22>::value; + static const SK_OT_ULONG MalayalamMask = SkOTSetULONGBit<23>::value; + static const SK_OT_ULONG ThaiMask = SkOTSetULONGBit<24>::value; + static const SK_OT_ULONG LaoMask = SkOTSetULONGBit<25>::value; + static const SK_OT_ULONG GeorgianMask = SkOTSetULONGBit<26>::value; //Reserved - static const SK_OT_ULONG HangulJamoMask = SkTEndian_SwapBE32(1 << 28); - static const SK_OT_ULONG LatinExtendedAdditionalMask = SkTEndian_SwapBE32(1 << 29); - static const SK_OT_ULONG GreekExtendedMask = SkTEndian_SwapBE32(1 << 30); - static const SK_OT_ULONG GeneralPunctuationMask = SkTEndian_SwapBE32(1 << 31); + static const SK_OT_ULONG HangulJamoMask = SkOTSetULONGBit<28>::value; + static const SK_OT_ULONG LatinExtendedAdditionalMask = SkOTSetULONGBit<29>::value; + static const SK_OT_ULONG GreekExtendedMask = SkOTSetULONGBit<30>::value; + static const SK_OT_ULONG GeneralPunctuationMask = SkOTSetULONGBit<31>::value; }; struct l1 { - static const SK_OT_ULONG SuperscriptsAndSubscriptsMask = SkTEndian_SwapBE32(1 << (32 - 32)); - static const SK_OT_ULONG CurrencySymbolsMask = SkTEndian_SwapBE32(1 << (33 - 32)); - static const SK_OT_ULONG CombiningDiacriticalMarksForSymbolsMask = SkTEndian_SwapBE32(1 << (34 - 32)); - static const SK_OT_ULONG LetterlikeSymbolsMask = SkTEndian_SwapBE32(1 << (35 - 32)); - static const SK_OT_ULONG NumberFormsMask = SkTEndian_SwapBE32(1 << (36 - 32)); - static const SK_OT_ULONG ArrowsMask = SkTEndian_SwapBE32(1 << (37 - 32)); - static const SK_OT_ULONG MathematicalOperatorsMask = SkTEndian_SwapBE32(1 << (38 - 32)); - static const SK_OT_ULONG MiscellaneousTechnicalMask = SkTEndian_SwapBE32(1 << (39 - 32)); - static const SK_OT_ULONG ControlPicturesMask = SkTEndian_SwapBE32(1 << (40 - 32)); - static const SK_OT_ULONG OpticalCharacterRecognitionMask = SkTEndian_SwapBE32(1 << (41 - 32)); - static const SK_OT_ULONG EnclosedAlphanumericsMask = SkTEndian_SwapBE32(1 << (42 - 32)); - static const SK_OT_ULONG BoxDrawingMask = SkTEndian_SwapBE32(1 << (43 - 32)); - static const SK_OT_ULONG BlockElementsMask = SkTEndian_SwapBE32(1 << (44 - 32)); - static const SK_OT_ULONG GeometricShapesMask = SkTEndian_SwapBE32(1 << (45 - 32)); - static const SK_OT_ULONG MiscellaneousSymbolsMask = SkTEndian_SwapBE32(1 << (46 - 32)); - static const SK_OT_ULONG DingbatsMask = SkTEndian_SwapBE32(1 << (47 - 32)); - static const SK_OT_ULONG CJKSymbolsAndPunctuationMask = SkTEndian_SwapBE32(1 << (48 - 32)); - static const SK_OT_ULONG HiraganaMask = SkTEndian_SwapBE32(1 << (49 - 32)); - static const SK_OT_ULONG KatakanaMask = SkTEndian_SwapBE32(1 << (50 - 32)); - static const SK_OT_ULONG BopomofoMask = SkTEndian_SwapBE32(1 << (51 - 32)); - static const SK_OT_ULONG HangulCompatibilityJamoMask = SkTEndian_SwapBE32(1 << (52 - 32)); - static const SK_OT_ULONG CJKMiscellaneousMask = SkTEndian_SwapBE32(1 << (53 - 32)); - static const SK_OT_ULONG EnclosedCJKLettersAndMonthsMask = SkTEndian_SwapBE32(1 << (54 - 32)); - static const SK_OT_ULONG CJKCompatibilityMask = SkTEndian_SwapBE32(1 << (55 - 32)); - static const SK_OT_ULONG HangulMask = SkTEndian_SwapBE32(1 << (56 - 32)); - static const SK_OT_ULONG SurrogatesMask = SkTEndian_SwapBE32(1 << (57 - 32)); + static const SK_OT_ULONG SuperscriptsAndSubscriptsMask = SkOTSetULONGBit<32 - 32>::value; + static const SK_OT_ULONG CurrencySymbolsMask = SkOTSetULONGBit<33 - 32>::value; + static const SK_OT_ULONG CombiningDiacriticalMarksForSymbolsMask = SkOTSetULONGBit<34 - 32>::value; + static const SK_OT_ULONG LetterlikeSymbolsMask = SkOTSetULONGBit<35 - 32>::value; + static const SK_OT_ULONG NumberFormsMask = SkOTSetULONGBit<36 - 32>::value; + static const SK_OT_ULONG ArrowsMask = SkOTSetULONGBit<37 - 32>::value; + static const SK_OT_ULONG MathematicalOperatorsMask = SkOTSetULONGBit<38 - 32>::value; + static const SK_OT_ULONG MiscellaneousTechnicalMask = SkOTSetULONGBit<39 - 32>::value; + static const SK_OT_ULONG ControlPicturesMask = SkOTSetULONGBit<40 - 32>::value; + static const SK_OT_ULONG OpticalCharacterRecognitionMask = SkOTSetULONGBit<41 - 32>::value; + static const SK_OT_ULONG EnclosedAlphanumericsMask = SkOTSetULONGBit<42 - 32>::value; + static const SK_OT_ULONG BoxDrawingMask = SkOTSetULONGBit<43 - 32>::value; + static const SK_OT_ULONG BlockElementsMask = SkOTSetULONGBit<44 - 32>::value; + static const SK_OT_ULONG GeometricShapesMask = SkOTSetULONGBit<45 - 32>::value; + static const SK_OT_ULONG MiscellaneousSymbolsMask = SkOTSetULONGBit<46 - 32>::value; + static const SK_OT_ULONG DingbatsMask = SkOTSetULONGBit<47 - 32>::value; + static const SK_OT_ULONG CJKSymbolsAndPunctuationMask = SkOTSetULONGBit<48 - 32>::value; + static const SK_OT_ULONG HiraganaMask = SkOTSetULONGBit<49 - 32>::value; + static const SK_OT_ULONG KatakanaMask = SkOTSetULONGBit<50 - 32>::value; + static const SK_OT_ULONG BopomofoMask = SkOTSetULONGBit<51 - 32>::value; + static const SK_OT_ULONG HangulCompatibilityJamoMask = SkOTSetULONGBit<52 - 32>::value; + static const SK_OT_ULONG CJKMiscellaneousMask = SkOTSetULONGBit<53 - 32>::value; + static const SK_OT_ULONG EnclosedCJKLettersAndMonthsMask = SkOTSetULONGBit<54 - 32>::value; + static const SK_OT_ULONG CJKCompatibilityMask = SkOTSetULONGBit<55 - 32>::value; + static const SK_OT_ULONG HangulMask = SkOTSetULONGBit<56 - 32>::value; + static const SK_OT_ULONG SurrogatesMask = SkOTSetULONGBit<57 - 32>::value; //Reserved - static const SK_OT_ULONG CJKUnifiedIdeographsMask = SkTEndian_SwapBE32(1 << (59 - 32)); - static const SK_OT_ULONG PrivateUseAreaMask = SkTEndian_SwapBE32(1 << (60 - 32)); - static const SK_OT_ULONG CJKCompatibilityIdeographsMask = SkTEndian_SwapBE32(1 << (61 - 32)); - static const SK_OT_ULONG AlphabeticPresentationFormsMask = SkTEndian_SwapBE32(1 << (62 - 32)); - static const SK_OT_ULONG ArabicPresentationFormsAMask = SkTEndian_SwapBE32(1 << (63 - 32)); + static const SK_OT_ULONG CJKUnifiedIdeographsMask = SkOTSetULONGBit<59 - 32>::value; + static const SK_OT_ULONG PrivateUseAreaMask = SkOTSetULONGBit<60 - 32>::value; + static const SK_OT_ULONG CJKCompatibilityIdeographsMask = SkOTSetULONGBit<61 - 32>::value; + static const SK_OT_ULONG AlphabeticPresentationFormsMask = SkOTSetULONGBit<62 - 32>::value; + static const SK_OT_ULONG ArabicPresentationFormsAMask = SkOTSetULONGBit<63 - 32>::value; }; struct l2 { - static const SK_OT_ULONG CombiningHalfMarksMask = SkTEndian_SwapBE32(1 << (64 - 64)); - static const SK_OT_ULONG CJKCompatibilityFormsMask = SkTEndian_SwapBE32(1 << (65 - 64)); - static const SK_OT_ULONG SmallFormVariantsMask = SkTEndian_SwapBE32(1 << (66 - 64)); - static const SK_OT_ULONG ArabicPresentationFormsBMask = SkTEndian_SwapBE32(1 << (67 - 64)); - static const SK_OT_ULONG HalfwidthAndFullwidthFormsMask = SkTEndian_SwapBE32(1 << (68 - 64)); - static const SK_OT_ULONG SpecialsMask = SkTEndian_SwapBE32(1 << (69 - 64)); - static const SK_OT_ULONG TibetanMask = SkTEndian_SwapBE32(1 << (70 - 64)); - static const SK_OT_ULONG SyriacMask = SkTEndian_SwapBE32(1 << (71 - 64)); - static const SK_OT_ULONG ThaanaMask = SkTEndian_SwapBE32(1 << (72 - 64)); - static const SK_OT_ULONG SinhalaMask = SkTEndian_SwapBE32(1 << (73 - 64)); - static const SK_OT_ULONG MyanmarMask = SkTEndian_SwapBE32(1 << (74 - 64)); - static const SK_OT_ULONG EthiopicMask = SkTEndian_SwapBE32(1 << (75 - 64)); - static const SK_OT_ULONG CherokeeMask = SkTEndian_SwapBE32(1 << (76 - 64)); - static const SK_OT_ULONG UnifiedCanadianSyllabicsMask = SkTEndian_SwapBE32(1 << (77 - 64)); - static const SK_OT_ULONG OghamMask = SkTEndian_SwapBE32(1 << (78 - 64)); - static const SK_OT_ULONG RunicMask = SkTEndian_SwapBE32(1 << (79 - 64)); - static const SK_OT_ULONG KhmerMask = SkTEndian_SwapBE32(1 << (80 - 64)); - static const SK_OT_ULONG MongolianMask = SkTEndian_SwapBE32(1 << (81 - 64)); - static const SK_OT_ULONG BrailleMask = SkTEndian_SwapBE32(1 << (82 - 64)); - static const SK_OT_ULONG YiMask = SkTEndian_SwapBE32(1 << (83 - 64)); + static const SK_OT_ULONG CombiningHalfMarksMask = SkOTSetULONGBit<64 - 64>::value; + static const SK_OT_ULONG CJKCompatibilityFormsMask = SkOTSetULONGBit<65 - 64>::value; + static const SK_OT_ULONG SmallFormVariantsMask = SkOTSetULONGBit<66 - 64>::value; + static const SK_OT_ULONG ArabicPresentationFormsBMask = SkOTSetULONGBit<67 - 64>::value; + static const SK_OT_ULONG HalfwidthAndFullwidthFormsMask = SkOTSetULONGBit<68 - 64>::value; + static const SK_OT_ULONG SpecialsMask = SkOTSetULONGBit<69 - 64>::value; + static const SK_OT_ULONG TibetanMask = SkOTSetULONGBit<70 - 64>::value; + static const SK_OT_ULONG SyriacMask = SkOTSetULONGBit<71 - 64>::value; + static const SK_OT_ULONG ThaanaMask = SkOTSetULONGBit<72 - 64>::value; + static const SK_OT_ULONG SinhalaMask = SkOTSetULONGBit<73 - 64>::value; + static const SK_OT_ULONG MyanmarMask = SkOTSetULONGBit<74 - 64>::value; + static const SK_OT_ULONG EthiopicMask = SkOTSetULONGBit<75 - 64>::value; + static const SK_OT_ULONG CherokeeMask = SkOTSetULONGBit<76 - 64>::value; + static const SK_OT_ULONG UnifiedCanadianSyllabicsMask = SkOTSetULONGBit<77 - 64>::value; + static const SK_OT_ULONG OghamMask = SkOTSetULONGBit<78 - 64>::value; + static const SK_OT_ULONG RunicMask = SkOTSetULONGBit<79 - 64>::value; + static const SK_OT_ULONG KhmerMask = SkOTSetULONGBit<80 - 64>::value; + static const SK_OT_ULONG MongolianMask = SkOTSetULONGBit<81 - 64>::value; + static const SK_OT_ULONG BrailleMask = SkOTSetULONGBit<82 - 64>::value; + static const SK_OT_ULONG YiMask = SkOTSetULONGBit<83 - 64>::value; }; SK_OT_ULONG value[4]; } raw; @@ -379,13 +379,13 @@ struct SkOTTableOS2_V2 { Reserved07) } field; struct Raw { - static const SK_OT_USHORT ItalicMask = SkTEndian_SwapBE16(1 << 0); - static const SK_OT_USHORT UnderscoreMask = SkTEndian_SwapBE16(1 << 1); - static const SK_OT_USHORT NegativeMask = SkTEndian_SwapBE16(1 << 2); - static const SK_OT_USHORT OutlinedMask = SkTEndian_SwapBE16(1 << 3); - static const SK_OT_USHORT StrikeoutMask = SkTEndian_SwapBE16(1 << 4); - static const SK_OT_USHORT BoldMask = SkTEndian_SwapBE16(1 << 5); - static const SK_OT_USHORT RegularMask = SkTEndian_SwapBE16(1 << 6); + static const SK_OT_USHORT ItalicMask = SkOTSetUSHORTBit<0>::value; + static const SK_OT_USHORT UnderscoreMask = SkOTSetUSHORTBit<1>::value; + static const SK_OT_USHORT NegativeMask = SkOTSetUSHORTBit<2>::value; + static const SK_OT_USHORT OutlinedMask = SkOTSetUSHORTBit<3>::value; + static const SK_OT_USHORT StrikeoutMask = SkOTSetUSHORTBit<4>::value; + static const SK_OT_USHORT BoldMask = SkOTSetUSHORTBit<5>::value; + static const SK_OT_USHORT RegularMask = SkOTSetUSHORTBit<6>::value; SK_OT_USHORT value; } raw; } fsSelection; @@ -484,42 +484,42 @@ struct SkOTTableOS2_V2 { } field; struct Raw { struct l0 { - static const SK_OT_ULONG Latin1_1252Mask = SkTEndian_SwapBE32(1 << 0); - static const SK_OT_ULONG Latin2EasternEurope_1250Mask = SkTEndian_SwapBE32(1 << 1); - static const SK_OT_ULONG Cyrillic_1251Mask = SkTEndian_SwapBE32(1 << 2); - static const SK_OT_ULONG Greek_1253Mask = SkTEndian_SwapBE32(1 << 3); - static const SK_OT_ULONG Turkish_1254Mask = SkTEndian_SwapBE32(1 << 4); - static const SK_OT_ULONG Hebrew_1255Mask = SkTEndian_SwapBE32(1 << 5); - static const SK_OT_ULONG Arabic_1256Mask = SkTEndian_SwapBE32(1 << 6); - static const SK_OT_ULONG WindowsBaltic_1257Mask = SkTEndian_SwapBE32(1 << 7); - static const SK_OT_ULONG Vietnamese_1258Mask = SkTEndian_SwapBE32(1 << 8); - static const SK_OT_ULONG Thai_874Mask = SkTEndian_SwapBE32(1 << 16); - static const SK_OT_ULONG JISJapan_932Mask = SkTEndian_SwapBE32(1 << 17); - static const SK_OT_ULONG ChineseSimplified_936Mask = SkTEndian_SwapBE32(1 << 18); - static const SK_OT_ULONG KoreanWansung_949Mask = SkTEndian_SwapBE32(1 << 19); - static const SK_OT_ULONG ChineseTraditional_950Mask = SkTEndian_SwapBE32(1 << 20); - static const SK_OT_ULONG KoreanJohab_1361Mask = SkTEndian_SwapBE32(1 << 21); - static const SK_OT_ULONG MacintoshCharacterSetMask = SkTEndian_SwapBE32(1 << 29); - static const SK_OT_ULONG OEMCharacterSetMask = SkTEndian_SwapBE32(1 << 30); - static const SK_OT_ULONG SymbolCharacterSetMask = SkTEndian_SwapBE32(1 << 31); + static const SK_OT_ULONG Latin1_1252Mask = SkOTSetULONGBit<0>::value; + static const SK_OT_ULONG Latin2EasternEurope_1250Mask = SkOTSetULONGBit<1>::value; + static const SK_OT_ULONG Cyrillic_1251Mask = SkOTSetULONGBit<2>::value; + static const SK_OT_ULONG Greek_1253Mask = SkOTSetULONGBit<3>::value; + static const SK_OT_ULONG Turkish_1254Mask = SkOTSetULONGBit<4>::value; + static const SK_OT_ULONG Hebrew_1255Mask = SkOTSetULONGBit<5>::value; + static const SK_OT_ULONG Arabic_1256Mask = SkOTSetULONGBit<6>::value; + static const SK_OT_ULONG WindowsBaltic_1257Mask = SkOTSetULONGBit<7>::value; + static const SK_OT_ULONG Vietnamese_1258Mask = SkOTSetULONGBit<8>::value; + static const SK_OT_ULONG Thai_874Mask = SkOTSetULONGBit<16>::value; + static const SK_OT_ULONG JISJapan_932Mask = SkOTSetULONGBit<17>::value; + static const SK_OT_ULONG ChineseSimplified_936Mask = SkOTSetULONGBit<18>::value; + static const SK_OT_ULONG KoreanWansung_949Mask = SkOTSetULONGBit<19>::value; + static const SK_OT_ULONG ChineseTraditional_950Mask = SkOTSetULONGBit<20>::value; + static const SK_OT_ULONG KoreanJohab_1361Mask = SkOTSetULONGBit<21>::value; + static const SK_OT_ULONG MacintoshCharacterSetMask = SkOTSetULONGBit<29>::value; + static const SK_OT_ULONG OEMCharacterSetMask = SkOTSetULONGBit<30>::value; + static const SK_OT_ULONG SymbolCharacterSetMask = SkOTSetULONGBit<31>::value; }; struct l1 { - static const SK_OT_ULONG IBMGreek_869Mask = SkTEndian_SwapBE32(1 << (48 - 32)); - static const SK_OT_ULONG MSDOSRussian_866Mask = SkTEndian_SwapBE32(1 << (49 - 32)); - static const SK_OT_ULONG MSDOSNordic_865Mask = SkTEndian_SwapBE32(1 << (50 - 32)); - static const SK_OT_ULONG Arabic_864Mask = SkTEndian_SwapBE32(1 << (51 - 32)); - static const SK_OT_ULONG MSDOSCanadianFrench_863Mask = SkTEndian_SwapBE32(1 << (52 - 32)); - static const SK_OT_ULONG Hebrew_862Mask = SkTEndian_SwapBE32(1 << (53 - 32)); - static const SK_OT_ULONG MSDOSIcelandic_861Mask = SkTEndian_SwapBE32(1 << (54 - 32)); - static const SK_OT_ULONG MSDOSPortuguese_860Mask = SkTEndian_SwapBE32(1 << (55 - 32)); - static const SK_OT_ULONG IBMTurkish_857Mask = SkTEndian_SwapBE32(1 << (56 - 32)); - static const SK_OT_ULONG IBMCyrillic_855Mask = SkTEndian_SwapBE32(1 << (57 - 32)); - static const SK_OT_ULONG Latin2_852Mask = SkTEndian_SwapBE32(1 << (58 - 32)); - static const SK_OT_ULONG MSDOSBaltic_775Mask = SkTEndian_SwapBE32(1 << (59 - 32)); - static const SK_OT_ULONG Greek_737Mask = SkTEndian_SwapBE32(1 << (60 - 32)); - static const SK_OT_ULONG Arabic_708Mask = SkTEndian_SwapBE32(1 << (61 - 32)); - static const SK_OT_ULONG WELatin1_850Mask = SkTEndian_SwapBE32(1 << (62 - 32)); - static const SK_OT_ULONG US_437Mask = SkTEndian_SwapBE32(1 << (63 - 32)); + static const SK_OT_ULONG IBMGreek_869Mask = SkOTSetULONGBit<48 - 32>::value; + static const SK_OT_ULONG MSDOSRussian_866Mask = SkOTSetULONGBit<49 - 32>::value; + static const SK_OT_ULONG MSDOSNordic_865Mask = SkOTSetULONGBit<50 - 32>::value; + static const SK_OT_ULONG Arabic_864Mask = SkOTSetULONGBit<51 - 32>::value; + static const SK_OT_ULONG MSDOSCanadianFrench_863Mask = SkOTSetULONGBit<52 - 32>::value; + static const SK_OT_ULONG Hebrew_862Mask = SkOTSetULONGBit<53 - 32>::value; + static const SK_OT_ULONG MSDOSIcelandic_861Mask = SkOTSetULONGBit<54 - 32>::value; + static const SK_OT_ULONG MSDOSPortuguese_860Mask = SkOTSetULONGBit<55 - 32>::value; + static const SK_OT_ULONG IBMTurkish_857Mask = SkOTSetULONGBit<56 - 32>::value; + static const SK_OT_ULONG IBMCyrillic_855Mask = SkOTSetULONGBit<57 - 32>::value; + static const SK_OT_ULONG Latin2_852Mask = SkOTSetULONGBit<58 - 32>::value; + static const SK_OT_ULONG MSDOSBaltic_775Mask = SkOTSetULONGBit<59 - 32>::value; + static const SK_OT_ULONG Greek_737Mask = SkOTSetULONGBit<60 - 32>::value; + static const SK_OT_ULONG Arabic_708Mask = SkOTSetULONGBit<61 - 32>::value; + static const SK_OT_ULONG WELatin1_850Mask = SkOTSetULONGBit<62 - 32>::value; + static const SK_OT_ULONG US_437Mask = SkOTSetULONGBit<63 - 32>::value; }; SK_OT_ULONG value[2]; } raw; diff --git a/src/sfnt/SkOTTable_OS_2_V3.h b/src/sfnt/SkOTTable_OS_2_V3.h index 637eb378ad..8d4fa6b574 100644 --- a/src/sfnt/SkOTTable_OS_2_V3.h +++ b/src/sfnt/SkOTTable_OS_2_V3.h @@ -74,12 +74,12 @@ struct SkOTTableOS2_V3 { Reserved07) } field; struct Raw { - static const SK_OT_USHORT Installable = SkTEndian_SwapBE16(0); - static const SK_OT_USHORT RestrictedMask = SkTEndian_SwapBE16(1 << 1); - static const SK_OT_USHORT PreviewPrintMask = SkTEndian_SwapBE16(1 << 2); - static const SK_OT_USHORT EditableMask = SkTEndian_SwapBE16(1 << 3); - static const SK_OT_USHORT NoSubsettingMask = SkTEndian_SwapBE16(1 << 8); - static const SK_OT_USHORT BitmapMask = SkTEndian_SwapBE16(1 << 9); + static const SK_OT_USHORT Installable = 0; + static const SK_OT_USHORT RestrictedMask = SkOTSetUSHORTBit<1>::value; + static const SK_OT_USHORT PreviewPrintMask = SkOTSetUSHORTBit<2>::value; + static const SK_OT_USHORT EditableMask = SkOTSetUSHORTBit<3>::value; + static const SK_OT_USHORT NoSubsettingMask = SkOTSetUSHORTBit<8>::value; + static const SK_OT_USHORT BitmapMask = SkOTSetUSHORTBit<9>::value; SK_OT_USHORT value; } raw; } fsType; @@ -263,103 +263,103 @@ struct SkOTTableOS2_V3 { } field; struct Raw { struct l0 { - static const SK_OT_ULONG BasicLatinMask = SkTEndian_SwapBE32(1 << 0); - static const SK_OT_ULONG Latin1SupplementMask = SkTEndian_SwapBE32(1 << 1); - static const SK_OT_ULONG LatinExtendedAMask = SkTEndian_SwapBE32(1 << 2); - static const SK_OT_ULONG LatinExtendedBMask = SkTEndian_SwapBE32(1 << 3); - static const SK_OT_ULONG IPAExtensionsMask = SkTEndian_SwapBE32(1 << 4); - static const SK_OT_ULONG SpacingModifierLettersMask = SkTEndian_SwapBE32(1 << 5); - static const SK_OT_ULONG CombiningDiacriticalMarksMask = SkTEndian_SwapBE32(1 << 6); - static const SK_OT_ULONG GreekAndCopticMask = SkTEndian_SwapBE32(1 << 7); + static const SK_OT_ULONG BasicLatinMask = SkOTSetULONGBit<0>::value; + static const SK_OT_ULONG Latin1SupplementMask = SkOTSetULONGBit<1>::value; + static const SK_OT_ULONG LatinExtendedAMask = SkOTSetULONGBit<2>::value; + static const SK_OT_ULONG LatinExtendedBMask = SkOTSetULONGBit<3>::value; + static const SK_OT_ULONG IPAExtensionsMask = SkOTSetULONGBit<4>::value; + static const SK_OT_ULONG SpacingModifierLettersMask = SkOTSetULONGBit<5>::value; + static const SK_OT_ULONG CombiningDiacriticalMarksMask = SkOTSetULONGBit<6>::value; + static const SK_OT_ULONG GreekAndCopticMask = SkOTSetULONGBit<7>::value; //Reserved - static const SK_OT_ULONG CyrillicMask = SkTEndian_SwapBE32(1 << 9); - static const SK_OT_ULONG ArmenianMask = SkTEndian_SwapBE32(1 << 10); - static const SK_OT_ULONG HebrewMask = SkTEndian_SwapBE32(1 << 11); + static const SK_OT_ULONG CyrillicMask = SkOTSetULONGBit<9>::value; + static const SK_OT_ULONG ArmenianMask = SkOTSetULONGBit<10>::value; + static const SK_OT_ULONG HebrewMask = SkOTSetULONGBit<11>::value; //Reserved - static const SK_OT_ULONG ArabicMask = SkTEndian_SwapBE32(1 << 13); + static const SK_OT_ULONG ArabicMask = SkOTSetULONGBit<13>::value; //Reserved - static const SK_OT_ULONG DevanagariMask = SkTEndian_SwapBE32(1 << 15); - static const SK_OT_ULONG BengaliMask = SkTEndian_SwapBE32(1 << 16); - static const SK_OT_ULONG GurmukhiMask = SkTEndian_SwapBE32(1 << 17); - static const SK_OT_ULONG GujaratiMask = SkTEndian_SwapBE32(1 << 18); - static const SK_OT_ULONG OriyaMask = SkTEndian_SwapBE32(1 << 19); - static const SK_OT_ULONG TamilMask = SkTEndian_SwapBE32(1 << 20); - static const SK_OT_ULONG TeluguMask = SkTEndian_SwapBE32(1 << 21); - static const SK_OT_ULONG KannadaMask = SkTEndian_SwapBE32(1 << 22); - static const SK_OT_ULONG MalayalamMask = SkTEndian_SwapBE32(1 << 23); - static const SK_OT_ULONG ThaiMask = SkTEndian_SwapBE32(1 << 24); - static const SK_OT_ULONG LaoMask = SkTEndian_SwapBE32(1 << 25); - static const SK_OT_ULONG GeorgianMask = SkTEndian_SwapBE32(1 << 26); + static const SK_OT_ULONG DevanagariMask = SkOTSetULONGBit<15>::value; + static const SK_OT_ULONG BengaliMask = SkOTSetULONGBit<16>::value; + static const SK_OT_ULONG GurmukhiMask = SkOTSetULONGBit<17>::value; + static const SK_OT_ULONG GujaratiMask = SkOTSetULONGBit<18>::value; + static const SK_OT_ULONG OriyaMask = SkOTSetULONGBit<19>::value; + static const SK_OT_ULONG TamilMask = SkOTSetULONGBit<20>::value; + static const SK_OT_ULONG TeluguMask = SkOTSetULONGBit<21>::value; + static const SK_OT_ULONG KannadaMask = SkOTSetULONGBit<22>::value; + static const SK_OT_ULONG MalayalamMask = SkOTSetULONGBit<23>::value; + static const SK_OT_ULONG ThaiMask = SkOTSetULONGBit<24>::value; + static const SK_OT_ULONG LaoMask = SkOTSetULONGBit<25>::value; + static const SK_OT_ULONG GeorgianMask = SkOTSetULONGBit<26>::value; //Reserved - static const SK_OT_ULONG HangulJamoMask = SkTEndian_SwapBE32(1 << 28); - static const SK_OT_ULONG LatinExtendedAdditionalMask = SkTEndian_SwapBE32(1 << 29); - static const SK_OT_ULONG GreekExtendedMask = SkTEndian_SwapBE32(1 << 30); - static const SK_OT_ULONG GeneralPunctuationMask = SkTEndian_SwapBE32(1 << 31); + static const SK_OT_ULONG HangulJamoMask = SkOTSetULONGBit<28>::value; + static const SK_OT_ULONG LatinExtendedAdditionalMask = SkOTSetULONGBit<29>::value; + static const SK_OT_ULONG GreekExtendedMask = SkOTSetULONGBit<30>::value; + static const SK_OT_ULONG GeneralPunctuationMask = SkOTSetULONGBit<31>::value; }; struct l1 { - static const SK_OT_ULONG SuperscriptsAndSubscriptsMask = SkTEndian_SwapBE32(1 << (32 - 32)); - static const SK_OT_ULONG CurrencySymbolsMask = SkTEndian_SwapBE32(1 << (33 - 32)); - static const SK_OT_ULONG CombiningDiacriticalMarksForSymbolsMask = SkTEndian_SwapBE32(1 << (34 - 32)); - static const SK_OT_ULONG LetterlikeSymbolsMask = SkTEndian_SwapBE32(1 << (35 - 32)); - static const SK_OT_ULONG NumberFormsMask = SkTEndian_SwapBE32(1 << (36 - 32)); - static const SK_OT_ULONG ArrowsMask = SkTEndian_SwapBE32(1 << (37 - 32)); - static const SK_OT_ULONG MathematicalOperatorsMask = SkTEndian_SwapBE32(1 << (38 - 32)); - static const SK_OT_ULONG MiscellaneousTechnicalMask = SkTEndian_SwapBE32(1 << (39 - 32)); - static const SK_OT_ULONG ControlPicturesMask = SkTEndian_SwapBE32(1 << (40 - 32)); - static const SK_OT_ULONG OpticalCharacterRecognitionMask = SkTEndian_SwapBE32(1 << (41 - 32)); - static const SK_OT_ULONG EnclosedAlphanumericsMask = SkTEndian_SwapBE32(1 << (42 - 32)); - static const SK_OT_ULONG BoxDrawingMask = SkTEndian_SwapBE32(1 << (43 - 32)); - static const SK_OT_ULONG BlockElementsMask = SkTEndian_SwapBE32(1 << (44 - 32)); - static const SK_OT_ULONG GeometricShapesMask = SkTEndian_SwapBE32(1 << (45 - 32)); - static const SK_OT_ULONG MiscellaneousSymbolsMask = SkTEndian_SwapBE32(1 << (46 - 32)); - static const SK_OT_ULONG DingbatsMask = SkTEndian_SwapBE32(1 << (47 - 32)); - static const SK_OT_ULONG CJKSymbolsAndPunctuationMask = SkTEndian_SwapBE32(1 << (48 - 32)); - static const SK_OT_ULONG HiraganaMask = SkTEndian_SwapBE32(1 << (49 - 32)); - static const SK_OT_ULONG KatakanaMask = SkTEndian_SwapBE32(1 << (50 - 32)); - static const SK_OT_ULONG BopomofoMask = SkTEndian_SwapBE32(1 << (51 - 32)); - static const SK_OT_ULONG HangulCompatibilityJamoMask = SkTEndian_SwapBE32(1 << (52 - 32)); + static const SK_OT_ULONG SuperscriptsAndSubscriptsMask = SkOTSetULONGBit<32 - 32>::value; + static const SK_OT_ULONG CurrencySymbolsMask = SkOTSetULONGBit<33 - 32>::value; + static const SK_OT_ULONG CombiningDiacriticalMarksForSymbolsMask = SkOTSetULONGBit<34 - 32>::value; + static const SK_OT_ULONG LetterlikeSymbolsMask = SkOTSetULONGBit<35 - 32>::value; + static const SK_OT_ULONG NumberFormsMask = SkOTSetULONGBit<36 - 32>::value; + static const SK_OT_ULONG ArrowsMask = SkOTSetULONGBit<37 - 32>::value; + static const SK_OT_ULONG MathematicalOperatorsMask = SkOTSetULONGBit<38 - 32>::value; + static const SK_OT_ULONG MiscellaneousTechnicalMask = SkOTSetULONGBit<39 - 32>::value; + static const SK_OT_ULONG ControlPicturesMask = SkOTSetULONGBit<40 - 32>::value; + static const SK_OT_ULONG OpticalCharacterRecognitionMask = SkOTSetULONGBit<41 - 32>::value; + static const SK_OT_ULONG EnclosedAlphanumericsMask = SkOTSetULONGBit<42 - 32>::value; + static const SK_OT_ULONG BoxDrawingMask = SkOTSetULONGBit<43 - 32>::value; + static const SK_OT_ULONG BlockElementsMask = SkOTSetULONGBit<44 - 32>::value; + static const SK_OT_ULONG GeometricShapesMask = SkOTSetULONGBit<45 - 32>::value; + static const SK_OT_ULONG MiscellaneousSymbolsMask = SkOTSetULONGBit<46 - 32>::value; + static const SK_OT_ULONG DingbatsMask = SkOTSetULONGBit<47 - 32>::value; + static const SK_OT_ULONG CJKSymbolsAndPunctuationMask = SkOTSetULONGBit<48 - 32>::value; + static const SK_OT_ULONG HiraganaMask = SkOTSetULONGBit<49 - 32>::value; + static const SK_OT_ULONG KatakanaMask = SkOTSetULONGBit<50 - 32>::value; + static const SK_OT_ULONG BopomofoMask = SkOTSetULONGBit<51 - 32>::value; + static const SK_OT_ULONG HangulCompatibilityJamoMask = SkOTSetULONGBit<52 - 32>::value; //Reserved - static const SK_OT_ULONG EnclosedCJKLettersAndMonthsMask = SkTEndian_SwapBE32(1 << (54 - 32)); - static const SK_OT_ULONG CJKCompatibilityMask = SkTEndian_SwapBE32(1 << (55 - 32)); - static const SK_OT_ULONG HangulMask = SkTEndian_SwapBE32(1 << (56 - 32)); - static const SK_OT_ULONG NonPlane0Mask = SkTEndian_SwapBE32(1 << (57 - 32)); + static const SK_OT_ULONG EnclosedCJKLettersAndMonthsMask = SkOTSetULONGBit<54 - 32>::value; + static const SK_OT_ULONG CJKCompatibilityMask = SkOTSetULONGBit<55 - 32>::value; + static const SK_OT_ULONG HangulMask = SkOTSetULONGBit<56 - 32>::value; + static const SK_OT_ULONG NonPlane0Mask = SkOTSetULONGBit<57 - 32>::value; //Reserved - static const SK_OT_ULONG CJKUnifiedIdeographsMask = SkTEndian_SwapBE32(1 << (59 - 32)); - static const SK_OT_ULONG PrivateUseAreaMask = SkTEndian_SwapBE32(1 << (60 - 32)); - static const SK_OT_ULONG CJKCompatibilityIdeographsMask = SkTEndian_SwapBE32(1 << (61 - 32)); - static const SK_OT_ULONG AlphabeticPresentationFormsMask = SkTEndian_SwapBE32(1 << (62 - 32)); - static const SK_OT_ULONG ArabicPresentationFormsAMask = SkTEndian_SwapBE32(1 << (63 - 32)); + static const SK_OT_ULONG CJKUnifiedIdeographsMask = SkOTSetULONGBit<59 - 32>::value; + static const SK_OT_ULONG PrivateUseAreaMask = SkOTSetULONGBit<60 - 32>::value; + static const SK_OT_ULONG CJKCompatibilityIdeographsMask = SkOTSetULONGBit<61 - 32>::value; + static const SK_OT_ULONG AlphabeticPresentationFormsMask = SkOTSetULONGBit<62 - 32>::value; + static const SK_OT_ULONG ArabicPresentationFormsAMask = SkOTSetULONGBit<63 - 32>::value; }; struct l2 { - static const SK_OT_ULONG CombiningHalfMarksMask = SkTEndian_SwapBE32(1 << (64 - 64)); - static const SK_OT_ULONG CJKCompatibilityFormsMask = SkTEndian_SwapBE32(1 << (65 - 64)); - static const SK_OT_ULONG SmallFormVariantsMask = SkTEndian_SwapBE32(1 << (66 - 64)); - static const SK_OT_ULONG ArabicPresentationFormsBMask = SkTEndian_SwapBE32(1 << (67 - 64)); - static const SK_OT_ULONG HalfwidthAndFullwidthFormsMask = SkTEndian_SwapBE32(1 << (68 - 64)); - static const SK_OT_ULONG SpecialsMask = SkTEndian_SwapBE32(1 << (69 - 64)); - static const SK_OT_ULONG TibetanMask = SkTEndian_SwapBE32(1 << (70 - 64)); - static const SK_OT_ULONG SyriacMask = SkTEndian_SwapBE32(1 << (71 - 64)); - static const SK_OT_ULONG ThaanaMask = SkTEndian_SwapBE32(1 << (72 - 64)); - static const SK_OT_ULONG SinhalaMask = SkTEndian_SwapBE32(1 << (73 - 64)); - static const SK_OT_ULONG MyanmarMask = SkTEndian_SwapBE32(1 << (74 - 64)); - static const SK_OT_ULONG EthiopicMask = SkTEndian_SwapBE32(1 << (75 - 64)); - static const SK_OT_ULONG CherokeeMask = SkTEndian_SwapBE32(1 << (76 - 64)); - static const SK_OT_ULONG UnifiedCanadianSyllabicsMask = SkTEndian_SwapBE32(1 << (77 - 64)); - static const SK_OT_ULONG OghamMask = SkTEndian_SwapBE32(1 << (78 - 64)); - static const SK_OT_ULONG RunicMask = SkTEndian_SwapBE32(1 << (79 - 64)); - static const SK_OT_ULONG KhmerMask = SkTEndian_SwapBE32(1 << (80 - 64)); - static const SK_OT_ULONG MongolianMask = SkTEndian_SwapBE32(1 << (81 - 64)); - static const SK_OT_ULONG BrailleMask = SkTEndian_SwapBE32(1 << (82 - 64)); - static const SK_OT_ULONG YiMask = SkTEndian_SwapBE32(1 << (83 - 64)); - static const SK_OT_ULONG Tagalog_Hanunoo_Buhid_TagbanwaMask = SkTEndian_SwapBE32(1 << (84 - 64)); - static const SK_OT_ULONG OldItalicMask = SkTEndian_SwapBE32(1 << (85 - 64)); - static const SK_OT_ULONG GothicMask = SkTEndian_SwapBE32(1 << (86 - 64)); - static const SK_OT_ULONG DeseretMask = SkTEndian_SwapBE32(1 << (87 - 64)); - static const SK_OT_ULONG MusicalSymbolsMask = SkTEndian_SwapBE32(1 << (88 - 64)); - static const SK_OT_ULONG MathematicalAlphanumericSymbolsMask = SkTEndian_SwapBE32(1 << (89 - 64)); - static const SK_OT_ULONG PrivateUseMask = SkTEndian_SwapBE32(1 << (90 - 64)); - static const SK_OT_ULONG VariationSelectorsMask = SkTEndian_SwapBE32(1 << (91 - 64)); - static const SK_OT_ULONG TagsMask = SkTEndian_SwapBE32(1 << (92 - 64)); + static const SK_OT_ULONG CombiningHalfMarksMask = SkOTSetULONGBit<64 - 64>::value; + static const SK_OT_ULONG CJKCompatibilityFormsMask = SkOTSetULONGBit<65 - 64>::value; + static const SK_OT_ULONG SmallFormVariantsMask = SkOTSetULONGBit<66 - 64>::value; + static const SK_OT_ULONG ArabicPresentationFormsBMask = SkOTSetULONGBit<67 - 64>::value; + static const SK_OT_ULONG HalfwidthAndFullwidthFormsMask = SkOTSetULONGBit<68 - 64>::value; + static const SK_OT_ULONG SpecialsMask = SkOTSetULONGBit<69 - 64>::value; + static const SK_OT_ULONG TibetanMask = SkOTSetULONGBit<70 - 64>::value; + static const SK_OT_ULONG SyriacMask = SkOTSetULONGBit<71 - 64>::value; + static const SK_OT_ULONG ThaanaMask = SkOTSetULONGBit<72 - 64>::value; + static const SK_OT_ULONG SinhalaMask = SkOTSetULONGBit<73 - 64>::value; + static const SK_OT_ULONG MyanmarMask = SkOTSetULONGBit<74 - 64>::value; + static const SK_OT_ULONG EthiopicMask = SkOTSetULONGBit<75 - 64>::value; + static const SK_OT_ULONG CherokeeMask = SkOTSetULONGBit<76 - 64>::value; + static const SK_OT_ULONG UnifiedCanadianSyllabicsMask = SkOTSetULONGBit<77 - 64>::value; + static const SK_OT_ULONG OghamMask = SkOTSetULONGBit<78 - 64>::value; + static const SK_OT_ULONG RunicMask = SkOTSetULONGBit<79 - 64>::value; + static const SK_OT_ULONG KhmerMask = SkOTSetULONGBit<80 - 64>::value; + static const SK_OT_ULONG MongolianMask = SkOTSetULONGBit<81 - 64>::value; + static const SK_OT_ULONG BrailleMask = SkOTSetULONGBit<82 - 64>::value; + static const SK_OT_ULONG YiMask = SkOTSetULONGBit<83 - 64>::value; + static const SK_OT_ULONG Tagalog_Hanunoo_Buhid_TagbanwaMask = SkOTSetULONGBit<84 - 64>::value; + static const SK_OT_ULONG OldItalicMask = SkOTSetULONGBit<85 - 64>::value; + static const SK_OT_ULONG GothicMask = SkOTSetULONGBit<86 - 64>::value; + static const SK_OT_ULONG DeseretMask = SkOTSetULONGBit<87 - 64>::value; + static const SK_OT_ULONG MusicalSymbolsMask = SkOTSetULONGBit<88 - 64>::value; + static const SK_OT_ULONG MathematicalAlphanumericSymbolsMask = SkOTSetULONGBit<89 - 64>::value; + static const SK_OT_ULONG PrivateUseMask = SkOTSetULONGBit<90 - 64>::value; + static const SK_OT_ULONG VariationSelectorsMask = SkOTSetULONGBit<91 - 64>::value; + static const SK_OT_ULONG TagsMask = SkOTSetULONGBit<92 - 64>::value; }; SK_OT_ULONG value[4]; } raw; @@ -389,13 +389,13 @@ struct SkOTTableOS2_V3 { Reserved07) } field; struct Raw { - static const SK_OT_USHORT ItalicMask = SkTEndian_SwapBE16(1 << 0); - static const SK_OT_USHORT UnderscoreMask = SkTEndian_SwapBE16(1 << 1); - static const SK_OT_USHORT NegativeMask = SkTEndian_SwapBE16(1 << 2); - static const SK_OT_USHORT OutlinedMask = SkTEndian_SwapBE16(1 << 3); - static const SK_OT_USHORT StrikeoutMask = SkTEndian_SwapBE16(1 << 4); - static const SK_OT_USHORT BoldMask = SkTEndian_SwapBE16(1 << 5); - static const SK_OT_USHORT RegularMask = SkTEndian_SwapBE16(1 << 6); + static const SK_OT_USHORT ItalicMask = SkOTSetUSHORTBit<0>::value; + static const SK_OT_USHORT UnderscoreMask = SkOTSetUSHORTBit<1>::value; + static const SK_OT_USHORT NegativeMask = SkOTSetUSHORTBit<2>::value; + static const SK_OT_USHORT OutlinedMask = SkOTSetUSHORTBit<3>::value; + static const SK_OT_USHORT StrikeoutMask = SkOTSetUSHORTBit<4>::value; + static const SK_OT_USHORT BoldMask = SkOTSetUSHORTBit<5>::value; + static const SK_OT_USHORT RegularMask = SkOTSetUSHORTBit<6>::value; SK_OT_USHORT value; } raw; } fsSelection; @@ -494,42 +494,42 @@ struct SkOTTableOS2_V3 { } field; struct Raw { struct l0 { - static const SK_OT_ULONG Latin1_1252Mask = SkTEndian_SwapBE32(1 << 0); - static const SK_OT_ULONG Latin2EasternEurope_1250Mask = SkTEndian_SwapBE32(1 << 1); - static const SK_OT_ULONG Cyrillic_1251Mask = SkTEndian_SwapBE32(1 << 2); - static const SK_OT_ULONG Greek_1253Mask = SkTEndian_SwapBE32(1 << 3); - static const SK_OT_ULONG Turkish_1254Mask = SkTEndian_SwapBE32(1 << 4); - static const SK_OT_ULONG Hebrew_1255Mask = SkTEndian_SwapBE32(1 << 5); - static const SK_OT_ULONG Arabic_1256Mask = SkTEndian_SwapBE32(1 << 6); - static const SK_OT_ULONG WindowsBaltic_1257Mask = SkTEndian_SwapBE32(1 << 7); - static const SK_OT_ULONG Vietnamese_1258Mask = SkTEndian_SwapBE32(1 << 8); - static const SK_OT_ULONG Thai_874Mask = SkTEndian_SwapBE32(1 << 16); - static const SK_OT_ULONG JISJapan_932Mask = SkTEndian_SwapBE32(1 << 17); - static const SK_OT_ULONG ChineseSimplified_936Mask = SkTEndian_SwapBE32(1 << 18); - static const SK_OT_ULONG KoreanWansung_949Mask = SkTEndian_SwapBE32(1 << 19); - static const SK_OT_ULONG ChineseTraditional_950Mask = SkTEndian_SwapBE32(1 << 20); - static const SK_OT_ULONG KoreanJohab_1361Mask = SkTEndian_SwapBE32(1 << 21); - static const SK_OT_ULONG MacintoshCharacterSetMask = SkTEndian_SwapBE32(1 << 29); - static const SK_OT_ULONG OEMCharacterSetMask = SkTEndian_SwapBE32(1 << 30); - static const SK_OT_ULONG SymbolCharacterSetMask = SkTEndian_SwapBE32(1 << 31); + static const SK_OT_ULONG Latin1_1252Mask = SkOTSetULONGBit<0>::value; + static const SK_OT_ULONG Latin2EasternEurope_1250Mask = SkOTSetULONGBit<1>::value; + static const SK_OT_ULONG Cyrillic_1251Mask = SkOTSetULONGBit<2>::value; + static const SK_OT_ULONG Greek_1253Mask = SkOTSetULONGBit<3>::value; + static const SK_OT_ULONG Turkish_1254Mask = SkOTSetULONGBit<4>::value; + static const SK_OT_ULONG Hebrew_1255Mask = SkOTSetULONGBit<5>::value; + static const SK_OT_ULONG Arabic_1256Mask = SkOTSetULONGBit<6>::value; + static const SK_OT_ULONG WindowsBaltic_1257Mask = SkOTSetULONGBit<7>::value; + static const SK_OT_ULONG Vietnamese_1258Mask = SkOTSetULONGBit<8>::value; + static const SK_OT_ULONG Thai_874Mask = SkOTSetULONGBit<16>::value; + static const SK_OT_ULONG JISJapan_932Mask = SkOTSetULONGBit<17>::value; + static const SK_OT_ULONG ChineseSimplified_936Mask = SkOTSetULONGBit<18>::value; + static const SK_OT_ULONG KoreanWansung_949Mask = SkOTSetULONGBit<19>::value; + static const SK_OT_ULONG ChineseTraditional_950Mask = SkOTSetULONGBit<20>::value; + static const SK_OT_ULONG KoreanJohab_1361Mask = SkOTSetULONGBit<21>::value; + static const SK_OT_ULONG MacintoshCharacterSetMask = SkOTSetULONGBit<29>::value; + static const SK_OT_ULONG OEMCharacterSetMask = SkOTSetULONGBit<30>::value; + static const SK_OT_ULONG SymbolCharacterSetMask = SkOTSetULONGBit<31>::value; }; struct l1 { - static const SK_OT_ULONG IBMGreek_869Mask = SkTEndian_SwapBE32(1 << (48 - 32)); - static const SK_OT_ULONG MSDOSRussian_866Mask = SkTEndian_SwapBE32(1 << (49 - 32)); - static const SK_OT_ULONG MSDOSNordic_865Mask = SkTEndian_SwapBE32(1 << (50 - 32)); - static const SK_OT_ULONG Arabic_864Mask = SkTEndian_SwapBE32(1 << (51 - 32)); - static const SK_OT_ULONG MSDOSCanadianFrench_863Mask = SkTEndian_SwapBE32(1 << (52 - 32)); - static const SK_OT_ULONG Hebrew_862Mask = SkTEndian_SwapBE32(1 << (53 - 32)); - static const SK_OT_ULONG MSDOSIcelandic_861Mask = SkTEndian_SwapBE32(1 << (54 - 32)); - static const SK_OT_ULONG MSDOSPortuguese_860Mask = SkTEndian_SwapBE32(1 << (55 - 32)); - static const SK_OT_ULONG IBMTurkish_857Mask = SkTEndian_SwapBE32(1 << (56 - 32)); - static const SK_OT_ULONG IBMCyrillic_855Mask = SkTEndian_SwapBE32(1 << (57 - 32)); - static const SK_OT_ULONG Latin2_852Mask = SkTEndian_SwapBE32(1 << (58 - 32)); - static const SK_OT_ULONG MSDOSBaltic_775Mask = SkTEndian_SwapBE32(1 << (59 - 32)); - static const SK_OT_ULONG Greek_737Mask = SkTEndian_SwapBE32(1 << (60 - 32)); - static const SK_OT_ULONG Arabic_708Mask = SkTEndian_SwapBE32(1 << (61 - 32)); - static const SK_OT_ULONG WELatin1_850Mask = SkTEndian_SwapBE32(1 << (62 - 32)); - static const SK_OT_ULONG US_437Mask = SkTEndian_SwapBE32(1 << (63 - 32)); + static const SK_OT_ULONG IBMGreek_869Mask = SkOTSetULONGBit<48 - 32>::value; + static const SK_OT_ULONG MSDOSRussian_866Mask = SkOTSetULONGBit<49 - 32>::value; + static const SK_OT_ULONG MSDOSNordic_865Mask = SkOTSetULONGBit<50 - 32>::value; + static const SK_OT_ULONG Arabic_864Mask = SkOTSetULONGBit<51 - 32>::value; + static const SK_OT_ULONG MSDOSCanadianFrench_863Mask = SkOTSetULONGBit<52 - 32>::value; + static const SK_OT_ULONG Hebrew_862Mask = SkOTSetULONGBit<53 - 32>::value; + static const SK_OT_ULONG MSDOSIcelandic_861Mask = SkOTSetULONGBit<54 - 32>::value; + static const SK_OT_ULONG MSDOSPortuguese_860Mask = SkOTSetULONGBit<55 - 32>::value; + static const SK_OT_ULONG IBMTurkish_857Mask = SkOTSetULONGBit<56 - 32>::value; + static const SK_OT_ULONG IBMCyrillic_855Mask = SkOTSetULONGBit<57 - 32>::value; + static const SK_OT_ULONG Latin2_852Mask = SkOTSetULONGBit<58 - 32>::value; + static const SK_OT_ULONG MSDOSBaltic_775Mask = SkOTSetULONGBit<59 - 32>::value; + static const SK_OT_ULONG Greek_737Mask = SkOTSetULONGBit<60 - 32>::value; + static const SK_OT_ULONG Arabic_708Mask = SkOTSetULONGBit<61 - 32>::value; + static const SK_OT_ULONG WELatin1_850Mask = SkOTSetULONGBit<62 - 32>::value; + static const SK_OT_ULONG US_437Mask = SkOTSetULONGBit<63 - 32>::value; }; SK_OT_ULONG value[2]; } raw; diff --git a/src/sfnt/SkOTTable_OS_2_V4.h b/src/sfnt/SkOTTable_OS_2_V4.h index fc6ed5daad..fc64b2257b 100644 --- a/src/sfnt/SkOTTable_OS_2_V4.h +++ b/src/sfnt/SkOTTable_OS_2_V4.h @@ -74,12 +74,12 @@ struct SkOTTableOS2_V4 { Reserved07) } field; struct Raw { - static const SK_OT_USHORT Installable = SkTEndian_SwapBE16(0); - static const SK_OT_USHORT RestrictedMask = SkTEndian_SwapBE16(1 << 1); - static const SK_OT_USHORT PreviewPrintMask = SkTEndian_SwapBE16(1 << 2); - static const SK_OT_USHORT EditableMask = SkTEndian_SwapBE16(1 << 3); - static const SK_OT_USHORT NoSubsettingMask = SkTEndian_SwapBE16(1 << 8); - static const SK_OT_USHORT BitmapMask = SkTEndian_SwapBE16(1 << 9); + static const SK_OT_USHORT Installable = 0; + static const SK_OT_USHORT RestrictedMask = SkOTSetUSHORTBit<1>::value; + static const SK_OT_USHORT PreviewPrintMask = SkOTSetUSHORTBit<2>::value; + static const SK_OT_USHORT EditableMask = SkOTSetUSHORTBit<3>::value; + static const SK_OT_USHORT NoSubsettingMask = SkOTSetUSHORTBit<8>::value; + static const SK_OT_USHORT BitmapMask = SkOTSetUSHORTBit<9>::value; SK_OT_USHORT value; } raw; } fsType; @@ -263,135 +263,135 @@ struct SkOTTableOS2_V4 { } field; struct Raw { struct l0 { - static const SK_OT_ULONG BasicLatinMask = SkTEndian_SwapBE32(1 << 0); - static const SK_OT_ULONG Latin1SupplementMask = SkTEndian_SwapBE32(1 << 1); - static const SK_OT_ULONG LatinExtendedAMask = SkTEndian_SwapBE32(1 << 2); - static const SK_OT_ULONG LatinExtendedBMask = SkTEndian_SwapBE32(1 << 3); - static const SK_OT_ULONG IPAExtensionsMask = SkTEndian_SwapBE32(1 << 4); - static const SK_OT_ULONG SpacingModifierLettersMask = SkTEndian_SwapBE32(1 << 5); - static const SK_OT_ULONG CombiningDiacriticalMarksMask = SkTEndian_SwapBE32(1 << 6); - static const SK_OT_ULONG GreekAndCopticMask = SkTEndian_SwapBE32(1 << 7); - static const SK_OT_ULONG CopticMask = SkTEndian_SwapBE32(1 << 8); - static const SK_OT_ULONG CyrillicMask = SkTEndian_SwapBE32(1 << 9); - static const SK_OT_ULONG ArmenianMask = SkTEndian_SwapBE32(1 << 10); - static const SK_OT_ULONG HebrewMask = SkTEndian_SwapBE32(1 << 11); - static const SK_OT_ULONG VaiMask = SkTEndian_SwapBE32(1 << 12); - static const SK_OT_ULONG ArabicMask = SkTEndian_SwapBE32(1 << 13); - static const SK_OT_ULONG NKoMask = SkTEndian_SwapBE32(1 << 14); - static const SK_OT_ULONG DevanagariMask = SkTEndian_SwapBE32(1 << 15); - static const SK_OT_ULONG BengaliMask = SkTEndian_SwapBE32(1 << 16); - static const SK_OT_ULONG GurmukhiMask = SkTEndian_SwapBE32(1 << 17); - static const SK_OT_ULONG GujaratiMask = SkTEndian_SwapBE32(1 << 18); - static const SK_OT_ULONG OriyaMask = SkTEndian_SwapBE32(1 << 19); - static const SK_OT_ULONG TamilMask = SkTEndian_SwapBE32(1 << 20); - static const SK_OT_ULONG TeluguMask = SkTEndian_SwapBE32(1 << 21); - static const SK_OT_ULONG KannadaMask = SkTEndian_SwapBE32(1 << 22); - static const SK_OT_ULONG MalayalamMask = SkTEndian_SwapBE32(1 << 23); - static const SK_OT_ULONG ThaiMask = SkTEndian_SwapBE32(1 << 24); - static const SK_OT_ULONG LaoMask = SkTEndian_SwapBE32(1 << 25); - static const SK_OT_ULONG GeorgianMask = SkTEndian_SwapBE32(1 << 26); - static const SK_OT_ULONG BalineseMask = SkTEndian_SwapBE32(1 << 27); - static const SK_OT_ULONG HangulJamoMask = SkTEndian_SwapBE32(1 << 28); - static const SK_OT_ULONG LatinExtendedAdditionalMask = SkTEndian_SwapBE32(1 << 29); - static const SK_OT_ULONG GreekExtendedMask = SkTEndian_SwapBE32(1 << 30); - static const SK_OT_ULONG GeneralPunctuationMask = SkTEndian_SwapBE32(1 << 31); + static const SK_OT_ULONG BasicLatinMask = SkOTSetULONGBit<0>::value; + static const SK_OT_ULONG Latin1SupplementMask = SkOTSetULONGBit<1>::value; + static const SK_OT_ULONG LatinExtendedAMask = SkOTSetULONGBit<2>::value; + static const SK_OT_ULONG LatinExtendedBMask = SkOTSetULONGBit<3>::value; + static const SK_OT_ULONG IPAExtensionsMask = SkOTSetULONGBit<4>::value; + static const SK_OT_ULONG SpacingModifierLettersMask = SkOTSetULONGBit<5>::value; + static const SK_OT_ULONG CombiningDiacriticalMarksMask = SkOTSetULONGBit<6>::value; + static const SK_OT_ULONG GreekAndCopticMask = SkOTSetULONGBit<7>::value; + static const SK_OT_ULONG CopticMask = SkOTSetULONGBit<8>::value; + static const SK_OT_ULONG CyrillicMask = SkOTSetULONGBit<9>::value; + static const SK_OT_ULONG ArmenianMask = SkOTSetULONGBit<10>::value; + static const SK_OT_ULONG HebrewMask = SkOTSetULONGBit<11>::value; + static const SK_OT_ULONG VaiMask = SkOTSetULONGBit<12>::value; + static const SK_OT_ULONG ArabicMask = SkOTSetULONGBit<13>::value; + static const SK_OT_ULONG NKoMask = SkOTSetULONGBit<14>::value; + static const SK_OT_ULONG DevanagariMask = SkOTSetULONGBit<15>::value; + static const SK_OT_ULONG BengaliMask = SkOTSetULONGBit<16>::value; + static const SK_OT_ULONG GurmukhiMask = SkOTSetULONGBit<17>::value; + static const SK_OT_ULONG GujaratiMask = SkOTSetULONGBit<18>::value; + static const SK_OT_ULONG OriyaMask = SkOTSetULONGBit<19>::value; + static const SK_OT_ULONG TamilMask = SkOTSetULONGBit<20>::value; + static const SK_OT_ULONG TeluguMask = SkOTSetULONGBit<21>::value; + static const SK_OT_ULONG KannadaMask = SkOTSetULONGBit<22>::value; + static const SK_OT_ULONG MalayalamMask = SkOTSetULONGBit<23>::value; + static const SK_OT_ULONG ThaiMask = SkOTSetULONGBit<24>::value; + static const SK_OT_ULONG LaoMask = SkOTSetULONGBit<25>::value; + static const SK_OT_ULONG GeorgianMask = SkOTSetULONGBit<26>::value; + static const SK_OT_ULONG BalineseMask = SkOTSetULONGBit<27>::value; + static const SK_OT_ULONG HangulJamoMask = SkOTSetULONGBit<28>::value; + static const SK_OT_ULONG LatinExtendedAdditionalMask = SkOTSetULONGBit<29>::value; + static const SK_OT_ULONG GreekExtendedMask = SkOTSetULONGBit<30>::value; + static const SK_OT_ULONG GeneralPunctuationMask = SkOTSetULONGBit<31>::value; }; struct l1 { - static const SK_OT_ULONG SuperscriptsAndSubscriptsMask = SkTEndian_SwapBE32(1 << (32 - 32)); - static const SK_OT_ULONG CurrencySymbolsMask = SkTEndian_SwapBE32(1 << (33 - 32)); - static const SK_OT_ULONG CombiningDiacriticalMarksForSymbolsMask = SkTEndian_SwapBE32(1 << (34 - 32)); - static const SK_OT_ULONG LetterlikeSymbolsMask = SkTEndian_SwapBE32(1 << (35 - 32)); - static const SK_OT_ULONG NumberFormsMask = SkTEndian_SwapBE32(1 << (36 - 32)); - static const SK_OT_ULONG ArrowsMask = SkTEndian_SwapBE32(1 << (37 - 32)); - static const SK_OT_ULONG MathematicalOperatorsMask = SkTEndian_SwapBE32(1 << (38 - 32)); - static const SK_OT_ULONG MiscellaneousTechnicalMask = SkTEndian_SwapBE32(1 << (39 - 32)); - static const SK_OT_ULONG ControlPicturesMask = SkTEndian_SwapBE32(1 << (40 - 32)); - static const SK_OT_ULONG OpticalCharacterRecognitionMask = SkTEndian_SwapBE32(1 << (41 - 32)); - static const SK_OT_ULONG EnclosedAlphanumericsMask = SkTEndian_SwapBE32(1 << (42 - 32)); - static const SK_OT_ULONG BoxDrawingMask = SkTEndian_SwapBE32(1 << (43 - 32)); - static const SK_OT_ULONG BlockElementsMask = SkTEndian_SwapBE32(1 << (44 - 32)); - static const SK_OT_ULONG GeometricShapesMask = SkTEndian_SwapBE32(1 << (45 - 32)); - static const SK_OT_ULONG MiscellaneousSymbolsMask = SkTEndian_SwapBE32(1 << (46 - 32)); - static const SK_OT_ULONG DingbatsMask = SkTEndian_SwapBE32(1 << (47 - 32)); - static const SK_OT_ULONG CJKSymbolsAndPunctuationMask = SkTEndian_SwapBE32(1 << (48 - 32)); - static const SK_OT_ULONG HiraganaMask = SkTEndian_SwapBE32(1 << (49 - 32)); - static const SK_OT_ULONG KatakanaMask = SkTEndian_SwapBE32(1 << (50 - 32)); - static const SK_OT_ULONG BopomofoMask = SkTEndian_SwapBE32(1 << (51 - 32)); - static const SK_OT_ULONG HangulCompatibilityJamoMask = SkTEndian_SwapBE32(1 << (52 - 32)); - static const SK_OT_ULONG PhagsPaMask = SkTEndian_SwapBE32(1 << (53 - 32)); - static const SK_OT_ULONG EnclosedCJKLettersAndMonthsMask = SkTEndian_SwapBE32(1 << (54 - 32)); - static const SK_OT_ULONG CJKCompatibilityMask = SkTEndian_SwapBE32(1 << (55 - 32)); - static const SK_OT_ULONG HangulMask = SkTEndian_SwapBE32(1 << (56 - 32)); - static const SK_OT_ULONG NonPlane0Mask = SkTEndian_SwapBE32(1 << (57 - 32)); - static const SK_OT_ULONG PhoenicianMask = SkTEndian_SwapBE32(1 << (58 - 32)); - static const SK_OT_ULONG CJKUnifiedIdeographsMask = SkTEndian_SwapBE32(1 << (59 - 32)); - static const SK_OT_ULONG PrivateUseAreaMask = SkTEndian_SwapBE32(1 << (60 - 32)); - static const SK_OT_ULONG CJKCompatibilityIdeographsMask = SkTEndian_SwapBE32(1 << (61 - 32)); - static const SK_OT_ULONG AlphabeticPresentationFormsMask = SkTEndian_SwapBE32(1 << (62 - 32)); - static const SK_OT_ULONG ArabicPresentationFormsAMask = SkTEndian_SwapBE32(1 << (63 - 32)); + static const SK_OT_ULONG SuperscriptsAndSubscriptsMask = SkOTSetULONGBit<32 - 32>::value; + static const SK_OT_ULONG CurrencySymbolsMask = SkOTSetULONGBit<33 - 32>::value; + static const SK_OT_ULONG CombiningDiacriticalMarksForSymbolsMask = SkOTSetULONGBit<34 - 32>::value; + static const SK_OT_ULONG LetterlikeSymbolsMask = SkOTSetULONGBit<35 - 32>::value; + static const SK_OT_ULONG NumberFormsMask = SkOTSetULONGBit<36 - 32>::value; + static const SK_OT_ULONG ArrowsMask = SkOTSetULONGBit<37 - 32>::value; + static const SK_OT_ULONG MathematicalOperatorsMask = SkOTSetULONGBit<38 - 32>::value; + static const SK_OT_ULONG MiscellaneousTechnicalMask = SkOTSetULONGBit<39 - 32>::value; + static const SK_OT_ULONG ControlPicturesMask = SkOTSetULONGBit<40 - 32>::value; + static const SK_OT_ULONG OpticalCharacterRecognitionMask = SkOTSetULONGBit<41 - 32>::value; + static const SK_OT_ULONG EnclosedAlphanumericsMask = SkOTSetULONGBit<42 - 32>::value; + static const SK_OT_ULONG BoxDrawingMask = SkOTSetULONGBit<43 - 32>::value; + static const SK_OT_ULONG BlockElementsMask = SkOTSetULONGBit<44 - 32>::value; + static const SK_OT_ULONG GeometricShapesMask = SkOTSetULONGBit<45 - 32>::value; + static const SK_OT_ULONG MiscellaneousSymbolsMask = SkOTSetULONGBit<46 - 32>::value; + static const SK_OT_ULONG DingbatsMask = SkOTSetULONGBit<47 - 32>::value; + static const SK_OT_ULONG CJKSymbolsAndPunctuationMask = SkOTSetULONGBit<48 - 32>::value; + static const SK_OT_ULONG HiraganaMask = SkOTSetULONGBit<49 - 32>::value; + static const SK_OT_ULONG KatakanaMask = SkOTSetULONGBit<50 - 32>::value; + static const SK_OT_ULONG BopomofoMask = SkOTSetULONGBit<51 - 32>::value; + static const SK_OT_ULONG HangulCompatibilityJamoMask = SkOTSetULONGBit<52 - 32>::value; + static const SK_OT_ULONG PhagsPaMask = SkOTSetULONGBit<53 - 32>::value; + static const SK_OT_ULONG EnclosedCJKLettersAndMonthsMask = SkOTSetULONGBit<54 - 32>::value; + static const SK_OT_ULONG CJKCompatibilityMask = SkOTSetULONGBit<55 - 32>::value; + static const SK_OT_ULONG HangulMask = SkOTSetULONGBit<56 - 32>::value; + static const SK_OT_ULONG NonPlane0Mask = SkOTSetULONGBit<57 - 32>::value; + static const SK_OT_ULONG PhoenicianMask = SkOTSetULONGBit<58 - 32>::value; + static const SK_OT_ULONG CJKUnifiedIdeographsMask = SkOTSetULONGBit<59 - 32>::value; + static const SK_OT_ULONG PrivateUseAreaMask = SkOTSetULONGBit<60 - 32>::value; + static const SK_OT_ULONG CJKCompatibilityIdeographsMask = SkOTSetULONGBit<61 - 32>::value; + static const SK_OT_ULONG AlphabeticPresentationFormsMask = SkOTSetULONGBit<62 - 32>::value; + static const SK_OT_ULONG ArabicPresentationFormsAMask = SkOTSetULONGBit<63 - 32>::value; }; struct l2 { - static const SK_OT_ULONG CombiningHalfMarksMask = SkTEndian_SwapBE32(1 << (64 - 64)); - static const SK_OT_ULONG CJKCompatibilityFormsMask = SkTEndian_SwapBE32(1 << (65 - 64)); - static const SK_OT_ULONG SmallFormVariantsMask = SkTEndian_SwapBE32(1 << (66 - 64)); - static const SK_OT_ULONG ArabicPresentationFormsBMask = SkTEndian_SwapBE32(1 << (67 - 64)); - static const SK_OT_ULONG HalfwidthAndFullwidthFormsMask = SkTEndian_SwapBE32(1 << (68 - 64)); - static const SK_OT_ULONG SpecialsMask = SkTEndian_SwapBE32(1 << (69 - 64)); - static const SK_OT_ULONG TibetanMask = SkTEndian_SwapBE32(1 << (70 - 64)); - static const SK_OT_ULONG SyriacMask = SkTEndian_SwapBE32(1 << (71 - 64)); - static const SK_OT_ULONG ThaanaMask = SkTEndian_SwapBE32(1 << (72 - 64)); - static const SK_OT_ULONG SinhalaMask = SkTEndian_SwapBE32(1 << (73 - 64)); - static const SK_OT_ULONG MyanmarMask = SkTEndian_SwapBE32(1 << (74 - 64)); - static const SK_OT_ULONG EthiopicMask = SkTEndian_SwapBE32(1 << (75 - 64)); - static const SK_OT_ULONG CherokeeMask = SkTEndian_SwapBE32(1 << (76 - 64)); - static const SK_OT_ULONG UnifiedCanadianSyllabicsMask = SkTEndian_SwapBE32(1 << (77 - 64)); - static const SK_OT_ULONG OghamMask = SkTEndian_SwapBE32(1 << (78 - 64)); - static const SK_OT_ULONG RunicMask = SkTEndian_SwapBE32(1 << (79 - 64)); - static const SK_OT_ULONG KhmerMask = SkTEndian_SwapBE32(1 << (80 - 64)); - static const SK_OT_ULONG MongolianMask = SkTEndian_SwapBE32(1 << (81 - 64)); - static const SK_OT_ULONG BrailleMask = SkTEndian_SwapBE32(1 << (82 - 64)); - static const SK_OT_ULONG YiMask = SkTEndian_SwapBE32(1 << (83 - 64)); - static const SK_OT_ULONG Tagalog_Hanunoo_Buhid_TagbanwaMask = SkTEndian_SwapBE32(1 << (84 - 64)); - static const SK_OT_ULONG OldItalicMask = SkTEndian_SwapBE32(1 << (85 - 64)); - static const SK_OT_ULONG GothicMask = SkTEndian_SwapBE32(1 << (86 - 64)); - static const SK_OT_ULONG DeseretMask = SkTEndian_SwapBE32(1 << (87 - 64)); - static const SK_OT_ULONG MusicalSymbolsMask = SkTEndian_SwapBE32(1 << (88 - 64)); - static const SK_OT_ULONG MathematicalAlphanumericSymbolsMask = SkTEndian_SwapBE32(1 << (89 - 64)); - static const SK_OT_ULONG PrivateUseMask = SkTEndian_SwapBE32(1 << (90 - 64)); - static const SK_OT_ULONG VariationSelectorsMask = SkTEndian_SwapBE32(1 << (91 - 64)); - static const SK_OT_ULONG TagsMask = SkTEndian_SwapBE32(1 << (92 - 64)); - static const SK_OT_ULONG LimbuMask = SkTEndian_SwapBE32(1 << (93 - 64)); - static const SK_OT_ULONG TaiLeMask = SkTEndian_SwapBE32(1 << (94 - 64)); - static const SK_OT_ULONG NewTaiLueMask = SkTEndian_SwapBE32(1 << (95 - 64)); + static const SK_OT_ULONG CombiningHalfMarksMask = SkOTSetULONGBit<64 - 64>::value; + static const SK_OT_ULONG CJKCompatibilityFormsMask = SkOTSetULONGBit<65 - 64>::value; + static const SK_OT_ULONG SmallFormVariantsMask = SkOTSetULONGBit<66 - 64>::value; + static const SK_OT_ULONG ArabicPresentationFormsBMask = SkOTSetULONGBit<67 - 64>::value; + static const SK_OT_ULONG HalfwidthAndFullwidthFormsMask = SkOTSetULONGBit<68 - 64>::value; + static const SK_OT_ULONG SpecialsMask = SkOTSetULONGBit<69 - 64>::value; + static const SK_OT_ULONG TibetanMask = SkOTSetULONGBit<70 - 64>::value; + static const SK_OT_ULONG SyriacMask = SkOTSetULONGBit<71 - 64>::value; + static const SK_OT_ULONG ThaanaMask = SkOTSetULONGBit<72 - 64>::value; + static const SK_OT_ULONG SinhalaMask = SkOTSetULONGBit<73 - 64>::value; + static const SK_OT_ULONG MyanmarMask = SkOTSetULONGBit<74 - 64>::value; + static const SK_OT_ULONG EthiopicMask = SkOTSetULONGBit<75 - 64>::value; + static const SK_OT_ULONG CherokeeMask = SkOTSetULONGBit<76 - 64>::value; + static const SK_OT_ULONG UnifiedCanadianSyllabicsMask = SkOTSetULONGBit<77 - 64>::value; + static const SK_OT_ULONG OghamMask = SkOTSetULONGBit<78 - 64>::value; + static const SK_OT_ULONG RunicMask = SkOTSetULONGBit<79 - 64>::value; + static const SK_OT_ULONG KhmerMask = SkOTSetULONGBit<80 - 64>::value; + static const SK_OT_ULONG MongolianMask = SkOTSetULONGBit<81 - 64>::value; + static const SK_OT_ULONG BrailleMask = SkOTSetULONGBit<82 - 64>::value; + static const SK_OT_ULONG YiMask = SkOTSetULONGBit<83 - 64>::value; + static const SK_OT_ULONG Tagalog_Hanunoo_Buhid_TagbanwaMask = SkOTSetULONGBit<84 - 64>::value; + static const SK_OT_ULONG OldItalicMask = SkOTSetULONGBit<85 - 64>::value; + static const SK_OT_ULONG GothicMask = SkOTSetULONGBit<86 - 64>::value; + static const SK_OT_ULONG DeseretMask = SkOTSetULONGBit<87 - 64>::value; + static const SK_OT_ULONG MusicalSymbolsMask = SkOTSetULONGBit<88 - 64>::value; + static const SK_OT_ULONG MathematicalAlphanumericSymbolsMask = SkOTSetULONGBit<89 - 64>::value; + static const SK_OT_ULONG PrivateUseMask = SkOTSetULONGBit<90 - 64>::value; + static const SK_OT_ULONG VariationSelectorsMask = SkOTSetULONGBit<91 - 64>::value; + static const SK_OT_ULONG TagsMask = SkOTSetULONGBit<92 - 64>::value; + static const SK_OT_ULONG LimbuMask = SkOTSetULONGBit<93 - 64>::value; + static const SK_OT_ULONG TaiLeMask = SkOTSetULONGBit<94 - 64>::value; + static const SK_OT_ULONG NewTaiLueMask = SkOTSetULONGBit<95 - 64>::value; }; struct l3 { - static const SK_OT_ULONG BugineseMask = SkTEndian_SwapBE32(1 << (96 - 96)); - static const SK_OT_ULONG GlagoliticMask = SkTEndian_SwapBE32(1 << (97 - 96)); - static const SK_OT_ULONG TifinaghMask = SkTEndian_SwapBE32(1 << (98 - 96)); - static const SK_OT_ULONG YijingHexagramSymbolsMask = SkTEndian_SwapBE32(1 << (99 - 96)); - static const SK_OT_ULONG SylotiNagriMask = SkTEndian_SwapBE32(1 << (100 - 96)); - static const SK_OT_ULONG LinearB_AegeanNumbersMask = SkTEndian_SwapBE32(1 << (101 - 96)); - static const SK_OT_ULONG AncientGreekNumbersMask = SkTEndian_SwapBE32(1 << (102 - 96)); - static const SK_OT_ULONG UgariticMask = SkTEndian_SwapBE32(1 << (103 - 96)); - static const SK_OT_ULONG OldPersianMask = SkTEndian_SwapBE32(1 << (104 - 96)); - static const SK_OT_ULONG ShavianMask = SkTEndian_SwapBE32(1 << (105 - 96)); - static const SK_OT_ULONG OsmanyaMask = SkTEndian_SwapBE32(1 << (106 - 96)); - static const SK_OT_ULONG CypriotSyllabaryMask = SkTEndian_SwapBE32(1 << (107 - 96)); - static const SK_OT_ULONG KharoshthiMask = SkTEndian_SwapBE32(1 << (108 - 96)); - static const SK_OT_ULONG TaiXuanJingSymbolsMask = SkTEndian_SwapBE32(1 << (109 - 96)); - static const SK_OT_ULONG CuneiformMask = SkTEndian_SwapBE32(1 << (110 - 96)); - static const SK_OT_ULONG CountingRodNumeralsMask = SkTEndian_SwapBE32(1 << (111 - 96)); - static const SK_OT_ULONG SundaneseMask = SkTEndian_SwapBE32(1 << (112 - 96)); - static const SK_OT_ULONG LepchaMask = SkTEndian_SwapBE32(1 << (113 - 96)); - static const SK_OT_ULONG OlChikiMask = SkTEndian_SwapBE32(1 << (114 - 96)); - static const SK_OT_ULONG SaurashtraMask = SkTEndian_SwapBE32(1 << (115 - 96)); - static const SK_OT_ULONG KayahLiMask = SkTEndian_SwapBE32(1 << (116 - 96)); - static const SK_OT_ULONG RejangMask = SkTEndian_SwapBE32(1 << (117 - 96)); - static const SK_OT_ULONG ChamMask = SkTEndian_SwapBE32(1 << (118 - 96)); - static const SK_OT_ULONG AncientSymbolsMask = SkTEndian_SwapBE32(1 << (119 - 96)); - static const SK_OT_ULONG PhaistosDiscMask = SkTEndian_SwapBE32(1 << (120 - 96)); - static const SK_OT_ULONG Carian_Lycian_LydianMask = SkTEndian_SwapBE32(1 << (121 - 96)); - static const SK_OT_ULONG DominoTiles_MahjongTilesMask = SkTEndian_SwapBE32(1 << (122 - 96)); + static const SK_OT_ULONG BugineseMask = SkOTSetULONGBit<96 - 96>::value; + static const SK_OT_ULONG GlagoliticMask = SkOTSetULONGBit<97 - 96>::value; + static const SK_OT_ULONG TifinaghMask = SkOTSetULONGBit<98 - 96>::value; + static const SK_OT_ULONG YijingHexagramSymbolsMask = SkOTSetULONGBit<99 - 96>::value; + static const SK_OT_ULONG SylotiNagriMask = SkOTSetULONGBit<100 - 96>::value; + static const SK_OT_ULONG LinearB_AegeanNumbersMask = SkOTSetULONGBit<101 - 96>::value; + static const SK_OT_ULONG AncientGreekNumbersMask = SkOTSetULONGBit<102 - 96>::value; + static const SK_OT_ULONG UgariticMask = SkOTSetULONGBit<103 - 96>::value; + static const SK_OT_ULONG OldPersianMask = SkOTSetULONGBit<104 - 96>::value; + static const SK_OT_ULONG ShavianMask = SkOTSetULONGBit<105 - 96>::value; + static const SK_OT_ULONG OsmanyaMask = SkOTSetULONGBit<106 - 96>::value; + static const SK_OT_ULONG CypriotSyllabaryMask = SkOTSetULONGBit<107 - 96>::value; + static const SK_OT_ULONG KharoshthiMask = SkOTSetULONGBit<108 - 96>::value; + static const SK_OT_ULONG TaiXuanJingSymbolsMask = SkOTSetULONGBit<109 - 96>::value; + static const SK_OT_ULONG CuneiformMask = SkOTSetULONGBit<110 - 96>::value; + static const SK_OT_ULONG CountingRodNumeralsMask = SkOTSetULONGBit<111 - 96>::value; + static const SK_OT_ULONG SundaneseMask = SkOTSetULONGBit<112 - 96>::value; + static const SK_OT_ULONG LepchaMask = SkOTSetULONGBit<113 - 96>::value; + static const SK_OT_ULONG OlChikiMask = SkOTSetULONGBit<114 - 96>::value; + static const SK_OT_ULONG SaurashtraMask = SkOTSetULONGBit<115 - 96>::value; + static const SK_OT_ULONG KayahLiMask = SkOTSetULONGBit<116 - 96>::value; + static const SK_OT_ULONG RejangMask = SkOTSetULONGBit<117 - 96>::value; + static const SK_OT_ULONG ChamMask = SkOTSetULONGBit<118 - 96>::value; + static const SK_OT_ULONG AncientSymbolsMask = SkOTSetULONGBit<119 - 96>::value; + static const SK_OT_ULONG PhaistosDiscMask = SkOTSetULONGBit<120 - 96>::value; + static const SK_OT_ULONG Carian_Lycian_LydianMask = SkOTSetULONGBit<121 - 96>::value; + static const SK_OT_ULONG DominoTiles_MahjongTilesMask = SkOTSetULONGBit<122 - 96>::value; }; SK_OT_ULONG value[4]; } raw; @@ -421,16 +421,16 @@ struct SkOTTableOS2_V4 { UseTypoMetrics) } field; struct Raw { - static const SK_OT_USHORT ItalicMask = SkTEndian_SwapBE16(1 << 0); - static const SK_OT_USHORT UnderscoreMask = SkTEndian_SwapBE16(1 << 1); - static const SK_OT_USHORT NegativeMask = SkTEndian_SwapBE16(1 << 2); - static const SK_OT_USHORT OutlinedMask = SkTEndian_SwapBE16(1 << 3); - static const SK_OT_USHORT StrikeoutMask = SkTEndian_SwapBE16(1 << 4); - static const SK_OT_USHORT BoldMask = SkTEndian_SwapBE16(1 << 5); - static const SK_OT_USHORT RegularMask = SkTEndian_SwapBE16(1 << 6); - static const SK_OT_USHORT UseTypoMetricsMask = SkTEndian_SwapBE16(1 << 7); - static const SK_OT_USHORT WWSMask = SkTEndian_SwapBE16(1 << 8); - static const SK_OT_USHORT ObliqueMask = SkTEndian_SwapBE16(1 << 9); + static const SK_OT_USHORT ItalicMask = SkOTSetUSHORTBit<0>::value; + static const SK_OT_USHORT UnderscoreMask = SkOTSetUSHORTBit<1>::value; + static const SK_OT_USHORT NegativeMask = SkOTSetUSHORTBit<2>::value; + static const SK_OT_USHORT OutlinedMask = SkOTSetUSHORTBit<3>::value; + static const SK_OT_USHORT StrikeoutMask = SkOTSetUSHORTBit<4>::value; + static const SK_OT_USHORT BoldMask = SkOTSetUSHORTBit<5>::value; + static const SK_OT_USHORT RegularMask = SkOTSetUSHORTBit<6>::value; + static const SK_OT_USHORT UseTypoMetricsMask = SkOTSetUSHORTBit<7>::value; + static const SK_OT_USHORT WWSMask = SkOTSetUSHORTBit<8>::value; + static const SK_OT_USHORT ObliqueMask = SkOTSetUSHORTBit<9>::value; SK_OT_USHORT value; } raw; } fsSelection; @@ -529,42 +529,42 @@ struct SkOTTableOS2_V4 { } field; struct Raw { struct l0 { - static const SK_OT_ULONG Latin1_1252Mask = SkTEndian_SwapBE32(1 << 0); - static const SK_OT_ULONG Latin2EasternEurope_1250Mask = SkTEndian_SwapBE32(1 << 1); - static const SK_OT_ULONG Cyrillic_1251Mask = SkTEndian_SwapBE32(1 << 2); - static const SK_OT_ULONG Greek_1253Mask = SkTEndian_SwapBE32(1 << 3); - static const SK_OT_ULONG Turkish_1254Mask = SkTEndian_SwapBE32(1 << 4); - static const SK_OT_ULONG Hebrew_1255Mask = SkTEndian_SwapBE32(1 << 5); - static const SK_OT_ULONG Arabic_1256Mask = SkTEndian_SwapBE32(1 << 6); - static const SK_OT_ULONG WindowsBaltic_1257Mask = SkTEndian_SwapBE32(1 << 7); - static const SK_OT_ULONG Vietnamese_1258Mask = SkTEndian_SwapBE32(1 << 8); - static const SK_OT_ULONG Thai_874Mask = SkTEndian_SwapBE32(1 << 16); - static const SK_OT_ULONG JISJapan_932Mask = SkTEndian_SwapBE32(1 << 17); - static const SK_OT_ULONG ChineseSimplified_936Mask = SkTEndian_SwapBE32(1 << 18); - static const SK_OT_ULONG KoreanWansung_949Mask = SkTEndian_SwapBE32(1 << 19); - static const SK_OT_ULONG ChineseTraditional_950Mask = SkTEndian_SwapBE32(1 << 20); - static const SK_OT_ULONG KoreanJohab_1361Mask = SkTEndian_SwapBE32(1 << 21); - static const SK_OT_ULONG MacintoshCharacterSetMask = SkTEndian_SwapBE32(1 << 29); - static const SK_OT_ULONG OEMCharacterSetMask = SkTEndian_SwapBE32(1 << 30); - static const SK_OT_ULONG SymbolCharacterSetMask = SkTEndian_SwapBE32(1 << 31); + static const SK_OT_ULONG Latin1_1252Mask = SkOTSetULONGBit<0>::value; + static const SK_OT_ULONG Latin2EasternEurope_1250Mask = SkOTSetULONGBit<1>::value; + static const SK_OT_ULONG Cyrillic_1251Mask = SkOTSetULONGBit<2>::value; + static const SK_OT_ULONG Greek_1253Mask = SkOTSetULONGBit<3>::value; + static const SK_OT_ULONG Turkish_1254Mask = SkOTSetULONGBit<4>::value; + static const SK_OT_ULONG Hebrew_1255Mask = SkOTSetULONGBit<5>::value; + static const SK_OT_ULONG Arabic_1256Mask = SkOTSetULONGBit<6>::value; + static const SK_OT_ULONG WindowsBaltic_1257Mask = SkOTSetULONGBit<7>::value; + static const SK_OT_ULONG Vietnamese_1258Mask = SkOTSetULONGBit<8>::value; + static const SK_OT_ULONG Thai_874Mask = SkOTSetULONGBit<16>::value; + static const SK_OT_ULONG JISJapan_932Mask = SkOTSetULONGBit<17>::value; + static const SK_OT_ULONG ChineseSimplified_936Mask = SkOTSetULONGBit<18>::value; + static const SK_OT_ULONG KoreanWansung_949Mask = SkOTSetULONGBit<19>::value; + static const SK_OT_ULONG ChineseTraditional_950Mask = SkOTSetULONGBit<20>::value; + static const SK_OT_ULONG KoreanJohab_1361Mask = SkOTSetULONGBit<21>::value; + static const SK_OT_ULONG MacintoshCharacterSetMask = SkOTSetULONGBit<29>::value; + static const SK_OT_ULONG OEMCharacterSetMask = SkOTSetULONGBit<30>::value; + static const SK_OT_ULONG SymbolCharacterSetMask = SkOTSetULONGBit<31>::value; }; struct l1 { - static const SK_OT_ULONG IBMGreek_869Mask = SkTEndian_SwapBE32(1 << (48 - 32)); - static const SK_OT_ULONG MSDOSRussian_866Mask = SkTEndian_SwapBE32(1 << (49 - 32)); - static const SK_OT_ULONG MSDOSNordic_865Mask = SkTEndian_SwapBE32(1 << (50 - 32)); - static const SK_OT_ULONG Arabic_864Mask = SkTEndian_SwapBE32(1 << (51 - 32)); - static const SK_OT_ULONG MSDOSCanadianFrench_863Mask = SkTEndian_SwapBE32(1 << (52 - 32)); - static const SK_OT_ULONG Hebrew_862Mask = SkTEndian_SwapBE32(1 << (53 - 32)); - static const SK_OT_ULONG MSDOSIcelandic_861Mask = SkTEndian_SwapBE32(1 << (54 - 32)); - static const SK_OT_ULONG MSDOSPortuguese_860Mask = SkTEndian_SwapBE32(1 << (55 - 32)); - static const SK_OT_ULONG IBMTurkish_857Mask = SkTEndian_SwapBE32(1 << (56 - 32)); - static const SK_OT_ULONG IBMCyrillic_855Mask = SkTEndian_SwapBE32(1 << (57 - 32)); - static const SK_OT_ULONG Latin2_852Mask = SkTEndian_SwapBE32(1 << (58 - 32)); - static const SK_OT_ULONG MSDOSBaltic_775Mask = SkTEndian_SwapBE32(1 << (59 - 32)); - static const SK_OT_ULONG Greek_737Mask = SkTEndian_SwapBE32(1 << (60 - 32)); - static const SK_OT_ULONG Arabic_708Mask = SkTEndian_SwapBE32(1 << (61 - 32)); - static const SK_OT_ULONG WELatin1_850Mask = SkTEndian_SwapBE32(1 << (62 - 32)); - static const SK_OT_ULONG US_437Mask = SkTEndian_SwapBE32(1 << (63 - 32)); + static const SK_OT_ULONG IBMGreek_869Mask = SkOTSetULONGBit<48 - 32>::value; + static const SK_OT_ULONG MSDOSRussian_866Mask = SkOTSetULONGBit<49 - 32>::value; + static const SK_OT_ULONG MSDOSNordic_865Mask = SkOTSetULONGBit<50 - 32>::value; + static const SK_OT_ULONG Arabic_864Mask = SkOTSetULONGBit<51 - 32>::value; + static const SK_OT_ULONG MSDOSCanadianFrench_863Mask = SkOTSetULONGBit<52 - 32>::value; + static const SK_OT_ULONG Hebrew_862Mask = SkOTSetULONGBit<53 - 32>::value; + static const SK_OT_ULONG MSDOSIcelandic_861Mask = SkOTSetULONGBit<54 - 32>::value; + static const SK_OT_ULONG MSDOSPortuguese_860Mask = SkOTSetULONGBit<55 - 32>::value; + static const SK_OT_ULONG IBMTurkish_857Mask = SkOTSetULONGBit<56 - 32>::value; + static const SK_OT_ULONG IBMCyrillic_855Mask = SkOTSetULONGBit<57 - 32>::value; + static const SK_OT_ULONG Latin2_852Mask = SkOTSetULONGBit<58 - 32>::value; + static const SK_OT_ULONG MSDOSBaltic_775Mask = SkOTSetULONGBit<59 - 32>::value; + static const SK_OT_ULONG Greek_737Mask = SkOTSetULONGBit<60 - 32>::value; + static const SK_OT_ULONG Arabic_708Mask = SkOTSetULONGBit<61 - 32>::value; + static const SK_OT_ULONG WELatin1_850Mask = SkOTSetULONGBit<62 - 32>::value; + static const SK_OT_ULONG US_437Mask = SkOTSetULONGBit<63 - 32>::value; }; SK_OT_ULONG value[2]; } raw; diff --git a/src/sfnt/SkOTTable_OS_2_VA.h b/src/sfnt/SkOTTable_OS_2_VA.h index 146e83b67e..bc45da2021 100644 --- a/src/sfnt/SkOTTable_OS_2_VA.h +++ b/src/sfnt/SkOTTable_OS_2_VA.h @@ -76,10 +76,10 @@ struct SkOTTableOS2_VA { Reserved07) } field; struct Raw { - static const SK_OT_USHORT Installable = SkTEndian_SwapBE16(0); - static const SK_OT_USHORT RestrictedMask = SkTEndian_SwapBE16(1 << 1); - static const SK_OT_USHORT PreviewPrintMask = SkTEndian_SwapBE16(1 << 2); - static const SK_OT_USHORT EditableMask = SkTEndian_SwapBE16(1 << 3); + static const SK_OT_USHORT Installable = 0; + static const SK_OT_USHORT RestrictedMask = SkOTSetUSHORTBit<1>::value; + static const SK_OT_USHORT PreviewPrintMask = SkOTSetUSHORTBit<2>::value; + static const SK_OT_USHORT EditableMask = SkOTSetUSHORTBit<3>::value; SK_OT_USHORT value; } raw; } fsType; @@ -121,12 +121,12 @@ struct SkOTTableOS2_VA { Reserved07) } field; struct Raw { - static const SK_OT_USHORT ItalicMask = SkTEndian_SwapBE16(1 << 0); - static const SK_OT_USHORT UnderscoreMask = SkTEndian_SwapBE16(1 << 1); - static const SK_OT_USHORT NegativeMask = SkTEndian_SwapBE16(1 << 2); - static const SK_OT_USHORT OutlinedMask = SkTEndian_SwapBE16(1 << 3); - static const SK_OT_USHORT StrikeoutMask = SkTEndian_SwapBE16(1 << 4); - static const SK_OT_USHORT BoldMask = SkTEndian_SwapBE16(1 << 5); + static const SK_OT_USHORT ItalicMask = SkOTSetUSHORTBit<0>::value; + static const SK_OT_USHORT UnderscoreMask = SkOTSetUSHORTBit<1>::value; + static const SK_OT_USHORT NegativeMask = SkOTSetUSHORTBit<2>::value; + static const SK_OT_USHORT OutlinedMask = SkOTSetUSHORTBit<3>::value; + static const SK_OT_USHORT StrikeoutMask = SkOTSetUSHORTBit<4>::value; + static const SK_OT_USHORT BoldMask = SkOTSetUSHORTBit<5>::value; SK_OT_USHORT value; } raw; } fsSelection; -- cgit v1.2.3