diff options
author | Drew DeVault <sir@cmpwn.com> | 2017-09-23 00:29:53 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2017-09-23 00:30:39 -0400 |
commit | b6d7c3ed8ec6ae29af5d585db5417394ff49f3c7 (patch) | |
tree | c3faaa0fdc17e7f4d72a9843bb64d0aed0a2c396 /include | |
parent | 550748681db7f75888beab41a1a85eb86876604c (diff) |
Initialize display, backend; add frame handling
Diffstat (limited to 'include')
-rw-r--r-- | include/backend/wayland.h | 2 | ||||
-rw-r--r-- | include/rootston/desktop.h | 27 | ||||
-rw-r--r-- | include/rootston/server.h | 9 |
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 |