mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-11-02 11:55:59 +01:00
render/shm_allocator: make wlr_shm_allocator_create return a wlr_allocator
This commit is contained in:
parent
c75aa71816
commit
a8c91fbac9
4 changed files with 12 additions and 15 deletions
|
@ -452,21 +452,19 @@ struct wlr_backend *wlr_wl_backend_create(struct wl_display *display,
|
||||||
goto error_drm_fd;
|
goto error_drm_fd;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct wlr_allocator *alloc = wlr_gbm_allocator_create(drm_fd);
|
wl->allocator = wlr_gbm_allocator_create(drm_fd);
|
||||||
if (alloc == NULL) {
|
if (wl->allocator == NULL) {
|
||||||
wlr_log(WLR_ERROR, "Failed to create GBM allocator");
|
wlr_log(WLR_ERROR, "Failed to create GBM allocator");
|
||||||
close(drm_fd);
|
close(drm_fd);
|
||||||
goto error_drm_fd;
|
goto error_drm_fd;
|
||||||
}
|
}
|
||||||
wl->allocator = alloc;
|
|
||||||
} else {
|
} else {
|
||||||
wlr_log(WLR_DEBUG, "No render node found, falling back to shared memory");
|
wlr_log(WLR_DEBUG, "No render node found, falling back to shared memory");
|
||||||
struct wlr_shm_allocator *shm_alloc = wlr_shm_allocator_create();
|
wl->allocator = wlr_shm_allocator_create();
|
||||||
if (shm_alloc == NULL) {
|
if (wl->allocator == NULL) {
|
||||||
wlr_log(WLR_ERROR, "Failed to create shared memory allocator");
|
wlr_log(WLR_ERROR, "Failed to create shared memory allocator");
|
||||||
goto error_remote_display_src;
|
goto error_remote_display_src;
|
||||||
}
|
}
|
||||||
wl->allocator = &shm_alloc->base;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
wl->renderer = wlr_renderer_autocreate(&wl->backend);
|
wl->renderer = wlr_renderer_autocreate(&wl->backend);
|
||||||
|
|
|
@ -622,22 +622,20 @@ struct wlr_backend *wlr_x11_backend_create(struct wl_display *display,
|
||||||
goto error_event;
|
goto error_event;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct wlr_allocator *alloc = wlr_gbm_allocator_create(drm_fd);
|
x11->allocator = wlr_gbm_allocator_create(drm_fd);
|
||||||
if (alloc == NULL) {
|
if (x11->allocator == NULL) {
|
||||||
wlr_log(WLR_ERROR, "Failed to create GBM allocator");
|
wlr_log(WLR_ERROR, "Failed to create GBM allocator");
|
||||||
close(drm_fd);
|
close(drm_fd);
|
||||||
goto error_event;
|
goto error_event;
|
||||||
}
|
}
|
||||||
x11->allocator = alloc;
|
|
||||||
pixmap_formats = &x11->dri3_formats;
|
pixmap_formats = &x11->dri3_formats;
|
||||||
} else if (x11->have_shm) {
|
} else if (x11->have_shm) {
|
||||||
x11->drm_fd = -1;
|
x11->drm_fd = -1;
|
||||||
struct wlr_shm_allocator *shm_alloc = wlr_shm_allocator_create();
|
x11->allocator = wlr_shm_allocator_create();
|
||||||
if (shm_alloc == NULL) {
|
if (x11->allocator == NULL) {
|
||||||
wlr_log(WLR_ERROR, "Failed to create shared memory allocator");
|
wlr_log(WLR_ERROR, "Failed to create shared memory allocator");
|
||||||
goto error_event;
|
goto error_event;
|
||||||
}
|
}
|
||||||
x11->allocator = &shm_alloc->base;
|
|
||||||
pixmap_formats = &x11->shm_formats;
|
pixmap_formats = &x11->shm_formats;
|
||||||
} else {
|
} else {
|
||||||
wlr_log(WLR_ERROR,
|
wlr_log(WLR_ERROR,
|
||||||
|
|
|
@ -18,6 +18,6 @@ struct wlr_shm_allocator {
|
||||||
/**
|
/**
|
||||||
* Creates a new shared memory allocator.
|
* Creates a new shared memory allocator.
|
||||||
*/
|
*/
|
||||||
struct wlr_shm_allocator *wlr_shm_allocator_create(void);
|
struct wlr_allocator *wlr_shm_allocator_create(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -98,12 +98,13 @@ static const struct wlr_allocator_interface allocator_impl = {
|
||||||
.create_buffer = allocator_create_buffer,
|
.create_buffer = allocator_create_buffer,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct wlr_shm_allocator *wlr_shm_allocator_create(void) {
|
struct wlr_allocator *wlr_shm_allocator_create(void) {
|
||||||
struct wlr_shm_allocator *allocator = calloc(1, sizeof(*allocator));
|
struct wlr_shm_allocator *allocator = calloc(1, sizeof(*allocator));
|
||||||
if (allocator == NULL) {
|
if (allocator == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
wlr_allocator_init(&allocator->base, &allocator_impl);
|
wlr_allocator_init(&allocator->base, &allocator_impl);
|
||||||
|
|
||||||
return allocator;
|
wlr_log(WLR_DEBUG, "Created shm allocator");
|
||||||
|
return &allocator->base;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue