#include "GraphicsContext.h"
#include "GlyphBuffer.h"
#include "IntRect.h"
+#include "NotImplemented.h"
#include "PlatformGraphicsContext.h"
#include "SkCanvas.h"
#include "SkColorFilter.h"
}
}
+void Font::drawEmphasisMarksForComplexText(WebCore::GraphicsContext*, WebCore::TextRun const&, WTF::AtomicString const&, WebCore::FloatPoint const&, int, int) const
+{
+ notImplemented();
+}
+
#ifndef SUPPORT_COMPLEX_SCRIPTS
FloatRect Font::selectionRectForComplexText(const TextRun& run,
// So we allow that to run first, then do a second pass over the range it
// found and take the largest subregion that stays within a single font.
const FontData* glyphData = m_font->glyphDataForCharacter(
- m_item.string[m_item.item.pos], false, false).fontData;
+ m_item.string[m_item.item.pos], false).fontData;
unsigned endOfRun;
for (endOfRun = 1; endOfRun < m_item.item.length; ++endOfRun) {
const FontData* nextGlyphData = m_font->glyphDataForCharacter(
- m_item.string[m_item.item.pos + endOfRun], false, false).fontData;
+ m_item.string[m_item.item.pos + endOfRun], false).fontData;
if (nextGlyphData != glyphData)
break;
}
void TextRunWalker::setupFontForScriptRun()
{
const FontData* fontData = m_font->glyphDataForCharacter(
- m_item.string[m_item.item.pos], false, false).fontData;
+ m_item.string[m_item.item.pos], false).fontData;
const FontPlatformData& platformData =
fontData->fontDataForCharacter(' ')->platformData();
m_item.face = platformData.harfbuzzFace();
SimpleFontData* SimpleFontData::smallCapsFontData(const FontDescription& fontDescription) const
{
- if (!m_smallCapsFontData) {
- m_smallCapsFontData = new SimpleFontData(FontPlatformData(m_platformData, fontDescription.computedSize() * 0.7f));
- }
- return m_smallCapsFontData;
+ if (!m_derivedFontData)
+ m_derivedFontData = DerivedFontData::create(isCustomFont());
+ if (!m_derivedFontData->smallCaps)
+ m_derivedFontData->smallCaps = new SimpleFontData(FontPlatformData(m_platformData, fontDescription.computedSize() * 0.7f));
+
+ return m_derivedFontData->smallCaps.get();
+}
+
+SimpleFontData* SimpleFontData::emphasisMarkFontData(const FontDescription& fontDescription) const
+{
+ if (!m_derivedFontData)
+ m_derivedFontData = DerivedFontData::create(isCustomFont());
+ if (!m_derivedFontData->emphasisMark)
+ m_derivedFontData->emphasisMark = new SimpleFontData(FontPlatformData(m_platformData, fontDescription.computedSize() * 0.5f));
+
+ return m_derivedFontData->emphasisMark.get();
}
bool SimpleFontData::containsCharacters(const UChar* characters, int length) const