From 705b3da7cb469c661a3dd43212b1baf6fe615ec9 Mon Sep 17 00:00:00 2001 From: Brandon Dowdy Date: Thu, 28 Jan 2021 23:24:52 +0000 Subject: [PATCH] render/egl: remove wlr_egl_{create,destroy}_surface Breaking changes: wlr_egl_create_surface and wlr_egl_destroy_surface have been removed and no longer exist. --- include/wlr/render/egl.h | 9 --------- render/egl.c | 27 --------------------------- 2 files changed, 36 deletions(-) diff --git a/include/wlr/render/egl.h b/include/wlr/render/egl.h index 82aa9505..ae155579 100644 --- a/include/wlr/render/egl.h +++ b/include/wlr/render/egl.h @@ -57,7 +57,6 @@ struct wlr_egl { struct { PFNEGLGETPLATFORMDISPLAYEXTPROC eglGetPlatformDisplayEXT; - PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC eglCreatePlatformWindowSurfaceEXT; PFNEGLCREATEIMAGEKHRPROC eglCreateImageKHR; PFNEGLDESTROYIMAGEKHRPROC eglDestroyImageKHR; PFNEGLQUERYWAYLANDBUFFERWL eglQueryWaylandBufferWL; @@ -100,12 +99,6 @@ void wlr_egl_destroy(struct wlr_egl *egl); */ bool wlr_egl_bind_display(struct wlr_egl *egl, struct wl_display *local_display); -/** - * Returns a surface for the given native window - * The window must match the remote display the wlr_egl was created with. - */ -EGLSurface wlr_egl_create_surface(struct wlr_egl *egl, void *window); - /** * Creates an EGL image from the given wl_drm buffer resource. */ @@ -164,8 +157,6 @@ void wlr_egl_save_context(struct wlr_egl_context *context); */ bool wlr_egl_restore_context(struct wlr_egl_context *context); -bool wlr_egl_destroy_surface(struct wlr_egl *egl, EGLSurface surface); - int wlr_egl_dup_drm_fd(struct wlr_egl *egl); #endif diff --git a/render/egl.c b/render/egl.c index 8be8e008..6cd1b903 100644 --- a/render/egl.c +++ b/render/egl.c @@ -174,8 +174,6 @@ struct wlr_egl *wlr_egl_create(EGLenum platform, void *remote_display, } load_egl_proc(&egl->procs.eglGetPlatformDisplayEXT, "eglGetPlatformDisplayEXT"); - load_egl_proc(&egl->procs.eglCreatePlatformWindowSurfaceEXT, - "eglCreatePlatformWindowSurfaceEXT"); if (check_egl_ext(client_exts_str, "EGL_KHR_debug")) { load_egl_proc(&egl->procs.eglDebugMessageControlKHR, @@ -418,17 +416,6 @@ bool wlr_egl_destroy_image(struct wlr_egl *egl, EGLImage image) { return egl->procs.eglDestroyImageKHR(egl->display, image); } -EGLSurface wlr_egl_create_surface(struct wlr_egl *egl, void *window) { - assert(egl->procs.eglCreatePlatformWindowSurfaceEXT); - EGLSurface surf = egl->procs.eglCreatePlatformWindowSurfaceEXT( - egl->display, egl->config, window, NULL); - if (surf == EGL_NO_SURFACE) { - wlr_log(WLR_ERROR, "Failed to create EGL surface"); - return EGL_NO_SURFACE; - } - return surf; -} - bool wlr_egl_make_current(struct wlr_egl *egl) { if (!eglMakeCurrent(egl->display, EGL_NO_SURFACE, EGL_NO_SURFACE, egl->context)) { @@ -737,20 +724,6 @@ bool wlr_egl_export_image_to_dmabuf(struct wlr_egl *egl, EGLImageKHR image, return true; } -bool wlr_egl_destroy_surface(struct wlr_egl *egl, EGLSurface surface) { - if (!surface) { - return true; - } - if (eglGetCurrentContext() == egl->context && - eglGetCurrentSurface(EGL_DRAW) == surface) { - // Reset the current EGL surface in case it's the one we're destroying, - // otherwise the next wlr_egl_make_current call will result in a - // use-after-free. - wlr_egl_make_current(egl); - } - return eglDestroySurface(egl->display, surface); -} - static bool device_has_name(const drmDevice *device, const char *name) { for (size_t i = 0; i < DRM_NODE_MAX; i++) { if (!(device->available_nodes & (1 << i))) {