Commit Graph

19 Commits

Author SHA1 Message Date
osy 5f7e11e161 display(visionOS): dynamic resolution from window resize 2024-02-25 00:16:27 -08:00
osy 4706e2280f project: rename preprocessor identifier for conditional features 2024-02-25 00:16:27 -08:00
osy 30ae2b2bb0 toolbar(visionOS): always show keyboard with button
visionOS does not support notifications when keyboard is closed.
2023-10-10 20:21:18 -07:00
osy d9db152430 display: implement multiple windows for visionOS
The current multi-window support for iOS uses UIWindowSceneDelegate and
requestSceneSessionActivation() to activate. For visionOS, we can use the
newer SwiftUI APIs with WindowGroups and openWindow(). While this can also
work on newer versions of iOS, for consistency we only use the new APIs on
visionOS.

Using the new APIs allow better handling of window states in visionOS.
Specifically, when we dynamically resize the VM window, the size does not
get saved and restored as the main window size on next launch.
2023-10-10 10:46:27 -07:00
osy b0aabf2fb4 display(iOS): support proper window scaling when resized 2023-08-19 09:04:05 -07:00
osy fa4c50ec7b window(iOS): set display origin/scale at common point 2023-08-18 23:49:37 -07:00
osy 6212edb070 display(iOS): save window state to registry 2022-08-28 19:49:47 -07:00
osy 43557232ff display(iOS): support locking zoom 2022-08-02 22:12:49 -07:00
osy 680ea7bd85 display(iOS): move memory warning to SwiftUI
Prevent showing up on external display.
2022-08-02 19:39:23 -07:00
osy 1921a8b43d project: fix iOS TCI build 2022-07-31 16:24:27 -07:00
osy 97f9ee2233 display(iOS): support external monitor
Resolves #220
2022-07-28 20:36:59 -07:00
osy 7b295d02a7 display(iOS): retain scaling when switching displays
Some weird SwiftUI bug makes it impossible to use a Binding during
updateUIViewController. Also simplify the state storage for origin.
2022-07-28 19:26:49 -07:00
osy e16eaa2d94 display(iOS): support switching displays on a window 2022-07-28 19:25:28 -07:00
osy 4401d0aa81 display(iOS): prepare for multiple windows 2022-07-28 15:29:40 -07:00
osy dcf9c907f3 display(iOS): remove legacy drives menu 2022-07-26 14:09:04 -07:00
osy 5c5d9e3ccc display(iOS): error alert use local message 2022-07-26 14:06:53 -07:00
osy d0fb4372b9 toolbar: add USB listing 2022-07-26 14:05:48 -07:00
osy 3dc1bd2cc7 toolbar: add drives menu in SwiftUI 2022-07-25 17:13:24 -07:00
osy f80002feac display(iOS): refactor VM display window to SwiftUI
In preparation for multiple-display support, the existing view controller is
decoupled from UTMVirtualMachine and UTMSpiceIO and now interfaces solely
with VMDisplayViewControllerDelegate. This allows us to then wrap the VC into
a UIViewControllerRepresentable and isolate much of the state into
VMWindowState (a single window) and VMSessionState (entire VM). Finally, the
loading screens are re-implemented in SwiftUI.
2022-07-24 20:24:34 -07:00