diff --git a/include/wlr/render/gles2.h b/include/wlr/render/gles2.h index b8c9a41a..c53353d3 100644 --- a/include/wlr/render/gles2.h +++ b/include/wlr/render/gles2.h @@ -17,6 +17,8 @@ struct wlr_egl; struct wlr_renderer *wlr_gles2_renderer_create(struct wlr_egl *egl); +struct wlr_egl *wlr_gles2_renderer_get_egl(struct wlr_renderer *renderer); + struct wlr_texture *wlr_gles2_texture_from_pixels(struct wlr_egl *egl, enum wl_shm_format wl_fmt, uint32_t stride, uint32_t width, uint32_t height, const void *data); diff --git a/include/wlr/render/wlr_renderer.h b/include/wlr/render/wlr_renderer.h index 33f96b68..522ce738 100644 --- a/include/wlr/render/wlr_renderer.h +++ b/include/wlr/render/wlr_renderer.h @@ -109,6 +109,7 @@ bool wlr_renderer_format_supported(struct wlr_renderer *r, enum wl_shm_format fmt); void wlr_renderer_init_wl_display(struct wlr_renderer *r, struct wl_display *wl_display); + /** * Destroys this wlr_renderer. Textures must be destroyed separately. */ diff --git a/render/gles2/renderer.c b/render/gles2/renderer.c index 1f579aeb..c156923b 100644 --- a/render/gles2/renderer.c +++ b/render/gles2/renderer.c @@ -356,6 +356,12 @@ static void gles2_init_wl_display(struct wlr_renderer *wlr_renderer, } } +struct wlr_egl *wlr_gles2_renderer_get_egl(struct wlr_renderer *wlr_renderer) { + struct wlr_gles2_renderer *renderer = + gles2_get_renderer(wlr_renderer); + return renderer->egl; +} + static void gles2_destroy(struct wlr_renderer *wlr_renderer) { struct wlr_gles2_renderer *renderer = gles2_get_renderer(wlr_renderer);