SVGTextMetricsCalculator::SVGTextMetricsCalculator(LayoutSVGInlineText* text) : m_text(LineLayoutSVGInlineText(text)) , m_bidiRun(nullptr) , m_run(SVGTextMetrics::constructTextRun(m_text, 0, m_text.textLength(), m_text.styleRef().direction())) , m_totalWidth(0) { setupBidiRuns(); }
SVGTextMetricsCalculator::SVGTextMetricsCalculator(RenderSVGInlineText* text) : m_text(text) , m_bidiRun(0) , m_run(SVGTextMetrics::constructTextRun(text, 0, text->textLength())) , m_isComplexText(false) , m_totalWidth(0) { const Font& scaledFont = text->scaledFont(); CodePath codePath = scaledFont.codePath(TextRunPaintInfo(m_run)); m_isComplexText = codePath == ComplexPath; m_run.setCharacterScanForCodePath(!m_isComplexText); m_run.setUseComplexCodePath(m_isComplexText); if (!m_isComplexText) m_simpleShaper = adoptPtr(new SimpleShaper(&scaledFont, m_run)); else setupBidiRuns(); }