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