diff options
Diffstat (limited to 'WebCore/platform/graphics/android')
-rw-r--r-- | WebCore/platform/graphics/android/FontAndroid.cpp | 7 | ||||
-rw-r--r-- | WebCore/platform/graphics/android/FontDataAndroid.cpp | 15 |
2 files changed, 17 insertions, 5 deletions
diff --git a/WebCore/platform/graphics/android/FontAndroid.cpp b/WebCore/platform/graphics/android/FontAndroid.cpp index ca2fca1..a430b07 100644 --- a/WebCore/platform/graphics/android/FontAndroid.cpp +++ b/WebCore/platform/graphics/android/FontAndroid.cpp @@ -107,6 +107,11 @@ static bool setupForText(SkPaint* paint, GraphicsContext* gc, return true; } +bool Font::canReturnFallbackFontsForComplexText() +{ + return false; +} + void Font::drawGlyphs(GraphicsContext* gc, const SimpleFontData* font, const GlyphBuffer& glyphBuffer, int from, int numGlyphs, const FloatPoint& point) const @@ -206,7 +211,7 @@ void Font::drawComplexText(GraphicsContext* gc, TextRun const& run, paint); } -float Font::floatWidthForComplexText(const TextRun& run) const +float Font::floatWidthForComplexText(const TextRun& run, HashSet<const SimpleFontData*>*) const { SkPaint paint; diff --git a/WebCore/platform/graphics/android/FontDataAndroid.cpp b/WebCore/platform/graphics/android/FontDataAndroid.cpp index 3d31eaf..2bb53e4 100644 --- a/WebCore/platform/graphics/android/FontDataAndroid.cpp +++ b/WebCore/platform/graphics/android/FontDataAndroid.cpp @@ -48,7 +48,7 @@ void SimpleFontData::platformInit() SkPaint paint; SkPaint::FontMetrics metrics; - m_font.setupPaint(&paint); + m_platformData.setupPaint(&paint); (void)paint.getFontMetrics(&metrics); // use ceil instead of round to favor descent, given a lot of accidental @@ -64,6 +64,13 @@ void SimpleFontData::platformInit() m_lineGap = SkScalarRound(metrics.fLeading); } +void SimpleFontData::platformCharWidthInit() +{ + m_avgCharWidth = 0.f; + m_maxCharWidth = 0.f; + initCharWidths(); +} + void SimpleFontData::platformDestroy() { delete m_smallCapsFontData; @@ -72,7 +79,7 @@ void SimpleFontData::platformDestroy() SimpleFontData* SimpleFontData::smallCapsFontData(const FontDescription& fontDescription) const { if (!m_smallCapsFontData) { - m_smallCapsFontData = new SimpleFontData(FontPlatformData(m_font, fontDescription.computedSize() * 0.7f)); + m_smallCapsFontData = new SimpleFontData(FontPlatformData(m_platformData, fontDescription.computedSize() * 0.7f)); } return m_smallCapsFontData; } @@ -84,7 +91,7 @@ bool SimpleFontData::containsCharacters(const UChar* characters, int length) con SkPaint paint; uint16_t glyphs[kMaxBufferCount]; - m_font.setupPaint(&paint); + m_platformData.setupPaint(&paint); paint.setTextEncoding(SkPaint::kUTF16_TextEncoding); while (length > 0) { @@ -114,7 +121,7 @@ float SimpleFontData::platformWidthForGlyph(Glyph glyph) const SkPaint paint; - m_font.setupPaint(&paint); + m_platformData.setupPaint(&paint); if (EmojiFont::IsEmojiGlyph(glyph)) return EmojiFont::GetAdvanceWidth(glyph, paint); |