Bug 33115

Summary: PathElementAddQuadCurveToPoint not handled for <marker>
Product: WebKit Reporter: Nikolas Zimmermann <zimmermann>
Component: SVGAssignee: Nobody <webkit-unassigned>
Status: NEW    
Severity: Normal CC: ahmad.saleem792, krit
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   

Nikolas Zimmermann
Reported 2010-01-02 13:46:54 PST
Marker elements don't support paths which contain PathElementAddQuadCurveToPoint elements. See SVGMarkerLayoutInfo, updateMarkerDataForElement() method.
Attachments
Ahmad Saleem
Comment 1 2023-10-05 06:30:06 PDT
Following Blink commit: https://chromium.googlesource.com/chromium/src.git/+/7003bed16de3861e47d6bb0287ba4d6bffcfea04 Removed this FIXME: https://searchfox.org/wubkat/source/Source/WebCore/rendering/svg/SVGMarkerData.h#118 and changed it into: case PathElement::Type::AddQuadCurveToPoint: m_inslopePoints[0] = points[0]; m_inslopePoints[1] = points[1]; m_origin = points[1]; break;
Ahmad Saleem
Comment 2 2025-12-22 20:05:42 PST
case PathElement::Type::AddQuadCurveToPoint: // Compute tangents for quadratic bezier curve // Start tangent: from origin to control point // End tangent: from control point to end point { FloatSize startTangent = points[0] - m_origin; FloatSize endTangent = points[1] - points[0]; if (startTangent.isZero()) { // If start tangent is zero, use the end tangent for both m_inslopePoints[0] = m_origin; m_inslopePoints[1] = points[1]; } else if (endTangent.isZero()) { // If end tangent is zero, use the start tangent for both m_inslopePoints[0] = m_origin; m_inslopePoints[1] = points[0]; } else { // Normal case: use control point for in-slope calculation m_inslopePoints[0] = points[0]; m_inslopePoints[1] = points[1]; } m_origin = points[1]; } break;
Note You need to log in before you can comment on or make changes to this bug.