From 31cd7079353e9425be2bff41eea93a17e9412c23 Mon Sep 17 00:00:00 2001
From: eleir9268 <[EMAIL REDACTED]>
Date: Sun, 13 Sep 2026 12:08:39 -0400
Subject: [PATCH] QNX: Fix EGL surface creation/destruction bugs. (#16310)
---
src/video/qnx/SDL_qnxgl.c | 1 +
src/video/qnx/SDL_qnxvideo.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/src/video/qnx/SDL_qnxgl.c b/src/video/qnx/SDL_qnxgl.c
index f2b84acb1d905..b0fd200ae526f 100644
--- a/src/video/qnx/SDL_qnxgl.c
+++ b/src/video/qnx/SDL_qnxgl.c
@@ -121,6 +121,7 @@ bool QNX_GLES_SwapWindow(SDL_VideoDevice *_this, SDL_Window *window)
if (surface == EGL_NO_SURFACE) {
return false;
}
+ SDL_SetPointerProperty(SDL_GetWindowProperties(window), SDL_PROP_WINDOW_QNX_SURFACE_POINTER, surface);
if (!SDL_EGL_MakeCurrent(_this, surface, impl->context)) {
return false;
diff --git a/src/video/qnx/SDL_qnxvideo.c b/src/video/qnx/SDL_qnxvideo.c
index 90302a05043c7..1b82090bf7b16 100644
--- a/src/video/qnx/SDL_qnxvideo.c
+++ b/src/video/qnx/SDL_qnxvideo.c
@@ -547,6 +547,7 @@ static void QNX_DestroyWindow(SDL_VideoDevice *_this, SDL_Window *window)
SDL_WindowData *impl = (SDL_WindowData *)window->internal;
if (impl) {
+ SDL_EGL_DestroySurface(_this, impl->egl_surface);
screen_destroy_window(impl->window);
window->internal = NULL;
}