From b779595ee0cc18d45da3615ebccb87365e8f627a Mon Sep 17 00:00:00 2001 From: Adrian Perez de Castro Date: Mon, 25 Mar 2024 11:32:19 +0200 Subject: [PATCH] Revert "Remove image on buffer destroy callback only" This reverts commit cb6b86abfff462c141f017f077760ca61b06568c. --- src/view-backend-exportable-fdo-egl-private.h | 1 + src/view-backend-exportable-fdo-egl.cpp | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/view-backend-exportable-fdo-egl-private.h b/src/view-backend-exportable-fdo-egl-private.h index 0e6caba..e19c177 100644 --- a/src/view-backend-exportable-fdo-egl-private.h +++ b/src/view-backend-exportable-fdo-egl-private.h @@ -33,6 +33,7 @@ struct wpe_fdo_egl_exported_image { EGLImageKHR eglImage { nullptr }; uint32_t width { 0 }; uint32_t height { 0 }; + bool exported { false }; struct wl_resource* bufferResource { nullptr }; struct wl_listener bufferDestroyListener; }; diff --git a/src/view-backend-exportable-fdo-egl.cpp b/src/view-backend-exportable-fdo-egl.cpp index 7e74dee..0031222 100644 --- a/src/view-backend-exportable-fdo-egl.cpp +++ b/src/view-backend-exportable-fdo-egl.cpp @@ -249,6 +249,8 @@ class ClientBundleEGL final : public ClientBundle { { if (image->bufferResource) viewBackend->releaseBuffer(image->bufferResource); + else + deleteImage(image); } void releaseShmBuffer(struct wpe_fdo_shm_exported_buffer* buffer) @@ -275,6 +277,7 @@ class ClientBundleEGL final : public ClientBundle { void exportImage(struct wpe_fdo_egl_exported_image* image) { + image->exported = true; client->export_fdo_egl_image(data, image); } @@ -292,8 +295,6 @@ class ClientBundleEGL final : public ClientBundle { image = wl_container_of(listener, image, bufferDestroyListener); image->bufferResource = nullptr; - - deleteImage(image); } };