diff options
Diffstat (limited to 'render')
-rw-r--r-- | render/egl.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/render/egl.c b/render/egl.c index a2f7bd9a..6df5dac8 100644 --- a/render/egl.c +++ b/render/egl.c @@ -411,6 +411,18 @@ bool wlr_egl_is_current(struct wlr_egl *egl) { return eglGetCurrentContext() == egl->context; } +void wlr_egl_save_context(struct wlr_egl_context *context) { + context->display = eglGetCurrentDisplay(); + context->context = eglGetCurrentContext(); + context->draw_surface = eglGetCurrentSurface(EGL_DRAW); + context->read_surface = eglGetCurrentSurface(EGL_READ); +} + +bool wlr_egl_restore_context(struct wlr_egl_context *context) { + return eglMakeCurrent(context->display, context->draw_surface, + context->read_surface, context->context); +} + bool wlr_egl_swap_buffers(struct wlr_egl *egl, EGLSurface surface, pixman_region32_t *damage) { // Never block when swapping buffers on Wayland |