use SkFontMetrics so we can deprecated the typedef
Bug: skia:
Change-Id: Icd40c042b0a8251bbd0b39dd3ee1a4634fff379f
Reviewed-on: https://skia-review.googlesource.com/c/170344
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
diff --git a/docs/SkPaint_Reference.bmh b/docs/SkPaint_Reference.bmh
index 44c5124..373be0e 100644
--- a/docs/SkPaint_Reference.bmh
+++ b/docs/SkPaint_Reference.bmh
@@ -3733,7 +3733,7 @@
#Example
SkPaint paint;
- SkPaint::FontMetrics fm;
+ SkFontMetrics fm;
paint.getFontMetrics(&fm);
SkRect fb = paint.getFontBounds();
SkDebugf("metrics bounds = { %g, %g, %g, %g }\n", fm.fXMin, fm.fTop, fm.fXMax, fm.fBottom );
diff --git a/gm/coloremoji.cpp b/gm/coloremoji.cpp
index 58a39e7..290c747 100644
--- a/gm/coloremoji.cpp
+++ b/gm/coloremoji.cpp
@@ -82,7 +82,7 @@
// draw text at different point sizes
constexpr SkScalar textSizes[] = { 10, 30, 50, };
- SkPaint::FontMetrics metrics;
+ SkFontMetrics metrics;
SkScalar y = 0;
for (const bool& fakeBold : { false, true }) {
paint.setFakeBoldText(fakeBold);
diff --git a/gm/fontmgr.cpp b/gm/fontmgr.cpp
index 5b69ecf..0e22588 100644
--- a/gm/fontmgr.cpp
+++ b/gm/fontmgr.cpp
@@ -234,16 +234,16 @@
SkPaint metricsPaint(boundsPaint);
metricsPaint.setStyle(SkPaint::kFill_Style);
metricsPaint.setAlpha(0x40);
- if ((fm.fFlags & SkPaint::FontMetrics::kUnderlinePositionIsValid_Flag) &&
- (fm.fFlags & SkPaint::FontMetrics::kUnderlinePositionIsValid_Flag))
+ if ((fm.fFlags & SkFontMetrics::kUnderlinePositionIsValid_Flag) &&
+ (fm.fFlags & SkFontMetrics::kUnderlinePositionIsValid_Flag))
{
SkRect underline{ fontBounds.fLeft, fm.fUnderlinePosition+y,
fontBounds.fRight, fm.fUnderlinePosition+y + fm.fUnderlineThickness };
canvas->drawRect(underline, metricsPaint);
}
- if ((fm.fFlags & SkPaint::FontMetrics::kStrikeoutPositionIsValid_Flag) &&
- (fm.fFlags & SkPaint::FontMetrics::kStrikeoutPositionIsValid_Flag))
+ if ((fm.fFlags & SkFontMetrics::kStrikeoutPositionIsValid_Flag) &&
+ (fm.fFlags & SkFontMetrics::kStrikeoutPositionIsValid_Flag))
{
SkRect strikeout{ fontBounds.fLeft, fm.fStrikeoutPosition+y - fm.fStrikeoutThickness,
fontBounds.fRight, fm.fStrikeoutPosition+y };
diff --git a/gm/poly2poly.cpp b/gm/poly2poly.cpp
index f89e57a..6edba54 100644
--- a/gm/poly2poly.cpp
+++ b/gm/poly2poly.cpp
@@ -213,7 +213,7 @@
canvas->drawLine(0, 0, D, D, *paint);
canvas->drawLine(0, D, D, 0, *paint);
- SkPaint::FontMetrics fm;
+ SkFontMetrics fm;
paint->getFontMetrics(&fm);
paint->setColor(SK_ColorRED);
paint->setStyle(SkPaint::kFill_Style);
diff --git a/gm/scaledemoji.cpp b/gm/scaledemoji.cpp
index a639b01..6bae281 100644
--- a/gm/scaledemoji.cpp
+++ b/gm/scaledemoji.cpp
@@ -50,7 +50,7 @@
// draw text at different point sizes
// Testing GPU bitmap path, SDF path with no scaling,
// SDF path with scaling, path rendering with scaling
- SkPaint::FontMetrics metrics;
+ SkFontMetrics metrics;
SkScalar y = 0;
for (SkScalar textSize : { 70, 180, 270, 340 }) {
paint.setTextSize(textSize);
@@ -100,7 +100,7 @@
// draw text at different point sizes
// Testing GPU bitmap path, SDF path with no scaling,
// SDF path with scaling, path rendering with scaling
- SkPaint::FontMetrics metrics;
+ SkFontMetrics metrics;
SkScalar y = 0;
for (SkScalar textSize : { 70, 180, 270, 340 }) {
paint.setTextSize(textSize);
diff --git a/gm/scaledemoji_rendering.cpp b/gm/scaledemoji_rendering.cpp
index 9ab8e55..6b75dc8 100644
--- a/gm/scaledemoji_rendering.cpp
+++ b/gm/scaledemoji_rendering.cpp
@@ -46,7 +46,7 @@
SkPaint paint;
paint.setTypeface(typeface);
const char* text = sk_tool_utils::emoji_sample_text();
- SkPaint::FontMetrics metrics;
+ SkFontMetrics metrics;
for (SkScalar textSize : { 70, 150 }) {
paint.setTextSize(textSize);
diff --git a/include/core/SkFontMetrics.h b/include/core/SkFontMetrics.h
index 43fd75f..873931b 100644
--- a/include/core/SkFontMetrics.h
+++ b/include/core/SkFontMetrics.h
@@ -12,7 +12,7 @@
struct SK_API SkFontMetrics {
- /** \enum SkPaint::FontMetrics::FontMetricsFlags
+ /** \enum FontMetricsFlags
FontMetricsFlags are set in fFlags when underline and strikeout metrics are valid;
the underline or strikeout metric may be valid and zero.
Fonts with embedded bitmaps may not have valid underline or strikeout metrics.
@@ -41,7 +41,7 @@
SkScalar fStrikeoutThickness; //!< strikeout thickness
SkScalar fStrikeoutPosition; //!< strikeout position relative to baseline
- /** Returns true if SkPaint::FontMetrics has a valid underline thickness, and sets
+ /** Returns true if SkFontMetrics has a valid underline thickness, and sets
thickness to that value. If the underline thickness is not valid,
return false, and ignore thickness.
@@ -56,7 +56,7 @@
return false;
}
- /** Returns true if SkPaint::FontMetrics has a valid underline position, and sets
+ /** Returns true if SkFontMetrics has a valid underline position, and sets
position to that value. If the underline position is not valid,
return false, and ignore position.
@@ -71,7 +71,7 @@
return false;
}
- /** Returns true if SkPaint::FontMetrics has a valid strikeout thickness, and sets
+ /** Returns true if SkFontMetrics has a valid strikeout thickness, and sets
thickness to that value. If the underline thickness is not valid,
return false, and ignore thickness.
@@ -86,7 +86,7 @@
return false;
}
- /** Returns true if SkPaint::FontMetrics has a valid strikeout position, and sets
+ /** Returns true if SkFontMetrics has a valid strikeout position, and sets
position to that value. If the underline position is not valid,
return false, and ignore position.
diff --git a/include/core/SkPaint.h b/include/core/SkPaint.h
index c2dbfe8..3ae2a66 100644
--- a/include/core/SkPaint.h
+++ b/include/core/SkPaint.h
@@ -27,6 +27,8 @@
#include "SkMatrix.h"
#include "SkRefCnt.h"
+#define SK_SUPPORT_LEGACY_FONTMETRICS_IN_PAINT
+
class GrTextBlob;
class SkAutoDescriptor;
class SkColorFilter;
@@ -943,6 +945,7 @@
*/
void setTextEncoding(TextEncoding encoding);
+#ifdef SK_SUPPORT_LEGACY_FONTMETRICS_IN_PAINT
/**
SkFontMetrics is filled out by getFontMetrics(). SkFontMetrics contents reflect the values
computed by font manager using SkTypeface. Values are set to zero if they are
@@ -959,6 +962,7 @@
are valid, since their value may be zero.
*/
typedef SkFontMetrics FontMetrics;
+#endif
/** Returns SkFontMetrics associated with SkTypeface.
The return value is the recommended spacing between lines: the sum of metrics
diff --git a/modules/skshaper/src/SkShaper_harfbuzz.cpp b/modules/skshaper/src/SkShaper_harfbuzz.cpp
index 0406496..47630d5 100644
--- a/modules/skshaper/src/SkShaper_harfbuzz.cpp
+++ b/modules/skshaper/src/SkShaper_harfbuzz.cpp
@@ -723,7 +723,7 @@
ShapedGlyph* nextGlyph = glyphIterator.next();
if (previousRunIndex != runIndex) {
- SkPaint::FontMetrics metrics;
+ SkFontMetrics metrics;
runs[runIndex].fPaint.getFontMetrics(&metrics);
maxAscent = SkTMin(maxAscent, metrics.fAscent);
maxDescent = SkTMax(maxDescent, metrics.fDescent);
diff --git a/modules/skshaper/src/SkShaper_primitive.cpp b/modules/skshaper/src/SkShaper_primitive.cpp
index e6b4277..3f45a11 100644
--- a/modules/skshaper/src/SkShaper_primitive.cpp
+++ b/modules/skshaper/src/SkShaper_primitive.cpp
@@ -49,7 +49,7 @@
return point;
}
SkRect bounds;
- SkPaint::FontMetrics metrics;
+ SkFontMetrics metrics;
paint.getFontMetrics(&metrics);
point.fY -= metrics.fAscent;
(void)paint.measureText(utf8text, textBytes, &bounds);
diff --git a/samplecode/SampleChineseFling.cpp b/samplecode/SampleChineseFling.cpp
index 2a25998..769cc1e 100644
--- a/samplecode/SampleChineseFling.cpp
+++ b/samplecode/SampleChineseFling.cpp
@@ -121,7 +121,7 @@
bool fInitialized = false;
sk_sp<SkTypeface> fTypeface;
- SkPaint::FontMetrics fMetrics;
+ SkFontMetrics fMetrics;
SkTArray<sk_sp<SkTextBlob>> fBlobs;
SkRandom fRand;
int fIndex;
@@ -253,7 +253,7 @@
bool fInitialized = false;
sk_sp<SkTypeface> fTypeface;
- SkPaint::FontMetrics fMetrics;
+ SkFontMetrics fMetrics;
SkTArray<sk_sp<SkTextBlob>> fBlobs;
SkRandom fRand;
SkScalar fScale;
diff --git a/samplecode/SampleFontCache.cpp b/samplecode/SampleFontCache.cpp
index 2428657..2ba4b08 100644
--- a/samplecode/SampleFontCache.cpp
+++ b/samplecode/SampleFontCache.cpp
@@ -22,7 +22,7 @@
text[j] = (uint16_t)((rand.nextU() & 0xFF) + 32);
for (int i = 9; i < 36; i++) {
- SkPaint::FontMetrics m;
+ SkFontMetrics m;
paint.setTextSize(SkIntToScalar(i));
paint.getFontMetrics(&m);
@@ -46,7 +46,7 @@
canvas->drawColor(SK_ColorWHITE);
for (int i = 9; i < 36; i++)
{
- SkPaint::FontMetrics m;
+ SkFontMetrics m;
paint.setTextSize(SkIntToScalar(i));
paint.getFontMetrics(&m);
diff --git a/samplecode/SamplePolyToPoly.cpp b/samplecode/SamplePolyToPoly.cpp
index 08d3c79..24c8b80 100644
--- a/samplecode/SamplePolyToPoly.cpp
+++ b/samplecode/SamplePolyToPoly.cpp
@@ -96,7 +96,7 @@
canvas->drawLine(0, 0, D, D, *paint);
canvas->drawLine(0, D, D, 0, *paint);
- SkPaint::FontMetrics fm;
+ SkFontMetrics fm;
paint->getFontMetrics(&fm);
paint->setColor(SK_ColorRED);
paint->setStyle(SkPaint::kFill_Style);
diff --git a/samplecode/SampleRegion.cpp b/samplecode/SampleRegion.cpp
index 4c5b588..a9526fa 100644
--- a/samplecode/SampleRegion.cpp
+++ b/samplecode/SampleRegion.cpp
@@ -56,7 +56,7 @@
const SkPaint& paint) {
// Need a bounds for the text
SkRect bounds;
- SkPaint::FontMetrics fm;
+ SkFontMetrics fm;
paint.getFontMetrics(&fm);
bounds.set(x, y + fm.fTop, x + paint.measureText(text, len), y + fm.fBottom);
diff --git a/src/core/SkPaintPriv.cpp b/src/core/SkPaintPriv.cpp
index 0114951..8718cf1 100644
--- a/src/core/SkPaintPriv.cpp
+++ b/src/core/SkPaintPriv.cpp
@@ -56,7 +56,7 @@
: kNotOpaque_ShaderOverrideOpacity);
}
-void SkPaintPriv::ScaleFontMetrics(SkPaint::FontMetrics* metrics, SkScalar scale) {
+void SkPaintPriv::ScaleFontMetrics(SkFontMetrics* metrics, SkScalar scale) {
metrics->fTop *= scale;
metrics->fAscent *= scale;
metrics->fDescent *= scale;
diff --git a/src/core/SkPaintPriv.h b/src/core/SkPaintPriv.h
index a5ee9a5..9181e35 100644
--- a/src/core/SkPaintPriv.h
+++ b/src/core/SkPaintPriv.h
@@ -50,7 +50,7 @@
*/
static bool Overwrites(const SkImage*, const SkPaint* paint);
- static void ScaleFontMetrics(SkPaint::FontMetrics*, SkScalar);
+ static void ScaleFontMetrics(SkFontMetrics*, SkScalar);
/**
* Return a matrix that applies the paint's text values: size, scale, skew
diff --git a/src/core/SkPaint_text.cpp b/src/core/SkPaint_text.cpp
index eda6fc3..7e2d2d2 100644
--- a/src/core/SkPaint_text.cpp
+++ b/src/core/SkPaint_text.cpp
@@ -477,7 +477,7 @@
const SkPaint& paint = canon.getPaint();
SkScalar scale = canon.getScale();
- FontMetrics storage;
+ SkFontMetrics storage;
if (nullptr == metrics) {
metrics = &storage;
}
diff --git a/src/core/SkRecordDraw.cpp b/src/core/SkRecordDraw.cpp
index 6b19202..05c7b2e 100644
--- a/src/core/SkRecordDraw.cpp
+++ b/src/core/SkRecordDraw.cpp
@@ -495,7 +495,7 @@
xPad = 4.0f * yPad;
rect->outset(xPad, yPad);
#ifdef SK_DEBUG
- SkPaint::FontMetrics metrics;
+ SkFontMetrics metrics;
paint.getFontMetrics(&metrics);
correct.fLeft += metrics.fXMin;
correct.fTop += metrics.fTop;
diff --git a/src/core/SkRemoteGlyphCache.cpp b/src/core/SkRemoteGlyphCache.cpp
index c25d68d..aae01de 100644
--- a/src/core/SkRemoteGlyphCache.cpp
+++ b/src/core/SkRemoteGlyphCache.cpp
@@ -459,9 +459,9 @@
// Write FontMetrics.
// TODO(khushalsagar): Do we need to re-send each time?
- SkPaint::FontMetrics fontMetrics;
+ SkFontMetrics fontMetrics;
fContext->getFontMetrics(&fontMetrics);
- serializer->write<SkPaint::FontMetrics>(fontMetrics);
+ serializer->write<SkFontMetrics>(fontMetrics);
// Write glyphs images.
serializer->emplace<uint64_t>(fPendingGlyphImages.size());
@@ -622,8 +622,8 @@
SkAutoDescriptor sourceAd;
if (!deserializer.readDescriptor(&sourceAd)) READ_FAILURE
- SkPaint::FontMetrics fontMetrics;
- if (!deserializer.read<SkPaint::FontMetrics>(&fontMetrics)) READ_FAILURE
+ SkFontMetrics fontMetrics;
+ if (!deserializer.read<SkFontMetrics>(&fontMetrics)) READ_FAILURE
// Get the local typeface from remote fontID.
auto* tf = fRemoteFontIdToTypeface.find(spec.typefaceID)->get();
diff --git a/src/core/SkScalerContext.cpp b/src/core/SkScalerContext.cpp
index 297c8c9..190e92f 100644
--- a/src/core/SkScalerContext.cpp
+++ b/src/core/SkScalerContext.cpp
@@ -550,7 +550,7 @@
return this->internalGetPath(glyphID, path);
}
-void SkScalerContext::getFontMetrics(SkPaint::FontMetrics* fm) {
+void SkScalerContext::getFontMetrics(SkFontMetrics* fm) {
SkASSERT(fm);
this->generateFontMetrics(fm);
}
@@ -820,7 +820,7 @@
path->reset();
return false;
}
- void generateFontMetrics(SkPaint::FontMetrics* metrics) override {
+ void generateFontMetrics(SkFontMetrics* metrics) override {
if (metrics) {
sk_bzero(metrics, sizeof(*metrics));
}
diff --git a/src/core/SkScalerContext.h b/src/core/SkScalerContext.h
index d6cea6a..72afa44 100644
--- a/src/core/SkScalerContext.h
+++ b/src/core/SkScalerContext.h
@@ -297,7 +297,7 @@
void getMetrics(SkGlyph*);
void getImage(const SkGlyph&);
bool SK_WARN_UNUSED_RESULT getPath(SkPackedGlyphID, SkPath*);
- void getFontMetrics(SkPaint::FontMetrics*);
+ void getFontMetrics(SkFontMetrics*);
/** Return the size in bytes of the associated gamma lookup table
*/
@@ -414,7 +414,7 @@
virtual bool SK_WARN_UNUSED_RESULT generatePath(SkGlyphID glyphId, SkPath* path) = 0;
/** Retrieves font metrics. */
- virtual void generateFontMetrics(SkPaint::FontMetrics*) = 0;
+ virtual void generateFontMetrics(SkFontMetrics*) = 0;
/** Returns the number of glyphs in the font. */
virtual unsigned generateGlyphCount() = 0;
diff --git a/src/core/SkStrikeCache.cpp b/src/core/SkStrikeCache.cpp
index 477674f..85ad044 100644
--- a/src/core/SkStrikeCache.cpp
+++ b/src/core/SkStrikeCache.cpp
@@ -25,7 +25,7 @@
struct SkStrikeCache::Node {
Node(const SkDescriptor& desc,
std::unique_ptr<SkScalerContext> scaler,
- const SkPaint::FontMetrics& metrics,
+ const SkFontMetrics& metrics,
std::unique_ptr<SkStrikePinner> pinner)
: fCache{desc, std::move(scaler), metrics}
, fPinner{std::move(pinner)} {}
@@ -350,7 +350,7 @@
SkExclusiveStrikePtr SkStrikeCache::CreateStrikeExclusive(
const SkDescriptor& desc,
std::unique_ptr<SkScalerContext> scaler,
- SkPaint::FontMetrics* maybeMetrics,
+ SkFontMetrics* maybeMetrics,
std::unique_ptr<SkStrikePinner> pinner)
{
return GlobalStrikeCache()->createStrikeExclusive(
@@ -360,10 +360,10 @@
SkExclusiveStrikePtr SkStrikeCache::createStrikeExclusive(
const SkDescriptor& desc,
std::unique_ptr<SkScalerContext> scaler,
- SkPaint::FontMetrics* maybeMetrics,
+ SkFontMetrics* maybeMetrics,
std::unique_ptr<SkStrikePinner> pinner)
{
- SkPaint::FontMetrics fontMetrics;
+ SkFontMetrics fontMetrics;
if (maybeMetrics != nullptr) {
fontMetrics = *maybeMetrics;
} else {
diff --git a/src/core/SkTypeface.cpp b/src/core/SkTypeface.cpp
index 96b61ce..3e485f5 100644
--- a/src/core/SkTypeface.cpp
+++ b/src/core/SkTypeface.cpp
@@ -413,7 +413,7 @@
return false;
}
- SkPaint::FontMetrics fm;
+ SkFontMetrics fm;
ctx->getFontMetrics(&fm);
bounds->set(fm.fXMin * invTextSize, fm.fTop * invTextSize,
fm.fXMax * invTextSize, fm.fBottom * invTextSize);
diff --git a/src/core/SkTypeface_remote.cpp b/src/core/SkTypeface_remote.cpp
index 8083708..e79c51a 100644
--- a/src/core/SkTypeface_remote.cpp
+++ b/src/core/SkTypeface_remote.cpp
@@ -100,7 +100,7 @@
return foundPath;
}
-void SkScalerContextProxy::generateFontMetrics(SkPaint::FontMetrics* metrics) {
+void SkScalerContextProxy::generateFontMetrics(SkFontMetrics* metrics) {
TRACE_EVENT1(
"skia", "generateFontMetrics", "rec", TRACE_STR_COPY(this->getRec().dump().c_str()));
if (this->getProxyTypeface()->isLogging()) {
diff --git a/src/core/SkTypeface_remote.h b/src/core/SkTypeface_remote.h
index d3ea3f8..61b5bd8 100644
--- a/src/core/SkTypeface_remote.h
+++ b/src/core/SkTypeface_remote.h
@@ -36,7 +36,7 @@
void generateMetrics(SkGlyph* glyph) override;
void generateImage(const SkGlyph& glyph) override;
bool generatePath(SkGlyphID glyphID, SkPath* path) override;
- void generateFontMetrics(SkPaint::FontMetrics* metrics) override;
+ void generateFontMetrics(SkFontMetrics* metrics) override;
SkTypefaceProxy* getProxyTypeface() const;
private:
diff --git a/src/ports/SkFontHost_FreeType.cpp b/src/ports/SkFontHost_FreeType.cpp
index d671b56..c871e94 100644
--- a/src/ports/SkFontHost_FreeType.cpp
+++ b/src/ports/SkFontHost_FreeType.cpp
@@ -502,7 +502,7 @@
void generateMetrics(SkGlyph* glyph) override;
void generateImage(const SkGlyph& glyph) override;
bool generatePath(SkGlyphID glyphID, SkPath* path) override;
- void generateFontMetrics(SkPaint::FontMetrics*) override;
+ void generateFontMetrics(SkFontMetrics*) override;
SkUnichar generateGlyphToChar(uint16_t glyph) override;
private:
@@ -1388,7 +1388,7 @@
return true;
}
-void SkScalerContext_FreeType::generateFontMetrics(SkPaint::FontMetrics* metrics) {
+void SkScalerContext_FreeType::generateFontMetrics(SkFontMetrics* metrics) {
if (nullptr == metrics) {
return;
}
@@ -1416,8 +1416,8 @@
avgCharWidth = SkIntToScalar(os2->xAvgCharWidth) / upem;
strikeoutThickness = SkIntToScalar(os2->yStrikeoutSize) / upem;
strikeoutPosition = -SkIntToScalar(os2->yStrikeoutPosition) / upem;
- metrics->fFlags |= SkPaint::FontMetrics::kStrikeoutThicknessIsValid_Flag;
- metrics->fFlags |= SkPaint::FontMetrics::kStrikeoutPositionIsValid_Flag;
+ metrics->fFlags |= SkFontMetrics::kStrikeoutThicknessIsValid_Flag;
+ metrics->fFlags |= SkFontMetrics::kStrikeoutPositionIsValid_Flag;
if (os2->version != 0xFFFF && os2->version >= 2) {
cap_height = SkIntToScalar(os2->sCapHeight) / upem * fScale.y();
}
@@ -1449,8 +1449,8 @@
underlinePosition = -SkIntToScalar(face->underline_position +
face->underline_thickness / 2) / upem;
- metrics->fFlags |= SkPaint::FontMetrics::kUnderlineThicknessIsValid_Flag;
- metrics->fFlags |= SkPaint::FontMetrics::kUnderlinePositionIsValid_Flag;
+ metrics->fFlags |= SkFontMetrics::kUnderlineThicknessIsValid_Flag;
+ metrics->fFlags |= SkFontMetrics::kUnderlinePositionIsValid_Flag;
// we may be able to synthesize x_height and cap_height from outline
if (!x_height) {
@@ -1477,15 +1477,15 @@
ymax = ascent;
underlineThickness = 0;
underlinePosition = 0;
- metrics->fFlags &= ~SkPaint::FontMetrics::kUnderlineThicknessIsValid_Flag;
- metrics->fFlags &= ~SkPaint::FontMetrics::kUnderlinePositionIsValid_Flag;
+ metrics->fFlags &= ~SkFontMetrics::kUnderlineThicknessIsValid_Flag;
+ metrics->fFlags &= ~SkFontMetrics::kUnderlinePositionIsValid_Flag;
TT_Postscript* post = (TT_Postscript*) FT_Get_Sfnt_Table(face, ft_sfnt_post);
if (post) {
underlineThickness = SkIntToScalar(post->underlineThickness) / upem;
underlinePosition = -SkIntToScalar(post->underlinePosition) / upem;
- metrics->fFlags |= SkPaint::FontMetrics::kUnderlineThicknessIsValid_Flag;
- metrics->fFlags |= SkPaint::FontMetrics::kUnderlinePositionIsValid_Flag;
+ metrics->fFlags |= SkFontMetrics::kUnderlineThicknessIsValid_Flag;
+ metrics->fFlags |= SkFontMetrics::kUnderlinePositionIsValid_Flag;
}
} else {
sk_bzero(metrics, sizeof(*metrics));
diff --git a/src/ports/SkFontHost_mac.cpp b/src/ports/SkFontHost_mac.cpp
index 8bb78a3..c0d13c2 100644
--- a/src/ports/SkFontHost_mac.cpp
+++ b/src/ports/SkFontHost_mac.cpp
@@ -905,7 +905,7 @@
void generateMetrics(SkGlyph* glyph) override;
void generateImage(const SkGlyph& glyph) override;
bool generatePath(SkGlyphID glyph, SkPath* path) override;
- void generateFontMetrics(SkPaint::FontMetrics*) override;
+ void generateFontMetrics(SkFontMetrics*) override;
private:
static void CTPathElement(void *info, const CGPathElement *element);
@@ -1460,7 +1460,7 @@
return true;
}
-void SkScalerContext_Mac::generateFontMetrics(SkPaint::FontMetrics* metrics) {
+void SkScalerContext_Mac::generateFontMetrics(SkFontMetrics* metrics) {
if (nullptr == metrics) {
return;
}
@@ -1484,8 +1484,8 @@
metrics->fUnderlinePosition = -CGToScalar( CTFontGetUnderlinePosition(fCTFont.get()));
metrics->fFlags = 0;
- metrics->fFlags |= SkPaint::FontMetrics::kUnderlineThicknessIsValid_Flag;
- metrics->fFlags |= SkPaint::FontMetrics::kUnderlinePositionIsValid_Flag;
+ metrics->fFlags |= SkFontMetrics::kUnderlineThicknessIsValid_Flag;
+ metrics->fFlags |= SkFontMetrics::kUnderlinePositionIsValid_Flag;
// See https://bugs.chromium.org/p/skia/issues/detail?id=6203
// At least on 10.12.3 with memory based fonts the x-height is always 0.6666 of the ascent and
diff --git a/src/ports/SkFontHost_win.cpp b/src/ports/SkFontHost_win.cpp
index d0cadbe..7943597 100644
--- a/src/ports/SkFontHost_win.cpp
+++ b/src/ports/SkFontHost_win.cpp
@@ -558,7 +558,7 @@
void generateMetrics(SkGlyph* glyph) override;
void generateImage(const SkGlyph& glyph) override;
bool generatePath(SkGlyphID glyph, SkPath* path) override;
- void generateFontMetrics(SkPaint::FontMetrics*) override;
+ void generateFontMetrics(SkFontMetrics*) override;
private:
DWORD getGDIGlyphPath(SkGlyphID glyph, UINT flags,
@@ -973,7 +973,7 @@
}
static const MAT2 gMat2Identity = {{0, 1}, {0, 0}, {0, 0}, {0, 1}};
-void SkScalerContext_GDI::generateFontMetrics(SkPaint::FontMetrics* metrics) {
+void SkScalerContext_GDI::generateFontMetrics(SkFontMetrics* metrics) {
if (nullptr == metrics) {
return;
}
@@ -1024,8 +1024,8 @@
metrics->fUnderlineThickness = SkIntToScalar(otm.otmsUnderscoreSize);
metrics->fUnderlinePosition = -SkIntToScalar(otm.otmsUnderscorePosition);
- metrics->fFlags |= SkPaint::FontMetrics::kUnderlineThicknessIsValid_Flag;
- metrics->fFlags |= SkPaint::FontMetrics::kUnderlinePositionIsValid_Flag;
+ metrics->fFlags |= SkFontMetrics::kUnderlineThicknessIsValid_Flag;
+ metrics->fFlags |= SkFontMetrics::kUnderlinePositionIsValid_Flag;
metrics->fXHeight = SkIntToScalar(otm.otmsXHeight);
GLYPHMETRICS gm;
diff --git a/src/ports/SkScalerContext_win_dw.cpp b/src/ports/SkScalerContext_win_dw.cpp
index fe31c50..a4bb208 100644
--- a/src/ports/SkScalerContext_win_dw.cpp
+++ b/src/ports/SkScalerContext_win_dw.cpp
@@ -725,7 +725,7 @@
// fails, and try DWRITE_TEXTURE_CLEARTYPE_3x1.
}
-void SkScalerContext_DW::generateFontMetrics(SkPaint::FontMetrics* metrics) {
+void SkScalerContext_DW::generateFontMetrics(SkFontMetrics* metrics) {
if (nullptr == metrics) {
return;
}
@@ -757,10 +757,10 @@
metrics->fStrikeoutThickness = fTextSizeRender * SkIntToScalar(dwfm.strikethroughThickness) / upem;
metrics->fStrikeoutPosition = -(fTextSizeRender * SkIntToScalar(dwfm.strikethroughPosition) / upem);
- metrics->fFlags |= SkPaint::FontMetrics::kUnderlineThicknessIsValid_Flag;
- metrics->fFlags |= SkPaint::FontMetrics::kUnderlinePositionIsValid_Flag;
- metrics->fFlags |= SkPaint::FontMetrics::kStrikeoutThicknessIsValid_Flag;
- metrics->fFlags |= SkPaint::FontMetrics::kStrikeoutPositionIsValid_Flag;
+ metrics->fFlags |= SkFontMetrics::kUnderlineThicknessIsValid_Flag;
+ metrics->fFlags |= SkFontMetrics::kUnderlinePositionIsValid_Flag;
+ metrics->fFlags |= SkFontMetrics::kStrikeoutThicknessIsValid_Flag;
+ metrics->fFlags |= SkFontMetrics::kStrikeoutPositionIsValid_Flag;
if (this->getDWriteTypeface()->fDWriteFontFace1.get()) {
DWRITE_FONT_METRICS1 dwfm1;
diff --git a/src/ports/SkScalerContext_win_dw.h b/src/ports/SkScalerContext_win_dw.h
index 738ffb7..a462d98 100644
--- a/src/ports/SkScalerContext_win_dw.h
+++ b/src/ports/SkScalerContext_win_dw.h
@@ -33,7 +33,7 @@
void generateMetrics(SkGlyph* glyph) override;
void generateImage(const SkGlyph& glyph) override;
bool generatePath(SkGlyphID glyph, SkPath* path) override;
- void generateFontMetrics(SkPaint::FontMetrics*) override;
+ void generateFontMetrics(SkFontMetrics*) override;
private:
const void* drawDWMask(const SkGlyph& glyph,
diff --git a/src/utils/SkLua.cpp b/src/utils/SkLua.cpp
index 561953e..c5a6617 100644
--- a/src/utils/SkLua.cpp
+++ b/src/utils/SkLua.cpp
@@ -911,7 +911,7 @@
};
static int lpaint_getFontMetrics(lua_State* L) {
- SkPaint::FontMetrics fm;
+ SkFontMetrics fm;
SkScalar height = get_obj<SkPaint>(L, 1)->getFontMetrics(&fm);
lua_newtable(L);
diff --git a/tools/fonts/SkRandomScalerContext.cpp b/tools/fonts/SkRandomScalerContext.cpp
index 076d905..7259a83 100644
--- a/tools/fonts/SkRandomScalerContext.cpp
+++ b/tools/fonts/SkRandomScalerContext.cpp
@@ -28,7 +28,7 @@
void generateMetrics(SkGlyph*) override;
void generateImage(const SkGlyph&) override;
bool generatePath(SkGlyphID, SkPath*) override;
- void generateFontMetrics(SkPaint::FontMetrics*) override;
+ void generateFontMetrics(SkFontMetrics*) override;
private:
SkRandomTypeface* getRandomTypeface() const {
@@ -140,7 +140,7 @@
return fProxy->generatePath(glyph, path);
}
-void SkRandomScalerContext::generateFontMetrics(SkPaint::FontMetrics* metrics) {
+void SkRandomScalerContext::generateFontMetrics(SkFontMetrics* metrics) {
fProxy->getFontMetrics(metrics);
}
diff --git a/tools/fonts/SkTestSVGTypeface.cpp b/tools/fonts/SkTestSVGTypeface.cpp
index b991d46..4b0d5a0 100644
--- a/tools/fonts/SkTestSVGTypeface.cpp
+++ b/tools/fonts/SkTestSVGTypeface.cpp
@@ -49,7 +49,7 @@
SkTestSVGTypeface::SkTestSVGTypeface(const char* name,
int upem,
- const SkPaint::FontMetrics& fontMetrics,
+ const SkFontMetrics& fontMetrics,
const SkSVGTestTypefaceGlyphData* data, int dataCount,
const SkFontStyle& style)
: SkTypeface(style, false)
@@ -95,7 +95,7 @@
glyph->fAdvanceY = 0;
}
-void SkTestSVGTypeface::getFontMetrics(SkPaint::FontMetrics* metrics) const {
+void SkTestSVGTypeface::getFontMetrics(SkFontMetrics* metrics) const {
*metrics = fFontMetrics;
}
@@ -251,7 +251,7 @@
return false;
}
- void generateFontMetrics(SkPaint::FontMetrics* metrics) override {
+ void generateFontMetrics(SkFontMetrics* metrics) override {
this->geTestSVGTypeface()->getFontMetrics(metrics);
SkPaintPriv::ScaleFontMetrics(metrics, fMatrix.getScaleY());
}
@@ -275,11 +275,11 @@
};
sk_sp<SkTestSVGTypeface> SkTestSVGTypeface::Default() {
- SkPaint::FontMetrics metrics;
- metrics.fFlags = SkPaint::FontMetrics::kUnderlineThicknessIsValid_Flag |
- SkPaint::FontMetrics::kUnderlinePositionIsValid_Flag |
- SkPaint::FontMetrics::kStrikeoutThicknessIsValid_Flag |
- SkPaint::FontMetrics::kStrikeoutPositionIsValid_Flag;
+ SkFontMetrics metrics;
+ metrics.fFlags = SkFontMetrics::kUnderlineThicknessIsValid_Flag |
+ SkFontMetrics::kUnderlinePositionIsValid_Flag |
+ SkFontMetrics::kStrikeoutThicknessIsValid_Flag |
+ SkFontMetrics::kStrikeoutPositionIsValid_Flag;
metrics.fTop = -800;
metrics.fAscent = -800;
metrics.fDescent = 200;
@@ -697,7 +697,7 @@
}
out->writeText(" </CBDT>\n");
- SkPaint::FontMetrics fm;
+ SkFontMetrics fm;
out->writeText(" <CBLC>\n");
out->writeText(" <header version=\"2.0\"/>\n");
for (size_t strikeIndex = 0; strikeIndex < SK_ARRAY_COUNT(strikeSizes); ++strikeIndex) {
diff --git a/tools/fonts/SkTestSVGTypeface.h b/tools/fonts/SkTestSVGTypeface.h
index 597ec33..906d1ed 100644
--- a/tools/fonts/SkTestSVGTypeface.h
+++ b/tools/fonts/SkTestSVGTypeface.h
@@ -47,12 +47,12 @@
public:
SkTestSVGTypeface(const char* name,
int upem,
- const SkPaint::FontMetrics& metrics,
+ const SkFontMetrics& metrics,
const SkSVGTestTypefaceGlyphData* data, int dataCount,
const SkFontStyle& style);
~SkTestSVGTypeface() override;
void getAdvance(SkGlyph* glyph) const;
- void getFontMetrics(SkPaint::FontMetrics* metrics) const;
+ void getFontMetrics(SkFontMetrics* metrics) const;
static sk_sp<SkTestSVGTypeface> Default();
void exportTtxCbdt(SkWStream*) const;
@@ -135,7 +135,7 @@
};
SkString fName;
int fUpem;
- const SkPaint::FontMetrics fFontMetrics;
+ const SkFontMetrics fFontMetrics;
std::unique_ptr<Glyph[]> fGlyphs;
int fGlyphCount;
SkTHashMap<SkUnichar, SkGlyphID> fCMap;
diff --git a/tools/fonts/SkTestTypeface.cpp b/tools/fonts/SkTestTypeface.cpp
index 8838586..c969c7e 100644
--- a/tools/fonts/SkTestTypeface.cpp
+++ b/tools/fonts/SkTestTypeface.cpp
@@ -107,7 +107,7 @@
glyph->fAdvanceY = 0;
}
-void SkTestTypeface::getFontMetrics(SkPaint::FontMetrics* metrics) {
+void SkTestTypeface::getFontMetrics(SkFontMetrics* metrics) {
*metrics = fTestFont->fMetrics;
}
@@ -221,7 +221,7 @@
return true;
}
- void generateFontMetrics(SkPaint::FontMetrics* metrics) override {
+ void generateFontMetrics(SkFontMetrics* metrics) override {
this->getTestTypeface()->getFontMetrics(metrics);
SkPaintPriv::ScaleFontMetrics(metrics, fMatrix.getScaleY());
}
diff --git a/tools/fonts/SkTestTypeface.h b/tools/fonts/SkTestTypeface.h
index 524a74c..cb751a0 100644
--- a/tools/fonts/SkTestTypeface.h
+++ b/tools/fonts/SkTestTypeface.h
@@ -37,7 +37,7 @@
const SkUnichar* fCharCodes;
const size_t fCharCodesCount;
const SkFixed* fWidths;
- const SkPaint::FontMetrics& fMetrics;
+ const SkFontMetrics& fMetrics;
const char* fName;
SkFontStyle fStyle;
};
@@ -52,7 +52,7 @@
const SkUnichar* fCharCodes;
const size_t fCharCodesCount;
const SkFixed* fWidths;
- const SkPaint::FontMetrics& fMetrics;
+ const SkFontMetrics& fMetrics;
const char* fName;
SkPath** fPaths;
friend class SkTestTypeface;
@@ -64,7 +64,7 @@
public:
SkTestTypeface(sk_sp<SkTestFont>, const SkFontStyle& style);
void getAdvance(SkGlyph* glyph);
- void getFontMetrics(SkPaint::FontMetrics* metrics);
+ void getFontMetrics(SkFontMetrics* metrics);
void getPath(SkGlyphID glyph, SkPath* path);
protected:
SkScalerContext* onCreateScalerContext(const SkScalerContextEffects&,
diff --git a/tools/fonts/create_test_font.cpp b/tools/fonts/create_test_font.cpp
index 6e9f082..f782dc8 100644
--- a/tools/fonts/create_test_font.cpp
+++ b/tools/fonts/create_test_font.cpp
@@ -262,9 +262,9 @@
fprintf(out, "const size_t %sCharCodesCount = SK_ARRAY_COUNT(%sCharCodes);\n\n",
identifier, identifier);
- SkPaint::FontMetrics metrics;
+ SkFontMetrics metrics;
paint.getFontMetrics(&metrics);
- fprintf(out, "const SkPaint::FontMetrics %sMetrics = {\n", identifier);
+ fprintf(out, "const SkFontMetrics %sMetrics = {\n", identifier);
SkString metricsStr;
metricsStr.printf("0x%08x, ", metrics.fFlags);
output_scalar(metrics.fTop, emSize, &metricsStr);
diff --git a/tools/fonts/test_font_monospace.inc b/tools/fonts/test_font_monospace.inc
index a8292e9..bb87f93 100644
--- a/tools/fonts/test_font_monospace.inc
+++ b/tools/fonts/test_font_monospace.inc
@@ -1192,7 +1192,7 @@
const size_t LiberationMonoNormalCharCodesCount = SK_ARRAY_COUNT(LiberationMonoNormalCharCodes);
-const SkPaint::FontMetrics LiberationMonoNormalMetrics = {
+const SkFontMetrics LiberationMonoNormalMetrics = {
0x0000000f, -0.83252f, -0.83252f, 0.300293f, 0.300293f, 0, 0.600098f, 0.633301f, -0.0244141f,
0.608887f, 0.52832f, 0.658691f, 0.0410156f, 0.23291f, 0.0498047f, -0.258789f
};
@@ -2342,7 +2342,7 @@
const size_t LiberationMonoBoldCharCodesCount = SK_ARRAY_COUNT(LiberationMonoBoldCharCodes);
-const SkPaint::FontMetrics LiberationMonoBoldMetrics = {
+const SkFontMetrics LiberationMonoBoldMetrics = {
0x0000000f, -0.833496f, -0.833496f, 0.300293f, 0.300293f, 0, 0.600098f, 0.641602f, -0.0268555f,
0.614746f, 0.52832f, 0.658691f, 0.100098f, 0.23291f, 0.0498047f, -0.258789f
};
@@ -3608,7 +3608,7 @@
const size_t LiberationMonoItalicCharCodesCount = SK_ARRAY_COUNT(LiberationMonoItalicCharCodes);
-const SkPaint::FontMetrics LiberationMonoItalicMetrics = {
+const SkFontMetrics LiberationMonoItalicMetrics = {
0x0000000f, -0.833496f, -0.833496f, 0.300293f, 0.300293f, 0, 0.600098f, 0.798828f, -0.0942383f,
0.70459f, 0.52832f, 0.658691f, 0.0410156f, 0.23291f, 0.0498047f, -0.258789f
};
@@ -4841,7 +4841,7 @@
const size_t LiberationMonoBoldItalicCharCodesCount = SK_ARRAY_COUNT(LiberationMonoBoldItalicCharCodes);
-const SkPaint::FontMetrics LiberationMonoBoldItalicMetrics = {
+const SkFontMetrics LiberationMonoBoldItalicMetrics = {
0x0000000f, -0.83252f, -0.83252f, 0.300293f, 0.300293f, 0, 0.600098f, 0.791992f, -0.0942383f,
0.697754f, 0.52832f, 0.658691f, 0.100098f, 0.23291f, 0.0498047f, -0.258789f
};
diff --git a/tools/fonts/test_font_sans_serif.inc b/tools/fonts/test_font_sans_serif.inc
index 7ddcd07..b53da19 100644
--- a/tools/fonts/test_font_sans_serif.inc
+++ b/tools/fonts/test_font_sans_serif.inc
@@ -1186,7 +1186,7 @@
const size_t LiberationSansNormalCharCodesCount = SK_ARRAY_COUNT(LiberationSansNormalCharCodes);
-const SkPaint::FontMetrics LiberationSansNormalMetrics = {
+const SkFontMetrics LiberationSansNormalMetrics = {
0x0000000f, -0.910156f, -0.905273f, 0.211914f, 0.303223f, 0.0327148f, 0.589355f, 1.25342f,
-0.203125f, 1.05029f, 0.52832f, 0.687988f, 0.0732422f, 0.105957f, 0.0498047f, -0.258789f
};
@@ -2350,7 +2350,7 @@
const size_t LiberationSansBoldCharCodesCount = SK_ARRAY_COUNT(LiberationSansBoldCharCodes);
-const SkPaint::FontMetrics LiberationSansBoldMetrics = {
+const SkFontMetrics LiberationSansBoldMetrics = {
0x0000000f, -1.0332f, -0.905273f, 0.211914f, 0.303223f, 0.0327148f, 0.612305f, 1.24609f,
-0.184082f, 1.06201f, 0.52832f, 0.687988f, 0.10498f, 0.105957f, 0.0498047f, -0.258789f
};
@@ -3591,7 +3591,7 @@
const size_t LiberationSansItalicCharCodesCount = SK_ARRAY_COUNT(LiberationSansItalicCharCodes);
-const SkPaint::FontMetrics LiberationSansItalicMetrics = {
+const SkFontMetrics LiberationSansItalicMetrics = {
0x0000000f, -1.01416f, -0.905273f, 0.211914f, 0.303223f, 0.0327148f, 0.590332f, 1.33447f,
-0.271973f, 1.0625f, 0.52832f, 0.687988f, 0.0732422f, 0.105957f, 0.0498047f, -0.258789f
};
@@ -4851,7 +4851,7 @@
const size_t LiberationSansBoldItalicCharCodesCount = SK_ARRAY_COUNT(LiberationSansBoldItalicCharCodes);
-const SkPaint::FontMetrics LiberationSansBoldItalicMetrics = {
+const SkFontMetrics LiberationSansBoldItalicMetrics = {
0x0000000f, -1.02979f, -0.905273f, 0.211914f, 0.303223f, 0.0327148f, 0.61377f, 1.3374f,
-0.208984f, 1.12842f, 0.52832f, 0.687988f, 0.10498f, 0.105957f, 0.0498047f, -0.258789f
};
diff --git a/tools/fonts/test_font_serif.inc b/tools/fonts/test_font_serif.inc
index fa769f6..816e094 100644
--- a/tools/fonts/test_font_serif.inc
+++ b/tools/fonts/test_font_serif.inc
@@ -1263,7 +1263,7 @@
const size_t LiberationSerifNormalCharCodesCount = SK_ARRAY_COUNT(LiberationSerifNormalCharCodes);
-const SkPaint::FontMetrics LiberationSerifNormalMetrics = {
+const SkFontMetrics LiberationSerifNormalMetrics = {
0x0000000f, -0.981445f, -0.891113f, 0.216309f, 0.303223f, 0.0424805f, 0.567383f, 1.18359f,
-0.176758f, 1.00684f, 0.458984f, 0.654785f, 0.0488281f, 0.108887f, 0.0488281f, -0.205078f
};
@@ -2513,7 +2513,7 @@
const size_t LiberationSerifBoldCharCodesCount = SK_ARRAY_COUNT(LiberationSerifBoldCharCodes);
-const SkPaint::FontMetrics LiberationSerifBoldMetrics = {
+const SkFontMetrics LiberationSerifBoldMetrics = {
0x0000000f, -1.00781f, -0.891113f, 0.216309f, 0.303223f, 0.0424805f, 0.59375f, 1.26709f,
-0.182129f, 1.08496f, 0.458984f, 0.654785f, 0.0952148f, 0.108887f, 0.0498047f, -0.258789f
};
@@ -3831,7 +3831,7 @@
const size_t LiberationSerifItalicCharCodesCount = SK_ARRAY_COUNT(LiberationSerifItalicCharCodes);
-const SkPaint::FontMetrics LiberationSerifItalicMetrics = {
+const SkFontMetrics LiberationSerifItalicMetrics = {
0x0000000f, -0.980957f, -0.891113f, 0.216309f, 0.303223f, 0.0424805f, 0.559082f, 1.26465f,
-0.176758f, 1.08789f, 0.458984f, 0.654785f, 0.0488281f, 0.108887f, 0.0498047f, -0.258789f
};
@@ -5143,7 +5143,7 @@
const size_t LiberationSerifBoldItalicCharCodesCount = SK_ARRAY_COUNT(LiberationSerifBoldItalicCharCodes);
-const SkPaint::FontMetrics LiberationSerifBoldItalicMetrics = {
+const SkFontMetrics LiberationSerifBoldItalicMetrics = {
0x0000000f, -0.980957f, -0.891113f, 0.216309f, 0.303223f, 0.0424805f, 0.578125f, 1.32861f,
-0.178223f, 1.15039f, 0.458984f, 0.654785f, 0.0952148f, 0.108887f, 0.0498047f, -0.258789f
};