Chromium Code Reviews| Index: Source/core/rendering/svg/RenderSVGResourceMarker.cpp |
| diff --git a/Source/core/rendering/svg/RenderSVGResourceMarker.cpp b/Source/core/rendering/svg/RenderSVGResourceMarker.cpp |
| index d338016966fc9792ba3772d459d14c450716b86d..b2700df79a645e0f6d85308f3be76f5c08badb97 100644 |
| --- a/Source/core/rendering/svg/RenderSVGResourceMarker.cpp |
| +++ b/Source/core/rendering/svg/RenderSVGResourceMarker.cpp |
| @@ -115,17 +115,21 @@ float RenderSVGResourceMarker::angle() const |
| return angle; |
| } |
| -AffineTransform RenderSVGResourceMarker::markerTransformation(const FloatPoint& origin, float autoAngle, float strokeWidth) const |
| +AffineTransform RenderSVGResourceMarker::markerTransformation(const FloatPoint& origin, float autoAngle, float strokeWidth, bool isStartMarker) const |
| { |
| SVGMarkerElement* marker = toSVGMarkerElement(element()); |
| ASSERT(marker); |
| float markerAngle = angle(); |
| bool useStrokeWidth = marker->markerUnits()->currentValue()->enumValue() == SVGMarkerUnitsStrokeWidth; |
| - |
| + if (markerAngle == -1) { |
| + markerAngle = autoAngle; |
| + if (isStartMarker && marker->orientType()->currentValue()->enumValue() == SVGMarkerOrientAutoStartReverse) |
| + markerAngle += 180; |
|
fs
2014/09/09 12:18:21
I'm curious if this (adjustment) would be nicer in
|
| + } |
| AffineTransform transform; |
| transform.translate(origin.x(), origin.y()); |
| - transform.rotate(markerAngle == -1 ? autoAngle : markerAngle); |
| + transform.rotate(markerAngle); |
| transform = markerContentTransformation(transform, referencePoint(), useStrokeWidth ? strokeWidth : -1); |
| return transform; |
| } |