57a0313779 
								
							
								 
							
						 
						
							
							
								
								wlr_scene: Don't recompute node location during rendering  
							
							... 
							
							
 
							
							We already compute it during the render list creation, we should cache
it and re-use the value. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								48f2a7a3a1 
								
							
								 
							
						 
						
							
							
								
								wlr_scene: Simplify direct scanout handling  
							
							... 
							
							
 
							
							By adding a sent_feedback bool into the list entry that we can mutate
we no longer need to maintain this `sent_direct_scanout_feedback` variable.
sent_feedback will also be useful for output layers. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								9613b3bc8a 
								
							
								 
							
						 
						
							
							
								
								wlr_scene: Wrap render_list nodes in struct  
							
							... 
							
							
 
							
							We will be able to add more state here 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								53b07b5b72 
								
							
								 
							
						 
						
							
							
								
								cursor: set image for new outputs  
							
							... 
							
							
 
							
							When an output is added to wlr_cursor, update its cursor image.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/2119  
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								d5581e42d4 
								
							
								 
							
						 
						
							
							
								
								cursor: add cursor_update_outputs()  
							
							... 
							
							
 
							
							Sets the cursor image for each output depending on the wlr_cursor
state. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								d1d6cd9008 
								
							
								 
							
						 
						
							
							
								
								cursor: keep track of XCursor manager and name  
							
							... 
							
							
 
							
							Will be useful to apply the current cursor to new outputs. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								69c44de22f 
								
							
								 
							
						 
						
							
							
								
								cursor: track surface globally, instead of per-output  
							
							... 
							
							
 
							
							Most of the surface-related state does not need to be per-output.
Move it to wlr_cursor_state. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								c46fabe45c 
								
							
								 
							
						 
						
							
							
								
								cursor: use wlr_cursor_unset_image() in wlr_cursor_set_surface()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								f0b8a68654 
								
							
								 
							
						 
						
							
							
								
								cursor: store wlr_cursor inline in wlr_cursor_state  
							
							... 
							
							
 
							
							Removes one allocation, makes this a bit more consistent with the
rest of wlroots. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								8243399385 
								
							
								 
							
						 
						
							
							
								
								output: Set output mode during main commit  
							
							... 
							
							
 
							
							Removes duplication across all the backends to finally apply the mode
to the output. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								ea3c6fde3a 
								
							
								 
							
						 
						
							
							
								
								wlr_scene: Add opaque region blend mode optimization  
							
							... 
							
							
 
							
							If we are only rendering within a region of the surface that is
advertised as opaque, we can choose no blending 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								71b57b8d27 
								
							
								 
							
						 
						
							
							
								
								fullscreen-shell: set surface role  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								be05097968 
								
							
								 
							
						 
						
							
							
								
								output: add wlr_output_state_init()  
							
							... 
							
							
 
							
							This changes the semantics of wlr_output_state. Instead of having
fields with uninitialized memory when missing from the committed
bitflag, all fields are always initialized (and maybe NULL/empty),
just like we do in wlr_surface_state. This reduces the chances of
footguns when reading a field, and removes the need to check for
the committed bitfield everywhere.
A new wlr_output_state_init() function takes care of initializing
the Pixman region. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								8a5b5e6f28 
								
							
								 
							
						 
						
							
							
								
								compositor: listen to role_resource destroy signal  
							
							... 
							
							
 
							
							Call wlr_surface_destroy_role_object() when the role_resource is
destroyed. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								89cb484220 
								
							
								 
							
						 
						
							
							
								
								compositor: replace role_data with role_resource  
							
							... 
							
							
 
							
							This increases type safety, makes it more obvious that role_data
must represent the role object, and will allow for automatic
cleanup when the resource is destroyed. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								00f1870d35 
								
							
								 
							
						 
						
							
							
								
								input-method-v2: add popup_surface_from_resource()  
							
							... 
							
							
 
							
							This checks the resource type before casting its user data pointer. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								fc9b58e84d 
								
							
								 
							
						 
						
							
							
								
								compositor: don't call role unmap hook without an object  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								0f67580aab 
								
							
								 
							
						 
						
							
							
								
								compositor: introduce wlr_surface_set_role_object()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								0040c78c0b 
								
							
								 
							
						 
						
							
							
								
								compositor: fix wlr_surface_set_role() error messages  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								d59749aa44 
								
							
								 
							
						 
						
							
							
								
								cursor: add support for animated XCursor  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								6dd8b092e9 
								
							
								 
							
						 
						
							
							
								
								output/swapchain: fix error return value types  
							
							... 
							
							
 
							
							This function returns a bool, not a pointer. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								b5eaa47049 
								
							
								 
							
						 
						
							
							
								
								scene: Use wlr_output_state_copy for direct scanout path  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								4b7c526578 
								
							
								 
							
						 
						
							
							
								
								output: Introduce wlr_output_state_copy()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								1e68e1f661 
								
							
								 
							
						 
						
							
							
								
								seat: fix keyboard/pointer/touch resource destroy  
							
							... 
							
							
 
							
							We need to always unlink the resource, even if it's already inert.
