Use SkTextEncoding enum instead of macros.

Change-Id: I4b6259590fa0693ee0522b4999a1c0fe250b173d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/212504
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
diff --git a/gm/all_bitmap_configs.cpp b/gm/all_bitmap_configs.cpp
index 7f3496a..5a8387e 100644
--- a/gm/all_bitmap_configs.cpp
+++ b/gm/all_bitmap_configs.cpp
@@ -74,8 +74,8 @@
 static void draw_center_letter(char c, const SkFont& font, SkColor color,
                                SkScalar x, SkScalar y, SkCanvas* canvas) {
     SkRect bounds;
-    font.measureText(&c, 1, kUTF8_SkTextEncoding, &bounds);
-    canvas->drawSimpleText(&c, 1, kUTF8_SkTextEncoding,
+    font.measureText(&c, 1, SkTextEncoding::kUTF8, &bounds);
+    canvas->drawSimpleText(&c, 1, SkTextEncoding::kUTF8,
                            x - bounds.centerX(), y - bounds.centerY(),
                            font, SkPaint(SkColor4f::FromColor(color)));
 }
@@ -122,7 +122,7 @@
                  const char text[]) {
     SkASSERT(src.colorType() == colorType);
     canvas->drawBitmap(src, 0.0f, 0.0f);
-    canvas->drawSimpleText(text, strlen(text), kUTF8_SkTextEncoding, 0.0f, 12.0f, font, p);
+    canvas->drawSimpleText(text, strlen(text), SkTextEncoding::kUTF8, 0.0f, 12.0f, font, p);
 }
 
 DEF_SIMPLE_GM(all_bitmap_configs, canvas, SCALE, 6 * SCALE) {
diff --git a/gm/annotated_text.cpp b/gm/annotated_text.cpp
index 86da9a0..5d21d15 100644
--- a/gm/annotated_text.cpp
+++ b/gm/annotated_text.cpp
@@ -24,14 +24,14 @@
         SkScalar x, SkScalar y, const SkFont& font, const char* url) {
     size_t byteLength = strlen(static_cast<const char*>(text));
     SkRect bounds;
-    (void)font.measureText(text, byteLength, kUTF8_SkTextEncoding, &bounds);
+    (void)font.measureText(text, byteLength, SkTextEncoding::kUTF8, &bounds);
     bounds.offset(x, y);
     sk_sp<SkData> urlData(SkData::MakeWithCString(url));
     SkAnnotateRectWithURL(canvas, bounds, urlData.get());
     SkPaint shade;
     shade.setColor(0x80346180);
     canvas->drawRect(bounds, shade);
-    canvas->drawSimpleText(text, byteLength, kUTF8_SkTextEncoding, x, y, font, SkPaint());
+    canvas->drawSimpleText(text, byteLength, SkTextEncoding::kUTF8, x, y, font, SkPaint());
 }
 
 DEF_SIMPLE_GM(annotated_text, canvas, 512, 512) {
diff --git a/gm/arithmode.cpp b/gm/arithmode.cpp
index 32d3b98..37c7a59 100644
--- a/gm/arithmode.cpp
+++ b/gm/arithmode.cpp
@@ -74,7 +74,7 @@
     for (int i = 0; i < 4; ++i) {
         SkString str;
         str.appendScalar(k[i]);
-        SkScalar width = font.measureText(str.c_str(), str.size(), kUTF8_SkTextEncoding);
+        SkScalar width = font.measureText(str.c_str(), str.size(), SkTextEncoding::kUTF8);
         canvas->drawString(str, x, y + font.getSize(), font, paint);
         x += width + SkIntToScalar(10);
     }
diff --git a/gm/bigtext.cpp b/gm/bigtext.cpp
index 9ace77d..e491d10 100644
--- a/gm/bigtext.cpp
+++ b/gm/bigtext.cpp
@@ -43,17 +43,17 @@
         SkFont font(ToolUtils::create_portable_typeface(), 1500);
 
         SkRect r;
-        (void)font.measureText("/", 1, kUTF8_SkTextEncoding, &r);
+        (void)font.measureText("/", 1, SkTextEncoding::kUTF8, &r);
         SkPoint pos = {
             this->width()/2 - r.centerX(),
             this->height()/2 - r.centerY()
         };
 
         paint.setColor(SK_ColorRED);
-        canvas->drawSimpleText("/", 1, kUTF8_SkTextEncoding, pos.fX, pos.fY, font, paint);
+        canvas->drawSimpleText("/", 1, SkTextEncoding::kUTF8, pos.fX, pos.fY, font, paint);
 
         paint.setColor(SK_ColorBLUE);
-        canvas->drawSimpleText("\\", 1, kUTF8_SkTextEncoding, pos.fX, pos.fY, font, paint);
+        canvas->drawSimpleText("\\", 1, SkTextEncoding::kUTF8, pos.fX, pos.fY, font, paint);
     }
 
 private:
diff --git a/gm/bitmapcopy.cpp b/gm/bitmapcopy.cpp
index 8ad5808..778dc9c 100644
--- a/gm/bitmapcopy.cpp
+++ b/gm/bitmapcopy.cpp
@@ -111,7 +111,7 @@
         }
         for (unsigned i = 0; i < NUM_CONFIGS; i++) {
             const char* name = color_type_name(src.colorType());
-            SkScalar textWidth = font.measureText(name, strlen(name), kUTF8_SkTextEncoding);
+            SkScalar textWidth = font.measureText(name, strlen(name), SkTextEncoding::kUTF8);
             if (textWidth > width) {
                 width = textWidth;
             }
@@ -124,10 +124,10 @@
             canvas->save();
             // Draw destination config name
             const char* name = color_type_name(fDst[i].colorType());
-            SkScalar textWidth = font.measureText(name, strlen(name), kUTF8_SkTextEncoding);
+            SkScalar textWidth = font.measureText(name, strlen(name), SkTextEncoding::kUTF8);
             SkScalar x = (width - textWidth) / SkScalar(2);
             SkScalar y = font.getSpacing() / SkScalar(2);
-            canvas->drawSimpleText(name, strlen(name), kUTF8_SkTextEncoding, x, y, font, paint);
+            canvas->drawSimpleText(name, strlen(name), SkTextEncoding::kUTF8, x, y, font, paint);
 
             // Draw destination bitmap
             canvas->translate(0, vertOffset);
diff --git a/gm/coloremoji.cpp b/gm/coloremoji.cpp
index f02353c..ef93000 100644
--- a/gm/coloremoji.cpp
+++ b/gm/coloremoji.cpp
@@ -92,7 +92,8 @@
         canvas->drawColor(SK_ColorGRAY);
 
         SkFont font(emojiFont.typeface);
-        const char* text = emojiFont.text;
+        char const * const text = emojiFont.text;
+        size_t textLen = strlen(text);
 
         // draw text at different point sizes
         constexpr SkScalar textSizes[] = { 10, 30, 50, };
@@ -104,7 +105,8 @@
                 font.setSize(textSize);
                 font.getMetrics(&metrics);
                 y += -metrics.fAscent;
-                canvas->drawSimpleText(text, strlen(text), kUTF8_SkTextEncoding, 10, y, font, SkPaint());
+                canvas->drawSimpleText(text, textLen, SkTextEncoding::kUTF8,
+                                       10, y, font, SkPaint());
                 y += metrics.fDescent + metrics.fLeading;
             }
         }
@@ -141,7 +143,7 @@
                             shaderFont.setSize(30);
                             shaderFont.getMetrics(&metrics);
                             y += -metrics.fAscent;
-                            canvas->drawSimpleText(text, strlen(text), kUTF8_SkTextEncoding, 380, y,
+                            canvas->drawSimpleText(text, textLen, SkTextEncoding::kUTF8, 380, y,
                                                    shaderFont, shaderPaint);
                             y += metrics.fDescent + metrics.fLeading;
                         }
@@ -155,7 +157,7 @@
 
         // compute the bounds of the text
         SkRect bounds;
-        font.measureText(text, strlen(text), kUTF8_SkTextEncoding, &bounds);
+        font.measureText(text, textLen, SkTextEncoding::kUTF8, &bounds);
 
         const SkScalar boundsHalfWidth = bounds.width() * SK_ScalarHalf;
         const SkScalar boundsHalfHeight = bounds.height() * SK_ScalarHalf;
@@ -181,10 +183,10 @@
             canvas->save();
             canvas->drawRect(clipRect, clipHairline);
             paint.setAlpha(0x20);
-            canvas->drawSimpleText(text, strlen(text), kUTF8_SkTextEncoding, 0, 0, font, paint);
+            canvas->drawSimpleText(text, textLen, SkTextEncoding::kUTF8, 0, 0, font, paint);
             canvas->clipRect(clipRect);
             paint.setAlphaf(1.0f);
