Revert "Revert "hide nested hinting enum""

This reverts commit 6bd19df9fa9d26d9de4de646b2cdf82ff5dca67c.

Restores original CL, but adds guards for flutter.

Bug: skia:
Change-Id: I380b4ea87d293355026d734249aa2b8c397da144
Reviewed-on: https://skia-review.googlesource.com/c/169345
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Mike Reed <reed@google.com>
diff --git a/src/core/SkFont.cpp b/src/core/SkFont.cpp
index c4a02e9..7216e51 100644
--- a/src/core/SkFont.cpp
+++ b/src/core/SkFont.cpp
@@ -13,7 +13,7 @@
 
 #define kDefault_Size       12
 #define kDefault_Flags      0
-#define kDefault_Hinting    SkFont::kNormal_Hinting
+#define kDefault_Hinting    kNormal_SkFontHinting
 
 static inline SkScalar valid_size(SkScalar size) {
     return SkTMax<SkScalar>(0, size);
@@ -26,7 +26,7 @@
     , fScaleX(scaleX)
     , fSkewX(skewX)
     , fFlags(flags & kAllFlags)
-    , fHinting(kDefault_Hinting)
+    , fHinting(static_cast<unsigned>(kDefault_Hinting))
 {}
 
 SkFont::SkFont() : SkFont(nullptr, kDefault_Size, 1, 0, kDefault_Flags)
@@ -167,7 +167,7 @@
     paint->setAntiAlias(SkToBool(fFlags & kDEPRECATED_Antialias_Flag));
     paint->setLCDRenderText(SkToBool(fFlags & kDEPRECATED_LCDRender_Flag));
 
-    paint->setHinting((SkPaint::Hinting)this->getHinting());
+    paint->setHinting((SkFontHinting)this->getHinting());
 }
 
 SkFont SkFont::LEGACY_ExtractFromPaint(const SkPaint& paint) {
@@ -197,6 +197,6 @@
 
     SkFont font(sk_ref_sp(paint.getTypeface()), paint.getTextSize(), paint.getTextScaleX(),
                 paint.getTextSkewX(), flags);
-    font.setHinting((Hinting)paint.getHinting());
+    font.setHinting((SkFontHinting)paint.getHinting());
     return font;
 }
diff --git a/src/core/SkPaint.cpp b/src/core/SkPaint.cpp
index 73c7013..e7ed230 100644
--- a/src/core/SkPaint.cpp
+++ b/src/core/SkPaint.cpp
@@ -59,7 +59,7 @@
     fBitfields.fJoinType     = kDefault_Join;
     fBitfields.fStyle        = kFill_Style;
     fBitfields.fTextEncoding = kUTF8_TextEncoding;
-    fBitfields.fHinting      = SkPaintDefaults_Hinting;
+    fBitfields.fHinting      = static_cast<unsigned>(SkPaintDefaults_Hinting);
 }
 
 SkPaint::SkPaint(const SkPaint& src)
@@ -394,7 +394,8 @@
     return (1 << bits) - 1;
 }
 
