aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/backend/wayland.h2
-rw-r--r--include/rootston/desktop.h27
-rw-r--r--include/rootston/server.h9
3 files changed, 30 insertions, 8 deletions
diff --git a/include/backend/wayland.h b/include/backend/wayland.h
index 5e278dc9..42739c18 100644
--- a/include/backend/wayland.h
+++ b/include/backend/wayland.h
@@ -1,6 +1,7 @@
#ifndef _WLR_INTERNAL_BACKEND_WAYLAND_H
#define _WLR_INTERNAL_BACKEND_WAYLAND_H
+#include <stdbool.h>
#include <wayland-client.h>
#include <wayland-server.h>
#include <wayland-egl.h>
@@ -14,6 +15,7 @@ struct wlr_wl_backend {
struct wlr_backend backend;
/* local state */
+ bool started;
struct wl_display *local_display;
list_t *devices;
list_t *outputs;
diff --git a/include/rootston/desktop.h b/include/rootston/desktop.h
index 7881e599..3d31059c 100644
--- a/include/rootston/desktop.h
+++ b/include/rootston/desktop.h
@@ -7,13 +7,13 @@
#include <wlr/types/wlr_compositor.h>
#include <wlr/types/wlr_wl_shell.h>
#include <wlr/types/wlr_xdg_shell_v6.h>
-#include <wlr/types/wlr_data_device_manager.h>
#include <wlr/types/wlr_gamma_control.h>
#include "rootston/view.h"
+#include "rootston/config.h"
struct roots_output {
struct roots_desktop *desktop;
- struct wlr_output *output;
+ struct wlr_output *wlr_output;
struct wl_listener frame;
struct wl_listener resolution;
struct timespec last_frame;
@@ -22,12 +22,29 @@ struct roots_output {
struct roots_desktop {
struct wl_list outputs;
+ struct timespec last_frame;
+ struct roots_server *server;
+ struct roots_config *config;
+
struct wlr_output_layout *layout;
- struct wlr_compositor *wlr_compositor;
+
+ struct wlr_compositor *compositor;
struct wlr_wl_shell *wl_shell;
- struct wlr_xdg_shell_v6 *xdg_shell;
- struct wlr_data_device_manager *data_device_manager;
+ struct wlr_xdg_shell_v6 *xdg_shell_v6;
struct wlr_gamma_control_manager *gamma_control_manager;
+
+ struct wl_listener output_add;
+ struct wl_listener output_remove;
+ struct wl_listener xdg_shell_v6_surface;
};
+struct roots_server;
+
+struct roots_desktop *desktop_create(struct roots_server *server,
+ struct roots_config *config);
+void desktop_destroy(struct roots_desktop *desktop);
+
+void output_add_notify(struct wl_listener *listener, void *data);
+void output_remove_notify(struct wl_listener *listener, void *data);
+
#endif
diff --git a/include/rootston/server.h b/include/rootston/server.h
index f4d1de95..d9fa8f9e 100644
--- a/include/rootston/server.h
+++ b/include/rootston/server.h
@@ -3,13 +3,14 @@
#include <wayland-server.h>
#include <wlr/backend.h>
#include <wlr/backend/session.h>
+#include <wlr/types/wlr_data_device_manager.h>
#include <wlr/render.h>
#include <wlr/xwayland.h>
#include "rootston/config.h"
#include "rootston/desktop.h"
#include "rootston/input.h"
-struct rootston {
+struct roots_server {
/* Rootston resources */
struct roots_config *config;
struct roots_desktop *desktop;
@@ -21,11 +22,13 @@ struct rootston {
/* WLR tools */
struct wlr_backend *backend;
- struct wlr_session *session;
struct wlr_renderer *renderer;
struct wlr_xwayland *xwayland;
+
+ /* Global resources */
+ struct wlr_data_device_manager *data_device_manager;
};
-extern struct rootston root;
+extern struct roots_server server;
#endif