From b6d7c3ed8ec6ae29af5d585db5417394ff49f3c7 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sat, 23 Sep 2017 00:29:53 -0400 Subject: Initialize display, backend; add frame handling --- include/backend/wayland.h | 2 ++ include/rootston/desktop.h | 27 ++++++++++++++++++++++----- include/rootston/server.h | 9 ++++++--- 3 files changed, 30 insertions(+), 8 deletions(-) (limited to 'include') 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 #include #include #include @@ -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 #include #include -#include #include #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 #include #include +#include #include #include #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 -- cgit v1.2.3