-            canvas->drawSimpleText(text, strlen(text), kUTF8_SkTextEncoding, 0, 0, font, paint);
+            canvas->drawSimpleText(text, textLen, SkTextEncoding::kUTF8, 0, 0, font, paint);
             canvas->restore();
             canvas->translate(0, SkIntToScalar(25));
         }
diff --git a/gm/coloremoji_blendmodes.cpp b/gm/coloremoji_blendmodes.cpp
index f0f44f5..09d52cf 100644
--- a/gm/coloremoji_blendmodes.cpp
+++ b/gm/coloremoji_blendmodes.cpp
@@ -147,13 +147,13 @@
                 const char* text    = ToolUtils::emoji_sample_text();
                 SkUnichar unichar = SkUTF::NextUTF8(&text, text + strlen(text));
                 SkASSERT(unichar >= 0);
-                canvas->drawSimpleText(&unichar, 4, kUTF32_SkTextEncoding, x+ w/10.f, y + 7.f*h/8.f,
-                                       textFont, textP);
+                canvas->drawSimpleText(&unichar, 4, SkTextEncoding::kUTF32,
+                                       x+ w/10.f, y + 7.f*h/8.f, textFont, textP);
             }
 #if 1
             const char* label = SkBlendMode_Name(gModes[i]);
-            SkTextUtils::DrawString(canvas, label, x + w/2, y - labelFont.getSize()/2, labelFont, SkPaint(),
-                                    SkTextUtils::kCenter_Align);
+            SkTextUtils::DrawString(canvas, label, x + w/2, y - labelFont.getSize()/2,
+                                    labelFont, SkPaint(), SkTextUtils::kCenter_Align);
 #endif
             x += w + SkIntToScalar(10);
             if ((i % W) == W - 1) {
diff --git a/gm/complexclip.cpp b/gm/complexclip.cpp
index 64922b6..3e53783 100644
--- a/gm/complexclip.cpp
+++ b/gm/complexclip.cpp
@@ -152,15 +152,15 @@
                 SkScalar txtX = 45;
                 paint.setColor(gClipAColor);
                 const char* aTxt = doInvA ? "InvA " : "A ";
-                canvas->drawSimpleText(aTxt, strlen(aTxt), kUTF8_SkTextEncoding, txtX, 220, font, paint);
-                txtX += font.measureText(aTxt, strlen(aTxt), kUTF8_SkTextEncoding);
+                canvas->drawSimpleText(aTxt, strlen(aTxt), SkTextEncoding::kUTF8, txtX, 220, font, paint);
+                txtX += font.measureText(aTxt, strlen(aTxt), SkTextEncoding::kUTF8);
                 paint.setColor(SK_ColorBLACK);
-                canvas->drawSimpleText(gOps[op].fName, strlen(gOps[op].fName), kUTF8_SkTextEncoding, txtX, 220,
+                canvas->drawSimpleText(gOps[op].fName, strlen(gOps[op].fName), SkTextEncoding::kUTF8, txtX, 220,
                                        font, paint);
-                txtX += font.measureText(gOps[op].fName, strlen(gOps[op].fName), kUTF8_SkTextEncoding);
+                txtX += font.measureText(gOps[op].fName, strlen(gOps[op].fName), SkTextEncoding::kUTF8);
                 paint.setColor(gClipBColor);
                 const char* bTxt = doInvB ? "InvB " : "B ";
-                canvas->drawSimpleText(bTxt, strlen(bTxt), kUTF8_SkTextEncoding, txtX, 220, font, paint);
+                canvas->drawSimpleText(bTxt, strlen(bTxt), SkTextEncoding::kUTF8, txtX, 220, font, paint);
 
                 canvas->translate(250,0);
             }
diff --git a/gm/constcolorprocessor.cpp b/gm/constcolorprocessor.cpp
index 93ef95a..fe4e035 100644
--- a/gm/constcolorprocessor.cpp
+++ b/gm/constcolorprocessor.cpp
@@ -145,7 +145,7 @@
                     SkRect inputLabelBounds;
                     // get the bounds of the text in order to position it
                     labelFont.measureText(inputLabel.c_str(), inputLabel.size(),
-                                          kUTF8_SkTextEncoding, &inputLabelBounds);
+                                          SkTextEncoding::kUTF8, &inputLabelBounds);
                     canvas->drawString(inputLabel, renderRect.fRight + kPad, -inputLabelBounds.fTop,
                                        labelFont, labelPaint);
                     // update the bounds to reflect the offset we used to draw it.
@@ -153,7 +153,7 @@
 
                     SkRect procLabelBounds;
                     labelFont.measureText(procLabel.c_str(), procLabel.size(),
-                                          kUTF8_SkTextEncoding, &procLabelBounds);
+                                          SkTextEncoding::kUTF8, &procLabelBounds);
                     canvas->drawString(procLabel, renderRect.fRight + kPad,
                                        inputLabelBounds.fBottom + 2.f - procLabelBounds.fTop,
                                        labelFont, labelPaint);
diff --git a/gm/convexpolyclip.cpp b/gm/convexpolyclip.cpp
index 08c5160..31dc1d4 100644
--- a/gm/convexpolyclip.cpp
+++ b/gm/convexpolyclip.cpp
@@ -79,12 +79,12 @@
     paint.setColor(SK_ColorLTGRAY);
     constexpr char kTxt[] = "Skia";
     SkPoint texPos = { wScalar / 17, hScalar / 2 + font.getSize() / 2.5f };
-    canvas.drawSimpleText(kTxt, SK_ARRAY_COUNT(kTxt)-1, kUTF8_SkTextEncoding,
+    canvas.drawSimpleText(kTxt, SK_ARRAY_COUNT(kTxt)-1, SkTextEncoding::kUTF8,
                           texPos.fX, texPos.fY, font, paint);
     paint.setColor(SK_ColorBLACK);
     paint.setStyle(SkPaint::kStroke_Style);
     paint.setStrokeWidth(SK_Scalar1);
-    canvas.drawSimpleText(kTxt, SK_ARRAY_COUNT(kTxt)-1, kUTF8_SkTextEncoding,
+    canvas.drawSimpleText(kTxt, SK_ARRAY_COUNT(kTxt)-1, SkTextEncoding::kUTF8,
                           texPos.fX, texPos.fY, font, paint);
     return bmp;
 }
@@ -166,7 +166,7 @@
 
         constexpr char kTxt[] = "Clip Me!";
         SkFont         font(ToolUtils::create_portable_typeface(), 23);
-        SkScalar textW = font.measureText(kTxt, SK_ARRAY_COUNT(kTxt)-1, kUTF8_SkTextEncoding);
+        SkScalar textW = font.measureText(kTxt, SK_ARRAY_COUNT(kTxt)-1, SkTextEncoding::kUTF8);
         SkPaint txtPaint;
         txtPaint.setColor(SK_ColorDKGRAY);
 
@@ -217,7 +217,7 @@
                     canvas->drawPath(closedClipPath, clipOutlinePaint);
                     clip->setOnCanvas(canvas, kIntersect_SkClipOp, SkToBool(aa));
                     canvas->scale(1.f, 1.8f);
-                    canvas->drawSimpleText(kTxt, SK_ARRAY_COUNT(kTxt)-1, kUTF8_SkTextEncoding,
+                    canvas->drawSimpleText(kTxt, SK_ARRAY_COUNT(kTxt)-1, SkTextEncoding::kUTF8,
                                      0, 1.5f * font.getSize(), font, txtPaint);
                     canvas->restore();
                     x += textW + 2 * kMargin;
diff --git a/gm/dftext.cpp b/gm/dftext.cpp
index 199d9ee..a342c38 100644
--- a/gm/dftext.cpp
+++ b/gm/dftext.cpp
@@ -90,7 +90,7 @@
             canvas->translate(x, y);
             canvas->scale(scales[i], scales[i]);
             font.setSize(textSizes[i]);
-            canvas->drawSimpleText(text, textLen, kUTF8_SkTextEncoding, 0, 0, font, paint);
+            canvas->drawSimpleText(text, textLen, SkTextEncoding::kUTF8, 0, 0, font, paint);
             y += font.getMetrics(nullptr)*scales[i];
         }
 
@@ -104,7 +104,7 @@
             canvas->rotate(SkIntToScalar(i * 5), rotX, rotY);
             for (int ps = 6; ps <= 32; ps += 3) {
                 font.setSize(SkIntToScalar(ps));
-                canvas->drawSimpleText(text, textLen, kUTF8_SkTextEncoding, rotX, rotY, font, paint);
+                canvas->drawSimpleText(text, textLen, SkTextEncoding::kUTF8, rotX, rotY, font, paint);
                 rotY += font.getMetrics(nullptr);
             }
         }
