From 705b3da7cb469c661a3dd43212b1baf6fe615ec9 Mon Sep 17 00:00:00 2001
From: Brandon Dowdy <berylline@users.noreply.github.com>
Date: Thu, 28 Jan 2021 23:24:52 +0000
Subject: 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))) {
-- 
cgit v1.2.3