xref: /aosp_15_r20/external/skia/src/sfnt/SkIBMFamilyClass.h (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
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