Merge pull request #53 from nyorain/drm_buffer

Implement drm (egl) buffer attaching
This commit is contained in:
Drew DeVault 2017-08-10 22:20:21 -04:00 committed by GitHub
commit 6569c2b626
33 changed files with 427 additions and 74 deletions

View file

@ -12,6 +12,7 @@
#include <wlr/interfaces/wlr_output.h>
#include <wlr/util/list.h>
#include <wlr/util/log.h>
#include <wlr/egl.h>
#include "backend/udev.h"
#include "backend/drm.h"
@ -38,9 +39,14 @@ static void wlr_drm_backend_destroy(struct wlr_backend_state *drm) {
free(drm);
}
static struct wlr_egl *wlr_drm_backend_get_egl(struct wlr_backend_state *drm) {
return &drm->renderer.egl;
}
static struct wlr_backend_impl backend_impl = {
.init = wlr_drm_backend_init,
.destroy = wlr_drm_backend_destroy
.destroy = wlr_drm_backend_destroy,
.get_egl = wlr_drm_backend_get_egl
};
static void session_signal(struct wl_listener *listener, void *data) {
@ -149,6 +155,10 @@ struct wlr_backend *wlr_drm_backend_create(struct wl_display *display,
goto error_event;
}
if (!wlr_egl_bind_display(&drm->renderer.egl, display)) {
wlr_log(L_INFO, "Failed to bind egl/wl display: %s", egl_error());
}
return backend;
error_event:

View file

@ -579,7 +579,7 @@ static bool wlr_drm_output_set_cursor(struct wlr_output_state *output,
wlr_matrix_texture(plane->matrix, plane->width, plane->height,
output->base->transform ^ WL_OUTPUT_TRANSFORM_FLIPPED_180);
plane->wlr_rend = wlr_gles2_renderer_init();
plane->wlr_rend = wlr_gles2_renderer_init(drm->base);
if (!plane->wlr_rend) {
return false;
}