1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-29 15:07:45 +00:00

LibWeb: Use fixed-point saturated arithmetics for CSSPixels

Using fixed-point saturated arithmetics for CSSPixels allows to avoid
accumulating floating-point errors.

This implementation is not complete yet: currently saturated
arithmetics implemented only for addition. But it is enough to not
regress any of layout tests we have :)

See https://github.com/SerenityOS/serenity/issues/18566
This commit is contained in:
Aliaksandr Kalenik 2023-07-23 01:09:39 +02:00 committed by Andreas Kling
parent 5cdd03fc53
commit bec07d4af7
136 changed files with 1938 additions and 1844 deletions

View file

@ -1,27 +1,27 @@
Viewport <#document> at (0,0) content-size 800x600 children: not-inline
BlockContainer <html> at (0,0) content-size 800x600 [BFC] children: not-inline
BlockContainer <body> at (8,8) content-size 784x252.875 children: not-inline
BlockContainer <div> at (8,8) content-size 784x252.875 children: not-inline
BlockContainer <body> at (8,8) content-size 784x252.40625 children: not-inline
BlockContainer <div> at (8,8) content-size 784x252.40625 children: not-inline
BlockContainer <(anonymous)> at (8,8) content-size 784x17.46875 children: inline
line 0 width: 447.484375, height: 17.46875, bottom: 17.46875, baseline: 13.53125
frag 0 from TextNode start: 0, length: 54, rect: [345,8 447.484375x17.46875]
frag 0 from TextNode start: 0, length: 54, rect: [344.515625,8 447.484375x17.46875]
"This text and the green square are both right aligned:"
TextNode <#text>
BlockContainer <div.square> at (692,25.46875) content-size 100x100 children: not-inline
BlockContainer <(anonymous)> at (8,125.46875) content-size 784x0 children: inline
TextNode <#text>
BlockContainer <div> at (8,125.46875) content-size 784x135.40625 children: not-inline
BlockContainer <(anonymous)> at (8,125.46875) content-size 784x35.40625 children: inline
BlockContainer <div> at (8,125.46875) content-size 784x134.9375 children: not-inline
BlockContainer <(anonymous)> at (8,125.46875) content-size 784x34.9375 children: inline
line 0 width: 711.4375, height: 17.46875, bottom: 17.46875, baseline: 13.53125
frag 0 from TextNode start: 1, length: 87, rect: [8,125.46875 711.4375x17.46875]
"This text and the green square are both left aligned despite being nested in a div with"
line 1 width: 94.296875, height: 17.9375, bottom: 35.40625, baseline: 13.53125
frag 0 from TextNode start: 89, length: 14, rect: [8,142.46875 94.296875x17.46875]
line 1 width: 94.296875, height: 17.46875, bottom: 34.9375, baseline: 13.53125
frag 0 from TextNode start: 89, length: 14, rect: [8,142.9375 94.296875x17.46875]
"align="right":"
TextNode <#text>
BlockContainer <div.square> at (8,160.875) content-size 100x100 children: inline
BlockContainer <div.square> at (8,160.40625) content-size 100x100 children: inline
TextNode <#text>
BlockContainer <(anonymous)> at (8,260.875) content-size 784x0 children: inline
BlockContainer <(anonymous)> at (8,260.40625) content-size 784x0 children: inline
TextNode <#text>
BlockContainer <(anonymous)> at (8,260.875) content-size 784x0 children: inline
BlockContainer <(anonymous)> at (8,260.40625) content-size 784x0 children: inline
TextNode <#text>