aboutsummaryrefslogtreecommitdiff
path: root/include/sway/tree/root.h
diff options
context:
space:
mode:
authorAlexander Orzechowski <alex@ozal.ski>2024-01-18 10:00:45 -0500
committerKirill Primak <vyivel@eclair.cafe>2024-01-18 18:36:54 +0300
commit1eb16d136774c8fb3c9085df45156264f0db8814 (patch)
tree9c348ab37edae50b76a388d7e8d8dcd011cea33b /include/sway/tree/root.h
parentdbd2fbf4301d441be4f9a04a1df6d93c81c361f6 (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.h26
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