mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-11-04 13:29:45 -05:00
backend: don't create renderer if none is available
This commit is contained in:
parent
1b736ef7df
commit
d2094ed473
2 changed files with 0 additions and 28 deletions
|
|
@ -47,9 +47,6 @@ void wlr_backend_init(struct wlr_backend *backend,
|
||||||
void wlr_backend_finish(struct wlr_backend *backend) {
|
void wlr_backend_finish(struct wlr_backend *backend) {
|
||||||
wlr_signal_emit_safe(&backend->events.destroy, backend);
|
wlr_signal_emit_safe(&backend->events.destroy, backend);
|
||||||
wlr_allocator_destroy(backend->allocator);
|
wlr_allocator_destroy(backend->allocator);
|
||||||
if (backend->has_own_renderer) {
|
|
||||||
wlr_renderer_destroy(backend->renderer);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wlr_backend_start(struct wlr_backend *backend) {
|
bool wlr_backend_start(struct wlr_backend *backend) {
|
||||||
|
|
@ -71,33 +68,10 @@ void wlr_backend_destroy(struct wlr_backend *backend) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool backend_create_renderer(struct wlr_backend *backend) {
|
|
||||||
if (backend->renderer != NULL) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
backend->renderer = wlr_renderer_autocreate(backend);
|
|
||||||
if (backend->renderer == NULL) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
backend->has_own_renderer = true;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct wlr_renderer *wlr_backend_get_renderer(struct wlr_backend *backend) {
|
struct wlr_renderer *wlr_backend_get_renderer(struct wlr_backend *backend) {
|
||||||
if (backend->impl->get_renderer) {
|
if (backend->impl->get_renderer) {
|
||||||
return backend->impl->get_renderer(backend);
|
return backend->impl->get_renderer(backend);
|
||||||
}
|
}
|
||||||
if (backend_get_buffer_caps(backend) != 0) {
|
|
||||||
// If the backend is capable of presenting buffers, automatically create
|
|
||||||
// the renderer if necessary.
|
|
||||||
if (!backend_create_renderer(backend)) {
|
|
||||||
wlr_log(WLR_ERROR, "Failed to create backend renderer");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
return backend->renderer;
|
|
||||||
}
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,8 +28,6 @@ struct wlr_backend {
|
||||||
|
|
||||||
// Private state
|
// Private state
|
||||||
|
|
||||||
bool has_own_renderer;
|
|
||||||
struct wlr_renderer *renderer;
|
|
||||||
struct wlr_allocator *allocator;
|
struct wlr_allocator *allocator;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue