1*c8dee2aaSAndroid Build Coastguard Worker /* 2*c8dee2aaSAndroid Build Coastguard Worker * Copyright 2012 Google Inc. 3*c8dee2aaSAndroid Build Coastguard Worker * 4*c8dee2aaSAndroid Build Coastguard Worker * Use of this source code is governed by a BSD-style license that can be 5*c8dee2aaSAndroid Build Coastguard Worker * found in the LICENSE file. 6*c8dee2aaSAndroid Build Coastguard Worker */ 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard Worker #ifndef SkIBMFamilyClass_DEFINED 9*c8dee2aaSAndroid Build Coastguard Worker #define SkIBMFamilyClass_DEFINED 10*c8dee2aaSAndroid Build Coastguard Worker 11*c8dee2aaSAndroid Build Coastguard Worker #include "src/sfnt/SkOTTableTypes.h" 12*c8dee2aaSAndroid Build Coastguard Worker 13*c8dee2aaSAndroid Build Coastguard Worker #pragma pack(push, 1) 14*c8dee2aaSAndroid Build Coastguard Worker 15*c8dee2aaSAndroid Build Coastguard Worker struct SkIBMFamilyClass { 16*c8dee2aaSAndroid Build Coastguard Worker enum class Class : SK_OT_BYTE { 17*c8dee2aaSAndroid Build Coastguard Worker NoClassification = 0, 18*c8dee2aaSAndroid Build Coastguard Worker OldstyleSerifs = 1, 19*c8dee2aaSAndroid Build Coastguard Worker TransitionalSerifs = 2, 20*c8dee2aaSAndroid Build Coastguard Worker ModernSerifs = 3, 21*c8dee2aaSAndroid Build Coastguard Worker ClarendonSerifs = 4, 22*c8dee2aaSAndroid Build Coastguard Worker SlabSerifs = 5, 23*c8dee2aaSAndroid Build Coastguard Worker //6 reserved for future use 24*c8dee2aaSAndroid Build Coastguard Worker FreeformSerifs = 7, 25*c8dee2aaSAndroid Build Coastguard Worker SansSerif = 8, 26*c8dee2aaSAndroid Build Coastguard Worker Ornamentals = 9, 27*c8dee2aaSAndroid Build Coastguard Worker Scripts = 10, 28*c8dee2aaSAndroid Build Coastguard Worker //11 reserved for future use 29*c8dee2aaSAndroid Build Coastguard Worker Symbolic = 12, 30*c8dee2aaSAndroid Build Coastguard Worker //13-15 reserved for future use 31*c8dee2aaSAndroid Build Coastguard Worker } familyClass; 32*c8dee2aaSAndroid Build Coastguard Worker union SubClass { 33*c8dee2aaSAndroid Build Coastguard Worker enum class OldstyleSerifs : SK_OT_BYTE { 34*c8dee2aaSAndroid Build Coastguard Worker NoClassification = 0, 35*c8dee2aaSAndroid Build Coastguard Worker IBMRoundedLegibility = 1, 36*c8dee2aaSAndroid Build Coastguard Worker Garalde = 2, 37*c8dee2aaSAndroid Build Coastguard Worker Venetian = 3, 38*c8dee2aaSAndroid Build Coastguard Worker ModifiedVenetian = 4, 39*c8dee2aaSAndroid Build Coastguard Worker DutchModern = 5, 40*c8dee2aaSAndroid Build Coastguard Worker DutchTraditional = 6, 41*c8dee2aaSAndroid Build Coastguard Worker Contemporary = 7, 42*c8dee2aaSAndroid Build Coastguard Worker Calligraphic = 8, 43*c8dee2aaSAndroid Build Coastguard Worker //9-14 reserved for future use 44*c8dee2aaSAndroid Build Coastguard Worker Miscellaneous = 15, 45*c8dee2aaSAndroid Build Coastguard Worker } oldstyleSerifs; 46*c8dee2aaSAndroid Build Coastguard Worker enum class TransitionalSerifs : SK_OT_BYTE { 47*c8dee2aaSAndroid Build Coastguard Worker NoClassification = 0, 48*c8dee2aaSAndroid Build Coastguard Worker DirectLine = 1, 49*c8dee2aaSAndroid Build Coastguard Worker Script = 2, 50*c8dee2aaSAndroid Build Coastguard Worker //3-14 reserved for future use 51*c8dee2aaSAndroid Build Coastguard Worker Miscellaneous = 15, 52*c8dee2aaSAndroid Build Coastguard Worker } transitionalSerifs; 53*c8dee2aaSAndroid Build Coastguard Worker enum class ModernSerifs : SK_OT_BYTE { 54*c8dee2aaSAndroid Build Coastguard Worker NoClassification = 0, 55*c8dee2aaSAndroid Build Coastguard Worker Italian = 1, 56*c8dee2aaSAndroid Build Coastguard Worker Script = 2, 57*c8dee2aaSAndroid Build Coastguard Worker //3-14 reserved for future use 58*c8dee2aaSAndroid Build Coastguard Worker Miscellaneous = 15, 59*c8dee2aaSAndroid Build Coastguard Worker } modernSerifs; 60*c8dee2aaSAndroid Build Coastguard Worker enum class ClarendonSerifs : SK_OT_BYTE { 61*c8dee2aaSAndroid Build Coastguard Worker NoClassification = 0, 62*c8dee2aaSAndroid Build Coastguard Worker Clarendon = 1, 63*c8dee2aaSAndroid Build Coastguard Worker Modern = 2, 64*c8dee2aaSAndroid Build Coastguard Worker Traditional = 3, 65*c8dee2aaSAndroid Build Coastguard Worker Newspaper = 4, 66*c8dee2aaSAndroid Build Coastguard Worker StubSerif = 5, 67*c8dee2aaSAndroid Build Coastguard Worker Monotone = 6, 68*c8dee2aaSAndroid Build Coastguard Worker Typewriter = 7, 69*c8dee2aaSAndroid Build Coastguard Worker //8-14 reserved for future use 70*c8dee2aaSAndroid Build Coastguard Worker Miscellaneous = 15, 71*c8dee2aaSAndroid Build Coastguard Worker } clarendonSerifs; 72*c8dee2aaSAndroid Build Coastguard Worker enum class SlabSerifs : SK_OT_BYTE { 73*c8dee2aaSAndroid Build Coastguard Worker NoClassification = 0, 74*c8dee2aaSAndroid Build Coastguard Worker Monotone = 1, 75*c8dee2aaSAndroid Build Coastguard Worker Humanist = 2, 76*c8dee2aaSAndroid Build Coastguard Worker Geometric = 3, 77*c8dee2aaSAndroid Build Coastguard Worker Swiss = 4, 78*c8dee2aaSAndroid Build Coastguard Worker Typewriter = 5, 79*c8dee2aaSAndroid Build Coastguard Worker //6-14 reserved for future use 80*c8dee2aaSAndroid Build Coastguard Worker Miscellaneous = 15, 81*c8dee2aaSAndroid Build Coastguard Worker } slabSerifs; 82*c8dee2aaSAndroid Build Coastguard Worker enum class FreeformSerifs : SK_OT_BYTE { 83*c8dee2aaSAndroid Build Coastguard Worker NoClassification = 0, 84*c8dee2aaSAndroid Build Coastguard Worker Modern = 1, 85*c8dee2aaSAndroid Build Coastguard Worker //2-14 reserved for future use 86*c8dee2aaSAndroid Build Coastguard Worker Miscellaneous = 15, 87*c8dee2aaSAndroid Build Coastguard Worker } freeformSerifs; 88*c8dee2aaSAndroid Build Coastguard Worker enum class SansSerif : SK_OT_BYTE { 89*c8dee2aaSAndroid Build Coastguard Worker NoClassification = 0, 90*c8dee2aaSAndroid Build Coastguard Worker IBMNeoGrotesqueGothic = 1, 91*c8dee2aaSAndroid Build Coastguard Worker Humanist = 2, 92*c8dee2aaSAndroid Build Coastguard Worker LowXRoundGeometric = 3, 93*c8dee2aaSAndroid Build Coastguard Worker HighXRoundGeometric = 4, 94*c8dee2aaSAndroid Build Coastguard Worker NeoGrotesqueGothic = 5, 95*c8dee2aaSAndroid Build Coastguard Worker ModifiedNeoGrotesqueGothic = 6, 96*c8dee2aaSAndroid Build Coastguard Worker //7-8 reserved for future use 97*c8dee2aaSAndroid Build Coastguard Worker TypewriterGothic = 9, 98*c8dee2aaSAndroid Build Coastguard Worker Matrix = 10, 99*c8dee2aaSAndroid Build Coastguard Worker //11-14 reserved for future use 100*c8dee2aaSAndroid Build Coastguard Worker Miscellaneous = 15, 101*c8dee2aaSAndroid Build Coastguard Worker } sansSerif; 102*c8dee2aaSAndroid Build Coastguard Worker enum class Ornamentals : SK_OT_BYTE { 103*c8dee2aaSAndroid Build Coastguard Worker NoClassification = 0, 104*c8dee2aaSAndroid Build Coastguard Worker Engraver = 1, 105*c8dee2aaSAndroid Build Coastguard Worker BlackLetter = 2, 106*c8dee2aaSAndroid Build Coastguard Worker Decorative = 3, 107*c8dee2aaSAndroid Build Coastguard Worker ThreeDimensional = 4, 108*c8dee2aaSAndroid Build Coastguard Worker //5-14 reserved for future use 109*c8dee2aaSAndroid Build Coastguard Worker Miscellaneous = 15, 110*c8dee2aaSAndroid Build Coastguard Worker } ornamentals; 111*c8dee2aaSAndroid Build Coastguard Worker enum class Scripts : SK_OT_BYTE { 112*c8dee2aaSAndroid Build Coastguard Worker NoClassification = 0, 113*c8dee2aaSAndroid Build Coastguard Worker Uncial = 1, 114*c8dee2aaSAndroid Build Coastguard Worker Brush_Joined = 2, 115*c8dee2aaSAndroid Build Coastguard Worker Formal_Joined = 3, 116*c8dee2aaSAndroid Build Coastguard Worker Monotone_Joined = 4, 117*c8dee2aaSAndroid Build Coastguard Worker Calligraphic = 5, 118*c8dee2aaSAndroid Build Coastguard Worker Brush_Unjoined = 6, 119*c8dee2aaSAndroid Build Coastguard Worker Formal_Unjoined = 7, 120*c8dee2aaSAndroid Build Coastguard Worker Monotone_Unjoined = 8, 121*c8dee2aaSAndroid Build Coastguard Worker //9-14 reserved for future use 122*c8dee2aaSAndroid Build Coastguard Worker Miscellaneous = 15, 123*c8dee2aaSAndroid Build Coastguard Worker } scripts; 124*c8dee2aaSAndroid Build Coastguard Worker enum class Symbolic : SK_OT_BYTE { 125*c8dee2aaSAndroid Build Coastguard Worker NoClassification = 0, 126*c8dee2aaSAndroid Build Coastguard Worker //1-2 reserved for future use 127*c8dee2aaSAndroid Build Coastguard Worker MixedSerif = 3, 128*c8dee2aaSAndroid Build Coastguard Worker //4-5 reserved for future use 129*c8dee2aaSAndroid Build Coastguard Worker OldstyleSerif = 6, 130*c8dee2aaSAndroid Build Coastguard Worker NeoGrotesqueSansSerif = 7, 131*c8dee2aaSAndroid Build Coastguard Worker //8-14 reserved for future use 132*c8dee2aaSAndroid Build Coastguard Worker Miscellaneous = 15, 133*c8dee2aaSAndroid Build Coastguard Worker } symbolic; 134*c8dee2aaSAndroid Build Coastguard Worker } familySubClass; 135*c8dee2aaSAndroid Build Coastguard Worker }; 136*c8dee2aaSAndroid Build Coastguard Worker 137*c8dee2aaSAndroid Build Coastguard Worker #pragma pack(pop) 138*c8dee2aaSAndroid Build Coastguard Worker 139*c8dee2aaSAndroid Build Coastguard Worker 140*c8dee2aaSAndroid Build Coastguard Worker static_assert(sizeof(SkIBMFamilyClass) == 2, "sizeof_SkIBMFamilyClass_not_2"); 141*c8dee2aaSAndroid Build Coastguard Worker 142*c8dee2aaSAndroid Build Coastguard Worker #endif 143