summaryrefslogtreecommitdiff
path: root/src/renderManager.cpp
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2025-04-02 21:00:27 +0800
committerlittleblack111 <littleblack11111@gmail.com>2025-04-07 16:32:07 +0800
commitc356b3f6dec8a9175c0cc388ed5fd44e7fd17824 (patch)
tree0f2c98ffd24784125f6206149e0cfcc068d52450 /src/renderManager.cpp
parent85295cb74abc0cfff1259d426ae05a213b4ac184 (diff)
refactor: loggings
Diffstat (limited to 'src/renderManager.cpp')
-rw-r--r--src/renderManager.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/renderManager.cpp b/src/renderManager.cpp
index d3720c7..c103285 100644
--- a/src/renderManager.cpp
+++ b/src/renderManager.cpp
@@ -2,10 +2,22 @@
#include "log.hpp"
CRenderManager::CRenderManager()
- : screen(ftxui::ScreenInteractive::Fullscreen()) {
- log(SYS, "RenderManager: initialized");
+ : screen(ftxui::ScreenInteractive::TerminalOutput()) {
+ if (std::atexit([]() { g_pRenderManager->exitLoop(); }))
+ log(ERR, "Failed to register SessionManager atexit handler, will fallback to quick_exit after hang");
+ log(LOG, "RenderManager: initialized");
};
+CRenderManager::~CRenderManager() {
+ exitLoop();
+ log(SYS, "RenderManager: bye");
+}
+
+void CRenderManager::exitLoop() {
+ screen.ExitLoopClosure()();
+ screen.Exit();
+}
+
void CRenderManager::enterLoop() {
screen.Loop(renderer);
}
@@ -13,7 +25,3 @@ void CRenderManager::enterLoop() {
void CRenderManager::setRenderer(ftxui::Component component) {
renderer = std::move(component);
}
-
-CRenderManager::~CRenderManager() {
- screen.Exit();
-}