From 140bc1947623f2e3a89e3b22e18db4eba2ffce4d Mon Sep 17 00:00:00 2001 From: emersion Date: Mon, 26 Mar 2018 17:34:46 -0400 Subject: [PATCH] rootston: add -D flag to enable damage tracking debugging --- include/rootston/config.h | 2 ++ rootston/config.c | 9 +++++++-- rootston/output.c | 5 +++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/include/rootston/config.h b/include/rootston/config.h index 9926d9c2..0a67ac1e 100644 --- a/include/rootston/config.h +++ b/include/rootston/config.h @@ -66,8 +66,10 @@ struct roots_config { struct wl_list bindings; struct wl_list keyboards; struct wl_list cursors; + char *config_path; char *startup_cmd; + bool debug_damage_tracking; }; /** diff --git a/rootston/config.c b/rootston/config.c index e63efc0b..0883f6d4 100644 --- a/rootston/config.c +++ b/rootston/config.c @@ -25,7 +25,9 @@ static void usage(const char *name, int ret) { " (default: rootston.ini).\n" " See `rootston.ini.example` for config\n" " file documentation.\n" - " -E Command that will be ran at startup.\n" , name); + " -E Command that will be ran at startup.\n" + " -D Enable damage tracking debugging.\n", + name); exit(ret); } @@ -394,7 +396,7 @@ struct roots_config *roots_config_create_from_args(int argc, char *argv[]) { wl_list_init(&config->bindings); int c; - while ((c = getopt(argc, argv, "C:E:h")) != -1) { + while ((c = getopt(argc, argv, "C:E:hD")) != -1) { switch (c) { case 'C': config->config_path = strdup(optarg); @@ -402,6 +404,9 @@ struct roots_config *roots_config_create_from_args(int argc, char *argv[]) { case 'E': config->startup_cmd = strdup(optarg); break; + case 'D': + config->debug_damage_tracking = true; + break; case 'h': case '?': usage(argv[0], c != 'h'); diff --git a/rootston/output.c b/rootston/output.c index c4e5cc7c..7de85ffb 100644 --- a/rootston/output.c +++ b/rootston/output.c @@ -486,8 +486,9 @@ static void render_output(struct roots_output *output) { goto renderer_end; } - // Uncomment this line to debug damage tracking - //wlr_renderer_clear(renderer, (float[]){1, 1, 0, 0}); + if (server->config->debug_damage_tracking) { + wlr_renderer_clear(renderer, (float[]){1, 1, 0, 0}); + } int nrects; pixman_box32_t *rects = pixman_region32_rectangles(&damage, &nrects);