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 = SkPin32(weight, kThin_Weight, kBlack_Weight); 22 fUnion.fR.fWidth = SkPin32(width, kUltraCondensed_Width, kUltaExpanded_Width); 23 fUnion.fR.fSlant = SkPin32(slant, kUpright_Slant, kItalic_Slant); 24 } 25 26 SkFontStyle::SkFontStyle(unsigned oldStyle) { 27 fUnion.fU32 = 0; 28 fUnion.fR.fWeight = (oldStyle & SkTypeface::kBold) ? SkFontStyle::kBold_Weight 29 : SkFontStyle::kNormal_Weight; 30 fUnion.fR.fWidth = SkFontStyle::kNormal_Width; 31 fUnion.fR.fSlant = (oldStyle & SkTypeface::kItalic) ? SkFontStyle::kItalic_Slant 32 : SkFontStyle::kUpright_Slant; 33 } 34