@@ -120,7 +120,7 @@
             SkScalar scaleFactor = SkScalarInvert(scales[arraySize - i - 1]);
             canvas->scale(scaleFactor, scaleFactor);
             font.setSize(textSizes[i]);
-            canvas->drawSimpleText(text, textLen, kUTF8_SkTextEncoding, 0, 0, font, paint);
+            canvas->drawSimpleText(text, textLen, SkTextEncoding::kUTF8, 0, 0, font, paint);
             y += font.getMetrics(nullptr)*scaleFactor;
         }
 
@@ -131,13 +131,13 @@
             canvas->scale(2.0f, 2.0f);
 
             SkAutoTArray<SkGlyphID> glyphs(SkToInt(textLen));
-            int count = font.textToGlyphs(text, textLen, kUTF8_SkTextEncoding, glyphs.get(), textLen);
+            int count = font.textToGlyphs(text, textLen, SkTextEncoding::kUTF8, glyphs.get(), textLen);
             SkAutoTArray<SkPoint>  pos(count);
             font.setSize(textSizes[0]);
             font.getPos(glyphs.get(), count, pos.get(), {340, 75});
 
             auto blob = SkTextBlob::MakeFromPosText(glyphs.get(), count * sizeof(SkGlyphID),
-                                                    pos.get(), font, kGlyphID_SkTextEncoding);
+                                                    pos.get(), font, SkTextEncoding::kGlyphID);
             canvas->drawTextBlob(blob, 0, 0, paint);
         }
 
@@ -160,7 +160,7 @@
         for (size_t i = 0; i < SK_ARRAY_COUNT(fg); ++i) {
             paint.setColor(fg[i]);
 
-            canvas->drawSimpleText(text, textLen, kUTF8_SkTextEncoding, x, y, font, paint);
+            canvas->drawSimpleText(text, textLen, SkTextEncoding::kUTF8, x, y, font, paint);
             y += font.getMetrics(nullptr);
         }
 
@@ -174,7 +174,7 @@
         for (size_t i = 0; i < SK_ARRAY_COUNT(fg); ++i) {
             paint.setColor(fg[i]);
 
-            canvas->drawSimpleText(text, textLen, kUTF8_SkTextEncoding, x, y, font, paint);
+            canvas->drawSimpleText(text, textLen, SkTextEncoding::kUTF8, x, y, font, paint);
             y += font.getMetrics(nullptr);
         }
 
@@ -184,14 +184,14 @@
             SkAutoCanvasRestore acr(canvas, true);
             canvas->skew(0.0f, 0.151515f);
             font.setSize(SkIntToScalar(32));
-            canvas->drawSimpleText(text, textLen, kUTF8_SkTextEncoding, 745, 70, font, paint);
+            canvas->drawSimpleText(text, textLen, SkTextEncoding::kUTF8, 745, 70, font, paint);
         }
         {
             font.setEdging(SkFont::Edging::kSubpixelAntiAlias);
             SkAutoCanvasRestore acr(canvas, true);
             canvas->skew(0.5f, 0.0f);
             font.setSize(SkIntToScalar(32));
-            canvas->drawSimpleText(text, textLen, kUTF8_SkTextEncoding, 580, 125, font, paint);
+            canvas->drawSimpleText(text, textLen, SkTextEncoding::kUTF8, 580, 125, font, paint);
         }
 
         // check perspective
@@ -205,7 +205,7 @@
             canvas->concat(persp);
             canvas->translate(1100, -295);
             font.setSize(37.5f);
-            canvas->drawSimpleText(text, textLen, kUTF8_SkTextEncoding, 0, 0, font, paint);
+            canvas->drawSimpleText(text, textLen, SkTextEncoding::kUTF8, 0, 0, font, paint);
         }
         {
             font.setSubpixel(false);
@@ -219,7 +219,7 @@
             canvas->translate(1075, -245);
             canvas->scale(375, 375);
             font.setSize(0.1f);
-            canvas->drawSimpleText(text, textLen, kUTF8_SkTextEncoding, 0, 0, font, paint);
+            canvas->drawSimpleText(text, textLen, SkTextEncoding::kUTF8, 0, 0, font, paint);
         }
 
         // check color emoji
@@ -228,7 +228,7 @@
             emoiFont.setSubpixel(true);
             emoiFont.setTypeface(fEmojiTypeface);
             emoiFont.setSize(SkIntToScalar(19));
-            canvas->drawSimpleText(fEmojiText, strlen(fEmojiText), kUTF8_SkTextEncoding, 670, 90, emoiFont, paint);
+            canvas->drawSimpleText(fEmojiText, strlen(fEmojiText), SkTextEncoding::kUTF8, 670, 90, emoiFont, paint);
         }
 
         // render offscreen buffer
