From 686057a0b161f69e679e3e9c57754800ae8d75b9 Mon Sep 17 00:00:00 2001 From: Jm Casler Date: Sat, 11 Dec 2021 18:33:52 -0800 Subject: [PATCH 1/2] Make screen animations smoother (aka Scale the CPU) #983 --- src/graphics/Screen.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/graphics/Screen.cpp b/src/graphics/Screen.cpp index 83880d9a5..25698e634 100644 --- a/src/graphics/Screen.cpp +++ b/src/graphics/Screen.cpp @@ -36,6 +36,7 @@ along with this program. If not, see . #include "target_specific.h" #include "utils.h" #include "gps/GeoCoord.h" +#include "sleep.h" #ifndef NO_ESP32 #include "mesh/http/WiFiAPClient.h" @@ -875,6 +876,9 @@ int32_t Screen::runOnce() // oldFrameState = ui.getUiState()->frameState; DEBUG_MSG("Setting idle framerate\n"); targetFramerate = IDLE_FRAMERATE; + + setCPUFast(false); // Turn down the CPU now that the framerate has been reduced + ui.setTargetFPS(targetFramerate); forceDisplay(); } @@ -1074,6 +1078,9 @@ void Screen::setFastFramerate() // We are about to start a transition so speed up fps targetFramerate = SCREEN_TRANSITION_FRAMERATE; + + setCPUFast(true); // Turn up the CPU to improve screen animations + ui.setTargetFPS(targetFramerate); setInterval(0); // redraw ASAP runASAP = true; From 4fb5107298bbe8c81f823990fd9e0cc16cd1d8af Mon Sep 17 00:00:00 2001 From: Jm Casler Date: Sat, 11 Dec 2021 18:35:28 -0800 Subject: [PATCH 2/2] Make screen animations smoother (aka Scale the CPU) #983 --- src/graphics/Screen.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/graphics/Screen.cpp b/src/graphics/Screen.cpp index 25698e634..e2542489a 100644 --- a/src/graphics/Screen.cpp +++ b/src/graphics/Screen.cpp @@ -877,7 +877,9 @@ int32_t Screen::runOnce() DEBUG_MSG("Setting idle framerate\n"); targetFramerate = IDLE_FRAMERATE; - setCPUFast(false); // Turn down the CPU now that the framerate has been reduced +#ifndef NO_ESP32 + setCPUFast(false); // Turn up the CPU to improve screen animations +#endif ui.setTargetFPS(targetFramerate); forceDisplay(); @@ -1079,7 +1081,9 @@ void Screen::setFastFramerate() // We are about to start a transition so speed up fps targetFramerate = SCREEN_TRANSITION_FRAMERATE; +#ifndef NO_ESP32 setCPUFast(true); // Turn up the CPU to improve screen animations +#endif ui.setTargetFPS(targetFramerate); setInterval(0); // redraw ASAP