Skip to content

Commit

Permalink
Add a secondary headless backend
Browse files Browse the repository at this point in the history
This allows the create_output command to work on DRM too.
  • Loading branch information
emersion committed Apr 14, 2020
1 parent c38013b commit a410a28
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 1 deletion.
1 change: 1 addition & 0 deletions include/sway/server.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ struct sway_server {

struct wlr_backend *backend;
struct wlr_backend *noop_backend;
struct wlr_backend *headless_backend;

struct wlr_compositor *compositor;
struct wl_listener compositor_new_surface;
Expand Down
9 changes: 8 additions & 1 deletion sway/server.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
#include <stdlib.h>
#include <wayland-server-core.h>
#include <wlr/backend.h>
#include <wlr/backend/headless.h>
#include <wlr/backend/multi.h>
#include <wlr/backend/noop.h>
#include <wlr/backend/session.h>
#include <wlr/render/wlr_renderer.h>
Expand Down Expand Up @@ -41,7 +43,6 @@ bool server_privileged_prepare(struct sway_server *server) {
server->wl_display = wl_display_create();
server->wl_event_loop = wl_display_get_event_loop(server->wl_display);
server->backend = wlr_backend_autocreate(server->wl_display, NULL);
server->noop_backend = wlr_noop_backend_create(server->wl_display);

if (!server->backend) {
sway_log(SWAY_ERROR, "Unable to create backend");
Expand Down Expand Up @@ -153,9 +154,15 @@ bool server_init(struct sway_server *server) {
return false;
}

server->noop_backend = wlr_noop_backend_create(server->wl_display);

struct wlr_output *wlr_output = wlr_noop_add_output(server->noop_backend);
root->noop_output = output_create(wlr_output);

server->headless_backend =
wlr_headless_backend_create_with_renderer(server->wl_display, renderer);
wlr_multi_backend_add(server->backend, server->headless_backend);

// This may have been set already via -Dtxn-timeout
if (!server->txn_timeout_ms) {
server->txn_timeout_ms = 200;
Expand Down

0 comments on commit a410a28

Please sign in to comment.