From 525607bad68a18bcafbd6e99c2256e4ec5ee1ea0 Mon Sep 17 00:00:00 2001 From: BZLZHH Date: Sun, 23 Aug 2026 10:55:40 +0800 Subject: [PATCH] [Feat] (Diligent, EGL): release swap chain on EGL surface release --- MobileGL/MG_Backend/Diligent/BackendObject_Diligent.cpp | 7 +++++++ MobileGL/MG_Backend/Diligent/BackendObject_Diligent.h | 1 + 2 files changed, 8 insertions(+) diff --git a/MobileGL/MG_Backend/Diligent/BackendObject_Diligent.cpp b/MobileGL/MG_Backend/Diligent/BackendObject_Diligent.cpp index a8b2a751..1ad583fe 100644 --- a/MobileGL/MG_Backend/Diligent/BackendObject_Diligent.cpp +++ b/MobileGL/MG_Backend/Diligent/BackendObject_Diligent.cpp @@ -841,6 +841,13 @@ namespace MobileGL::MG_Backend::DiligentBackend { BackendObject::ReleaseEGLResources(); } + void BackendObject_Diligent::OnEGLSurfaceReleased(EGLSurface surface) { + (void)surface; + if (m_pRenderer != nullptr) { + m_pRenderer->ReleaseSwapChain(); + } + } + Bool BackendObject_Diligent::ResizeEGLWindowSurface(EGLSurface surface, Uint32 width, Uint32 height) { const std::lock_guard lock(m_eglStateMutex); if (!BackendObject::ResizeEGLWindowSurface(surface, width, height)) { diff --git a/MobileGL/MG_Backend/Diligent/BackendObject_Diligent.h b/MobileGL/MG_Backend/Diligent/BackendObject_Diligent.h index e863c668..1bb21fd8 100644 --- a/MobileGL/MG_Backend/Diligent/BackendObject_Diligent.h +++ b/MobileGL/MG_Backend/Diligent/BackendObject_Diligent.h @@ -44,6 +44,7 @@ namespace MobileGL::MG_Backend::DiligentBackend { Bool InitWindowSurface() override; Bool InitPbufferSurface(EGLint width, EGLint height) override; Bool ResizeEGLWindowSurface(EGLSurface surface, Uint32 width, Uint32 height) override; + void OnEGLSurfaceReleased(EGLSurface surface) override; const RendererInfo& GetRendererInfo() const override; String GetBackendAPIVersionString() const override;