Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(123)

Unified Diff: Source/WebCore/rendering/svg/SVGMarkerLayoutInfo.cpp

Issue 10447082: Merge 117971 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1132/
Patch Set: Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/WebCore/rendering/svg/SVGMarkerLayoutInfo.cpp
===================================================================
--- Source/WebCore/rendering/svg/SVGMarkerLayoutInfo.cpp (revision 118879)
+++ Source/WebCore/rendering/svg/SVGMarkerLayoutInfo.cpp (working copy)
@@ -1,132 +0,0 @@
-/*
- * Copyright (C) Research In Motion Limited 2010. All rights reserved.
- * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- * Copyright (C) 2004, 2005, 2008 Rob Buis <buis@kde.org>
- * Copyright (C) 2005, 2007 Eric Seidel <eric@webkit.org>
- * Copyright (C) 2009 Google, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-
-#if ENABLE(SVG)
-#include "SVGMarkerLayoutInfo.h"
-
-#include "RenderSVGResourceMarker.h"
-
-namespace WebCore {
-
-SVGMarkerLayoutInfo::SVGMarkerLayoutInfo()
- : m_midMarker(0)
- , m_elementIndex(0)
- , m_strokeWidth(0)
-{
-}
-
-SVGMarkerLayoutInfo::~SVGMarkerLayoutInfo()
-{
-}
-
-static inline void processStartAndMidMarkers(void* infoPtr, const PathElement* element)
-{
- SVGMarkerLayoutInfo& info = *reinterpret_cast<SVGMarkerLayoutInfo*>(infoPtr);
- SVGMarkerData& markerData = info.markerData();
- int& elementIndex = info.elementIndex();
-
- // First update the outslope for the previous element
- markerData.updateOutslope(element->points[0]);
-
- // Draw the marker for the previous element
- RenderSVGResourceMarker* marker = markerData.marker();
- if (elementIndex > 0 && marker)
- info.addLayoutedMarker(marker, markerData.origin(), markerData.currentAngle());
-
- // Update our marker data for this element
- markerData.updateMarkerDataForPathElement(element);
-
- // After drawing the start marker, switch to drawing mid markers
- if (elementIndex == 1)
- markerData.updateTypeAndMarker(SVGMarkerData::Mid, info.midMarker());
-
- ++elementIndex;
-}
-
-FloatRect SVGMarkerLayoutInfo::calculateBoundaries(RenderSVGResourceMarker* startMarker, RenderSVGResourceMarker* midMarker, RenderSVGResourceMarker* endMarker, float strokeWidth, const Path& path)
-{
- m_layout.clear();
- m_midMarker = midMarker;
- m_strokeWidth = strokeWidth;
- m_elementIndex = 0;
- m_markerData = SVGMarkerData(SVGMarkerData::Start, startMarker);
- path.apply(this, processStartAndMidMarkers);
-
- if (endMarker) {
- m_markerData.updateTypeAndMarker(SVGMarkerData::End, endMarker);
- addLayoutedMarker(endMarker, m_markerData.origin(), m_markerData.currentAngle());
- }
-
- if (m_layout.isEmpty())
- return FloatRect();
-
- Vector<MarkerLayout>::iterator it = m_layout.begin();
- Vector<MarkerLayout>::iterator end = m_layout.end();
-
- FloatRect bounds;
- for (; it != end; ++it) {
- MarkerLayout& layout = *it;
-
- RenderSVGResourceMarker* markerContent = layout.marker;
- ASSERT(markerContent);
-
- bounds.unite(markerContent->markerBoundaries(layout.matrix));
- }
-
- return bounds;
-}
-
-void SVGMarkerLayoutInfo::clear()
-{
- m_midMarker = 0;
- m_elementIndex = 0;
- m_strokeWidth = 0;
- m_markerData.updateTypeAndMarker(SVGMarkerData::Unknown, 0);
- m_layout.clear();
-}
-
-void SVGMarkerLayoutInfo::drawMarkers(PaintInfo& paintInfo)
-{
- if (m_layout.isEmpty())
- return;
-
- Vector<MarkerLayout>::iterator it = m_layout.begin();
- Vector<MarkerLayout>::iterator end = m_layout.end();
-
- for (; it != end; ++it) {
- MarkerLayout& layout = *it;
- layout.marker->draw(paintInfo, layout.matrix);
- }
-}
-
-void SVGMarkerLayoutInfo::addLayoutedMarker(RenderSVGResourceMarker* marker, const FloatPoint& origin, float angle)
-{
- ASSERT(marker);
- m_layout.append(MarkerLayout(marker, marker->markerTransformation(origin, angle, m_strokeWidth)));
-}
-
-}
-
-#endif // ENABLE(SVG)
« no previous file with comments | « Source/WebCore/rendering/svg/SVGMarkerLayoutInfo.h ('k') | Source/WebCore/rendering/svg/SVGResourcesCache.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698