Index: include/core/SkTypeface.h |
diff --git a/include/core/SkTypeface.h b/include/core/SkTypeface.h |
index 3a47bd2bb3f3997adb6cdc2df342b13e17d74464..f22d2bd14f6c0ed2e48cff9599ec26c5a55be5cd 100644 |
--- a/include/core/SkTypeface.h |
+++ b/include/core/SkTypeface.h |
@@ -92,75 +92,51 @@ |
*/ |
static bool Equal(const SkTypeface* facea, const SkTypeface* faceb); |
- /** Returns the default typeface, which is never nullptr. */ |
- static sk_sp<SkTypeface> MakeDefault(Style style = SkTypeface::kNormal); |
-#ifdef SK_SUPPORT_LEGACY_TYPEFACE_PTR |
- static SkTypeface* RefDefault(Style style = SkTypeface::kNormal) { |
- return MakeDefault(style).release(); |
- } |
-#endif |
- |
- /** Return the typeface that most closely matches the requested familyName and style. |
- Pass nullptr as the familyName to request the default font for the requested style. |
- Will never return nullptr. |
+ /** |
+ * Returns a ref() to the default typeface. The caller must call unref() |
+ * when they are done referencing the object. Never returns NULL. |
+ */ |
+ static SkTypeface* RefDefault(Style style = SkTypeface::kNormal); |
+ |
+ /** Return a new reference to the typeface that most closely matches the |
+ requested familyName and style. Pass null as the familyName to return |
+ the default font for the requested style. Will never return null |
@param familyName May be NULL. The name of the font family. |
@param style The style (normal, bold, italic) of the typeface. |
- @return the closest-matching typeface. |
- */ |
- static sk_sp<SkTypeface> MakeFromName(const char familyName[], Style style); |
-#ifdef SK_SUPPORT_LEGACY_TYPEFACE_PTR |
- static SkTypeface* CreateFromName(const char familyName[], Style style) { |
- return MakeFromName(familyName, style).release(); |
- } |
-#endif |
- |
- /** Return the typeface that most closely matches the requested typeface and style. |
- Use this to pick a new style from the same family of the existing typeface. |
- If family is nullptr, this selects from the default font's family. |
+ @return reference to the closest-matching typeface. Call must call |
+ unref() when they are done. |
+ */ |
+ static SkTypeface* CreateFromName(const char familyName[], Style style); |
+ |
+ /** Return a new reference to the typeface that most closely matches the |
+ requested typeface and specified Style. Use this call if you want to |
+ pick a new style from the same family of the existing typeface. |
+ If family is NULL, this selects from the default font's family. |
@param family May be NULL. The name of the existing type face. |
@param s The style (normal, bold, italic) of the type face. |
- @return the closest-matching typeface. |
- */ |
- static sk_sp<SkTypeface> MakeFromTypeface(SkTypeface* family, Style); |
-#ifdef SK_SUPPORT_LEGACY_TYPEFACE_PTR |
- static SkTypeface* CreateFromTypeface(const SkTypeface* family, Style style) { |
- return MakeFromTypeface(const_cast<SkTypeface*>(family), style).release(); |
- } |
-#endif |
+ @return reference to the closest-matching typeface. Call must call |
+ unref() when they are done. |
+ */ |
+ static SkTypeface* CreateFromTypeface(const SkTypeface* family, Style s); |
/** Return a new typeface given a file. If the file does not exist, or is |
- not a valid font file, returns nullptr. |
- */ |
- static sk_sp<SkTypeface> MakeFromFile(const char path[], int index = 0); |
-#ifdef SK_SUPPORT_LEGACY_TYPEFACE_PTR |
- static SkTypeface* CreateFromFile(const char path[], int index = 0) { |
- return MakeFromFile(path, index).release(); |
- } |
-#endif |
+ not a valid font file, returns null. |
+ */ |
+ static SkTypeface* CreateFromFile(const char path[], int index = 0); |
/** Return a new typeface given a stream. If the stream is |
- not a valid font file, returns nullptr. Ownership of the stream is |
+ not a valid font file, returns null. Ownership of the stream is |
transferred, so the caller must not reference it again. |
*/ |
- static sk_sp<SkTypeface> MakeFromStream(SkStreamAsset* stream, int index = 0); |
-#ifdef SK_SUPPORT_LEGACY_TYPEFACE_PTR |
- static SkTypeface* CreateFromStream(SkStreamAsset* stream, int index = 0) { |
- return MakeFromStream(stream, index).release(); |
- } |
-#endif |
+ static SkTypeface* CreateFromStream(SkStreamAsset* stream, int index = 0); |
/** 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 |
+ is not valid font data, returns null. Ownership of the font data is |
transferred, so the caller must not reference it again. |
*/ |
- static sk_sp<SkTypeface> MakeFromFontData(SkFontData*); |
-#ifdef SK_SUPPORT_LEGACY_TYPEFACE_PTR |
- static SkTypeface* CreateFromFontData(SkFontData* fd) { |
- return MakeFromFontData(fd).release(); |
- } |
-#endif |
+ static SkTypeface* CreateFromFontData(SkFontData*); |
/** Write a unique signature to a stream, sufficient to reconstruct a |
typeface referencing the same font when Deserialize is called. |
@@ -168,16 +144,12 @@ |
void serialize(SkWStream*) const; |
/** Given the data previously written by serialize(), return a new instance |
- of a typeface referring to the same font. If that font is not available, |
- return nullptr. |
+ to a typeface referring to the same font. If that font is not available, |
+ return null. If an instance is returned, the caller is responsible for |
+ calling unref() when they are done with it. |
Does not affect ownership of SkStream. |
*/ |
- static sk_sp<SkTypeface> MakeDeserialize(SkStream*); |
-#ifdef SK_SUPPORT_LEGACY_TYPEFACE_PTR |
- static SkTypeface* Deserialize(SkStream* stream) { |
- return MakeDeserialize(stream).release(); |
- } |
-#endif |
+ static SkTypeface* Deserialize(SkStream*); |
enum Encoding { |
kUTF8_Encoding, |
@@ -423,6 +395,9 @@ |
uint32_t glyphIDsCount = 0) const; |
private: |
+ static SkTypeface* CreateDefault(int style); // SkLazyPtr requires an int, not a Style. |
+ static void DeleteDefault(SkTypeface*); |
+ |
SkFontID fUniqueID; |
SkFontStyle fStyle; |
mutable SkRect fBounds; |