diff options
author | Vaxry <[email protected]> | 2024-12-16 18:31:07 +0000 |
---|---|---|
committer | Vaxry <[email protected]> | 2024-12-16 18:31:07 +0000 |
commit | b9f82e9968efb2faad5ae50f806b033bbfa12549 (patch) | |
tree | a529707bb0a9b6c92ab8bc11672ebbd393e22348 /src | |
parent | e06b520427a30f1c86562ad7cc3794bf03b40188 (diff) | |
download | Hyprland-b9f82e9968efb2faad5ae50f806b033bbfa12549.tar.gz Hyprland-b9f82e9968efb2faad5ae50f806b033bbfa12549.zip |
animationmgr: fixup stack-use-after-return
Diffstat (limited to 'src')
-rw-r--r-- | src/helpers/BezierCurve.cpp | 6 | ||||
-rw-r--r-- | src/helpers/BezierCurve.hpp | 6 | ||||
-rw-r--r-- | src/managers/AnimationManager.cpp | 18 |
3 files changed, 15 insertions, 15 deletions
diff --git a/src/helpers/BezierCurve.cpp b/src/helpers/BezierCurve.cpp index ec093888..a0610fc9 100644 --- a/src/helpers/BezierCurve.cpp +++ b/src/helpers/BezierCurve.cpp @@ -43,14 +43,14 @@ void CBezierCurve::setup(std::vector<Vector2D>* pVec) { ELAPSEDUS, ELAPSEDCALCAVG); } -float CBezierCurve::getXForT(float const& t) { +float CBezierCurve::getXForT(float const& t) const { float t2 = t * t; float t3 = t2 * t; return 3 * t * (1 - t) * (1 - t) * m_vPoints[1].x + 3 * t2 * (1 - t) * m_vPoints[2].x + t3 * m_vPoints[3].x; } -float CBezierCurve::getYForT(float const& t) { +float CBezierCurve::getYForT(float const& t) const { float t2 = t * t; float t3 = t2 * t; @@ -58,7 +58,7 @@ float CBezierCurve::getYForT(float const& t) { } // Todo: this probably can be done better and faster -float CBezierCurve::getYForPoint(float const& x) { +float CBezierCurve::getYForPoint(float const& x) const { if (x >= 1.f) return 1.f; if (x <= 0.f) diff --git a/src/helpers/BezierCurve.hpp b/src/helpers/BezierCurve.hpp index 1b9144a8..e643fb41 100644 --- a/src/helpers/BezierCurve.hpp +++ b/src/helpers/BezierCurve.hpp @@ -16,9 +16,9 @@ class CBezierCurve { // this EXCLUDES the 0,0 and 1,1 points, void setup(std::vector<Vector2D>* points); - float getYForT(float const& t); - float getXForT(float const& t); - float getYForPoint(float const& x); + float getYForT(float const& t) const; + float getXForT(float const& t) const; + float getYForPoint(float const& x) const; private: // this INCLUDES the 0,0 and 1,1 points. diff --git a/src/managers/AnimationManager.cpp b/src/managers/AnimationManager.cpp index a61c20a1..c8f7ecdf 100644 --- a/src/managers/AnimationManager.cpp +++ b/src/managers/AnimationManager.cpp @@ -156,9 +156,9 @@ void CAnimationManager::tick() { // beziers are with a switch unforto // TODO: maybe do something cleaner - static const auto updateVariable = [&]<Animable T>(CAnimatedVariable<T>& av) { + static const auto updateVariable = [this]<Animable T>(CAnimatedVariable<T>& av, const float SPENT, const CBezierCurve& DEFAULTBEZIER, const bool DISABLED) { // for disabled anims just warp - if (av.m_pConfig->pValues->internalEnabled == 0 || animationsDisabled) { + if (av.m_pConfig->pValues->internalEnabled == 0 || DISABLED) { av.warp(false); return; } @@ -169,7 +169,7 @@ void CAnimationManager::tick() { } const auto BEZIER = m_mBezierCurves.find(av.m_pConfig->pValues->internalBezier); - const auto POINTY = BEZIER != m_mBezierCurves.end() ? BEZIER->second.getYForPoint(SPENT) : DEFAULTBEZIER->second.getYForPoint(SPENT); + const auto POINTY = BEZIER != m_mBezierCurves.end() ? BEZIER->second.getYForPoint(SPENT) : DEFAULTBEZIER.getYForPoint(SPENT); const auto DELTA = av.m_Goal - av.m_Begun; @@ -179,9 +179,9 @@ void CAnimationManager::tick() { av.m_Value = av.m_Begun + DELTA * POINTY; }; - static const auto updateColorVariable = [&](CAnimatedVariable<CHyprColor>& av) { + static const auto updateColorVariable = [this](CAnimatedVariable<CHyprColor>& av, const float SPENT, const CBezierCurve& DEFAULTBEZIER, const bool DISABLED) { // for disabled anims just warp - if (av.m_pConfig->pValues->internalEnabled == 0 || animationsDisabled) { + if (av.m_pConfig->pValues->internalEnabled == 0 || DISABLED) { av.warp(false); return; } @@ -192,7 +192,7 @@ void CAnimationManager::tick() { } const auto BEZIER = m_mBezierCurves.find(av.m_pConfig->pValues->internalBezier); - const auto POINTY = BEZIER != m_mBezierCurves.end() ? BEZIER->second.getYForPoint(SPENT) : DEFAULTBEZIER->second.getYForPoint(SPENT); + const auto POINTY = BEZIER != m_mBezierCurves.end() ? BEZIER->second.getYForPoint(SPENT) : DEFAULTBEZIER.getYForPoint(SPENT); // convert both to OkLab, then lerp that, and convert back. // This is not as fast as just lerping rgb, but it's WAY more precise... @@ -217,17 +217,17 @@ void CAnimationManager::tick() { switch (av->m_Type) { case AVARTYPE_FLOAT: { auto typedAv = dynamic_cast<CAnimatedVariable<float>*>(av); - updateVariable(*typedAv); + updateVariable(*typedAv, SPENT, DEFAULTBEZIER->second, animationsDisabled); break; } case AVARTYPE_VECTOR: { auto typedAv = dynamic_cast<CAnimatedVariable<Vector2D>*>(av); - updateVariable(*typedAv); + updateVariable(*typedAv, SPENT, DEFAULTBEZIER->second, animationsDisabled); break; } case AVARTYPE_COLOR: { auto typedAv = dynamic_cast<CAnimatedVariable<CHyprColor>*>(av); - updateColorVariable(*typedAv); + updateColorVariable(*typedAv, SPENT, DEFAULTBEZIER->second, animationsDisabled); break; } default: UNREACHABLE(); |