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  
				
					
						
							
							
								 
						
							
							
								63f3802e0f 
								
							
								 
							
						 
						
							
							
								
								subcompositor: set role_data with wlr_surface_set_role()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								24a479a501 
								
							
								 
							
						 
						
							
							
								
								drag: don't set icon's role_data  
							
							... 
							
							
 
							
							Currently, an icon surface's role_data is set manually to a struct
wlr_drag_icon, which is hacky, incorrect (as role_data is supposed
to be the surface's role object, and drag icons don't have them), and
will be disallowed by future changes. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								31d958f70a 
								
							
								 
							
						 
						
							
							
								
								cursor: fix applying hotspot offset  
							
							... 
							
							
 
							
							"On surface.attach requests to the pointer surface, hotspot_x and
hotspot_y are _decremented_ by the x and y parameters passed to the
request." 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								544c0622fa 
								
							
								 
							
						 
						
							
							
								
								presentation-time: constify wlr_presentation_feedback_send_presented()  
							
							... 
							
							
 
							
							We don't need to mutate the event in this function. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								25a62a3775 
								
							
								 
							
						 
						
							
							
								
								subcompositor: simplify subsurface_consider_map(), call on add  
							
							... 
							
							
 
							
							Fixes: 49e9be62ae 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								2acc74a3db 
								
							
								 
							
						 
						
							
							
								
								Clear input regions if they're ignored  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								9f28366b55 
								
							
								 
							
						 
						
							
							
								
								wlr_tablet_v2_tool: Tablet tool surfaces are always mapped  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								d700bd2d7c 
								
							
								 
							
						 
						
							
							
								
								wlr_seat_pointer: cursor surfaces are always mapped  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								9e8947e4d5 
								
							
								 
							
						 
						
							
							
								
								add render timer API  
							
							... 
							
							
 
							
							Based on five calls:
wlr_render_timer_create - creates a timer which can be reused across
  frames on the same renderer
wlr_renderer_begin_buffer_pass - now takes a timer so that backends can
  record when the rendering starts and finishes
wlr_render_timer_get_time - should be called as late as possible so that
  queries can make their way back from the GPU
wlr_render_timer_destroy - self-explanatory
The timer is exposed as an opaque `struct wlr_render_timer` so that
backends can store whatever they want in there. 
							
						 
						
							2 years ago