start to use font for measure, not paint

-- lots more where this came from

Bug: skia:2664
Change-Id: I8bb47f02c156b0b88fbb92fec73af0eb6641b1bf
Reviewed-on: https://skia-review.googlesource.com/c/173769
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
diff --git a/bench/FontCacheBench.cpp b/bench/FontCacheBench.cpp
index beae47a..2eb2b71 100644
--- a/bench/FontCacheBench.cpp
+++ b/bench/FontCacheBench.cpp
@@ -36,15 +36,14 @@
     }
 
     void onDraw(int loops, SkCanvas* canvas) override {
-        SkPaint paint;
-        this->setupPaint(&paint);
-        paint.setTextEncoding(SkPaint::kGlyphID_TextEncoding);
+        SkFont font;
+        font.setEdging(SkFont::Edging::kAntiAlias);
 
         const uint16_t* array = gUniqueGlyphIDs;
         while (*array != gUniqueGlyphIDs_Sentinel) {
             int count = count_glyphs(array);
             for (int i = 0; i < loops; ++i) {
-                paint.measureText(array, count * sizeof(uint16_t));
+                (void)font.measureText(array, count * sizeof(uint16_t), kGlyphID_SkTextEncoding);
             }
             array += count + 1;    // skip the sentinel
         }
diff --git a/bench/PicturePlaybackBench.cpp b/bench/PicturePlaybackBench.cpp
index 54ecd3c..40dde4b 100644
--- a/bench/PicturePlaybackBench.cpp
+++ b/bench/PicturePlaybackBench.cpp
@@ -17,130 +17,8 @@
 
 // This is designed to emulate about 4 screens of textual content
 
-
-class PicturePlaybackBench : public Benchmark {
-public:
-    PicturePlaybackBench(const char name[])  {
-        fName.printf("picture_playback_%s", name);
-        fPictureWidth = SkIntToScalar(PICTURE_WIDTH);
-        fPictureHeight = SkIntToScalar(PICTURE_HEIGHT);
-        fTextSize = SkIntToScalar(TEXT_SIZE);
-    }
-
-    enum {
-        PICTURE_WIDTH = 1000,
-        PICTURE_HEIGHT = 4000,
-        TEXT_SIZE = 10
-    };
-protected:
-    virtual const char* onGetName() {
-        return fName.c_str();
-    }
-
-    virtual void onDraw(int loops, SkCanvas* canvas) {
-
-        SkPictureRecorder recorder;
-        SkCanvas* pCanvas = recorder.beginRecording(PICTURE_WIDTH, PICTURE_HEIGHT, nullptr, 0);
-        this->recordCanvas(pCanvas);
-        sk_sp<SkPicture> picture(recorder.finishRecordingAsPicture());
-
-        const SkPoint translateDelta = getTranslateDelta(loops);
-
-        for (int i = 0; i < loops; i++) {
-            picture->playback(canvas);
-            canvas->translate(translateDelta.fX, translateDelta.fY);
-        }
-    }
-
-    virtual void recordCanvas(SkCanvas* canvas) = 0;
-    virtual SkPoint getTranslateDelta(int N) {
-        SkIPoint canvasSize = onGetSize();
-        return SkPoint::Make(SkIntToScalar((PICTURE_WIDTH - canvasSize.fX)/N),
-                             SkIntToScalar((PICTURE_HEIGHT- canvasSize.fY)/N));
-    }
-
-    SkString fName;
-    SkScalar fPictureWidth;
-    SkScalar fPictureHeight;
-    SkScalar fTextSize;
-private:
-    typedef Benchmark INHERITED;
-};
-
-
-class TextPlaybackBench : public PicturePlaybackBench {
-public:
-    TextPlaybackBench() : INHERITED("drawText") { }
-protected:
-    void recordCanvas(SkCanvas* canvas) override {
-        SkPaint paint;
-        paint.setTextSize(fTextSize);
-        paint.setColor(SK_ColorBLACK);
-
-        const char* text = "Hamburgefons";
-        size_t len = strlen(text);
-        const SkScalar textWidth = paint.measureText(text, len);
-
-        for (SkScalar x = 0; x < fPictureWidth; x += textWidth) {
-            for (SkScalar y = 0; y < fPictureHeight; y += fTextSize) {
-                canvas->drawText(text, len, x, y, paint);
-            }
-        }
-    }
-private:
-    typedef PicturePlaybackBench INHERITED;
-};
-
-class PosTextPlaybackBench : public PicturePlaybackBench {
-public:
-    PosTextPlaybackBench(bool drawPosH)
-        : INHERITED(drawPosH ? "drawPosTextH" : "drawPosText")
-        , fDrawPosH(drawPosH) { }
-protected:
-    void recordCanvas(SkCanvas* canvas) override {
-        SkPaint paint;
-        paint.setTextSize(fTextSize);
-        paint.setColor(SK_ColorBLACK);
-
-        const char* text = "Hamburgefons";
-        size_t len = strlen(text);
-        const SkScalar textWidth = paint.measureText(text, len);
-
-        SkScalar* adv = new SkScalar[len];
-        paint.getTextWidths(text, len, adv);
-
-        for (SkScalar x = 0; x < fPictureWidth; x += textWidth) {
-            for (SkScalar y = 0; y < fPictureHeight; y += fTextSize) {
-
-                SkPoint* pos = new SkPoint[len];
-                SkScalar advX = 0;
-
-                for (size_t i = 0; i < len; i++) {
-                    if (fDrawPosH)
-                        pos[i].set(x + advX, y);
-                    else
-                        pos[i].set(x + advX, y + i);
-                    advX += adv[i];
-                }
-
-                canvas->drawPosText(text, len, pos, paint);
-                delete[] pos;
-            }
-        }
-        delete[] adv;
-    }
-private:
-    bool fDrawPosH;
-    typedef PicturePlaybackBench INHERITED;
-};
-
-
 ///////////////////////////////////////////////////////////////////////////////
 
-DEF_BENCH( return new TextPlaybackBench(); )
-DEF_BENCH( return new PosTextPlaybackBench(true); )
-DEF_BENCH( return new PosTextPlaybackBench(false); )
-
 // Chrome draws into small tiles with impl-side painting.
 // This benchmark measures the relative performance of our bounding-box hierarchies,
 // both when querying tiles perfectly and when not.