diff options
author | joshualitt <joshualitt@chromium.org> | 2015-08-01 10:33:40 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-08-01 10:33:40 -0700 |
commit | d45fb5a3a5e1d0867d9be2b44540c88f966bbd4e (patch) | |
tree | 2492c7f02097322263e4342cf467815eb5aa7974 /gm/textblobrandomfont.cpp | |
parent | 2a6f747cdd6636d6a9fb5a5f4fc6a3088c77238d (diff) |
Add BW masks to random scaler context
TBR=bsalomon@google.com
BUG=skia:
Committed: https://skia.googlesource.com/skia/+/a4a530614e9ba856aac3f16c29683e6a2a9153d9
Review URL: https://codereview.chromium.org/1270793003
Diffstat (limited to 'gm/textblobrandomfont.cpp')
-rw-r--r-- | gm/textblobrandomfont.cpp | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/gm/textblobrandomfont.cpp b/gm/textblobrandomfont.cpp index f7d3b5cb1c..c1e754c290 100644 --- a/gm/textblobrandomfont.cpp +++ b/gm/textblobrandomfont.cpp @@ -49,14 +49,36 @@ protected: SkRect bounds; paint.measureText(text, strlen(text), &bounds); - - SkScalar yOffset = bounds.height(); sk_tool_utils::add_to_text_blob(&builder, text, paint, 0, 0); // A8 + const char* bigtext1 = "The quick brown fox"; + const char* bigtext2 = "jumps over the lazy dog."; + paint.setTextSize(160); paint.setSubpixelText(false); paint.setLCDRenderText(false); - sk_tool_utils::add_to_text_blob(&builder, text, paint, 0, yOffset - 32); + paint.measureText(bigtext1, strlen(bigtext1), &bounds); + SkScalar offset = bounds.height(); + sk_tool_utils::add_to_text_blob(&builder, bigtext1, paint, 0, offset); + + paint.measureText(bigtext2, strlen(bigtext2), &bounds); + offset += bounds.height(); + sk_tool_utils::add_to_text_blob(&builder, bigtext2, paint, 0, offset); + + // color emoji + SkAutoTUnref<SkTypeface> origEmoji; + sk_tool_utils::emoji_typeface(&origEmoji); + const char* osName = sk_tool_utils::platform_os_name(); + // The mac emoji string will break us + if (origEmoji && (!strcmp(osName, "Android") || !strcmp(osName, "Ubuntu"))) { + const char* emojiText = sk_tool_utils::emoji_sample_text(); + paint.measureText(emojiText, strlen(emojiText), &bounds); + offset += bounds.height(); + SkAutoTUnref<SkTypeface> randomEmoji(SkNEW_ARGS(SkRandomTypeface, (orig, paint, + false))); + paint.setTypeface(randomEmoji); + sk_tool_utils::add_to_text_blob(&builder, emojiText, paint, 0, offset); + } // build fBlob.reset(builder.build()); @@ -88,9 +110,9 @@ protected: SkCanvas* c = surface->getCanvas(); - int stride = SkScalarCeilToInt(fBlob->bounds().height() / 2) + 10; - int yOffset = stride; - for (int i = 0; i < 10; i++) { + int stride = SkScalarCeilToInt(fBlob->bounds().height()); + int yOffset = stride / 8; + for (int i = 0; i < 1; i++) { // fiddle the canvas to force regen of textblobs canvas->rotate(i % 2 ? 0.0f : -0.05f); canvas->drawTextBlob(fBlob, 10.0f, SkIntToScalar(yOffset), paint); @@ -119,8 +141,8 @@ protected: private: SkAutoTUnref<const SkTextBlob> fBlob; - static const int kWidth = 1000; - static const int kHeight = 1000; + static const int kWidth = 2000; + static const int kHeight = 1600; typedef GM INHERITED; }; |