ladybird/Userland/Libraries/LibWeb/SVG
Jelle Raaijmakers 1b82cb43c2 LibWeb+LibGfx: Fix SVG userSpaceOnUse gradient coordinate transformation
We were transforming coordinates for SVG gradients in a pretty
convoluted way: an inverse, unscaled transformation matrix was set up in
order to work around some (old?) technical limitations.

Rework this so the coordinate transformation no longer needs to be
inversed. This fixes gradients with "userSpaceOnUse" for its
gradientUnits attribute, which might cause coordinates to lie outside of
the bounding box of the gradient.

Two tests have updated reference screenshots with minor pixel updates;
this is probably the result of floating point precision improvements by
not inversing the matrix.

One test (svg-text-effects) has a bigger change: the gradient stops seem
to have moved along the text. This does seem to match other browsers
slightly better, so I'm moving forward with this ref update.
2024-10-28 22:53:17 +01:00
..
AttributeNames.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
AttributeNames.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
AttributeParser.cpp
AttributeParser.h
Default.css
SVGAElement.cpp LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGAElement.h LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGAElement.idl LibWeb/SVG: SVGAElement includes SVGURIReference 2024-07-16 21:43:53 +02:00
SVGAnimatedLength.cpp
SVGAnimatedLength.h
SVGAnimatedLength.idl
SVGAnimatedNumber.cpp
SVGAnimatedNumber.h
SVGAnimatedNumber.idl
SVGAnimatedRect.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
SVGAnimatedRect.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
SVGAnimatedRect.idl
SVGAnimatedString.cpp
SVGAnimatedString.h
SVGAnimatedString.idl
SVGAnimatedTransformList.cpp
SVGAnimatedTransformList.h
SVGAnimatedTransformList.idl LibWeb: Normalize all WebIDL definition lines to four leading spaces 2024-09-10 21:16:53 +01:00
SVGCircleElement.cpp LibWeb: Port painting to use the new Skia-backed Gfx::Path 2024-08-20 09:30:05 +02:00
SVGCircleElement.h LibWeb: Port painting to use the new Skia-backed Gfx::Path 2024-08-20 09:30:05 +02:00
SVGCircleElement.idl
SVGClipPathElement.cpp LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGClipPathElement.h LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGClipPathElement.idl
SVGDecodedImageData.cpp LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGDecodedImageData.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
SVGDefsElement.cpp
SVGDefsElement.h LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGDefsElement.idl
SVGDescElement.cpp LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGDescElement.h LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGDescElement.idl
SVGElement.cpp LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGElement.h LibWeb/SVG: Implement SVGElement.ownerSVGElement 2024-07-16 21:43:53 +02:00
SVGElement.idl LibWeb/SVG: Implement SVGElement.ownerSVGElement 2024-07-16 21:43:53 +02:00
SVGEllipseElement.cpp LibWeb: Port painting to use the new Skia-backed Gfx::Path 2024-08-20 09:30:05 +02:00
SVGEllipseElement.h LibWeb: Port painting to use the new Skia-backed Gfx::Path 2024-08-20 09:30:05 +02:00
SVGEllipseElement.idl
SVGFitToViewBox.idl
SVGForeignObjectElement.cpp LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGForeignObjectElement.h LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGForeignObjectElement.idl
SVGGElement.cpp LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGGElement.h LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGGElement.idl LibWeb/SVG: Add missing SVGGElement IDL file 2024-08-17 07:41:04 +02:00
SVGGeometryElement.cpp LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGGeometryElement.h LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGGeometryElement.idl LibWeb: Add FIXMEs for missing SVGGeometryElement attributes 2024-07-10 10:28:43 +02:00
SVGGradientElement.cpp LibWeb+LibGfx: Fix SVG userSpaceOnUse gradient coordinate transformation 2024-10-28 22:53:17 +01:00
SVGGradientElement.h LibWeb+LibGfx: Fix SVG userSpaceOnUse gradient coordinate transformation 2024-10-28 22:53:17 +01:00
SVGGradientElement.idl LibWeb/SVG: SVGGradientElement includes SVGURIReference 2024-07-16 21:43:53 +02:00
SVGGraphicsElement.cpp LibWeb: Add stroke-linecap attribute and plumb it to SVGGraphicsElement 2024-10-11 00:27:47 +01:00
SVGGraphicsElement.h LibWeb: Add stroke-linecap attribute and plumb it to SVGGraphicsElement 2024-10-11 00:27:47 +01:00
SVGGraphicsElement.idl LibWeb: Normalize all WebIDL definition lines to four leading spaces 2024-09-10 21:16:53 +01:00
SVGImageElement.cpp LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGImageElement.h LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGImageElement.idl LibWeb/SVG: Implement SVGImageElement 2024-08-29 06:28:44 +02:00
SVGLength.cpp
SVGLength.h
SVGLength.idl LibWeb/SVG: Stub missing SVGLength attributes 2024-07-21 10:50:05 +02:00
SVGLinearGradientElement.cpp LibWeb: Misc. SVG improvements 2024-10-28 22:53:17 +01:00
SVGLinearGradientElement.h LibWeb: Pass the old attribute value to Element::attribute_changed() 2024-07-10 07:04:08 +02:00
SVGLinearGradientElement.idl LibWeb: Normalize all WebIDL definition lines to four leading spaces 2024-09-10 21:16:53 +01:00
SVGLineElement.cpp LibWeb: Port painting to use the new Skia-backed Gfx::Path 2024-08-20 09:30:05 +02:00
SVGLineElement.h LibWeb: Port painting to use the new Skia-backed Gfx::Path 2024-08-20 09:30:05 +02:00
SVGLineElement.idl
SVGMaskElement.cpp LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGMaskElement.h LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGMaskElement.idl
SVGMetadataElement.cpp LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGMetadataElement.h LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGMetadataElement.idl LibWeb/SVG: Implement <metadata> element 2024-08-17 07:40:45 +02:00
SVGPathElement.cpp LibWeb: Port painting to use the new Skia-backed Gfx::Path 2024-08-20 09:30:05 +02:00
SVGPathElement.h LibWeb: Port painting to use the new Skia-backed Gfx::Path 2024-08-20 09:30:05 +02:00
SVGPathElement.idl
SVGPolygonElement.cpp LibWeb: Port painting to use the new Skia-backed Gfx::Path 2024-08-20 09:30:05 +02:00
SVGPolygonElement.h LibWeb: Port painting to use the new Skia-backed Gfx::Path 2024-08-20 09:30:05 +02:00
SVGPolygonElement.idl
SVGPolylineElement.cpp LibWeb: Port painting to use the new Skia-backed Gfx::Path 2024-08-20 09:30:05 +02:00
SVGPolylineElement.h LibWeb: Port painting to use the new Skia-backed Gfx::Path 2024-08-20 09:30:05 +02:00
SVGPolylineElement.idl
SVGRadialGradientElement.cpp LibWeb: Pass the old attribute value to Element::attribute_changed() 2024-07-10 07:04:08 +02:00
SVGRadialGradientElement.h LibWeb: Pass the old attribute value to Element::attribute_changed() 2024-07-10 07:04:08 +02:00
SVGRadialGradientElement.idl LibWeb: Normalize all WebIDL definition lines to four leading spaces 2024-09-10 21:16:53 +01:00
SVGRectElement.cpp LibWeb: Port painting to use the new Skia-backed Gfx::Path 2024-08-20 09:30:05 +02:00
SVGRectElement.h LibWeb: Port painting to use the new Skia-backed Gfx::Path 2024-08-20 09:30:05 +02:00
SVGRectElement.idl
SVGScriptElement.cpp LibWeb/SVG: SVGScriptElement includes SVGURIReference 2024-07-16 21:43:53 +02:00
SVGScriptElement.h LibWeb/SVG: SVGScriptElement includes SVGURIReference 2024-07-16 21:43:53 +02:00
SVGScriptElement.idl LibWeb/SVG: SVGScriptElement includes SVGURIReference 2024-07-16 21:43:53 +02:00
SVGStopElement.cpp LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGStopElement.h LibWeb: Misc. SVG improvements 2024-10-28 22:53:17 +01:00
SVGStopElement.idl LibWeb: Normalize all WebIDL definition lines to four leading spaces 2024-09-10 21:16:53 +01:00
SVGStyleElement.cpp LibWeb: Let style elements remember which StyleSheetList they live in 2024-09-21 08:56:01 +02:00
SVGStyleElement.h LibWeb: Add method for listing all style sheets on a page 2024-09-03 10:12:07 +01:00
SVGStyleElement.idl LibWeb: Normalize all WebIDL definition lines to four leading spaces 2024-09-10 21:16:53 +01:00
SVGSVGElement.cpp LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGSVGElement.h LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGSVGElement.idl LibWeb: Normalize all WebIDL definition lines to four leading spaces 2024-09-10 21:16:53 +01:00
SVGSymbolElement.cpp LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGSymbolElement.h LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGSymbolElement.idl LibWeb/SVG: SVGSymbolElement includes SVGFitToViewBox 2024-07-21 10:50:05 +02:00
SVGTextContentElement.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
SVGTextContentElement.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
SVGTextContentElement.idl
SVGTextElement.cpp LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGTextElement.h LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGTextElement.idl
SVGTextPathElement.cpp LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGTextPathElement.h LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGTextPathElement.idl
SVGTextPositioningElement.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
SVGTextPositioningElement.h LibWeb: Support percentage values in SVG text positioning element 2024-07-21 19:56:38 +02:00
SVGTextPositioningElement.idl
SVGTitleElement.cpp LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGTitleElement.h LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGTitleElement.idl
SVGTransform.cpp
SVGTransform.h
SVGTransform.idl
SVGTransformList.cpp LibWeb: Make DOMException take error message as a String 2024-10-12 21:14:18 +02:00
SVGTransformList.h
SVGTransformList.idl LibWeb: Normalize all WebIDL definition lines to four leading spaces 2024-09-10 21:16:53 +01:00
SVGTSpanElement.cpp LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGTSpanElement.h LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGTSpanElement.idl
SVGURIReference.h
SVGURIReference.idl
SVGUseElement.cpp LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGUseElement.h LibWeb: Remove reference counting for CSS::StyleProperties 2024-10-27 13:26:30 +01:00
SVGUseElement.idl LibWeb: Normalize all WebIDL definition lines to four leading spaces 2024-09-10 21:16:53 +01:00
SVGViewport.h
TagNames.cpp
TagNames.h LibWeb/SVG: Implement SVGImageElement 2024-08-29 06:28:44 +02:00
ViewBox.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
ViewBox.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00