From 8c10857f14e6c91f3b3099b9508e1f4d68c2d276 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Sat, 28 May 2022 17:32:19 +0200 Subject: Added a debug overlay --- src/debug/HyprDebugOverlay.hpp | 44 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/debug/HyprDebugOverlay.hpp (limited to 'src/debug/HyprDebugOverlay.hpp') diff --git a/src/debug/HyprDebugOverlay.hpp b/src/debug/HyprDebugOverlay.hpp new file mode 100644 index 00000000..aa476bf7 --- /dev/null +++ b/src/debug/HyprDebugOverlay.hpp @@ -0,0 +1,44 @@ +#pragma once + +#include "../defines.hpp" +#include "../helpers/Monitor.hpp" +#include "../render/Texture.hpp" +#include +#include +#include + +class CHyprMonitorDebugOverlay { +public: + int draw(int offset); + + void renderData(SMonitor* pMonitor, float µs); + void frameData(SMonitor* pMonitor); + +private: + std::deque m_dLastFrametimes; + std::deque m_dLastRenderTimes; + std::chrono::high_resolution_clock::time_point m_tpLastFrame; + SMonitor* m_pMonitor = nullptr; + wlr_box m_wbLastDrawnBox; +}; + +class CHyprDebugOverlay { +public: + + void draw(); + void renderData(SMonitor*, float µs); + void frameData(SMonitor*); + +private: + + std::unordered_map m_mMonitorOverlays; + + cairo_surface_t* m_pCairoSurface = nullptr; + cairo_t* m_pCairo = nullptr; + + CTexture m_tTexture; + + friend class CHyprMonitorDebugOverlay; +}; + +inline std::unique_ptr g_pDebugOverlay; \ No newline at end of file -- cgit v1.2.3