wlroots-hyprland/types
Simon Ser 507d9bc19e Add wlr_output_impl.rollback
Most of the pending output state is not forwarded to the backend prior
to an output commit. For instance, wlr_output_set_mode just stashes the
mode without calling any wlr_output_impl function.
wlr_output_impl.commit is responsible for applying the pending mode.

However, there are exceptions to this rule. The first one is
wlr_output_attach_render. It won't go away before renderer v6 is
complete, because it needs to set the current EGL surface.

The second one is wlr_output_attach_buffer.
wlr_output_impl.attach_buffer is removed in [1].

When wlr_output_rollback is called, all pending state is supposed to be
cleared. This works for all the state except the two exceptions
mentionned above. To fix this, introduce wlr_output_impl.rollback.

Right now, the backend resets the current EGL surface. This prevents GL
commands from affecting the output after wlr_output_rollback.

This patch is required for FBO-based outputs to work properly. The
compositor might be using FBOs for its own purposes [2], having leftover
FBO state can have bad consequences.

[1]: https://github.com/swaywm/wlroots/pull/2097
[2]: https://github.com/swaywm/wlroots/pull/2063#issuecomment-597614312
2020-04-08 17:33:00 +02:00
..
data_device Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
seat Send pointer enter/leave on capability change 2020-03-14 00:09:32 +01:00
tablet_v2 Send tablet tool frame on proximity_out 2019-12-18 13:23:07 -05:00
xdg_shell xdg-shell: fix popups rendered outside of the screen 2020-02-26 13:43:53 +01:00
xdg_shell_v6 xdg-shell: fix popups rendered outside of the screen 2020-02-26 13:43:53 +01:00
meson.build keyboard-shortcuts-inhibit: Implement the protocol 2020-02-20 21:40:34 +01:00
wlr_box.c Fix output rotation direction 2020-02-17 21:43:05 +01:00
wlr_buffer.c buffer: add width and height 2020-04-02 15:03:43 +02:00
wlr_compositor.c Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_cursor.c Fix output rotation direction 2020-02-17 21:43:05 +01:00
wlr_data_control_v1.c Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_export_dmabuf_v1.c Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_foreign_toplevel_management_v1.c Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_fullscreen_shell_v1.c Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_gamma_control_v1.c Gracefully handle inert wl_output resources 2020-03-29 20:57:28 +02:00
wlr_gtk_primary_selection.c Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_idle.c Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_idle_inhibit_v1.c idle-inhibit: Style and naming improvements 2020-02-20 21:40:34 +01:00
wlr_input_device.c Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_input_inhibitor.c Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_input_method_v2.c Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_keyboard.c Return false on wlr_keyboard_set_keymap() failure 2020-03-24 00:22:50 +01:00
wlr_keyboard_group.c keyboard-group: two NULL keymaps are equal 2020-01-17 12:23:14 -05:00
wlr_keyboard_shortcuts_inhibit_v1.c keyboard-shortcuts-inhibit: Implement the protocol 2020-02-20 21:40:34 +01:00
wlr_layer_shell_v1.c Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_linux_dmabuf_v1.c Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_list.c Revert "ELF Visibility" 2018-02-19 18:01:27 -05:00
wlr_matrix.c Fix output rotation direction 2020-02-17 21:43:05 +01:00
wlr_output.c Add wlr_output_impl.rollback 2020-04-08 17:33:00 +02:00
wlr_output_damage.c output: replace wlr_output.damage with a damage event 2020-03-12 22:47:59 +01:00
wlr_output_layout.c Add -Wmissing-prototypes 2019-11-20 02:05:03 +00:00
wlr_output_management_v1.c output-management: add current_configuration_dirty 2020-02-19 11:40:23 +01:00
wlr_output_power_management_v1.c wlr_output_power_management_v1: Init output_power->link 2020-02-27 14:05:01 +01:00
wlr_pointer.c Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_pointer_constraints_v1.c Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_pointer_gestures_v1.c Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_presentation_time.c Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_primary_selection.c wlr_seat: Fix edge cases with serial validation 2019-06-30 15:01:05 -04:00
wlr_primary_selection_v1.c Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_region.c Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_relative_pointer_v1.c Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_screencopy_v1.c Gracefully handle inert wl_output resources 2020-03-29 20:57:28 +02:00
wlr_server_decoration.c Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_surface.c buffer: add a release event 2020-04-02 15:03:43 +02:00
wlr_switch.c Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_tablet_pad.c Move initialization of wlr_tablet_pad into types/wlr_tablet_pad 2019-09-26 19:41:19 +03:00
wlr_tablet_tool.c Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_text_input_v3.c text_input_v3: Note features supported by the text field 2020-02-20 16:21:44 +01:00
wlr_touch.c Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_virtual_keyboard_v1.c virtual_keyboard: Accept keycode 0 2019-11-27 16:49:12 +01:00
wlr_virtual_pointer_v1.c virtual-pointer: Add request for mapping to specific output 2020-02-10 21:01:38 +01:00
wlr_xcursor_manager.c Redesign wlr_texture 2018-03-24 23:48:32 -04:00
wlr_xdg_decoration_v1.c Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_xdg_output_v1.c Gracefully handle inert wl_output resources 2020-03-29 20:57:28 +02:00