render/shm_allocator: make wlr_shm_allocator_create return a wlr_allocator

This commit is contained in:
Simon Zeni 2021-04-21 21:29:33 -04:00 committed by Simon Ser
parent c75aa71816
commit a8c91fbac9
4 changed files with 12 additions and 15 deletions

View file

@ -452,21 +452,19 @@ struct wlr_backend *wlr_wl_backend_create(struct wl_display *display,
goto error_drm_fd;
}
struct wlr_allocator *alloc = wlr_gbm_allocator_create(drm_fd);
if (alloc == NULL) {
wl->allocator = wlr_gbm_allocator_create(drm_fd);
if (wl->allocator == NULL) {
wlr_log(WLR_ERROR, "Failed to create GBM allocator");
close(drm_fd);
goto error_drm_fd;
}
wl->allocator = alloc;
} else {
wlr_log(WLR_DEBUG, "No render node found, falling back to shared memory");
struct wlr_shm_allocator *shm_alloc = wlr_shm_allocator_create();
if (shm_alloc == NULL) {
wl->allocator = wlr_shm_allocator_create();
if (wl->allocator == NULL) {
wlr_log(WLR_ERROR, "Failed to create shared memory allocator");
goto error_remote_display_src;
}
wl->allocator = &shm_alloc->base;
}
wl->renderer = wlr_renderer_autocreate(&wl->backend);