From 8591d20e618c975d97e8eb09f691d109b846a6bd Mon Sep 17 00:00:00 2001 From: zhenyan121 <3367366583@qq.com> Date: Fri, 17 Jul 2026 13:39:25 +0800 Subject: [PATCH] refactor(debug): add d_rep template and remove widget ID --- include/Cubed/debug_collector.hpp | 8 +++++ include/Cubed/tools/system_info.hpp | 30 ++++++++++++++++ include/Cubed/ui/label.hpp | 1 - include/Cubed/ui/widget.hpp | 3 -- src/app.cpp | 12 +++---- src/debug_collector.cpp | 56 ++++++++++++++++------------- src/gameplay/client_player.cpp | 12 +++---- src/render/renderer.cpp | 2 +- src/render/world_renderer.cpp | 3 +- src/ui/image.cpp | 4 +-- src/ui/label.cpp | 1 - src/ui/widget.cpp | 3 -- 12 files changed, 81 insertions(+), 54 deletions(-) diff --git a/include/Cubed/debug_collector.hpp b/include/Cubed/debug_collector.hpp index 5aeaca7..4de3f8a 100644 --- a/include/Cubed/debug_collector.hpp +++ b/include/Cubed/debug_collector.hpp @@ -4,6 +4,7 @@ #include "Cubed/ui/label.hpp" #include "Cubed/ui/widget.hpp" +#include #include namespace Cubed { @@ -23,4 +24,11 @@ private: std::unordered_map m_component; }; +template +void d_rep(const std::string& key, std::format_string fmt, + Args&&... args) { + std::string msg = std::vformat(fmt.get(), std::make_format_args(args...)); + DebugCollector::get().report(key, msg); +} + } // namespace Cubed \ No newline at end of file diff --git a/include/Cubed/tools/system_info.hpp b/include/Cubed/tools/system_info.hpp index 851cba2..3ba44dc 100644 --- a/include/Cubed/tools/system_info.hpp +++ b/include/Cubed/tools/system_info.hpp @@ -157,6 +157,36 @@ inline std::string get_cpu_info() { #endif } +inline std::string get_compiler_info() { + std::string result; + +#if defined(__clang__) + result = "Clang "; + result += __clang_version__; + +#elif defined(__GNUC__) + result = "GCC "; + result += std::to_string(__GNUC__); + result += "."; + result += std::to_string(__GNUC_MINOR__); + result += "."; + result += std::to_string(__GNUC_PATCHLEVEL__); + +#elif defined(_MSC_VER) + result = "MSVC "; + result += std::to_string(_MSC_VER); + +#else + result = "Unknown Compiler"; +#endif + + result += " (C++"; + result += std::to_string(__cplusplus); + result += ")"; + + return result; +} + } // namespace Tools } // namespace Cubed diff --git a/include/Cubed/ui/label.hpp b/include/Cubed/ui/label.hpp index b88e96d..734fa8f 100644 --- a/include/Cubed/ui/label.hpp +++ b/include/Cubed/ui/label.hpp @@ -10,7 +10,6 @@ public: Label& operator=(const Label&) = delete; Label& operator=(Label&&) = delete; - Label(const std::string& id, Widget* parent); Label(Widget* parent); virtual ~Label() = default; diff --git a/include/Cubed/ui/widget.hpp b/include/Cubed/ui/widget.hpp index 21ad6b8..980301b 100644 --- a/include/Cubed/ui/widget.hpp +++ b/include/Cubed/ui/widget.hpp @@ -25,12 +25,10 @@ public: Widget& operator=(const Widget&) = delete; Widget& operator=(Widget&&) = delete; - Widget(const std::string& id, Widget* parent); Widget(Widget* parent); virtual ~Widget() = default; virtual void update(float dt); virtual void render(Renderer& renderer); - virtual const std::string& id() const; virtual Widget& set_anchor(Anchor anchor); virtual Widget& set_offset(glm::ivec2 offset); virtual Widget& set_window_size(int width, int height); @@ -58,7 +56,6 @@ public: protected: Widget* m_parent = nullptr; - std::string m_id; float m_window_height = 0; float m_window_width = 0; // Center is at the top-left corner, position is at the top-left corner diff --git a/src/app.cpp b/src/app.cpp index 455b55e..c8ffc10 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -561,16 +561,15 @@ void App::handle_window_focus(bool focused) { void App::handle_window_resize(int width, int height) { dispatch_event(WindowResizeEvent{width, height}); - + d_rep("window_size", "Window W: {} H: {}", width, height); Logger::info("Window Reshape W: {} H: {}", width, height); } void App::handle_framebuffer_resize(int width, int height) { dispatch_event(FrameBufferResizeEvent{width, height}); - + d_rep("frame_buffer", "FrameBuffer W: {} H: {}", width, height); Logger::info("Frame Buffer Reshape W: {} H: {}", width, height); } void App::handle_mouse_scroll(float, float yoffset) { - dispatch_event(MouseWheelEvent(yoffset)); } @@ -618,11 +617,8 @@ void App::update() { frame_count = 0; fps_time_count = 0.0f; - DebugCollector::get().report( - "fps", std::string{"FPS: " + std::to_string(fps)}); - DebugCollector::get().report( - "rss", - std::format("RSS: {}mb", Tools::get_current_rss() / (1024 * 1024))); + d_rep("fps", "FPS: {}", fps); + d_rep("rss", "RSS: {}mb", Tools::get_current_rss() / (1024 * 1024)); } m_texture_manager.update(); diff --git a/src/debug_collector.cpp b/src/debug_collector.cpp index f8f58ef..5dba3da 100644 --- a/src/debug_collector.cpp +++ b/src/debug_collector.cpp @@ -21,7 +21,7 @@ void DebugCollector::init(int width, int height) { m_widget.set_offset({0, 5}); m_widget.set_child_anchor(ColumnLayoutAnchor::LEFT); // version_text - auto& version_text = m_widget.add_child