extend custom typeface gm

Change-Id: I472e009ed78e4652a56a3987af0c488a238908b0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290638
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
diff --git a/gm/userfont.cpp b/gm/userfont.cpp
index 6a3bc89..b228ab1 100644
--- a/gm/userfont.cpp
+++ b/gm/userfont.cpp
@@ -41,39 +41,52 @@
 
 class UserFontGM : public skiagm::GM {
     sk_sp<SkTypeface> fTF;
-    sk_sp<SkTextBlob> fBlob;
 
-    SkPath fPath;
 public:
     UserFontGM() {}
 
     void onOnceBeforeDraw() override {
         fTF = make_tf();
+    }
 
-        SkFont font(fTF);
-        font.setSize(100);
+    static sk_sp<SkTextBlob> make_blob(sk_sp<SkTypeface> tf, float size) {
+        SkFont font(tf);
+        font.setSize(size);
         font.setEdging(SkFont::Edging::kAntiAlias);
-
-        fBlob = SkTextBlob::MakeFromString("User Typeface", font);
+        return SkTextBlob::MakeFromString("Typeface", font);
     }
 
     bool runAsBench() const override { return true; }
 
     SkString onShortName() override { return SkString("user_typeface"); }
 
-    SkISize onISize() override { return {512, 512}; }
+    SkISize onISize() override { return {810, 512}; }
 
     void onDraw(SkCanvas* canvas) override {
-        SkScalar x = 20,
-                 y = 250;
+        auto waterfall = [&](sk_sp<SkTypeface> tf) {
+            SkPaint paint;
+            paint.setAntiAlias(true);
 
-        SkPaint paint;
-        paint.setStyle(SkPaint::kStroke_Style);
-        canvas->drawRect(fBlob->bounds().makeOffset(x, y), paint);
+            float x = 20,
+                  y = 16;
+            for (float size = 9; size <= 100; size *= 1.25f) {
+                auto blob = make_blob(tf, size);
 
-        paint.setStyle(SkPaint::kFill_Style);
-        paint.setColor(SK_ColorRED);
-        canvas->drawTextBlob(fBlob, x, y, paint);
+                paint.setColor(0xFFCCCCCC);
+                paint.setStyle(SkPaint::kStroke_Style);
+                canvas->drawRect(blob->bounds().makeOffset(x, y), paint);
+
+                paint.setStyle(SkPaint::kFill_Style);
+                paint.setColor(SK_ColorBLACK);
+                canvas->drawTextBlob(blob, x, y, paint);
+
+                y += size * 1.5f;
+            }
+        };
+
+        waterfall(nullptr);
+        canvas->translate(400, 0);
+        waterfall(fTF);
     }
 };
 DEF_GM(return new UserFontGM;)