From 0a9d83654bca3f41738e8337a82003c87ab50df2 Mon Sep 17 00:00:00 2001 From: Michael Buckley Date: Sun, 1 Mar 2020 16:59:00 -0800 Subject: [PATCH] Mac: Make metal layer inherit content sale from window to fix issues swapping between retina and non-retina monitors --- macosx/mac-render.mm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/macosx/mac-render.mm b/macosx/mac-render.mm index 74e7b1cf..ae2697ba 100644 --- a/macosx/mac-render.mm +++ b/macosx/mac-render.mm @@ -55,7 +55,18 @@ typedef struct vector_float2 textureCoordinate; } MetalVertex; +@interface MetalLayerDelegate: NSObject +@end + +@implementation MetalLayerDelegate +- (BOOL)layer:(CALayer *)layer shouldInheritContentsScale:(CGFloat)newScale fromWindow:(NSWindow *)window +{ + return YES; +} +@end + CAMetalLayer *metalLayer = nil; +MetalLayerDelegate *layerDelegate = nil; id metalDevice = nil; id metalTexture = nil; id metalCommandQueue = nil; @@ -147,6 +158,8 @@ static void S9xInitMetal (void) glScreenH = glScreenBounds.size.height; metalLayer = (CAMetalLayer *)s9xView.layer; + layerDelegate = [MetalLayerDelegate new]; + metalLayer.delegate = layerDelegate; metalDevice = s9xView.device;