From 34685a836a40648167848060b48b62788cdcc85f Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Thu, 2 Mar 2023 17:30:47 +0000 Subject: Move AnimationManager::tick() to an event loop --- src/managers/AnimationManager.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/managers/AnimationManager.cpp') diff --git a/src/managers/AnimationManager.cpp b/src/managers/AnimationManager.cpp index 456ae7f7..c2708038 100644 --- a/src/managers/AnimationManager.cpp +++ b/src/managers/AnimationManager.cpp @@ -1,9 +1,23 @@ #include "AnimationManager.hpp" #include "../Compositor.hpp" +int wlTick(void* data) { + + float refreshRate = g_pHyprRenderer->m_pMostHzMonitor ? g_pHyprRenderer->m_pMostHzMonitor->refreshRate : 60.f; + + wl_event_source_timer_update(g_pAnimationManager->m_pAnimationTick, 1000 / refreshRate); + + g_pAnimationManager->tick(); + + return 0; +} + CAnimationManager::CAnimationManager() { std::vector points = {Vector2D(0, 0.75f), Vector2D(0.15f, 1.f)}; m_mBezierCurves["default"].setup(&points); + + m_pAnimationTick = wl_event_loop_add_timer(g_pCompositor->m_sWLEventLoop, &wlTick, nullptr); + wl_event_source_timer_update(m_pAnimationTick, 1); } void CAnimationManager::removeAllBeziers() { -- cgit v1.2.3