mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
style: Use cbindgen to back CSS transforms.
This avoids the expensive conversion, and cleans up a bunch. Further cleanup is possible, just not done yet to avoid growing the patch even more. Differential Revision: https://phabricator.services.mozilla.com/D30748
This commit is contained in:
parent
85752fa479
commit
3034d66eef
11 changed files with 59 additions and 356 deletions
|
@ -861,7 +861,7 @@ impl Animate for ComputedTransform {
|
|||
// animation procedures so we treat it separately here rather than
|
||||
// handling it in TransformOperation.
|
||||
if procedure == Procedure::Add {
|
||||
let result = self.0.iter().chain(&other.0).cloned().collect::<Vec<_>>();
|
||||
let result = self.0.iter().chain(&*other.0).cloned().collect();
|
||||
return Ok(Transform(result));
|
||||
}
|
||||
|
||||
|
@ -898,15 +898,15 @@ impl Animate for ComputedTransform {
|
|||
},
|
||||
Procedure::Interpolate { progress } => {
|
||||
result.push(TransformOperation::InterpolateMatrix {
|
||||
from_list: Transform(this_remainder.to_vec()),
|
||||
to_list: Transform(other_remainder.to_vec()),
|
||||
from_list: Transform(this_remainder.to_vec().into()),
|
||||
to_list: Transform(other_remainder.to_vec().into()),
|
||||
progress: Percentage(progress as f32),
|
||||
});
|
||||
},
|
||||
Procedure::Accumulate { count } => {
|
||||
result.push(TransformOperation::AccumulateMatrix {
|
||||
from_list: Transform(this_remainder.to_vec()),
|
||||
to_list: Transform(other_remainder.to_vec()),
|
||||
from_list: Transform(this_remainder.to_vec().into()),
|
||||
to_list: Transform(other_remainder.to_vec().into()),
|
||||
count: cmp::min(count, i32::max_value() as u64) as i32,
|
||||
});
|
||||
},
|
||||
|
@ -927,8 +927,8 @@ impl Animate for ComputedTransform {
|
|||
// matrix. Instead we need to wrap it in another ___Matrix type.
|
||||
TransformOperation::AccumulateMatrix { .. } |
|
||||
TransformOperation::InterpolateMatrix { .. } => {
|
||||
let transform_list = Transform(vec![transform.clone()]);
|
||||
let identity_list = Transform(vec![identity]);
|
||||
let transform_list = Transform(vec![transform.clone()].into());
|
||||
let identity_list = Transform(vec![identity].into());
|
||||
let (from_list, to_list) = if fill_right {
|
||||
(transform_list, identity_list)
|
||||
} else {
|
||||
|
@ -970,7 +970,7 @@ impl Animate for ComputedTransform {
|
|||
(None, None) => {},
|
||||
}
|
||||
|
||||
Ok(Transform(result))
|
||||
Ok(Transform(result.into()))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue