From 452a8ec9401fabc054872fdbd5096c4a87fcea8a Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Wed, 25 May 2022 17:42:24 +0200 Subject: [PATCH] render/egl: add wlr_egl_get_{context,display} This allows compositors to integrate with the wlroots GLES2 renderer, if they need to perform custom GL rendering. --- include/wlr/render/egl.h | 16 ++++++++++++++++ render/egl.c | 8 ++++++++ 2 files changed, 24 insertions(+) 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;