diff options
Diffstat (limited to 'include/ports')
-rw-r--r-- | include/ports/SkFontMgr.h | 17 | ||||
-rw-r--r-- | include/ports/SkFontMgr_FontConfigInterface.h | 4 | ||||
-rw-r--r-- | include/ports/SkFontMgr_android.h | 4 | ||||
-rw-r--r-- | include/ports/SkFontMgr_custom.h | 8 | ||||
-rw-r--r-- | include/ports/SkFontMgr_fontconfig.h | 4 | ||||
-rw-r--r-- | include/ports/SkTypeface_win.h | 25 |
6 files changed, 57 insertions, 5 deletions
diff --git a/include/ports/SkFontMgr.h b/include/ports/SkFontMgr.h index afadeaaa97..a9317d31e4 100644 --- a/include/ports/SkFontMgr.h +++ b/include/ports/SkFontMgr.h @@ -165,11 +165,12 @@ public: SkTypeface* legacyCreateTypeface(const char familyName[], SkFontStyle style) const; - /** - * Return a ref to the default fontmgr. The caller must call unref() on - * the returned object. - */ + /** Return the default fontmgr. */ +#ifdef SK_LEGACY_FONTMGR_FACTORY static SkFontMgr* RefDefault(); +#else + static sk_sp<SkFontMgr> RefDefault(); +#endif protected: virtual int onCountFamilies() const = 0; @@ -197,7 +198,13 @@ protected: virtual SkTypeface* onLegacyCreateTypeface(const char familyName[], SkFontStyle) const = 0; private: - static SkFontMgr* Factory(); // implemented by porting layer + + /** Implemented by porting layer to return the default factory. */ +#ifdef SK_LEGACY_FONTMGR_FACTORY + static SkFontMgr* Factory(); +#else + static sk_sp<SkFontMgr> Factory(); +#endif typedef SkRefCnt INHERITED; }; diff --git a/include/ports/SkFontMgr_FontConfigInterface.h b/include/ports/SkFontMgr_FontConfigInterface.h index 356e54c87d..6cf34d013c 100644 --- a/include/ports/SkFontMgr_FontConfigInterface.h +++ b/include/ports/SkFontMgr_FontConfigInterface.h @@ -15,6 +15,10 @@ class SkFontMgr; class SkFontConfigInterface; /** Creates a SkFontMgr which wraps a SkFontConfigInterface. */ +#ifdef SK_LEGACY_FONTMGR_FACTORY SK_API SkFontMgr* SkFontMgr_New_FCI(sk_sp<SkFontConfigInterface> fci); +#else +SK_API sk_sp<SkFontMgr> SkFontMgr_New_FCI(sk_sp<SkFontConfigInterface> fci); +#endif #endif // #ifndef SkFontMgr_FontConfigInterface_DEFINED diff --git a/include/ports/SkFontMgr_android.h b/include/ports/SkFontMgr_android.h index f12f51f36a..9ed435dc0d 100644 --- a/include/ports/SkFontMgr_android.h +++ b/include/ports/SkFontMgr_android.h @@ -47,6 +47,10 @@ struct SkFontMgr_Android_CustomFonts { }; /** Create a font manager for Android. If 'custom' is NULL, use only system fonts. */ +#ifdef SK_LEGACY_FONTMGR_FACTORY SK_API SkFontMgr* SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom); +#else +SK_API sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom); +#endif #endif // SkFontMgr_android_DEFINED diff --git a/include/ports/SkFontMgr_custom.h b/include/ports/SkFontMgr_custom.h index 53be63db1b..9d3986d161 100644 --- a/include/ports/SkFontMgr_custom.h +++ b/include/ports/SkFontMgr_custom.h @@ -13,9 +13,17 @@ class SkFontMgr; /** Create a custom font manager which scans a given directory for font files. */ +#ifdef SK_LEGACY_FONTMGR_FACTORY SK_API SkFontMgr* SkFontMgr_New_Custom_Directory(const char* dir); +#else +SK_API sk_sp<SkFontMgr> SkFontMgr_New_Custom_Directory(const char* dir); +#endif /** Create a custom font manager that contains no built-in fonts. */ +#ifdef SK_LEGACY_FONTMGR_FACTORY SK_API SkFontMgr* SkFontMgr_New_Custom_Empty(); +#else +SK_API sk_sp<SkFontMgr> SkFontMgr_New_Custom_Empty(); +#endif #endif // SkFontMgr_custom_DEFINED diff --git a/include/ports/SkFontMgr_fontconfig.h b/include/ports/SkFontMgr_fontconfig.h index 7a59ff0c46..ed479828ea 100644 --- a/include/ports/SkFontMgr_fontconfig.h +++ b/include/ports/SkFontMgr_fontconfig.h @@ -17,6 +17,10 @@ class SkFontMgr; * If 'fc' is NULL, will use a new default config. * Takes ownership of 'fc' and will call FcConfigDestroy on it. */ +#ifdef SK_LEGACY_FONTMGR_FACTORY SK_API SkFontMgr* SkFontMgr_New_FontConfig(FcConfig* fc); +#else +SK_API sk_sp<SkFontMgr> SkFontMgr_New_FontConfig(FcConfig* fc); +#endif #endif // #ifndef SkFontMgr_fontconfig_DEFINED diff --git a/include/ports/SkTypeface_win.h b/include/ports/SkTypeface_win.h index f3a881f3cc..e332f00b72 100644 --- a/include/ports/SkTypeface_win.h +++ b/include/ports/SkTypeface_win.h @@ -44,6 +44,7 @@ struct IDWriteFactory; struct IDWriteFontCollection; struct IDWriteFontFallback; +#ifdef SK_LEGACY_FONTMGR_FACTORY SK_API SkFontMgr* SkFontMgr_New_GDI(); SK_API SkFontMgr* SkFontMgr_New_DirectWrite(IDWriteFactory* factory = NULL, IDWriteFontCollection* collection = NULL); @@ -66,6 +67,30 @@ SK_API SkFontMgr* SkFontMgr_New_DirectWriteRenderer(sk_sp<SkRemotableFontMgr>); * If DirectWrite could not be initialized, will return NULL. */ SK_API SkRemotableFontMgr* SkRemotableFontMgr_New_DirectWrite(); +#else +SK_API sk_sp<SkFontMgr> SkFontMgr_New_GDI(); +SK_API sk_sp<SkFontMgr> SkFontMgr_New_DirectWrite(IDWriteFactory* factory = NULL, + IDWriteFontCollection* collection = NULL); +SK_API sk_sp<SkFontMgr> SkFontMgr_New_DirectWrite(IDWriteFactory* factory, + IDWriteFontCollection* collection, + IDWriteFontFallback* fallback); + +/** + * Creates an SkFontMgr which renders using DirectWrite and obtains its data + * from the SkRemotableFontMgr. + * + * If DirectWrite could not be initialized, will return NULL. + */ +SK_API sk_sp<SkFontMgr> SkFontMgr_New_DirectWriteRenderer(sk_sp<SkRemotableFontMgr>); + +/** + * Creates an SkRemotableFontMgr backed by DirectWrite using the default + * system font collection in the current locale. + * + * If DirectWrite could not be initialized, will return NULL. + */ +SK_API sk_sp<SkRemotableFontMgr> SkRemotableFontMgr_New_DirectWrite(); +#endif #endif // SK_BUILD_FOR_WIN #endif // SkTypeface_win_DEFINED |