Browse Source

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

Sylvain 2 years ago
parent
commit
90a480a100
1 changed files with 7 additions and 1 deletions
  1. 7 1
      src/render/metal/SDL_render_metal.m

+ 7 - 1
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;