From 25c5dccac8d31febaae263befafe6d50d8660342 Mon Sep 17 00:00:00 2001 From: Jaakko Keränen Date: Sun, 27 Sep 2020 14:44:43 +0300 Subject: macOS: 10.13 should use OpenGL renderer There appears to be a problem with SDL's Metal renderer under 10.13 (segfault on window creation). --- src/macos.m | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'src/macos.m') diff --git a/src/macos.m b/src/macos.m index 975ba928..1d972ebd 100644 --- a/src/macos.m +++ b/src/macos.m @@ -38,14 +38,25 @@ enum iTouchBarVariant { default_TouchBarVariant, }; +static iInt2 macVer_(void) { + if ([[NSProcessInfo processInfo] respondsToSelector:@selector(operatingSystemVersion)]) { + const NSOperatingSystemVersion ver = [[NSProcessInfo processInfo] operatingSystemVersion]; + return init_I2(ver.majorVersion, ver.minorVersion); + } + return init_I2(10, 10); +} + static NSString *currentSystemAppearance_(void) { /* This API does not exist on 10.13. */ - @try { + if ([NSApp respondsToSelector:@selector(effectiveAppearance)]) { return [[NSApp effectiveAppearance] name]; } - @catch (NSException *) { - return @"NSAppearanceNameAqua"; - } + return @"NSAppearanceNameAqua"; +} + +iBool shouldDefaultToMetalRenderer_MacOS(void) { + const iInt2 ver = macVer_(); + return ver.x > 10 || ver.y > 13; } /*----------------------------------------------------------------------------------------------*/ -- cgit v1.2.3