aboutsummaryrefslogtreecommitdiff
path: root/src/core/SkFont.cpp
diff options
context:
space:
mode:
authorMike Reed <reed@google.com>2018-11-21 15:10:08 -0500
committerSkia Commit-Bot <skia-commit-bot@chromium.org>2018-11-21 20:44:03 +0000
commit2ed78209704418aebfb99e858866af249da594c7 (patch)
tree46541338da544799cbbb27c4c0be5fbd379eb65b /src/core/SkFont.cpp
parent3065b5223dc44050753d973d77fbc8e6429f0649 (diff)
downloadskia-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.cpp42
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);
}
+