Skip to content

Commit

Permalink
LibWeb: Remove transform interpolation optimization
Browse files Browse the repository at this point in the history
The property values here will always be StyleValueLists and not
TransformationStyleValues. The handling of interpolation in this case
gets quite a bit more complex, so let's just remove the dead code for
now and attempt this optimization again in the future if it's needed.
  • Loading branch information
mattco98 authored and kalenikaliaksandr committed Mar 3, 2024
1 parent ee1d8a5 commit 1f88ca2
Showing 1 changed file with 1 addition and 19 deletions.
20 changes: 1 addition & 19 deletions Userland/Libraries/LibWeb/CSS/StyleComputer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1141,26 +1141,8 @@ static ErrorOr<ValueComparingNonnullRefPtr<StyleValue const>> interpolate_proper
case AnimationType::None:
return to;
case AnimationType::Custom: {
if (property_id == PropertyID::Transform) {
// Try to optimize same-function interpolation
if (from.is_transformation() && to.is_transformation()) {
auto& from_transform = from.as_transformation();
auto& to_transform = to.as_transformation();
if (from_transform.transform_function() == to_transform.transform_function()) {
auto from_input_values = from_transform.values();
auto to_input_values = to_transform.values();
if (from_input_values.size() == to_input_values.size()) {
StyleValueVector interpolated_values;
interpolated_values.ensure_capacity(from_input_values.size());
for (size_t i = 0; i < from_input_values.size(); ++i)
interpolated_values.append(TRY(interpolate_value(element, *from_input_values[i], *to_input_values[i], delta)));

return TransformationStyleValue::create(from_transform.transform_function(), move(interpolated_values));
}
}
}
if (property_id == PropertyID::Transform)
return interpolate_transform(element, from, to, delta);
}

// FIXME: Handle all custom animatable properties
[[fallthrough]];
Expand Down

0 comments on commit 1f88ca2

Please sign in to comment.