diff options
| author | Dickby <felix.dick@web.de> | 2023-09-05 15:06:39 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-05 15:06:39 +0200 |
| commit | 28f1f035b1599cdb270f3674d5df095bec480ba0 (patch) | |
| tree | 2055bcea2bf7ba0deed6bf8dc70c069d4b40ab92 /src/managers/AnimationManager.cpp | |
| parent | db48f973fd436a38dfd5ed63991610bb90b30bc9 (diff) | |
animationmgr: Optimize CAnimationManager::scheduleTick a bit. (#3172)
* Optimize CAnimationManager::scheduleTick a bit.
* Use integer in wl_event_source_timer_update call.
Diffstat (limited to 'src/managers/AnimationManager.cpp')
| -rw-r--r-- | src/managers/AnimationManager.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/managers/AnimationManager.cpp b/src/managers/AnimationManager.cpp index 113b4851..4172a1ff 100644 --- a/src/managers/AnimationManager.cpp +++ b/src/managers/AnimationManager.cpp @@ -539,15 +539,14 @@ void CAnimationManager::scheduleTick() { const auto PMOSTHZ = g_pHyprRenderer->m_pMostHzMonitor; - float refreshRate = PMOSTHZ ? PMOSTHZ->refreshRate : 60.f; - float refreshDelayMs = std::floor(1000.0 / refreshRate); - if (!PMOSTHZ) { - wl_event_source_timer_update(m_pAnimationTick, refreshDelayMs); + wl_event_source_timer_update(m_pAnimationTick, 16); return; } - const float SINCEPRES = std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::system_clock::now() - PMOSTHZ->lastPresentationTimer.chrono()).count() / 1000.0; + float refreshDelayMs = std::floor(1000.f / PMOSTHZ->refreshRate); + + const float SINCEPRES = std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::system_clock::now() - PMOSTHZ->lastPresentationTimer.chrono()).count() / 1000.f; const auto TOPRES = std::clamp(refreshDelayMs - SINCEPRES, 1.1f, 1000.f); // we can't send 0, that will disarm it |
