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