OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "config.h" | 5 #include "config.h" |
6 #include "core/paint/SVGShapePainter.h" | 6 #include "core/paint/SVGShapePainter.h" |
7 | 7 |
8 #include "core/layout/svg/LayoutSVGPath.h" | 8 #include "core/layout/svg/LayoutSVGPath.h" |
9 #include "core/layout/svg/LayoutSVGResourceMarker.h" | 9 #include "core/layout/svg/LayoutSVGResourceMarker.h" |
10 #include "core/layout/svg/LayoutSVGShape.h" | 10 #include "core/layout/svg/LayoutSVGShape.h" |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
163 return; | 163 return; |
164 | 164 |
165 switch (m_layoutSVGShape.geometryCodePath()) { | 165 switch (m_layoutSVGShape.geometryCodePath()) { |
166 case RectGeometryFastPath: | 166 case RectGeometryFastPath: |
167 context->drawRect(m_layoutSVGShape.objectBoundingBox(), paint); | 167 context->drawRect(m_layoutSVGShape.objectBoundingBox(), paint); |
168 break; | 168 break; |
169 case EllipseGeometryFastPath: | 169 case EllipseGeometryFastPath: |
170 context->drawOval(m_layoutSVGShape.objectBoundingBox(), paint); | 170 context->drawOval(m_layoutSVGShape.objectBoundingBox(), paint); |
171 break; | 171 break; |
172 default: | 172 default: |
173 ASSERT(m_layoutSVGShape.hasPath()); | |
174 Path* usePath = &m_layoutSVGShape.path(); | 173 Path* usePath = &m_layoutSVGShape.path(); |
175 if (m_layoutSVGShape.hasNonScalingStroke()) | 174 if (m_layoutSVGShape.hasNonScalingStroke()) |
176 usePath = m_layoutSVGShape.nonScalingStrokePath(usePath, m_layoutSVG
Shape.nonScalingStrokeTransform()); | 175 usePath = m_layoutSVGShape.nonScalingStrokePath(usePath, m_layoutSVG
Shape.nonScalingStrokeTransform()); |
177 context->drawPath(usePath->skPath(), paint); | 176 context->drawPath(usePath->skPath(), paint); |
178 strokeZeroLengthLineCaps(context, paint); | 177 strokeZeroLengthLineCaps(context, paint); |
179 } | 178 } |
180 } | 179 } |
181 | 180 |
182 void SVGShapePainter::paintMarkers(const PaintInfo& paintInfo) | 181 void SVGShapePainter::paintMarkers(const PaintInfo& paintInfo) |
183 { | 182 { |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
255 position = nonScalingTransform.mapPoint(position); | 254 position = nonScalingTransform.mapPoint(position); |
256 FloatRect subpathRect = LayoutSVGPath::zeroLengthSubpathRect(position, m
_layoutSVGShape.strokeWidth()); | 255 FloatRect subpathRect = LayoutSVGPath::zeroLengthSubpathRect(position, m
_layoutSVGShape.strokeWidth()); |
257 if (m_layoutSVGShape.style()->svgStyle().capStyle() == SquareCap) | 256 if (m_layoutSVGShape.style()->svgStyle().capStyle() == SquareCap) |
258 context->drawRect(subpathRect, fillPaint); | 257 context->drawRect(subpathRect, fillPaint); |
259 else | 258 else |
260 context->drawOval(subpathRect, fillPaint); | 259 context->drawOval(subpathRect, fillPaint); |
261 } | 260 } |
262 } | 261 } |
263 | 262 |
264 } // namespace blink | 263 } // namespace blink |
OLD | NEW |