seat_client_destroy_*() may be called multiple times on the same
resource.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3638  
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								c4d4409deb 
								
							
								 
							
						 
						
							
							
								
								output: stop using wlr_output.back_buffer in output_ensure_buffer()  
							
							... 
							
							
 
							
							This allows us to use the new render pass API, and drops some
implicit state usage. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								b625a13156 
								
							
								 
							
						 
						
							
							
								
								output: attach buffer to state in output_ensure_buffer()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								2ac31fc630 
								
							
								 
							
						 
						
							
							
								
								wlr_scene: Introduce wlr_scene_buffer_set_filter_mode  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								64c0272f81 
								
							
								 
							
						 
						
							
							
								
								output_state: Gamma lut should be freed only if committed  
							
							... 
							
							
 
							
							We consider state that is not committed to be uninitialized. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								220402b717 
								
							
								 
							
						 
						
							
							
								
								cursor: add wlr_cursor_unset_image()  
							
							... 
							
							
 
							
							It's pretty awkward to call wlr_cursor_set_image() with 6 zeroes.
Hide that awkwardness in wlroots. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								da04b066ea 
								
							
								 
							
						 
						
							
							
								
								cursor: add wlr_cursor_set_xcursor()  
							
							... 
							
							
 
							
							This keeps track of the last set XCursor. If it hasn't changed,
skip the texture upload.
In the future, support for animated XCursors can be added.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3436  
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								58a2f8bd5c 
								
							
								 
							
						 
						
							
							
								
								wlr_scene: Clear damage ring on transform change  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								61667404ce 
								
							
								 
							
						 
						
							
							
								
								wlr_scene: Clear damage ring on scale change  
							
							... 
							
							
 
							
							If we were trying to change the scale in wlr_scene_output_build_state,
we would be using incorrect damage 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								96b95bf775 
								
							
								 
							
						 
						
							
							
								
								wlr_scene: Reset damage ring bounds every frame  
							
							... 
							
							
 
							
							This fixes damage issues when a output state attempts to change
the transformed size in some way 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								4391845910 
								
							
								 
							
						 
						
							
							
								
								wlr_damage_ring_set_bounds: Ignore duplicate size requests  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								3896b6b107 
								
							
								 
							
						 
						
							
							
								
								wlr_scene: Fix transforms with non 1 scale  
							
							... 
							
							
 
							
							wlr_region_transform / wlr_box_transform want unscaled coordinates here 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								753f3cc4fa 
								
							
								 
							
						 
						
							
							
								
								compositor: add wlr_surface_role.no_object  
							
							... 
							
							
 
							
							This commit allows to make a role as not represented by an object,
which fixes calling role commit handlers for roles like cursor
surfaces.
Fixes: 099b9de752 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								670915eeea 
								
							
								 
							
						 
						
							
							
								
								output: add wlr_output_state_set_layers()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								0925a500d1 
								
							
								 
							
						 
						
							
							
								
								wlr_scene: Don't use direct scanout if trying to commit a new render_format  
							
							... 
							
							
 
							
							Found by inspection. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								a09bb1314d 
								
							
								 
							
						 
						
							
							
								
								wlr_output_state: Consider gamma_lut uninitialized if not committed  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								b80e67d6e6 
								
							
								 
							
						 
						
							
							
								
								wlr_output_state: Consider buffer uninitialized if not committed  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								6e8fb5509f 
								
							
								 
							
						 
						
							
							
								
								cursor: only reset the cursor when the surface changes  
							
							... 
							
							
 
							
							If the set_cursor request is used with the same surface, don't call
cursor_output_cursor_reset_image(). That function sends
wl_surface.leave and can cause an infinite feedback loop with some
clients (submitting a LoDPI cursor when the surface leaves an HiDPI
output).
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3669  
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								05dd08afe5 
								
							
								 
							
						 
						
							
							
								
								scene: introduce wlr_scene_output_build_state()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								7e67b8152b 
								
							
								 
							
						 
						
							
							
								
								scene: Don't rely on output current state during rendering  
							
							... 
							
							
 
							
							In the next commit, state such as scale, transform, width/height that
we gather from the output might be outdated and incorrect. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								ae7bad86dd 
								
							
								 
							
						 
						
							
							
								
								output: introduce wlr_output_state_set_damage()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								36376e2ddf 
								
							
								 
							
						 
						
							
							
								
								gamma-control-v1: stop applying gamma LUTs implicitly  
							
							... 
							
							
 
							
							Make the compositor responsible for doing that, so that they can
properly integrate with their output commit sequence. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								ec9b79ef19 
								
							
								 
							
						 
						
							
							
								
								gamma-control-v1: add wlr_gamma_control_v1_send_failed_and_destroy()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								026fc6eda0 
								
							
								 
							
						 
						
							
							
								
								gamma-control-v1: add wlr_gamma_control_v1_apply()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								5d5cf34486 
								
							
								 
							
						 
						
							
							
								
								output: add wlr_output_state_set_gamma_lut()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								6e635d2fd3 
								
							
								 
							
						 
						
							
							
								
								gamma-control-v1: add wlr_gamma_control_manager_v1_get_control()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								70c1a57248 
								
							
								 
							
						 
						
							
							
								
								gamma-control-v1: introduce set_gamma event  
							
							
 
							
						 
						
							2 years ago