diff --git a/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..7f8715d --- /dev/null +++ b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,252 @@ +{ + "images": [ + { + "filename": "Icon40.png", + "idiom": "iphone", + "scale": "2x", + "size": "20x20" + }, + { + "filename": "Icon60.png", + "idiom": "iphone", + "scale": "3x", + "size": "20x20" + }, + { + "filename": "Icon58.png", + "idiom": "iphone", + "scale": "2x", + "size": "29x29" + }, + { + "filename": "Icon87.png", + "idiom": "iphone", + "scale": "3x", + "size": "29x29" + }, + { + "filename": "Icon80.png", + "idiom": "iphone", + "scale": "2x", + "size": "40x40" + }, + { + "filename": "Icon120.png", + "idiom": "iphone", + "scale": "3x", + "size": "40x40" + }, + { + "filename": "Icon120.png", + "idiom": "iphone", + "scale": "2x", + "size": "60x60" + }, + { + "filename": "Icon180.png", + "idiom": "iphone", + "scale": "3x", + "size": "60x60" + }, + { + "filename": "Icon20.png", + "idiom": "ipad", + "scale": "1x", + "size": "20x20" + }, + { + "filename": "Icon40.png", + "idiom": "ipad", + "scale": "2x", + "size": "20x20" + }, + { + "filename": "Icon29.png", + "idiom": "ipad", + "scale": "1x", + "size": "29x29" + }, + { + "filename": "Icon58.png", + "idiom": "ipad", + "scale": "2x", + "size": "29x29" + }, + { + "filename": "Icon40.png", + "idiom": "ipad", + "scale": "1x", + "size": "40x40" + }, + { + "filename": "Icon80.png", + "idiom": "ipad", + "scale": "2x", + "size": "40x40" + }, + { + "filename": "Icon76.png", + "idiom": "ipad", + "scale": "1x", + "size": "76x76" + }, + { + "filename": "Icon152.png", + "idiom": "ipad", + "scale": "2x", + "size": "76x76" + }, + { + "filename": "Icon167.png", + "idiom": "ipad", + "scale": "2x", + "size": "83.5x83.5" + }, + { + "filename": "Icon1024.png", + "idiom": "ios-marketing", + "scale": "1x", + "size": "1024x1024" + }, + { + "idiom": "car", + "scale": "2x", + "size": "60x60" + }, + { + "idiom": "car", + "scale": "3x", + "size": "60x60" + }, + { + "idiom": "watch", + "role": "notificationCenter", + "scale": "2x", + "size": "24x24", + "subtype": "38mm" + }, + { + "idiom": "watch", + "role": "notificationCenter", + "scale": "2x", + "size": "27.5x27.5", + "subtype": "42mm" + }, + { + "idiom": "watch", + "role": "companionSettings", + "scale": "2x", + "size": "29x29" + }, + { + "idiom": "watch", + "role": "companionSettings", + "scale": "3x", + "size": "29x29" + }, + { + "idiom": "watch", + "role": "appLauncher", + "scale": "2x", + "size": "40x40", + "subtype": "38mm" + }, + { + "idiom": "watch", + "role": "appLauncher", + "scale": "2x", + "size": "44x44", + "subtype": "40mm" + }, + { + "idiom": "watch", + "role": "appLauncher", + "scale": "2x", + "size": "50x50", + "subtype": "44mm" + }, + { + "idiom": "watch", + "role": "quickLook", + "scale": "2x", + "size": "86x86", + "subtype": "38mm" + }, + { + "idiom": "watch", + "role": "quickLook", + "scale": "2x", + "size": "98x98", + "subtype": "42mm" + }, + { + "idiom": "watch", + "role": "quickLook", + "scale": "2x", + "size": "108x108", + "subtype": "44mm" + }, + { + "idiom": "watch-marketing", + "scale": "1x", + "size": "1024x1024" + }, + { + "idiom": "mac", + "scale": "1x", + "size": "16x16" + }, + { + "idiom": "mac", + "scale": "2x", + "size": "16x16" + }, + { + "idiom": "mac", + "scale": "1x", + "size": "32x32" + }, + { + "idiom": "mac", + "scale": "2x", + "size": "32x32" + }, + { + "idiom": "mac", + "scale": "1x", + "size": "128x128" + }, + { + "idiom": "mac", + "scale": "2x", + "size": "128x128" + }, + { + "idiom": "mac", + "scale": "1x", + "size": "256x256" + }, + { + "idiom": "mac", + "scale": "2x", + "size": "256x256" + }, + { + "idiom": "mac", + "scale": "1x", + "size": "512x512" + }, + { + "idiom": "mac", + "scale": "2x", + "size": "512x512" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "pre-rendered": false + } +} \ No newline at end of file diff --git a/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png new file mode 100644 index 0000000..b573205 Binary files /dev/null and b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png differ diff --git a/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png new file mode 100644 index 0000000..0b74155 Binary files /dev/null and b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png differ diff --git a/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png new file mode 100644 index 0000000..1c19313 Binary files /dev/null and b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png differ diff --git a/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png new file mode 100644 index 0000000..4e3e8bd Binary files /dev/null and b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png differ diff --git a/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png new file mode 100644 index 0000000..40a7371 Binary files /dev/null and b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png differ diff --git a/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png new file mode 100644 index 0000000..8bb1383 Binary files /dev/null and b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png differ diff --git a/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png new file mode 100644 index 0000000..bdd130c Binary files /dev/null and b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png differ diff --git a/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png new file mode 100644 index 0000000..75d2789 Binary files /dev/null and b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png differ diff --git a/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png new file mode 100644 index 0000000..06afa60 Binary files /dev/null and b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png differ diff --git a/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png new file mode 100644 index 0000000..2e0db2a Binary files /dev/null and b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png differ diff --git a/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png new file mode 100644 index 0000000..755bc88 Binary files /dev/null and b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png differ diff --git a/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png new file mode 100644 index 0000000..6559bb4 Binary files /dev/null and b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png differ diff --git a/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png new file mode 100644 index 0000000..ca28c8d Binary files /dev/null and b/SDL3-CS.Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png differ diff --git a/SDL3-CS.Tests.iOS/Entitlements.plist b/SDL3-CS.Tests.iOS/Entitlements.plist new file mode 100644 index 0000000..36a8706 --- /dev/null +++ b/SDL3-CS.Tests.iOS/Entitlements.plist @@ -0,0 +1,6 @@ + + + + + + diff --git a/SDL3-CS.Tests.iOS/Info.plist b/SDL3-CS.Tests.iOS/Info.plist new file mode 100644 index 0000000..22aeee1 --- /dev/null +++ b/SDL3-CS.Tests.iOS/Info.plist @@ -0,0 +1,42 @@ + + + + + CFBundleDisplayName + SDL.Tests.iOS + CFBundleIdentifier + SDL.Tests.iOS + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + UIDeviceFamily + + 1 + 2 + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + XSAppIconAssets + Assets.xcassets/AppIcon.appiconset + + diff --git a/SDL3-CS.Tests.iOS/Main.cs b/SDL3-CS.Tests.iOS/Main.cs new file mode 100644 index 0000000..a1a8eb1 --- /dev/null +++ b/SDL3-CS.Tests.iOS/Main.cs @@ -0,0 +1,20 @@ +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using SDL; + +public class Program +{ + public static unsafe void Main(string[] args) + { + NativeLibrary.SetDllImportResolver(typeof(SDL3).Assembly, (_, assembly, path) => NativeLibrary.Load("@rpath/SDL3.framework/SDL3", assembly, path)); + + SDL3.SDL_RunApp(0, null, &main, IntPtr.Zero); + } + + [UnmanagedCallersOnly(CallConvs = new[] { typeof(CallConvCdecl) })] + private static unsafe int main(int argc, byte** argv) + { + SDL.Tests.Program.Main(); + return 0; + } +} diff --git a/SDL3-CS.Tests.iOS/SDL3-CS.Tests.iOS.csproj b/SDL3-CS.Tests.iOS/SDL3-CS.Tests.iOS.csproj new file mode 100644 index 0000000..0c37ee9 --- /dev/null +++ b/SDL3-CS.Tests.iOS/SDL3-CS.Tests.iOS.csproj @@ -0,0 +1,21 @@ + + + + net8.0-ios + SDL3.Tests.iOS + Exe + enable + true + 13.0 + true + + + + + + + + + + + diff --git a/SDL3-CS.sln b/SDL3-CS.sln index c686aa6..a7f2209 100644 --- a/SDL3-CS.sln +++ b/SDL3-CS.sln @@ -23,6 +23,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SDL3-CS.Android", "SDL3-CS. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SDL3-CS.Tests.Android", "SDL3-CS.Tests.Android\SDL3-CS.Tests.Android.csproj", "{E8469DA5-E437-4287-9E2A-8B8F4DC21C1A}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SDL3-CS.Tests.iOS", "SDL3-CS.Tests.iOS\SDL3-CS.Tests.iOS.csproj", "{CCDD11EE-D552-4925-8B68-351AC9317589}" +EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SDL3-CS.Tests.Desktop", "SDL3-CS.Tests.Desktop\SDL3-CS.Tests.Desktop.csproj", "{7E8D719A-5B69-43B7-A9D5-385B6FE7F411}" EndProject Global @@ -51,6 +53,10 @@ Global {E8469DA5-E437-4287-9E2A-8B8F4DC21C1A}.Debug|Any CPU.Build.0 = Debug|Any CPU {E8469DA5-E437-4287-9E2A-8B8F4DC21C1A}.Release|Any CPU.ActiveCfg = Release|Any CPU {E8469DA5-E437-4287-9E2A-8B8F4DC21C1A}.Release|Any CPU.Build.0 = Release|Any CPU + {CCDD11EE-D552-4925-8B68-351AC9317589}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CCDD11EE-D552-4925-8B68-351AC9317589}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CCDD11EE-D552-4925-8B68-351AC9317589}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CCDD11EE-D552-4925-8B68-351AC9317589}.Release|Any CPU.Build.0 = Release|Any CPU {7E8D719A-5B69-43B7-A9D5-385B6FE7F411}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7E8D719A-5B69-43B7-A9D5-385B6FE7F411}.Debug|Any CPU.Build.0 = Debug|Any CPU {7E8D719A-5B69-43B7-A9D5-385B6FE7F411}.Release|Any CPU.ActiveCfg = Release|Any CPU