summaryrefslogtreecommitdiff
path: root/src/events/Monitors.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-05-28 17:40:57 +0200
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-05-28 17:40:57 +0200
commit7d442d48514e62a41e5bad0176adb8428dd112b3 (patch)
tree6e327af07b01a1e089e5d495bb697d4c4578a1da /src/events/Monitors.cpp
parent8c10857f14e6c91f3b3099b9508e1f4d68c2d276 (diff)
Added rendertime no overlay
Diffstat (limited to 'src/events/Monitors.cpp')
-rw-r--r--src/events/Monitors.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/events/Monitors.cpp b/src/events/Monitors.cpp
index c8f330d7..0ef780d9 100644
--- a/src/events/Monitors.cpp
+++ b/src/events/Monitors.cpp
@@ -132,6 +132,8 @@ void Events::listener_monitorFrame(void* owner, void* data) {
SMonitor* const PMONITOR = (SMonitor*)owner;
static std::chrono::high_resolution_clock::time_point startRender = std::chrono::high_resolution_clock::now();
+ static std::chrono::high_resolution_clock::time_point startRenderOverlay = std::chrono::high_resolution_clock::now();
+ static std::chrono::high_resolution_clock::time_point endRenderOverlay = std::chrono::high_resolution_clock::now();
if (g_pConfigManager->getInt("debug:overlay") == 1) {
startRender = std::chrono::high_resolution_clock::now();
@@ -225,8 +227,11 @@ void Events::listener_monitorFrame(void* owner, void* data) {
g_pHyprError->draw();
// for drawing the debug overlay
- if (PMONITOR->ID == 0 && g_pConfigManager->getInt("debug:overlay") == 1)
+ if (PMONITOR->ID == 0 && g_pConfigManager->getInt("debug:overlay") == 1) {
+ startRenderOverlay = std::chrono::high_resolution_clock::now();
g_pDebugOverlay->draw();
+ endRenderOverlay = std::chrono::high_resolution_clock::now();
+ }
wlr_renderer_begin(g_pCompositor->m_sWLRRenderer, PMONITOR->vecPixelSize.x, PMONITOR->vecPixelSize.y);
@@ -254,8 +259,16 @@ void Events::listener_monitorFrame(void* owner, void* data) {
wlr_output_schedule_frame(PMONITOR->output);
- if (g_pConfigManager->getInt("debug:overlay") == 1)
- g_pDebugOverlay->renderData(PMONITOR, std::chrono::duration_cast<std::chrono::nanoseconds>(std::chrono::high_resolution_clock::now() - startRender).count() / 1000.f);
+ if (g_pConfigManager->getInt("debug:overlay") == 1) {
+ const float µs = std::chrono::duration_cast<std::chrono::nanoseconds>(std::chrono::high_resolution_clock::now() - startRender).count() / 1000.f;
+ g_pDebugOverlay->renderData(PMONITOR, µs);
+ if (PMONITOR->ID == 0) {
+ const float µsNoOverlay = µs - std::chrono::duration_cast<std::chrono::nanoseconds>(endRenderOverlay - startRenderOverlay).count() / 1000.f;
+ g_pDebugOverlay->renderDataNoOverlay(PMONITOR, µsNoOverlay);
+ } else {
+ g_pDebugOverlay->renderDataNoOverlay(PMONITOR, µs);
+ }
+ }
}
void Events::listener_monitorDestroy(void* owner, void* data) {