aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/textblobrandomfont.cpp
diff options
context:
space:
mode:
authorGravatar joshualitt <joshualitt@chromium.org>2015-08-01 10:33:40 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-08-01 10:33:40 -0700
commitd45fb5a3a5e1d0867d9be2b44540c88f966bbd4e (patch)
tree2492c7f02097322263e4342cf467815eb5aa7974 /gm/textblobrandomfont.cpp
parent2a6f747cdd6636d6a9fb5a5f4fc6a3088c77238d (diff)
Add BW masks to random scaler context
Diffstat (limited to 'gm/textblobrandomfont.cpp')
-rw-r--r--gm/textblobrandomfont.cpp38
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;
};