[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));