mutter/src/wayland
Miguel A. Vico 8eccb68687 wayland: Create EGLStream-backed buffers through wl_eglstream_controller
One of the current limitations of EGLStreams is that there's no way to
resize a surface consumer without re-creating the entire stream.

Therefore, while resizing, clients will send wl_surface::attach requests
so the compositor can re-create its endpoint of the stream, but no
buffer will be available actually. If we proceed with the rest of the
attach operation we'll be presenting an empty buffer.

In order to fix this, a separate wl_eglstream_controller protocol has
been introduced that clients can use to request a stream re-creation
without overloading wl_surface::attach for that purpose.

This change adds the required logic to create the corresponding
wl_eglstream_controller global interface that clients can bind to.

Whenever a client requests a stream to be created, we just need to
create and realize the new EGLStream buffer. The same buffer resource
will be given at a later time to wl_surface::attach, whenever new
content is made available by the application, so we can proceed to
acquire the stream buffer and update the surface state.

https://bugzilla.gnome.org/show_bug.cgi?id=782575

(cherry picked from commit 435b3c4bdb)
2019-02-11 13:40:14 -05:00
..
protocol protocol: Add internal text input protocol 2018-01-18 16:20:45 +01:00
meta-pointer-confinement-wayland.c wayland: Update pointer confinement on surface actor relocations 2017-10-26 12:53:20 +02:00
meta-pointer-confinement-wayland.h Implement support for the wp_pointer_constraints protocol 2016-02-16 19:02:48 +08:00
meta-pointer-lock-wayland.c Implement support for the wp_pointer_constraints protocol 2016-02-16 19:02:48 +08:00
meta-pointer-lock-wayland.h Implement support for the wp_pointer_constraints protocol 2016-02-16 19:02:48 +08:00
meta-wayland-actor-surface.c wayland/xdg-shell: Queue frame callbacks on new actor after resetting 2019-02-11 13:40:11 -05:00
meta-wayland-actor-surface.h wayland/xdg-shell: Queue frame callbacks on new actor after resetting 2019-02-11 13:40:11 -05:00
meta-wayland-buffer.c wayland: Always realize buffers at surface commit time 2019-02-11 13:40:14 -05:00
meta-wayland-buffer.h wayland: Always realize buffers at surface commit time 2019-02-11 13:40:14 -05:00
meta-wayland-data-device-private.h wayland: Implement the (so far internal) primary selection protocol 2016-02-26 19:51:32 +01:00
meta-wayland-data-device.c dnd: Implement DnD handling code in Wayland 2017-03-07 08:28:36 +08:00
meta-wayland-data-device.h dnd: Implement DnD handling code in Wayland 2017-03-07 08:28:36 +08:00
meta-wayland-dma-buf.c wayland: Realize dmabuf buffers before trying to attach them 2019-02-11 13:40:14 -05:00
meta-wayland-dma-buf.h wayland: Add zwp_linux_dmabuf_v1 support 2017-08-01 19:05:50 +08:00
meta-wayland-egl-stream.c wayland: Create EGLStream-backed buffers through wl_eglstream_controller 2019-02-11 13:40:14 -05:00
meta-wayland-egl-stream.h wayland: Create EGLStream-backed buffers through wl_eglstream_controller 2019-02-11 13:40:14 -05:00
meta-wayland-gtk-shell.c wayland/gtk-shell: Handle requests after toplevel was unmanaged 2019-02-11 13:40:13 -05:00
meta-wayland-gtk-shell.h wayland: Move out gtk_shell from meta-wayland-surface.c 2016-08-25 12:19:40 +08:00
meta-wayland-inhibit-shortcuts-dialog.c wayland: Keep the inhibit shortcut dialog 2017-09-14 09:32:26 +02:00
meta-wayland-inhibit-shortcuts-dialog.h wayland: Keep the inhibit shortcut dialog 2017-09-14 09:32:26 +02:00
meta-wayland-inhibit-shortcuts.c wayland: send shortcut inhibit “active” event 2018-02-05 09:06:49 +00:00
meta-wayland-inhibit-shortcuts.h wayland: add keyboard shortcuts inhibitor protocol 2017-08-02 11:58:55 +02:00
meta-wayland-input-device.c wayland/input-device: Add next serial helper 2016-10-11 22:51:50 +08:00
meta-wayland-input-device.h wayland/input-device: Add next serial helper 2016-10-11 22:51:50 +08:00
meta-wayland-keyboard.c wayland/keyboard: Create a separate keymap shm file per resource 2019-02-11 13:40:10 -05:00
meta-wayland-keyboard.h wayland/keyboard: Create a separate keymap shm file per resource 2019-02-11 13:40:10 -05:00
meta-wayland-legacy-xdg-shell.c wayland/legacy-xdg-shell: Handle requests after toplevel was unmanaged 2019-02-11 13:40:13 -05:00
meta-wayland-legacy-xdg-shell.h wayland: Add support for stable xdg-shell 2018-02-23 18:57:53 +08:00
meta-wayland-outputs.c wayland: No xdg-output events without a logical monitor 2019-02-11 13:40:08 -05:00
meta-wayland-outputs.h wayland: Add xdg-output support 2017-12-15 14:18:14 +01:00
meta-wayland-pointer-constraints.c wayland/pointer-constraints: Don't include window frame in region 2016-10-13 12:59:41 +08:00
meta-wayland-pointer-constraints.h MetaWaylandPointerConstraint: Use own 'appears-focused' signal handler 2016-03-09 14:26:53 +08:00
meta-wayland-pointer-gesture-pinch.c wayland: Forward touchpad pinch n_fingers information to clients 2016-11-04 16:28:30 +01:00
meta-wayland-pointer-gesture-pinch.h wayland: Implement the wl_pointer_gesture_pinch interface 2015-08-10 17:23:23 +02:00
meta-wayland-pointer-gesture-swipe.c clutter: Rename touchpad gesture n_fingers getter to be more generic 2016-11-04 16:28:30 +01:00
meta-wayland-pointer-gesture-swipe.h wayland: Implement the wl_pointer_gesture_swipe interface 2015-08-10 17:23:23 +02:00
meta-wayland-pointer-gestures.c configure.ac: Add AC_GNU_SOURCE 2016-07-20 14:23:48 +08:00
meta-wayland-pointer-gestures.h wayland: Implement wl_pointer_gestures 2015-08-10 17:30:12 +02:00
meta-wayland-pointer.c hw-cursor-on-demand-gnome-3-28.patch 2019-02-11 13:40:04 -05:00
meta-wayland-pointer.h wayland/pointer: Track lifetime of current surface 2017-06-01 12:46:32 +08:00
meta-wayland-popup.c MetaWaylandPopup: Dismiss popup when grab is cancelled 2016-10-12 10:08:59 +08:00
meta-wayland-popup.h wayland: Add 'MetaWaylandPopupSurface' bridge between popup and surface 2016-05-01 21:11:27 +08:00
meta-wayland-private.h wayland: Allow Xwayland to leave core dumps 2017-10-26 19:50:40 -05:00
meta-wayland-region.c wayland: Make the MetaWaylandRegion type opaque 2014-10-07 20:44:19 -07:00
meta-wayland-region.h wayland: Make the MetaWaylandRegion type opaque 2014-10-07 20:44:19 -07:00
meta-wayland-seat.c wayland: Let IM events go through 2018-04-24 23:59:21 +02:00
meta-wayland-seat.h wayland: Implement text input protocol 2018-01-18 16:20:45 +01:00
meta-wayland-shell-surface.c window: Pass flag to meta_window_update_monitor() instead of bool 2019-02-11 13:40:07 -05:00
meta-wayland-shell-surface.h wayland: Use helper to set shell surface window 2018-02-23 18:57:50 +08:00
meta-wayland-subsurface.c wayland: Push actor state instead of itself pulling 2018-02-23 18:57:47 +08:00
meta-wayland-subsurface.h wayland: Push actor state instead of itself pulling 2018-02-23 18:57:47 +08:00
meta-wayland-surface.c wayland: Always realize buffers at surface commit time 2019-02-11 13:40:14 -05:00
meta-wayland-surface.h wayland/surface: Add API to cache frame callbacks 2019-02-11 13:40:11 -05:00
meta-wayland-tablet-manager.c wayland: Add pointer from MetaWaylandTabletSeat to MetaWaylandSeat 2016-07-22 13:31:09 +02:00
meta-wayland-tablet-manager.h wayland: Add methods to update the position of different tools' cursors 2016-05-03 18:17:01 +02:00
meta-wayland-tablet-pad-group.c wayland: Clean up MetaWaylandTabletPadGroup 2017-02-10 20:11:19 +01:00
meta-wayland-tablet-pad-group.h wayland: Export function to tell whether a button belongs to a pad group 2016-07-22 13:31:09 +02:00
meta-wayland-tablet-pad-ring.c wayland: fix copy/pasto sending tool removed on rings/strips 2017-02-07 14:04:52 +01:00
meta-wayland-tablet-pad-ring.h wayland: Add method to relate a pad ring to its group 2016-07-22 13:31:09 +02:00
meta-wayland-tablet-pad-strip.c wayland: fix copy/pasto sending tool removed on rings/strips 2017-02-07 14:04:52 +01:00
meta-wayland-tablet-pad-strip.h wayland: Add method to relate a pad strip to its group 2016-07-22 13:31:09 +02:00
meta-wayland-tablet-pad.c wayland: Handle NULL event node/vendor/product on tablet methods 2018-02-09 13:39:15 +01:00
meta-wayland-tablet-pad.h wayland: Move strips/rings management back to MetaWaylandTabletPad 2016-07-22 13:31:09 +02:00
meta-wayland-tablet-seat.c wayland: Use clutter_input_device_is_grouped() for tablet grouping 2017-03-13 19:34:10 +01:00
meta-wayland-tablet-seat.h wayland: Add focus management to pads 2016-07-22 13:31:09 +02:00
meta-wayland-tablet-tool.c hw-cursor-on-demand-gnome-3-28.patch 2019-02-11 13:40:04 -05:00
meta-wayland-tablet-tool.h hw-cursor-on-demand-gnome-3-28.patch 2019-02-11 13:40:04 -05:00
meta-wayland-tablet.c wayland: Handle NULL event node/vendor/product on tablet methods 2018-02-09 13:39:15 +01:00
meta-wayland-tablet.h wayland: Remove unused list from MetaWaylandTablet 2016-05-10 17:45:04 +02:00
meta-wayland-text-input.c wayland: Don't reset input focus on text commit 2018-05-26 15:26:09 +02:00
meta-wayland-text-input.h wayland: Implement text input protocol 2018-01-18 16:20:45 +01:00
meta-wayland-touch.c wayland: Only send full sequences of touch events to clients 2017-12-21 12:37:20 +01:00
meta-wayland-touch.h wayland: Move device seat association to MetaWaylandInputDevice 2016-09-15 09:55:34 +08:00
meta-wayland-types.h wayland: Add common object for device classes 2016-09-15 09:54:55 +08:00
meta-wayland-versions.h wayland: Add support for stable xdg-shell 2018-02-23 18:57:53 +08:00
meta-wayland-wl-shell.c wayland: Use helper to set shell surface window 2018-02-23 18:57:50 +08:00
meta-wayland-wl-shell.h wayland: Restructure surface role building blocks code 2018-02-23 18:57:40 +08:00
meta-wayland-xdg-foreign.c wayland/xdg-foreign: Fix child surface validation check 2018-05-07 19:20:56 +00:00
meta-wayland-xdg-foreign.h wayland: Add support for the xdg-foreign protocol 2016-08-22 21:03:41 +08:00
meta-wayland-xdg-shell.c wayland/xdg-shell: Handle requests after toplevel was unmanaged 2019-02-11 13:40:12 -05:00
meta-wayland-xdg-shell.h wayland: Add support for stable xdg-shell 2018-02-23 18:57:53 +08:00
meta-wayland.c wayland: Create EGLStream-backed buffers through wl_eglstream_controller 2019-02-11 13:40:14 -05:00
meta-wayland.h wayland/output: Flush clients after creating wl_output global 2017-08-30 13:42:45 +08:00
meta-window-wayland.c window/wayland: Don't recursive indefinitely when updating monitor 2019-02-11 13:40:07 -05:00
meta-window-wayland.h wayland: Add function to query if window needs move or resize 2018-05-04 15:57:50 -03:00
meta-window-xwayland.c xwayland: add _XWAYLAND_MAY_GRAB_KEYBOARD property 2017-12-18 13:15:13 +01:00
meta-window-xwayland.h xwayland: Add MetaWindowXwayland 2017-12-18 13:15:09 +01:00
meta-xwayland-grab-keyboard.c wayland: Clean up xwayland grabs even if surface is gone 2019-02-11 13:40:08 -05:00
meta-xwayland-grab-keyboard.h wayland: Add Xwayland grab keyboard support 2017-12-18 13:15:20 +01:00
meta-xwayland-private.h xwayland: Implement wayland-to-X11 DnD 2015-05-29 11:27:53 +02:00
meta-xwayland-selection-private.h wayland: Make MetaWaylandDataSource ownership protocol specific 2015-06-30 11:23:40 +08:00
meta-xwayland-selection.c Fix some spelling errors 2018-03-21 13:22:35 +08:00
meta-xwayland.c xwayland: Don't abort if Xwayland crashes 2018-04-24 05:08:22 +00:00
meta-xwayland.h xwayland: add _XWAYLAND_MAY_GRAB_KEYBOARD property 2017-12-18 13:15:13 +01:00