aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
authorGravatar scroggo <scroggo@google.com>2016-05-12 06:22:30 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-05-12 06:22:30 -0700
commit9a9a7b29e5e5916a7b6453cd124ca437f14b9da4 (patch)
treead5b560f6ed5da12040e5665282fd2227c305ff8 /tools
parenta1b283345b27fef91908b104a30cb89e6fbdaade (diff)
Revert of Move SkTypeface to sk_sp. (patchset #5 id:80001 of https://codereview.chromium.org/1933393002/ )
Reason for revert: fontmgr_iterAndroid failing to draw emoji. E.g. 6296da736fbf40aae881650c239420f64e576c3f&unt=true&head=true&query=source_type%3Dgm">https://gold.skia.org/search2?blame=6296da736fbf40aae881650c239420f64e576c3f&unt=true&head=true&query=source_type%3Dgm Original issue's description: > Move SkTypeface to sk_sp. > > Committed: https://skia.googlesource.com/skia/+/6296da736fbf40aae881650c239420f64e576c3f TBR=reed@google.com,fmalita@chromium.org,tomhudson@google.com,bungeman@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/1974783002
Diffstat (limited to 'tools')
-rw-r--r--tools/Resources.cpp4
-rw-r--r--tools/Resources.h2
-rw-r--r--tools/debugger/SkDrawCommand.cpp3
-rw-r--r--tools/sk_tool_utils.cpp18
-rw-r--r--tools/sk_tool_utils.h6
-rw-r--r--tools/sk_tool_utils_font.cpp7
-rw-r--r--tools/using_skia_and_harfbuzz.cpp4
7 files changed, 25 insertions, 19 deletions
diff --git a/tools/Resources.cpp b/tools/Resources.cpp
index 6d3054ab33..0117404ac2 100644
--- a/tools/Resources.cpp
+++ b/tools/Resources.cpp
@@ -49,10 +49,10 @@ SkStreamAsset* GetResourceAsStream(const char* resource) {
}
}
-sk_sp<SkTypeface> MakeResourceAsTypeface(const char* resource) {
+SkTypeface* GetResourceAsTypeface(const char* resource) {
SkAutoTDelete<SkStreamAsset> stream(GetResourceAsStream(resource));
if (!stream) {
return nullptr;
}
- return SkTypeface::MakeFromStream(stream.release());
+ return SkTypeface::CreateFromStream(stream.release());
}
diff --git a/tools/Resources.h b/tools/Resources.h
index 8115fbbb85..678e4c8627 100644
--- a/tools/Resources.h
+++ b/tools/Resources.h
@@ -22,6 +22,6 @@ void SetResourcePath(const char* );
bool GetResourceAsBitmap(const char* resource, SkBitmap* dst);
sk_sp<SkImage> GetResourceAsImage(const char* resource);
SkStreamAsset* GetResourceAsStream(const char* resource);
-sk_sp<SkTypeface> MakeResourceAsTypeface(const char* resource);
+SkTypeface* GetResourceAsTypeface(const char* resource);
#endif // Resources_DEFINED
diff --git a/tools/debugger/SkDrawCommand.cpp b/tools/debugger/SkDrawCommand.cpp
index b95a9b89d1..4a88fa1b33 100644
--- a/tools/debugger/SkDrawCommand.cpp
+++ b/tools/debugger/SkDrawCommand.cpp
@@ -1214,7 +1214,8 @@ static void extract_json_paint_typeface(Json::Value& jsonPaint, UrlDataManager&
const void* data;
Json::ArrayIndex length = decode_data(jsonData, urlDataManager, &data);
SkMemoryStream buffer(data, length);
- target->setTypeface(SkTypeface::MakeDeserialize(&buffer));
+ SkTypeface* typeface = SkTypeface::Deserialize(&buffer);
+ target->setTypeface(typeface);
}
}
diff --git a/tools/sk_tool_utils.cpp b/tools/sk_tool_utils.cpp
index 7343ce4744..f46ebb6e60 100644
--- a/tools/sk_tool_utils.cpp
+++ b/tools/sk_tool_utils.cpp
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2014 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
@@ -75,14 +75,17 @@ const char* platform_os_emoji() {
return "";
}
-sk_sp<SkTypeface> emoji_typeface() {
+void emoji_typeface(SkAutoTUnref<SkTypeface>* tf) {
if (!strcmp(sk_tool_utils::platform_os_emoji(), "CBDT")) {
- return MakeResourceAsTypeface("/fonts/Funkster.ttf");
+ tf->reset(GetResourceAsTypeface("/fonts/Funkster.ttf"));
+ return;
}
if (!strcmp(sk_tool_utils::platform_os_emoji(), "SBIX")) {
- return SkTypeface::MakeFromName("Apple Color Emoji", SkTypeface::kNormal);
+ tf->reset(SkTypeface::CreateFromName("Apple Color Emoji", SkTypeface::kNormal));
+ return;
}
- return nullptr;
+ tf->reset(nullptr);
+ return;
}
const char* emoji_sample_text() {
@@ -156,12 +159,13 @@ SkColor color_to_565(SkColor color) {
return SkPixel16ToColor(color16);
}
-sk_sp<SkTypeface> create_portable_typeface(const char* name, SkTypeface::Style style) {
+SkTypeface* create_portable_typeface(const char* name, SkTypeface::Style style) {
return create_font(name, style);
}
void set_portable_typeface(SkPaint* paint, const char* name, SkTypeface::Style style) {
- paint->setTypeface(create_font(name, style));
+ SkTypeface* face = create_font(name, style);
+ SkSafeUnref(paint->setTypeface(face));
}
void write_pixels(SkCanvas* canvas, const SkBitmap& bitmap, int x, int y,
diff --git a/tools/sk_tool_utils.h b/tools/sk_tool_utils.h
index a16c2a2f6e..1d80731fd4 100644
--- a/tools/sk_tool_utils.h
+++ b/tools/sk_tool_utils.h
@@ -36,7 +36,7 @@ namespace sk_tool_utils {
/**
* Return a color emoji typeface if available.
*/
- sk_sp<SkTypeface> emoji_typeface();
+ void emoji_typeface(SkAutoTUnref<SkTypeface>* );
/**
* If the platform supports color emoji, return sample text the emoji can render.
@@ -77,7 +77,7 @@ namespace sk_tool_utils {
/**
* Returns a platform-independent text renderer.
*/
- sk_sp<SkTypeface> create_portable_typeface(const char* name, SkTypeface::Style style);
+ SkTypeface* create_portable_typeface(const char* name, SkTypeface::Style style);
/** Call to clean up portable font references. */
void release_portable_typefaces();
@@ -89,7 +89,7 @@ namespace sk_tool_utils {
void write_pixels(SkCanvas*, const SkBitmap&, int x, int y, SkColorType, SkAlphaType);
// private to sk_tool_utils
- sk_sp<SkTypeface> create_font(const char* name, SkTypeface::Style);
+ SkTypeface* create_font(const char* name, SkTypeface::Style);
/** Returns a newly created CheckerboardShader. */
sk_sp<SkShader> create_checkerboard_shader(SkColor c1, SkColor c2, int size);
diff --git a/tools/sk_tool_utils_font.cpp b/tools/sk_tool_utils_font.cpp
index f73576dbf6..adbfa1692b 100644
--- a/tools/sk_tool_utils_font.cpp
+++ b/tools/sk_tool_utils_font.cpp
@@ -29,7 +29,7 @@ void release_portable_typefaces() {
SK_DECLARE_STATIC_MUTEX(gTestFontMutex);
-sk_sp<SkTypeface> create_font(const char* name, SkTypeface::Style style) {
+SkTypeface* create_font(const char* name, SkTypeface::Style style) {
SkTestFontData* fontData = nullptr;
const SubFont* sub;
if (name) {
@@ -47,8 +47,7 @@ sk_sp<SkTypeface> create_font(const char* name, SkTypeface::Style style) {
// If we called SkTypeface::CreateFromName() here we'd recurse infinitely,
// so we reimplement its core logic here inline without the recursive aspect.
SkAutoTUnref<SkFontMgr> fm(SkFontMgr::RefDefault());
- return sk_sp<SkTypeface>(fm->legacyCreateTypeface(name,
- SkFontStyle::FromOldStyle(style)));
+ return fm->legacyCreateTypeface(name, SkFontStyle::FromOldStyle(style));
}
} else {
sub = &gSubFonts[gDefaultFontIndex];
@@ -66,7 +65,7 @@ sk_sp<SkTypeface> create_font(const char* name, SkTypeface::Style style) {
fontData->fFontCache = SkSafeRef(font);
}
}
- return sk_make_sp<SkTestTypeface>(font, SkFontStyle::FromOldStyle(style));
+ return new SkTestTypeface(font, SkFontStyle::FromOldStyle(style));
}
}
diff --git a/tools/using_skia_and_harfbuzz.cpp b/tools/using_skia_and_harfbuzz.cpp
index 86c9accd33..413939d15b 100644
--- a/tools/using_skia_and_harfbuzz.cpp
+++ b/tools/using_skia_and_harfbuzz.cpp
@@ -142,7 +142,9 @@ struct Face {
auto data = SkData::MakeFromFileName(path);
assert(data);
if (!data) { return; }
- fSkiaTypeface = SkTypeface::MakeFromStream(new SkMemoryStream(data), index);
+ fSkiaTypeface.reset(
+ SkTypeface::CreateFromStream(
+ new SkMemoryStream(data), index));
assert(fSkiaTypeface);
if (!fSkiaTypeface) { return; }
auto destroy = [](void *d) { static_cast<SkData*>(d)->unref(); };