change textutils to require font param
Bug: skia:
Change-Id: I8ba252e3fc5c0970fd9d83f73c32b68f3c68452e
Reviewed-on: https://skia-review.googlesource.com/c/180771
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Mike Reed <reed@google.com>
diff --git a/gm/aaxfermodes.cpp b/gm/aaxfermodes.cpp
index 1db4c1c..cbf8db4 100644
--- a/gm/aaxfermodes.cpp
+++ b/gm/aaxfermodes.cpp
@@ -68,10 +68,9 @@
}
void onOnceBeforeDraw() override {
- fLabelPaint.setAntiAlias(true);
- sk_tool_utils::set_portable_typeface(&fLabelPaint);
- fLabelPaint.setTextSize(5 * kShapeSize/8);
- fLabelPaint.setSubpixelText(true);
+ fLabelFont.setTypeface(sk_tool_utils::create_portable_typeface());
+ fLabelFont.setSize(5 * kShapeSize/8);
+ fLabelFont.setSubpixel(true);
constexpr SkScalar radius = -1.4f * kShapeSize/2;
SkPoint pts[4] = {
@@ -109,12 +108,12 @@
if (kShape_Pass == drawingPass) {
SkTextUtils::DrawString(canvas, "Src Unknown",
kLabelSpacing + kShapeTypeSpacing * 1.5f + kShapeSpacing / 2,
- kSubtitleSpacing / 2 + fLabelPaint.getTextSize() / 3, fLabelPaint,
+ kSubtitleSpacing / 2 + fLabelFont.getSize() / 3, fLabelFont, SkPaint(),
SkTextUtils::kCenter_Align);
SkTextUtils::DrawString(canvas, "Src Opaque",
kLabelSpacing + kShapeTypeSpacing * 1.5f + kShapeSpacing / 2 +
- kPaintSpacing, kSubtitleSpacing / 2 + fLabelPaint.getTextSize() / 3,
- fLabelPaint, SkTextUtils::kCenter_Align);
+ kPaintSpacing, kSubtitleSpacing / 2 + fLabelFont.getSize() / 3,
+ fLabelFont, SkPaint(), SkTextUtils::kCenter_Align);
}
canvas->translate(0, kSubtitleSpacing + kShapeSpacing/2);
@@ -177,16 +176,16 @@
canvas->translate(kMargin, kMargin);
draw_pass(canvas, kBackground_Pass);
- SkPaint titlePaint(fLabelPaint);
- titlePaint.setTextSize(9 * titlePaint.getTextSize() / 8);
- titlePaint.setFakeBoldText(true);
+ SkFont titleFont(fLabelFont);
+ titleFont.setSize(9 * titleFont.getSize() / 8);
+ titleFont.setEmbolden(true);
SkTextUtils::DrawString(canvas, "Porter Duff",
kLabelSpacing + 4 * kShapeTypeSpacing,
- kTitleSpacing / 2 + titlePaint.getTextSize() / 3, titlePaint,
+ kTitleSpacing / 2 + titleFont.getSize() / 3, titleFont, SkPaint(),
SkTextUtils::kCenter_Align);
SkTextUtils::DrawString(canvas, "Advanced",
kXfermodeTypeSpacing + kLabelSpacing + 4 * kShapeTypeSpacing,
- kTitleSpacing / 2 + titlePaint.getTextSize() / 3, titlePaint,
+ kTitleSpacing / 2 + titleFont.getSize() / 3, titleFont, SkPaint(),
SkTextUtils::kCenter_Align);
draw_pass(canvas, kShape_Pass);
@@ -196,7 +195,7 @@
void drawModeName(SkCanvas* canvas, SkBlendMode mode) {
const char* modeName = SkBlendMode_Name(mode);
SkTextUtils::DrawString(canvas, modeName, kLabelSpacing - kShapeSize / 4,
- fLabelPaint.getTextSize() / 4, fLabelPaint,
+ fLabelFont.getSize() / 4, fLabelFont, SkPaint(),
SkTextUtils::kRight_Align);
}
@@ -266,7 +265,7 @@
}
private:
- SkPaint fLabelPaint;
+ SkFont fLabelFont;
SkPath fOval;
SkPath fConcave;
diff --git a/gm/coloremoji_blendmodes.cpp b/gm/coloremoji_blendmodes.cpp
index 91b17dc..a28389e 100644
--- a/gm/coloremoji_blendmodes.cpp
+++ b/gm/coloremoji_blendmodes.cpp
@@ -114,14 +114,11 @@
auto s = SkShader::MakeBitmapShader(fBG, SkShader::kRepeat_TileMode,
SkShader::kRepeat_TileMode, &m);
- SkPaint labelP;
- labelP.setAntiAlias(true);
- sk_tool_utils::set_portable_typeface(&labelP);
+ SkFont labelFont(sk_tool_utils::create_portable_typeface());
SkPaint textP;
textP.setAntiAlias(true);
- textP.setTypeface(fColorType);
- textP.setTextSize(SkIntToScalar(70));
+ SkFont textFont(fColorType, 70);
const int W = 5;
@@ -146,15 +143,15 @@
SkAutoCanvasRestore arc(canvas, true);
canvas->clipRect(r);
textP.setBlendMode(gModes[i]);
- textP.setTextEncoding(kUTF32_SkTextEncoding);
const char* text = sk_tool_utils::emoji_sample_text();
SkUnichar unichar = SkUTF::NextUTF8(&text, text + strlen(text));
SkASSERT(unichar >= 0);
- canvas->drawText(&unichar, 4, x+ w/10.f, y + 7.f*h/8.f, textP);
+ canvas->drawSimpleText(&unichar, 4, kUTF32_SkTextEncoding, 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 - labelP.getTextSize()/2, labelP,
+ SkTextUtils::DrawString(canvas, label, x + w/2, y - labelFont.getSize()/2, labelFont, SkPaint(),
SkTextUtils::kCenter_Align);
#endif
x += w + SkIntToScalar(10);
diff --git a/gm/dropshadowimagefilter.cpp b/gm/dropshadowimagefilter.cpp
index f1dfb6d..1710dbd 100644
--- a/gm/dropshadowimagefilter.cpp
+++ b/gm/dropshadowimagefilter.cpp
@@ -40,12 +40,11 @@
paint.setImageFilter(std::move(imf));
paint.setColor(SK_ColorGREEN);
paint.setAntiAlias(true);
- sk_tool_utils::set_portable_typeface(&paint);
- paint.setTextSize(r.height()/2);
+
+ SkFont font(sk_tool_utils::create_portable_typeface(), r.height()/2);
canvas->save();
canvas->clipRect(r);
- SkTextUtils::DrawString(canvas, "Text", r.centerX(), r.centerY(), paint,
- SkTextUtils::kCenter_Align);
+ SkTextUtils::DrawString(canvas, "Text", r.centerX(), r.centerY(), font, paint, SkTextUtils::kCenter_Align);
canvas->restore();
}
diff --git a/gm/imagefilterscropped.cpp b/gm/imagefilterscropped.cpp
index 225e881..179fdc3 100644
--- a/gm/imagefilterscropped.cpp
+++ b/gm/imagefilterscropped.cpp
@@ -43,11 +43,9 @@
SkPaint paint;
paint.setImageFilter(std::move(imf));
paint.setColor(SK_ColorGREEN);
- paint.setAntiAlias(true);
- sk_tool_utils::set_portable_typeface(&paint);
- paint.setTextSize(r.height()/2);
- SkTextUtils::DrawString(canvas, "Text", r.centerX(), r.centerY(), paint,
- SkTextUtils::kCenter_Align);
+
+ SkFont font(sk_tool_utils::create_portable_typeface(), r.height()/2);
+ SkTextUtils::DrawString(canvas, "Text", r.centerX(), r.centerY(), font, paint, SkTextUtils::kCenter_Align);
}
static void draw_bitmap(SkCanvas* canvas, const SkRect& r, sk_sp<SkImageFilter> imf) {
diff --git a/gm/surface.cpp b/gm/surface.cpp
index 4d302ac..f8424ba 100644
--- a/gm/surface.cpp
+++ b/gm/surface.cpp
@@ -36,7 +36,6 @@
SkPaint paint;
paint.setAntiAlias(true);
- paint.setLCDRenderText(true);
paint.setDither(true);
paint.setShader(make_shader());
@@ -44,9 +43,10 @@
paint.setShader(nullptr);
paint.setColor(SK_ColorWHITE);
- paint.setTextSize(32);
- sk_tool_utils::set_portable_typeface(&paint);
- SkTextUtils::DrawString(canvas, label, W / 2, H * 3 / 4, paint, SkTextUtils::kCenter_Align);
+ SkFont font(sk_tool_utils::create_portable_typeface(), 32);
+ font.setEdging(SkFont::Edging::kSubpixelAntiAlias);
+ SkTextUtils::DrawString(canvas, label, W / 2, H * 3 / 4, font, paint,
+ SkTextUtils::kCenter_Align);
}
class SurfacePropsGM : public skiagm::GM {
diff --git a/gm/tilemodes_scaled.cpp b/gm/tilemodes_scaled.cpp
index 093cb348..78c7641 100644
--- a/gm/tilemodes_scaled.cpp
+++ b/gm/tilemodes_scaled.cpp
@@ -99,15 +99,13 @@
SkScalar y = SkIntToScalar(24);
SkScalar x = SkIntToScalar(10)/scale;
+ SkFont font(sk_tool_utils::create_portable_typeface());
for (size_t kx = 0; kx < SK_ARRAY_COUNT(gModes); kx++) {
for (size_t ky = 0; ky < SK_ARRAY_COUNT(gModes); ky++) {
- SkPaint p;
SkString str;
- p.setAntiAlias(true);
- sk_tool_utils::set_portable_typeface(&p);
str.printf("[%s,%s]", gModeNames[kx], gModeNames[ky]);
- SkTextUtils::DrawString(canvas, str, scale*(x + r.width()/2), y, p,
+ SkTextUtils::DrawString(canvas, str.c_str(), scale*(x + r.width()/2), y, font, SkPaint(),
SkTextUtils::kCenter_Align);
x += r.width() * 4 / 3;
@@ -222,13 +220,12 @@
SkScalar y = SkIntToScalar(24);
SkScalar x = SkIntToScalar(66);
- SkPaint p;
- p.setAntiAlias(true);
- sk_tool_utils::set_portable_typeface(&p);
+ SkFont font(sk_tool_utils::create_portable_typeface());
for (size_t kx = 0; kx < SK_ARRAY_COUNT(gModes); kx++) {
SkString str(gModeNames[kx]);
- SkTextUtils::DrawString(canvas, str, x + r.width()/2, y, p, SkTextUtils::kCenter_Align);
+ SkTextUtils::DrawString(canvas, str.c_str(), x + r.width()/2, y, font, SkPaint(),
+ SkTextUtils::kCenter_Align);
x += r.width() * 4 / 3;
}
@@ -238,7 +235,7 @@
x = SkIntToScalar(16) + w;
SkString str(gModeNames[ky]);
- SkTextUtils::DrawString(canvas, str, x, y + h/2, p, SkTextUtils::kRight_Align);
+ SkTextUtils::DrawString(canvas, str.c_str(), x, y + h/2, font, SkPaint(), SkTextUtils::kRight_Align);
x += SkIntToScalar(50);
for (size_t kx = 0; kx < SK_ARRAY_COUNT(gModes); kx++) {
diff --git a/gm/xfermodes.cpp b/gm/xfermodes.cpp
index c8b1824..3af85d2 100644
--- a/gm/xfermodes.cpp
+++ b/gm/xfermodes.cpp
@@ -227,7 +227,8 @@
SkPaint labelP;
labelP.setAntiAlias(true);
- sk_tool_utils::set_portable_typeface(&labelP);
+
+ SkFont font(sk_tool_utils::create_portable_typeface());
const int W = 5;
@@ -258,8 +259,8 @@
#if 1
const char* label = SkBlendMode_Name(gModes[i].fMode);
- SkTextUtils::DrawString(canvas, label, x + w/2, y - labelP.getTextSize()/2,
- labelP, SkTextUtils::kCenter_Align);
+ SkTextUtils::DrawString(canvas, label, x + w/2, y - font.getSize()/2,
+ font, labelP, SkTextUtils::kCenter_Align);
#endif
x += w + SkIntToScalar(10);
if ((i % W) == W - 1) {
diff --git a/gm/xfermodes2.cpp b/gm/xfermodes2.cpp
index 21e6f2e..27f3dbc 100644
--- a/gm/xfermodes2.cpp
+++ b/gm/xfermodes2.cpp
@@ -33,9 +33,7 @@
const SkScalar w = SkIntToScalar(kSize);
const SkScalar h = SkIntToScalar(kSize);
- SkPaint labelP;
- labelP.setAntiAlias(true);
- sk_tool_utils::set_portable_typeface(&labelP);
+ SkFont font(sk_tool_utils::create_portable_typeface());
const int W = 6;
@@ -72,8 +70,7 @@
canvas->restore();
#if 1
- SkTextUtils::DrawString(canvas, SkBlendMode_Name(mode),
- x + w/2, y - labelP.getTextSize()/2, labelP,
+ SkTextUtils::DrawString(canvas, SkBlendMode_Name(mode), x + w/2, y - font.getSize()/2, font, SkPaint(),
SkTextUtils::kCenter_Align);
#endif
x += w + SkIntToScalar(10);