Better computation of animation keyframes

This begins to address #26625 by properly applying CSS variables during
keyframe computation and no longer using `apply_declarations`. Instead,
walk the declarations, combining them into IntermediateComputedKeyframe,
maintaining declarations that modify CSS custom properties. Then compute
a set of AnimationValues for each keyframe and use those to produce
interpolated animation values.
This commit is contained in:
Martin Robinson 2020-05-26 19:42:28 +02:00
parent 83fa1b9eaa
commit b875f14e86
69 changed files with 269 additions and 1609 deletions

View file

@ -321,6 +321,13 @@ impl PropertyDeclarationBlock {
self.longhands.contains_any_reset()
}
/// Returns a `LonghandIdSet` representing the properties that are changed in
/// this block.
#[inline]
pub fn longhands(&self) -> &LonghandIdSet {
&self.longhands
}
/// Get a declaration for a given property.
///
/// NOTE: This is linear time in the case of custom properties or in the