summaryrefslogtreecommitdiff
path: root/sway/server.c
diff options
context:
space:
mode:
authorSimon Zeni <[email protected]>2021-11-15 13:32:52 -0500
committerSimon Ser <[email protected]>2021-11-18 17:47:19 +0100
commit5865af75cf8029cc703cda36b68daafcb658c97b (patch)
tree0446444369c63c05109ffab3c027127ac19da17f /sway/server.c
parentcbecc5cbaed6b30c995d2c245def458e383b4e38 (diff)
sway: create wlr_renderer and wlr_allocator
wlroots now required the compositor to create its own wlr_renderer and wlr_allocator to initialize the wlr_output
Diffstat (limited to 'sway/server.c')
-rw-r--r--sway/server.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/sway/server.c b/sway/server.c
index b187fcd5..0d179c88 100644
--- a/sway/server.c
+++ b/sway/server.c
@@ -73,12 +73,23 @@ static void handle_drm_lease_request(struct wl_listener *listener, void *data) {
bool server_init(struct sway_server *server) {
sway_log(SWAY_DEBUG, "Initializing Wayland server");
- struct wlr_renderer *renderer = wlr_backend_get_renderer(server->backend);
- assert(renderer);
+ server->renderer = wlr_renderer_autocreate(server->backend);
+ if (!server->renderer) {
+ sway_log(SWAY_ERROR, "Failed to create renderer");
+ return false;
+ }
+
+ wlr_renderer_init_wl_display(server->renderer, server->wl_display);
- wlr_renderer_init_wl_display(renderer, server->wl_display);
+ server->allocator = wlr_allocator_autocreate(server->backend,
+ server->renderer);
+ if (!server->allocator) {
+ sway_log(SWAY_ERROR, "Failed to create allocator");
+ return false;
+ }
- server->compositor = wlr_compositor_create(server->wl_display, renderer);
+ server->compositor = wlr_compositor_create(server->wl_display,
+ server->renderer);
server->compositor_new_surface.notify = handle_compositor_new_surface;
wl_signal_add(&server->compositor->events.new_surface,
&server->compositor_new_surface);
@@ -212,7 +223,8 @@ bool server_init(struct sway_server *server) {
root->noop_output = output_create(wlr_output);
server->headless_backend =
- wlr_headless_backend_create_with_renderer(server->wl_display, renderer);
+ wlr_headless_backend_create_with_renderer(server->wl_display,
+ server->renderer);
if (!server->headless_backend) {
sway_log(SWAY_INFO, "Failed to create secondary headless backend, "
"starting without it");