Home | History | Annotate | Download | only in core
      1 /*
      2  * Copyright 2015 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  */
      7 
      8 #include "SkFontStyle.h"
      9 #include "SkTypeface.h"
     10 #include "SkTypes.h"
     11 
     12 SkFontStyle::SkFontStyle() {
     13     fUnion.fU32 = 0;
     14     fUnion.fR.fWeight = kNormal_Weight;
     15     fUnion.fR.fWidth = kNormal_Width;
     16     fUnion.fR.fSlant = kUpright_Slant;
     17 }
     18 
     19 SkFontStyle::SkFontStyle(int weight, int width, Slant slant) {
     20     fUnion.fU32 = 0;
     21     fUnion.fR.fWeight = SkTPin<int>(weight, kInvisible_Weight, kExtraBlack_Weight);
     22     fUnion.fR.fWidth = SkTPin<int>(width, kUltraCondensed_Width, kUltraExpanded_Width);
     23     fUnion.fR.fSlant = SkTPin<int>(slant, kUpright_Slant, kOblique_Slant);
     24 }
     25 
     26 /*static*/SkFontStyle SkFontStyle::FromOldStyle(unsigned oldStyle) {
     27     return SkFontStyle((oldStyle & SkTypeface::kBold) ? SkFontStyle::kBold_Weight
     28                                                       : SkFontStyle::kNormal_Weight,
     29                        SkFontStyle::kNormal_Width,
     30                        (oldStyle & SkTypeface::kItalic) ? SkFontStyle::kItalic_Slant
     31                                                         : SkFontStyle::kUpright_Slant);
     32 }
     33