mirror of
				https://gitlab.freedesktop.org/wlroots/wlroots.git
				synced 2025-11-03 09:01:40 -05:00 
			
		
		
		
	output: add wlr_output_set_layers()
This commit is contained in:
		
							parent
							
								
									2f29b0c438
								
							
						
					
					
						commit
						3e0ce761ad
					
				
					 3 changed files with 19 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -434,6 +434,16 @@ uint32_t wlr_output_preferred_read_format(struct wlr_output *output);
 | 
			
		|||
 */
 | 
			
		||||
void wlr_output_set_damage(struct wlr_output *output,
 | 
			
		||||
	const pixman_region32_t *damage);
 | 
			
		||||
/**
 | 
			
		||||
 * Set the output layers state.
 | 
			
		||||
 *
 | 
			
		||||
 * See struct wlr_output_layer for more details on output layers.
 | 
			
		||||
 *
 | 
			
		||||
 * This state is double-buffered, see wlr_output_commit(). The layers array
 | 
			
		||||
 * must remain valid until the wlr_output_test() or wlr_output_commit() call.
 | 
			
		||||
 */
 | 
			
		||||
void wlr_output_set_layers(struct wlr_output *output,
 | 
			
		||||
	struct wlr_output_layer_state *layers, size_t layers_len);
 | 
			
		||||
/**
 | 
			
		||||
 * Test whether the pending output state would be accepted by the backend. If
 | 
			
		||||
 * this function returns true, wlr_output_commit() can only fail due to a
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,7 +21,8 @@
 | 
			
		|||
 *
 | 
			
		||||
 * To configure output layers, callers should call wlr_output_layer_create() to
 | 
			
		||||
 * create layers, attach struct wlr_output_layer_state onto
 | 
			
		||||
 * struct wlr_output_state to describe their new state, and commit the output.
 | 
			
		||||
 * struct wlr_output_state via wlr_output_set_layers() to describe their new
 | 
			
		||||
 * state, and commit the output via wlr_output_commit().
 | 
			
		||||
 *
 | 
			
		||||
 * Backends may have arbitrary limitations when it comes to displaying output
 | 
			
		||||
 * layers. Backends indicate whether or not a layer can be displayed via
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -486,6 +486,13 @@ void wlr_output_set_damage(struct wlr_output *output,
 | 
			
		|||
	output->pending.committed |= WLR_OUTPUT_STATE_DAMAGE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wlr_output_set_layers(struct wlr_output *output,
 | 
			
		||||
		struct wlr_output_layer_state *layers, size_t layers_len) {
 | 
			
		||||
	output->pending.committed |= WLR_OUTPUT_STATE_LAYERS;
 | 
			
		||||
	output->pending.layers = layers;
 | 
			
		||||
	output->pending.layers_len = layers_len;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void output_state_clear_gamma_lut(struct wlr_output_state *state) {
 | 
			
		||||
	free(state->gamma_lut);
 | 
			
		||||
	state->gamma_lut = NULL;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue