mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
style: Support ray() in offset-path and make it animatable.
1. Add `generics::motion::OffsetPath`, and use specified `Angle` and computed `Angle` to define specified `OffsetPath` and computed `OffsetPath`. 2. Add `ray` function into `OffsetPath`. We also tweak the degree from 150deg to 135deg in wpt (e.g. offset-path-ray-001.html and others) to avoid floating point precision issues. For example: ``` // offset-path: ray(150deg ...); // offset-distance: 20px; matrix: { {0.500000 0.866025 0.000000 0.000000}, {-0.866025 0.500000 0.000000 0.000000}, {0.000000 0.000000 1.000000 0.000000}, {10.000000 17.320509 0.000000 1.000000} } // rotate(60deg) translate(20px) matrix: { {0.500000 0.866025 0.000000 0.000000}, {-0.866025 0.500000 0.000000 0.000000}, {0.000000 0.000000 1.000000 0.000000}, {10.000000 17.320507 0.000000 1.000000} } ``` Their translate parts, 17.320509 vs 17.320507, are almost the same (only tiny difference), which may cause the reftest failed. Differential Revision: https://phabricator.services.mozilla.com/D42721
This commit is contained in:
parent
35a98af0ed
commit
5e77ba9bf4
5 changed files with 172 additions and 53 deletions
|
@ -5,12 +5,11 @@
|
|||
//! Computed types for CSS values that are related to motion path.
|
||||
|
||||
use crate::values::computed::Angle;
|
||||
use crate::values::generics::motion::GenericOffsetPath;
|
||||
use crate::Zero;
|
||||
|
||||
/// A computed offset-path. The computed value is as specified value.
|
||||
///
|
||||
/// https://drafts.fxtf.org/motion-1/#offset-path-property
|
||||
pub use crate::values::specified::motion::OffsetPath;
|
||||
/// The computed value of `offset-path`.
|
||||
pub type OffsetPath = GenericOffsetPath<Angle>;
|
||||
|
||||
#[inline]
|
||||
fn is_auto_zero_angle(auto: &bool, angle: &Angle) -> bool {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue