Index: src/core/SkTypeface.cpp |
diff --git a/src/core/SkTypeface.cpp b/src/core/SkTypeface.cpp |
index 855ef909e8c4c17a53c60bb5b708086efbe94391..136dc2da7df52b301f4d233b31b9c080ae98c3df 100644 |
--- a/src/core/SkTypeface.cpp |
+++ b/src/core/SkTypeface.cpp |
@@ -96,10 +96,20 @@ SkTypeface* SkTypeface::GetDefaultTypeface(Style style) { |
}); |
} |
+SkTypeface* SkTypeface::GetDefaultTypeface(SkFontStyle style) { |
+ SkAutoTUnref<SkFontMgr> fm(SkFontMgr::RefDefault()); |
+ SkTypeface* t = fm->matchFamilyStyle(nullptr, style); |
+ return t ? t : SkEmptyTypeface::Create(); |
+} |
+ |
SkTypeface* SkTypeface::RefDefault(Style style) { |
return SkRef(GetDefaultTypeface(style)); |
} |
+SkTypeface* SkTypeface::RefDefault(SkFontStyle style) { |
+ return SkRef(GetDefaultTypeface(style)); |
+} |
+ |
uint32_t SkTypeface::UniqueID(const SkTypeface* face) { |
if (nullptr == face) { |
face = GetDefaultTypeface(); |
@@ -127,6 +137,14 @@ SkTypeface* SkTypeface::CreateFromName(const char name[], Style style) { |
return fm->legacyCreateTypeface(name, SkFontStyle::FromOldStyle(style)); |
} |
+SkTypeface* SkTypeface::CreateFromName(const char name[], SkFontStyle style) { |
+ if (nullptr == name) { |
+ return RefDefault(style); |
+ } |
+ SkAutoTUnref<SkFontMgr> fm(SkFontMgr::RefDefault()); |
+ return fm->matchFamilyStyle(name, style); |
+} |
+ |
SkTypeface* SkTypeface::CreateFromTypeface(const SkTypeface* family, Style s) { |
if (!family) { |
return SkTypeface::RefDefault(s); |