Refactor EGL handling

This commit is contained in:
Drew DeVault 2017-08-10 22:15:37 -04:00
parent 4aaf76cb66
commit c24351681f
26 changed files with 156 additions and 98 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) {

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(&output->renderer->egl);
plane->wlr_rend = wlr_gles2_renderer_init(drm->base);
if (!plane->wlr_rend) {
return false;
}