diff options
author | Simon Zeni <simon@bl4ckb0ne.ca> | 2021-11-15 13:32:52 -0500 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2021-11-18 17:47:19 +0100 |
commit | 5865af75cf8029cc703cda36b68daafcb658c97b (patch) | |
tree | 0446444369c63c05109ffab3c027127ac19da17f /sway/server.c | |
parent | container: fix surface_is_popup() (diff) | |
download | sway-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.c | 22 |
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) { | |||
73 | bool server_init(struct sway_server *server) { | 73 | bool 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"); |