diff --git a/gm/drawatlas.cpp b/gm/drawatlas.cpp
index 3042472..132fd5b 100644
--- a/gm/drawatlas.cpp
+++ b/gm/drawatlas.cpp
@@ -132,7 +132,7 @@
                               float baseline_offset) {
     SkPathMeasure meas(path, false);
 
-    int count = font.countText(text, length, kUTF8_SkTextEncoding);
+    int count = font.countText(text, length, SkTextEncoding::kUTF8);
     size_t size = count * (sizeof(SkRSXform) + sizeof(SkScalar));
     SkAutoSMalloc<512> storage(size);
     SkRSXform* xform = (SkRSXform*)storage.get();
@@ -145,7 +145,7 @@
     const SkRect bounds = path.getBounds().makeOutset(max, max);
 
     SkAutoTArray<SkGlyphID> glyphs(count);
-    font.textToGlyphs(text, length, kUTF8_SkTextEncoding, glyphs.get(), count);
+    font.textToGlyphs(text, length, SkTextEncoding::kUTF8, glyphs.get(), count);
     font.getWidths(glyphs.get(), count, widths);
 
     for (int i = 0; i < count; ++i) {
@@ -166,7 +166,7 @@
     }
 
     canvas->drawTextBlob(SkTextBlob::MakeFromRSXform(glyphs.get(), count * sizeof(SkGlyphID),
-                                         &xform[0], font, kGlyphID_SkTextEncoding),
+                                         &xform[0], font, SkTextEncoding::kGlyphID),
                          0, 0, paint);
 
     if (true) {
@@ -202,7 +202,7 @@
     SkScalar x = 0;
     for (int i = 0; i < N; ++i) {
         pos[i].set(x, 0);
-        x += font.measureText(&text0[i], 1, kUTF8_SkTextEncoding, nullptr, &paint);
+        x += font.measureText(&text0[i], 1, SkTextEncoding::kUTF8, nullptr, &paint);
     }
 
     SkPath path;
diff --git a/gm/flippity.cpp b/gm/flippity.cpp
index 8718da6..24c7879 100644
--- a/gm/flippity.cpp
+++ b/gm/flippity.cpp
@@ -90,7 +90,7 @@
     font.setSize(32);
 
     SkRect bounds;
-    font.measureText(text, strlen(text), kUTF8_SkTextEncoding, &bounds);
+    font.measureText(text, strlen(text), SkTextEncoding::kUTF8, &bounds);
     const SkMatrix mat = SkMatrix::MakeRectToRect(bounds, SkRect::MakeWH(kLabelSize, kLabelSize),
                                                   SkMatrix::kFill_ScaleToFit);
 
@@ -101,7 +101,7 @@
 
     canvas->clear(SK_ColorWHITE);
     canvas->concat(mat);
-    canvas->drawSimpleText(text, strlen(text), kUTF8_SkTextEncoding, 0, 0, font, paint);
+    canvas->drawSimpleText(text, strlen(text), SkTextEncoding::kUTF8, 0, 0, font, paint);
 
     sk_sp<SkImage> image = surf->makeImageSnapshot();
 
diff --git a/gm/fontcache.cpp b/gm/fontcache.cpp
index fb0bad2..cd78e82 100644
--- a/gm/fontcache.cpp
+++ b/gm/fontcache.cpp
@@ -32,7 +32,7 @@
                            SkScalar y, const SkFont& font) {
     SkPaint paint;
     canvas->drawString(text, x, y, font, paint);
-    return x + font.measureText(text.c_str(), text.size(), kUTF8_SkTextEncoding);
+    return x + font.measureText(text.c_str(), text.size(), SkTextEncoding::kUTF8);
 }
 
 class FontCacheGM : public skiagm::GpuGM {
diff --git a/gm/fontmgr.cpp b/gm/fontmgr.cpp
index e86c2c6..9290825 100644
--- a/gm/fontmgr.cpp
+++ b/gm/fontmgr.cpp
@@ -36,7 +36,7 @@
 static SkScalar drawString(SkCanvas* canvas, const SkString& text, SkScalar x,
                            SkScalar y, const SkFont& font) {
     canvas->drawString(text, x, y, font, SkPaint());
-    return x + font.measureText(text.c_str(), text.size(), kUTF8_SkTextEncoding);
+    return x + font.measureText(text.c_str(), text.size(), SkTextEncoding::kUTF8);
 }
 
 static SkScalar drawCharacter(SkCanvas* canvas, uint32_t character, SkScalar x,
@@ -309,7 +309,7 @@
             SkPaint::Style style = path.isEmpty() ? SkPaint::kFill_Style : SkPaint::kStroke_Style;
             SkPaint glyphPaint;
             glyphPaint.setStyle(style);
-            canvas->drawSimpleText(&str[i], sizeof(str[0]), kGlyphID_SkTextEncoding, x, y, font, glyphPaint);
+            canvas->drawSimpleText(&str[i], sizeof(str[0]), SkTextEncoding::kGlyphID, x, y, font, glyphPaint);
 
             if (labelBounds) {
                 SkString glyphStr;
diff --git a/gm/fontscaler.cpp b/gm/fontscaler.cpp
index 27505db..3cdbbdd 100644
--- a/gm/fontscaler.cpp
+++ b/gm/fontscaler.cpp
@@ -67,7 +67,7 @@
 
                 for (int ps = 6; ps <= 22; ps++) {
                     font.setSize(SkIntToScalar(ps));
-                    canvas->drawSimpleText(text, textLen, kUTF8_SkTextEncoding, x, y, font, SkPaint());
+                    canvas->drawSimpleText(text, textLen, SkTextEncoding::kUTF8, x, y, font, SkPaint());
                     y += font.getMetrics(nullptr);
                 }
             }
diff --git a/gm/fontscalerdistortable.cpp b/gm/fontscalerdistortable.cpp
index 50c2118..609b75a 100644
--- a/gm/fontscalerdistortable.cpp
+++ b/gm/fontscalerdistortable.cpp
@@ -96,7 +96,7 @@
 
                 for (int ps = 6; ps <= 22; ps++) {
                     font.setSize(SkIntToScalar(ps));
-                    canvas->drawSimpleText(text, textLen, kUTF8_SkTextEncoding, x, y, font, paint);
+                    canvas->drawSimpleText(text, textLen, SkTextEncoding::kUTF8, x, y, font, paint);
                     y += font.getMetrics(nullptr);
                 }
             }
diff --git a/gm/gamma.cpp b/gm/gamma.cpp
index 400c1c0..97ad2d9 100644
--- a/gm/gamma.cpp
+++ b/gm/gamma.cpp
@@ -80,7 +80,7 @@
     };
 
     auto drawString = [&](const char str[], SkScalar x, SkScalar y) {
-        canvas->drawSimpleText(str, strlen(str), kUTF8_SkTextEncoding, x, y, font, textPaint);
+        canvas->drawSimpleText(str, strlen(str), SkTextEncoding::kUTF8, x, y, font, textPaint);
     };
 
     auto nextRect = [&](const char* label, const char* label2) {
diff --git a/gm/getpostextpath.cpp b/gm/getpostextpath.cpp
index fbce398..bf3343f 100644
--- a/gm/getpostextpath.cpp
+++ b/gm/getpostextpath.cpp
@@ -45,12 +45,12 @@
 
     canvas->translate(SkIntToScalar(10), SkIntToScalar(64));
 
-    canvas->drawSimpleText(text, len, kUTF8_SkTextEncoding, 0, 0, font, paint);
-    ToolUtils::get_text_path(font, text, len, kUTF8_SkTextEncoding, &path, nullptr);
+    canvas->drawSimpleText(text, len, SkTextEncoding::kUTF8, 0, 0, font, paint);
+    ToolUtils::get_text_path(font, text, len, SkTextEncoding::kUTF8, &path, nullptr);
     strokePath(canvas, path);
     path.reset();
 
-    SkAutoToGlyphs atg(font, text, len, kUTF8_SkTextEncoding);
+    SkAutoToGlyphs atg(font, text, len, SkTextEncoding::kUTF8);
     const int count = atg.count();
     SkAutoTArray<SkPoint>  pos(count);
     SkAutoTArray<SkScalar> widths(count);
@@ -67,6 +67,6 @@
     canvas->translate(0, SkIntToScalar(64));
 
     canvas->drawTextBlob(SkTextBlob::MakeFromPosText(text, len, &pos[0], font), 0, 0, paint);
-    ToolUtils::get_text_path(font, text, len, kUTF8_SkTextEncoding, &path, &pos[0]);
+    ToolUtils::get_text_path(font, text, len, SkTextEncoding::kUTF8, &path, &pos[0]);
     strokePath(canvas, path);
 }
diff --git a/gm/glyph_pos.cpp b/gm/glyph_pos.cpp
index e2f191f..10ab213 100644
--- a/gm/glyph_pos.cpp
+++ b/gm/glyph_pos.cpp
@@ -104,7 +104,7 @@
 
     SkRect bounds;
     if (drawRef) {
-        SkScalar advance = font.measureText(kText, sizeof(kText) - 1, kUTF8_SkTextEncoding,
+        SkScalar advance = font.measureText(kText, sizeof(kText) - 1, SkTextEncoding::kUTF8,
                                             &bounds, &paint);
 
         paint.setStrokeWidth(0.0f);
@@ -123,12 +123,13 @@
     paint.setColor(SK_ColorBLACK);
     paint.setStrokeWidth(strokeWidth);
     paint.setStyle(strokeStyle);
-    canvas->drawSimpleText(kText, sizeof(kText) - 1, kUTF8_SkTextEncoding, 0.0f, 0.0f, font, paint);
+    canvas->drawSimpleText(kText, sizeof(kText) - 1, SkTextEncoding::kUTF8,
+                           0.0f, 0.0f, font, paint);
 
     if (drawRef) {
         const size_t len = sizeof(kText) - 1;
         SkGlyphID glyphs[len];
-        const int count = font.textToGlyphs(kText, len, kUTF8_SkTextEncoding, glyphs, len);
+        const int count = font.textToGlyphs(kText, len, SkTextEncoding::kUTF8, glyphs, len);
         SkScalar widths[len]; // len is conservative. we really only need 'count'
         font.getWidthsBounds(glyphs, count, widths, nullptr, &paint);
 
diff --git a/gm/gm.cpp b/gm/gm.cpp
index 04a3d66..27a719c 100644
--- a/gm/gm.cpp
+++ b/gm/gm.cpp
@@ -42,7 +42,7 @@
     canvas->drawColor(SkColorSetRGB(200,0,0));
     SkFont font;
     SkRect bounds;
-    font.measureText(failureMsg.c_str(), failureMsg.size(), kUTF8_SkTextEncoding, &bounds);
+    font.measureText(failureMsg.c_str(), failureMsg.size(), SkTextEncoding::kUTF8, &bounds);
     SkPaint textPaint(SkColors::kWhite);
     canvas->drawString(failureMsg, kOffset, bounds.height() + kOffset, font, textPaint);
 }
diff --git a/gm/highcontrastfilter.cpp b/gm/highcontrastfilter.cpp
index e56ae1c..dc5a039 100644
--- a/gm/highcontrastfilter.cpp
+++ b/gm/highcontrastfilter.cpp
@@ -55,8 +55,8 @@
 
     size_t len = strlen(labelBuffer);
 
-    SkScalar width = font.measureText(labelBuffer, len, kUTF8_SkTextEncoding);
-    canvas->drawSimpleText(labelBuffer, len, kUTF8_SkTextEncoding, 0.5f - width / 2, 0.16f, font, SkPaint());
+    SkScalar width = font.measureText(labelBuffer, len, SkTextEncoding::kUTF8);
+    canvas->drawSimpleText(labelBuffer, len, SkTextEncoding::kUTF8, 0.5f - width / 2, 0.16f, font, SkPaint());
 }
 
 static void draw_scene(SkCanvas* canvas, const SkHighContrastConfig& config) {
diff --git a/gm/largeglyphblur.cpp b/gm/largeglyphblur.cpp
index 5e18dbb..2c106ec 100644
--- a/gm/largeglyphblur.cpp
+++ b/gm/largeglyphblur.cpp
@@ -38,6 +38,6 @@
     canvas->drawTextBlob(blob, 10, 200, SkPaint());
 
     size_t len = strlen(text);
-    canvas->drawSimpleText(text, len, kUTF8_SkTextEncoding, 10, 500, font, blurPaint);
-    canvas->drawSimpleText(text, len, kUTF8_SkTextEncoding, 10, 500, font, SkPaint());
+    canvas->drawSimpleText(text, len, SkTextEncoding::kUTF8, 10, 500, font, blurPaint);
+    canvas->drawSimpleText(text, len, SkTextEncoding::kUTF8, 10, 500, font, SkPaint());
 }
diff --git a/gm/lumafilter.cpp b/gm/lumafilter.cpp
index b35208f..3c360be 100644
--- a/gm/lumafilter.cpp
+++ b/gm/lumafilter.cpp
@@ -41,8 +41,8 @@
 
     size_t len = strlen(label);
 
-    SkScalar width = font.measureText(label, len, kUTF8_SkTextEncoding);
-    canvas->drawSimpleText(label, len, kUTF8_SkTextEncoding, offset.x() - width / 2, offset.y(),
+    SkScalar width = font.measureText(label, len, SkTextEncoding::kUTF8);
+    canvas->drawSimpleText(label, len, SkTextEncoding::kUTF8, offset.x() - width / 2, offset.y(),
                            font, SkPaint());
 }
 
diff --git a/gm/mac_aa_explorer.cpp b/gm/mac_aa_explorer.cpp
index 37adb8d..85de227 100644
--- a/gm/mac_aa_explorer.cpp
+++ b/gm/mac_aa_explorer.cpp
@@ -169,7 +169,7 @@
                     font.setHinting(h);
 
                     y += font.getSpacing() + 2;
-                    canvas->drawSimpleText(str, len, kUTF8_SkTextEncoding, x, y, font, paint);
+                    canvas->drawSimpleText(str, len, SkTextEncoding::kUTF8, x, y, font, paint);
                 }
             }
             y += 8;
diff --git a/gm/mixedtextblobs.cpp b/gm/mixedtextblobs.cpp
index 2bacd23..ab78412 100644
--- a/gm/mixedtextblobs.cpp
+++ b/gm/mixedtextblobs.cpp
@@ -61,7 +61,7 @@
         const char* text = "O";
 
         SkRect bounds;
-        font.measureText(text, strlen(text), kUTF8_SkTextEncoding, &bounds);
+        font.measureText(text, strlen(text), SkTextEncoding::kUTF8, &bounds);
 
         SkScalar yOffset = bounds.height();
         ToolUtils::add_to_text_blob(&builder, text, font, 10, yOffset);
@@ -79,7 +79,7 @@
         font.setEdging(SkFont::Edging::kSubpixelAntiAlias);
         font.setSubpixel(true);
         text = "LCD!!!!!";
-        font.measureText(text, strlen(text), kUTF8_SkTextEncoding, &bounds);
+        font.measureText(text, strlen(text), SkTextEncoding::kUTF8, &bounds);
         ToolUtils::add_to_text_blob(&builder,
                                     text,
                                     font,
@@ -91,7 +91,7 @@
             font.setEdging(SkFont::Edging::kAlias);
             font.setSubpixel(false);
             font.setTypeface(fEmojiTypeface);
-            font.measureText(fEmojiText, strlen(fEmojiText), kUTF8_SkTextEncoding, &bounds);
+            font.measureText(fEmojiText, strlen(fEmojiText), SkTextEncoding::kUTF8, &bounds);
             ToolUtils::add_to_text_blob(&builder, fEmojiText, font, xOffset, yOffset);
         }
 
diff --git a/gm/pdf_never_embed.cpp b/gm/pdf_never_embed.cpp
index 0b6ccd7..3b96ae4 100644
--- a/gm/pdf_never_embed.cpp
+++ b/gm/pdf_never_embed.cpp
@@ -24,10 +24,10 @@
                                     SkScalar x, SkScalar y,
                                     const SkFont& font,
                                     const SkPaint& paint) {
-    const int count = font.countText(text, strlen(text), kUTF8_SkTextEncoding);
+    const int count = font.countText(text, strlen(text), SkTextEncoding::kUTF8);
     SkTextBlobBuilder builder;
     auto rec = builder.allocRunPos(font, count);
-    font.textToGlyphs(text, strlen(text), kUTF8_SkTextEncoding, rec.glyphs, count);
+    font.textToGlyphs(text, strlen(text), SkTextEncoding::kUTF8, rec.glyphs, count);
     font.getPos(rec.glyphs, count, rec.points());
     canvas->drawTextBlob(builder.make(), x, y, paint);
 }
@@ -61,7 +61,7 @@
 
     canvas->scale(1.0, 0.5);
     p.setColor(0xF0000080);
-    canvas->drawSimpleText(text, strlen(text), kUTF8_SkTextEncoding, 30, 700, font, p);
+    canvas->drawSimpleText(text, strlen(text), SkTextEncoding::kUTF8, 30, 700, font, p);
     return skiagm::DrawResult::kOk;
 }
 
diff --git a/gm/pictureimagegenerator.cpp b/gm/pictureimagegenerator.cpp
index 2fe7ca2..758b5f5 100644
--- a/gm/pictureimagegenerator.cpp
+++ b/gm/pictureimagegenerator.cpp
@@ -53,14 +53,14 @@
 
     SkPath path;
     SkRect iBox, skiBox, skiaBox;
-    SkTextUtils::GetPath("SKI", 3, kUTF8_SkTextEncoding, 0, 0, font, &path);
+    SkTextUtils::GetPath("SKI", 3, SkTextEncoding::kUTF8, 0, 0, font, &path);
     TightBounds(path, &skiBox);
-    SkTextUtils::GetPath("I", 1, kUTF8_SkTextEncoding, 0, 0, font, &path);
+    SkTextUtils::GetPath("I", 1, SkTextEncoding::kUTF8, 0, 0, font, &path);
     TightBounds(path, &iBox);
     iBox.offsetTo(skiBox.fRight - iBox.width(), iBox.fTop);
 
     const size_t textLen = strlen(kSkiaStr);
-    SkTextUtils::GetPath(kSkiaStr, textLen, kUTF8_SkTextEncoding, 0, 0, font, &path);
+    SkTextUtils::GetPath(kSkiaStr, textLen, SkTextEncoding::kUTF8, 0, 0, font, &path);
     TightBounds(path, &skiaBox);
     skiaBox.outset(0, 2 * iBox.width() * (kVerticalSpacing + 1));
 
@@ -112,7 +112,7 @@
     SkASSERT(SK_ARRAY_COUNT(pos2) == SK_ARRAY_COUNT(colors2));
     paint.setShader(SkGradientShader::MakeLinear(pts2, colors2, pos2, SK_ARRAY_COUNT(pos2),
                                                  SkTileMode::kClamp));
-    canvas->drawSimpleText(kSkiaStr, textLen, kUTF8_SkTextEncoding, 0, 0, font, paint);
+    canvas->drawSimpleText(kSkiaStr, textLen, SkTextEncoding::kUTF8, 0, 0, font, paint);
 }
 
 // This GM exercises SkPictureImageGenerator features
diff --git a/gm/poly2poly.cpp b/gm/poly2poly.cpp
index 63d71ca..141a602 100644
--- a/gm/poly2poly.cpp
+++ b/gm/poly2poly.cpp
@@ -67,7 +67,7 @@
         SkScalar x = D/2;
         SkScalar y = D/2 - (fm.fAscent + fm.fDescent)/2;
         uint16_t glyphID = 3; // X
-        SkTextUtils::Draw(canvas, &glyphID, sizeof(glyphID), kGlyphID_SkTextEncoding, x, y,
+        SkTextUtils::Draw(canvas, &glyphID, sizeof(glyphID), SkTextEncoding::kGlyphID, x, y,
                           font, *paint, SkTextUtils::kCenter_Align);
         canvas->restore();
     }
diff --git a/gm/postercircle.cpp b/gm/postercircle.cpp
index 52f3ce6..3c69221 100644
--- a/gm/postercircle.cpp
+++ b/gm/postercircle.cpp
@@ -73,7 +73,7 @@
             SkString label;
             label.printf("%d", i);
             SkRect labelBounds;
-            font.measureText(label.c_str(), label.size(), kUTF8_SkTextEncoding, &labelBounds);
+            font.measureText(label.c_str(), label.size(), SkTextEncoding::kUTF8, &labelBounds);
             SkScalar labelX = 0.5f * kPosterSize - 0.5f * labelBounds.width();
             SkScalar labelY = 0.5f * kPosterSize + 0.5f * labelBounds.height();
 
diff --git a/gm/scaledemoji.cpp b/gm/scaledemoji.cpp
index fb42ac9..9ef5627 100644
--- a/gm/scaledemoji.cpp
+++ b/gm/scaledemoji.cpp
@@ -76,7 +76,7 @@
             font.setSize(textSize);
             font.getMetrics(&metrics);
             y += -metrics.fAscent;
-            canvas->drawSimpleText(text, strlen(text), kUTF8_SkTextEncoding, 10, y, font, paint);
+            canvas->drawSimpleText(text, strlen(text), SkTextEncoding::kUTF8, 10, y, font, paint);
             y += metrics.fDescent + metrics.fLeading;
         }
 
diff --git a/gm/scaledemoji_rendering.cpp b/gm/scaledemoji_rendering.cpp
index b41204d..dd645bd 100644
--- a/gm/scaledemoji_rendering.cpp
+++ b/gm/scaledemoji_rendering.cpp
@@ -65,7 +65,7 @@
                 font.setSubpixel(true);
                 y += -metrics.fAscent;
 
