From a4b48d3e2efaad04f9645a02483b1b42baf51d35 Mon Sep 17 00:00:00 2001 From: Jack253-png Date: Mon, 2 Jun 2025 09:19:33 +0800 Subject: [PATCH] Harmony port: surface destroy --- src/core/ohos/SDL_ohos.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/core/ohos/SDL_ohos.c b/src/core/ohos/SDL_ohos.c index 563e202c35..a651ba296b 100644 --- a/src/core/ohos/SDL_ohos.c +++ b/src/core/ohos/SDL_ohos.c @@ -1,3 +1,4 @@ +#include "SDL3/SDL_video.h" #include "SDL_internal.h" #include #include @@ -328,6 +329,24 @@ static void OnSurfaceChangedCB(OH_NativeXComponent *component, void *window) } static void OnSurfaceDestroyedCB(OH_NativeXComponent *component, void *window) { + SDL_VideoDevice *_this = SDL_GetVideoDevice(); + SDL_Window *win = _this->windows; + while (win != NULL) + { +#ifdef SDL_VIDEO_OPENGL_EGL + if (win->flags & SDL_WINDOW_OPENGL) { + if (win->internal->egl_context) + { + SDL_EGL_DestroyContext(_this, win->internal->egl_context); + } + if (win->internal->egl_surface) + { + SDL_EGL_DestroySurface(_this, win->internal->egl_surface); + } + } +#endif + win = win->next; + } } static void onKeyEvent(OH_NativeXComponent *component, void *window) {