mirror of
				https://github.com/swaywm/sway.git
				synced 2025-11-03 09:01:43 -05:00 
			
		
		
		
	Use enum for damage debug options
This commit is contained in:
		
							parent
							
								
									8d1dd03823
								
							
						
					
					
						commit
						f9563d88f3
					
				
					 4 changed files with 14 additions and 12 deletions
				
			
		| 
						 | 
					@ -3,12 +3,16 @@
 | 
				
			||||||
#include <stdbool.h>
 | 
					#include <stdbool.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct sway_debug {
 | 
					struct sway_debug {
 | 
				
			||||||
	bool highlight_damage; // Highlight regions of the screen being damaged
 | 
					 | 
				
			||||||
	bool noatomic;         // Ignore atomic layout updates
 | 
						bool noatomic;         // Ignore atomic layout updates
 | 
				
			||||||
	bool nodamage;         // Render the full output on each frame
 | 
					 | 
				
			||||||
	bool render_tree;      // Render the tree overlay
 | 
						bool render_tree;      // Render the tree overlay
 | 
				
			||||||
	bool txn_timings;      // Log verbose messages about transactions
 | 
						bool txn_timings;      // Log verbose messages about transactions
 | 
				
			||||||
	bool txn_wait;         // Always wait for the timeout before applying
 | 
						bool txn_wait;         // Always wait for the timeout before applying
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						enum {
 | 
				
			||||||
 | 
							DAMAGE_DEFAULT,    // Default behaviour
 | 
				
			||||||
 | 
							DAMAGE_HIGHLIGHT,  // Highlight regions of the screen being damaged
 | 
				
			||||||
 | 
							DAMAGE_RERENDER,   // Render the full output when any damage occurs
 | 
				
			||||||
 | 
						} damage;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern struct sway_debug debug;
 | 
					extern struct sway_debug debug;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -834,9 +834,9 @@ void output_render(struct sway_output *output, struct timespec *when,
 | 
				
			||||||
		goto renderer_end;
 | 
							goto renderer_end;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (debug.highlight_damage) {
 | 
						if (debug.damage == DAMAGE_HIGHLIGHT) {
 | 
				
			||||||
		wlr_renderer_clear(renderer, (float[]){1, 1, 0, 1});
 | 
							wlr_renderer_clear(renderer, (float[]){1, 1, 0, 1});
 | 
				
			||||||
	} else if (debug.nodamage) {
 | 
						} else if (debug.damage == DAMAGE_RERENDER) {
 | 
				
			||||||
		int width, height;
 | 
							int width, height;
 | 
				
			||||||
		wlr_output_transformed_resolution(wlr_output, &width, &height);
 | 
							wlr_output_transformed_resolution(wlr_output, &width, &height);
 | 
				
			||||||
		pixman_region32_union_rect(damage, damage, 0, 0, width, height);
 | 
							pixman_region32_union_rect(damage, damage, 0, 0, width, height);
 | 
				
			||||||
| 
						 | 
					@ -918,7 +918,7 @@ renderer_end:
 | 
				
			||||||
		wlr_render_texture(renderer, root_container.sway_root->debug_tree,
 | 
							wlr_render_texture(renderer, root_container.sway_root->debug_tree,
 | 
				
			||||||
			wlr_output->transform_matrix, 0, 40, 1);
 | 
								wlr_output->transform_matrix, 0, 40, 1);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (debug.highlight_damage) {
 | 
						if (debug.damage == DAMAGE_HIGHLIGHT) {
 | 
				
			||||||
		int width, height;
 | 
							int width, height;
 | 
				
			||||||
		wlr_output_transformed_resolution(wlr_output, &width, &height);
 | 
							wlr_output_transformed_resolution(wlr_output, &width, &height);
 | 
				
			||||||
		pixman_region32_union_rect(damage, damage, 0, 0, width, height);
 | 
							pixman_region32_union_rect(damage, damage, 0, 0, width, height);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -345,9 +345,7 @@ static void set_instruction_ready(
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	instruction->container->instruction = NULL;
 | 
						instruction->container->instruction = NULL;
 | 
				
			||||||
	if (!txn_debug) {
 | 
						transaction_progress_queue();
 | 
				
			||||||
		transaction_progress_queue();
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void transaction_notify_view_ready_by_serial(struct sway_view *view,
 | 
					void transaction_notify_view_ready_by_serial(struct sway_view *view,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -235,12 +235,12 @@ static void drop_permissions(bool keep_caps) {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void enable_debug_flag(const char *flag) {
 | 
					void enable_debug_flag(const char *flag) {
 | 
				
			||||||
	if (strcmp(flag, "highlight-damage") == 0) {
 | 
						if (strcmp(flag, "damage=highlight") == 0) {
 | 
				
			||||||
		debug.highlight_damage = true;
 | 
							debug.damage = DAMAGE_HIGHLIGHT;
 | 
				
			||||||
 | 
						} else if (strcmp(flag, "damage=rerender") == 0) {
 | 
				
			||||||
 | 
							debug.damage = DAMAGE_RERENDER;
 | 
				
			||||||
	} else if (strcmp(flag, "noatomic") == 0) {
 | 
						} else if (strcmp(flag, "noatomic") == 0) {
 | 
				
			||||||
		debug.noatomic = true;
 | 
							debug.noatomic = true;
 | 
				
			||||||
	} else if (strcmp(flag, "nodamage") == 0) {
 | 
					 | 
				
			||||||
		debug.nodamage = true;
 | 
					 | 
				
			||||||
	} else if (strcmp(flag, "render-tree") == 0) {
 | 
						} else if (strcmp(flag, "render-tree") == 0) {
 | 
				
			||||||
		debug.render_tree = true;
 | 
							debug.render_tree = true;
 | 
				
			||||||
	} else if (strcmp(flag, "txn-wait") == 0) {
 | 
						} else if (strcmp(flag, "txn-wait") == 0) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue