Index: gm/textblobrandomfont.cpp |
diff --git a/gm/textblobrandomfont.cpp b/gm/textblobrandomfont.cpp |
index f7d3b5cb1c318a19ebaac1557486d220983dd78b..c1e754c290005d0aeffcd41fe20d054b8e816995 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; |
}; |