diff options
author | kulshin <kulshin@chromium.org> | 2016-02-03 07:22:52 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-02-03 07:22:52 -0800 |
commit | 69d160326659dcf64e1584018b713631ddbc061c (patch) | |
tree | 9bfb784b713e89a4a84125c900d522924cd54393 /src/ports/SkFontMgr_win_dw.cpp | |
parent | 37ed996f2d8960763578925a0a8210c59d59d8b0 (diff) |
Add option to specify a font collection when creating a
DirectWrite font manager.
The corresponding Chromium change can be found at
https://codereview.chromium.org/1591883002/ .
TBR=reed
This is a trivial and long planned addition to the API.
Review URL: https://codereview.chromium.org/1607083003
Diffstat (limited to 'src/ports/SkFontMgr_win_dw.cpp')
-rw-r--r-- | src/ports/SkFontMgr_win_dw.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/ports/SkFontMgr_win_dw.cpp b/src/ports/SkFontMgr_win_dw.cpp index ef09210e38..11afec3b53 100644 --- a/src/ports/SkFontMgr_win_dw.cpp +++ b/src/ports/SkFontMgr_win_dw.cpp @@ -1067,7 +1067,8 @@ SkTypeface* SkFontStyleSet_DirectWrite::matchStyle(const SkFontStyle& pattern) { //////////////////////////////////////////////////////////////////////////////// #include "SkTypeface_win.h" -SK_API SkFontMgr* SkFontMgr_New_DirectWrite(IDWriteFactory* factory) { +SK_API SkFontMgr* SkFontMgr_New_DirectWrite(IDWriteFactory* factory, + IDWriteFontCollection* collection) { if (nullptr == factory) { factory = sk_get_dwrite_factory(); if (nullptr == factory) { @@ -1075,9 +1076,12 @@ SK_API SkFontMgr* SkFontMgr_New_DirectWrite(IDWriteFactory* factory) { } } - SkTScopedComPtr<IDWriteFontCollection> sysFontCollection; - HRNM(factory->GetSystemFontCollection(&sysFontCollection, FALSE), - "Could not get system font collection."); + SkTScopedComPtr<IDWriteFontCollection> systemFontCollection; + if (nullptr == collection) { + HRNM(factory->GetSystemFontCollection(&systemFontCollection, FALSE), + "Could not get system font collection."); + collection = systemFontCollection.get(); + } WCHAR localeNameStorage[LOCALE_NAME_MAX_LENGTH]; WCHAR* localeName = nullptr; @@ -1095,7 +1099,7 @@ SK_API SkFontMgr* SkFontMgr_New_DirectWrite(IDWriteFactory* factory) { }; } - return new SkFontMgr_DirectWrite(factory, sysFontCollection.get(), localeName, localeNameLen); + return new SkFontMgr_DirectWrite(factory, collection, localeName, localeNameLen); } #include "SkFontMgr_indirect.h" |