Commit graph

38 commits

Author SHA1 Message Date
Lars Sundström
6684dea683 IOS7: Update the window size correctly
Applications running on iOS are usually full screen. On newer iPads
and when running iOS applications on macOS the application window
size can be changed.

When running the iOS application on macOS using "Designed for iPad"
option, the window can be changed, also to full screen. The function
"safeAreaInsetsDidChange" is then called. Update the screen size
using the view window property instead of checking the UIScreen
window bounds since these never changes.

If forcing the application to run in full screen setting the option
UIRequiresFullScreen to TRUE, it seems to trigger ScummVM to run
in portrait mode instead of landscape mode when running the app in
macOS using "Designed for iPad" on Apple silicon macs.

The UI doesn't require full screen since the application handles
resolution changes nice.

Cherry-pick of: 2eb03dbc04
2024-03-02 12:06:27 +01:00
Eugene Sandulenko
bfe03dad48
RELEASE: This is 2.8.1pre 2023-12-16 22:13:26 +01:00
Eugene Sandulenko
710878a86b
RELEASE: This is 2.8.0pre 2023-12-03 22:04:01 +01:00
Lars Sundström
b876e2342d PORTS: DISTS: Add ios7 on-screen icon assets
When building the iOS port of ScummVM using configure instead of
Xcode, the on-screen icons were not copied to the generated bundle.
Assets not being application icons or launch images are compiled to
an Assets.car file by Xcode and put in the root directory of the
application bundle.

Generate a Assets.car containg the on-screen icons by running the
following command in the dists/ios7 directory:
xcrun actool ./Images.xcassets --compile build --platform iphoneos \
--minimum-deployment-target 7.0 --app-icon AppIcon \
--output-partial-info-plist partial.plist \
--launch-image LaunchImage

The Assets.car seems to be a proprietary Apple’s archive that first
appeared in iOS 7.

This commit adds a compiled Assets.car contating the assets to the
ios7 dists, just as in the tvos dist. The Assets.car file is then
copied to the root directory of the app bundle in the ports.mk file
when running "make ios7bundle"
2023-11-11 22:59:24 +01:00
Lars Sundström
94d859f790 DISTS: IOS7: Add ios-help.zip
Add zip file containing images for the help section for the iOS
port.
2023-10-11 23:14:37 +02:00
Lars Sundström
ac98432429 DISTS: IOS7: Add touch mode assets
The Android backend have two on-screen controls. One for configuring
the touch mode setting and one for accessing the main menu.
The on-screen controls are presented as two clickable buttons.
The image of the touch mode setting changes depending on which mode
that is configured.

Add the same images as assets to the iOS port. Unfortunately it's
not possible to share the same resource files becuase the assets
in Android are of type Android vector drawable.
iOS can handle vector based images, but only in form as a PDF.
There's a lot to read about this format but luckily there are free
converter tools between the formats.

Add converted versions to the iOS7 port.
2023-10-10 20:55:48 +02:00
Lars Sundström
a75d53a5ec DISTS: Add ITSAppUsesNonExemptEncryption property to Info.plist
Every time ScummVM iOS application is submitted to TestFlight or the
App Store, App Store Connect asks a question about the application's
export compliance. To not have to answer that question on every
upload, set the property ITSAppUsesNonExemptEncryption in Info.plist
to NO.

ScummVM uses third-party libraries that utilizes encryption, however
these are configured to use standard encryption algorithms or crypto
functionality within Apple’s operating system, thus fulfilling the
export compliance.
2023-05-09 14:33:56 +02:00
Lars Sundström
4803785aaf DISTS: Remove UIApplicationExitsOnSuspend from ios7 Info.plist
The option UIApplicationExitsOnSuspend is deprecated and not valid
anymore. Remove it to be able to push app to AppStore connect.
2023-03-16 14:41:10 +01:00
Lars Sundström
4d1a78c6ed DISTS: Add AppStore icon for ios7 port
Apple requires a 1024x1024 icon with no transparency as an AppStore
icon.
When updating the icon set Xcode automatically changed the json file
structure to have the file names on top of each record.
2023-03-16 14:41:10 +01:00
Lothar Serra Mari
baa0a1fa10 RELEASE: This is 2.8.0git 2023-01-20 20:31:01 +01:00
Lars Sundström
8d395fd790 IOS7: Add support for Extended Gamepad controllers
Add support for Extended Gamepad controllers. What defines extended
gamepad controllers can be found here:
https://developer.apple.com/documentation/gamecontroller/gcextendedgamepad

Support has been added for controlling the pointer position using the
left thumbstick, left clicks using the A-button and right clicks using
the B-button. Also the Main menu can be accessed using the Home/Menu
button.

The thumbstick values are received when changed, however if holding the
thumbstick in the same position the valueChangedHandler will not be
called. Therefore store the X- and Y-axis values and begin to poll
readings of the stored values for as long as the thumbstick is out of
the center position.
2022-08-08 21:08:56 +01:00
Lars Sundström
db2e15b3f1 IOS7: Factor out touch pointer handling to TouchController class
Move touch inputs to a TouchController class to move some logic from the
iPhoneView class. Only do this for touches on screen since connected
trackpads can generate touches as well. The latter ones are of type
UITouchTypeIndirectPointer while touches on screen are of type
UITouchTypeDirect. They are separated thanks to the preference key
UIApplicationSupportsIndirectInputEvents set to YES in Info.plist.
Without the preference above, there is no way to distinguish touches
from screen from a trackpad.
2022-08-08 21:08:56 +01:00
Lars Sundström
4133cf4b9f IOS7: Add GameController capability
Add the GameController framework to the project and enable support for
controller user interaction in the Info.plist file. This allows for
Game Controller compatible devices to notify the application when
connected.

Add GameController framework to configure and ports.mk if not using
Xcode to build the target.
2022-08-08 21:08:56 +01:00
Lothar Serra Mari
a07be8c665 RELEASE: This is 2.7.0git 2022-06-05 20:43:05 +02:00
Eugene Sandulenko
9a4f0b7c66
RELEASE: This is 2.6.0git now 2021-10-01 16:04:48 +03:00
Thierry Crozat
8ef63e0e0d IOS7: Add support for upside down portrait orientation 2021-09-29 20:30:16 +01:00
Eugene Sandulenko
580ec65220
RELEASE: This is 2.4.0git 2021-08-28 21:01:11 +02:00
Thierry Crozat
b33746e37f IOS7: Fix building with Xcode
This partially revert commit 0ff00cca2a and should hopefully
fix bug #12647.

The issue is that the executable name in the Info.plist did not
match the name of the executable generated by Xcode (ScummVM vs
scummvm). I changed it back to $(EXECUTABLE_NAME), which is
automatically replaced by Xcode, and added a sed command to the
make target to replace it with the actual executable name (as
we did with the $(PRODUCT_BUNDLE_IDENTIFIER) already).

An alternative would be to hardcode the name to "scummvm" in the
Info.plist and change the iphonebundle and ios7bundle target to
also use all lower case scummvm when copying the executable.
2021-08-12 21:27:30 +01:00
Le Philousophe
0ff00cca2a MACOS/IPHONE: Sign whole bundle
Add signing to MacOS for arm64 builds
2021-05-29 17:25:22 +02:00
Matthew Duggan
5135f1f4b9 ALL: Run optipng to reduce png file size 2020-11-01 21:34:03 +09:00
Andrew Martin
d20d597f72 IOS: Add LaunchScreen.storyboard to support full screen on iPad Pro 2020-09-06 23:38:00 +01:00
Eugene Sandulenko
98e0b14852 RELEASE: This is 2.3.0git 2020-08-30 13:42:19 +02:00
Eugene Sandulenko
41b49444b6 RELEASE: This is 2.2.0git 2019-09-23 00:12:30 +02:00
Matan Bareket
eaa9f23505 BUILD: Update logos and icons on ports 2019-04-02 10:55:57 -04:00
Cameron Cawley
a39377724f IOS: Sync Info.plist.in and Info.plist 2018-11-14 05:46:21 +00:00
Yoshi Sugawara
b4bad9100a 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.
2018-10-28 17:16:06 +00:00
Jonny Bergström
4d36385ccb Fix launch on recent iOS device (iOS 11.4.1) 2018-09-10 12:20:56 +02:00
Thierry Crozat
cd7e6cd31c RELEASE: This is 2.1.0git 2017-11-30 00:13:10 +00:00
Colin Snover
c13defd661 RELEASE: 1.10 will henceforth be known as 2.0
General consensus on the ML was that people wanted to do this.
http://lists.scummvm.org/pipermail/scummvm-devel/2017-November/012008.html
2017-11-21 15:26:52 -06:00
Eugene Sandulenko
53790e7497 RELEASE: This is 1.10.0git 2016-09-26 20:57:54 +02:00
Vincent Bénony
d1c0a1f8e5 IOS: Adds support for iPad
These keys are automatically added by Xcode when one compiles a regular Xcode project, but are missing when compiling from the command line.
2016-02-13 17:00:53 +02:00
Eugene Sandulenko
0930018045 RELEASE: This is 1.9.0git 2016-02-05 23:31:25 +01:00
Vincent Bénony
15a1db3fa0 IOS: Updates the splash screens 2016-01-07 13:50:34 +01:00
Vincent Bénony
ac94ad1162 IOS: Update the autotools template files 2016-01-06 16:20:28 +01:00
Vincent Bénony
cfcd3842ed IOS: Adds iPhone 6/6+ launch screens 2016-01-06 16:17:37 +01:00
Vincent Bénony
5035a6e394 IOS: Recommanded settings for Xcode 7.2 2016-01-06 16:17:36 +01:00
Vincent Bénony
e9378ccf3e IOS: Avoid subclassing UIApplication, and handle multitasking 2016-01-06 16:17:35 +01:00
Vincent Bénony
638dc113f8 IOS: Create two targets for old iPhone (iOS <= 6) and new one (iOS >= 7)
The "iphone" backend is the support for the old iPhones.
The "ios7" backend is for the new iPhones.
2016-01-06 16:17:33 +01:00