diff options
author | Alexander Orzechowski <alex@ozal.ski> | 2024-01-18 10:00:45 -0500 |
---|---|---|
committer | Kirill Primak <vyivel@eclair.cafe> | 2024-01-18 18:36:54 +0300 |
commit | 1eb16d136774c8fb3c9085df45156264f0db8814 (patch) | |
tree | 9c348ab37edae50b76a388d7e8d8dcd011cea33b /include/sway/tree/root.h | |
parent | dbd2fbf4301d441be4f9a04a1df6d93c81c361f6 (diff) |
scene_graph: Maintain `wlr_scene_node`s for the sway tree.
Diffstat (limited to 'include/sway/tree/root.h')
-rw-r--r-- | include/sway/tree/root.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/include/sway/tree/root.h b/include/sway/tree/root.h index b3dda12f..9cb3d7bf 100644 --- a/include/sway/tree/root.h +++ b/include/sway/tree/root.h @@ -3,6 +3,7 @@ #include <wayland-server-core.h> #include <wayland-util.h> #include <wlr/types/wlr_output_layout.h> +#include <wlr/types/wlr_scene.h> #include <wlr/render/wlr_texture.h> #include "sway/tree/container.h" #include "sway/tree/node.h" @@ -16,6 +17,31 @@ struct sway_root { struct wlr_output_layout *output_layout; struct wl_listener output_layout_change; + + // scene node layout: + // - root + // - staging + // - layer shell stuff + // - tiling + // - floating + // - fullscreen stuff + // - seat stuff + // - ext_session_lock + struct wlr_scene *root_scene; + + // since wlr_scene nodes can't be orphaned and must always + // have a parent, use this staging scene_tree so that a + // node always have a valid parent. Nothing in this + // staging node will be visible. + struct wlr_scene_tree *staging; + + struct { + struct wlr_scene_tree *tiling; + struct wlr_scene_tree *floating; + struct wlr_scene_tree *fullscreen; + struct wlr_scene_tree *fullscreen_global; + } layers; + #if HAVE_XWAYLAND struct wl_list xwayland_unmanaged; // sway_xwayland_unmanaged::link #endif |