wlroots/types
Simon Ser 9e71c88467 scene: unwrap wlr_client_buffer for direct scan-out
Passing the wlr_client_buffer directly has a downsides because a
fresh wlr_buffer pointer is passed each output commit instead of
cycling through existing wlr_buffer objects:

- The FDs are re-imported each time in the backend.
- Any import failure is logged every output commit [1].
- The Wayland backend cannot handle import failures without
  roundtripping each output commit [2].

Instead, extract the source buffer from the wlr_client_buffer and
pass that to the backend.

[1]: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4836
[2]: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4841
2024-11-07 14:17:35 +00:00
..
buffer Avoid using wayland-{client,server}.h 2024-04-17 13:37:12 +00:00
data_device seat: add serials to touch up events 2024-04-18 14:34:51 +00:00
output Support direct scanout with src crop and dst boxes 2024-10-22 18:28:09 +01:00
scene scene: unwrap wlr_client_buffer for direct scan-out 2024-11-07 14:17:35 +00:00
seat seat/pointer: reset pressed buttons on "grab-compatible" focus change 2024-08-14 22:43:44 +03:00
tablet_v2 tablet-v2: Event time should be milliseconds 2024-11-07 10:09:36 +01:00
xdg_shell xdg-positioner: use enum_is_valid functions 2024-10-23 18:52:34 +08:00
meson.build meson: fix file order 2024-11-03 08:52:48 +03:00
wlr_alpha_modifier_v1.c alpha-modifier-v1: add a missing NULL check in wlr_alpha_modifier_v1_get_surface_state() 2024-05-01 03:07:16 +03:00
wlr_compositor.c compositor: add surface role map hook 2024-08-14 18:52:13 +00:00
wlr_content_type_v1.c content-type-v1: use wlr_surface_synced 2023-12-25 11:47:15 +01:00
wlr_cursor_shape_v1.c cursor-shape-v1: expose tablet tool in event 2024-03-05 11:20:05 +01:00
wlr_cursor.c cursor: add support for linux-drm-syncobj-v1 2024-08-06 17:37:06 +00:00
wlr_damage_ring.c damage_ring: Remove wlr_damage_ring_set_bounds 2024-10-09 06:31:46 +00:00
wlr_data_control_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_drm_lease_v1.c drm-lease-v1: Free the wlr_drm_lease_v1 on error 2024-02-22 00:41:06 +01:00
wlr_drm.c render: drop wlr_renderer_get_dmabuf_texture_formats() 2024-04-21 11:27:29 +00:00
wlr_export_dmabuf_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_ext_foreign_toplevel_list_v1.c ext-foreign-toplevel-list: add _from_resource() 2024-10-01 18:59:18 +03:00
wlr_foreign_toplevel_management_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_fractional_scale_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_fullscreen_shell_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_gamma_control_v1.c wlr_gamma_control: Store gamma size when creating control 2024-04-01 23:00:48 +02:00
wlr_idle_inhibit_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_idle_notify_v1.c idle-notify: make wl_global public 2024-03-18 08:12:53 +00:00
wlr_input_device.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_input_method_v2.c input-method-v2: set no keymap format if no keymap is set 2024-09-11 15:09:56 +05:30
wlr_keyboard_group.c wlr_keyboard_group: Use get_current_time_msec 2024-11-07 10:22:10 +01:00
wlr_keyboard_shortcuts_inhibit_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_keyboard.c keyboard: add utilities for pointer keys 2024-10-07 18:41:07 +00:00
wlr_layer_shell_v1.c layer-shell-v1: use enum_is_valid functions 2024-11-07 10:20:03 +00:00
wlr_linux_dmabuf_v1.c wlr_linux_dmabuf_v1: use enum_is_valid functions 2024-11-07 10:20:03 +00:00
wlr_linux_drm_syncobj_v1.c linux-drm-syncobj-v1: Skip release if there is no timeline 2024-08-28 18:44:46 +02:00
wlr_matrix.c matrix: remove wlr_matrix_projection() 2022-06-08 19:27:36 +00:00
wlr_output_layer.c output-layer: add feedback event 2023-02-20 18:38:57 +01:00
wlr_output_layout.c output-layout: fix missing global for outputs with a custom mode 2023-12-21 11:28:58 +01:00
wlr_output_management_v1.c wlr_output_management_v1: use enum_is_valid functions 2024-11-07 10:20:03 +00:00
wlr_output_power_management_v1.c output-power-management-v1: use enum_is_valid functions 2024-11-07 10:20:03 +00:00
wlr_output_swapchain_manager.c swapchain, damage_ring: Drop buffer age 2024-08-21 09:45:54 -04:00
wlr_pointer_constraints_v1.c pointer-constraints: don't init/finish current/pending states 2024-08-14 15:41:31 +00:00
wlr_pointer_gestures_v1.c wlr_pointer_gestures_v1: emit destroy signal in destroy function 2024-05-06 10:47:33 +03:00
wlr_pointer.c pointer: release pressed buttons on destroy 2024-09-24 19:53:54 +00:00
wlr_presentation_time.c presentation-time: bump protocol version to v2 2024-10-28 02:58:48 +05:30
wlr_primary_selection_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_primary_selection.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_region.c compositor: deprecate wlr/types/wlr_region.h 2023-11-24 15:09:31 +03:00
wlr_relative_pointer_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_screencopy_v1.c wlr_screencopy_v1: send fine-grained damage events 2024-09-10 20:54:04 +08:00
wlr_security_context_v1.c security-context: constify lookup_client() 2024-03-18 08:18:51 +00:00
wlr_server_decoration.c Drop wl_client and user data assertions in bind handlers 2023-10-10 20:10:00 +03:00
wlr_session_lock_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_shm.c shm: add support for wl_shm version 2 2024-07-07 18:16:45 +02:00
wlr_single_pixel_buffer_v1.c single-pixel-buffer: make wl_global public 2024-03-18 08:12:53 +00:00
wlr_subcompositor.c subcompositor: drop unused subsurface state 2024-10-08 19:18:38 +03:00
wlr_switch.c Use struct initializers instead of memset() 2023-07-07 17:31:11 +02:00
wlr_tablet_pad.c Use struct initializers instead of memset() 2023-07-07 17:31:11 +02:00
wlr_tablet_tool.c input-device: unconfuse tablet naming 2024-02-29 16:09:07 +01:00
wlr_tearing_control_v1.c tearing_control_v1: Free the wlr_tearing_control_v1 on error 2024-09-09 16:16:56 +08:00
wlr_text_input_v3.c types/text-input-v3: assert on invalid _leave() and _enter() calls 2024-03-22 21:34:48 +00:00
wlr_touch.c Use struct initializers instead of memset() 2023-07-07 17:31:11 +02:00
wlr_transient_seat_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_viewporter.c viewporter: fix "has buffer" check 2024-03-24 02:20:18 +00:00
wlr_virtual_keyboard_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_virtual_pointer_v1.c pointer: release pressed buttons on destroy 2024-09-24 19:53:54 +00:00
wlr_xcursor_manager.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_xdg_activation_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_xdg_decoration_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_xdg_foreign_registry.c Use wl_signal_emit_mutable 2022-08-18 07:16:16 -04:00
wlr_xdg_foreign_v1.c xdg-foreign: clean up 2024-08-14 15:56:36 +03:00
wlr_xdg_foreign_v2.c xdg-foreign: clean up 2024-08-14 15:56:36 +03:00
wlr_xdg_output_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_xdg_system_bell_v1.c xdg-system-bell-v1: add implementation 2024-11-03 08:54:10 +03:00