Add ios support - #102
Add ios support#102Markos-Th09 wants to merge 10 commits into
Conversation
|
As far as I can tell the ASTC changes have nothing to do with iOS support and should be moved to another PR. |
|
@DarioSamo @IsaacMarovitz other than that is there anything else to discuss? |
|
Do you have a way to run the example projects on iOS? |
Yes, although I did not include it here. I have been also developing a port of Unleashed Recompiled for iOS (hopefully coming soon) and so far these changes have been enough. |
|
There seems to be some problems with signing that prevent |
I didn't use the Xcode generator for building for iOS if you used that. With the make or ninja generators I did not encounter any issues. Getting it on device is a bit more convoluted this way so I will investigate what is happening with the Xcode generator. Edit: I made it work with the Xcode generator you can try again. |
6d386d3 to
efd68fb
Compare
|
Can you share the command you used?
This worked on my machine as far as cmake is concerned, but it tried to compile using macOS system SDL2 which doesn't contain the binaries or headers for iOS. |
Sure. I actually used vcpkg to get a build of SDL2 for iOS, so my configure command was: Either clone vcpkg in the same directory and bootstrap it or if you already have it set up just proceed with installing SDL2. The target triple for ios is Should I add vcpkg to this PR? |
|
@IsaacMarovitz were you able to build it this way? |
|
@IsaacMarovitz I just wanted to following up on this. Were you able to get the iOS examples building using the vcpkg and the commands shared above? |
Fixes a bug where a CMake reconfigure would fail to find SDL2 if it was initially resolved via find_package. The issue occurred because the lookup function cached the string value of 'PLUME_SDL2_FOUND'. On a reconfigure, `plume_find_sdl2` exited prematurely and never resolved SDL2 again.
|
@IsaacMarovitz @DarioSamo /// macOS
#ifndef PLUME_MACOS
# define PLUME_MACOS TARGET_OS_OSX
#endifIf the goal of As * TARGET_OS_MAC - Generated code will run on a variant of macOS
* TARGET_OS_OSX - Generated code will run on macOS
* TARGET_OS_IPHONE - Generated code will run on a variant of iOS (firmware, devices, simulator)
* TARGET_OS_IOS - Generated code will run on iOS
* TARGET_OS_MACCATALYST - Generated code will run on macOS
* TARGET_OS_TV - Generated code will run on tvOS
* TARGET_OS_WATCH - Generated code will run on watchOS
* TARGET_OS_VISION - Generated code will run on visionOS
* TARGET_OS_BRIDGE - Generated code will run on bridge devices
* TARGET_OS_SIMULATOR - Generated code will run on an iOS, tvOS, watchOS, or visionOS simulator
* TARGET_OS_DRIVERKIT - Generated code will run on macOS, iOS, tvOS, watchOS, or visionOS |
|
I think you can assume |
iOS keeps a ProMotion panel at 60 Hz unless something actively requests a higher range; a Metal layer blocked on 60 Hz vsync can never escape it on its own. Keep an idle CADisplayLink alive that requests the screen's full frame rate range so above-60 FPS targets take effect. (cherry picked from commit c7e2c32)
iOS: request the display's full frame rate range
Add support for iOS.
and the ASTC texture format.