ladybird/Userland/Libraries/LibWeb/Painting
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
..
AudioPaintable.cpp LibWeb: Rename RecordingPainter to DisplayListRecorder 2024-06-24 13:22:59 +02:00
AudioPaintable.h
BackgroundPainting.cpp LibWeb: Accept paintable instead of layout node in resolve_background() 2024-10-18 14:59:41 +02:00
BackgroundPainting.h LibWeb: Accept paintable instead of layout node in resolve_background() 2024-10-18 14:59:41 +02:00
BackingStore.cpp LibGfx: Store alpha type information in Gfx::Bitmap 2024-08-07 18:51:12 +02:00
BackingStore.h Everywhere: Pass backing store into Navigable::paint() 2024-06-28 14:25:34 +02:00
BorderPainting.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
BorderPainting.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
BorderRadiiData.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
BorderRadiiData.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
BorderRadiusCornerClipper.cpp LibWeb: Delete BlitCornerClipping display list command 2024-07-30 09:43:43 +02:00
BorderRadiusCornerClipper.h LibWeb: Delete BlitCornerClipping display list command 2024-07-30 09:43:43 +02:00
BordersData.cpp
BordersData.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
CanvasPaintable.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
CanvasPaintable.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
CheckBoxPaintable.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
CheckBoxPaintable.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
ClipFrame.cpp LibWeb: Add parent-child relationship between scroll frames 2024-08-30 19:03:06 +02:00
ClipFrame.h LibWeb: Remove ViewportPaintable::refresh_clip_frames() 2024-08-15 09:45:07 +02:00
ClippableAndScrollable.cpp LibWeb: Don't produce save & restore commands for scroll frame id change 2024-10-11 17:26:54 +02:00
ClippableAndScrollable.h LibWeb: Transform ScrollFrame from a struct to a class 2024-09-12 07:37:19 +02:00
Command.cpp LibWeb: Simplify outer box shadow's bounding box calculation 2024-07-30 09:43:20 +02:00
Command.h LibWeb: Implement CSS filter painting 2024-10-26 11:26:42 +02:00
DisplayList.cpp LibWeb: Store scroll and sticky frames state in single vector 2024-10-12 13:13:14 +02:00
DisplayList.h LibWeb: Store scroll and sticky frames state in single vector 2024-10-12 13:13:14 +02:00
DisplayListPlayerSkia.cpp LibWeb+LibGfx: Fix SVG userSpaceOnUse gradient coordinate transformation 2024-10-28 22:53:17 +01:00
DisplayListPlayerSkia.h LibWeb: Remove translation from display list recorded state 2024-10-11 17:26:54 +02:00
DisplayListRecorder.cpp LibWeb: Implement CSS filter painting 2024-10-26 11:26:42 +02:00
DisplayListRecorder.h LibWeb: Implement CSS filter painting 2024-10-26 11:26:42 +02:00
GradientData.h
GradientPainting.cpp
GradientPainting.h
ImagePaintable.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
ImagePaintable.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
InputColors.h
LabelablePaintable.cpp LibWeb: Replace InlinePaintable with PaintableWithLines created per line 2024-10-16 20:25:42 +02:00
LabelablePaintable.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
MarkerPaintable.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
MarkerPaintable.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
MediaPaintable.cpp LibWeb: Replace InlinePaintable with PaintableWithLines created per line 2024-10-16 20:25:42 +02:00
MediaPaintable.h LibWeb: Rename RecordingPainter to DisplayListRecorder 2024-06-24 13:22:59 +02:00
NestedBrowsingContextPaintable.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
NestedBrowsingContextPaintable.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
Paintable.cpp LibWeb: Remove InlinePaintable 2024-10-16 20:25:42 +02:00
Paintable.h LibWeb: Remove InlinePaintable 2024-10-16 20:25:42 +02:00
PaintableBox.cpp LibWeb: Scale up "inspected node" hint text to match screen DPI 2024-10-21 15:57:28 +02:00
PaintableBox.h LibWeb: Replace InlinePaintable with PaintableWithLines created per line 2024-10-16 20:25:42 +02:00
PaintableFragment.cpp LibWeb: Implement Range's extension method 2024-09-20 19:58:20 +02:00
PaintableFragment.h LibWeb: Rename Layout::Node::paintable() to first_paintable() 2024-10-16 20:25:42 +02:00
PaintBoxShadowParams.h LibWeb: Rename PaintOuterBoxShadowParams to PaintBoxShadowParams 2024-06-07 18:41:57 +02:00
PaintContext.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
PaintContext.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
PaintStyle.h LibWeb+LibGfx: Fix SVG userSpaceOnUse gradient coordinate transformation 2024-10-28 22:53:17 +01:00
RadioButtonPaintable.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
RadioButtonPaintable.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
ScrollFrame.cpp LibWeb: Store scroll and sticky frames state in single vector 2024-10-12 13:13:14 +02:00
ScrollFrame.h LibWeb: Store scroll and sticky frames state in single vector 2024-10-12 13:13:14 +02:00
ScrollState.h LibWeb: Store scroll and sticky frames state in single vector 2024-10-12 13:13:14 +02:00
ShadowData.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
ShadowPainting.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
ShadowPainting.h LibWeb: Simplify outer box shadow's bounding box calculation 2024-07-30 09:43:20 +02:00
StackingContext.cpp LibWeb: Implement CSS filter painting 2024-10-26 11:26:42 +02:00
StackingContext.h LibWeb: Remove InlinePaintable 2024-10-16 20:25:42 +02:00
SVGClipPaintable.cpp
SVGClipPaintable.h
SVGForeignObjectPaintable.cpp
SVGForeignObjectPaintable.h
SVGGraphicsPaintable.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
SVGGraphicsPaintable.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
SVGMaskable.cpp LibWeb: Rename Layout::Node::paintable() to first_paintable() 2024-10-16 20:25:42 +02:00
SVGMaskable.h
SVGMaskPaintable.cpp
SVGMaskPaintable.h
SVGPaintable.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
SVGPaintable.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
SVGPathPaintable.cpp LibWeb+LibGfx: Fix SVG userSpaceOnUse gradient coordinate transformation 2024-10-28 22:53:17 +01:00
SVGPathPaintable.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
SVGSVGPaintable.cpp LibWeb: Don't produce save & restore commands for scroll frame id change 2024-10-11 17:26:54 +02:00
SVGSVGPaintable.h LibWeb: Don't allow SVG boxes to create a stacking context 2024-10-09 18:42:20 +02:00
TableBordersPainting.cpp LibWeb: Rename RecordingPainter to DisplayListRecorder 2024-06-24 13:22:59 +02:00
TableBordersPainting.h
TextPaintable.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
TextPaintable.h LibWeb: Allow layout nodes to have multiple paintables 2024-10-16 20:25:42 +02:00
VideoPaintable.cpp LibWeb: Rename RecordingPainter to DisplayListRecorder 2024-06-24 13:22:59 +02:00
VideoPaintable.h
ViewportPaintable.cpp LibWeb: Remove InlinePaintable 2024-10-16 20:25:42 +02:00
ViewportPaintable.h LibWeb: Replace InlinePaintable with PaintableWithLines created per line 2024-10-16 20:25:42 +02:00