-                canvas->drawSimpleText(text, strlen(text), kUTF8_SkTextEncoding,
+                canvas->drawSimpleText(text, strlen(text), SkTextEncoding::kUTF8,
                                        10, y, font, paint);
                 y += metrics.fDescent + metrics.fLeading;
             }
diff --git a/gm/shadertext3.cpp b/gm/shadertext3.cpp
index 22252ed..6f33581 100644
--- a/gm/shadertext3.cpp
+++ b/gm/shadertext3.cpp
@@ -122,7 +122,7 @@
                 constexpr char kText[] = "B";
                 canvas->drawString(kText, 0, 0, font, fillPaint);
                 canvas->drawString(kText, 0, 0, font, outlinePaint);
-                SkScalar w = font.measureText(kText, strlen(kText), kUTF8_SkTextEncoding);
+                SkScalar w = font.measureText(kText, strlen(kText), SkTextEncoding::kUTF8);
                 canvas->translate(w + 10.f, 0.f);
                 ++i;
                 if (!(i % 2)) {
diff --git a/gm/skbug_257.cpp b/gm/skbug_257.cpp
index d5654f8..ad3a93a 100644
--- a/gm/skbug_257.cpp
+++ b/gm/skbug_257.cpp
@@ -44,10 +44,10 @@
                                    const char* text,
                                    SkScalar x, SkScalar y,
                                    const SkFont& font, const SkPaint& paint) {
-    const int count = font.countText(text, strlen(text), kUTF8_SkTextEncoding);
+    const int count = font.countText(text, strlen(text), SkTextEncoding::kUTF8);
     SkTextBlobBuilder builder;
     auto rec = builder.allocRunPos(font, count);
-    font.textToGlyphs(text, strlen(text), kUTF8_SkTextEncoding, rec.glyphs, count);
+    font.textToGlyphs(text, strlen(text), SkTextEncoding::kUTF8, rec.glyphs, count);
     font.getPos(rec.glyphs, count, rec.points(), {x, y});
     canvas->drawTextBlob(builder.make(), 0, 0, paint);
 }
@@ -56,10 +56,10 @@
                                      const char* text,
                                      SkScalar x, SkScalar y,
                                      const SkFont& font, const SkPaint& paint) {
-    const int count = font.countText(text, strlen(text), kUTF8_SkTextEncoding);
+    const int count = font.countText(text, strlen(text), SkTextEncoding::kUTF8);
     SkTextBlobBuilder builder;
     auto rec = builder.allocRunPosH(font, count, 0);
-    font.textToGlyphs(text, strlen(text), kUTF8_SkTextEncoding, rec.glyphs, count);
+    font.textToGlyphs(text, strlen(text), SkTextEncoding::kUTF8, rec.glyphs, count);
     font.getXPos(rec.glyphs, count, rec.pos);
     canvas->drawTextBlob(builder.make(), x, y, paint);
 }
@@ -71,7 +71,7 @@
     SkPaint type;
     type.setColor(color);
     const char text[] = "HELLO WORLD";
