mutter/src/wayland
Jasper St. Pierre 83aca0b53d window-actor: Split into two subclasses of MetaSurfaceActor
The rendering logic before was somewhat complex. We had three independent
cases to take into account when doing rendering:

  * X11 compositor. In this case, we're a traditional X11 compositor,
    not a Wayland compositor. We use XCompositeNameWindowPixmap to get
    the backing pixmap for the window, and deal with the COMPOSITE
    extension messiness.

    In this case, meta_is_wayland_compositor() is FALSE.

  * Wayland clients. In this case, we're a Wayland compositor managing
    Wayland surfaces. The rendering for this is fairly straightforward,
    as Cogl handles most of the complexity with EGL and SHM buffers...
    Wayland clients give us the input and opaque regions through
    wl_surface.

    In this case, meta_is_wayland_compositor() is TRUE and
    priv->window->client_type == META_WINDOW_CLIENT_TYPE_WAYLAND.

  * XWayland clients. In this case, we're a Wayland compositor, like
    above, and XWayland hands us Wayland surfaces. XWayland handles
    the COMPOSITE extension messiness for us, and hands us a buffer
    like any other Wayland client. We have to fetch the input and
    opaque regions from the X11 window ourselves.

    In this case, meta_is_wayland_compositor() is TRUE and
    priv->window->client_type == META_WINDOW_CLIENT_TYPE_X11.

We now split the rendering logic into two subclasses, which are:

  * MetaSurfaceActorX11, which handles the X11 compositor case, in that
    it uses XCompositeNameWindowPixmap to get the backing pixmap, and
    deal with all the COMPOSITE extension messiness.

  * MetaSurfaceActorWayland, which handles the Wayland compositor case
    for both native Wayland clients and XWayland clients. XWayland handles
    COMPOSITE for us, and handles pushing a surface over through the
    xf86-video-wayland DDX.

Frame sync is still in MetaWindowActor, as it needs to work for both the
X11 compositor and XWayland client cases. When Wayland's video display
protocol lands, this will need to be significantly overhauled, as it would
have to work for any wl_surface, including subsurfaces, so we would need
surface-level discretion.

https://bugzilla.gnome.org/show_bug.cgi?id=720631
2014-02-20 14:44:31 -05:00
..
meta-wayland-data-device.c wayland: remove some wl_signal usage 2013-09-16 14:51:13 +02:00
meta-wayland-data-device.h wayland: Add basic input support 2013-08-10 19:13:49 -04:00
meta-wayland-keyboard.c pointer/keyboard: Properly handle destruction 2014-02-20 11:35:01 -05:00
meta-wayland-keyboard.h pointer/keyboard: Make sure not to get stale on client resources as well 2014-02-18 18:03:31 -05:00
meta-wayland-pointer.c pointer/keyboard: Properly handle destruction 2014-02-20 11:35:01 -05:00
meta-wayland-pointer.h pointer/keyboard: Make sure not to get stale on client resources as well 2014-02-18 18:03:31 -05:00
meta-wayland-private.h wayland: Kill meta_wayland_compositor_is_native 2014-02-17 21:15:31 -05:00
meta-wayland-seat.c window-actor: Split into two subclasses of MetaSurfaceActor 2014-02-20 14:44:31 -05:00
meta-wayland-seat.h wayland: Remove is_native from seat 2014-02-17 20:49:04 -05:00
meta-wayland-stage.c wayland: split headers and distribute structure definitions 2013-09-03 10:57:28 -04:00
meta-wayland-stage.h Add MetaCursorTracker, a new helper for tracking the cursor sprite 2013-08-19 16:09:53 +02:00
meta-wayland-surface.c window-actor: Split into two subclasses of MetaSurfaceActor 2014-02-20 14:44:31 -05:00
meta-wayland-surface.h wayland: Remove width / height from MetaWaylandBuffer 2014-02-18 22:43:24 -05:00
meta-wayland-types.h wayland: split headers and distribute structure definitions 2013-09-03 10:57:28 -04:00
meta-wayland-versions.h wayland-surface: Don't require we manually bump the version for xdg-shell 2014-02-16 10:21:22 -05:00
meta-wayland.c wayland: Don't use WESTON_LAUNCHER_SOCK 2014-02-17 21:50:32 -05:00
meta-weston-launch.c Revert "meta-weston-launch: Call VT_ACTIVATE ourselves" 2014-01-16 13:42:07 -05:00
meta-weston-launch.h Revert "meta-weston-launch: Call VT_ACTIVATE ourselves" 2014-01-16 13:42:07 -05:00
meta-xwayland-private.h xwayland: Fix xwayland 2014-02-07 19:28:05 -05:00
meta-xwayland.c xwayland: Don't -retro 2014-02-17 17:57:40 -05:00
weston-launch.c Revert "meta-weston-launch: Call VT_ACTIVATE ourselves" 2014-01-16 13:42:07 -05:00
weston-launch.h Revert "meta-weston-launch: Call VT_ACTIVATE ourselves" 2014-01-16 13:42:07 -05:00