From 8259b211ea2f1dec7331016380749a7513f4372d Mon Sep 17 00:00:00 2001 From: zhenyan121 <3367366583@qq.com> Date: Tue, 7 Jul 2026 20:29:01 +0800 Subject: [PATCH] feat(renderer): add --no-debug flag to disable OpenGL debug output --- include/Cubed/app.hpp | 1 + include/Cubed/renderer.hpp | 2 +- src/app.cpp | 8 +++++++- src/renderer.cpp | 22 +++++++++++++--------- 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/include/Cubed/app.hpp b/include/Cubed/app.hpp index e16d02b..e19d209 100644 --- a/include/Cubed/app.hpp +++ b/include/Cubed/app.hpp @@ -18,6 +18,7 @@ public: int port = 25530; std::string ip{"127.0.0.1"}; std::string player{"Unknown"}; + bool debug_on = true; }; App(); diff --git a/include/Cubed/renderer.hpp b/include/Cubed/renderer.hpp index 5604e72..7589d28 100644 --- a/include/Cubed/renderer.hpp +++ b/include/Cubed/renderer.hpp @@ -22,7 +22,7 @@ public: const TextureManager& texture_manager, DevPanel& dev_panel); ~Renderer(); void hot_reload(); - void init(); + void init(bool debug_on); const Shader& get_shader(const std::string& name) const; void render(); void update(float delta_time); diff --git a/src/app.cpp b/src/app.cpp index 26b89df..b1ed66f 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -63,7 +63,7 @@ void App::init(int argc, char** argv) { ChunkGenerator::init(); BlockManager::init(); - m_renderer.init(); + m_renderer.init(m_argument.debug_on); Logger::info("Renderer Init Success"); m_window.update_viewport(); // MapTable::init_map(); @@ -127,6 +127,12 @@ void App::handle_argument(int argc, char** argv) { [&](ArgParser) { std::cout << CUBED_VERSION << "\n"; exit(EXIT_SUCCESS); + }}, + + {"--no-debug", + [&](ArgParser) { + m_argument.debug_on = false; + Logger::info("Switch off opengl debug out put"); }} }; diff --git a/src/renderer.cpp b/src/renderer.cpp index 44b5dd0..b0e1f72 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp @@ -57,7 +57,7 @@ void Renderer::hot_reload() { update_fov(config.get("player.fov")); } -void Renderer::init() { +void Renderer::init(bool debug_on) { if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) { Logger::error("Failed to initialize glad"); exit(EXIT_FAILURE); @@ -118,14 +118,18 @@ void Renderer::init() { glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); #ifdef DEBUG_MODE - glEnable(GL_DEBUG_OUTPUT); - glDebugMessageCallback( - [](GLenum, GLenum, GLuint, GLenum, GLsizei, const GLchar* message, - const void*) { - Logger::log(Logger::Level::L_DEBUG, std::source_location::current(), - "GL Debug: {}", reinterpret_cast(message)); - }, - nullptr); + if (debug_on) { + glEnable(GL_DEBUG_OUTPUT); + glDebugMessageCallback( + [](GLenum, GLenum, GLuint, GLenum, GLsizei, const GLchar* message, + const void*) { + Logger::log(Logger::Level::L_DEBUG, + std::source_location::current(), "GL Debug: {}", + reinterpret_cast(message)); + }, + nullptr); + } + #endif m_vao.resize(NUM_VAO);