diff --git a/samplecode/SampleAll.cpp b/samplecode/SampleAll.cpp
index 5eb7ade..50239d6 100644
--- a/samplecode/SampleAll.cpp
+++ b/samplecode/SampleAll.cpp
@@ -257,7 +257,7 @@
         canvas->drawText(utf8, sizeof(utf8) - 1, x, y, paint);
 
         canvas->translate(0, SkIntToScalar(60));
-        paint.setTextEncoding(SkPaint::kUTF8_TextEncoding);
+        paint.setTextEncoding(kUTF8_SkTextEncoding);
         canvas->restore();
     }
 
diff --git a/samplecode/SampleChineseFling.cpp b/samplecode/SampleChineseFling.cpp
index 769cc1e..b8110f3 100644
--- a/samplecode/SampleChineseFling.cpp
+++ b/samplecode/SampleChineseFling.cpp
@@ -27,7 +27,7 @@
   paint->setColor(0xDE000000);
   paint->setTypeface(typeface);
   paint->setTextSize(kTextSize);
-  paint->setTextEncoding(SkPaint::kUTF32_TextEncoding);
+  paint->setTextEncoding(kUTF32_SkTextEncoding);
 }
 
 static sk_sp<SkTypeface> chinese_typeface() {
@@ -167,7 +167,7 @@
         paint.setColor(0xDE000000);
         paint.setTypeface(fTypeface);
         paint.setTextSize(11);
-        paint.setTextEncoding(SkPaint::kUTF32_TextEncoding);
+        paint.setTextEncoding(kUTF32_SkTextEncoding);
 
         if (afterFirstFrame) {
 #if SK_SUPPORT_GPU
@@ -220,7 +220,7 @@
         paint.setColor(0xDE000000);
         paint.setTypeface(fTypeface);
         paint.setTextSize(11);
-        paint.setTextEncoding(SkPaint::kUTF32_TextEncoding);
+        paint.setTextEncoding(kUTF32_SkTextEncoding);
 
         paint.getFontMetrics(&fMetrics);
 
diff --git a/samplecode/SampleFilterFuzz.cpp b/samplecode/SampleFilterFuzz.cpp
index f3fc02f..4bb6fcc 100644
--- a/samplecode/SampleFilterFuzz.cpp
+++ b/samplecode/SampleFilterFuzz.cpp
@@ -175,8 +175,8 @@
     return static_cast<SkPaint::Join>(R(SkPaint::kDefault_Join+1));
 }
 
-static SkPaint::TextEncoding make_paint_text_encoding() {
-    return static_cast<SkPaint::TextEncoding>(R(SkPaint::kGlyphID_TextEncoding+1));
+static SkTextEncoding make_paint_text_encoding() {
+    return static_cast<SkTextEncoding>(R((int)kGlyphID_SkTextEncoding+1));
 }
 
 static SkBlurStyle make_blur_style() {
diff --git a/samplecode/SampleFontCache.cpp b/samplecode/SampleFontCache.cpp
index 2ba4b08..f5952c4 100644
--- a/samplecode/SampleFontCache.cpp
+++ b/samplecode/SampleFontCache.cpp
@@ -17,7 +17,7 @@
     SkRandom rand;
 
     paint.setAntiAlias(true);
-    paint.setTextEncoding(SkPaint::kUTF16_TextEncoding);
+    paint.setTextEncoding(kUTF16_SkTextEncoding);
     for (int j = 0; j < SK_ARRAY_COUNT(text); j++)
         text[j] = (uint16_t)((rand.nextU() & 0xFF) + 32);
 
@@ -36,7 +36,7 @@
     SkRandom rand;
 
     paint.setAntiAlias(true);
-    paint.setTextEncoding(SkPaint::kUTF16_TextEncoding);
+    paint.setTextEncoding(kUTF16_SkTextEncoding);
     for (int j = 0; j < SK_ARRAY_COUNT(text); j++)
         text[j] = (uint16_t)((rand.nextU() & 0xFF) + 32);
 
