Fixed bug #6199 - Broken clip behaviour on a render target (metal)
diff --git a/src/render/metal/SDL_render_metal.m b/src/render/metal/SDL_render_metal.m
index b17bb45..fdd0438 100644
--- a/src/render/metal/SDL_render_metal.m
+++ b/src/render/metal/SDL_render_metal.m
@@ -1227,7 +1227,13 @@ SetDrawState(SDL_Renderer *renderer, const SDL_RenderCommand *cmd, const SDL_Met
/* 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;