From e5f9cfad7b087451650156e7fb3734f65a959785 Mon Sep 17 00:00:00 2001 From: Mike Reed Date: Thu, 10 Jan 2019 13:55:35 -0500 Subject: expand flag to include all text-related paint fields Bug: skia: Change-Id: I8453a6d607df4902cd05c5c9bc6162feda04ef9c Reviewed-on: https://skia-review.googlesource.com/c/182969 Reviewed-by: Mike Reed Commit-Queue: Mike Reed Auto-Submit: Mike Reed --- tools/using_skia_and_harfbuzz.cpp | 4 ++-- tools/viewer/Viewer.cpp | 35 ++++++++++++++++++++++------------- tools/viewer/Viewer.h | 2 ++ 3 files changed, 26 insertions(+), 15 deletions(-) (limited to 'tools') diff --git a/tools/using_skia_and_harfbuzz.cpp b/tools/using_skia_and_harfbuzz.cpp index 6f378e2c93..cabd7df61e 100644 --- a/tools/using_skia_and_harfbuzz.cpp +++ b/tools/using_skia_and_harfbuzz.cpp @@ -132,9 +132,9 @@ public: : config(conf), document(doc), pageCanvas(nullptr) { white_paint.setColor(SK_ColorWHITE); glyph_paint.setColor(SK_ColorBLACK); - glyph_paint.setFlags(SkPaint::kAntiAlias_Flag | - SkPaint::kSubpixelText_Flag); + glyph_paint.setAntiAlias(true); font.setEdging(SkFont::Edging::kSubpixelAntiAlias); + font.setSubpixel(true); font.setSize(SkDoubleToScalar(config->font_size.value)); } diff --git a/tools/viewer/Viewer.cpp b/tools/viewer/Viewer.cpp index 65c87e8f8e..0f5216ddc7 100644 --- a/tools/viewer/Viewer.cpp +++ b/tools/viewer/Viewer.cpp @@ -439,28 +439,35 @@ Viewer::Viewer(int argc, char** argv, void* platformData) fWindow->inval(); }); fCommands.addCommand('L', "Paint", "Subpixel Antialias Mode", [this]() { - if (!(fPaintOverrides.fFlags & SkPaint::kLCDRenderText_Flag)) { - fPaintOverrides.fFlags |= SkPaint::kLCDRenderText_Flag; - fPaint.setLCDRenderText(false); + if (!fFontOverrides.fEdging) { + fFontOverrides.fEdging = true; + fFont.setEdging(SkFont::Edging::kAlias); } else { - if (!fPaint.isLCDRenderText()) { - fPaint.setLCDRenderText(true); - } else { - fPaintOverrides.fFlags &= ~SkPaint::kLCDRenderText_Flag; + switch (fFont.getEdging()) { + case SkFont::Edging::kAlias: + fFont.setEdging(SkFont::Edging::kAntiAlias); + break; + case SkFont::Edging::kAntiAlias: + fFont.setEdging(SkFont::Edging::kSubpixelAntiAlias); + break; + case SkFont::Edging::kSubpixelAntiAlias: + fFont.setEdging(SkFont::Edging::kAlias); + fFontOverrides.fEdging = false; + break; } } this->updateTitle(); fWindow->inval(); }); fCommands.addCommand('S', "Paint", "Subpixel Position Mode", [this]() { - if (!(fPaintOverrides.fFlags & SkPaint::kSubpixelText_Flag)) { - fPaintOverrides.fFlags |= SkPaint::kSubpixelText_Flag; - fPaint.setSubpixelText(false); + if (!fFontOverrides.fSubpixel) { + fFontOverrides.fSubpixel = true; + fFont.setSubpixel(false); } else { - if (!fPaint.isSubpixelText()) { - fPaint.setSubpixelText(true); + if (!fFont.isSubpixel()) { + fFont.setSubpixel(true); } else { - fPaintOverrides.fFlags &= ~SkPaint::kSubpixelText_Flag; + fFontOverrides.fSubpixel = false; } } this->updateTitle(); @@ -702,6 +709,7 @@ void Viewer::updateTitle() { paintFlag(SkPaint::kAntiAlias_Flag, &SkPaint::isAntiAlias, "Antialias", "Alias"); paintFlag(SkPaint::kDither_Flag, &SkPaint::isDither, "DITHER", "No Dither"); +#if 0 paintFlag(SkPaint::kFakeBoldText_Flag, &SkPaint::isFakeBoldText, "Fake Bold", "No Fake Bold"); paintFlag(SkPaint::kLinearText_Flag, &SkPaint::isLinearText, "Linear Text", "Non-Linear Text"); paintFlag(SkPaint::kSubpixelText_Flag, &SkPaint::isSubpixelText, "Subpixel Text", "Pixel Text"); @@ -710,6 +718,7 @@ void Viewer::updateTitle() { "Bitmap Text", "No Bitmap Text"); paintFlag(SkPaint::kAutoHinting_Flag, &SkPaint::isAutohinted, "Force Autohint", "No Force Autohint"); +#endif if (fFontOverrides.fHinting) { switch (fFont.getHinting()) { diff --git a/tools/viewer/Viewer.h b/tools/viewer/Viewer.h index 2cff48676c..495c81b6f7 100644 --- a/tools/viewer/Viewer.h +++ b/tools/viewer/Viewer.h @@ -45,6 +45,8 @@ public: bool fTextScaleX = false; bool fTextSkewX = false; bool fHinting = false; + bool fEdging = false; + bool fSubpixel = false; }; struct SkPaintFields { bool fPathEffect = false; -- cgit v1.2.3