diff options
author | Drew DeVault <sir@cmpwn.com> | 2017-06-20 18:22:21 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2017-06-20 18:22:21 -0400 |
commit | c2d0090ad7b0528b308741e67cdae11d58792d13 (patch) | |
tree | 6b9e9f207e719905c04462f5831bc7db99207c5c /include | |
parent | b2bf5b23b9484e429b7ecd8245d9590578764ac5 (diff) |
Support multiple wl backend outputs
Diffstat (limited to 'include')
-rw-r--r-- | include/backend/wayland.h | 22 | ||||
-rw-r--r-- | include/wlr/backend/wayland.h | 19 |
2 files changed, 25 insertions, 16 deletions
diff --git a/include/backend/wayland.h b/include/backend/wayland.h index 03667c9a..f4a0a3b4 100644 --- a/include/backend/wayland.h +++ b/include/backend/wayland.h @@ -11,34 +11,30 @@ struct wlr_backend_state { /* local state */ struct wl_display *local_display; + struct wlr_backend *backend; + list_t *devices; + list_t *outputs; + struct wlr_egl egl; + size_t requested_outputs; /* remote state */ struct wl_display *remote_display; + struct wl_event_source *remote_display_src; struct wl_registry *registry; struct wl_compositor *compositor; struct wl_shell *shell; struct wl_shm *shm; struct wl_seat *seat; const char *seatName; - - struct wlr_backend *backend; - list_t *devices; - - struct wl_event_source* remote_display_src; - - size_t num_outputs; - struct wlr_output **outputs; - struct wlr_egl egl; }; struct wlr_output_state { - size_t id; struct wlr_backend_state *backend; - struct wlr_output *output; + struct wlr_output *wlr_output; struct wl_surface *surface; struct wl_shell_surface *shell_surface; struct wl_egl_window* egl_window; struct wl_callback* frame_callback; - void* egl_surface; + void *egl_surface; }; struct wlr_input_device_state { @@ -47,8 +43,6 @@ struct wlr_input_device_state { }; void wlr_wl_registry_poll(struct wlr_backend_state *backend); -struct wlr_output *wlr_wl_output_create(struct wlr_backend_state* backend, - size_t id); extern const struct wl_seat_listener seat_listener; diff --git a/include/wlr/backend/wayland.h b/include/wlr/backend/wayland.h index 83b465c1..43a0b72e 100644 --- a/include/wlr/backend/wayland.h +++ b/include/wlr/backend/wayland.h @@ -4,8 +4,23 @@ #include <wayland-client.h> #include <wayland-server.h> #include <wlr/backend.h> +#include <stdbool.h> -struct wlr_backend *wlr_wl_backend_create(struct wl_display *display, - size_t outputs); +/** + * Creates a new wlr_wl_backend. This backend will be created with no outputs; + * you must use wlr_wl_output_create to add them. + */ +struct wlr_backend *wlr_wl_backend_create(struct wl_display *display); +/** + * Adds a new output to this backend. You may remove outputs by destroying them. + * Note that if called before initializing the backend, this will return NULL + * and your outputs will be created during initialization (and given to you via + * the output_add signal). + */ +struct wlr_output *wlr_wl_output_create(struct wlr_backend *backend); +/** + * True if the given backend is a wlr_wl_backend. + */ +bool wlr_backend_is_wl(struct wlr_backend *backend); #endif |