mirror of
https://github.com/servo/servo.git
synced 2025-08-05 05:30:08 +01:00
Build an identity matrix for InterpolateMatrix.
We have to build an identity matrix while add_weighted() between InterpolateMatrix and none transform in some cases, e.g. trigger a transition from a mid-point of another transition to none.
This commit is contained in:
parent
71f1f4b508
commit
a67797c485
1 changed files with 5 additions and 6 deletions
|
@ -1621,20 +1621,19 @@ fn build_identity_transform_list(list: &[TransformOperation]) -> Vec<TransformOp
|
|||
result.push(TransformOperation::Rotate(0.0, 0.0, 1.0, Angle::zero()));
|
||||
}
|
||||
TransformOperation::Perspective(..) |
|
||||
TransformOperation::AccumulateMatrix { .. } => {
|
||||
TransformOperation::AccumulateMatrix { .. } |
|
||||
TransformOperation::InterpolateMatrix { .. } => {
|
||||
// Perspective: We convert a perspective function into an equivalent
|
||||
// ComputedMatrix, and then decompose/interpolate/recompose these matrices.
|
||||
// AccumulateMatrix: We do interpolation on AccumulateMatrix by reading it as a
|
||||
// ComputedMatrix (with layout information), and then do matrix interpolation.
|
||||
// AccumulateMatrix/InterpolateMatrix: We do interpolation on
|
||||
// AccumulateMatrix/InterpolateMatrix by reading it as a ComputedMatrix
|
||||
// (with layout information), and then do matrix interpolation.
|
||||
//
|
||||
// Therefore, we use an identity matrix to represent the identity transform list.
|
||||
// http://dev.w3.org/csswg/css-transforms/#identity-transform-function
|
||||
let identity = ComputedMatrix::identity();
|
||||
result.push(TransformOperation::Matrix(identity));
|
||||
}
|
||||
TransformOperation::InterpolateMatrix { .. } => {
|
||||
panic!("Building the identity matrix for InterpolateMatrix is not supported");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue