mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-04-18 06:47:31 -04:00
render: take event loop as input when creating renderer
Some renderers will need access to the event loop for async GPU uploads.
This commit is contained in:
parent
3b3640dda4
commit
7abb227617
3 changed files with 8 additions and 7 deletions
|
|
@ -13,7 +13,8 @@
|
||||||
|
|
||||||
bool init_drm_renderer(struct wlr_drm_backend *drm,
|
bool init_drm_renderer(struct wlr_drm_backend *drm,
|
||||||
struct wlr_drm_renderer *renderer) {
|
struct wlr_drm_renderer *renderer) {
|
||||||
renderer->wlr_rend = renderer_autocreate_with_drm_fd(drm->fd);
|
renderer->wlr_rend = renderer_autocreate_with_drm_fd(drm->fd,
|
||||||
|
wl_display_get_event_loop(drm->display));
|
||||||
if (!renderer->wlr_rend) {
|
if (!renderer->wlr_rend) {
|
||||||
wlr_log(WLR_ERROR, "Failed to create renderer");
|
wlr_log(WLR_ERROR, "Failed to create renderer");
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
/**
|
/**
|
||||||
* Automatically select and create a renderer suitable for the DRM FD.
|
* Automatically select and create a renderer suitable for the DRM FD.
|
||||||
*/
|
*/
|
||||||
struct wlr_renderer *renderer_autocreate_with_drm_fd(int drm_fd);
|
struct wlr_renderer *renderer_autocreate_with_drm_fd(int drm_fd, struct wl_event_loop *loop);
|
||||||
/**
|
/**
|
||||||
* Get the supported render formats. Buffers allocated with a format from this
|
* Get the supported render formats. Buffers allocated with a format from this
|
||||||
* list may be attached via wlr_renderer_begin_with_buffer.
|
* list may be attached via wlr_renderer_begin_with_buffer.
|
||||||
|
|
|
||||||
|
|
@ -229,7 +229,8 @@ static bool has_render_node(struct wlr_backend *backend) {
|
||||||
return has_render_node;
|
return has_render_node;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct wlr_renderer *renderer_autocreate(struct wlr_backend *backend, int drm_fd) {
|
static struct wlr_renderer *renderer_autocreate(struct wlr_backend *backend, int drm_fd,
|
||||||
|
struct wl_event_loop *loop) {
|
||||||
const char *renderer_options[] = {
|
const char *renderer_options[] = {
|
||||||
"auto",
|
"auto",
|
||||||
"gles2",
|
"gles2",
|
||||||
|
|
@ -297,14 +298,13 @@ out:
|
||||||
return renderer;
|
return renderer;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct wlr_renderer *renderer_autocreate_with_drm_fd(int drm_fd) {
|
struct wlr_renderer *renderer_autocreate_with_drm_fd(int drm_fd, struct wl_event_loop *loop) {
|
||||||
assert(drm_fd >= 0);
|
assert(drm_fd >= 0);
|
||||||
|
return renderer_autocreate(NULL, drm_fd, loop);
|
||||||
return renderer_autocreate(NULL, drm_fd);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct wlr_renderer *wlr_renderer_autocreate(struct wlr_backend *backend) {
|
struct wlr_renderer *wlr_renderer_autocreate(struct wlr_backend *backend) {
|
||||||
return renderer_autocreate(backend, -1);
|
return renderer_autocreate(backend, -1, backend->event_loop);
|
||||||
}
|
}
|
||||||
|
|
||||||
int wlr_renderer_get_drm_fd(struct wlr_renderer *r) {
|
int wlr_renderer_get_drm_fd(struct wlr_renderer *r) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue