From 8aad49238b6ddc0615657bfdb448ed07a61c1b01 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 9 Dec 2017 19:41:08 -0800 Subject: [PATCH] Fixed normalized coordinates when the viewport is set --- src/render/metal/SDL_render_metal.m | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/render/metal/SDL_render_metal.m b/src/render/metal/SDL_render_metal.m index 04dd8857420e9..2a18190e7af58 100644 --- a/src/render/metal/SDL_render_metal.m +++ b/src/render/metal/SDL_render_metal.m @@ -617,8 +617,8 @@ static void METAL_ActivateRenderer(SDL_Renderer * renderer) [data.mtlcmdencoder setRenderPipelineState:ChoosePipelineState(data.mtlpipelineprims, renderer->blendMode)]; [data.mtlcmdencoder setFragmentBytes:color length:sizeof(color) atIndex:0]; - const float w = (float) data.mtlpassdesc.colorAttachments[0].texture.width; - const float h = (float) data.mtlpassdesc.colorAttachments[0].texture.height; + const float w = (float)renderer->viewport.w; + const float h = (float)renderer->viewport.h; // !!! FIXME: we can convert this in the shader. This will save the malloc and for-loop, but we still need to upload. float *ptr = verts; @@ -658,8 +658,8 @@ static void METAL_ActivateRenderer(SDL_Renderer * renderer) [data.mtlcmdencoder setRenderPipelineState:ChoosePipelineState(data.mtlpipelineprims, renderer->blendMode)]; [data.mtlcmdencoder setFragmentBytes:color length:sizeof(color) atIndex:0]; - const float w = (float) data.mtlpassdesc.colorAttachments[0].texture.width; - const float h = (float) data.mtlpassdesc.colorAttachments[0].texture.height; + const float w = (float)renderer->viewport.w; + const float h = (float)renderer->viewport.h; for (int i = 0; i < count; i++, rects++) { if ((rects->w <= 0.0f) || (rects->h <= 0.0f)) continue; @@ -686,8 +686,8 @@ static void METAL_ActivateRenderer(SDL_Renderer * renderer) METAL_ActivateRenderer(renderer); METAL_RenderData *data = (__bridge METAL_RenderData *) renderer->driverdata; METAL_TextureData *texturedata = (__bridge METAL_TextureData *)texture->driverdata; - const float w = (float) data.mtlpassdesc.colorAttachments[0].texture.width; - const float h = (float) data.mtlpassdesc.colorAttachments[0].texture.height; + const float w = (float)renderer->viewport.w; + const float h = (float)renderer->viewport.h; const float texw = (float) texturedata.mtltexture.width; const float texh = (float) texturedata.mtltexture.height;