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 SkPanose_DEFINED
9cb93a386Sopenharmony_ci#define SkPanose_DEFINED
10cb93a386Sopenharmony_ci
11cb93a386Sopenharmony_ci#include "src/sfnt/SkOTTableTypes.h"
12cb93a386Sopenharmony_ci
13cb93a386Sopenharmony_ci#pragma pack(push, 1)
14cb93a386Sopenharmony_ci
15cb93a386Sopenharmony_cistruct SkPanose {
16cb93a386Sopenharmony_ci    //This value changes the meaning of the following 9 bytes.
17cb93a386Sopenharmony_ci    enum class FamilyType : SK_OT_BYTE {
18cb93a386Sopenharmony_ci        Any = 0,
19cb93a386Sopenharmony_ci        NoFit = 1,
20cb93a386Sopenharmony_ci        TextAndDisplay = 2,
21cb93a386Sopenharmony_ci        Script = 3,
22cb93a386Sopenharmony_ci        Decorative = 4,
23cb93a386Sopenharmony_ci        Pictoral = 5,
24cb93a386Sopenharmony_ci    } bFamilyType;
25cb93a386Sopenharmony_ci
26cb93a386Sopenharmony_ci    union Data {
27cb93a386Sopenharmony_ci        struct TextAndDisplay {
28cb93a386Sopenharmony_ci            enum class SerifStyle : SK_OT_BYTE {
29cb93a386Sopenharmony_ci                Any = 0,
30cb93a386Sopenharmony_ci                NoFit = 1,
31cb93a386Sopenharmony_ci                Cove = 2,
32cb93a386Sopenharmony_ci                ObtuseCove = 3,
33cb93a386Sopenharmony_ci                SquareCove = 4,
34cb93a386Sopenharmony_ci                ObtuseSquareCove = 5,
35cb93a386Sopenharmony_ci                Square = 6,
36cb93a386Sopenharmony_ci                Thin = 7,
37cb93a386Sopenharmony_ci                Bone = 8,
38cb93a386Sopenharmony_ci                Exaggerated = 9,
39cb93a386Sopenharmony_ci                Triangle = 10,
40cb93a386Sopenharmony_ci                NormalSans = 11,
41cb93a386Sopenharmony_ci                ObtuseSans = 12,
42cb93a386Sopenharmony_ci                PerpSans = 13,
43cb93a386Sopenharmony_ci                Flared = 14,
44cb93a386Sopenharmony_ci                Rounded = 15,
45cb93a386Sopenharmony_ci            } bSerifStyle;
46cb93a386Sopenharmony_ci
47cb93a386Sopenharmony_ci            enum class Weight : SK_OT_BYTE {
48cb93a386Sopenharmony_ci                Any = 0,
49cb93a386Sopenharmony_ci                NoFit = 1,
50cb93a386Sopenharmony_ci                VeryLight = 2,
51cb93a386Sopenharmony_ci                Light = 3,
52cb93a386Sopenharmony_ci                Thin = 4,
53cb93a386Sopenharmony_ci                Book = 5,
54cb93a386Sopenharmony_ci                Medium = 6,
55cb93a386Sopenharmony_ci                Demi = 7,
56cb93a386Sopenharmony_ci                Bold = 8,
57cb93a386Sopenharmony_ci                Heavy = 9,
58cb93a386Sopenharmony_ci                Black = 10,
59cb93a386Sopenharmony_ci                ExtraBlack = 11,
60cb93a386Sopenharmony_ci            } bWeight;
61cb93a386Sopenharmony_ci
62cb93a386Sopenharmony_ci            enum class Proportion : SK_OT_BYTE {
63cb93a386Sopenharmony_ci                Any = 0,
64cb93a386Sopenharmony_ci                NoFit = 1,
65cb93a386Sopenharmony_ci                OldStyle = 2,
66cb93a386Sopenharmony_ci                Modern = 3,
67cb93a386Sopenharmony_ci                EvenWidth = 4,
68cb93a386Sopenharmony_ci                Expanded = 5,
69cb93a386Sopenharmony_ci                Condensed = 6,
70cb93a386Sopenharmony_ci                VeryExpanded = 7,
71cb93a386Sopenharmony_ci                VeryCondensed = 8,
72cb93a386Sopenharmony_ci                Monospaced = 9,
73cb93a386Sopenharmony_ci            } bProportion;
74cb93a386Sopenharmony_ci
75cb93a386Sopenharmony_ci            enum class Contrast : SK_OT_BYTE {
76cb93a386Sopenharmony_ci                Any = 0,
77cb93a386Sopenharmony_ci                NoFit = 1,
78cb93a386Sopenharmony_ci                None = 2,
79cb93a386Sopenharmony_ci                VeryLow = 3,
80cb93a386Sopenharmony_ci                Low = 4,
81cb93a386Sopenharmony_ci                MediumLow = 5,
82cb93a386Sopenharmony_ci                Medium = 6,
83cb93a386Sopenharmony_ci                MediumHigh = 7,
84cb93a386Sopenharmony_ci                High = 8,
85cb93a386Sopenharmony_ci                VeryHigh = 9,
86cb93a386Sopenharmony_ci            } bContrast;
87cb93a386Sopenharmony_ci
88cb93a386Sopenharmony_ci#ifdef SK_WIN_PANOSE
89cb93a386Sopenharmony_ci            //This is what Windows (and FontForge and Apple TT spec) define.
90cb93a386Sopenharmony_ci            //The Impact font uses 9.
91cb93a386Sopenharmony_ci            enum class StrokeVariation : SK_OT_BYTE {
92cb93a386Sopenharmony_ci                Any = 0,
93cb93a386Sopenharmony_ci                NoFit = 1,
94cb93a386Sopenharmony_ci                GradualDiagonal = 2,
95cb93a386Sopenharmony_ci                GradualTransitional = 3,
96cb93a386Sopenharmony_ci                GradualVertical = 4,
97cb93a386Sopenharmony_ci                GradualHorizontal = 5,
98cb93a386Sopenharmony_ci                RapidVertical = 6,
99cb93a386Sopenharmony_ci                RapidHorizontal = 7,
100cb93a386Sopenharmony_ci                InstantVertical = 8,
101cb93a386Sopenharmony_ci            } bStrokeVariation;
102cb93a386Sopenharmony_ci#else
103cb93a386Sopenharmony_ci            //Stroke variation description in OT OS/2 ver0,ver1 is incorrect.
104cb93a386Sopenharmony_ci            //This is what HP Panose says.
105cb93a386Sopenharmony_ci            enum class StrokeVariation : SK_OT_BYTE {
106cb93a386Sopenharmony_ci                Any = 0,
107cb93a386Sopenharmony_ci                NoFit = 1,
108cb93a386Sopenharmony_ci                NoVariation = 2,
109cb93a386Sopenharmony_ci                Gradual_Diagonal = 3,
110cb93a386Sopenharmony_ci                Gradual_Transitional = 4,
111cb93a386Sopenharmony_ci                Gradual_Vertical = 5,
112cb93a386Sopenharmony_ci                Gradual_Horizontal = 6,
113cb93a386Sopenharmony_ci                Rapid_Vertical = 7,
114cb93a386Sopenharmony_ci                Rapid_Horizontal = 8,
115cb93a386Sopenharmony_ci                Instant_Vertical = 9,
116cb93a386Sopenharmony_ci                Instant_Horizontal = 10,
117cb93a386Sopenharmony_ci            } bStrokeVariation;
118cb93a386Sopenharmony_ci#endif
119cb93a386Sopenharmony_ci
120cb93a386Sopenharmony_ci            enum class ArmStyle : SK_OT_BYTE {
121cb93a386Sopenharmony_ci                Any = 0,
122cb93a386Sopenharmony_ci                NoFit = 1,
123cb93a386Sopenharmony_ci                StraightArms_Horizontal = 2,
124cb93a386Sopenharmony_ci                StraightArms_Wedge = 3,
125cb93a386Sopenharmony_ci                StraightArms_Vertical = 4,
126cb93a386Sopenharmony_ci                StraightArms_SingleSerif = 5,
127cb93a386Sopenharmony_ci                StraightArms_DoubleSerif = 6,
128cb93a386Sopenharmony_ci                NonStraightArms_Horizontal = 7,
129cb93a386Sopenharmony_ci                NonStraightArms_Wedge = 8,
130cb93a386Sopenharmony_ci                NonStraightArms_Vertical = 9,
131cb93a386Sopenharmony_ci                NonStraightArms_SingleSerif = 10,
132cb93a386Sopenharmony_ci                NonStraightArms_DoubleSerif = 11,
133cb93a386Sopenharmony_ci            } bArmStyle;
134cb93a386Sopenharmony_ci
135cb93a386Sopenharmony_ci            enum class Letterform : SK_OT_BYTE {
136cb93a386Sopenharmony_ci                Any = 0,
137cb93a386Sopenharmony_ci                NoFit = 1,
138cb93a386Sopenharmony_ci                Normal_Contact = 2,
139cb93a386Sopenharmony_ci                Normal_Weighted = 3,
140cb93a386Sopenharmony_ci                Normal_Boxed = 4,
141cb93a386Sopenharmony_ci                Normal_Flattened = 5,
142cb93a386Sopenharmony_ci                Normal_Rounded = 6,
143cb93a386Sopenharmony_ci                Normal_OffCenter = 7,
144cb93a386Sopenharmony_ci                Normal_Square = 8,
145cb93a386Sopenharmony_ci                Oblique_Contact = 9,
146cb93a386Sopenharmony_ci                Oblique_Weighted = 10,
147cb93a386Sopenharmony_ci                Oblique_Boxed = 11,
148cb93a386Sopenharmony_ci                Oblique_Flattened = 12,
149cb93a386Sopenharmony_ci                Oblique_Rounded = 13,
150cb93a386Sopenharmony_ci                Oblique_OffCenter = 14,
151cb93a386Sopenharmony_ci                Oblique_Square = 15,
152cb93a386Sopenharmony_ci            } bLetterform;
153cb93a386Sopenharmony_ci
154cb93a386Sopenharmony_ci            enum class Midline : SK_OT_BYTE {
155cb93a386Sopenharmony_ci                Any = 0,
156cb93a386Sopenharmony_ci                NoFit = 1,
157cb93a386Sopenharmony_ci                Standard_Trimmed = 2,
158cb93a386Sopenharmony_ci                Standard_Pointed = 3,
159cb93a386Sopenharmony_ci                Standard_Serifed = 4,
160cb93a386Sopenharmony_ci                High_Trimmed = 5,
161cb93a386Sopenharmony_ci                High_Pointed = 6,
162cb93a386Sopenharmony_ci                High_Serifed = 7,
163cb93a386Sopenharmony_ci                Constant_Trimmed = 8,
164cb93a386Sopenharmony_ci                Constant_Pointed = 9,
165cb93a386Sopenharmony_ci                Constant_Serifed = 10,
166cb93a386Sopenharmony_ci                Low_Trimmed = 11,
167cb93a386Sopenharmony_ci                Low_Pointed = 12,
168cb93a386Sopenharmony_ci                Low_Serifed = 13,
169cb93a386Sopenharmony_ci            } bMidline;
170cb93a386Sopenharmony_ci
171cb93a386Sopenharmony_ci            enum class XHeight : SK_OT_BYTE {
172cb93a386Sopenharmony_ci                Any = 0,
173cb93a386Sopenharmony_ci                NoFit = 1,
174cb93a386Sopenharmony_ci                Constant_Small = 2,
175cb93a386Sopenharmony_ci                Constant_Standard = 3,
176cb93a386Sopenharmony_ci                Constant_Large = 4,
177cb93a386Sopenharmony_ci                Ducking_Small = 5,
178cb93a386Sopenharmony_ci                Ducking_Standard = 6,
179cb93a386Sopenharmony_ci                Ducking_Large = 7,
180cb93a386Sopenharmony_ci            } bXHeight;
181cb93a386Sopenharmony_ci        } textAndDisplay;
182cb93a386Sopenharmony_ci
183cb93a386Sopenharmony_ci        struct Script {
184cb93a386Sopenharmony_ci            enum class ToolKind : SK_OT_BYTE {
185cb93a386Sopenharmony_ci                Any = 0,
186cb93a386Sopenharmony_ci                NoFit = 1,
187cb93a386Sopenharmony_ci                FlatNib = 2,
188cb93a386Sopenharmony_ci                PressurePoint = 3,
189cb93a386Sopenharmony_ci                Engraved = 4,
190cb93a386Sopenharmony_ci                Ball = 5,
191cb93a386Sopenharmony_ci                Brush = 6,
192cb93a386Sopenharmony_ci                Rough = 7,
193cb93a386Sopenharmony_ci                FeltPen = 8,
194cb93a386Sopenharmony_ci                WildBrush = 9,
195cb93a386Sopenharmony_ci            } bToolKind;
196cb93a386Sopenharmony_ci
197cb93a386Sopenharmony_ci            enum class Weight : SK_OT_BYTE {
198cb93a386Sopenharmony_ci                Any = 0,
199cb93a386Sopenharmony_ci                NoFit = 1,
200cb93a386Sopenharmony_ci                VeryLight = 2,
201cb93a386Sopenharmony_ci                Light = 3,
202cb93a386Sopenharmony_ci                Thin = 4,
203cb93a386Sopenharmony_ci                Book = 5,
204cb93a386Sopenharmony_ci                Medium = 6,
205cb93a386Sopenharmony_ci                Demi = 7,
206cb93a386Sopenharmony_ci                Bold = 8,
207cb93a386Sopenharmony_ci                Heavy = 9,
208cb93a386Sopenharmony_ci                Black = 10,
209cb93a386Sopenharmony_ci                ExtraBlack = 11,
210cb93a386Sopenharmony_ci            } bWeight;
211cb93a386Sopenharmony_ci
212cb93a386Sopenharmony_ci            enum class Spacing : SK_OT_BYTE {
213cb93a386Sopenharmony_ci                Any = 0,
214cb93a386Sopenharmony_ci                NoFit = 1,
215cb93a386Sopenharmony_ci                ProportionalSpaced = 2,
216cb93a386Sopenharmony_ci                Monospaced = 3,
217cb93a386Sopenharmony_ci            } bSpacing;
218cb93a386Sopenharmony_ci
219cb93a386Sopenharmony_ci            enum class AspectRatio : SK_OT_BYTE {
220cb93a386Sopenharmony_ci                Any = 0,
221cb93a386Sopenharmony_ci                NoFit = 1,
222cb93a386Sopenharmony_ci                VeryCondensed = 2,
223cb93a386Sopenharmony_ci                Condensed = 3,
224cb93a386Sopenharmony_ci                Normal = 4,
225cb93a386Sopenharmony_ci                Expanded = 5,
226cb93a386Sopenharmony_ci                VeryExpanded = 6,
227cb93a386Sopenharmony_ci            } bAspectRatio;
228cb93a386Sopenharmony_ci
229cb93a386Sopenharmony_ci            enum class Contrast : SK_OT_BYTE {
230cb93a386Sopenharmony_ci                Any = 0,
231cb93a386Sopenharmony_ci                NoFit = 1,
232cb93a386Sopenharmony_ci                None = 2,
233cb93a386Sopenharmony_ci                VeryLow = 3,
234cb93a386Sopenharmony_ci                Low = 4,
235cb93a386Sopenharmony_ci                MediumLow = 5,
236cb93a386Sopenharmony_ci                Medium = 6,
237cb93a386Sopenharmony_ci                MediumHigh = 7,
238cb93a386Sopenharmony_ci                High = 8,
239cb93a386Sopenharmony_ci                VeryHigh = 9,
240cb93a386Sopenharmony_ci            } bContrast;
241cb93a386Sopenharmony_ci
242cb93a386Sopenharmony_ci            enum class Topology : SK_OT_BYTE {
243cb93a386Sopenharmony_ci                Any = 0,
244cb93a386Sopenharmony_ci                NoFit = 1,
245cb93a386Sopenharmony_ci                Roman_Disconnected = 2,
246cb93a386Sopenharmony_ci                Roman_Trailing = 3,
247cb93a386Sopenharmony_ci                Roman_Connected = 4,
248cb93a386Sopenharmony_ci                Cursive_Disconnected = 5,
249cb93a386Sopenharmony_ci                Cursive_Trailing = 6,
250cb93a386Sopenharmony_ci                Cursive_Connected = 7,
251cb93a386Sopenharmony_ci                Blackletter_Disconnected = 8,
252cb93a386Sopenharmony_ci                Blackletter_Trailing = 9,
253cb93a386Sopenharmony_ci                Blackletter_Connected = 10,
254cb93a386Sopenharmony_ci            } bTopology;
255cb93a386Sopenharmony_ci
256cb93a386Sopenharmony_ci            enum class Form : SK_OT_BYTE {
257cb93a386Sopenharmony_ci                Any = 0,
258cb93a386Sopenharmony_ci                NoFit = 1,
259cb93a386Sopenharmony_ci                Upright_NoWrapping = 2,
260cb93a386Sopenharmony_ci                Upright_SomeWrapping = 3,
261cb93a386Sopenharmony_ci                Upright_MoreWrapping = 4,
262cb93a386Sopenharmony_ci                Upright_ExtremeWrapping = 5,
263cb93a386Sopenharmony_ci                Oblique_NoWrapping = 6,
264cb93a386Sopenharmony_ci                Oblique_SomeWrapping = 7,
265cb93a386Sopenharmony_ci                Oblique_MoreWrapping = 8,
266cb93a386Sopenharmony_ci                Oblique_ExtremeWrapping = 9,
267cb93a386Sopenharmony_ci                Exaggerated_NoWrapping = 10,
268cb93a386Sopenharmony_ci                Exaggerated_SomeWrapping = 11,
269cb93a386Sopenharmony_ci                Exaggerated_MoreWrapping = 12,
270cb93a386Sopenharmony_ci                Exaggerated_ExtremeWrapping = 13,
271cb93a386Sopenharmony_ci            } bForm;
272cb93a386Sopenharmony_ci
273cb93a386Sopenharmony_ci            enum class Finials : SK_OT_BYTE {
274cb93a386Sopenharmony_ci                Any = 0,
275cb93a386Sopenharmony_ci                NoFit = 1,
276cb93a386Sopenharmony_ci                None_NoLoops = 2,
277cb93a386Sopenharmony_ci                None_ClosedLoops = 3,
278cb93a386Sopenharmony_ci                None_OpenLoops = 4,
279cb93a386Sopenharmony_ci                Sharp_NoLoops = 5,
280cb93a386Sopenharmony_ci                Sharp_ClosedLoops = 6,
281cb93a386Sopenharmony_ci                Sharp_OpenLoops = 7,
282cb93a386Sopenharmony_ci                Tapered_NoLoops = 8,
283cb93a386Sopenharmony_ci                Tapered_ClosedLoops = 9,
284cb93a386Sopenharmony_ci                Tapered_OpenLoops = 10,
285cb93a386Sopenharmony_ci                Round_NoLoops = 11,
286cb93a386Sopenharmony_ci                Round_ClosedLoops = 12,
287cb93a386Sopenharmony_ci                Round_OpenLoops = 13,
288cb93a386Sopenharmony_ci            } bFinials;
289cb93a386Sopenharmony_ci
290cb93a386Sopenharmony_ci            enum class XAscent : SK_OT_BYTE {
291cb93a386Sopenharmony_ci                Any = 0,
292cb93a386Sopenharmony_ci                NoFit = 1,
293cb93a386Sopenharmony_ci                VeryLow = 2,
294cb93a386Sopenharmony_ci                Low = 3,
295cb93a386Sopenharmony_ci                Medium = 4,
296cb93a386Sopenharmony_ci                High = 5,
297cb93a386Sopenharmony_ci                VeryHigh = 6,
298cb93a386Sopenharmony_ci            } bXAscent;
299cb93a386Sopenharmony_ci        } script;
300cb93a386Sopenharmony_ci
301cb93a386Sopenharmony_ci        struct Decorative {
302cb93a386Sopenharmony_ci            enum class Class : SK_OT_BYTE {
303cb93a386Sopenharmony_ci                Any = 0,
304cb93a386Sopenharmony_ci                NoFit = 1,
305cb93a386Sopenharmony_ci                Derivative = 2,
306cb93a386Sopenharmony_ci                NonStandard_Topology = 3,
307cb93a386Sopenharmony_ci                NonStandard_Elements = 4,
308cb93a386Sopenharmony_ci                NonStandard_Aspect = 5,
309cb93a386Sopenharmony_ci                Initials = 6,
310cb93a386Sopenharmony_ci                Cartoon = 7,
311cb93a386Sopenharmony_ci                PictureStems = 8,
312cb93a386Sopenharmony_ci                Ornamented = 9,
313cb93a386Sopenharmony_ci                TextAndBackground = 10,
314cb93a386Sopenharmony_ci                Collage = 11,
315cb93a386Sopenharmony_ci                Montage = 12,
316cb93a386Sopenharmony_ci            } bClass;
317cb93a386Sopenharmony_ci
318cb93a386Sopenharmony_ci            enum class Weight : SK_OT_BYTE {
319cb93a386Sopenharmony_ci                Any = 0,
320cb93a386Sopenharmony_ci                NoFit = 1,
321cb93a386Sopenharmony_ci                VeryLight = 2,
322cb93a386Sopenharmony_ci                Light = 3,
323cb93a386Sopenharmony_ci                Thin = 4,
324cb93a386Sopenharmony_ci                Book = 5,
325cb93a386Sopenharmony_ci                Medium = 6,
326cb93a386Sopenharmony_ci                Demi = 7,
327cb93a386Sopenharmony_ci                Bold = 8,
328cb93a386Sopenharmony_ci                Heavy = 9,
329cb93a386Sopenharmony_ci                Black = 10,
330cb93a386Sopenharmony_ci                ExtraBlack = 11,
331cb93a386Sopenharmony_ci            } bWeight;
332cb93a386Sopenharmony_ci
333cb93a386Sopenharmony_ci            enum class Aspect : SK_OT_BYTE {
334cb93a386Sopenharmony_ci                Any = 0,
335cb93a386Sopenharmony_ci                NoFit = 1,
336cb93a386Sopenharmony_ci                SuperCondensed = 2,
337cb93a386Sopenharmony_ci                VeryCondensed = 3,
338cb93a386Sopenharmony_ci                Condensed = 4,
339cb93a386Sopenharmony_ci                Normal = 5,
340cb93a386Sopenharmony_ci                Extended = 6,
341cb93a386Sopenharmony_ci                VeryExtended = 7,
342cb93a386Sopenharmony_ci                SuperExtended = 8,
343cb93a386Sopenharmony_ci                Monospaced = 9,
344cb93a386Sopenharmony_ci            } bAspect;
345cb93a386Sopenharmony_ci
346cb93a386Sopenharmony_ci            enum class Contrast : SK_OT_BYTE {
347cb93a386Sopenharmony_ci                Any = 0,
348cb93a386Sopenharmony_ci                NoFit = 1,
349cb93a386Sopenharmony_ci                None = 2,
350cb93a386Sopenharmony_ci                VeryLow = 3,
351cb93a386Sopenharmony_ci                Low = 4,
352cb93a386Sopenharmony_ci                MediumLow = 5,
353cb93a386Sopenharmony_ci                Medium = 6,
354cb93a386Sopenharmony_ci                MediumHigh = 7,
355cb93a386Sopenharmony_ci                High = 8,
356cb93a386Sopenharmony_ci                VeryHigh = 9,
357cb93a386Sopenharmony_ci                HorizontalLow = 10,
358cb93a386Sopenharmony_ci                HorizontalMedium = 11,
359cb93a386Sopenharmony_ci                HorizontalHigh = 12,
360cb93a386Sopenharmony_ci                Broken = 13,
361cb93a386Sopenharmony_ci            } bContrast;
362cb93a386Sopenharmony_ci
363cb93a386Sopenharmony_ci            enum class SerifVariant : SK_OT_BYTE {
364cb93a386Sopenharmony_ci                Any = 0,
365cb93a386Sopenharmony_ci                NoFit = 1,
366cb93a386Sopenharmony_ci                Cove = 2,
367cb93a386Sopenharmony_ci                ObtuseCove = 3,
368cb93a386Sopenharmony_ci                SquareCove = 4,
369cb93a386Sopenharmony_ci                ObtuseSquareCove = 5,
370cb93a386Sopenharmony_ci                Square = 6,
371cb93a386Sopenharmony_ci                Thin = 7,
372cb93a386Sopenharmony_ci                Oval = 8,
373cb93a386Sopenharmony_ci                Exaggerated = 9,
374cb93a386Sopenharmony_ci                Triangle = 10,
375cb93a386Sopenharmony_ci                NormalSans = 11,
376cb93a386Sopenharmony_ci                ObtuseSans = 12,
377cb93a386Sopenharmony_ci                PerpendicularSans = 13,
378cb93a386Sopenharmony_ci                Flared = 14,
379cb93a386Sopenharmony_ci                Rounded = 15,
380cb93a386Sopenharmony_ci                Script = 16,
381cb93a386Sopenharmony_ci            } bSerifVariant;
382cb93a386Sopenharmony_ci
383cb93a386Sopenharmony_ci            enum class Treatment : SK_OT_BYTE {
384cb93a386Sopenharmony_ci                Any = 0,
385cb93a386Sopenharmony_ci                NoFit = 1,
386cb93a386Sopenharmony_ci                None_StandardSolidFill = 2,
387cb93a386Sopenharmony_ci                White_NoFill = 3,
388cb93a386Sopenharmony_ci                PatternedFill = 4,
389cb93a386Sopenharmony_ci                ComplexFill = 5,
390cb93a386Sopenharmony_ci                ShapedFill = 6,
391cb93a386Sopenharmony_ci                DrawnDistressed = 7,
392cb93a386Sopenharmony_ci            } bTreatment;
393cb93a386Sopenharmony_ci
394cb93a386Sopenharmony_ci            enum class Lining : SK_OT_BYTE {
395cb93a386Sopenharmony_ci                Any = 0,
396cb93a386Sopenharmony_ci                NoFit = 1,
397cb93a386Sopenharmony_ci                None = 2,
398cb93a386Sopenharmony_ci                Inline = 3,
399cb93a386Sopenharmony_ci                Outline = 4,
400cb93a386Sopenharmony_ci                Engraved = 5,
401cb93a386Sopenharmony_ci                Shadow = 6,
402cb93a386Sopenharmony_ci                Relief = 7,
403cb93a386Sopenharmony_ci                Backdrop = 8,
404cb93a386Sopenharmony_ci            } bLining;
405cb93a386Sopenharmony_ci
406cb93a386Sopenharmony_ci            enum class Topology : SK_OT_BYTE {
407cb93a386Sopenharmony_ci                Any = 0,
408cb93a386Sopenharmony_ci                NoFit = 1,
409cb93a386Sopenharmony_ci                Standard = 2,
410cb93a386Sopenharmony_ci                Square = 3,
411cb93a386Sopenharmony_ci                MultipleSegment = 4,
412cb93a386Sopenharmony_ci                DecoWacoMidlines = 5,
413cb93a386Sopenharmony_ci                UnevenWeighting = 6,
414cb93a386Sopenharmony_ci                DiverseArms = 7,
415cb93a386Sopenharmony_ci                DiverseForms = 8,
416cb93a386Sopenharmony_ci                LombardicForms = 9,
417cb93a386Sopenharmony_ci                UpperCaseInLowerCase = 10,
418cb93a386Sopenharmony_ci                ImpliedTopology = 11,
419cb93a386Sopenharmony_ci                HorseshoeEandA = 12,
420cb93a386Sopenharmony_ci                Cursive = 13,
421cb93a386Sopenharmony_ci                Blackletter = 14,
422cb93a386Sopenharmony_ci                SwashVariance = 15,
423cb93a386Sopenharmony_ci            } bTopology;
424cb93a386Sopenharmony_ci
425cb93a386Sopenharmony_ci            enum class RangeOfCharacters : SK_OT_BYTE {
426cb93a386Sopenharmony_ci                Any = 0,
427cb93a386Sopenharmony_ci                NoFit = 1,
428cb93a386Sopenharmony_ci                ExtendedCollection = 2,
429cb93a386Sopenharmony_ci                Litterals = 3,
430cb93a386Sopenharmony_ci                NoLowerCase = 4,
431cb93a386Sopenharmony_ci                SmallCaps = 5,
432cb93a386Sopenharmony_ci            } bRangeOfCharacters;
433cb93a386Sopenharmony_ci        } decorative;
434cb93a386Sopenharmony_ci
435cb93a386Sopenharmony_ci        struct Pictoral {
436cb93a386Sopenharmony_ci            enum class Kind : SK_OT_BYTE {
437cb93a386Sopenharmony_ci                Any = 0,
438cb93a386Sopenharmony_ci                NoFit = 1,
439cb93a386Sopenharmony_ci                Montages = 2,
440cb93a386Sopenharmony_ci                Pictures = 3,
441cb93a386Sopenharmony_ci                Shapes = 4,
442cb93a386Sopenharmony_ci                Scientific = 5,
443cb93a386Sopenharmony_ci                Music = 6,
444cb93a386Sopenharmony_ci                Expert = 7,
445cb93a386Sopenharmony_ci                Patterns = 8,
446cb93a386Sopenharmony_ci                Boarders = 9,
447cb93a386Sopenharmony_ci                Icons = 10,
448cb93a386Sopenharmony_ci                Logos = 11,
449cb93a386Sopenharmony_ci                IndustrySpecific = 12,
450cb93a386Sopenharmony_ci            } bKind;
451cb93a386Sopenharmony_ci
452cb93a386Sopenharmony_ci            enum class Weight : SK_OT_BYTE {
453cb93a386Sopenharmony_ci                NoFit = 1,
454cb93a386Sopenharmony_ci            } bWeight;
455cb93a386Sopenharmony_ci
456cb93a386Sopenharmony_ci            enum class Spacing : SK_OT_BYTE {
457cb93a386Sopenharmony_ci                Any = 0,
458cb93a386Sopenharmony_ci                NoFit = 1,
459cb93a386Sopenharmony_ci                ProportionalSpaced = 2,
460cb93a386Sopenharmony_ci                Monospaced = 3,
461cb93a386Sopenharmony_ci            } bSpacing;
462cb93a386Sopenharmony_ci
463cb93a386Sopenharmony_ci            enum class AspectRatioAndContrast : SK_OT_BYTE {
464cb93a386Sopenharmony_ci                NoFit = 1,
465cb93a386Sopenharmony_ci            } bAspectRatioAndContrast;
466cb93a386Sopenharmony_ci
467cb93a386Sopenharmony_ci            enum class AspectRatio94 : SK_OT_BYTE {
468cb93a386Sopenharmony_ci                Any = 0,
469cb93a386Sopenharmony_ci                NoFit = 1,
470cb93a386Sopenharmony_ci                NoWidth = 2,
471cb93a386Sopenharmony_ci                ExceptionallyWide = 3,
472cb93a386Sopenharmony_ci                SuperWide = 4,
473cb93a386Sopenharmony_ci                VeryWide = 5,
474cb93a386Sopenharmony_ci                Wide = 6,
475cb93a386Sopenharmony_ci                Normal = 7,
476cb93a386Sopenharmony_ci                Narrow = 8,
477cb93a386Sopenharmony_ci                VeryNarrow = 9,
478cb93a386Sopenharmony_ci            } bAspectRatio94;
479cb93a386Sopenharmony_ci
480cb93a386Sopenharmony_ci            enum class AspectRatio119 : SK_OT_BYTE {
481cb93a386Sopenharmony_ci                Any = 0,
482cb93a386Sopenharmony_ci                NoFit = 1,
483cb93a386Sopenharmony_ci                NoWidth = 2,
484cb93a386Sopenharmony_ci                ExceptionallyWide = 3,
485cb93a386Sopenharmony_ci                SuperWide = 4,
486cb93a386Sopenharmony_ci                VeryWide = 5,
487cb93a386Sopenharmony_ci                Wide = 6,
488cb93a386Sopenharmony_ci                Normal = 7,
489cb93a386Sopenharmony_ci                Narrow = 8,
490cb93a386Sopenharmony_ci                VeryNarrow = 9,
491cb93a386Sopenharmony_ci            } bAspectRatio119;
492cb93a386Sopenharmony_ci
493cb93a386Sopenharmony_ci             enum class AspectRatio157 : SK_OT_BYTE {
494cb93a386Sopenharmony_ci                Any = 0,
495cb93a386Sopenharmony_ci                NoFit = 1,
496cb93a386Sopenharmony_ci                NoWidth = 2,
497cb93a386Sopenharmony_ci                ExceptionallyWide = 3,
498cb93a386Sopenharmony_ci                SuperWide = 4,
499cb93a386Sopenharmony_ci                VeryWide = 5,
500cb93a386Sopenharmony_ci                Wide = 6,
501cb93a386Sopenharmony_ci                Normal = 7,
502cb93a386Sopenharmony_ci                Narrow = 8,
503cb93a386Sopenharmony_ci                VeryNarrow = 9,
504cb93a386Sopenharmony_ci            } bAspectRatio157;
505cb93a386Sopenharmony_ci
506cb93a386Sopenharmony_ci            enum class AspectRatio163 : SK_OT_BYTE {
507cb93a386Sopenharmony_ci                Any = 0,
508cb93a386Sopenharmony_ci                NoFit = 1,
509cb93a386Sopenharmony_ci                NoWidth = 2,
510cb93a386Sopenharmony_ci                ExceptionallyWide = 3,
511cb93a386Sopenharmony_ci                SuperWide = 4,
512cb93a386Sopenharmony_ci                VeryWide = 5,
513cb93a386Sopenharmony_ci                Wide = 6,
514cb93a386Sopenharmony_ci                Normal = 7,
515cb93a386Sopenharmony_ci                Narrow = 8,
516cb93a386Sopenharmony_ci                VeryNarrow = 9,
517cb93a386Sopenharmony_ci            } bAspectRatio163;
518cb93a386Sopenharmony_ci        } pictoral;
519cb93a386Sopenharmony_ci    } data;
520cb93a386Sopenharmony_ci};
521cb93a386Sopenharmony_ci
522cb93a386Sopenharmony_ci#pragma pack(pop)
523cb93a386Sopenharmony_ci
524cb93a386Sopenharmony_ci
525cb93a386Sopenharmony_cistatic_assert(sizeof(SkPanose) == 10, "sizeof_SkPanose_not_10");
526cb93a386Sopenharmony_ci
527cb93a386Sopenharmony_ci#endif
528