diff options
author | Mike Reed <reed@google.com> | 2018-11-21 15:10:08 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-11-21 20:44:03 +0000 |
commit | 2ed78209704418aebfb99e858866af249da594c7 (patch) | |
tree | 46541338da544799cbbb27c4c0be5fbd379eb65b /src/core/SkFont.cpp | |
parent | 3065b5223dc44050753d973d77fbc8e6429f0649 (diff) | |
download | skia-2ed78209704418aebfb99e858866af249da594c7.tar.gz |
use SkFont in a lot of places
Bug: skia:
Change-Id: I86df3f650eb5bb0219b3251ef5f8e95403838bba
Reviewed-on: https://skia-review.googlesource.com/c/172482
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'src/core/SkFont.cpp')
-rw-r--r-- | src/core/SkFont.cpp | 42 |
1 files changed, 28 insertions, 14 deletions
diff --git a/src/core/SkFont.cpp b/src/core/SkFont.cpp index 4adae4733b..538efa600d 100644 --- a/src/core/SkFont.cpp +++ b/src/core/SkFont.cpp @@ -40,6 +40,16 @@ SkFont::SkFont(sk_sp<SkTypeface> face, SkScalar size) : SkFont(std::move(face), SkFont::SkFont() : SkFont(nullptr, kDefault_Size) {} +bool SkFont::operator==(const SkFont& b) { + return fTypeface.get() == b.fTypeface.get() && + fSize == b.fSize && + fScaleX == b.fScaleX && + fSkewX == b.fSkewX && + fFlags == b.fFlags && + fEdging == b.fEdging && + fHinting == b.fHinting; +} + /////////////////////////////////////////////////////////////////////////////////////////////////// static inline uint32_t set_clear_mask(uint32_t bits, bool cond, uint32_t mask) { @@ -363,35 +373,39 @@ void SkFont::LEGACY_applyToPaint(SkPaint* paint) const { } SkFont SkFont::LEGACY_ExtractFromPaint(const SkPaint& paint) { + SkFont font(sk_ref_sp(paint.getTypeface()), paint.getTextSize(), paint.getTextScaleX(), + paint.getTextSkewX()); + font.LEGACY_applyPaintFlags(paint.getFlags()); + font.setHinting((SkFontHinting)paint.getHinting()); + return font; +} + +void SkFont::LEGACY_applyPaintFlags(uint32_t paintFlags) { uint32_t flags = 0; - if (paint.isEmbeddedBitmapText()) { + if (paintFlags & SkPaint::kEmbeddedBitmapText_Flag) { flags |= kEmbeddedBitmaps_PrivFlag; } - if (paint.isFakeBoldText()) { + if (paintFlags & SkPaint::kFakeBoldText_Flag) { flags |= kEmbolden_PrivFlag; } - if (paint.isAutohinted()) { + if (paintFlags & SkPaint::kAutoHinting_Flag) { flags |= kForceAutoHinting_PrivFlag; } - if (paint.isSubpixelText()) { + if (paintFlags & SkPaint::kSubpixelText_Flag) { flags |= kSubpixel_PrivFlag; } - if (paint.isLinearText()) { + if (paintFlags & SkPaint::kLinearText_Flag) { flags |= kLinearMetrics_PrivFlag; } + fFlags = flags; Edging edging = Edging::kAlias; - if (paint.isAntiAlias()) { + if (paintFlags & SkPaint::kAntiAlias_Flag) { edging = Edging::kAntiAlias; - if (paint.isLCDRenderText()) { + if (paintFlags & SkPaint::kLCDRenderText_Flag) { edging = Edging::kSubpixelAntiAlias; } } - - SkFont font(sk_ref_sp(paint.getTypeface()), paint.getTextSize(), paint.getTextScaleX(), - paint.getTextSkewX()); - font.fFlags = flags; - font.setEdging(edging); - font.setHinting((SkFontHinting)paint.getHinting()); - return font; + this->setEdging(edging); } + |