rootston: add -D flag to enable damage tracking debugging

This commit is contained in:
emersion 2018-03-26 17:34:46 -04:00
parent 4555fc8a54
commit 140bc19476
No known key found for this signature in database
GPG Key ID: 0FDE7BE0E88F5E48
3 changed files with 12 additions and 4 deletions

View File

@ -66,8 +66,10 @@ struct roots_config {
struct wl_list bindings; struct wl_list bindings;
struct wl_list keyboards; struct wl_list keyboards;
struct wl_list cursors; struct wl_list cursors;
char *config_path; char *config_path;
char *startup_cmd; char *startup_cmd;
bool debug_damage_tracking;
}; };
/** /**

View File

@ -25,7 +25,9 @@ static void usage(const char *name, int ret) {
" (default: rootston.ini).\n" " (default: rootston.ini).\n"
" See `rootston.ini.example` for config\n" " See `rootston.ini.example` for config\n"
" file documentation.\n" " file documentation.\n"
" -E <COMMAND> Command that will be ran at startup.\n" , name); " -E <COMMAND> Command that will be ran at startup.\n"
" -D Enable damage tracking debugging.\n",
name);
exit(ret); exit(ret);
} }
@ -394,7 +396,7 @@ struct roots_config *roots_config_create_from_args(int argc, char *argv[]) {
wl_list_init(&config->bindings); wl_list_init(&config->bindings);
int c; int c;
while ((c = getopt(argc, argv, "C:E:h")) != -1) { while ((c = getopt(argc, argv, "C:E:hD")) != -1) {
switch (c) { switch (c) {
case 'C': case 'C':
config->config_path = strdup(optarg); config->config_path = strdup(optarg);
@ -402,6 +404,9 @@ struct roots_config *roots_config_create_from_args(int argc, char *argv[]) {
case 'E': case 'E':
config->startup_cmd = strdup(optarg); config->startup_cmd = strdup(optarg);
break; break;
case 'D':
config->debug_damage_tracking = true;
break;
case 'h': case 'h':
case '?': case '?':
usage(argv[0], c != 'h'); usage(argv[0], c != 'h');

View File

@ -486,8 +486,9 @@ static void render_output(struct roots_output *output) {
goto renderer_end; goto renderer_end;
} }
// Uncomment this line to debug damage tracking if (server->config->debug_damage_tracking) {
//wlr_renderer_clear(renderer, (float[]){1, 1, 0, 0}); wlr_renderer_clear(renderer, (float[]){1, 1, 0, 0});
}
int nrects; int nrects;
pixman_box32_t *rects = pixman_region32_rectangles(&damage, &nrects); pixman_box32_t *rects = pixman_region32_rectangles(&damage, &nrects);