mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
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:
parent
83fa1b9eaa
commit
b875f14e86
69 changed files with 269 additions and 1609 deletions
|
@ -17,7 +17,7 @@ use crate::font_metrics::FontMetricsProvider;
|
|||
use crate::media_queries::Device;
|
||||
use crate::properties::{AnimationRules, ComputedValues, PropertyDeclarationBlock};
|
||||
use crate::selector_parser::{AttrValue, Lang, PseudoElement, SelectorImpl};
|
||||
use crate::shared_lock::Locked;
|
||||
use crate::shared_lock::{Locked, SharedRwLock};
|
||||
use crate::stylist::CascadeData;
|
||||
use crate::traversal_flags::TraversalFlags;
|
||||
use crate::{Atom, LocalName, Namespace, WeakAtom};
|
||||
|
@ -128,6 +128,9 @@ pub trait TDocument: Sized + Copy + Clone {
|
|||
{
|
||||
Err(())
|
||||
}
|
||||
|
||||
/// This document's shared lock.
|
||||
fn shared_lock(&self) -> &SharedRwLock;
|
||||
}
|
||||
|
||||
/// The `TNode` trait. This is the main generic trait over which the style
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue