mutter/src/wayland
Miguel A. Vico 435b3c4bdb 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
2018-06-15 13:45:29 -07:00
..
protocol protocol: Add internal text input protocol 2018-01-18 16:20:45 +01:00
meta-cursor-sprite-wayland.c cursor-renderer/native: Fetch instead of pass wl_buffer when realizing 2018-06-15 19:09:53 +00:00
meta-cursor-sprite-wayland.h cursor-renderer/native: Fetch instead of pass wl_buffer when realizing 2018-06-15 19:09:53 +00:00
meta-pointer-confinement-wayland.c wayland: Add MetaWaylandSurface::geometry-changed signal 2018-04-23 21:31:19 +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: Detach MetaWaylandActorSurface from its actor on dispose 2018-06-14 14:05:10 +02:00
meta-wayland-actor-surface.h wayland: Refactor surface actor into MetaWaylandActorSurface 2018-04-23 21:31:19 +02:00
meta-wayland-buffer.c wayland: Always realize buffers at surface commit time 2018-06-15 13:45:25 -07:00
meta-wayland-buffer.h wayland: Always realize buffers at surface commit time 2018-06-15 13:45:25 -07:00
meta-wayland-cursor-surface.c cursor-renderer/native: Let the backend realize cursor sprite itself 2018-06-15 19:09:55 +00:00
meta-wayland-cursor-surface.h wayland: Rename cursor role types 2018-06-15 19:09:49 +00: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 wayland: Abstract access to the actor corresponding to a wl_surface 2018-04-23 12:24:46 +02: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-dma-buf: Don't send modifiers to old clients 2017-10-05 10:51:06 -04: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 2018-06-15 13:45:29 -07:00
meta-wayland-egl-stream.h wayland: Create EGLStream-backed buffers through wl_eglstream_controller 2018-06-15 13:45:29 -07:00
meta-wayland-gtk-shell.c wayland: Send edge constraints 2017-10-03 19:38:32 -03: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: Add parentheses around logical AND 2018-03-16 16:59:14 +01:00
meta-wayland-keyboard.h wayland/keyboard: Apply sticky keys masks 2017-11-16 14:14:31 +01:00
meta-wayland-legacy-xdg-shell.c wayland: Compare geometries after chaining up 2018-05-18 13:09:10 +00: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: send xdg-output size as size, not position 2018-01-15 10:41:01 +01: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 wayland: Rename cursor role types 2018-06-15 19:09:49 +00: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: Notify actively of xwayland window/surface associations 2018-04-23 21:31:19 +02: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:48:01 +02:00
meta-wayland-seat.h wayland: Implement text input protocol 2018-01-18 16:20:45 +01:00
meta-wayland-shell-surface.c wayland: Define abstract role types as actually abstract 2018-02-23 19:07:49 +08: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: Handle get_subsurface() with a role-less parent surface 2018-06-08 17:31:25 +02: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 2018-06-15 13:45:25 -07:00
meta-wayland-surface.h wayland: Refactor surface actor into MetaWaylandActorSurface 2018-04-23 21:31:19 +02:00
meta-wayland-tablet-cursor-surface.c wayland: Rename cursor role types 2018-06-15 19:09:49 +00:00
meta-wayland-tablet-cursor-surface.h wayland: Rename cursor role types 2018-06-15 19:09:49 +00: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 backends/cursor: Move out Xcursor functionality into own type 2018-06-15 19:09:51 +00:00
meta-wayland-tablet-tool.h backends/cursor: Move out Xcursor functionality into own type 2018-06-15 19:09:51 +00: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 18:58:42 +09: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:16:40 +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: Compare geometries after chaining up 2018-05-18 13:09:10 +00: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 2018-06-15 13:45:29 -07:00
meta-wayland.h wayland: Notify actively of xwayland window/surface associations 2018-04-23 21:31:19 +02:00
meta-window-wayland.c wayland: Add function to query if window needs move or resize 2018-04-25 21:55:05 -03:00
meta-window-wayland.h wayland: Add function to query if window needs move or resize 2018-04-25 21:55:05 -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: Add Xwayland grab keyboard support 2017-12-18 13:15:20 +01: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 wayland: Notify actively of xwayland window/surface associations 2018-04-23 21:31:19 +02:00
meta-xwayland.h wayland: Notify actively of xwayland window/surface associations 2018-04-23 21:31:19 +02:00