SDL: End current scene before destroying the texture on Vita

From 3b2fbb1cb7f0ae7c569dd9abee0652eac51164c0 Mon Sep 17 00:00:00 2001
From: Northfear <[EMAIL REDACTED]>
Date: Mon, 20 Sep 2021 23:44:22 +0300
Subject: [PATCH] End current scene before destroying the texture on Vita

---
 src/render/vitagxm/SDL_render_vita_gxm.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/render/vitagxm/SDL_render_vita_gxm.c b/src/render/vitagxm/SDL_render_vita_gxm.c
index bd9230f9e1..d3699cc4ad 100644
--- a/src/render/vitagxm/SDL_render_vita_gxm.c
+++ b/src/render/vitagxm/SDL_render_vita_gxm.c
@@ -1241,7 +1241,16 @@ VITA_GXM_DestroyTexture(SDL_Renderer *renderer, SDL_Texture *texture)
     if(vita_texture->tex == 0)
         return;
 
-    sceGxmFinish(data->gxm_context);
+    // make sure that texture isn't used
+    if (data->drawing) {
+        sceGxmEndScene(data->gxm_context, NULL, NULL);
+        data->drawing = SDL_FALSE;
+        sceGxmFinish(data->gxm_context);
+        StartDrawing(renderer);
+    }
+    else {
+        sceGxmFinish(data->gxm_context);
+    }
 
     free_gxm_texture(vita_texture->tex);