aboutsummaryrefslogtreecommitdiff
path: root/include/rootston
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2017-09-23 00:29:53 -0400
committerDrew DeVault <sir@cmpwn.com>2017-09-23 00:30:39 -0400
commitb6d7c3ed8ec6ae29af5d585db5417394ff49f3c7 (patch)
treec3faaa0fdc17e7f4d72a9843bb64d0aed0a2c396 /include/rootston
parent550748681db7f75888beab41a1a85eb86876604c (diff)
Initialize display, backend; add frame handling
Diffstat (limited to 'include/rootston')
-rw-r--r--include/rootston/desktop.h27
-rw-r--r--include/rootston/server.h9
2 files changed, 28 insertions, 8 deletions
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