aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-04-09 21:36:19 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2024-04-09 23:42:01 +0400
commit209492e7005bd9e58b216ff7f3a0ea39670f3a5d (patch)
tree78135876fb5540cadfd08441d865f892363d8ca7 /src
parent7e0d3d31f719615a3da99325d5797a96ae1fa5d2 (diff)
downloadniri-209492e7005bd9e58b216ff7f3a0ea39670f3a5d.tar.gz
niri-209492e7005bd9e58b216ff7f3a0ea39670f3a5d.tar.bz2
niri-209492e7005bd9e58b216ff7f3a0ea39670f3a5d.zip
Add ease-out-quad curve
Diffstat (limited to 'src')
-rw-r--r--src/animation/mod.rs5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/animation/mod.rs b/src/animation/mod.rs
index d8e8cbd5..073b0ae3 100644
--- a/src/animation/mod.rs
+++ b/src/animation/mod.rs
@@ -1,6 +1,6 @@
use std::time::Duration;
-use keyframe::functions::EaseOutCubic;
+use keyframe::functions::{EaseOutCubic, EaseOutQuad};
use keyframe::EasingFunction;
use portable_atomic::{AtomicF64, Ordering};
@@ -35,6 +35,7 @@ enum Kind {
#[derive(Debug, Clone, Copy)]
pub enum Curve {
+ EaseOutQuad,
EaseOutCubic,
EaseOutExpo,
}
@@ -276,6 +277,7 @@ impl Animation {
impl Curve {
pub fn y(self, x: f64) -> f64 {
match self {
+ Curve::EaseOutQuad => EaseOutQuad.y(x),
Curve::EaseOutCubic => EaseOutCubic.y(x),
Curve::EaseOutExpo => 1. - 2f64.powf(-10. * x),
}
@@ -285,6 +287,7 @@ impl Curve {
impl From<niri_config::AnimationCurve> for Curve {
fn from(value: niri_config::AnimationCurve) -> Self {
match value {
+ niri_config::AnimationCurve::EaseOutQuad => Curve::EaseOutQuad,
niri_config::AnimationCurve::EaseOutCubic => Curve::EaseOutCubic,
niri_config::AnimationCurve::EaseOutExpo => Curve::EaseOutExpo,
}