From b4bad9100a07266b38a0adaa2efa597b362f027f Mon Sep 17 00:00:00 2001 From: Yoshi Sugawara Date: Thu, 11 Oct 2018 17:09:44 -1000 Subject: IOS: Support building in Xcode 10/iOS 12, and for iPhone X-like devices that have a "safe area" iOS 12 drops support for libstdc++, so the project needs to be compiled explicitly using libc++. Support the "safe area" when redrawing the view to leave space for the notch in portrait and landscape orientations. --- backends/platform/ios7/ios7_video.mm | 27 +++++++++++ .../xcode/create_project.xcodeproj/project.pbxproj | 6 +++ .../AppIcon.appiconset/Contents.json | 25 ++++++++++ .../LaunchImage.launchimage/Contents.json | 54 +++++++++++++++++++++ .../ScummVM-splash-1125x2436.png | Bin 0 -> 78168 bytes .../ScummVM-splash-1242x2208.png | Bin 189477 -> 50652 bytes .../ScummVM-splash-1242x2688.png | Bin 0 -> 91032 bytes .../ScummVM-splash-1536x2048.png | Bin 233209 -> 88040 bytes .../ScummVM-splash-1792x828.png | Bin 0 -> 52332 bytes .../ScummVM-splash-2048x1536.png | Bin 238722 -> 62956 bytes .../ScummVM-splash-2208x1242.png | Bin 251185 -> 71634 bytes .../ScummVM-splash-2436x1125.png | Bin 0 -> 78711 bytes .../ScummVM-splash-2688x1242.png | Bin 0 -> 110525 bytes .../ScummVM-splash-828x1792.png | Bin 0 -> 43233 bytes dists/ios7/Info.plist | 2 + 15 files changed, 114 insertions(+) create mode 100644 dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-1125x2436.png create mode 100644 dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-1242x2688.png create mode 100644 dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-1792x828.png create mode 100644 dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-2436x1125.png create mode 100644 dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-2688x1242.png create mode 100644 dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-828x1792.png diff --git a/backends/platform/ios7/ios7_video.mm b/backends/platform/ios7/ios7_video.mm index 7ce19f1f4b..35df78ea51 100644 --- a/backends/platform/ios7/ios7_video.mm +++ b/backends/platform/ios7/ios7_video.mm @@ -776,6 +776,7 @@ uint getSizeNextPOT(uint size) { GLfloat ratio = adjustedHeight / adjustedWidth; int height = (int)(screenWidth * ratio); //printf("Making rect (%u, %u)\n", screenWidth, height); + _gameScreenRect = CGRectMake(0, 0, screenWidth, height); overlayPortraitRatio = (_videoContext.overlayHeight * ratio) / _videoContext.overlayWidth; @@ -792,6 +793,32 @@ uint getSizeNextPOT(uint size) { [self setViewTransformation]; [self updateMouseCursorScaling]; + [self adjustViewFrameForSafeArea]; +} + +#ifndef __has_builtin +#define __has_builtin(x) 0 +#endif + +-(void)adjustViewFrameForSafeArea { +#if __has_builtin(__builtin_available) + if ( @available(iOS 11,*) ) { +#else + if ( [[UIApplication sharedApplication] keyWindow] respondsToSelector:@selector(safeAreaInsets) ) { +#endif + CGRect screenSize = [[UIScreen mainScreen] bounds]; + UIEdgeInsets inset = [[UIApplication sharedApplication] keyWindow].safeAreaInsets; + UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; + CGRect newFrame = screenSize; + if ( orientation == UIInterfaceOrientationPortrait ) { + newFrame = CGRectMake(screenSize.origin.x, screenSize.origin.y + inset.top, screenSize.size.width, screenSize.size.height - inset.top); + } else if ( orientation == UIInterfaceOrientationLandscapeLeft ) { + newFrame = CGRectMake(screenSize.origin.x, screenSize.origin.y, screenSize.size.width - inset.right, screenSize.size.height); + } else if ( orientation == UIInterfaceOrientationLandscapeRight ) { + newFrame = CGRectMake(screenSize.origin.x + inset.left, screenSize.origin.y, screenSize.size.width - inset.left, screenSize.size.height); + } + self.frame = newFrame; + } } - (void)setViewTransformation { diff --git a/devtools/create_project/xcode/create_project.xcodeproj/project.pbxproj b/devtools/create_project/xcode/create_project.xcodeproj/project.pbxproj index 55266a875f..9a75f2f7c0 100644 --- a/devtools/create_project/xcode/create_project.xcodeproj/project.pbxproj +++ b/devtools/create_project/xcode/create_project.xcodeproj/project.pbxproj @@ -186,6 +186,7 @@ F9A66C2E1396D36100CEE494 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_CXX_LIBRARY = "libc++"; ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_OPTIMIZATION_LEVEL = 0; @@ -199,6 +200,7 @@ GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.5; ONLY_ACTIVE_ARCH = YES; + OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; SDKROOT = macosx; }; name = Debug; @@ -206,6 +208,7 @@ F9A66C2F1396D36100CEE494 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_CXX_LIBRARY = "libc++"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_PREPROCESSOR_DEFINITIONS = ( POSIX, @@ -215,6 +218,7 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.5; + OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; SDKROOT = macosx; }; name = Release; @@ -230,6 +234,7 @@ "$(inherited)", DEBUG, ); + MACOSX_DEPLOYMENT_TARGET = 10.8; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -242,6 +247,7 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_ENABLE_OBJC_EXCEPTIONS = YES; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; + MACOSX_DEPLOYMENT_TARGET = 10.8; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; diff --git a/dists/ios7/Images.xcassets/AppIcon.appiconset/Contents.json b/dists/ios7/Images.xcassets/AppIcon.appiconset/Contents.json index c37df59806..fe7b33c9d0 100644 --- a/dists/ios7/Images.xcassets/AppIcon.appiconset/Contents.json +++ b/dists/ios7/Images.xcassets/AppIcon.appiconset/Contents.json @@ -1,5 +1,15 @@ { "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, { "size" : "29x29", "idiom" : "iphone", @@ -36,6 +46,16 @@ "filename" : "icon4-60@3x.png", "scale" : "3x" }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, { "size" : "29x29", "idiom" : "ipad", @@ -77,6 +97,11 @@ "idiom" : "ipad", "filename" : "icon4-83.5@2x.png", "scale" : "2x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" } ], "info" : { diff --git a/dists/ios7/Images.xcassets/LaunchImage.launchimage/Contents.json b/dists/ios7/Images.xcassets/LaunchImage.launchimage/Contents.json index 40e3b1e3dd..2f76c4e70b 100644 --- a/dists/ios7/Images.xcassets/LaunchImage.launchimage/Contents.json +++ b/dists/ios7/Images.xcassets/LaunchImage.launchimage/Contents.json @@ -1,5 +1,59 @@ { "images" : [ + { + "extent" : "full-screen", + "idiom" : "iphone", + "subtype" : "2688h", + "filename" : "ScummVM-splash-1242x2688.png", + "minimum-system-version" : "12.0", + "orientation" : "portrait", + "scale" : "3x" + }, + { + "extent" : "full-screen", + "idiom" : "iphone", + "subtype" : "2688h", + "filename" : "ScummVM-splash-2688x1242.png", + "minimum-system-version" : "12.0", + "orientation" : "landscape", + "scale" : "3x" + }, + { + "extent" : "full-screen", + "idiom" : "iphone", + "subtype" : "1792h", + "filename" : "ScummVM-splash-828x1792.png", + "minimum-system-version" : "12.0", + "orientation" : "portrait", + "scale" : "2x" + }, + { + "extent" : "full-screen", + "idiom" : "iphone", + "subtype" : "1792h", + "filename" : "ScummVM-splash-1792x828.png", + "minimum-system-version" : "12.0", + "orientation" : "landscape", + "scale" : "2x" + }, + { + "extent" : "full-screen", + "idiom" : "iphone", + "subtype" : "2436h", + "filename" : "ScummVM-splash-1125x2436.png", + "minimum-system-version" : "11.0", + "orientation" : "portrait", + "scale" : "3x" + }, + { + "extent" : "full-screen", + "idiom" : "iphone", + "subtype" : "2436h", + "filename" : "ScummVM-splash-2436x1125.png", + "minimum-system-version" : "11.0", + "orientation" : "landscape", + "scale" : "3x" + }, { "extent" : "full-screen", "idiom" : "iphone", diff --git a/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-1125x2436.png b/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-1125x2436.png new file mode 100644 index 0000000000..05c8f873d7 Binary files /dev/null and b/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-1125x2436.png differ diff --git a/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-1242x2208.png b/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-1242x2208.png index f88f48d507..fb5c2e1589 100644 Binary files a/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-1242x2208.png and b/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-1242x2208.png differ diff --git a/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-1242x2688.png b/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-1242x2688.png new file mode 100644 index 0000000000..82ddb62b52 Binary files /dev/null and b/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-1242x2688.png differ diff --git a/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-1536x2048.png b/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-1536x2048.png index ca9a2c173a..a71c06d6f3 100644 Binary files a/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-1536x2048.png and b/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-1536x2048.png differ diff --git a/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-1792x828.png b/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-1792x828.png new file mode 100644 index 0000000000..fcdb1e44f6 Binary files /dev/null and b/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-1792x828.png differ diff --git a/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-2048x1536.png b/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-2048x1536.png index 85e661aa31..1439b1595b 100644 Binary files a/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-2048x1536.png and b/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-2048x1536.png differ diff --git a/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-2208x1242.png b/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-2208x1242.png index e013a1e605..4be9066e9c 100644 Binary files a/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-2208x1242.png and b/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-2208x1242.png differ diff --git a/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-2436x1125.png b/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-2436x1125.png new file mode 100644 index 0000000000..2673af269f Binary files /dev/null and b/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-2436x1125.png differ diff --git a/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-2688x1242.png b/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-2688x1242.png new file mode 100644 index 0000000000..c6f086bc8c Binary files /dev/null and b/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-2688x1242.png differ diff --git a/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-828x1792.png b/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-828x1792.png new file mode 100644 index 0000000000..9282deba25 Binary files /dev/null and b/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-828x1792.png differ diff --git a/dists/ios7/Info.plist b/dists/ios7/Info.plist index 617c4993e9..ab408fdae6 100644 --- a/dists/ios7/Info.plist +++ b/dists/ios7/Info.plist @@ -24,6 +24,8 @@ ???? CFBundleVersion 2.1.0git + LSSupportsOpeningDocumentsInPlace + UIApplicationExitsOnSuspend UIDeviceFamily -- cgit v1.2.3