aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout/animation.rs
diff options
context:
space:
mode:
authorEmilio Cobos Álvarez <ecoal95@gmail.com>2016-07-09 22:43:52 -0700
committerEmilio Cobos Álvarez <ecoal95@gmail.com>2016-07-20 09:05:53 -0700
commit0b67b218d0c8dc48a5301227802296aff98af6d7 (patch)
tree50988441e1577dcfa61d1581318b34255e3a2c07 /components/layout/animation.rs
parent2e68821014053ebf547818e017c423a5d52717d5 (diff)
downloadservo-0b67b218d0c8dc48a5301227802296aff98af6d7.tar.gz
servo-0b67b218d0c8dc48a5301227802296aff98af6d7.zip
style: Add a new Timer structure to the shared style context, and basic infrastructure for controlling animations.
Diffstat (limited to 'components/layout/animation.rs')
-rw-r--r--components/layout/animation.rs9
1 files changed, 5 insertions, 4 deletions
diff --git a/components/layout/animation.rs b/components/layout/animation.rs
index 4087479ed47..5a67b1af5bf 100644
--- a/components/layout/animation.rs
+++ b/components/layout/animation.rs
@@ -14,7 +14,7 @@ use script_traits::{AnimationState, LayoutMsg as ConstellationMsg};
use std::collections::HashMap;
use std::sync::mpsc::Receiver;
use style::animation::{Animation, update_style_for_animation};
-use time;
+use style::timer::Timer;
/// Processes any new animations that were discovered after style recalculation.
/// Also expire any old animations that have completed, inserting them into
@@ -23,7 +23,8 @@ pub fn update_animation_state(constellation_chan: &IpcSender<ConstellationMsg>,
running_animations: &mut HashMap<OpaqueNode, Vec<Animation>>,
expired_animations: &mut HashMap<OpaqueNode, Vec<Animation>>,
new_animations_receiver: &Receiver<Animation>,
- pipeline_id: PipelineId) {
+ pipeline_id: PipelineId,
+ timer: &Timer) {
let mut new_running_animations = vec![];
while let Ok(animation) = new_animations_receiver.try_recv() {
let mut should_push = true;
@@ -37,7 +38,7 @@ pub fn update_animation_state(constellation_chan: &IpcSender<ConstellationMsg>,
if let Animation::Keyframes(_, ref anim_name, ref mut anim_state) = *anim {
if *name == *anim_name {
debug!("update_animation_state: Found other animation {}", name);
- anim_state.update_from_other(&state);
+ anim_state.update_from_other(&state, timer);
should_push = false;
break;
}
@@ -57,7 +58,7 @@ pub fn update_animation_state(constellation_chan: &IpcSender<ConstellationMsg>,
return
}
- let now = time::precise_time_s();
+ let now = timer.seconds();
// Expire old running animations.
//
// TODO: Do not expunge Keyframes animations, since we need that state if