diff options
Diffstat (limited to 'src/ports')
-rw-r--r-- | src/ports/SkFontMgr_fontconfig.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/ports/SkFontMgr_fontconfig.cpp b/src/ports/SkFontMgr_fontconfig.cpp index 3589ae8100..e5aed18c60 100644 --- a/src/ports/SkFontMgr_fontconfig.cpp +++ b/src/ports/SkFontMgr_fontconfig.cpp @@ -525,6 +525,21 @@ public: return info; } + sk_sp<SkTypeface> onMakeClone(const SkFontArguments& args) const override { + std::unique_ptr<SkFontData> data = this->cloneFontData(args); + if (!data) { + return nullptr; + } + + SkString fFamilyName; + this->getFamilyName(&fFamilyName); + + return sk_make_sp<SkTypeface_stream>(std::move(data), + fFamilyName, + this->fontStyle(), + this->isFixedPitch()); + } + ~SkTypeface_fontconfig() override { // Hold the lock while unrefing the pattern. FCLocker lock; |