diff options
author | Ryan Dwyer <ryandwyer1@gmail.com> | 2019-01-17 20:13:55 +1000 |
---|---|---|
committer | Ryan Dwyer <ryandwyer1@gmail.com> | 2019-01-17 20:13:55 +1000 |
commit | 9b4be5a59506a81175ab2eb9248f4035176df5f0 (patch) | |
tree | bde4d21776be98e7e0c51d941e9198d5d11f5c57 /include | |
parent | 10b1de6e718f1765f81131447d4b6b86bc78a6f4 (diff) |
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.
Diffstat (limited to 'include')
-rw-r--r-- | include/backend/noop.h | 24 | ||||
-rw-r--r-- | include/wlr/backend/noop.h | 31 |
2 files changed, 55 insertions, 0 deletions
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 <wlr/backend/noop.h> +#include <wlr/backend/interface.h> + +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 <wlr/backend.h> +#include <wlr/types/wlr_output.h> + +/** + * 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 |