SDL: Fixed bug #6199 - Broken clip behaviour on a render target (metal)

From 90a480a1001fdec2d4258f56d688fe9049e171e3 Mon Sep 17 00:00:00 2001
From: Sylvain <[EMAIL REDACTED]>
Date: Thu, 8 Sep 2022 05:44:39 +0200
Subject: [PATCH] Fixed bug #6199 - Broken clip behaviour on a render target
 (metal)

---
 src/render/metal/SDL_render_metal.m | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/render/metal/SDL_render_metal.m b/src/render/metal/SDL_render_metal.m
index b17bb4548ef..fdd0438aa7a 100644
--- a/src/render/metal/SDL_render_metal.m
+++ b/src/render/metal/SDL_render_metal.m
@@ -1227,7 +1227,13 @@ @implementation METAL_TextureData
 
         /* Set Scissor Rect Validation: w/h must be <= render pass */
         SDL_zero(output);
-        METAL_GetOutputSize(renderer, &output.w, &output.h);
+
+        if (renderer->target) {
+            output.w = renderer->target->w;
+            output.h = renderer->target->h;
+        } else {
+            METAL_GetOutputSize(renderer, &output.w, &output.h);
+        }
 
         if (SDL_IntersectRect(&output, &clip, &clip)) {
             MTLScissorRect mtlrect;