gfx/skia/trunk/src/sfnt/SkPanose.h

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

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

mercurial