-    canvas->drawSimpleText(text, strlen(text), kUTF8_SkTextEncoding, 32, size / 2 + Y,
+    canvas->drawSimpleText(text, strlen(text), SkTextEncoding::kUTF8, 32, size / 2 + Y,
                            font, type);
     SkScalar lineSpacing = font.getSpacing();
     exercise_draw_pos_text(canvas, text, 32, size / 2 + Y + lineSpacing, font, type);
diff --git a/gm/skbug_5321.cpp b/gm/skbug_5321.cpp
index 3ad71af..e389cbc 100644
--- a/gm/skbug_5321.cpp
+++ b/gm/skbug_5321.cpp
@@ -26,14 +26,14 @@
     SkScalar x = 20, y = 45;
 
     size_t byteLength = strlen(text);
-    canvas->drawSimpleText(text, byteLength, kUTF8_SkTextEncoding, x, y, font, SkPaint());
+    canvas->drawSimpleText(text, byteLength, SkTextEncoding::kUTF8, x, y, font, SkPaint());
 
     y += font.getMetrics(nullptr);
-    int glyph_count = font.countText(text, byteLength, kUTF8_SkTextEncoding);
+    int glyph_count = font.countText(text, byteLength, SkTextEncoding::kUTF8);
     SkTextBlobBuilder builder;
 
     auto rec = builder.allocRunPosH(font, glyph_count, y);
-    font.textToGlyphs(text, byteLength, kUTF8_SkTextEncoding, rec.glyphs, glyph_count);
+    font.textToGlyphs(text, byteLength, SkTextEncoding::kUTF8, rec.glyphs, glyph_count);
 
     font.getWidths(rec.glyphs, glyph_count, rec.pos);
     for (int i = 0; i < glyph_count; ++i) {
diff --git a/gm/stroketext.cpp b/gm/stroketext.cpp
index abcfe37..4ca103f 100644
--- a/gm/stroketext.cpp
+++ b/gm/stroketext.cpp
@@ -44,7 +44,7 @@
 
     if (strokeWidth > 0) {
         p.setStyle(SkPaint::kFill_Style);
-        canvas->drawSimpleText("P", 1, kUTF8_SkTextEncoding, loc.fX, loc.fY - 225, font, p);
+        canvas->drawSimpleText("P", 1, SkTextEncoding::kUTF8, loc.fX, loc.fY - 225, font, p);
         canvas->drawTextBlob(SkTextBlob::MakeFromPosText("P", 1, &loc, font), 0, 0, p);
     }
 
@@ -52,7 +52,7 @@
     p.setStyle(SkPaint::kStroke_Style);
     p.setStrokeWidth(strokeWidth);
 
-    canvas->drawSimpleText("P", 1, kUTF8_SkTextEncoding, loc.fX, loc.fY - 225, font, p);
+    canvas->drawSimpleText("P", 1, SkTextEncoding::kUTF8, loc.fX, loc.fY - 225, font, p);
     canvas->drawTextBlob(SkTextBlob::MakeFromPosText("P", 1, &loc, font), 0, 0, p);
 }
 
diff --git a/gm/textblob.cpp b/gm/textblob.cpp
index 5356aa6..b79e579 100644
--- a/gm/textblob.cpp
+++ b/gm/textblob.cpp
@@ -89,10 +89,10 @@
         fTypeface = ToolUtils::create_portable_typeface("serif", SkFontStyle());
         SkFont font(fTypeface);
         size_t txtLen = strlen(fText);
-        int glyphCount = font.countText(fText, txtLen, kUTF8_SkTextEncoding);
+        int glyphCount = font.countText(fText, txtLen, SkTextEncoding::kUTF8);
 
         fGlyphs.append(glyphCount);
-        font.textToGlyphs(fText, txtLen, kUTF8_SkTextEncoding, fGlyphs.begin(), glyphCount);
+        font.textToGlyphs(fText, txtLen, SkTextEncoding::kUTF8, fGlyphs.begin(), glyphCount);
     }
 
     SkString onShortName() override {
diff --git a/gm/textblobblockreordering.cpp b/gm/textblobblockreordering.cpp
index 692789a..f7b3c4f 100644
--- a/gm/textblobblockreordering.cpp
+++ b/gm/textblobblockreordering.cpp
@@ -41,7 +41,7 @@
         const char* text = "AB";
 
         SkRect bounds;
-        font.measureText(text, strlen(text), kUTF8_SkTextEncoding, &bounds);
+        font.measureText(text, strlen(text), SkTextEncoding::kUTF8, &bounds);
 
         SkScalar yOffset = bounds.height();
         ToolUtils::add_to_text_blob(&builder, text, font, 0, yOffset - 30);
diff --git a/gm/textblobcolortrans.cpp b/gm/textblobcolortrans.cpp
index 4d0d269..b41dd23 100644
--- a/gm/textblobcolortrans.cpp
+++ b/gm/textblobcolortrans.cpp
@@ -42,7 +42,7 @@
         const char* text = "AB";
 
         SkRect bounds;
-        font.measureText(text, strlen(text), kUTF8_SkTextEncoding, &bounds);
+        font.measureText(text, strlen(text), SkTextEncoding::kUTF8, &bounds);
 
         SkScalar yOffset = bounds.height();
         ToolUtils::add_to_text_blob(&builder, text, font, 0, yOffset - 30);
@@ -50,7 +50,7 @@
         // A8
         font.setSize(28);
         text = "The quick brown fox jumps over the lazy dog.";
-        font.measureText(text, strlen(text), kUTF8_SkTextEncoding, &bounds);
+        font.measureText(text, strlen(text), SkTextEncoding::kUTF8, &bounds);
         ToolUtils::add_to_text_blob(&builder, text, font, 0, yOffset - 8);
 
         // build
diff --git a/gm/textbloblooper.cpp b/gm/textbloblooper.cpp
index b67cc21..7adc1c1 100644
--- a/gm/textbloblooper.cpp
+++ b/gm/textbloblooper.cpp
@@ -52,8 +52,8 @@
     SkTDArray<uint16_t> glyphs;
 
     size_t len = strlen(text);
-    glyphs.append(font.countText(text, len, kUTF8_SkTextEncoding));
-    font.textToGlyphs(text, len, kUTF8_SkTextEncoding, glyphs.begin(), glyphs.count());
+    glyphs.append(font.countText(text, len, SkTextEncoding::kUTF8));
+    font.textToGlyphs(text, len, SkTextEncoding::kUTF8, glyphs.begin(), glyphs.count());
 
     const SkScalar advanceX = font.getSize() * 0.85f;
     const SkScalar advanceY = font.getSize() * 1.5f;
diff --git a/gm/textblobmixedsizes.cpp b/gm/textblobmixedsizes.cpp
index 2986682..973c345 100644
--- a/gm/textblobmixedsizes.cpp
+++ b/gm/textblobmixedsizes.cpp
@@ -55,35 +55,35 @@
 
         // large
         SkRect bounds;
-        font.measureText(text, strlen(text), kUTF8_SkTextEncoding, &bounds);
+        font.measureText(text, strlen(text), SkTextEncoding::kUTF8, &bounds);
         SkScalar yOffset = bounds.height();
         font.setSize(162);
 
         ToolUtils::add_to_text_blob(&builder, text, font, 0, yOffset);
 
         // Medium
-        font.measureText(text, strlen(text), kUTF8_SkTextEncoding, &bounds);
+        font.measureText(text, strlen(text), SkTextEncoding::kUTF8, &bounds);
         yOffset += bounds.height();
         font.setSize(72);
 
         ToolUtils::add_to_text_blob(&builder, text, font, 0, yOffset);
 
         // Small
-        font.measureText(text, strlen(text), kUTF8_SkTextEncoding, &bounds);
+        font.measureText(text, strlen(text), SkTextEncoding::kUTF8, &bounds);
         yOffset += bounds.height();
         font.setSize(32);
 
         ToolUtils::add_to_text_blob(&builder, text, font, 0, yOffset);
 
         // micro (will fall out of distance field text even if distance field text is enabled)
-        font.measureText(text, strlen(text), kUTF8_SkTextEncoding, &bounds);
+        font.measureText(text, strlen(text), SkTextEncoding::kUTF8, &bounds);
         yOffset += bounds.height();
         font.setSize(14);
 
         ToolUtils::add_to_text_blob(&builder, text, font, 0, yOffset);
 
         // Zero size.
-        font.measureText(text, strlen(text), kUTF8_SkTextEncoding, &bounds);
+        font.measureText(text, strlen(text), SkTextEncoding::kUTF8, &bounds);
         yOffset += bounds.height();
         font.setSize(0);
 
diff --git a/gm/textblobrandomfont.cpp b/gm/textblobrandomfont.cpp
index 43ecae3..0160a3e 100644
--- a/gm/textblobrandomfont.cpp
+++ b/gm/textblobrandomfont.cpp
@@ -63,7 +63,7 @@
 
         SkScalar y = 0;
         SkRect bounds;
-        font.measureText(text, strlen(text), kUTF8_SkTextEncoding, &bounds);
+        font.measureText(text, strlen(text), SkTextEncoding::kUTF8, &bounds);
         y -= bounds.fTop;
         ToolUtils::add_to_text_blob(&builder, text, font, 0, y);
         y += bounds.fBottom;
@@ -74,12 +74,12 @@
         font.setSize(160);
         font.setSubpixel(false);
         font.setEdging(SkFont::Edging::kAntiAlias);
-        font.measureText(bigtext1, strlen(bigtext1), kUTF8_SkTextEncoding, &bounds);
+        font.measureText(bigtext1, strlen(bigtext1), SkTextEncoding::kUTF8, &bounds);
         y -= bounds.fTop;
         ToolUtils::add_to_text_blob(&builder, bigtext1, font, 0, y);
         y += bounds.fBottom;
 
-        font.measureText(bigtext2, strlen(bigtext2), kUTF8_SkTextEncoding, &bounds);
+        font.measureText(bigtext2, strlen(bigtext2), SkTextEncoding::kUTF8, &bounds);
         y -= bounds.fTop;
         ToolUtils::add_to_text_blob(&builder, bigtext2, font, 0, y);
         y += bounds.fBottom;
@@ -88,7 +88,7 @@
         if (sk_sp<SkTypeface> origEmoji = ToolUtils::emoji_typeface()) {
             font.setTypeface(sk_make_sp<SkRandomTypeface>(origEmoji, paint, false));
             const char* emojiText = ToolUtils::emoji_sample_text();
-            font.measureText(emojiText, strlen(emojiText), kUTF8_SkTextEncoding, &bounds);
+            font.measureText(emojiText, strlen(emojiText), SkTextEncoding::kUTF8, &bounds);
             y -= bounds.fTop;
             ToolUtils::add_to_text_blob(&builder, emojiText, font, 0, y);
             y += bounds.fBottom;
diff --git a/gm/textblobshader.cpp b/gm/textblobshader.cpp
index 933a92b..bc5ade6 100644
--- a/gm/textblobshader.cpp
+++ b/gm/textblobshader.cpp
@@ -39,8 +39,8 @@
             SkFont      font(ToolUtils::create_portable_typeface());
             const char* txt = "Blobber";
             size_t txtLen = strlen(txt);
-            fGlyphs.append(font.countText(txt, txtLen, kUTF8_SkTextEncoding));
-            font.textToGlyphs(txt, txtLen, kUTF8_SkTextEncoding, fGlyphs.begin(), fGlyphs.count());
+            fGlyphs.append(font.countText(txt, txtLen, SkTextEncoding::kUTF8));
+            font.textToGlyphs(txt, txtLen, SkTextEncoding::kUTF8, fGlyphs.begin(), fGlyphs.count());
         }
 
         SkFont font;
diff --git a/gm/textblobtransforms.cpp b/gm/textblobtransforms.cpp
index 2c45819..d9ea8b4 100644
--- a/gm/textblobtransforms.cpp
+++ b/gm/textblobtransforms.cpp
@@ -38,7 +38,7 @@
         const char* text = "A";
 
         SkRect bounds;
-        font.measureText(text, strlen(text), kUTF8_SkTextEncoding, &bounds);
+        font.measureText(text, strlen(text), SkTextEncoding::kUTF8, &bounds);
         ToolUtils::add_to_text_blob(&builder, text, font, 0, 0);
 
         // Medium
@@ -47,7 +47,7 @@
         text = "B";
         ToolUtils::add_to_text_blob(&builder, text, font, xOffset, 0);
 
-        font.measureText(text, strlen(text), kUTF8_SkTextEncoding, &bounds);
+        font.measureText(text, strlen(text), SkTextEncoding::kUTF8, &bounds);
         SkScalar yOffset = bounds.height();
 
         // Small
diff --git a/gm/texteffects.cpp b/gm/texteffects.cpp
index 6c82c2d..ed11db1 100644
--- a/gm/texteffects.cpp
+++ b/gm/texteffects.cpp
@@ -51,9 +51,9 @@
 
 sk_sp<SkTextBlob> MakeFancyBlob(const SkPaint& paint, const SkFont& font, const char* text) {
     const size_t textLen = strlen(text);
-    const int glyphCount = font.countText(text, textLen, kUTF8_SkTextEncoding);
+    const int glyphCount = font.countText(text, textLen, SkTextEncoding::kUTF8);
     SkAutoTArray<SkGlyphID> glyphs(glyphCount);
-    font.textToGlyphs(text, textLen, kUTF8_SkTextEncoding, glyphs.get(), glyphCount);
+    font.textToGlyphs(text, textLen, SkTextEncoding::kUTF8, glyphs.get(), glyphCount);
     SkAutoTArray<SkScalar> widths(glyphCount);
     font.getWidths(glyphs.get(), glyphCount, widths.get());
 
@@ -150,7 +150,7 @@
 
 static sk_sp<SkTextBlob> make_text(const SkFont& font, const SkGlyphID glyphs[], int count) {
     return SkTextBlob::MakeFromText(glyphs, count * sizeof(SkGlyphID), font,
-                                    kGlyphID_SkTextEncoding);
+                                    SkTextEncoding::kGlyphID);
 }
 
 static sk_sp<SkTextBlob> make_posh(const SkFont& font, const SkGlyphID glyphs[], int count,
@@ -161,7 +161,7 @@
         xpos[i] += spacing * i;
     }
     return SkTextBlob::MakeFromPosTextH(glyphs, count * sizeof(SkGlyphID), xpos.get(), 0, font,
-                                        kGlyphID_SkTextEncoding);
+                                        SkTextEncoding::kGlyphID);
 }
 
 static sk_sp<SkTextBlob> make_pos(const SkFont& font, const SkGlyphID glyphs[], int count,
@@ -172,7 +172,7 @@
         pos[i].fX += spacing * i;
     }
     return SkTextBlob::MakeFromPosText(glyphs, count * sizeof(SkGlyphID), pos.get(), font,
-                                       kGlyphID_SkTextEncoding);
+                                       SkTextEncoding::kGlyphID);
 }
 
 // widen the gaps with a margin (on each side of the gap), elimnating segments that go away
@@ -241,9 +241,9 @@
     font.setTypeface(ToolUtils::create_portable_typeface());
     font.setSize(100);
     font.setEdging(SkFont::Edging::kAntiAlias);
-    const int count = font.countText(text, length, kUTF8_SkTextEncoding);
+    const int count = font.countText(text, length, SkTextEncoding::kUTF8);
     SkAutoTArray<SkGlyphID> glyphs(count);
-    font.textToGlyphs(text, length, kUTF8_SkTextEncoding, glyphs.get(), count);
+    font.textToGlyphs(text, length, SkTextEncoding::kUTF8, glyphs.get(), count);
 
     auto b0 = make_text(font, glyphs.get(), count);
 
diff --git a/gm/typeface.cpp b/gm/typeface.cpp
index a34fbb2..4e58632 100644
--- a/gm/typeface.cpp
+++ b/gm/typeface.cpp
@@ -54,13 +54,13 @@
                          SkScalar x, SkScalar y, const SkFont& font, const SkPaint& paint) {
     SkTypeface* face = font.getTypefaceOrDefault();
     if (!face) {
-        canvas->drawSimpleText(text, len, kUTF8_SkTextEncoding, x, y, font, paint);
+        canvas->drawSimpleText(text, len, SkTextEncoding::kUTF8, x, y, font, paint);
         return;
     }
 
     SkAutoSTMalloc<128, uint16_t> glyphStorage(len);
     uint16_t* glyphs = glyphStorage.get();
-    int glyphCount = font.textToGlyphs(text, len, kUTF8_SkTextEncoding, glyphs, len);
+    int glyphCount = font.textToGlyphs(text, len, SkTextEncoding::kUTF8, glyphs, len);
     if (glyphCount < 1) {
         return;
     }
@@ -68,7 +68,7 @@
     SkAutoSTMalloc<128, int32_t> adjustmentStorage(glyphCount - 1);
     int32_t* adjustments = adjustmentStorage.get();
     if (!face->getKerningPairAdjustments(glyphs, glyphCount, adjustments)) {
-        canvas->drawSimpleText(text, len, kUTF8_SkTextEncoding, x, y, font, paint);
+        canvas->drawSimpleText(text, len, SkTextEncoding::kUTF8, x, y, font, paint);
         return;
     }
 
@@ -137,7 +137,7 @@
         SkPaint paint;
         for (int i = 0; i < gStylesCount; i++) {
             font.setTypeface(fFaces[i]);
-            canvas->drawSimpleText(text, textLen, kUTF8_SkTextEncoding, x, y, font, paint);
+            canvas->drawSimpleText(text, textLen, SkTextEncoding::kUTF8, x, y, font, paint);
             if (fApplyKerning) {
                 drawKernText(canvas, text, textLen, x + 240, y, font, paint);
             }
@@ -245,12 +245,12 @@
                                 canvas->rotate(2, x + subpixel.offset.x(),
                                                   y + subpixel.offset.y());
                             }
-                            canvas->drawSimpleText(&character, 1, kUTF8_SkTextEncoding,
+                            canvas->drawSimpleText(&character, 1, SkTextEncoding::kUTF8,
                                                    x + subpixel.offset.x(),
                                                    y + subpixel.offset.y(), font, paint);
 
                             SkScalar dx = SkScalarCeilToScalar(
-                                    font.measureText(&character, 1, kUTF8_SkTextEncoding)) + 5;
+                                    font.measureText(&character, 1, SkTextEncoding::kUTF8)) + 5;
                             x += dx;
                             xMax = SkTMax(x, xMax);
                         }
@@ -295,10 +295,10 @@
                 for (const StyleTests& style : styleTypes) {
                     paint.setStyle(style.style);
                     paint.setStrokeWidth(style.strokeWidth);
-                    canvas->drawSimpleText(&character, 1, kUTF8_SkTextEncoding, x, y, font, paint);
+                    canvas->drawSimpleText(&character, 1, SkTextEncoding::kUTF8, x, y, font, paint);
 
                     SkScalar dx = SkScalarCeilToScalar(font.measureText(&character, 1,
-                                                                        kUTF8_SkTextEncoding)) + 5;
+                                                                        SkTextEncoding::kUTF8)) + 5;
                     x += dx;
                 }
             }
@@ -345,10 +345,10 @@
                 }
                 for (const MaskTests& mask : maskTypes) {
                     paint.setMaskFilter(SkMaskFilter::MakeBlur(mask.style, mask.sigma));
-                    canvas->drawSimpleText(&character, 1, kUTF8_SkTextEncoding, x, y, font, paint);
+                    canvas->drawSimpleText(&character, 1, SkTextEncoding::kUTF8, x, y, font, paint);
 
                     SkScalar dx = SkScalarCeilToScalar(font.measureText(&character, 1,
-                                                                        kUTF8_SkTextEncoding)) + 5;
+                                                                        SkTextEncoding::kUTF8)) + 5;
                     x += dx;
                 }
                 paint.setMaskFilter(nullptr);
diff --git a/gm/variedtext.cpp b/gm/variedtext.cpp
index 67388e0..37c6ac4 100644
--- a/gm/variedtext.cpp
+++ b/gm/variedtext.cpp
@@ -94,7 +94,7 @@
             fFont.setTypeface(fTypefaces[fTypefaceIndices[i]]);
             fFont.setSize(fPtSizes[i]);
 
-            fFont.measureText(fStrings[i].c_str(), fStrings[i].size(), kUTF8_SkTextEncoding, &r);
+            fFont.measureText(fStrings[i].c_str(), fStrings[i].size(), SkTextEncoding::kUTF8, &r);
             // safeRect is set of x,y positions where we can draw the string without hitting
             // the GM's border.
             SkRect safeRect = SkRect::MakeLTRB(-r.fLeft, -r.fTop, w - r.fRight, h - r.fBottom);
@@ -125,7 +125,7 @@
             canvas->save();
                 canvas->clipRect(fClipRects[i]);
                 canvas->translate(fPositions[i].fX, fPositions[i].fY);
-                canvas->drawSimpleText(fStrings[i].c_str(), fStrings[i].size(), kUTF8_SkTextEncoding,
+                canvas->drawSimpleText(fStrings[i].c_str(), fStrings[i].size(), SkTextEncoding::kUTF8,
                                        0, 0, fFont, fPaint);
             canvas->restore();
         }
diff --git a/gm/wacky_yuv_formats.cpp b/gm/wacky_yuv_formats.cpp
index e5c679b..379c817 100644
--- a/gm/wacky_yuv_formats.cpp
+++ b/gm/wacky_yuv_formats.cpp
@@ -740,14 +740,14 @@
     SkString colLabel;
 
     colLabel.printf("%s", kYUVColorSpaceNames[yuvColorSpace]);
-    font.measureText(colLabel.c_str(), colLabel.size(), kUTF8_SkTextEncoding, &textRect);
+    font.measureText(colLabel.c_str(), colLabel.size(), SkTextEncoding::kUTF8, &textRect);
     int y = textRect.height();
 
     SkTextUtils::DrawString(canvas, colLabel.c_str(), x, y, font, paint, SkTextUtils::kCenter_Align);
 
     colLabel.printf("%s", opaque ? "Opaque" : "Transparent");
 
-    font.measureText(colLabel.c_str(), colLabel.size(), kUTF8_SkTextEncoding, &textRect);
+    font.measureText(colLabel.c_str(), colLabel.size(), SkTextEncoding::kUTF8, &textRect);
     y += textRect.height();
 
     SkTextUtils::DrawString(canvas, colLabel.c_str(), x, y, font, paint, SkTextUtils::kCenter_Align);
@@ -765,7 +765,7 @@
     SkString rowLabel;
 
     rowLabel.printf("%s", kYUVFormatNames[yuvFormat]);
-    font.measureText(rowLabel.c_str(), rowLabel.size(), kUTF8_SkTextEncoding, &textRect);
+    font.measureText(rowLabel.c_str(), rowLabel.size(), SkTextEncoding::kUTF8, &textRect);
     y += kTileWidthHeight/2 + textRect.height()/2;
 
     canvas->drawString(rowLabel, 0, y, font, paint);