diff options
-rw-r--r-- | src/ports/SkTypeface_win_dw.cpp | 23 | ||||
-rw-r--r-- | src/sfnt/SkIBMFamilyClass.h | 204 | ||||
-rw-r--r-- | src/sfnt/SkPanose.h | 902 |
3 files changed, 523 insertions, 606 deletions
diff --git a/src/ports/SkTypeface_win_dw.cpp b/src/ports/SkTypeface_win_dw.cpp index 09eeb36405..348bc9f81e 100644 --- a/src/ports/SkTypeface_win_dw.cpp +++ b/src/ports/SkTypeface_win_dw.cpp @@ -383,14 +383,25 @@ SkAdvancedTypefaceMetrics* DWriteFontTypeface::onGetAdvancedTypefaceMetrics( if (os2Table->version.v0.fsSelection.field.Italic) { info->fStyle |= SkAdvancedTypefaceMetrics::kItalic_Style; } + //Serif + using SerifStyle = SkPanose::Data::TextAndDisplay::SerifStyle; + SerifStyle serifStyle = os2Table->version.v0.panose.data.textAndDisplay.bSerifStyle; + if (SkPanose::FamilyType::TextAndDisplay == os2Table->version.v0.panose.bFamilyType) { + if (SerifStyle::Cove == serifStyle || + SerifStyle::ObtuseCove == serifStyle || + SerifStyle::SquareCove == serifStyle || + SerifStyle::ObtuseSquareCove == serifStyle || + SerifStyle::Square == serifStyle || + SerifStyle::Thin == serifStyle || + SerifStyle::Bone == serifStyle || + SerifStyle::Exaggerated == serifStyle || + SerifStyle::Triangle == serifStyle) + { + info->fStyle |= SkAdvancedTypefaceMetrics::kSerif_Style; + } //Script - if (SkPanose::FamilyType::Script == os2Table->version.v0.panose.bFamilyType.value) { + } else if (SkPanose::FamilyType::Script == os2Table->version.v0.panose.bFamilyType) { info->fStyle |= SkAdvancedTypefaceMetrics::kScript_Style; - //Serif - } else if (SkPanose::FamilyType::TextAndDisplay == os2Table->version.v0.panose.bFamilyType.value && - SkPanose::Data::TextAndDisplay::SerifStyle::Triangle <= os2Table->version.v0.panose.data.textAndDisplay.bSerifStyle.value && - SkPanose::Data::TextAndDisplay::SerifStyle::NoFit != os2Table->version.v0.panose.data.textAndDisplay.bSerifStyle.value) { - info->fStyle |= SkAdvancedTypefaceMetrics::kSerif_Style; } info->fItalicAngle = SkEndian_SwapBE32(postTable->italicAngle) >> 16; diff --git a/src/sfnt/SkIBMFamilyClass.h b/src/sfnt/SkIBMFamilyClass.h index 190952b084..b95c91efbb 100644 --- a/src/sfnt/SkIBMFamilyClass.h +++ b/src/sfnt/SkIBMFamilyClass.h @@ -13,7 +13,7 @@ #pragma pack(push, 1) struct SkIBMFamilyClass { - enum Class : SK_OT_BYTE { + enum class Class : SK_OT_BYTE { NoClassification = 0, OldstyleSerifs = 1, TransitionalSerifs = 2, @@ -30,126 +30,106 @@ struct SkIBMFamilyClass { //13-15 reserved for future use } familyClass; union SubClass { - struct OldstyleSerifs { - 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, - } value; + enum class OldstyleSerifs : 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, } oldstyleSerifs; - struct TransitionalSerifs { - enum Value : SK_OT_BYTE { - NoClassification = 0, - DirectLine = 1, - Script = 2, - //3-14 reserved for future use - Miscellaneous = 15, - } value; + enum class TransitionalSerifs : SK_OT_BYTE { + NoClassification = 0, + DirectLine = 1, + Script = 2, + //3-14 reserved for future use + Miscellaneous = 15, } transitionalSerifs; - struct ModernSerifs { - enum Value : SK_OT_BYTE { - NoClassification = 0, - Italian = 1, - Script = 2, - //3-14 reserved for future use - Miscellaneous = 15, - } value; + enum class ModernSerifs : SK_OT_BYTE { + NoClassification = 0, + Italian = 1, + Script = 2, + //3-14 reserved for future use + Miscellaneous = 15, } modernSerifs; - struct ClarendonSerifs { - 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, - } value; + enum class ClarendonSerifs : 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, } clarendonSerifs; - struct SlabSerifs { - 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, - } value; + enum class SlabSerifs : SK_OT_BYTE { + NoClassification = 0, + Monotone = 1, + Humanist = 2, + Geometric = 3, + Swiss = 4, + Typewriter = 5, + //6-14 reserved for future use + Miscellaneous = 15, } slabSerifs; - struct FreeformSerifs { - enum Value : SK_OT_BYTE { - NoClassification = 0, - Modern = 1, - //2-14 reserved for future use - Miscellaneous = 15, - } value; + enum class FreeformSerifs : SK_OT_BYTE { + NoClassification = 0, + Modern = 1, + //2-14 reserved for future use + Miscellaneous = 15, } freeformSerifs; - struct SansSerif { - 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, - } value; + enum class SansSerif : 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, } sansSerif; - struct Ornamentals { - enum Value : SK_OT_BYTE { - NoClassification = 0, - Engraver = 1, - BlackLetter = 2, - Decorative = 3, - ThreeDimensional = 4, - //5-14 reserved for future use - Miscellaneous = 15, - } value; + enum class Ornamentals : SK_OT_BYTE { + NoClassification = 0, + Engraver = 1, + BlackLetter = 2, + Decorative = 3, + ThreeDimensional = 4, + //5-14 reserved for future use + Miscellaneous = 15, } ornamentals; - struct Scripts { - 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, - } value; + enum class Scripts : 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, } scripts; - struct Symbolic { - 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, - } value; + enum class Symbolic : 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, } symbolic; } familySubClass; }; diff --git a/src/sfnt/SkPanose.h b/src/sfnt/SkPanose.h index 648aec6758..e3991697c3 100644 --- a/src/sfnt/SkPanose.h +++ b/src/sfnt/SkPanose.h @@ -14,580 +14,506 @@ struct SkPanose { //This value changes the meaning of the following 9 bytes. - struct FamilyType { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - TextAndDisplay = 2, - Script = 3, - Decorative = 4, - Pictoral = 5, - } value; + enum class FamilyType : SK_OT_BYTE { + Any = 0, + NoFit = 1, + TextAndDisplay = 2, + Script = 3, + Decorative = 4, + Pictoral = 5, } bFamilyType; union Data { struct TextAndDisplay { - struct SerifStyle { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - Cove = 2, - ObtuseCove = 3, - SquareCove = 4, - ObtuseSquareCove = 5, - Square = 6, - Thin = 7, - Bone = 8, - Exaggerated = 9, - Triangle = 10, - NormalSans = 11, - ObtuseSans = 12, - PerpSans = 13, - Flared = 14, - Rounded = 15, - } value; + enum class SerifStyle : SK_OT_BYTE { + Any = 0, + NoFit = 1, + Cove = 2, + ObtuseCove = 3, + SquareCove = 4, + ObtuseSquareCove = 5, + Square = 6, + Thin = 7, + Bone = 8, + Exaggerated = 9, + Triangle = 10, + NormalSans = 11, + ObtuseSans = 12, + PerpSans = 13, + Flared = 14, + Rounded = 15, } bSerifStyle; - struct Weight { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - VeryLight = 2, - Light = 3, - Thin = 4, - Book = 5, - Medium = 6, - Demi = 7, - Bold = 8, - Heavy = 9, - Black = 10, - ExtraBlack = 11, - } value; + enum class Weight : SK_OT_BYTE { + Any = 0, + NoFit = 1, + VeryLight = 2, + Light = 3, + Thin = 4, + Book = 5, + Medium = 6, + Demi = 7, + Bold = 8, + Heavy = 9, + Black = 10, + ExtraBlack = 11, } bWeight; - struct Proportion { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - OldStyle = 2, - Modern = 3, - EvenWidth = 4, - Expanded = 5, - Condensed = 6, - VeryExpanded = 7, - VeryCondensed = 8, - Monospaced = 9, - } value; + enum class Proportion : SK_OT_BYTE { + Any = 0, + NoFit = 1, + OldStyle = 2, + Modern = 3, + EvenWidth = 4, + Expanded = 5, + Condensed = 6, + VeryExpanded = 7, + VeryCondensed = 8, + Monospaced = 9, } bProportion; - struct Contrast { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - None = 2, - VeryLow = 3, - Low = 4, - MediumLow = 5, - Medium = 6, - MediumHigh = 7, - High = 8, - VeryHigh = 9, - } value; + enum class Contrast : SK_OT_BYTE { + Any = 0, + NoFit = 1, + None = 2, + VeryLow = 3, + Low = 4, + MediumLow = 5, + Medium = 6, + MediumHigh = 7, + High = 8, + VeryHigh = 9, } bContrast; #ifdef SK_WIN_PANOSE //This is what Windows (and FontForge and Apple TT spec) define. //The Impact font uses 9. - struct StrokeVariation { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - GradualDiagonal = 2, - GradualTransitional = 3, - GradualVertical = 4, - GradualHorizontal = 5, - RapidVertical = 6, - RapidHorizontal = 7, - InstantVertical = 8, - } value; + enum class StrokeVariation : SK_OT_BYTE { + Any = 0, + NoFit = 1, + GradualDiagonal = 2, + GradualTransitional = 3, + GradualVertical = 4, + GradualHorizontal = 5, + RapidVertical = 6, + RapidHorizontal = 7, + InstantVertical = 8, } bStrokeVariation; #else //Stroke variation description in OT OS/2 ver0,ver1 is incorrect. //This is what HP Panose says. - struct StrokeVariation { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - NoVariation = 2, - Gradual_Diagonal = 3, - Gradual_Transitional = 4, - Gradual_Vertical = 5, - Gradual_Horizontal = 6, - Rapid_Vertical = 7, - Rapid_Horizontal = 8, - Instant_Vertical = 9, - Instant_Horizontal = 10, - } value; + enum class StrokeVariation : SK_OT_BYTE { + Any = 0, + NoFit = 1, + NoVariation = 2, + Gradual_Diagonal = 3, + Gradual_Transitional = 4, + Gradual_Vertical = 5, + Gradual_Horizontal = 6, + Rapid_Vertical = 7, + Rapid_Horizontal = 8, + Instant_Vertical = 9, + Instant_Horizontal = 10, } bStrokeVariation; #endif - struct ArmStyle { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - StraightArms_Horizontal = 2, - StraightArms_Wedge = 3, - StraightArms_Vertical = 4, - StraightArms_SingleSerif = 5, - StraightArms_DoubleSerif = 6, - NonStraightArms_Horizontal = 7, - NonStraightArms_Wedge = 8, - NonStraightArms_Vertical = 9, - NonStraightArms_SingleSerif = 10, - NonStraightArms_DoubleSerif = 11, - } value; + enum class ArmStyle : SK_OT_BYTE { + Any = 0, + NoFit = 1, + StraightArms_Horizontal = 2, + StraightArms_Wedge = 3, + StraightArms_Vertical = 4, + StraightArms_SingleSerif = 5, + StraightArms_DoubleSerif = 6, + NonStraightArms_Horizontal = 7, + NonStraightArms_Wedge = 8, + NonStraightArms_Vertical = 9, + NonStraightArms_SingleSerif = 10, + NonStraightArms_DoubleSerif = 11, } bArmStyle; - struct Letterform { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - Normal_Contact = 2, - Normal_Weighted = 3, - Normal_Boxed = 4, - Normal_Flattened = 5, - Normal_Rounded = 6, - Normal_OffCenter = 7, - Normal_Square = 8, - Oblique_Contact = 9, - Oblique_Weighted = 10, - Oblique_Boxed = 11, - Oblique_Flattened = 12, - Oblique_Rounded = 13, - Oblique_OffCenter = 14, - Oblique_Square = 15, - } value; + enum class Letterform : SK_OT_BYTE { + Any = 0, + NoFit = 1, + Normal_Contact = 2, + Normal_Weighted = 3, + Normal_Boxed = 4, + Normal_Flattened = 5, + Normal_Rounded = 6, + Normal_OffCenter = 7, + Normal_Square = 8, + Oblique_Contact = 9, + Oblique_Weighted = 10, + Oblique_Boxed = 11, + Oblique_Flattened = 12, + Oblique_Rounded = 13, + Oblique_OffCenter = 14, + Oblique_Square = 15, } bLetterform; - struct Midline { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - Standard_Trimmed = 2, - Standard_Pointed = 3, - Standard_Serifed = 4, - High_Trimmed = 5, - High_Pointed = 6, - High_Serifed = 7, - Constant_Trimmed = 8, - Constant_Pointed = 9, - Constant_Serifed = 10, - Low_Trimmed = 11, - Low_Pointed = 12, - Low_Serifed = 13, - } value; + enum class Midline : SK_OT_BYTE { + Any = 0, + NoFit = 1, + Standard_Trimmed = 2, + Standard_Pointed = 3, + Standard_Serifed = 4, + High_Trimmed = 5, + High_Pointed = 6, + High_Serifed = 7, + Constant_Trimmed = 8, + Constant_Pointed = 9, + Constant_Serifed = 10, + Low_Trimmed = 11, + Low_Pointed = 12, + Low_Serifed = 13, } bMidline; - struct XHeight { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - Constant_Small = 2, - Constant_Standard = 3, - Constant_Large = 4, - Ducking_Small = 5, - Ducking_Standard = 6, - Ducking_Large = 7, - } value; + enum class XHeight : SK_OT_BYTE { + Any = 0, + NoFit = 1, + Constant_Small = 2, + Constant_Standard = 3, + Constant_Large = 4, + Ducking_Small = 5, + Ducking_Standard = 6, + Ducking_Large = 7, } bXHeight; } textAndDisplay; struct Script { - struct ToolKind { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - FlatNib = 2, - PressurePoint = 3, - Engraved = 4, - Ball = 5, - Brush = 6, - Rough = 7, - FeltPen = 8, - WildBrush = 9, - } value; + enum class ToolKind : SK_OT_BYTE { + Any = 0, + NoFit = 1, + FlatNib = 2, + PressurePoint = 3, + Engraved = 4, + Ball = 5, + Brush = 6, + Rough = 7, + FeltPen = 8, + WildBrush = 9, } bToolKind; - struct Weight { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - VeryLight = 2, - Light = 3, - Thin = 4, - Book = 5, - Medium = 6, - Demi = 7, - Bold = 8, - Heavy = 9, - Black = 10, - ExtraBlack = 11, - } value; + enum class Weight : SK_OT_BYTE { + Any = 0, + NoFit = 1, + VeryLight = 2, + Light = 3, + Thin = 4, + Book = 5, + Medium = 6, + Demi = 7, + Bold = 8, + Heavy = 9, + Black = 10, + ExtraBlack = 11, } bWeight; - struct Spacing { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - ProportionalSpaced = 2, - Monospaced = 3, - } value; + enum class Spacing : SK_OT_BYTE { + Any = 0, + NoFit = 1, + ProportionalSpaced = 2, + Monospaced = 3, } bSpacing; - struct AspectRatio { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - VeryCondensed = 2, - Condensed = 3, - Normal = 4, - Expanded = 5, - VeryExpanded = 6, - } value; + enum class AspectRatio : SK_OT_BYTE { + Any = 0, + NoFit = 1, + VeryCondensed = 2, + Condensed = 3, + Normal = 4, + Expanded = 5, + VeryExpanded = 6, } bAspectRatio; - struct Contrast { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - None = 2, - VeryLow = 3, - Low = 4, - MediumLow = 5, - Medium = 6, - MediumHigh = 7, - High = 8, - VeryHigh = 9, - } value; + enum class Contrast : SK_OT_BYTE { + Any = 0, + NoFit = 1, + None = 2, + VeryLow = 3, + Low = 4, + MediumLow = 5, + Medium = 6, + MediumHigh = 7, + High = 8, + VeryHigh = 9, } bContrast; - struct Topology { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - Roman_Disconnected = 2, - Roman_Trailing = 3, - Roman_Connected = 4, - Cursive_Disconnected = 5, - Cursive_Trailing = 6, - Cursive_Connected = 7, - Blackletter_Disconnected = 8, - Blackletter_Trailing = 9, - Blackletter_Connected = 10, - } value; + enum class Topology : SK_OT_BYTE { + Any = 0, + NoFit = 1, + Roman_Disconnected = 2, + Roman_Trailing = 3, + Roman_Connected = 4, + Cursive_Disconnected = 5, + Cursive_Trailing = 6, + Cursive_Connected = 7, + Blackletter_Disconnected = 8, + Blackletter_Trailing = 9, + Blackletter_Connected = 10, } bTopology; - struct Form { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - Upright_NoWrapping = 2, - Upright_SomeWrapping = 3, - Upright_MoreWrapping = 4, - Upright_ExtremeWrapping = 5, - Oblique_NoWrapping = 6, - Oblique_SomeWrapping = 7, - Oblique_MoreWrapping = 8, - Oblique_ExtremeWrapping = 9, - Exaggerated_NoWrapping = 10, - Exaggerated_SomeWrapping = 11, - Exaggerated_MoreWrapping = 12, - Exaggerated_ExtremeWrapping = 13, - } value; + enum class Form : SK_OT_BYTE { + Any = 0, + NoFit = 1, + Upright_NoWrapping = 2, + Upright_SomeWrapping = 3, + Upright_MoreWrapping = 4, + Upright_ExtremeWrapping = 5, + Oblique_NoWrapping = 6, + Oblique_SomeWrapping = 7, + Oblique_MoreWrapping = 8, + Oblique_ExtremeWrapping = 9, + Exaggerated_NoWrapping = 10, + Exaggerated_SomeWrapping = 11, + Exaggerated_MoreWrapping = 12, + Exaggerated_ExtremeWrapping = 13, } bForm; - struct Finials { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - None_NoLoops = 2, - None_ClosedLoops = 3, - None_OpenLoops = 4, - Sharp_NoLoops = 5, - Sharp_ClosedLoops = 6, - Sharp_OpenLoops = 7, - Tapered_NoLoops = 8, - Tapered_ClosedLoops = 9, - Tapered_OpenLoops = 10, - Round_NoLoops = 11, - Round_ClosedLoops = 12, - Round_OpenLoops = 13, - } value; + enum class Finials : SK_OT_BYTE { + Any = 0, + NoFit = 1, + None_NoLoops = 2, + None_ClosedLoops = 3, + None_OpenLoops = 4, + Sharp_NoLoops = 5, + Sharp_ClosedLoops = 6, + Sharp_OpenLoops = 7, + Tapered_NoLoops = 8, + Tapered_ClosedLoops = 9, + Tapered_OpenLoops = 10, + Round_NoLoops = 11, + Round_ClosedLoops = 12, + Round_OpenLoops = 13, } bFinials; - struct XAscent { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - VeryLow = 2, - Low = 3, - Medium = 4, - High = 5, - VeryHigh = 6, - } value; + enum class XAscent : SK_OT_BYTE { + Any = 0, + NoFit = 1, + VeryLow = 2, + Low = 3, + Medium = 4, + High = 5, + VeryHigh = 6, } bXAscent; } script; struct Decorative { - struct Class { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - Derivative = 2, - NonStandard_Topology = 3, - NonStandard_Elements = 4, - NonStandard_Aspect = 5, - Initials = 6, - Cartoon = 7, - PictureStems = 8, - Ornamented = 9, - TextAndBackground = 10, - Collage = 11, - Montage = 12, - } value; + enum class Class : SK_OT_BYTE { + Any = 0, + NoFit = 1, + Derivative = 2, + NonStandard_Topology = 3, + NonStandard_Elements = 4, + NonStandard_Aspect = 5, + Initials = 6, + Cartoon = 7, + PictureStems = 8, + Ornamented = 9, + TextAndBackground = 10, + Collage = 11, + Montage = 12, } bClass; - struct Weight { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - VeryLight = 2, - Light = 3, - Thin = 4, - Book = 5, - Medium = 6, - Demi = 7, - Bold = 8, - Heavy = 9, - Black = 10, - ExtraBlack = 11, - } value; + enum class Weight : SK_OT_BYTE { + Any = 0, + NoFit = 1, + VeryLight = 2, + Light = 3, + Thin = 4, + Book = 5, + Medium = 6, + Demi = 7, + Bold = 8, + Heavy = 9, + Black = 10, + ExtraBlack = 11, } bWeight; - struct Aspect { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - SuperCondensed = 2, - VeryCondensed = 3, - Condensed = 4, - Normal = 5, - Extended = 6, - VeryExtended = 7, - SuperExtended = 8, - Monospaced = 9, - } value; + enum class Aspect : SK_OT_BYTE { + Any = 0, + NoFit = 1, + SuperCondensed = 2, + VeryCondensed = 3, + Condensed = 4, + Normal = 5, + Extended = 6, + VeryExtended = 7, + SuperExtended = 8, + Monospaced = 9, } bAspect; - struct Contrast { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - None = 2, - VeryLow = 3, - Low = 4, - MediumLow = 5, - Medium = 6, - MediumHigh = 7, - High = 8, - VeryHigh = 9, - HorizontalLow = 10, - HorizontalMedium = 11, - HorizontalHigh = 12, - Broken = 13, - } value; + enum class Contrast : SK_OT_BYTE { + Any = 0, + NoFit = 1, + None = 2, + VeryLow = 3, + Low = 4, + MediumLow = 5, + Medium = 6, + MediumHigh = 7, + High = 8, + VeryHigh = 9, + HorizontalLow = 10, + HorizontalMedium = 11, + HorizontalHigh = 12, + Broken = 13, } bContrast; - struct SerifVariant { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - Cove = 2, - ObtuseCove = 3, - SquareCove = 4, - ObtuseSquareCove = 5, - Square = 6, - Thin = 7, - Oval = 8, - Exaggerated = 9, - Triangle = 10, - NormalSans = 11, - ObtuseSans = 12, - PerpendicularSans = 13, - Flared = 14, - Rounded = 15, - Script = 16, - } value; + enum class SerifVariant : SK_OT_BYTE { + Any = 0, + NoFit = 1, + Cove = 2, + ObtuseCove = 3, + SquareCove = 4, + ObtuseSquareCove = 5, + Square = 6, + Thin = 7, + Oval = 8, + Exaggerated = 9, + Triangle = 10, + NormalSans = 11, + ObtuseSans = 12, + PerpendicularSans = 13, + Flared = 14, + Rounded = 15, + Script = 16, } bSerifVariant; - struct Treatment { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - None_StandardSolidFill = 2, - White_NoFill = 3, - PatternedFill = 4, - ComplexFill = 5, - ShapedFill = 6, - DrawnDistressed = 7, - } value; + enum class Treatment : SK_OT_BYTE { + Any = 0, + NoFit = 1, + None_StandardSolidFill = 2, + White_NoFill = 3, + PatternedFill = 4, + ComplexFill = 5, + ShapedFill = 6, + DrawnDistressed = 7, } bTreatment; - struct Lining { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - None = 2, - Inline = 3, - Outline = 4, - Engraved = 5, - Shadow = 6, - Relief = 7, - Backdrop = 8, - } value; + enum class Lining : SK_OT_BYTE { + Any = 0, + NoFit = 1, + None = 2, + Inline = 3, + Outline = 4, + Engraved = 5, + Shadow = 6, + Relief = 7, + Backdrop = 8, } bLining; - struct Topology { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - Standard = 2, - Square = 3, - MultipleSegment = 4, - DecoWacoMidlines = 5, - UnevenWeighting = 6, - DiverseArms = 7, - DiverseForms = 8, - LombardicForms = 9, - UpperCaseInLowerCase = 10, - ImpliedTopology = 11, - HorseshoeEandA = 12, - Cursive = 13, - Blackletter = 14, - SwashVariance = 15, - } value; + enum class Topology : SK_OT_BYTE { + Any = 0, + NoFit = 1, + Standard = 2, + Square = 3, + MultipleSegment = 4, + DecoWacoMidlines = 5, + UnevenWeighting = 6, + DiverseArms = 7, + DiverseForms = 8, + LombardicForms = 9, + UpperCaseInLowerCase = 10, + ImpliedTopology = 11, + HorseshoeEandA = 12, + Cursive = 13, + Blackletter = 14, + SwashVariance = 15, } bTopology; - struct RangeOfCharacters { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - ExtendedCollection = 2, - Litterals = 3, - NoLowerCase = 4, - SmallCaps = 5, - } value; + enum class RangeOfCharacters : SK_OT_BYTE { + Any = 0, + NoFit = 1, + ExtendedCollection = 2, + Litterals = 3, + NoLowerCase = 4, + SmallCaps = 5, } bRangeOfCharacters; } decorative; struct Pictoral { - struct Kind { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - Montages = 2, - Pictures = 3, - Shapes = 4, - Scientific = 5, - Music = 6, - Expert = 7, - Patterns = 8, - Boarders = 9, - Icons = 10, - Logos = 11, - IndustrySpecific = 12, - } value; + enum class Kind : SK_OT_BYTE { + Any = 0, + NoFit = 1, + Montages = 2, + Pictures = 3, + Shapes = 4, + Scientific = 5, + Music = 6, + Expert = 7, + Patterns = 8, + Boarders = 9, + Icons = 10, + Logos = 11, + IndustrySpecific = 12, } bKind; - struct Weight { - enum Value : SK_OT_BYTE { - NoFit = 1, - } value; + enum class Weight : SK_OT_BYTE { + NoFit = 1, } bWeight; - struct Spacing { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - ProportionalSpaced = 2, - Monospaced = 3, - } value; + enum class Spacing : SK_OT_BYTE { + Any = 0, + NoFit = 1, + ProportionalSpaced = 2, + Monospaced = 3, } bSpacing; - struct AspectRatioAndContrast { - enum Value : SK_OT_BYTE { - NoFit = 1, - } value; + enum class AspectRatioAndContrast : SK_OT_BYTE { + NoFit = 1, } bAspectRatioAndContrast; - struct AspectRatio94 { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - NoWidth = 2, - ExceptionallyWide = 3, - SuperWide = 4, - VeryWide = 5, - Wide = 6, - Normal = 7, - Narrow = 8, - VeryNarrow = 9, - } value; + enum class AspectRatio94 : SK_OT_BYTE { + Any = 0, + NoFit = 1, + NoWidth = 2, + ExceptionallyWide = 3, + SuperWide = 4, + VeryWide = 5, + Wide = 6, + Normal = 7, + Narrow = 8, + VeryNarrow = 9, } bAspectRatio94; - struct AspectRatio119 { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - NoWidth = 2, - ExceptionallyWide = 3, - SuperWide = 4, - VeryWide = 5, - Wide = 6, - Normal = 7, - Narrow = 8, - VeryNarrow = 9, - } value; + enum class AspectRatio119 : SK_OT_BYTE { + Any = 0, + NoFit = 1, + NoWidth = 2, + ExceptionallyWide = 3, + SuperWide = 4, + VeryWide = 5, + Wide = 6, + Normal = 7, + Narrow = 8, + VeryNarrow = 9, } bAspectRatio119; - struct AspectRatio157 { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - NoWidth = 2, - ExceptionallyWide = 3, - SuperWide = 4, - VeryWide = 5, - Wide = 6, - Normal = 7, - Narrow = 8, - VeryNarrow = 9, - } value; + enum class AspectRatio157 : SK_OT_BYTE { + Any = 0, + NoFit = 1, + NoWidth = 2, + ExceptionallyWide = 3, + SuperWide = 4, + VeryWide = 5, + Wide = 6, + Normal = 7, + Narrow = 8, + VeryNarrow = 9, } bAspectRatio157; - struct AspectRatio163 { - enum Value : SK_OT_BYTE { - Any = 0, - NoFit = 1, - NoWidth = 2, - ExceptionallyWide = 3, - SuperWide = 4, - VeryWide = 5, - Wide = 6, - Normal = 7, - Narrow = 8, - VeryNarrow = 9, - } value; + enum class AspectRatio163 : SK_OT_BYTE { + Any = 0, + NoFit = 1, + NoWidth = 2, + ExceptionallyWide = 3, + SuperWide = 4, + VeryWide = 5, + Wide = 6, + Normal = 7, + Narrow = 8, + VeryNarrow = 9, } bAspectRatio163; } pictoral; } data; |