[sksg] Expose SkFont::Edging in TextNode

(instead of SkPaint flags)

TBR=
Change-Id: I31566f29d7922b26898234c357d8d249ebc1e094
Reviewed-on: https://skia-review.googlesource.com/c/172504
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
diff --git a/modules/sksg/include/SkSGText.h b/modules/sksg/include/SkSGText.h
index 605e608..64ec1b2 100644
--- a/modules/sksg/include/SkSGText.h
+++ b/modules/sksg/include/SkSGText.h
@@ -10,7 +10,7 @@
 
 #include "SkSGGeometryNode.h"
 
-#include "SkPaintDefaults.h"
+#include "SkFont.h"
 #include "SkPoint.h"
 #include "SkString.h"
 #include "SkTextBlob.h"
@@ -30,15 +30,15 @@
     static sk_sp<Text> Make(sk_sp<SkTypeface> tf, const SkString& text);
     ~Text() override;
 
-    SG_ATTRIBUTE(Typeface, sk_sp<SkTypeface>, fTypeface)
-    SG_ATTRIBUTE(Text    , SkString         , fText    )
-    SG_ATTRIBUTE(Flags   , uint32_t         , fFlags   )
-    SG_ATTRIBUTE(Position, SkPoint          , fPosition)
-    SG_ATTRIBUTE(Size    , SkScalar         , fSize    )
-    SG_ATTRIBUTE(ScaleX  , SkScalar         , fScaleX  )
-    SG_ATTRIBUTE(SkewX   , SkScalar         , fSkewX   )
-    SG_ATTRIBUTE(Align   , SkTextUtils::Align   , fAlign   )
-    SG_ATTRIBUTE(Hinting , SkFontHinting    , fHinting )
+    SG_ATTRIBUTE(Typeface, sk_sp<SkTypeface> , fTypeface)
+    SG_ATTRIBUTE(Text    , SkString          , fText    )
+    SG_ATTRIBUTE(Position, SkPoint           , fPosition)
+    SG_ATTRIBUTE(Size    , SkScalar          , fSize    )
+    SG_ATTRIBUTE(ScaleX  , SkScalar          , fScaleX  )
+    SG_ATTRIBUTE(SkewX   , SkScalar          , fSkewX   )
+    SG_ATTRIBUTE(Align   , SkTextUtils::Align, fAlign   )
+    SG_ATTRIBUTE(Edging  , SkFont::Edging    , fEdging  )
+    SG_ATTRIBUTE(Hinting , SkFontHinting     , fHinting )
 
     // TODO: add shaping functionality.
 
@@ -56,13 +56,13 @@
 
     sk_sp<SkTypeface> fTypeface;
     SkString                fText;
-    uint32_t                fFlags    = SkPaintDefaults_Flags;
     SkPoint                 fPosition = SkPoint::Make(0, 0);
-    SkScalar                fSize     = SkPaintDefaults_TextSize;
+    SkScalar                fSize     = 12;
     SkScalar                fScaleX   = 1;
     SkScalar                fSkewX    = 0;
     SkTextUtils::Align      fAlign    = SkTextUtils::kLeft_Align;
-    SkFontHinting           fHinting  = SkPaintDefaults_Hinting;
+    SkFont::Edging          fEdging   = SkFont::Edging::kAntiAlias;
+    SkFontHinting           fHinting  = kNormal_SkFontHinting;
 
     sk_sp<SkTextBlob> fBlob; // cached text blob
 
diff --git a/modules/sksg/src/SkSGText.cpp b/modules/sksg/src/SkSGText.cpp
index 4d57b10..0d6bed9 100644
--- a/modules/sksg/src/SkSGText.cpp
+++ b/modules/sksg/src/SkSGText.cpp
@@ -46,11 +46,11 @@
     // TODO: we could potentially track invals which don't require rebuilding the blob.
 
     SkFont font;
-    font.LEGACY_applyPaintFlags(fFlags);
     font.setTypeface(fTypeface);
     font.setSize(fSize);
     font.setScaleX(fScaleX);
     font.setSkewX(fSkewX);
+    font.setEdging(fEdging);
     font.setHinting(fHinting);
 
     // N.B.: fAlign is applied externally (in alignedPosition()), because
diff --git a/tools/viewer/SlideDir.cpp b/tools/viewer/SlideDir.cpp
index a776bbd..09ecd7c 100644
--- a/tools/viewer/SlideDir.cpp
+++ b/tools/viewer/SlideDir.cpp
@@ -260,7 +260,7 @@
                                          const SkMatrix& dstXform) {
     const auto size = kLabelSize / std::sqrt(dstXform.getScaleX() * dstXform.getScaleY());
     auto text = sksg::Text::Make(nullptr, txt);
-    text->setFlags(SkPaint::kAntiAlias_Flag);
+    text->setEdging(SkFont::Edging::kAntiAlias);
     text->setSize(size);
     text->setAlign(SkTextUtils::kCenter_Align);
     text->setPosition(pos + SkPoint::Make(0, size));