-static uint32_t pack_paint_flags(unsigned flags, unsigned hint, unsigned filter, unsigned flatFlags) {
+static uint32_t pack_paint_flags(unsigned flags, unsigned hint, unsigned filter,
+                                 unsigned flatFlags) {
     ASSERT_FITS_IN(flags, kFlags_BPF);
     ASSERT_FITS_IN(hint, kHint_BPF);
     ASSERT_FITS_IN(filter, kFilter_BPF);
@@ -409,7 +410,7 @@
 
 static FlatFlags unpack_paint_flags(SkPaint* paint, uint32_t packed) {
     paint->setFlags(packed >> 16);
-    paint->setHinting((SkPaint::Hinting)((packed >> 14) & BPF_Mask(kHint_BPF)));
+    paint->setHinting((SkFontHinting)((packed >> 14) & BPF_Mask(kHint_BPF)));
     paint->setFilterQuality((SkFilterQuality)((packed >> 10) & BPF_Mask(kFilter_BPF)));
     return (FlatFlags)(packed & kFlatFlagMask);
 }
@@ -441,7 +442,7 @@
     buffer.writeScalar(paint.getStrokeMiter());
     buffer.writeColor4f(paint.getColor4f());
 
-    buffer.writeUInt(pack_paint_flags(paint.getFlags(), paint.getHinting(),
+    buffer.writeUInt(pack_paint_flags(paint.getFlags(), static_cast<unsigned>(paint.getHinting()),
                                       paint.getFilterQuality(), flatFlags));
     buffer.writeUInt(pack_4(paint.getStrokeCap(), paint.getStrokeJoin(),
                             (paint.getStyle() << 4) | paint.getTextEncoding(),
diff --git a/src/core/SkPaintDefaults.h b/src/core/SkPaintDefaults.h
index 3ea1cd3..708365b 100644
--- a/src/core/SkPaintDefaults.h
+++ b/src/core/SkPaintDefaults.h
@@ -25,7 +25,7 @@
 #endif
 
 #ifndef SkPaintDefaults_Hinting
-    #define SkPaintDefaults_Hinting         SkPaint::kNormal_Hinting
+    #define SkPaintDefaults_Hinting         kNormal_SkFontHinting
 #endif
 
 #ifndef SkPaintDefaults_MiterLimit
diff --git a/src/core/SkPaint_text.cpp b/src/core/SkPaint_text.cpp
index fcbc7d4..21a7c95 100644
--- a/src/core/SkPaint_text.cpp
+++ b/src/core/SkPaint_text.cpp
@@ -291,7 +291,7 @@
     flags |= SkPaint::kSubpixelText_Flag;
 
     this->setFlags(flags);
-    this->setHinting(SkPaint::kNo_Hinting);
+    this->setHinting(kNo_SkFontHinting);
     this->setStyle(SkPaint::kFill_Style);
     this->setPathEffect(nullptr);
 
diff --git a/src/core/SkTextBlob.cpp b/src/core/SkTextBlob.cpp
index 4d1a664..627e2de 100644
--- a/src/core/SkTextBlob.cpp
+++ b/src/core/SkTextBlob.cpp
@@ -27,7 +27,7 @@
         , fScaleX(paint.getTextScaleX())
         , fTypeface(SkPaintPriv::RefTypefaceOrDefault(paint))
         , fSkewX(paint.getTextSkewX())
-        , fHinting(paint.getHinting())
+        , fHinting(static_cast<unsigned>(paint.getHinting()))
         , fFlags(paint.getFlags() & kFlagsMask) { }
 
 void SkRunFont::applyToPaint(SkPaint* paint) const {
@@ -36,7 +36,7 @@
     paint->setTextSize(fSize);
     paint->setTextScaleX(fScaleX);
     paint->setTextSkewX(fSkewX);
-    paint->setHinting(static_cast<SkPaint::Hinting>(fHinting));
+    paint->setHinting(static_cast<SkFontHinting>(fHinting));
 
     paint->setFlags((paint->getFlags() & ~kFlagsMask) | fFlags);
 }
diff --git a/src/core/SkTextBlobPriv.h b/src/core/SkTextBlobPriv.h
index 67c97e6..149e652 100644
--- a/src/core/SkTextBlobPriv.h
+++ b/src/core/SkTextBlobPriv.h
@@ -92,7 +92,7 @@
     sk_sp<SkTypeface>        fTypeface;
     SkScalar                 fSkewX;
 
-    static_assert(SkPaint::kFull_Hinting < 4, "insufficient_hinting_bits");
+    static_assert(static_cast<unsigned>(kFull_SkFontHinting) < 4, "insufficient_hinting_bits");
     uint32_t                 fHinting : 2;
     static_assert((kFlagsMask & 0xffff) == kFlagsMask, "insufficient_flags_bits");
     uint32_t                 fFlags : 16;
diff --git a/src/gpu/text/GrTextContext.cpp b/src/gpu/text/GrTextContext.cpp
index 94ce203..ee8f1d00 100644
--- a/src/gpu/text/GrTextContext.cpp
+++ b/src/gpu/text/GrTextContext.cpp
@@ -188,7 +188,7 @@
     skPaint->setAntiAlias(true);
     skPaint->setLCDRenderText(false);
     skPaint->setAutohinted(false);
-    skPaint->setHinting(SkPaint::kNormal_Hinting);
+    skPaint->setHinting(kNormal_SkFontHinting);
     skPaint->setSubpixelText(true);
 
     skPaint->setMaskFilter(GrSDFMaskFilter::Make());
diff --git a/src/pdf/SkPDFDevice.cpp b/src/pdf/SkPDFDevice.cpp
index f0f9abc..490edfb 100644
--- a/src/pdf/SkPDFDevice.cpp
+++ b/src/pdf/SkPDFDevice.cpp
@@ -1103,7 +1103,7 @@
     SkPaint paint(srcPaint);
     remove_color_filter(&paint);
     replace_srcmode_on_opaque_paint(&paint);
-    paint.setHinting(SkPaint::kNo_Hinting);
+    paint.setHinting(kNo_SkFontHinting);
     if (!paint.getTypeface()) {
         paint.setTypeface(SkTypeface::MakeDefault());
     }
diff --git a/src/pdf/SkPDFFont.cpp b/src/pdf/SkPDFFont.cpp
index d797338..8f31408 100644
--- a/src/pdf/SkPDFFont.cpp
+++ b/src/pdf/SkPDFFont.cpp
@@ -34,7 +34,7 @@
 
 SkExclusiveStrikePtr SkPDFFont::MakeVectorCache(SkTypeface* face, int* size) {
     SkPaint tmpPaint;
-    tmpPaint.setHinting(SkPaint::kNo_Hinting);
+    tmpPaint.setHinting(kNo_SkFontHinting);
     tmpPaint.setTypeface(sk_ref_sp(face));
     int unitsPerEm = face->getUnitsPerEm();
     if (unitsPerEm <= 0) {
@@ -154,7 +154,7 @@
 
     if (0 == metrics->fStemV || 0 == metrics->fCapHeight) {
         SkPaint tmpPaint;
-        tmpPaint.setHinting(SkPaint::kNo_Hinting);
+        tmpPaint.setHinting(kNo_SkFontHinting);
         tmpPaint.setTypeface(sk_ref_sp(typeface));
         tmpPaint.setTextSize(1000);  // glyph coordinate system
         if (0 == metrics->fStemV) {
diff --git a/src/utils/SkLua.cpp b/src/utils/SkLua.cpp
index 495a4f6..561953e 100644
--- a/src/utils/SkLua.cpp
+++ b/src/utils/SkLua.cpp
@@ -818,7 +818,7 @@
 }
 
 static int lpaint_getHinting(lua_State* L) {
-    SkLua(L).pushU32(get_obj<SkPaint>(L, 1)->getHinting());
+    SkLua(L).pushU32((unsigned)get_obj<SkPaint>(L, 1)->getHinting());
     return 1;
 }