aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/core/SkTypeface.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/core/SkTypeface.h')
-rw-r--r--include/core/SkTypeface.h15
1 files changed, 8 insertions, 7 deletions
diff --git a/include/core/SkTypeface.h b/include/core/SkTypeface.h
index b2c288ebcd..deaa7140e6 100644
--- a/include/core/SkTypeface.h
+++ b/include/core/SkTypeface.h
@@ -150,10 +150,9 @@ public:
#endif
/** Return a new typeface given font data and configuration. If the data
- is not valid font data, returns nullptr. Ownership of the font data is
- transferred, so the caller must not reference it again.
+ is not valid font data, returns nullptr.
*/
- static sk_sp<SkTypeface> MakeFromFontData(SkFontData*);
+ static sk_sp<SkTypeface> MakeFromFontData(std::unique_ptr<SkFontData>);
/** Write a unique signature to a stream, sufficient to reconstruct a
typeface referencing the same font when Deserialize is called.
@@ -300,10 +299,9 @@ public:
SkStreamAsset* openStream(int* ttcIndex) const;
/**
- * Return the font data, or NULL on failure.
- * The caller is responsible for deleting the font data.
+ * Return the font data, or nullptr on failure.
*/
- SkFontData* createFontData() const;
+ std::unique_ptr<SkFontData> makeFontData() const;
/**
* Return a scalercontext for the given descriptor. If this fails, then
@@ -361,7 +359,10 @@ protected:
virtual SkStreamAsset* onOpenStream(int* ttcIndex) const = 0;
// TODO: make pure virtual.
- virtual SkFontData* onCreateFontData() const;
+ virtual std::unique_ptr<SkFontData> onMakeFontData() const;
+#ifdef SK_DECLARE_LEGACY_CREATE_FROM_FONTDATA
+ virtual SkFontData* onCreateFontData() const { return nullptr; };
+#endif
virtual void onGetFontDescriptor(SkFontDescriptor*, bool* isLocal) const = 0;