implement on screen virtual controller for iOS

This commit is contained in:
Alex Zenla
2024-09-14 23:39:46 -04:00
parent d7cb051fb7
commit 3b2a6ffb6a
3 changed files with 90 additions and 1 deletions

View File

@ -4,14 +4,33 @@ import Foundation
@objc public static func run() -> Int32 {
Thread.current.qualityOfService = .userInteractive
var flags: ApplicationConfiguration.Flags = [ .resizable, .highDPI, .onScreenVirtualController ]
if enableFullscreenWindow() {
flags = flags.union(.fullscreen)
}
let app = Application(
delegate: Game(),
configuration: ApplicationConfiguration(
frame: Size(1280, 720),
title: "Voxelotl Demo",
flags: [ .resizable, .highDPI ],
flags: flags,
vsyncMode: .on(interval: 1)))
return app.run()
}
static func enableFullscreenWindow() -> Bool {
return Program.isFrontAndCenterGamingDevice()
}
static func isFrontAndCenterGamingDevice() -> Bool {
#if os(iOS)
return !(ProcessInfo.processInfo.isiOSAppOnMac || ProcessInfo.processInfo.isMacCatalystApp)
#elseif os(tvOS)
return true
#else
return false
#endif
}
}