mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-22 10:19:20 +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:
parent
5cdd03fc53
commit
bec07d4af7
Notes:
sideshowbarker
2024-07-17 05:13:53 +09:00
Author: https://github.com/kalenikaliaksandr
Commit: bec07d4af7
Pull-request: https://github.com/SerenityOS/serenity/pull/20153
Reviewed-by: https://github.com/MacDue
Reviewed-by: https://github.com/axgallo
136 changed files with 1938 additions and 1844 deletions
|
@ -803,7 +803,7 @@ void GridFormattingContext::distribute_extra_space_across_spanned_tracks_base_si
|
|||
// 2. Distribute space up to limits:
|
||||
// FIXME: If a fixed-point type were used to represent CSS pixels, it would be possible to compare with 0
|
||||
// instead of epsilon.
|
||||
while (extra_space > NumericLimits<double>().epsilon()) {
|
||||
while (extra_space > CSSPixels::epsilon()) {
|
||||
auto all_frozen = all_of(affected_tracks, [](auto const& track) { return track.base_size_frozen; });
|
||||
if (all_frozen)
|
||||
break;
|
||||
|
@ -893,7 +893,7 @@ void GridFormattingContext::distribute_extra_space_across_spanned_tracks_growth_
|
|||
// 2. Distribute space up to limits:
|
||||
// FIXME: If a fixed-point type were used to represent CSS pixels, it would be possible to compare with 0
|
||||
// instead of epsilon.
|
||||
while (extra_space > NumericLimits<double>().epsilon()) {
|
||||
while (extra_space > CSSPixels::epsilon()) {
|
||||
auto all_frozen = all_of(affected_tracks, [](auto const& track) { return track.growth_limit_frozen; });
|
||||
if (all_frozen)
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue