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