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 13namespace blink { 14 15void 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