mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-04-17 06:46:39 -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,
|
||||
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) {
|
||||
wlr_log(WLR_ERROR, "Failed to create renderer");
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
/**
|
||||
* 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
|
||||
* 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;
|
||||
}
|
||||
|
||||
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[] = {
|
||||
"auto",
|
||||
"gles2",
|
||||
|
|
@ -297,14 +298,13 @@ out:
|
|||
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);
|
||||
|
||||
return renderer_autocreate(NULL, drm_fd);
|
||||
return renderer_autocreate(NULL, drm_fd, loop);
|
||||
}
|
||||
|
||||
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) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue