aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backend/drm/renderer.c4
-rw-r--r--backend/headless/output.c4
-rw-r--r--backend/wayland/output.c2
-rw-r--r--backend/x11/output.c2
-rw-r--r--examples/layer-shell.c7
-rw-r--r--include/wlr/render/egl.h2
-rw-r--r--render/egl.c4
7 files changed, 15 insertions, 10 deletions
diff --git a/backend/drm/renderer.c b/backend/drm/renderer.c
index f06de1ee..208d50fa 100644
--- a/backend/drm/renderer.c
+++ b/backend/drm/renderer.c
@@ -80,7 +80,7 @@ bool wlr_drm_surface_init(struct wlr_drm_surface *surf,
gbm_surface_destroy(surf->gbm);
}
if (surf->egl) {
- eglDestroySurface(surf->renderer->egl.display, surf->egl);
+ wlr_egl_destroy_surface(&surf->renderer->egl, surf->egl);
}
surf->gbm = gbm_surface_create(renderer->gbm, width, height,
@@ -118,7 +118,7 @@ void wlr_drm_surface_finish(struct wlr_drm_surface *surf) {
}
if (surf->egl) {
- eglDestroySurface(surf->renderer->egl.display, surf->egl);
+ wlr_egl_destroy_surface(&surf->renderer->egl, surf->egl);
}
if (surf->gbm) {
gbm_surface_destroy(surf->gbm);
diff --git a/backend/headless/output.c b/backend/headless/output.c
index 9c479cde..4b748dbf 100644
--- a/backend/headless/output.c
+++ b/backend/headless/output.c
@@ -30,7 +30,7 @@ static bool output_set_custom_mode(struct wlr_output *wlr_output, int32_t width,
}
if (output->egl_surface) {
- eglDestroySurface(backend->egl.display, output->egl_surface);
+ wlr_egl_destroy_surface(&backend->egl, output->egl_surface);
}
output->egl_surface = egl_create_surface(&backend->egl, width, height);
@@ -73,7 +73,7 @@ static void output_destroy(struct wlr_output *wlr_output) {
wl_event_source_remove(output->frame_timer);
- eglDestroySurface(output->backend->egl.display, output->egl_surface);
+ wlr_egl_destroy_surface(&output->backend->egl, output->egl_surface);
free(output);
}
diff --git a/backend/wayland/output.c b/backend/wayland/output.c
index c1fa638a..9391f07f 100644
--- a/backend/wayland/output.c
+++ b/backend/wayland/output.c
@@ -184,7 +184,7 @@ static void wlr_wl_output_destroy(struct wlr_output *wlr_output) {
wl_callback_destroy(output->frame_callback);
}
- eglDestroySurface(output->backend->egl.display, output->surface);
+ wlr_egl_destroy_surface(&output->backend->egl, output->egl_surface);
wl_egl_window_destroy(output->egl_window);
zxdg_toplevel_v6_destroy(output->xdg_toplevel);
zxdg_surface_v6_destroy(output->xdg_surface);
diff --git a/backend/x11/output.c b/backend/x11/output.c
index df4ff043..77b4fb07 100644
--- a/backend/x11/output.c
+++ b/backend/x11/output.c
@@ -61,7 +61,7 @@ static void output_destroy(struct wlr_output *wlr_output) {
wl_list_remove(&output->link);
wl_event_source_remove(output->frame_timer);
- eglDestroySurface(x11->egl.display, output->surf);
+ wlr_egl_destroy_surface(&x11->egl, output->surf);
xcb_destroy_window(x11->xcb_conn, output->win);
xcb_flush(x11->xcb_conn);
free(output);
diff --git a/examples/layer-shell.c b/examples/layer-shell.c
index d9deb7b0..ec25fe42 100644
--- a/examples/layer-shell.c
+++ b/examples/layer-shell.c
@@ -188,9 +188,8 @@ static void xdg_popup_configure(void *data, struct xdg_popup *xdg_popup,
}
}
-static void popup_destroy()
-{
- eglDestroySurface(egl.display, popup_egl_surface);
+static void popup_destroy() {
+ wlr_egl_destroy_surface(&egl, popup_egl_surface);
wl_egl_window_destroy(popup_egl_window);
xdg_popup_destroy(popup);
wl_surface_destroy(popup_wl_surface);
@@ -262,7 +261,7 @@ static void layer_surface_configure(void *data,
static void layer_surface_closed(void *data,
struct zwlr_layer_surface_v1 *surface) {
- eglDestroySurface(egl.display, egl_surface);
+ wlr_egl_destroy_surface(&egl, egl_surface);
wl_egl_window_destroy(egl_window);
zwlr_layer_surface_v1_destroy(surface);
wl_surface_destroy(wl_surface);
diff --git a/include/wlr/render/egl.h b/include/wlr/render/egl.h
index 0b7f1dde..57570ef9 100644
--- a/include/wlr/render/egl.h
+++ b/include/wlr/render/egl.h
@@ -98,4 +98,6 @@ bool wlr_egl_is_current(struct wlr_egl *egl);
bool wlr_egl_swap_buffers(struct wlr_egl *egl, EGLSurface surface,
pixman_region32_t *damage);
+void wlr_egl_destroy_surface(struct wlr_egl *egl, EGLSurface surface);
+
#endif
diff --git a/render/egl.c b/render/egl.c
index b52682ea..74ac17fd 100644
--- a/render/egl.c
+++ b/render/egl.c
@@ -499,3 +499,7 @@ int wlr_egl_get_dmabuf_modifiers(struct wlr_egl *egl,
}
return num;
}
+
+void wlr_egl_destroy_surface(struct wlr_egl *egl, EGLSurface surface) {
+ eglDestroySurface(egl->display, surface);
+}