diff options
Diffstat (limited to 'gfx/skia/skia/src/sfnt/SkPanose.h')
-rw-r--r-- | gfx/skia/skia/src/sfnt/SkPanose.h | 527 |
1 files changed, 527 insertions, 0 deletions
diff --git a/gfx/skia/skia/src/sfnt/SkPanose.h b/gfx/skia/skia/src/sfnt/SkPanose.h new file mode 100644 index 000000000..e3991697c --- /dev/null +++ b/gfx/skia/skia/src/sfnt/SkPanose.h @@ -0,0 +1,527 @@ +/* + * Copyright 2012 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef SkPanose_DEFINED +#define SkPanose_DEFINED + +#include "SkOTTableTypes.h" + +#pragma pack(push, 1) + +struct SkPanose { + //This value changes the meaning of the following 9 bytes. + enum class FamilyType : SK_OT_BYTE { + Any = 0, + NoFit = 1, + TextAndDisplay = 2, + Script = 3, + Decorative = 4, + Pictoral = 5, + } bFamilyType; + + union Data { + struct TextAndDisplay { + 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; + + 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; + + 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; + + 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. + 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. + 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 + + 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; + + 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; + + 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; + + 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 { + 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; + + 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; + + enum class Spacing : SK_OT_BYTE { + Any = 0, + NoFit = 1, + ProportionalSpaced = 2, + Monospaced = 3, + } bSpacing; + + enum class AspectRatio : SK_OT_BYTE { + Any = 0, + NoFit = 1, + VeryCondensed = 2, + Condensed = 3, + Normal = 4, + Expanded = 5, + VeryExpanded = 6, + } bAspectRatio; + + 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; + + 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; + + 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; + + 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; + + enum class XAscent : SK_OT_BYTE { + Any = 0, + NoFit = 1, + VeryLow = 2, + Low = 3, + Medium = 4, + High = 5, + VeryHigh = 6, + } bXAscent; + } script; + + struct Decorative { + 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; + + 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; + + 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; + + 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; + + 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; + + 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; + + 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; + + 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; + + enum class RangeOfCharacters : SK_OT_BYTE { + Any = 0, + NoFit = 1, + ExtendedCollection = 2, + Litterals = 3, + NoLowerCase = 4, + SmallCaps = 5, + } bRangeOfCharacters; + } decorative; + + struct Pictoral { + 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; + + enum class Weight : SK_OT_BYTE { + NoFit = 1, + } bWeight; + + enum class Spacing : SK_OT_BYTE { + Any = 0, + NoFit = 1, + ProportionalSpaced = 2, + Monospaced = 3, + } bSpacing; + + enum class AspectRatioAndContrast : SK_OT_BYTE { + NoFit = 1, + } bAspectRatioAndContrast; + + 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; + + 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; + + 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; + + 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; +}; + +#pragma pack(pop) + + +static_assert(sizeof(SkPanose) == 10, "sizeof_SkPanose_not_10"); + +#endif |