wlroots/types
Alexander Orzechowski e20c0290c1 wlr_compositor: Introduce wlr_surface_consume
If the compositor is running without a renderer, that means that
the compositor must be driven by something external that may or may not
be there. So we have two scenarios:
1. This compositor is currently being watched and driven by some
external source that is consuming buffers. This is okay, because
during the commit handler `surface->current.buffer` and
`surface->buffer_damage` will be usable and things will be handled
like normal.
2. Things break however if the compositor is not currently driven. This
however is commonly temporary. Something may not be interested right now,
but later it can be. In this case we have to accumulate state until
this external consumer is ready. Here, we have to accumulate the
`buffer_damage` and keep the buffer locked until the consumer is ready.

`wlr_surface_consume` needs to be called when the state of this surface
was consumed so that it is safe to release these resources.
2024-10-13 11:48:12 -04:00
..
buffer wlr_buffer: Introduce prerelease 2024-10-13 11:48:12 -04:00
data_device seat: add serials to touch up events 2024-04-18 14:34:51 +00:00
output output: Change wlr_output_add_software_cursors_to_render_pass to take buffer coordinates 2024-10-12 07:30:11 +00:00
scene wlr_scene: Remove usage of wlr_client_buffer 2024-10-13 11:48:12 -04:00
seat seat/pointer: reset pressed buttons on "grab-compatible" focus change 2024-08-14 22:43:44 +03:00
tablet_v2 wlr_surface: fix argument order consistency 2024-07-13 19:56:58 +00:00
xdg_shell xdg-shell: add wlr_xdg_toplevel_configure() 2024-08-20 09:15:39 +00:00
meson.build wlr_raster: Introduce new abstraction 2024-10-13 11:48:12 -04: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 wlr_compositor: Introduce wlr_surface_consume 2024-10-13 11:48:12 -04:00
wlr_content_type_v1.c content-type-v1: use wlr_surface_synced 2023-12-25 11:47:15 +01:00
wlr_cursor.c wlr_cursor_set_surface: Use wlr_raster to generate texture from surface 2024-10-13 11:48:12 -04:00
wlr_cursor_shape_v1.c cursor-shape-v1: expose tablet tool in event 2024-03-05 11:20:05 +01: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.c render: drop wlr_renderer_get_dmabuf_texture_formats() 2024-04-21 11:27:29 +00: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_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.c keyboard: add utilities for pointer keys 2024-10-07 18:41:07 +00:00
wlr_keyboard_group.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_keyboard_shortcuts_inhibit_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_layer_shell_v1.c layer-shell: introduce wlr_layer_surface_v1_get_exclusive_edge() 2024-08-18 01:02:08 +00:00
wlr_linux_dmabuf_v1.c linux-dmabuf-v1: use static_assert 2024-09-24 19:56:36 +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 output-management-v1: add wlr_output_configuration_v1_build_state() 2024-03-14 22:03:10 +00:00
wlr_output_power_management_v1.c output-power-management: send zwlr_output_power_v1.failed on output destroy 2024-08-01 15:24:20 +03:00
wlr_output_swapchain_manager.c swapchain, damage_ring: Drop buffer age 2024-08-21 09:45:54 -04:00
wlr_pointer.c pointer: release pressed buttons on destroy 2024-09-24 19:53:54 +00: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_presentation_time.c types/wlr_output: removing the useless pointer 2024-08-21 14:04:24 +00:00
wlr_primary_selection.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_primary_selection_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_raster.c wlr_raster: Add backwards compatibility with wlr_client_buffer 2024-10-13 11:48:12 -04: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