Implement onMakeClone(const SkFontArguments& args) in class SkTypeface_AndroidSystem.
Add FontMgrAndroidSystemVariableTypeface test to test the above
function.
Change-Id: I36a2f65550784a86feecc6ef69a870a33e973804
Reviewed-on: https://skia-review.googlesource.com/136248
Commit-Queue: Bruce Wang <brucewang@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
diff --git a/src/ports/SkFontMgr_android.cpp b/src/ports/SkFontMgr_android.cpp
index 5194e1f..a7cbd97 100644
--- a/src/ports/SkFontMgr_android.cpp
+++ b/src/ports/SkFontMgr_android.cpp
@@ -98,6 +98,22 @@
return skstd::make_unique<SkFontData>(this->makeStream(), fIndex,
fAxes.begin(), fAxes.count());
}
+ sk_sp<SkTypeface> onMakeClone(const SkFontArguments& args) const override {
+ std::unique_ptr<SkFontData> data = this->cloneFontData(args);
+ if (!data) {
+ return nullptr;
+ }
+ return sk_make_sp<SkTypeface_AndroidSystem>(fPathName,
+ fFile,
+ fIndex,
+ data->getAxis(),
+ data->getAxisCount(),
+ this->fontStyle(),
+ this->isFixedPitch(),
+ fFamilyName,
+ fLang,
+ fVariantStyle);
+ }
const SkString fPathName;
int fIndex;