scummvm/backends/platform/ios7
Lars Sundström d8bc349b37 IOS7: Resize main frame depending on keyboard size and orientation
It's important that the main frame, displaying the OpenGL rendered
graphics, has the proper dimensions and depending on the device
orientation. It's also important that the frame is not covered by
the iOS keyboard.

This commit calculates the frame size depening on the orientation
and the keyboard status. The keyboard knows its parent view and
can resize it when the keyboard becomes visible or hidden.

There are multiple scenarios where the frame size is changed.
 - When the keyboard is hidden/shown which can be automatically
   change depending on the device orientation
 - If the system demands the keyboard to get visible or hidden
 - When rotating the device
 - When suspending/resuming the application

There can also be combination of the scenarios above, e.g. if
suspending the application in landscape mode and resume it in
portrait mode.

A lot of effort has been put into testing different scenarios to
verify that the screen size becomes correct. However there might
be some scenario which has not been covered.
2023-07-03 21:50:32 +02:00
..
ios7_app_delegate.h
ios7_app_delegate.mm IOS: Add back new delegate methods but keep old ones 2023-05-03 21:35:17 +01:00
ios7_common.h IOS7: Remove old IOS7 graphic handling 2023-07-03 21:50:32 +02:00
ios7_game_controller.h IOS7: Rework mouse movements to use iOSGraphicsManager 2023-07-03 21:50:32 +02:00
ios7_game_controller.mm IOS7: Rework mouse movements to use iOSGraphicsManager 2023-07-03 21:50:32 +02:00
ios7_gamepad_controller.h IOS7: Implement Apple GCVirtualController 2023-05-05 22:35:03 +02:00
ios7_gamepad_controller.mm IOS7: Implement Apple GCVirtualController 2023-05-05 22:35:03 +02:00
ios7_keyboard.h IOS7: Check keyboard visible if inputView being first responder 2023-01-29 21:13:51 +00:00
ios7_keyboard.mm IOS7: Resize main frame depending on keyboard size and orientation 2023-07-03 21:50:32 +02:00
ios7_main.mm
ios7_misc.mm IOS7: Cleanup code to access Document and app bundle paths 2023-04-27 01:24:30 +01:00
ios7_mouse_controller.h
ios7_mouse_controller.mm IOS7: Remove old IOS7 graphic handling 2023-07-03 21:50:32 +02:00
ios7_options.mm IOS7: Add GUI option to show/hide the keyboard accessory bar 2023-06-25 21:49:33 +01:00
ios7_osys_events.cpp IOS7: Cancel pending button if touch is moved within 250 ms 2023-07-03 21:50:32 +02:00
ios7_osys_main.cpp IOS7: Implement switching of 2D/3D graphics managers 2023-07-03 21:50:32 +02:00
ios7_osys_main.h IOS7: Implement switching of 2D/3D graphics managers 2023-07-03 21:50:32 +02:00
ios7_osys_misc.mm IOS7: Remove support for non-sandboxed mode 2023-04-26 22:31:31 +01:00
ios7_osys_sound.cpp
ios7_osys_video.mm IOS7: Remove old IOS7 graphic handling 2023-07-03 21:50:32 +02:00
ios7_scummvm_view_controller.h IOS7: Fix detection of orientation on some devices 2023-04-26 08:29:59 +02:00
ios7_scummvm_view_controller.mm IOS7: Fix orientation detection when the view becomes visible 2023-04-27 01:24:30 +01:00
ios7_touch_controller.h
ios7_touch_controller.mm IOS7: Rework mouse movements to use iOSGraphicsManager 2023-07-03 21:50:32 +02:00
ios7_video.h IOS7: Resize main frame depending on keyboard size and orientation 2023-07-03 21:50:32 +02:00
ios7_video.mm IOS7: Resize main frame depending on keyboard size and orientation 2023-07-03 21:50:32 +02:00
module.mk IOS7: Implement port-specifc option widget 2023-05-05 22:35:03 +02:00
README.md

ScummVM for iOS 7.1+

This is a quick fix of the latest ScummVM (1.8.0) for iOS 7.1. It has been tested on real iPhone 6S+, and iPad Pro, and also on all the available Xcode simulators.

I tried to use all the latest iOS features to replace the old code. For instance, it uses gesture recognizers most of the time, it supports the new iPhones 6 / 6+ / 6s / 6s+ resolution, and you can copy your game files using iTunes.

Compilation

See https://wiki.scummvm.org/index.php/Compiling_ScummVM/iPhone

Usage

The game data files can be copied on the iOS device using iTunes. Once done, add your games in ScummVM as usual.

Here is a list of the in-game gestures:

Gesture Description
Two fingers swipe down Display the ScummVM menu for loading, saving, etc.
Two fingers swipe right Enable / disable the touchpad mode
Two fingers swipe up Enable / disable the mouse-click-and-drag mode
Two fingers tap Simulate a right click. You should tap with one finger, and then tap with another while keeping your first finger on the screen.
Two fingers double-tap Skip the cinematic / video

The iOS keyboard is visible when the device is in portrait mode, and hidden in landscape mode.

External devices such as mouse, trackpad and gamepad controllers, are supported from iOS 14 and later.