ladybird/Userland/Libraries/LibGfx
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
..
Font LibGfx: Use FlyString for family name 2024-10-26 17:40:56 +02:00
ICC LibGfx+icc: Prefix AK::FixedPoint with AK Namespace 2024-07-18 09:43:38 +01:00
ImageFormats JPEGLoader: Fix infinite loop on incomplete data 2024-10-12 19:21:03 +02:00
AffineTransform.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
AffineTransform.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
AntiAliasingPainter.cpp LibGfx: Remove most of AntiAliasingPainter 2024-08-20 09:30:05 +02:00
AntiAliasingPainter.h LibGfx: Remove most of AntiAliasingPainter 2024-08-20 09:30:05 +02:00
Bitmap.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
Bitmap.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
BitmapSequence.cpp LibGfx: Use more Span methods in BitmapSequence instead of memcpy 2024-10-02 16:37:19 -06:00
BitmapSequence.h ImageDecoder+LibGfx: Collate decoded bitmaps before sending over IPC 2024-10-02 15:57:41 -06:00
BoundingBox.h LibGfx: Add BoundingBox helper class 2023-11-14 10:13:10 +01:00
CIELAB.h LibGfx: Move CIELAB to its own file 2023-04-30 05:57:20 +02:00
CMakeLists.txt LibGfx: Move FontDatabase internals to SystemFontProvider interface 2024-10-15 15:09:16 -06:00
CMYKBitmap.cpp LibGfx: Prevent overflow when creating CMYKBitmaps 2024-03-07 11:32:57 -05:00
CMYKBitmap.h LibGfx: Add comparison operators to CMYK 2024-01-26 07:36:53 +01:00
Color.cpp LibGfx+LibWeb/CSS: Add support for the lab() color function 2024-10-27 10:20:03 +01:00
Color.h LibGfx+LibWeb/CSS: Add support for the lab() color function 2024-10-27 10:20:03 +01:00
Color.swift AK+Swift: Remove Foundation.Data footgun for AK.StringView 2024-08-29 06:31:25 +02:00
DeltaE.cpp AK: Add to_radians and to_degrees math functions 2023-09-10 08:38:29 +01:00
DeltaE.h LibGfx: Add DeltaE() function 2023-04-30 05:57:20 +02:00
DeprecatedPainter.cpp LibGfx: Remove unused, deprecated code 2024-10-18 18:12:45 +02:00
DeprecatedPainter.h LibGfx: Remove unused, deprecated code 2024-10-18 18:12:45 +02:00
DeprecatedPath.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
DeprecatedPath.h LibGfx: Remove unused, deprecated code 2024-10-18 18:12:45 +02:00
DisjointRectSet.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
EdgeFlagPathRasterizer.cpp LibGfx: Remove most of AntiAliasingPainter 2024-08-20 09:30:05 +02:00
EdgeFlagPathRasterizer.h LibGfx: Rename Path => DeprecatedPath 2024-08-20 09:30:05 +02:00
FontCascadeList.cpp LibWeb: Skip font if it doesn't contain needed glyph in FontCascadeList 2024-09-06 08:30:30 -04:00
FontCascadeList.h LibWeb: Consider last resort font in font list 2024-09-08 13:43:15 +02:00
Forward.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
FourCC.h LibGfx: Add FourCC::from_u32() 2024-02-28 16:00:07 -05:00
GradientPainting.cpp LibGfx: Remove unused, deprecated code 2024-10-18 18:12:45 +02:00
Gradients.h LibGfx+LibWeb: Support CSS gradient "transition hints" in Skia painter 2024-07-10 20:01:04 +03:00
ImmutableBitmap.cpp LibGfx+LibWeb: Add ImmutableBitmap for images bitmap caching in painter 2023-11-26 12:55:43 +01:00
ImmutableBitmap.h LibGfx+LibWeb: Add ImmutableBitmap for images bitmap caching in painter 2023-11-26 12:55:43 +01:00
Line.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
LineStyle.h LibGfx: Move Gfx::Painter::LineStyle => Gfx::LineStyle 2024-06-05 15:37:05 +02:00
Matrix.h LibGfx: Add an indexing operator to Matrix 2024-03-02 12:25:53 +01:00
Matrix3x3.h LibGfx: Add Matrix3x3 2021-12-30 14:24:29 +01:00
Matrix4x4.h LibGfx: Add Gfx::extract_2d_affine_transform(Matrix4x4) helper 2023-11-18 19:32:31 +01:00
MedianCut.cpp LibGfx: Add an implementation of the MedianCut algorithm 2024-05-18 18:30:07 +02:00
MedianCut.h LibGfx: Add an implementation of the MedianCut algorithm 2024-05-18 18:30:07 +02:00
Orientation.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
Painter.cpp LibGfx: Introduce a new Gfx::Painter with a Skia backend 2024-08-20 09:30:05 +02:00
Painter.h LibWeb: Clip underlying Painter in CRC2D::clip() 2024-08-20 09:30:05 +02:00
PainterSkia.cpp LibGfx: Implement Gfx::AlphaType for SkiaPainter 2024-08-20 20:39:09 +02:00
PainterSkia.h LibWeb: Clip underlying Painter in CRC2D::clip() 2024-08-20 09:30:05 +02:00
PaintStyle.h LibWeb+LibGfx: Fix SVG userSpaceOnUse gradient coordinate transformation 2024-10-28 22:53:17 +01:00
Palette.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
Palette.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
Path.cpp LibGfx+LibWeb: Add new Path class with Skia backend, use for 2D canvas 2024-08-20 09:30:05 +02:00
Path.h LibGfx: Add Path::contains() 2024-09-18 21:21:57 +01:00
PathSkia.cpp LibGfx: Add Path::contains() 2024-09-18 21:21:57 +01:00
PathSkia.h LibGfx: Add Path::contains() 2024-09-18 21:21:57 +01:00
Point.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
Point.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
Quad.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
Rect.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
Rect.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
ScalingMode.h LibGfx: Move Gfx::Painter::ScalingMode => Gfx::ScalingMode 2024-06-05 15:37:05 +02:00
ShareableBitmap.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
ShareableBitmap.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
Size.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
Size.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
StandardCursor.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
SystemTheme.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
SystemTheme.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
TextAlignment.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
TextAttributes.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
TextLayout.cpp LibWeb: Strip tabs before text shaping 2024-10-22 21:42:54 +02:00
TextLayout.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
TIFFGenerator.py LibGfx/TIFF: Manually check for the presence of two baseline tags 2024-05-06 17:33:25 +02:00
Triangle.cpp Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
Triangle.h Meta: Update my e-mail address everywhere 2024-10-04 13:19:50 +02:00
Vector2.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
Vector3.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
Vector4.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
VectorGraphic.cpp LibGfx: Rename Painter => DeprecatedPainter 2024-08-20 09:30:05 +02:00
VectorGraphic.h LibGfx: Rename Painter => DeprecatedPainter 2024-08-20 09:30:05 +02:00
VectorN.h LibGfx: Add VectorN::operator== 2024-03-02 12:25:53 +01:00
WindingRule.h LibGfx: Move Gfx::Painter::WindingRule => Gfx::WindingRule 2024-06-05 15:37:05 +02:00