render: Don't crash on 0 dimensions
Don't force compositors to check when an empty shape is being renderered. References #2282. This was motivated by dwl crashing when setting window borders to 0 (djpohly/dwl#51).
This commit is contained in:
		
							parent
							
								
									2072d59da5
								
							
						
					
					
						commit
						6949d0fd38
					
				| 
						 | 
					@ -99,6 +99,9 @@ bool wlr_render_subtexture_with_matrix(struct wlr_renderer *r,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void wlr_render_rect(struct wlr_renderer *r, const struct wlr_box *box,
 | 
					void wlr_render_rect(struct wlr_renderer *r, const struct wlr_box *box,
 | 
				
			||||||
		const float color[static 4], const float projection[static 9]) {
 | 
							const float color[static 4], const float projection[static 9]) {
 | 
				
			||||||
 | 
						if (box->width == 0 || box->height == 0) {
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	assert(box->width > 0 && box->height > 0);
 | 
						assert(box->width > 0 && box->height > 0);
 | 
				
			||||||
	float matrix[9];
 | 
						float matrix[9];
 | 
				
			||||||
	wlr_matrix_project_box(matrix, box, WL_OUTPUT_TRANSFORM_NORMAL, 0,
 | 
						wlr_matrix_project_box(matrix, box, WL_OUTPUT_TRANSFORM_NORMAL, 0,
 | 
				
			||||||
| 
						 | 
					@ -115,6 +118,9 @@ void wlr_render_quad_with_matrix(struct wlr_renderer *r,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void wlr_render_ellipse(struct wlr_renderer *r, const struct wlr_box *box,
 | 
					void wlr_render_ellipse(struct wlr_renderer *r, const struct wlr_box *box,
 | 
				
			||||||
		const float color[static 4], const float projection[static 9]) {
 | 
							const float color[static 4], const float projection[static 9]) {
 | 
				
			||||||
 | 
						if (box->width == 0 || box->height == 0) {
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	assert(box->width > 0 && box->height > 0);
 | 
						assert(box->width > 0 && box->height > 0);
 | 
				
			||||||
	float matrix[9];
 | 
						float matrix[9];
 | 
				
			||||||
	wlr_matrix_project_box(matrix, box, WL_OUTPUT_TRANSFORM_NORMAL, 0,
 | 
						wlr_matrix_project_box(matrix, box, WL_OUTPUT_TRANSFORM_NORMAL, 0,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue