diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core/SkFontMgr.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/core/SkFontMgr.cpp b/src/core/SkFontMgr.cpp index 33eb2301bd..4e64de1186 100644 --- a/src/core/SkFontMgr.cpp +++ b/src/core/SkFontMgr.cpp @@ -172,12 +172,16 @@ sk_sp<SkTypeface> SkFontMgr::onMakeFromFontData(std::unique_ptr<SkFontData> data return this->makeFromStream(data->detachStream(), data->getIndex()); } +// A global function pointer that's not declared, but can be overriden at startup by test tools. +sk_sp<SkFontMgr> (*gSkFontMgr_DefaultFactory)() = nullptr; + sk_sp<SkFontMgr> SkFontMgr::RefDefault() { static SkOnce once; static sk_sp<SkFontMgr> singleton; once([]{ - sk_sp<SkFontMgr> fm = SkFontMgr::Factory(); + sk_sp<SkFontMgr> fm = gSkFontMgr_DefaultFactory ? gSkFontMgr_DefaultFactory() + : SkFontMgr::Factory(); singleton = fm ? std::move(fm) : sk_make_sp<SkEmptyFontMgr>(); }); return singleton; |