1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "config.h" 6 #include "core/paint/SVGTextPainter.h" 7 8 #include "core/paint/BlockPainter.h" 9 #include "core/rendering/PaintInfo.h" 10 #include "core/rendering/svg/RenderSVGText.h" 11 #include "platform/graphics/GraphicsContextStateSaver.h" 12 13 namespace blink { 14 15 void SVGTextPainter::paint(PaintInfo& paintInfo) 16 { 17 if (paintInfo.phase != PaintPhaseForeground && paintInfo.phase != PaintPhaseSelection) 18 return; 19 20 PaintInfo blockInfo(paintInfo); 21 GraphicsContextStateSaver stateSaver(*blockInfo.context, false); 22 23 blockInfo.applyTransform(m_renderSVGText.localToParentTransform(), &stateSaver); 24 25 BlockPainter(m_renderSVGText).paint(blockInfo, LayoutPoint()); 26 27 // Paint the outlines, if any 28 if (paintInfo.phase == PaintPhaseForeground) { 29 blockInfo.phase = PaintPhaseSelfOutline; 30 BlockPainter(m_renderSVGText).paint(blockInfo, LayoutPoint()); 31 } 32 } 33 34 } // namespace blink 35