summaryrefslogtreecommitdiffstats
path: root/sway/server.c
diff options
context:
space:
mode:
authorLibravatar Simon Zeni <simon@bl4ckb0ne.ca>2021-11-15 13:32:52 -0500
committerLibravatar Simon Ser <contact@emersion.fr>2021-11-18 17:47:19 +0100
commit5865af75cf8029cc703cda36b68daafcb658c97b (patch)
tree0446444369c63c05109ffab3c027127ac19da17f /sway/server.c
parentcontainer: fix surface_is_popup() (diff)
downloadsway-5865af75cf8029cc703cda36b68daafcb658c97b.tar.gz
sway-5865af75cf8029cc703cda36b68daafcb658c97b.tar.zst
sway-5865af75cf8029cc703cda36b68daafcb658c97b.zip
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) {
73bool server_init(struct sway_server *server) { 73bool server_init(struct sway_server *server) {
74 sway_log(SWAY_DEBUG, "Initializing Wayland server"); 74 sway_log(SWAY_DEBUG, "Initializing Wayland server");
75 75
76 struct wlr_renderer *renderer = wlr_backend_get_renderer(server->backend); 76 server->renderer = wlr_renderer_autocreate(server->backend);
77 assert(renderer); 77 if (!server->renderer) {
78 sway_log(SWAY_ERROR, "Failed to create renderer");
79 return false;
80 }
81
82 wlr_renderer_init_wl_display(server->renderer, server->wl_display);
78 83
79 wlr_renderer_init_wl_display(renderer, server->wl_display); 84 server->allocator = wlr_allocator_autocreate(server->backend,
85 server->renderer);
86 if (!server->allocator) {
87 sway_log(SWAY_ERROR, "Failed to create allocator");
88 return false;
89 }
80 90
81 server->compositor = wlr_compositor_create(server->wl_display, renderer); 91 server->compositor = wlr_compositor_create(server->wl_display,
92 server->renderer);
82 server->compositor_new_surface.notify = handle_compositor_new_surface; 93 server->compositor_new_surface.notify = handle_compositor_new_surface;
83 wl_signal_add(&server->compositor->events.new_surface, 94 wl_signal_add(&server->compositor->events.new_surface,
84 &server->compositor_new_surface); 95 &server->compositor_new_surface);
@@ -212,7 +223,8 @@ bool server_init(struct sway_server *server) {
212 root->noop_output = output_create(wlr_output); 223 root->noop_output = output_create(wlr_output);
213 224
214 server->headless_backend = 225 server->headless_backend =
215 wlr_headless_backend_create_with_renderer(server->wl_display, renderer); 226 wlr_headless_backend_create_with_renderer(server->wl_display,
227 server->renderer);
216 if (!server->headless_backend) { 228 if (!server->headless_backend) {
217 sway_log(SWAY_INFO, "Failed to create secondary headless backend, " 229 sway_log(SWAY_INFO, "Failed to create secondary headless backend, "
218 "starting without it"); 230 "starting without it");