From 9b4be5a59506a81175ab2eb9248f4035176df5f0 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Thu, 17 Jan 2019 20:13:55 +1000 Subject: Introduce noop backend The noop backend is similar to headless, but it doesn't contain a renderer. It can be used as a place to stash views for when there's no physical outputs connected. --- include/backend/noop.h | 24 ++++++++++++++++++++++++ include/wlr/backend/noop.h | 31 +++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 include/backend/noop.h create mode 100644 include/wlr/backend/noop.h (limited to 'include') diff --git a/include/backend/noop.h b/include/backend/noop.h new file mode 100644 index 00000000..4198baad --- /dev/null +++ b/include/backend/noop.h @@ -0,0 +1,24 @@ +#ifndef BACKEND_NOOP_H +#define BACKEND_NOOP_H + +#include +#include + +struct wlr_noop_backend { + struct wlr_backend backend; + struct wl_display *display; + struct wl_list outputs; + bool started; +}; + +struct wlr_noop_output { + struct wlr_output wlr_output; + + struct wlr_noop_backend *backend; + struct wl_list link; +}; + +struct wlr_noop_backend *noop_backend_from_backend( + struct wlr_backend *wlr_backend); + +#endif diff --git a/include/wlr/backend/noop.h b/include/wlr/backend/noop.h new file mode 100644 index 00000000..592b8f35 --- /dev/null +++ b/include/wlr/backend/noop.h @@ -0,0 +1,31 @@ +/* + * This an unstable interface of wlroots. No guarantees are made regarding the + * future consistency of this API. + */ +#ifndef WLR_USE_UNSTABLE +#error "Add -DWLR_USE_UNSTABLE to enable unstable wlroots features" +#endif + +#ifndef WLR_BACKEND_NOOP_H +#define WLR_BACKEND_NOOP_H + +#include +#include + +/** + * Creates a noop backend. Noop backends do not have a framebuffer and are not + * capable of rendering anything. They are useful for when there's no real + * outputs connected; you can stash your views on a noop output until an output + * is connected. + */ +struct wlr_backend *wlr_noop_backend_create(struct wl_display *display); + +/** + * Create a new noop output. + */ +struct wlr_output *wlr_noop_add_output(struct wlr_backend *backend); + +bool wlr_backend_is_noop(struct wlr_backend *backend); +bool wlr_output_is_noop(struct wlr_output *output); + +#endif -- cgit v1.2.3