17242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved. 27242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci// Use of this source code is governed by a BSD-style license that can be 37242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci// found in the LICENSE file. 47242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 57242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci#include "config.h" 67242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci#include "core/paint/SVGTextPainter.h" 77242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 87242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci#include "core/paint/BlockPainter.h" 97242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci#include "core/rendering/PaintInfo.h" 107242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci#include "core/rendering/svg/RenderSVGText.h" 117242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci#include "platform/graphics/GraphicsContextStateSaver.h" 127242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 137242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tuccinamespace blink { 147242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 157242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tuccivoid SVGTextPainter::paint(PaintInfo& paintInfo) 167242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci{ 177242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci if (paintInfo.phase != PaintPhaseForeground && paintInfo.phase != PaintPhaseSelection) 187242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci return; 197242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 207242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci PaintInfo blockInfo(paintInfo); 217242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci GraphicsContextStateSaver stateSaver(*blockInfo.context, false); 227242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 237242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci blockInfo.applyTransform(m_renderSVGText.localToParentTransform(), &stateSaver); 247242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 257242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci BlockPainter(m_renderSVGText).paint(blockInfo, LayoutPoint()); 267242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 277242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci // Paint the outlines, if any 287242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci if (paintInfo.phase == PaintPhaseForeground) { 297242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci blockInfo.phase = PaintPhaseSelfOutline; 307242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci BlockPainter(m_renderSVGText).paint(blockInfo, LayoutPoint()); 317242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci } 327242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci} 337242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 347242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci} // namespace blink 35