mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
Move new_animations_receiver from LayoutTaskData to LayoutTask.
This commit is contained in:
parent
604d1e8400
commit
5e4039d328
2 changed files with 12 additions and 8 deletions
|
@ -14,7 +14,7 @@ use script::layout_interface::Animation;
|
||||||
use script_traits::ConstellationControlMsg;
|
use script_traits::ConstellationControlMsg;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::collections::hash_map::Entry;
|
use std::collections::hash_map::Entry;
|
||||||
use std::sync::mpsc::Sender;
|
use std::sync::mpsc::{Sender, Receiver};
|
||||||
use std::sync::{Arc, Mutex};
|
use std::sync::{Arc, Mutex};
|
||||||
use style::animation::{GetMod, PropertyAnimation};
|
use style::animation::{GetMod, PropertyAnimation};
|
||||||
use style::properties::ComputedValues;
|
use style::properties::ComputedValues;
|
||||||
|
@ -50,9 +50,11 @@ pub fn start_transitions_if_applicable(new_animations_sender: &Mutex<Sender<Anim
|
||||||
|
|
||||||
/// Processes any new animations that were discovered after style recalculation.
|
/// Processes any new animations that were discovered after style recalculation.
|
||||||
/// Also expire any old animations that have completed.
|
/// Also expire any old animations that have completed.
|
||||||
pub fn update_animation_state(rw_data: &mut LayoutTaskData, pipeline_id: PipelineId) {
|
pub fn update_animation_state(rw_data: &mut LayoutTaskData,
|
||||||
|
new_animations_receiver: &Receiver<Animation>,
|
||||||
|
pipeline_id: PipelineId) {
|
||||||
let mut new_running_animations = Vec::new();
|
let mut new_running_animations = Vec::new();
|
||||||
while let Ok(animation) = rw_data.new_animations_receiver.try_recv() {
|
while let Ok(animation) = new_animations_receiver.try_recv() {
|
||||||
new_running_animations.push(animation)
|
new_running_animations.push(animation)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -128,9 +128,6 @@ pub struct LayoutTaskData {
|
||||||
/// The list of currently-running animations.
|
/// The list of currently-running animations.
|
||||||
pub running_animations: Arc<HashMap<OpaqueNode, Vec<Animation>>>,
|
pub running_animations: Arc<HashMap<OpaqueNode, Vec<Animation>>>,
|
||||||
|
|
||||||
/// Receives newly-discovered animations.
|
|
||||||
pub new_animations_receiver: Receiver<Animation>,
|
|
||||||
|
|
||||||
/// A counter for epoch messages
|
/// A counter for epoch messages
|
||||||
epoch: Epoch,
|
epoch: Epoch,
|
||||||
|
|
||||||
|
@ -222,6 +219,9 @@ pub struct LayoutTask {
|
||||||
/// sent.
|
/// sent.
|
||||||
new_animations_sender: Sender<Animation>,
|
new_animations_sender: Sender<Animation>,
|
||||||
|
|
||||||
|
/// Receives newly-discovered animations.
|
||||||
|
new_animations_receiver: Receiver<Animation>,
|
||||||
|
|
||||||
/// A mutex to allow for fast, read-only RPC of layout's internal data
|
/// A mutex to allow for fast, read-only RPC of layout's internal data
|
||||||
/// structures, while still letting the LayoutTask modify them.
|
/// structures, while still letting the LayoutTask modify them.
|
||||||
///
|
///
|
||||||
|
@ -434,6 +434,7 @@ impl LayoutTask {
|
||||||
parallel_traversal: parallel_traversal,
|
parallel_traversal: parallel_traversal,
|
||||||
generation: 0,
|
generation: 0,
|
||||||
new_animations_sender: new_animations_sender,
|
new_animations_sender: new_animations_sender,
|
||||||
|
new_animations_receiver: new_animations_receiver,
|
||||||
rw_data: Arc::new(Mutex::new(
|
rw_data: Arc::new(Mutex::new(
|
||||||
LayoutTaskData {
|
LayoutTaskData {
|
||||||
root_flow: None,
|
root_flow: None,
|
||||||
|
@ -448,7 +449,6 @@ impl LayoutTask {
|
||||||
running_animations: Arc::new(HashMap::new()),
|
running_animations: Arc::new(HashMap::new()),
|
||||||
offset_parent_response: OffsetParentResponse::empty(),
|
offset_parent_response: OffsetParentResponse::empty(),
|
||||||
visible_rects: Arc::new(HashMap::with_hash_state(Default::default())),
|
visible_rects: Arc::new(HashMap::with_hash_state(Default::default())),
|
||||||
new_animations_receiver: new_animations_receiver,
|
|
||||||
epoch: Epoch(0),
|
epoch: Epoch(0),
|
||||||
outstanding_web_fonts: outstanding_web_fonts_counter,
|
outstanding_web_fonts: outstanding_web_fonts_counter,
|
||||||
})),
|
})),
|
||||||
|
@ -1340,7 +1340,9 @@ impl LayoutTask {
|
||||||
layout_context: &mut SharedLayoutContext) {
|
layout_context: &mut SharedLayoutContext) {
|
||||||
if let Some(mut root_flow) = rw_data.layout_root() {
|
if let Some(mut root_flow) = rw_data.layout_root() {
|
||||||
// Kick off animations if any were triggered, expire completed ones.
|
// Kick off animations if any were triggered, expire completed ones.
|
||||||
animation::update_animation_state(&mut *rw_data, self.id);
|
animation::update_animation_state(&mut *rw_data,
|
||||||
|
&self.new_animations_receiver,
|
||||||
|
self.id);
|
||||||
|
|
||||||
profile(time::ProfilerCategory::LayoutRestyleDamagePropagation,
|
profile(time::ProfilerCategory::LayoutRestyleDamagePropagation,
|
||||||
self.profiler_metadata(),
|
self.profiler_metadata(),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue