diff --git a/include/wlr/render/egl.h b/include/wlr/render/egl.h index 81d4dfa4..06222237 100644 --- a/include/wlr/render/egl.h +++ b/include/wlr/render/egl.h @@ -70,6 +70,22 @@ struct wlr_egl { struct wlr_egl *wlr_egl_create_with_context(EGLDisplay display, EGLContext context); +/** + * Get the EGL display used by the struct wlr_egl. + * + * This is typically used by compositors which need to perform custom OpenGL + * operations. + */ +EGLDisplay wlr_egl_get_display(struct wlr_egl *egl); + +/** + * Get the EGL context used by the struct wlr_egl. + * + * This is typically used by compositors which need to perform custom OpenGL + * operations. + */ +EGLContext wlr_egl_get_context(struct wlr_egl *egl); + /** * Make the EGL context current. * diff --git a/render/egl.c b/render/egl.c index 81ce3b26..dfba8edd 100644 --- a/render/egl.c +++ b/render/egl.c @@ -583,6 +583,14 @@ void wlr_egl_destroy(struct wlr_egl *egl) { free(egl); } +EGLDisplay wlr_egl_get_display(struct wlr_egl *egl) { + return egl->display; +} + +EGLContext wlr_egl_get_context(struct wlr_egl *egl) { + return egl->context; +} + bool wlr_egl_destroy_image(struct wlr_egl *egl, EGLImage image) { if (!egl->exts.KHR_image_base) { return false;