diff options
Diffstat (limited to 'src/ports/SkFontMgr_android.cpp')
-rw-r--r-- | src/ports/SkFontMgr_android.cpp | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/src/ports/SkFontMgr_android.cpp b/src/ports/SkFontMgr_android.cpp index 4677a1f86d..508ad4c9c1 100644 --- a/src/ports/SkFontMgr_android.cpp +++ b/src/ports/SkFontMgr_android.cpp @@ -44,7 +44,7 @@ public: SkTypeface_Android(int index, const SkFontStyle& style, bool isFixedPitch, - const SkString familyName) + const SkString& familyName) : INHERITED(style, SkTypefaceCache::NewFontID(), isFixedPitch) , fIndex(index) , fFamilyName(familyName) { } @@ -63,11 +63,11 @@ private: class SkTypeface_AndroidSystem : public SkTypeface_Android { public: - SkTypeface_AndroidSystem(const SkString pathName, + SkTypeface_AndroidSystem(const SkString& pathName, int index, const SkFontStyle& style, bool isFixedPitch, - const SkString familyName, + const SkString& familyName, const SkLanguage& lang, FontVariant variantStyle) : INHERITED(index, style, isFixedPitch, familyName) @@ -102,7 +102,7 @@ public: int index, const SkFontStyle& style, bool isFixedPitch, - const SkString familyName) + const SkString& familyName) : INHERITED(index, style, isFixedPitch, familyName) , fStream(SkRef(stream)) { } @@ -167,6 +167,10 @@ public: continue; } + if (fontFile.fWeight != 0) { + style = SkFontStyle(fontFile.fWeight, style.width(), style.slant()); + } + const SkLanguage& lang = family.fLanguage; uint32_t variant = family.fVariant; if (kDefault_FontVariant == variant) { @@ -231,16 +235,7 @@ public: private: SkFontStyle style(int index) { - return SkFontStyle(this->weight(index), SkFontStyle::kNormal_Width, - this->slant(index)); - } - SkFontStyle::Weight weight(int index) { - if (fStyles[index]->isBold()) return SkFontStyle::kBold_Weight; - return SkFontStyle::kNormal_Weight; - } - SkFontStyle::Slant slant(int index) { - if (fStyles[index]->isItalic()) return SkFontStyle::kItalic_Slant; - return SkFontStyle::kUpright_Slant; + return fStyles[index]->fontStyle(); } static int match_score(const SkFontStyle& pattern, const SkFontStyle& candidate) { int score = 0; |