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

Side by Side Diff: Source/core/rendering/svg/RenderSVGResourceMarker.cpp

Issue 19097005: Remove one SVG animated type special case from the bindings generator (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix the regressions Created 7 years, 5 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> 2 * Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Rob Buis <buis@kde.org> 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Rob Buis <buis@kde.org>
4 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. 4 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved.
5 * 5 *
6 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
10 * 10 *
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 // If this class were ever given a localTransform(), then the above would re ad: 91 // If this class were ever given a localTransform(), then the above would re ad:
92 // return viewportTranslation * localTransform() * viewportTransform(); 92 // return viewportTranslation * localTransform() * viewportTransform();
93 } 93 }
94 94
95 FloatPoint RenderSVGResourceMarker::referencePoint() const 95 FloatPoint RenderSVGResourceMarker::referencePoint() const
96 { 96 {
97 SVGMarkerElement* marker = static_cast<SVGMarkerElement*>(node()); 97 SVGMarkerElement* marker = static_cast<SVGMarkerElement*>(node());
98 ASSERT(marker); 98 ASSERT(marker);
99 99
100 SVGLengthContext lengthContext(marker); 100 SVGLengthContext lengthContext(marker);
101 return FloatPoint(marker->refX().value(lengthContext), marker->refY().value( lengthContext)); 101 return FloatPoint(marker->refXCurrentValue().value(lengthContext), marker->r efYCurrentValue().value(lengthContext));
102 } 102 }
103 103
104 float RenderSVGResourceMarker::angle() const 104 float RenderSVGResourceMarker::angle() const
105 { 105 {
106 SVGMarkerElement* marker = static_cast<SVGMarkerElement*>(node()); 106 SVGMarkerElement* marker = static_cast<SVGMarkerElement*>(node());
107 ASSERT(marker); 107 ASSERT(marker);
108 108
109 float angle = -1; 109 float angle = -1;
110 if (marker->orientType() == SVGMarkerOrientAngle) 110 if (marker->orientTypeCurrentValue() == SVGMarkerOrientAngle)
111 angle = marker->orientAngle().value(); 111 angle = marker->orientAngleCurrentValue().value();
112 112
113 return angle; 113 return angle;
114 } 114 }
115 115
116 AffineTransform RenderSVGResourceMarker::markerTransformation(const FloatPoint& origin, float autoAngle, float strokeWidth) const 116 AffineTransform RenderSVGResourceMarker::markerTransformation(const FloatPoint& origin, float autoAngle, float strokeWidth) const
117 { 117 {
118 SVGMarkerElement* marker = static_cast<SVGMarkerElement*>(node()); 118 SVGMarkerElement* marker = static_cast<SVGMarkerElement*>(node());
119 ASSERT(marker); 119 ASSERT(marker);
120 120
121 float markerAngle = angle(); 121 float markerAngle = angle();
122 bool useStrokeWidth = marker->markerUnits() == SVGMarkerUnitsStrokeWidth; 122 bool useStrokeWidth = marker->markerUnitsCurrentValue() == SVGMarkerUnitsStr okeWidth;
123 123
124 AffineTransform transform; 124 AffineTransform transform;
125 transform.translate(origin.x(), origin.y()); 125 transform.translate(origin.x(), origin.y());
126 transform.rotate(markerAngle == -1 ? autoAngle : markerAngle); 126 transform.rotate(markerAngle == -1 ? autoAngle : markerAngle);
127 transform = markerContentTransformation(transform, referencePoint(), useStro keWidth ? strokeWidth : -1); 127 transform = markerContentTransformation(transform, referencePoint(), useStro keWidth ? strokeWidth : -1);
128 return transform; 128 return transform;
129 } 129 }
130 130
131 void RenderSVGResourceMarker::draw(PaintInfo& paintInfo, const AffineTransform& transform) 131 void RenderSVGResourceMarker::draw(PaintInfo& paintInfo, const AffineTransform& transform)
132 { 132 {
133 // An empty viewBox disables rendering. 133 // An empty viewBox disables rendering.
134 SVGMarkerElement* marker = toSVGMarkerElement(toSVGElement(node())); 134 SVGMarkerElement* marker = toSVGMarkerElement(toSVGElement(node()));
135 ASSERT(marker); 135 ASSERT(marker);
136 if (marker->hasAttribute(SVGNames::viewBoxAttr) && marker->viewBoxIsValid() && marker->viewBox().isEmpty()) 136 if (marker->hasAttribute(SVGNames::viewBoxAttr) && marker->viewBoxIsValid() && marker->viewBoxCurrentValue().isEmpty())
137 return; 137 return;
138 138
139 PaintInfo info(paintInfo); 139 PaintInfo info(paintInfo);
140 GraphicsContextStateSaver stateSaver(*info.context); 140 GraphicsContextStateSaver stateSaver(*info.context);
141 info.applyTransform(transform); 141 info.applyTransform(transform);
142 RenderSVGContainer::paint(info, IntPoint()); 142 RenderSVGContainer::paint(info, IntPoint());
143 } 143 }
144 144
145 AffineTransform RenderSVGResourceMarker::markerContentTransformation(const Affin eTransform& contentTransformation, const FloatPoint& origin, float strokeWidth) const 145 AffineTransform RenderSVGResourceMarker::markerContentTransformation(const Affin eTransform& contentTransformation, const FloatPoint& origin, float strokeWidth) const
146 { 146 {
(...skipping 18 matching lines...) Expand all
165 165
166 void RenderSVGResourceMarker::calcViewport() 166 void RenderSVGResourceMarker::calcViewport()
167 { 167 {
168 if (!selfNeedsLayout()) 168 if (!selfNeedsLayout())
169 return; 169 return;
170 170
171 SVGMarkerElement* marker = static_cast<SVGMarkerElement*>(node()); 171 SVGMarkerElement* marker = static_cast<SVGMarkerElement*>(node());
172 ASSERT(marker); 172 ASSERT(marker);
173 173
174 SVGLengthContext lengthContext(marker); 174 SVGLengthContext lengthContext(marker);
175 float w = marker->markerWidth().value(lengthContext); 175 float w = marker->markerWidthCurrentValue().value(lengthContext);
176 float h = marker->markerHeight().value(lengthContext); 176 float h = marker->markerHeightCurrentValue().value(lengthContext);
177 m_viewport = FloatRect(0, 0, w, h); 177 m_viewport = FloatRect(0, 0, w, h);
178 } 178 }
179 179
180 } 180 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698