| /* |
| * Copyright 2012 Google Inc. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #ifndef SkIBMFamilyClass_DEFINED |
| #define SkIBMFamilyClass_DEFINED |
| |
| #include "SkOTTableTypes.h" |
| #include "SkTypedEnum.h" |
| |
| #pragma pack(push, 1) |
| |
| struct SkIBMFamilyClass { |
| SK_TYPED_ENUM(Class, SK_OT_BYTE, |
| ((NoClassification, 0)) |
| ((OldstyleSerifs, 1)) |
| ((TransitionalSerifs, 2)) |
| ((ModernSerifs, 3)) |
| ((ClarendonSerifs, 4)) |
| ((SlabSerifs, 5)) |
| //6 reserved for future use |
| ((FreeformSerifs, 7)) |
| ((SansSerif, 8)) |
| ((Ornamentals, 9)) |
| ((Scripts, 10)) |
| //11 reserved for future use |
| ((Symbolic, 12)) |
| //13-15 reserved for future use |
| SK_SEQ_END, |
| (familyClass)SK_SEQ_END) |
| union SubClass { |
| struct OldstyleSerifs { |
| SK_TYPED_ENUM(Value, SK_OT_BYTE, |
| ((NoClassification, 0)) |
| ((IBMRoundedLegibility, 1)) |
| ((Garalde, 2)) |
| ((Venetian, 3)) |
| ((ModifiedVenetian, 4)) |
| ((DutchModern, 5)) |
| ((DutchTraditional, 6)) |
| ((Contemporary, 7)) |
| ((Calligraphic, 8)) |
| //9-14 reserved for future use |
| ((Miscellaneous, 15)) |
| SK_SEQ_END, |
| (value)SK_SEQ_END) |
| } oldstyleSerifs; |
| struct TransitionalSerifs { |
| SK_TYPED_ENUM(Value, SK_OT_BYTE, |
| ((NoClassification, 0)) |
| ((DirectLine, 1)) |
| ((Script, 2)) |
| //3-14 reserved for future use |
| ((Miscellaneous, 15)) |
| SK_SEQ_END, |
| (value)SK_SEQ_END) |
| } transitionalSerifs; |
| struct ModernSerifs { |
| SK_TYPED_ENUM(Value, SK_OT_BYTE, |
| ((NoClassification, 0)) |
| ((Italian, 1)) |
| ((Script, 2)) |
| //3-14 reserved for future use |
| ((Miscellaneous, 15)) |
| SK_SEQ_END, |
| (value)SK_SEQ_END) |
| } modernSerifs; |
| struct ClarendonSerifs { |
| SK_TYPED_ENUM(Value, SK_OT_BYTE, |
| ((NoClassification, 0)) |
| ((Clarendon, 1)) |
| ((Modern, 2)) |
| ((Traditional, 3)) |
| ((Newspaper, 4)) |
| ((StubSerif, 5)) |
| ((Monotone, 6)) |
| ((Typewriter, 7)) |
| //8-14 reserved for future use |
| ((Miscellaneous, 15)) |
| SK_SEQ_END, |
| (value)SK_SEQ_END) |
| } clarendonSerifs; |
| struct SlabSerifs { |
| SK_TYPED_ENUM(Value, SK_OT_BYTE, |
| ((NoClassification, 0)) |
| ((Monotone, 1)) |
| ((Humanist, 2)) |
| ((Geometric, 3)) |
| ((Swiss, 4)) |
| ((Typewriter, 5)) |
| //6-14 reserved for future use |
| ((Miscellaneous, 15)) |
| SK_SEQ_END, |
| (value)SK_SEQ_END) |
| } slabSerifs; |
| struct FreeformSerifs { |
| SK_TYPED_ENUM(Value, SK_OT_BYTE, |
| ((NoClassification, 0)) |
| ((Modern, 1)) |
| //2-14 reserved for future use |
| ((Miscellaneous, 15)) |
| SK_SEQ_END, |
| (value)SK_SEQ_END) |
| } freeformSerifs; |
| struct SansSerif { |
| SK_TYPED_ENUM(Value, SK_OT_BYTE, |
| ((NoClassification, 0)) |
| ((IBMNeoGrotesqueGothic, 1)) |
| ((Humanist, 2)) |
| ((LowXRoundGeometric, 3)) |
| ((HighXRoundGeometric, 4)) |
| ((NeoGrotesqueGothic, 5)) |
| ((ModifiedNeoGrotesqueGothic, 6)) |
| //7-8 reserved for future use |
| ((TypewriterGothic, 9)) |
| ((Matrix, 10)) |
| //11-14 reserved for future use |
| ((Miscellaneous, 15)) |
| SK_SEQ_END, |
| (value)SK_SEQ_END) |
| } sansSerif; |
| struct Ornamentals { |
| SK_TYPED_ENUM(Value, SK_OT_BYTE, |
| ((NoClassification, 0)) |
| ((Engraver, 1)) |
| ((BlackLetter, 2)) |
| ((Decorative, 3)) |
| ((ThreeDimensional, 4)) |
| //5-14 reserved for future use |
| ((Miscellaneous, 15)) |
| SK_SEQ_END, |
| (value)SK_SEQ_END) |
| } ornamentals; |
| struct Scripts { |
| SK_TYPED_ENUM(Value, SK_OT_BYTE, |
| ((NoClassification, 0)) |
| ((Uncial, 1)) |
| ((Brush_Joined, 2)) |
| ((Formal_Joined, 3)) |
| ((Monotone_Joined, 4)) |
| ((Calligraphic, 5)) |
| ((Brush_Unjoined, 6)) |
| ((Formal_Unjoined, 7)) |
| ((Monotone_Unjoined, 8)) |
| //9-14 reserved for future use |
| ((Miscellaneous, 15)) |
| SK_SEQ_END, |
| (value)SK_SEQ_END) |
| } scripts; |
| struct Symbolic { |
| SK_TYPED_ENUM(Value, SK_OT_BYTE, |
| ((NoClassification, 0)) |
| //1-2 reserved for future use |
| ((MixedSerif, 3)) |
| //4-5 reserved for future use |
| ((OldstyleSerif, 6)) |
| ((NeoGrotesqueSansSerif, 7)) |
| //8-14 reserved for future use |
| ((Miscellaneous, 15)) |
| SK_SEQ_END, |
| (value)SK_SEQ_END) |
| } symbolic; |
| } familySubClass; |
| }; |
| |
| #pragma pack(pop) |
| |
| |
| static_assert(sizeof(SkIBMFamilyClass) == 2, "sizeof_SkIBMFamilyClass_not_2"); |
| |
| #endif |