From 9867c12dc0fc575d0e3cef5de71dde71aa93477b Mon Sep 17 00:00:00 2001 From: Simon Bruder Date: Sat, 22 Jan 2022 11:15:39 +0100 Subject: [PATCH] Remove old files from SDL external They were already removed in SDL upstream but the update mechanism did not remove them in this repository. They were causing build failures when the SDL external was used. --- externals/SDL/.hgignore | 155 - externals/SDL/COPYING.txt | 20 - externals/SDL/README.txt | 21 - externals/SDL/VisualC-WinRT/SDL2-WinRT.nuspec | 23 - .../SDL/VisualC-WinRT/SDL2-WinRT.targets | 38 - .../SDL2main-WinRT-NonXAML.nuspec | 22 - .../SDL2main-WinRT-NonXAML.targets | 10 - .../SDL/VisualC-WinRT/UWP_VS2015/SDL-UWP.sln | 34 - .../VisualC-WinRT/UWP_VS2015/SDL-UWP.vcxproj | 593 --- .../UWP_VS2015/SDL-UWP.vcxproj.filters | 807 ---- .../WinPhone81_VS2013/SDL-WinPhone81.sln | 28 - .../WinPhone81_VS2013/SDL-WinPhone81.vcxproj | 485 --- .../SDL-WinPhone81.vcxproj.filters | 768 ---- .../WinRT81_VS2013/SDL-WinRT81.sln | 34 - .../WinRT81_VS2013/SDL-WinRT81.vcxproj | 598 --- .../SDL-WinRT81.vcxproj.filters | 804 ---- .../tests/loopwave/Assets/Logo.png | Bin 801 -> 0 bytes .../tests/loopwave/Assets/SmallLogo.png | Bin 329 -> 0 bytes .../tests/loopwave/Assets/SplashScreen.png | Bin 2146 -> 0 bytes .../tests/loopwave/Assets/StoreLogo.png | Bin 429 -> 0 bytes .../tests/loopwave/Package.appxmanifest | 42 - .../tests/loopwave/loopwave_VS2012.vcxproj | 170 - .../loopwave/loopwave_VS2012_TemporaryKey.pfx | Bin 2504 -> 0 bytes .../tests/testthread/Assets/Logo.png | Bin 801 -> 0 bytes .../tests/testthread/Assets/SmallLogo.png | Bin 329 -> 0 bytes .../tests/testthread/Assets/SplashScreen.png | Bin 2146 -> 0 bytes .../tests/testthread/Assets/StoreLogo.png | Bin 429 -> 0 bytes .../tests/testthread/Package.appxmanifest | 42 - .../testthread/testthread_VS2012.vcxproj | 160 - .../testthread_VS2012_TemporaryKey.pfx | Bin 2504 -> 0 bytes externals/SDL/VisualC.html | 146 - .../SDL/SDL.xcodeproj/project.pbxproj | 3508 ----------------- .../xcshareddata/xcschemes/All-iOS.xcscheme | 80 - .../xcshareddata/xcschemes/All-tvOS.xcscheme | 80 - .../PrepareXcodeProjectTemplate.xcscheme | 80 - .../xcschemes/libSDL-iOS-dylib.xcscheme | 80 - .../xcschemes/libSDL-iOS.xcscheme | 80 - .../xcschemes/libSDL-tvOS-dylib.xcscheme | 80 - .../xcschemes/libSDL-tvOS.xcscheme | 80 - .../xcschemes/libSDLmain-iOS.xcscheme | 80 - .../xcschemes/libSDLmain-tvOS.xcscheme | 80 - .../SDL iOS Application/Default-568h@2x.png | Bin 83791 -> 0 bytes .../Template/SDL iOS Application/Default.png | Bin 18383 -> 0 bytes .../Template/SDL iOS Application/Icon.png | Bin 2409 -> 0 bytes .../Template/SDL iOS Application/Info.plist | 28 - .../TemplateIcon.icns | Bin 34248 -> 0 bytes .../TemplateInfo.plist | 10 - .../project.pbxproj | 500 --- .../contents.xcworkspacedata | 7 - .../Template/SDL iOS Application/main.c | 100 - externals/SDL/Xcode/SDL/hidapi/Info.plist | 22 - externals/SDL/acinclude/pkg_config.m4 | 133 - externals/SDL/build-scripts/config.sub.patch | 72 - externals/SDL/build-scripts/gcc-fat.sh | 102 - externals/SDL/build-scripts/iosbuild.sh | 190 - externals/SDL/debian/libsdl2.install | 1 - externals/SDL/docs/README-macosx.md | 240 -- externals/SDL/src/hidapi/SDL_hidapi.h | 35 - externals/SDL/src/hidapi/linux/hid.cpp | 333 -- .../SDL/src/joystick/bsd/SDL_sysjoystick.c | 784 ---- .../SDL/src/joystick/darwin/SDL_sysjoystick.c | 1066 ----- .../src/joystick/darwin/SDL_sysjoystick_c.h | 79 - .../src/joystick/iphoneos/SDL_sysjoystick.m | 863 ---- .../src/joystick/iphoneos/SDL_sysjoystick_c.h | 59 - .../SDL/src/joystick/windows/SDL_mmjoystick.c | 515 --- .../vitagxm/shader_src/texture_tint_f.cg | 4 - .../SDL/src/thread/windows/SDL_syscond_srw.c | 282 -- .../SDL/src/video/cocoa/SDL_cocoamousetap.h | 34 - .../SDL/src/video/cocoa/SDL_cocoamousetap.m | 286 -- .../SDL/src/video/khronos/vulkan/vulkan_mir.h | 65 - .../kmsdrm_legacy/SDL_kmsdrm_legacy_dyn.c | 167 - .../kmsdrm_legacy/SDL_kmsdrm_legacy_dyn.h | 53 - .../kmsdrm_legacy/SDL_kmsdrm_legacy_events.c | 42 - .../kmsdrm_legacy/SDL_kmsdrm_legacy_events.h | 31 - .../kmsdrm_legacy/SDL_kmsdrm_legacy_mouse.c | 502 --- .../kmsdrm_legacy/SDL_kmsdrm_legacy_mouse.h | 45 - .../SDL_kmsdrm_legacy_opengles.c | 152 - .../SDL_kmsdrm_legacy_opengles.h | 48 - .../kmsdrm_legacy/SDL_kmsdrm_legacy_sym.h | 99 - .../kmsdrm_legacy/SDL_kmsdrm_legacy_video.c | 934 ----- .../kmsdrm_legacy/SDL_kmsdrm_legacy_video.h | 132 - externals/SDL/src/video/os2/my_gradd.h | 171 - externals/SDL/src/video/x11/imKStoUCS.c | 350 -- externals/SDL/src/video/x11/imKStoUCS.h | 32 - ...org-kde-kwin-server-decoration-manager.xml | 94 - .../xdg-shell-unstable-v6.xml | 1044 ----- 86 files changed, 18934 deletions(-) delete mode 100755 externals/SDL/.hgignore delete mode 100755 externals/SDL/COPYING.txt delete mode 100755 externals/SDL/README.txt delete mode 100755 externals/SDL/VisualC-WinRT/SDL2-WinRT.nuspec delete mode 100755 externals/SDL/VisualC-WinRT/SDL2-WinRT.targets delete mode 100755 externals/SDL/VisualC-WinRT/SDL2main-WinRT-NonXAML.nuspec delete mode 100755 externals/SDL/VisualC-WinRT/SDL2main-WinRT-NonXAML.targets delete mode 100755 externals/SDL/VisualC-WinRT/UWP_VS2015/SDL-UWP.sln delete mode 100755 externals/SDL/VisualC-WinRT/UWP_VS2015/SDL-UWP.vcxproj delete mode 100755 externals/SDL/VisualC-WinRT/UWP_VS2015/SDL-UWP.vcxproj.filters delete mode 100755 externals/SDL/VisualC-WinRT/WinPhone81_VS2013/SDL-WinPhone81.sln delete mode 100755 externals/SDL/VisualC-WinRT/WinPhone81_VS2013/SDL-WinPhone81.vcxproj delete mode 100755 externals/SDL/VisualC-WinRT/WinPhone81_VS2013/SDL-WinPhone81.vcxproj.filters delete mode 100755 externals/SDL/VisualC-WinRT/WinRT81_VS2013/SDL-WinRT81.sln delete mode 100755 externals/SDL/VisualC-WinRT/WinRT81_VS2013/SDL-WinRT81.vcxproj delete mode 100755 externals/SDL/VisualC-WinRT/WinRT81_VS2013/SDL-WinRT81.vcxproj.filters delete mode 100755 externals/SDL/VisualC-WinRT/tests/loopwave/Assets/Logo.png delete mode 100755 externals/SDL/VisualC-WinRT/tests/loopwave/Assets/SmallLogo.png delete mode 100755 externals/SDL/VisualC-WinRT/tests/loopwave/Assets/SplashScreen.png delete mode 100755 externals/SDL/VisualC-WinRT/tests/loopwave/Assets/StoreLogo.png delete mode 100755 externals/SDL/VisualC-WinRT/tests/loopwave/Package.appxmanifest delete mode 100755 externals/SDL/VisualC-WinRT/tests/loopwave/loopwave_VS2012.vcxproj delete mode 100755 externals/SDL/VisualC-WinRT/tests/loopwave/loopwave_VS2012_TemporaryKey.pfx delete mode 100755 externals/SDL/VisualC-WinRT/tests/testthread/Assets/Logo.png delete mode 100755 externals/SDL/VisualC-WinRT/tests/testthread/Assets/SmallLogo.png delete mode 100755 externals/SDL/VisualC-WinRT/tests/testthread/Assets/SplashScreen.png delete mode 100755 externals/SDL/VisualC-WinRT/tests/testthread/Assets/StoreLogo.png delete mode 100755 externals/SDL/VisualC-WinRT/tests/testthread/Package.appxmanifest delete mode 100755 externals/SDL/VisualC-WinRT/tests/testthread/testthread_VS2012.vcxproj delete mode 100755 externals/SDL/VisualC-WinRT/tests/testthread/testthread_VS2012_TemporaryKey.pfx delete mode 100755 externals/SDL/VisualC.html delete mode 100755 externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/project.pbxproj delete mode 100755 externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/All-iOS.xcscheme delete mode 100755 externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/All-tvOS.xcscheme delete mode 100755 externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/PrepareXcodeProjectTemplate.xcscheme delete mode 100755 externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/libSDL-iOS-dylib.xcscheme delete mode 100755 externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/libSDL-iOS.xcscheme delete mode 100755 externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/libSDL-tvOS-dylib.xcscheme delete mode 100755 externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/libSDL-tvOS.xcscheme delete mode 100755 externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/libSDLmain-iOS.xcscheme delete mode 100755 externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/libSDLmain-tvOS.xcscheme delete mode 100755 externals/SDL/Xcode-iOS/Template/SDL iOS Application/Default-568h@2x.png delete mode 100755 externals/SDL/Xcode-iOS/Template/SDL iOS Application/Default.png delete mode 100755 externals/SDL/Xcode-iOS/Template/SDL iOS Application/Icon.png delete mode 100755 externals/SDL/Xcode-iOS/Template/SDL iOS Application/Info.plist delete mode 100755 externals/SDL/Xcode-iOS/Template/SDL iOS Application/___PROJECTNAME___.xcodeproj/TemplateIcon.icns delete mode 100755 externals/SDL/Xcode-iOS/Template/SDL iOS Application/___PROJECTNAME___.xcodeproj/TemplateInfo.plist delete mode 100755 externals/SDL/Xcode-iOS/Template/SDL iOS Application/___PROJECTNAME___.xcodeproj/project.pbxproj delete mode 100755 externals/SDL/Xcode-iOS/Template/SDL iOS Application/___PROJECTNAME___.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100755 externals/SDL/Xcode-iOS/Template/SDL iOS Application/main.c delete mode 100755 externals/SDL/Xcode/SDL/hidapi/Info.plist delete mode 100755 externals/SDL/acinclude/pkg_config.m4 delete mode 100755 externals/SDL/build-scripts/config.sub.patch delete mode 100755 externals/SDL/build-scripts/gcc-fat.sh delete mode 100755 externals/SDL/build-scripts/iosbuild.sh delete mode 100755 externals/SDL/debian/libsdl2.install delete mode 100755 externals/SDL/docs/README-macosx.md delete mode 100755 externals/SDL/src/hidapi/SDL_hidapi.h delete mode 100755 externals/SDL/src/hidapi/linux/hid.cpp delete mode 100755 externals/SDL/src/joystick/bsd/SDL_sysjoystick.c delete mode 100755 externals/SDL/src/joystick/darwin/SDL_sysjoystick.c delete mode 100755 externals/SDL/src/joystick/darwin/SDL_sysjoystick_c.h delete mode 100755 externals/SDL/src/joystick/iphoneos/SDL_sysjoystick.m delete mode 100755 externals/SDL/src/joystick/iphoneos/SDL_sysjoystick_c.h delete mode 100755 externals/SDL/src/joystick/windows/SDL_mmjoystick.c delete mode 100755 externals/SDL/src/render/vitagxm/shader_src/texture_tint_f.cg delete mode 100755 externals/SDL/src/thread/windows/SDL_syscond_srw.c delete mode 100755 externals/SDL/src/video/cocoa/SDL_cocoamousetap.h delete mode 100755 externals/SDL/src/video/cocoa/SDL_cocoamousetap.m delete mode 100755 externals/SDL/src/video/khronos/vulkan/vulkan_mir.h delete mode 100755 externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_dyn.c delete mode 100755 externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_dyn.h delete mode 100755 externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_events.c delete mode 100755 externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_events.h delete mode 100755 externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_mouse.c delete mode 100755 externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_mouse.h delete mode 100755 externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_opengles.c delete mode 100755 externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_opengles.h delete mode 100755 externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_sym.h delete mode 100755 externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_video.c delete mode 100755 externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_video.h delete mode 100755 externals/SDL/src/video/os2/my_gradd.h delete mode 100755 externals/SDL/src/video/x11/imKStoUCS.c delete mode 100755 externals/SDL/src/video/x11/imKStoUCS.h delete mode 100755 externals/SDL/wayland-protocols/org-kde-kwin-server-decoration-manager.xml delete mode 100755 externals/SDL/wayland-protocols/xdg-shell-unstable-v6.xml diff --git a/externals/SDL/.hgignore b/externals/SDL/.hgignore deleted file mode 100755 index 3e3f68fd6..000000000 --- a/externals/SDL/.hgignore +++ /dev/null @@ -1,155 +0,0 @@ -syntax:glob -aclocal.m4 -autom4te* -config.cache -config.log -config.status -libtool -Makefile -Makefile.rules -sdl2-config -sdl2-config.cmake -sdl2.pc -SDL2.spec -build -gen -Build - -# for CMake -CMakeFiles/ -CMakeCache.txt -cmake_install.cmake -cmake_uninstall.cmake -SDL2ConfigVersion.cmake -*.a -*.la -*.so -*.so.* -.ninja_* -*.ninja - -# for CLion -.idea -cmake-build-* - -# for Xcode -*.orig -*.swp -*.tmp -*.rej -*~ -*.o -*.mode1* -*.perspective* -*.pbxuser -(^|/)build($|/) -.DS_Store -xcuserdata -*.xcworkspace - -# for Visual C++ -Debug -Release -*.user -*.ncb -*.suo -*.sdf -VisualC/tests/loopwave/sample.wav -VisualC/tests/testautomation/CompareSurfaces0001_Reference.bmp -VisualC/tests/testautomation/CompareSurfaces0001_TestOutput.bmp -VisualC/tests/testgamecontroller/axis.bmp -VisualC/tests/testgamecontroller/button.bmp -VisualC/tests/testgamecontroller/controllermap.bmp -VisualC/tests/testoverlay2/moose.dat -VisualC/tests/testrendertarget/icon.bmp -VisualC/tests/testrendertarget/sample.bmp -VisualC/tests/testscale/icon.bmp -VisualC/tests/testscale/sample.bmp -VisualC/tests/testsprite2/icon.bmp -VisualC/visualtest/icon.bmp -VisualC/visualtest/testquit.actions -VisualC/visualtest/testquit.config -VisualC/visualtest/testquit.exe -VisualC/visualtest/testquit.parameters -VisualC/visualtest/testsprite2.exe -VisualC/visualtest/testsprite2_sample.actions -VisualC/visualtest/testsprite2_sample.config -VisualC/visualtest/testsprite2_sample.parameters - -# for Android -android-project/local.properties - -test/aclocal.m4 -test/autom4te* -test/config.cache -test/config.log -test/config.status -test/Makefile -test/SDL2.dll -test/checkkeys -test/controllermap -test/loopwave -test/loopwavequeue -test/testatomic -test/testaudiocapture -test/testaudiohotplug -test/testaudioinfo -test/testautomation -test/testbounds -test/testcustomcursor -test/testdisplayinfo -test/testdraw2 -test/testdrawchessboard -test/testdropfile -test/testerror -test/testfile -test/testfilesystem -test/testgamecontroller -test/testgesture -test/testgl2 -test/testgles -test/testgles2 -test/testhaptic -test/testhittesting -test/testhotplug -test/testiconv -test/testime -test/testintersections -test/testjoystick -test/testkeys -test/testloadso -test/testlock -test/testmessage -test/testmultiaudio -test/testnative -test/testoverlay2 -test/testplatform -test/testpower -test/testqsort -test/testrelative -test/testrendercopyex -test/testrendertarget -test/testresample -test/testrumble -test/testscale -test/testsem -test/testsensor -test/testshader -test/testshape -test/testsprite2 -test/testspriteminimal -test/teststreaming -test/testthread -test/testtimer -test/testver -test/testviewport -test/testvulkan -test/testwm2 -test/testyuv -test/torturethread -test/*.exe -test/*,e1f -test/*,ff8 -test/*.dSYM -buildbot -test/buildbot diff --git a/externals/SDL/COPYING.txt b/externals/SDL/COPYING.txt deleted file mode 100755 index 0e2bef3fc..000000000 --- a/externals/SDL/COPYING.txt +++ /dev/null @@ -1,20 +0,0 @@ - -Simple DirectMedia Layer -Copyright (C) 1997-2020 Sam Lantinga - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. - diff --git a/externals/SDL/README.txt b/externals/SDL/README.txt deleted file mode 100755 index 431ba0e74..000000000 --- a/externals/SDL/README.txt +++ /dev/null @@ -1,21 +0,0 @@ - - Simple DirectMedia Layer - - (SDL) - - Version 2.0 - ---- -https://www.libsdl.org/ - -Simple DirectMedia Layer is a cross-platform development library designed -to provide low level access to audio, keyboard, mouse, joystick, and graphics -hardware via OpenGL and Direct3D. It is used by video playback software, -emulators, and popular games including Valve's award winning catalog -and many Humble Bundle games. - -More extensive documentation is available in the docs directory, starting -with README.md - -Enjoy! - Sam Lantinga (slouken@libsdl.org) diff --git a/externals/SDL/VisualC-WinRT/SDL2-WinRT.nuspec b/externals/SDL/VisualC-WinRT/SDL2-WinRT.nuspec deleted file mode 100755 index 3a663d59e..000000000 --- a/externals/SDL/VisualC-WinRT/SDL2-WinRT.nuspec +++ /dev/null @@ -1,23 +0,0 @@ - - - - SDL2-WinRT - 2.0.4-Unofficial - Sam Lantinga - David Ludwig - http://libsdl.org/license.php - http://libsdl.org - false - Unofficial pre-release of LibSDL2, built for WinRT platforms - Copyright 2015 - SDL2 SDL LibSDL OpenGL C C++ nativepackage - - - - - - - - - - diff --git a/externals/SDL/VisualC-WinRT/SDL2-WinRT.targets b/externals/SDL/VisualC-WinRT/SDL2-WinRT.targets deleted file mode 100755 index 51cddb785..000000000 --- a/externals/SDL/VisualC-WinRT/SDL2-WinRT.targets +++ /dev/null @@ -1,38 +0,0 @@ - - - - - WinRT81 - WinPhone80 - WinPhone81 - UWP - - $(MSBuildThisFileDirectory)..\..\bin\$(LibSDL2-DeviceType)\$(Platform) - - - - - - - - - $(LibSDL2-BinPath);%(AdditionalLibraryDirectories) - SDL2.lib;%(AdditionalDependencies) - - - - - - $(MSBuildThisFileDirectory)..\..\include;%(AdditionalIncludeDirectories) - - - - - - LibSDL2Binaries - $(ProjectName) - %(Filename)%(Extension) - - - - diff --git a/externals/SDL/VisualC-WinRT/SDL2main-WinRT-NonXAML.nuspec b/externals/SDL/VisualC-WinRT/SDL2main-WinRT-NonXAML.nuspec deleted file mode 100755 index 491c32386..000000000 --- a/externals/SDL/VisualC-WinRT/SDL2main-WinRT-NonXAML.nuspec +++ /dev/null @@ -1,22 +0,0 @@ - - - - SDL2main-WinRT-NonXAML - 2.0.4-Unofficial - Sam Lantinga - David Ludwig - http://libsdl.org/license.php - http://libsdl.org - false - WinMain() function for SDL2 + WinRT + CoreWindow (non-XAML) apps - Copyright 2015 - SDL2 SDL LibSDL OpenGL C C++ nativepackage - - - - - - - - - diff --git a/externals/SDL/VisualC-WinRT/SDL2main-WinRT-NonXAML.targets b/externals/SDL/VisualC-WinRT/SDL2main-WinRT-NonXAML.targets deleted file mode 100755 index 4dede303e..000000000 --- a/externals/SDL/VisualC-WinRT/SDL2main-WinRT-NonXAML.targets +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - true - - - - diff --git a/externals/SDL/VisualC-WinRT/UWP_VS2015/SDL-UWP.sln b/externals/SDL/VisualC-WinRT/UWP_VS2015/SDL-UWP.sln deleted file mode 100755 index e3ab7f724..000000000 --- a/externals/SDL/VisualC-WinRT/UWP_VS2015/SDL-UWP.sln +++ /dev/null @@ -1,34 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2-UWP", "SDL-UWP.vcxproj", "{89E9B32E-A86A-47C3-A948-D2B1622925CE}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|ARM = Debug|ARM - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|ARM = Release|ARM - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Debug|ARM.ActiveCfg = Debug|ARM - {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Debug|ARM.Build.0 = Debug|ARM - {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Debug|x64.ActiveCfg = Debug|x64 - {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Debug|x64.Build.0 = Debug|x64 - {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Debug|x86.ActiveCfg = Debug|Win32 - {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Debug|x86.Build.0 = Debug|Win32 - {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Release|ARM.ActiveCfg = Release|ARM - {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Release|ARM.Build.0 = Release|ARM - {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Release|x64.ActiveCfg = Release|x64 - {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Release|x64.Build.0 = Release|x64 - {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Release|x86.ActiveCfg = Release|Win32 - {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/externals/SDL/VisualC-WinRT/UWP_VS2015/SDL-UWP.vcxproj b/externals/SDL/VisualC-WinRT/UWP_VS2015/SDL-UWP.vcxproj deleted file mode 100755 index 5d5d0803b..000000000 --- a/externals/SDL/VisualC-WinRT/UWP_VS2015/SDL-UWP.vcxproj +++ /dev/null @@ -1,593 +0,0 @@ - - - - - Debug - ARM - - - Debug - Win32 - - - Debug - x64 - - - Release - ARM - - - Release - Win32 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - - - - - true - true - true - true - true - true - - - true - true - true - true - true - true - - - true - true - true - true - true - true - - - - - - - - - - - - - - - true - true - true - true - true - true - - - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - - - - - - true - true - true - true - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - - - true - true - true - true - true - true - - - true - true - true - true - true - true - - - true - true - true - true - true - true - - - true - true - true - true - true - true - - - true - true - true - true - true - true - - - true - true - true - true - true - true - - - true - true - true - true - true - true - - - - - {89e9b32e-a86a-47c3-a948-d2b1622925ce} - DynamicLibrary - SDL2-UWP - SDL2 - en-US - 14.0 - true - Windows Store - 8.2 - 10.0.10069.0 - 10.0.10069.0 - 10.0.10240.0 - 10.0.10240.0 - - - - DynamicLibrary - true - v140 - - - DynamicLibrary - true - v140 - - - DynamicLibrary - true - v140 - - - DynamicLibrary - false - true - v140 - - - DynamicLibrary - false - true - v140 - - - DynamicLibrary - false - true - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - false - false - SDL2 - - - false - false - SDL2 - - - false - false - SDL2 - - - false - false - SDL2 - - - false - false - SDL2 - - - false - false - SDL2 - - - - NotUsing - false - ..\..\include;%(AdditionalIncludeDirectories) - DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) - - - Console - false - false - /nodefaultlib:vccorlibd /nodefaultlib:msvcrtd vccorlibd.lib msvcrtd.lib %(AdditionalOptions) - - - - - NotUsing - false - ..\..\include;%(AdditionalIncludeDirectories) - DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) - - - Console - false - false - /nodefaultlib:vccorlib /nodefaultlib:msvcrt vccorlib.lib msvcrt.lib %(AdditionalOptions) - - - - - NotUsing - false - ..\..\include;%(AdditionalIncludeDirectories) - DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) - - - Console - false - false - /nodefaultlib:vccorlibd /nodefaultlib:msvcrtd vccorlibd.lib msvcrtd.lib %(AdditionalOptions) - - - - - NotUsing - false - ..\..\include;%(AdditionalIncludeDirectories) - DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) - - - Console - false - false - /nodefaultlib:vccorlib /nodefaultlib:msvcrt vccorlib.lib msvcrt.lib %(AdditionalOptions) - - - - - NotUsing - false - ..\..\include;%(AdditionalIncludeDirectories) - DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) - - - Console - false - false - /nodefaultlib:vccorlibd /nodefaultlib:msvcrtd vccorlibd.lib msvcrtd.lib %(AdditionalOptions) - - - - - NotUsing - false - ..\..\include;%(AdditionalIncludeDirectories) - DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) - - - Console - false - false - /nodefaultlib:vccorlib /nodefaultlib:msvcrt vccorlib.lib msvcrt.lib %(AdditionalOptions) - - - - - - diff --git a/externals/SDL/VisualC-WinRT/UWP_VS2015/SDL-UWP.vcxproj.filters b/externals/SDL/VisualC-WinRT/UWP_VS2015/SDL-UWP.vcxproj.filters deleted file mode 100755 index caa36e4ca..000000000 --- a/externals/SDL/VisualC-WinRT/UWP_VS2015/SDL-UWP.vcxproj.filters +++ /dev/null @@ -1,807 +0,0 @@ - - - - - {fa0ff2df-c3d6-498a-96f1-1f88e7ce0da3} - - - {68e1b30b-19ed-4612-93e4-6260c5a979e5} - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Header Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Header Files - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - diff --git a/externals/SDL/VisualC-WinRT/WinPhone81_VS2013/SDL-WinPhone81.sln b/externals/SDL/VisualC-WinRT/WinPhone81_VS2013/SDL-WinPhone81.sln deleted file mode 100755 index 8157755cd..000000000 --- a/externals/SDL/VisualC-WinRT/WinPhone81_VS2013/SDL-WinPhone81.sln +++ /dev/null @@ -1,28 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.40629.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2-WinPhone81", "SDL-WinPhone81.vcxproj", "{48FADC0E-964D-4DAB-BCED-372E0AD19577}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|ARM = Debug|ARM - Debug|Win32 = Debug|Win32 - Release|ARM = Release|ARM - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {48FADC0E-964D-4DAB-BCED-372E0AD19577}.Debug|ARM.ActiveCfg = Debug|ARM - {48FADC0E-964D-4DAB-BCED-372E0AD19577}.Debug|ARM.Build.0 = Debug|ARM - {48FADC0E-964D-4DAB-BCED-372E0AD19577}.Debug|Win32.ActiveCfg = Debug|Win32 - {48FADC0E-964D-4DAB-BCED-372E0AD19577}.Debug|Win32.Build.0 = Debug|Win32 - {48FADC0E-964D-4DAB-BCED-372E0AD19577}.Release|ARM.ActiveCfg = Release|ARM - {48FADC0E-964D-4DAB-BCED-372E0AD19577}.Release|ARM.Build.0 = Release|ARM - {48FADC0E-964D-4DAB-BCED-372E0AD19577}.Release|Win32.ActiveCfg = Release|Win32 - {48FADC0E-964D-4DAB-BCED-372E0AD19577}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/externals/SDL/VisualC-WinRT/WinPhone81_VS2013/SDL-WinPhone81.vcxproj b/externals/SDL/VisualC-WinRT/WinPhone81_VS2013/SDL-WinPhone81.vcxproj deleted file mode 100755 index 79dbd4cb7..000000000 --- a/externals/SDL/VisualC-WinRT/WinPhone81_VS2013/SDL-WinPhone81.vcxproj +++ /dev/null @@ -1,485 +0,0 @@ - - - - - Debug - ARM - - - Debug - Win32 - - - Release - ARM - - - Release - Win32 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - true - true - true - - - - true - true - true - true - - - true - true - true - true - - - true - true - true - true - - - - - - - - - - - - - - - true - true - true - true - - - - - - - - - - - - - - - true - true - true - true - - - - - - - - - - - - - - - - - - - - - - - - - true - true - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - true - true - true - - - true - true - true - true - - - true - true - true - true - - - true - true - true - true - - - true - true - true - true - - - true - true - true - true - - - true - true - true - true - - - true - true - true - true - - - - - {48fadc0e-964d-4dab-bced-372e0ad19577} - SDL_WinRT81 - en-US - 12.0 - true - Windows Phone - 8.1 - CodeSharingDll - SDL2-WinPhone81 - - - - DynamicLibrary - true - v120_wp81 - - - DynamicLibrary - true - v120_wp81 - - - DynamicLibrary - false - true - v120_wp81 - - - DynamicLibrary - false - true - v120_wp81 - - - - - - - - - - - - - - - - - false - false - Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ - SDL2 - - - false - false - Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ - SDL2 - - - false - false - Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ - SDL2 - - - false - false - Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ - SDL2 - - - - NotUsing - false - ..\..\include;%(AdditionalIncludeDirectories) - DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) - - - Console - false - false - DXGI.lib;d3d11.lib;mmdevapi.lib;%(AdditionalDependencies) - - - - - NotUsing - false - ..\..\include;%(AdditionalIncludeDirectories) - DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) - - - Console - false - false - DXGI.lib;d3d11.lib;mmdevapi.lib;%(AdditionalDependencies) - - - - - NotUsing - false - ..\..\include;%(AdditionalIncludeDirectories) - DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) - - - Console - false - false - DXGI.lib;d3d11.lib;mmdevapi.lib;%(AdditionalDependencies) - - - - - NotUsing - false - ..\..\include;%(AdditionalIncludeDirectories) - DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) - - - Console - false - false - DXGI.lib;d3d11.lib;mmdevapi.lib;%(AdditionalDependencies) - - - - - - diff --git a/externals/SDL/VisualC-WinRT/WinPhone81_VS2013/SDL-WinPhone81.vcxproj.filters b/externals/SDL/VisualC-WinRT/WinPhone81_VS2013/SDL-WinPhone81.vcxproj.filters deleted file mode 100755 index e097d3d88..000000000 --- a/externals/SDL/VisualC-WinRT/WinPhone81_VS2013/SDL-WinPhone81.vcxproj.filters +++ /dev/null @@ -1,768 +0,0 @@ - - - - - {d54aa32d-ba0b-491f-ac04-c9b87dd4bc69} - - - {6945cfdb-2dd6-4f78-bbcb-f899c2a86e4a} - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Header Files - - - Source Files - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - diff --git a/externals/SDL/VisualC-WinRT/WinRT81_VS2013/SDL-WinRT81.sln b/externals/SDL/VisualC-WinRT/WinRT81_VS2013/SDL-WinRT81.sln deleted file mode 100755 index 2099f262d..000000000 --- a/externals/SDL/VisualC-WinRT/WinRT81_VS2013/SDL-WinRT81.sln +++ /dev/null @@ -1,34 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.40629.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2-WinRT81", "SDL-WinRT81.vcxproj", "{C8DF6173-06A1-4F56-A9BC-2002596B30E9}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|ARM = Debug|ARM - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|ARM = Release|ARM - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C8DF6173-06A1-4F56-A9BC-2002596B30E9}.Debug|ARM.ActiveCfg = Debug|ARM - {C8DF6173-06A1-4F56-A9BC-2002596B30E9}.Debug|ARM.Build.0 = Debug|ARM - {C8DF6173-06A1-4F56-A9BC-2002596B30E9}.Debug|Win32.ActiveCfg = Debug|Win32 - {C8DF6173-06A1-4F56-A9BC-2002596B30E9}.Debug|Win32.Build.0 = Debug|Win32 - {C8DF6173-06A1-4F56-A9BC-2002596B30E9}.Debug|x64.ActiveCfg = Debug|x64 - {C8DF6173-06A1-4F56-A9BC-2002596B30E9}.Debug|x64.Build.0 = Debug|x64 - {C8DF6173-06A1-4F56-A9BC-2002596B30E9}.Release|ARM.ActiveCfg = Release|ARM - {C8DF6173-06A1-4F56-A9BC-2002596B30E9}.Release|ARM.Build.0 = Release|ARM - {C8DF6173-06A1-4F56-A9BC-2002596B30E9}.Release|Win32.ActiveCfg = Release|Win32 - {C8DF6173-06A1-4F56-A9BC-2002596B30E9}.Release|Win32.Build.0 = Release|Win32 - {C8DF6173-06A1-4F56-A9BC-2002596B30E9}.Release|x64.ActiveCfg = Release|x64 - {C8DF6173-06A1-4F56-A9BC-2002596B30E9}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/externals/SDL/VisualC-WinRT/WinRT81_VS2013/SDL-WinRT81.vcxproj b/externals/SDL/VisualC-WinRT/WinRT81_VS2013/SDL-WinRT81.vcxproj deleted file mode 100755 index 9d8b31d37..000000000 --- a/externals/SDL/VisualC-WinRT/WinRT81_VS2013/SDL-WinRT81.vcxproj +++ /dev/null @@ -1,598 +0,0 @@ - - - - - Debug - ARM - - - Debug - Win32 - - - Debug - x64 - - - Release - ARM - - - Release - Win32 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - - - - - true - true - true - true - true - true - - - true - true - true - true - true - true - - - true - true - true - true - true - true - - - - - - - - - - - - - - - true - true - true - true - true - true - - - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - - - - - - - - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - - - true - true - true - true - true - true - - - true - true - true - true - true - true - - - true - true - true - true - true - true - - - true - true - true - true - true - true - - - true - true - true - true - true - true - - - true - true - true - true - true - true - - - true - true - true - true - true - true - - - - - {c8df6173-06a1-4f56-a9bc-2002596b30e9} - SDL_WinRT81 - en-US - 12.0 - true - Windows Store - 8.1 - CodeSharingDll - SDL2-WinRT81 - - - - DynamicLibrary - true - v120 - - - DynamicLibrary - true - v120 - - - DynamicLibrary - true - v120 - - - DynamicLibrary - false - true - v120 - - - DynamicLibrary - false - true - v120 - - - DynamicLibrary - false - true - v120 - - - - - - - - - - - - - - - - - - - - - - - false - false - Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ - SDL2 - - - false - false - Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ - SDL2 - - - false - false - Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ - SDL2 - - - false - false - Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ - SDL2 - - - false - false - Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ - SDL2 - - - false - false - Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ - SDL2 - - - - NotUsing - false - ..\..\include;%(AdditionalIncludeDirectories) - DLL_EXPORT;_WINDLL;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) - - - Console - false - false - vccorlibd.lib;msvcrtd.lib;xinput.lib;mmdevapi.lib;d2d1.lib;d3d11.lib;dxgi.lib;ole32.lib;windowscodecs.lib;dwrite.lib;kernel32.lib;synchronization.lib;%(AdditionalDependencies) - vccorlibd;msvcrtd;%(IgnoreSpecificDefaultLibraries) - - - - - NotUsing - false - ..\..\include;%(AdditionalIncludeDirectories) - DLL_EXPORT;_WINDLL;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) - - - Console - false - false - vccorlib.lib;msvcrt.lib;xinput.lib;mmdevapi.lib;d2d1.lib;d3d11.lib;dxgi.lib;ole32.lib;windowscodecs.lib;dwrite.lib;kernel32.lib;synchronization.lib;%(AdditionalDependencies) - vccorlib;msvcrt;%(IgnoreSpecificDefaultLibraries) - - - - - NotUsing - false - ..\..\include;%(AdditionalIncludeDirectories) - DLL_EXPORT;_WINDLL;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) - - - Console - false - false - vccorlibd.lib;msvcrtd.lib;xinput.lib;mmdevapi.lib;d2d1.lib;d3d11.lib;dxgi.lib;ole32.lib;windowscodecs.lib;dwrite.lib;kernel32.lib;synchronization.lib;%(AdditionalDependencies) - vccorlibd;msvcrtd;%(IgnoreSpecificDefaultLibraries) - - - - - NotUsing - false - ..\..\include;%(AdditionalIncludeDirectories) - DLL_EXPORT;_WINDLL;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) - - - Console - false - false - vccorlib.lib;msvcrt.lib;xinput.lib;mmdevapi.lib;d2d1.lib;d3d11.lib;dxgi.lib;ole32.lib;windowscodecs.lib;dwrite.lib;kernel32.lib;synchronization.lib;%(AdditionalDependencies) - vccorlib;msvcrt;%(IgnoreSpecificDefaultLibraries) - - - - - NotUsing - false - ..\..\include;%(AdditionalIncludeDirectories) - DLL_EXPORT;_WINDLL;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) - - - Console - false - false - vccorlibd.lib;msvcrtd.lib;xinput.lib;mmdevapi.lib;d2d1.lib;d3d11.lib;dxgi.lib;ole32.lib;windowscodecs.lib;dwrite.lib;kernel32.lib;synchronization.lib;%(AdditionalDependencies) - vccorlibd;msvcrtd;%(IgnoreSpecificDefaultLibraries) - - - - - NotUsing - false - ..\..\include;%(AdditionalIncludeDirectories) - DLL_EXPORT;_WINDLL;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) - - - Console - false - false - vccorlib.lib;msvcrt.lib;xinput.lib;mmdevapi.lib;d2d1.lib;d3d11.lib;dxgi.lib;ole32.lib;windowscodecs.lib;dwrite.lib;kernel32.lib;synchronization.lib;%(AdditionalDependencies) - vccorlib;msvcrt;%(IgnoreSpecificDefaultLibraries) - - - - - - diff --git a/externals/SDL/VisualC-WinRT/WinRT81_VS2013/SDL-WinRT81.vcxproj.filters b/externals/SDL/VisualC-WinRT/WinRT81_VS2013/SDL-WinRT81.vcxproj.filters deleted file mode 100755 index 1e9fea4ed..000000000 --- a/externals/SDL/VisualC-WinRT/WinRT81_VS2013/SDL-WinRT81.vcxproj.filters +++ /dev/null @@ -1,804 +0,0 @@ - - - - - {7c1f964c-e351-49dd-8651-5d5b6b603856} - - - {450d92fd-978d-4025-87a9-6f688f946427} - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Header Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - diff --git a/externals/SDL/VisualC-WinRT/tests/loopwave/Assets/Logo.png b/externals/SDL/VisualC-WinRT/tests/loopwave/Assets/Logo.png deleted file mode 100755 index e26771cb33a49bbef824aa333737181b0a5b09a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 801 zcmeAS@N?(olHy`uVBq!ia0vp^(?FPm4M^HB7Cr(}k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m=1foIEGZ*dUJQLud<^=L*gE#63Ho!PGzwUb%GPK6&5iF zt!p@aGNX}6(PVh|N)M-?0RNcTbjaWgEU8noxUax-n>&3Ay)#!y&O11y2sKEF zt72@XC1)RvT6Xw=y_`Ce)`nGULLL^lI$kwi^E+dQT7YeXY4GvlRR%kj1x$VZi%Bdd zz}2Giy=-_$h+v#(S+};)DuE4EM?_^qB_eDeo@&q%StD1F>L|*0ZC2sb-}llSMTM?O z6{b3iid~yk@VE7q7Wb+P8?H5IYp?pSVcLE~18m#ygK20HL@6W5woI~Fjlw$fX1U{xQA5a+t0 zH$WNIb=fNpWHo}M9#;K6eszDZKty_|-?j4iocj5#zotrWc;@;w`H@=mjsvS2wXX0_ zY}l$4@^sE?UcC)ji*L=Z&}P!xaL&2((OQlj2dv~pV-ifAS;ZsH1{`D!GY%yys5WH)f>ZLo5m%6XjuXdbKMR7MEHSyb{m!_{Afji&MT$_sz7 z>1{~MlIFe28FRN(GC_~;#Jp4ADipP+9hh|P#-&`vO-Upt3jE0@YLh(^55uYWl9g)Z RA3>Rb!PC{xWt~$(69A&hN*MqE diff --git a/externals/SDL/VisualC-WinRT/tests/loopwave/Assets/SmallLogo.png b/externals/SDL/VisualC-WinRT/tests/loopwave/Assets/SmallLogo.png deleted file mode 100755 index 1eb0d9d528c42f132872e8af4dc563081b0b9aff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 329 zcmV-P0k-~$P)q$gGRCwC#*X;?zAP@%N+|i#I!$mrh zlQ>KU$Rdu>|JH&931_?y6Djl{gb>4nCV5pzDJ?S!mq|4ZejKj%i@j$H{#ML~2Y{DF z$=}bKPaz+UGt{v(4CTQQXym}&iW8{s!ew~XIE7NLjQpy#I2S$rous$~?f%DHT#B*+ zq=#!zc5=0FEqWFpB%UE(L807on!pidHPLgYO}XEgorrg;PB=8ipgQ5u5`&g_MQaRd zaU7Ao8XQMuuN21-s0PPTs1%38x_Yl3Fs-|Y4!C-;M-8g@n*v@1|s#GQ665=9@Rxy?u0YW0&WN+~=RXpPbVXXL4m7Aq=E6I0%{06TwRn=U9d8>exk> zD-Z%M3DNQ`bTLSEF=%NFyoHcAkD*CiXqljo*0E?o$GiDC4q}}|%*0WghLlK#npw?hecrM}Mw?`E(z5C8< z8&*b^!{>5?4aT89vdrgBgSc-x6JZD3F^l#*G(@OO*^1D%Eu7?HAy<3kTLqW9N{^#6vso zVQwY48q7)m{~xQ64RV7{E7Y=&T~?^05Ky`5oNQ8bLgFCPq9co^R09BVRS1OAmH;hU zC#q(N!gNqm!zU#%sv{r5mm-Uv8b-~a1F-;p^>)pnXfKge4s9?;;MFIr*fixPG}NBA z6_G5BEmeO6XXh(emkciB{7tA;iwC2^s^VzyU_h0@ae84ACMY`cIDEju=<`q|2QAEv zW_)W|i|9aknqdmS=#w73eW_csQ$8IhT^vY1^1;X3&J0{%*tcQq!gJpr3w?TJc~@5= zKV5sM{$3k>b#S$@CTkhIF*{v*u(F&$&Yq1naHxt8Mz2N%7aQ3(^VNRZahk1||7?Bl z*idzO_u)FhRj4cPzDO>YA>>lxAGaciEiX8Xzp1SVPv91};$OG3cC&8!v3{Jq^kH@8 UTIccK;hzT5*3#}uZuEx!0OwrBv;Y7A diff --git a/externals/SDL/VisualC-WinRT/tests/loopwave/Assets/StoreLogo.png b/externals/SDL/VisualC-WinRT/tests/loopwave/Assets/StoreLogo.png deleted file mode 100755 index dcb672712c6823a0c91548ded70a8acb85536b4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 429 zcmV;e0aE^nP)NtYJa1l)bQ5qwGXpZbs7%2oRMd4y35$s&66(fxhNg8W02!vSn zdlrL2h^Fx+3=$z;kK{0D#MyeJ8WRWZcLSf(PcQ_mLOhrmC}O-tX^0c>5`YvCUZVsc zG-6#78ubjJ5nA;OX&^K(q=i6ZNE3m?kTwE^AqxZoLskfB3|S&1F=UO9!cY$g2@Lgu z;9{sJ1P9|X2L`r1#Gs8R{E^$PRrMaC86q| - - - - - - loopwave_VS2012_WinRT - David - Assets\StoreLogo.png - - - - 6.2.1 - 6.2.1 - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/externals/SDL/VisualC-WinRT/tests/loopwave/loopwave_VS2012.vcxproj b/externals/SDL/VisualC-WinRT/tests/loopwave/loopwave_VS2012.vcxproj deleted file mode 100755 index c735b4e17..000000000 --- a/externals/SDL/VisualC-WinRT/tests/loopwave/loopwave_VS2012.vcxproj +++ /dev/null @@ -1,170 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - Debug - ARM - - - Release - ARM - - - - {03fcc293-9406-49c2-acf6-6e7d460c3239} - loopwave_VS2012 - en-US - 11.0 - true - loopwave - - - - Application - true - v110 - - - Application - true - v110 - - - Application - true - v110 - - - Application - false - true - v110 - - - Application - false - true - v110 - - - Application - false - true - v110 - - - - - - - - - - - - - - - - - - - - - - - - - loopwave_VS2012_TemporaryKey.pfx - - - - d2d1.lib; d3d11.lib; dxgi.lib; ole32.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) - - - pch.h - $(IntDir)pch.pch - $(ProjectDir);$(IntermediateOutputPath);$(ProjectDir)..\..\..\include;%(AdditionalIncludeDirectories) - 4453 - - - - - NDEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - NotUsing - NotUsing - NotUsing - false - false - false - - - - - _DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - NotUsing - NotUsing - NotUsing - false - false - false - - - - - - - - - - - Designer - - - - - - true - true - true - true - true - true - - - false - false - false - false - false - false - - - - - - - - {aeaea3a2-d4e6-45b1-8ec6-53d84287fc14} - - - - - - \ No newline at end of file diff --git a/externals/SDL/VisualC-WinRT/tests/loopwave/loopwave_VS2012_TemporaryKey.pfx b/externals/SDL/VisualC-WinRT/tests/loopwave/loopwave_VS2012_TemporaryKey.pfx deleted file mode 100755 index 3c07b779f56405e71431543ad8e28b5bbb995690..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2504 zcmY+Ec{tQ-8^?cR#xSxQM3zCxgpA!B3CX^fec$(WM6U=9hHPQ%jj}s zUSkr9#Kg&@4)3pXz3(~K`Qv_`@BMl1`@Zgfo-YQE7-WDzF?d7*9C3kQKsaQBFhR=k zh;SGl5e#B~44(1mUr&tNFg)WXh}XcNz)$_JizQkWALyej1ZjV{}>$34r4~O zzT(_zQ6VxgFipYmum!R4@3eomc+?d6L!Kf~t$1h?NUv@Zk&~3YQ5tYuZ*N!eXK( zJjE1cw7SS8YK#jb-63v+o!CvjWh->q#Eeg6&{7IF)%hc5pjs{zoq(O4e~`DM!CsEhx1yRL zy5{a=!}5zyM4Nk2SGE*4mMT%$z0Kh0M2mXonnQ6fQyv!$XMV#M9?}(ljOvP8RCe!|>f2((*_S@pleL@dAN*ga_Lz=vFNGQ zS<1T;m1bhOA$y0?3@+t}o11k;P}{th;w?dSp*E0vvo%Mw*L?8e0?Zfl;zC3c^AUK~JPdvO;^Q!-(!77_a<6=QPD;HTM0a+$Hb?8~U7k4?@@>dMhSaN0Ihn}!FqEf(&V zXn*?n+;i8RZ;R~99&AP|rWBG?c2Rwo1~Jck^~V``tV= z#z1yb{f!*C$fh6;@x@BCM9nYw3GOA^fJwVSVz^IS>4xn{bBqVEY1G_(-NjsxW)hzx z?zo=JUx|u7$Uyf)wj0KJt@S3}hQ^=Fj_g(y7V0W8U#Q6={YufNzHY3z>FJnI>vAec zf8Z58?bGEWtvYfZqR=L#yPeHT$g=#pc4~S1k0Ki1bEib?^yAD4k2~UVpV16?3$I3n^MteaiNEEfj`!NjfrSZk}u%5w~``Gd`b# zMbDe;eSLe$MDr?HwHyDRM{epC4Pz_cOAXf#IJ6PojX0m@(dw^Z?AX5gz15g0N2jdJ!NW&p82ws&7B5xsL2ABf= zU<(ci1tP%k0d4>&;5vBzBq4w=nCXBz8VCbfD465GVPSyZUtK7`;;*_WF!KV}!eQ`G z-@i9!f|ui=b|A81fB@iS`p*mGUzQL5Y583=eYlV6xaUvHPryS_2|8B|%VlHD+=|*< zlotPtPFb|gp?fc;W#qeBpe6esG+J7Q%CYr{DaVc~kb8i%$)_ak&JXoN7x*j<)o`XQ z8#L+RwXJo2Wivx)LjTTYi^@{9TG+F&Pld4v@oYF@G?&YG|Dkl`R++GXhCBkVMY#0^J30Qt=0R7S3;{F zJL%^13O3J;WpdmYg-)#8`}*)vz{l-FL92NVDUrT|xymV7~3EzxmP{``)6jtNF2nd!S+CRI$h>9;&oP~k>ktmxVE#z zq)IGv^}+|1ZYQ!v7Giw%fP%GAF%^p|{?e}_BV~M)du!f*ak&0~)bV|yaSvhbQ2C^! zM6HOM^`l|P6~-rJzSUD)RydxZ&c-ZR$^6BTA417`*_yY}GEUEWZ4S-j{0v_cR$J`+CZwm-mh0 z{Sx+lBV*qY*L)#gYWWP?QAr&tSj{oM1c^(^U#k=gQ0IgMVPhUfZG0r^(d!XvBCaqG zlc6{y7|C-PqmB{9Fu@t6*`W-AFys>Yl`q$?us-|chdhcMb*VSG+^8_5X>E=8(>Iky ToyCz)S?HfgOO(BupC9bM?VoGZ diff --git a/externals/SDL/VisualC-WinRT/tests/testthread/Assets/Logo.png b/externals/SDL/VisualC-WinRT/tests/testthread/Assets/Logo.png deleted file mode 100755 index e26771cb33a49bbef824aa333737181b0a5b09a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 801 zcmeAS@N?(olHy`uVBq!ia0vp^(?FPm4M^HB7Cr(}k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m=1foIEGZ*dUJQLud<^=L*gE#63Ho!PGzwUb%GPK6&5iF zt!p@aGNX}6(PVh|N)M-?0RNcTbjaWgEU8noxUax-n>&3Ay)#!y&O11y2sKEF zt72@XC1)RvT6Xw=y_`Ce)`nGULLL^lI$kwi^E+dQT7YeXY4GvlRR%kj1x$VZi%Bdd zz}2Giy=-_$h+v#(S+};)DuE4EM?_^qB_eDeo@&q%StD1F>L|*0ZC2sb-}llSMTM?O z6{b3iid~yk@VE7q7Wb+P8?H5IYp?pSVcLE~18m#ygK20HL@6W5woI~Fjlw$fX1U{xQA5a+t0 zH$WNIb=fNpWHo}M9#;K6eszDZKty_|-?j4iocj5#zotrWc;@;w`H@=mjsvS2wXX0_ zY}l$4@^sE?UcC)ji*L=Z&}P!xaL&2((OQlj2dv~pV-ifAS;ZsH1{`D!GY%yys5WH)f>ZLo5m%6XjuXdbKMR7MEHSyb{m!_{Afji&MT$_sz7 z>1{~MlIFe28FRN(GC_~;#Jp4ADipP+9hh|P#-&`vO-Upt3jE0@YLh(^55uYWl9g)Z RA3>Rb!PC{xWt~$(69A&hN*MqE diff --git a/externals/SDL/VisualC-WinRT/tests/testthread/Assets/SmallLogo.png b/externals/SDL/VisualC-WinRT/tests/testthread/Assets/SmallLogo.png deleted file mode 100755 index 1eb0d9d528c42f132872e8af4dc563081b0b9aff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 329 zcmV-P0k-~$P)q$gGRCwC#*X;?zAP@%N+|i#I!$mrh zlQ>KU$Rdu>|JH&931_?y6Djl{gb>4nCV5pzDJ?S!mq|4ZejKj%i@j$H{#ML~2Y{DF z$=}bKPaz+UGt{v(4CTQQXym}&iW8{s!ew~XIE7NLjQpy#I2S$rous$~?f%DHT#B*+ zq=#!zc5=0FEqWFpB%UE(L807on!pidHPLgYO}XEgorrg;PB=8ipgQ5u5`&g_MQaRd zaU7Ao8XQMuuN21-s0PPTs1%38x_Yl3Fs-|Y4!C-;M-8g@n*v@1|s#GQ665=9@Rxy?u0YW0&WN+~=RXpPbVXXL4m7Aq=E6I0%{06TwRn=U9d8>exk> zD-Z%M3DNQ`bTLSEF=%NFyoHcAkD*CiXqljo*0E?o$GiDC4q}}|%*0WghLlK#npw?hecrM}Mw?`E(z5C8< z8&*b^!{>5?4aT89vdrgBgSc-x6JZD3F^l#*G(@OO*^1D%Eu7?HAy<3kTLqW9N{^#6vso zVQwY48q7)m{~xQ64RV7{E7Y=&T~?^05Ky`5oNQ8bLgFCPq9co^R09BVRS1OAmH;hU zC#q(N!gNqm!zU#%sv{r5mm-Uv8b-~a1F-;p^>)pnXfKge4s9?;;MFIr*fixPG}NBA z6_G5BEmeO6XXh(emkciB{7tA;iwC2^s^VzyU_h0@ae84ACMY`cIDEju=<`q|2QAEv zW_)W|i|9aknqdmS=#w73eW_csQ$8IhT^vY1^1;X3&J0{%*tcQq!gJpr3w?TJc~@5= zKV5sM{$3k>b#S$@CTkhIF*{v*u(F&$&Yq1naHxt8Mz2N%7aQ3(^VNRZahk1||7?Bl z*idzO_u)FhRj4cPzDO>YA>>lxAGaciEiX8Xzp1SVPv91};$OG3cC&8!v3{Jq^kH@8 UTIccK;hzT5*3#}uZuEx!0OwrBv;Y7A diff --git a/externals/SDL/VisualC-WinRT/tests/testthread/Assets/StoreLogo.png b/externals/SDL/VisualC-WinRT/tests/testthread/Assets/StoreLogo.png deleted file mode 100755 index dcb672712c6823a0c91548ded70a8acb85536b4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 429 zcmV;e0aE^nP)NtYJa1l)bQ5qwGXpZbs7%2oRMd4y35$s&66(fxhNg8W02!vSn zdlrL2h^Fx+3=$z;kK{0D#MyeJ8WRWZcLSf(PcQ_mLOhrmC}O-tX^0c>5`YvCUZVsc zG-6#78ubjJ5nA;OX&^K(q=i6ZNE3m?kTwE^AqxZoLskfB3|S&1F=UO9!cY$g2@Lgu z;9{sJ1P9|X2L`r1#Gs8R{E^$PRrMaC86q| - - - - - - testthread_VS2012_WinRT - David - Assets\StoreLogo.png - - - - 6.2.1 - 6.2.1 - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/externals/SDL/VisualC-WinRT/tests/testthread/testthread_VS2012.vcxproj b/externals/SDL/VisualC-WinRT/tests/testthread/testthread_VS2012.vcxproj deleted file mode 100755 index f55724c26..000000000 --- a/externals/SDL/VisualC-WinRT/tests/testthread/testthread_VS2012.vcxproj +++ /dev/null @@ -1,160 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - Debug - ARM - - - Release - ARM - - - - {a8705bee-d01d-46a4-b2ab-feedfb5fdd11} - testthread_VS2012 - en-US - 11.0 - true - testthread - - - - Application - true - v110 - - - Application - true - v110 - - - Application - true - v110 - - - Application - false - true - v110 - - - Application - false - true - v110 - - - Application - false - true - v110 - - - - - - - - - - - - - - - - - - - - - - - - - testthread_VS2012_TemporaryKey.pfx - - - - d2d1.lib; d3d11.lib; dxgi.lib; ole32.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) - - - pch.h - $(IntDir)pch.pch - $(ProjectDir);$(IntermediateOutputPath);$(ProjectDir)..\..\..\include;%(AdditionalIncludeDirectories) - 4453 - - - - - NDEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - NotUsing - NotUsing - NotUsing - false - false - false - - - - - _DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - NotUsing - NotUsing - NotUsing - false - false - false - - - - - - - - - - - Designer - - - - - - true - true - true - true - true - true - - - - - - {aeaea3a2-d4e6-45b1-8ec6-53d84287fc14} - - - - - - \ No newline at end of file diff --git a/externals/SDL/VisualC-WinRT/tests/testthread/testthread_VS2012_TemporaryKey.pfx b/externals/SDL/VisualC-WinRT/tests/testthread/testthread_VS2012_TemporaryKey.pfx deleted file mode 100755 index 97fd1e190077fd22da37b95fd53038fdd2ab7917..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2504 zcmY+Fc|4SB8^@nnj2VNngel8d$8IbUDqEJsG%<*X7>p(Rl2n|rMZ(FxWh-lT5rb?U z`e{L_Yf%YaJ}$-CI~$w zn~HLRQ&ILHzJsUIZU3u8HxH-MeFE_eI3^J2|E*$VfIzdU@I5>gzK!QbF#I2bn=`|a z2Meza2ENVKL!tCTa4LLAwDUt<9ul$t6S@~LT!$@7>n7VbeD5>WH>~pcDUHn zlayc96V#zEv@4QDw5z`S-KTNxiRO@oUFf7;%vvi@#QYWF6j*!?v-7wD&o$hk;roGR zjVwc(buh=hjXpjIMx<<{%^Y6t;Y%(WtKrf6Q7ILB1sg>6keMq~_0aU>co<)N$@tue z7lc{7#PByhuXTc-tn2m4`*%!>M)phlXv){rqO+Jxu93xky1%~lG&fmNvs7B|8auXG zvobleSVn&Jt=x!dyYE)9uh)B?N%C8+SyMN)TEK4MN-D7=hb2HE+~1D-4V7PH0M>oo z`nk!ycXLlauis`4kCXW0=R$yashJxKC<9DMECSqCp9IM$y^C;DR6Fn|3 z`D~?XTvl0oHsXorb?9h^%EOn1Q|;U>A4WH3maBEYgsIMBKFLJ<$kEhtQIq%-9oR^^ zRId}j=Z ztB_n?+GI*(OmVZg_YuN;iuq?IRQ%+Y#D&I7{*#?93!J$^>6~NFXZXc5a~ndGQ#o~h z=um6x+l}n|7TKCJ!^Qx{WEK`rwbeV-Axe0?jrT+85372MU^Dy_4N8DulZ&l0#5 zESf2+biT)6aQsuhx2|sck1`h4&eBKyvw}x=kEQ)eI~5WF=d46tE3?ok6#ge$ch?;V zGFpst-)WW)R#J_6c;mClViQbSnd0Z1&AZ9? zDEa;Q4#qc=4!kH*eXO`t>hkiJh5}@73x`F9?mGw&PkhvkC&bAG+91~4xJ0&YPX=KX zW85b1keHkKLQPGYghOas%Ffg&5QaD5 zl)0tBJszHh(_Jp*NVCixwywqI#V23Zq85pieP`{7quGfWr|Rie!$W+uhOOIq^%9CSCflir`Wpg+UbWtJ-IY0QTE>{Xj#~2cZWX|ID%YG`dO48P~KU-UzdON_W~L7Zep5rCuN@^KPa%e zpl!Y2v#sBX&&slq=%M4nSLX1?ziMKY`p$B;zB)oa6iGxEn0Et*9j^_-3^dHeQN^sM zkkb|zZ`t4a@oazFB1E}(V6sYnbvjZaq zFjfL*DX@YEi7gn}gDMA*!5#%b7Ocww%Anfetq>>)1OyJDDzQLhiM#~B5O4xpy#RN> z8ypUR4}b-X!TA?)102Cj3ycE*50JToxfghd2SE926&4`=)#nFhWbjBYJQe2n_s!`M z*;Lp~5Rsq|02IT2Dv*C!J>r+ud)TPkZ1d+S{IdFBDhwM9Ep%FFyML8uRDBDgGRb{n zLd|rjInPFLJBYt^6LDzDYn#T$ZDh!;yKbtk@~4ch>OP8d?8?}<+Q0!;jIpr)`m3XQ zA=KA-7Rk1qQ?3jSQrV5u^S<(K?{9G7oF%=+Go%%B1w$xf1(E}DNBJ12sWq>J<<0bL zN1-@}4&+bC?pzwF7gM9DrzWT!l(r?7?S|bfZ7rqm*{=%Zeipp|S-Qa-V997E8F4DI zBuI39(@sshW%{lmt6mUtTAriqC%x4iElzB9q;u1ar+&qeg;mg{IM?rCaiynPJDee7(K^96l3M}x1H z9raTVWc@bRDpXLPbJDjLPn`l*lD)dp%VTltd#{VxJ_bycoi5po(LbeoQ`N#Y`C34+MiiCZe z6xCdI`g9Hg)YX-ij25hG2VbZSL>_uoy6$nLRCezMC-J$bQIfkB&QTX%R*}vQXYac{ z>#SGuWp7QxB%B$8>L2{B5!xW2G49Y>9`l(PF-#a&jtPnEQid|Pz=!NXyRNF{NqYrJ4tebnsJS9q zMw$s+7n{Ng&0uvq*0^<2&(3s}ekRO%>+WG?z zpBgWp2}Y8k&G%gxu3gc_#@rN-bK4lKYd5n@fAmD)_(WoGXv#M@%Aco#G<(n2UNiI= zIT5dl=fl$@=p>k7(6ey%@NpTL30h#0FtS8ZdqP3%o$%x}I6MFRdaI~^b<*0;3@V!E S`-p?_$L3!@7-%tneg6fLkX32` diff --git a/externals/SDL/VisualC.html b/externals/SDL/VisualC.html deleted file mode 100755 index 0631832e8..000000000 --- a/externals/SDL/VisualC.html +++ /dev/null @@ -1,146 +0,0 @@ - - - Using SDL with Microsoft Visual C++ - - -

- Using SDL with Microsoft Visual C++ -

-

- by Lion Kimbro and additions by - James Turk -

-

- You can either use the precompiled libraries from the SDL Download web site , or you can build SDL yourself. -

-

- Building SDL -

-

- Go into the VisualC directory and double-click on the Visual Studio solution for your version of Visual Studio, e.g. SDL_VS2008.sln This should open up the IDE. -

-

- There are different solution files for the various - versions of the IDE. Please use the appropriate version - 2008, 2010, 2012 or 2013. -

-

- Build the .dll and .lib files. -

-

- This is done by right clicking on each project in turn (Projects are listed in - the Workspace panel in the FileView tab), and selecting "Build". -

-

- You may get a few warnings, but you should not get any errors. You do have to - have at least the DirectX 9 SDK installed, however. The latest - version of DirectX can be downloaded from Microsoft. -

-

- Later, we will refer to the following .lib and .dll files that have just been - generated: -

-
    -
  • SDL2.dll
  • -
  • SDL2.lib
  • -
  • SDL2main.lib
  • -
-

- Search for these using the Windows Find (Windows-F) utility inside the VisualC directory. -

-

- Creating a Project with SDL -

-

- Create a project as a Win32 Application. -

-

- Create a C++ file for your project. -

-

- Set the C runtime to "Multi-threaded DLL" in the menu: Project|Settings|C/C++ - tab|Code Generation|Runtime Library . -

-

- Add the SDL include directory to your list of includes in the - menu: Project|Settings|C/C++ tab|Preprocessor|Additional include directories - . -
- VC7 Specific: Instead of doing this I find it easier to - add the include and library directories to the list that VC7 keeps. Do this by - selecting Tools|Options|Projects|VC++ Directories and under the "Show - Directories For:" dropbox select "Include Files", and click the "New Directory - Icon" and add the [SDLROOT]\include directory (e.g. If you installed to - c:\SDL\ add c:\SDL\include). Proceed to change the - dropbox selection to "Library Files" and add [SDLROOT]\lib. -

-

- The "include directory" I am referring to is the include folder - within the main SDL directory (the one that this HTML file located within). -

-

- Now we're going to use the files that we had created earlier in the Build SDL - step. -

-

- Copy the following files into your Project directory: -

-
    -
  • SDL2.dll
  • -
-

- Add the following files to your project (It is not necessary to copy them to - your project directory): -

-
    -
  • SDL2.lib
  • -
  • SDL2main.lib
  • -
-

- (To add them to your project, right click on your project, and select "Add - files to project") -

-

Instead of adding the files to your project it is more - desirable to add them to the linker options: Project|Properties|Linker|Command - Line and type the names of the libraries to link with in the "Additional - Options:" box.  Note: This must be done for each build - configuration (e.g. Release,Debug).

-

- SDL 101, First Day of Class -

-

- Now create the basic body of your project. The body of your program should take - the following form: -


-#include "SDL.h"
-
-int main( int argc, char* argv[] )
-{
-  // Body of the program goes here.
-  return 0;
-}
-			
-

-

- That's it! -

-

- I hope that this document has helped you get through the most difficult part of - using the SDL: installing it. Suggestions for improvements to this document - should be sent to the writers of this document. -

-

- Thanks to Paulus Esterhazy (pesterhazy@gmx.net), for the work on VC++ port. -

-

- This document was originally called "VisualC.txt", and was written by - Sam Lantinga. -

-

- Later, it was converted to HTML and expanded into the document that you see - today by Lion Kimbro. -

-

Minor Fixes and Visual C++ 7 Information (In Green) was added by James Turk -

- - diff --git a/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/project.pbxproj b/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/project.pbxproj deleted file mode 100755 index ae4dce1ca..000000000 --- a/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/project.pbxproj +++ /dev/null @@ -1,3508 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXAggregateTarget section */ - 00B4F48B12F6A69C0084EC00 /* PrepareXcodeProjectTemplate */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 00B4F48E12F6A6BA0084EC00 /* Build configuration list for PBXAggregateTarget "PrepareXcodeProjectTemplate" */; - buildPhases = ( - 00B4F48A12F6A69C0084EC00 /* ShellScript */, - ); - dependencies = ( - ); - name = PrepareXcodeProjectTemplate; - productName = PrepareXcodeProjectTemplate; - }; - C143576D1F4C4DAA000B792B /* All-iOS */ = { - isa = PBXAggregateTarget; - buildConfigurationList = C143576E1F4C4DAB000B792B /* Build configuration list for PBXAggregateTarget "All-iOS" */; - buildPhases = ( - C14357711F4C4DB2000B792B /* ShellScript */, - ); - dependencies = ( - ); - name = "All-iOS"; - productName = "All (iOS)"; - }; - C14357721F4C4F2A000B792B /* All-tvOS */ = { - isa = PBXAggregateTarget; - buildConfigurationList = C14357741F4C4F2A000B792B /* Build configuration list for PBXAggregateTarget "All-tvOS" */; - buildPhases = ( - C14357731F4C4F2A000B792B /* ShellScript */, - ); - dependencies = ( - ); - name = "All-tvOS"; - productName = "All (iOS)"; - }; -/* End PBXAggregateTarget section */ - -/* Begin PBXBuildFile section */ - 006E9888119552DD001DE610 /* SDL_rwopsbundlesupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 006E9886119552DD001DE610 /* SDL_rwopsbundlesupport.h */; }; - 006E9889119552DD001DE610 /* SDL_rwopsbundlesupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 006E9887119552DD001DE610 /* SDL_rwopsbundlesupport.m */; }; - 0402A85812FE70C600CECEE3 /* SDL_render_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = 0402A85512FE70C600CECEE3 /* SDL_render_gles2.c */; }; - 0402A85912FE70C600CECEE3 /* SDL_shaders_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = 0402A85612FE70C600CECEE3 /* SDL_shaders_gles2.c */; }; - 0402A85A12FE70C600CECEE3 /* SDL_shaders_gles2.h in Headers */ = {isa = PBXBuildFile; fileRef = 0402A85712FE70C600CECEE3 /* SDL_shaders_gles2.h */; }; - 041B2CF112FA0F680087D585 /* SDL_render.c in Sources */ = {isa = PBXBuildFile; fileRef = 041B2CEA12FA0F680087D585 /* SDL_render.c */; }; - 041B2CF212FA0F680087D585 /* SDL_sysrender.h in Headers */ = {isa = PBXBuildFile; fileRef = 041B2CEB12FA0F680087D585 /* SDL_sysrender.h */; }; - 0420497011E6F03D007E7EC9 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 0420496E11E6F03D007E7EC9 /* SDL_clipboardevents_c.h */; }; - 0420497111E6F03D007E7EC9 /* SDL_clipboardevents.c in Sources */ = {isa = PBXBuildFile; fileRef = 0420496F11E6F03D007E7EC9 /* SDL_clipboardevents.c */; }; - 04409BA812FA989600FB9AA8 /* SDL_yuv_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 04409BA412FA989600FB9AA8 /* SDL_yuv_sw_c.h */; }; - 04409BA912FA989600FB9AA8 /* SDL_yuv_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = 04409BA512FA989600FB9AA8 /* SDL_yuv_sw.c */; }; - 0442EC5012FE1C1E004C9285 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 0442EC4E12FE1C1E004C9285 /* SDL_render_sw_c.h */; }; - 0442EC5112FE1C1E004C9285 /* SDL_render_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = 0442EC4F12FE1C1E004C9285 /* SDL_render_sw.c */; }; - 0442EC5312FE1C28004C9285 /* SDL_render_gles.c in Sources */ = {isa = PBXBuildFile; fileRef = 0442EC5212FE1C28004C9285 /* SDL_render_gles.c */; }; - 0442EC5512FE1C3F004C9285 /* SDL_hints.c in Sources */ = {isa = PBXBuildFile; fileRef = 0442EC5412FE1C3F004C9285 /* SDL_hints.c */; }; - 044E5FB811E606EB0076F181 /* SDL_clipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 044E5FB711E606EB0076F181 /* SDL_clipboard.c */; }; - 046387420F0B5B7D0041FD65 /* SDL_blit_slow.h in Headers */ = {isa = PBXBuildFile; fileRef = 0463873A0F0B5B7D0041FD65 /* SDL_blit_slow.h */; }; - 046387460F0B5B7D0041FD65 /* SDL_fillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = 0463873E0F0B5B7D0041FD65 /* SDL_fillrect.c */; }; - 047677BB0EA76A31008ABAF1 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = 047677B80EA76A31008ABAF1 /* SDL_syshaptic.c */; }; - 047677BC0EA76A31008ABAF1 /* SDL_haptic.c in Sources */ = {isa = PBXBuildFile; fileRef = 047677B90EA76A31008ABAF1 /* SDL_haptic.c */; }; - 047677BD0EA76A31008ABAF1 /* SDL_syshaptic.h in Headers */ = {isa = PBXBuildFile; fileRef = 047677BA0EA76A31008ABAF1 /* SDL_syshaptic.h */; }; - 047AF1B30EA98D6C00811173 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = 047AF1B20EA98D6C00811173 /* SDL_sysloadso.c */; }; - 04BA9D6311EF474A00B60E01 /* SDL_gesture_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 04BA9D5F11EF474A00B60E01 /* SDL_gesture_c.h */; }; - 04BA9D6411EF474A00B60E01 /* SDL_gesture.c in Sources */ = {isa = PBXBuildFile; fileRef = 04BA9D6011EF474A00B60E01 /* SDL_gesture.c */; }; - 04BA9D6511EF474A00B60E01 /* SDL_touch_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 04BA9D6111EF474A00B60E01 /* SDL_touch_c.h */; }; - 04BA9D6611EF474A00B60E01 /* SDL_touch.c in Sources */ = {isa = PBXBuildFile; fileRef = 04BA9D6211EF474A00B60E01 /* SDL_touch.c */; }; - 04BAC09C1300C1290055DE28 /* SDL_assert_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 04BAC09A1300C1290055DE28 /* SDL_assert_c.h */; }; - 04BAC09D1300C1290055DE28 /* SDL_log.c in Sources */ = {isa = PBXBuildFile; fileRef = 04BAC09B1300C1290055DE28 /* SDL_log.c */; }; - 04F2AF561104ABD200D6DDF7 /* SDL_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F2AF551104ABD200D6DDF7 /* SDL_assert.c */; }; - 04F7807612FB751400FC43C0 /* SDL_blendfillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7806A12FB751400FC43C0 /* SDL_blendfillrect.c */; }; - 04F7807712FB751400FC43C0 /* SDL_blendfillrect.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7806B12FB751400FC43C0 /* SDL_blendfillrect.h */; }; - 04F7807812FB751400FC43C0 /* SDL_blendline.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7806C12FB751400FC43C0 /* SDL_blendline.c */; }; - 04F7807912FB751400FC43C0 /* SDL_blendline.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7806D12FB751400FC43C0 /* SDL_blendline.h */; }; - 04F7807A12FB751400FC43C0 /* SDL_blendpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7806E12FB751400FC43C0 /* SDL_blendpoint.c */; }; - 04F7807B12FB751400FC43C0 /* SDL_blendpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7806F12FB751400FC43C0 /* SDL_blendpoint.h */; }; - 04F7807C12FB751400FC43C0 /* SDL_draw.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7807012FB751400FC43C0 /* SDL_draw.h */; }; - 04F7807D12FB751400FC43C0 /* SDL_drawline.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7807112FB751400FC43C0 /* SDL_drawline.c */; }; - 04F7807E12FB751400FC43C0 /* SDL_drawline.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7807212FB751400FC43C0 /* SDL_drawline.h */; }; - 04F7807F12FB751400FC43C0 /* SDL_drawpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7807312FB751400FC43C0 /* SDL_drawpoint.c */; }; - 04F7808012FB751400FC43C0 /* SDL_drawpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7807412FB751400FC43C0 /* SDL_drawpoint.h */; }; - 04F7808412FB753F00FC43C0 /* SDL_nullframebuffer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7808212FB753F00FC43C0 /* SDL_nullframebuffer_c.h */; }; - 04F7808512FB753F00FC43C0 /* SDL_nullframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7808312FB753F00FC43C0 /* SDL_nullframebuffer.c */; }; - 04FFAB8B12E23B8D00BA343D /* SDL_atomic.c in Sources */ = {isa = PBXBuildFile; fileRef = 04FFAB8912E23B8D00BA343D /* SDL_atomic.c */; }; - 04FFAB8C12E23B8D00BA343D /* SDL_spinlock.c in Sources */ = {isa = PBXBuildFile; fileRef = 04FFAB8A12E23B8D00BA343D /* SDL_spinlock.c */; }; - 4D7516FB1EE1C28A00820EEA /* SDL_uikitmetalview.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D7516F81EE1C28A00820EEA /* SDL_uikitmetalview.m */; }; - 4D7516FC1EE1C28A00820EEA /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D7516F91EE1C28A00820EEA /* SDL_uikitvulkan.h */; }; - 4D7516FD1EE1C28A00820EEA /* SDL_uikitvulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D7516FA1EE1C28A00820EEA /* SDL_uikitvulkan.m */; }; - 4D7516FF1EE1C5B400820EEA /* SDL_vulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D7516FE1EE1C5B400820EEA /* SDL_vulkan.h */; }; - 4D75171A1EE1D32200820EEA /* SDL_uikitmetalview.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D7517191EE1D32200820EEA /* SDL_uikitmetalview.h */; }; - 4D75171F1EE1D98200820EEA /* SDL_vulkan_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D75171D1EE1D98200820EEA /* SDL_vulkan_internal.h */; }; - 4D7517201EE1D98200820EEA /* SDL_vulkan_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D75171E1EE1D98200820EEA /* SDL_vulkan_utils.c */; }; - 52ED1D6D222889500061FCE0 /* SDL_blit.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA683010DF2374E00F98A1A /* SDL_blit.h */; }; - 52ED1D6E222889500061FCE0 /* SDL_uikitmetalview.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D7517191EE1D32200820EEA /* SDL_uikitmetalview.h */; }; - 52ED1D6F222889500061FCE0 /* SDL_vulkan_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D75171D1EE1D98200820EEA /* SDL_vulkan_internal.h */; }; - 52ED1D70222889500061FCE0 /* SDL_blit_auto.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA683060DF2374E00F98A1A /* SDL_blit_auto.h */; }; - 52ED1D71222889500061FCE0 /* SDL_blit_copy.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA683080DF2374E00F98A1A /* SDL_blit_copy.h */; }; - 52ED1D72222889500061FCE0 /* SDL_pixels_c.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA683100DF2374E00F98A1A /* SDL_pixels_c.h */; }; - 52ED1D73222889500061FCE0 /* SDL_dynapi_procs.h in Headers */ = {isa = PBXBuildFile; fileRef = 56A6703218565E760007D20F /* SDL_dynapi_procs.h */; }; - 52ED1D74222889500061FCE0 /* SDL_RLEaccel_c.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA683160DF2374E00F98A1A /* SDL_RLEaccel_c.h */; }; - 52ED1D75222889500061FCE0 /* SDL_sysvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA6831A0DF2374E00F98A1A /* SDL_sysvideo.h */; }; - 52ED1D76222889500061FCE0 /* SDL_nullevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA685F60DF244C800F98A1A /* SDL_nullevents_c.h */; }; - 52ED1D77222889500061FCE0 /* SDL_nullvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA685FA0DF244C800F98A1A /* SDL_nullvideo.h */; }; - 52ED1D78222889500061FCE0 /* SDL_joystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = FD5F9D1F0E0E08B3008E885B /* SDL_joystick_c.h */; }; - 52ED1D79222889500061FCE0 /* SDL_sysjoystick.h in Headers */ = {isa = PBXBuildFile; fileRef = FD5F9D200E0E08B3008E885B /* SDL_sysjoystick.h */; }; - 52ED1D7A222889500061FCE0 /* SDL_uikitevents.h in Headers */ = {isa = PBXBuildFile; fileRef = FD689F0C0E26E5D900F90B21 /* SDL_uikitevents.h */; }; - 52ED1D7B222889500061FCE0 /* SDL_uikitopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = FD689F0E0E26E5D900F90B21 /* SDL_uikitopengles.h */; }; - 52ED1D7C222889500061FCE0 /* SDL_uikitvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = FD689F100E26E5D900F90B21 /* SDL_uikitvideo.h */; }; - 52ED1D7D222889500061FCE0 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = FD689F140E26E5D900F90B21 /* SDL_uikitwindow.h */; }; - 52ED1D7E222889500061FCE0 /* SDL_uikitopenglview.h in Headers */ = {isa = PBXBuildFile; fileRef = FD689F160E26E5D900F90B21 /* SDL_uikitopenglview.h */; }; - 52ED1D7F222889500061FCE0 /* SDL_dynapi.h in Headers */ = {isa = PBXBuildFile; fileRef = 56A6703418565E760007D20F /* SDL_dynapi.h */; }; - 52ED1D80222889500061FCE0 /* SDL_uikitappdelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = FD689FCD0E26E9D400F90B21 /* SDL_uikitappdelegate.h */; }; - 52ED1D81222889500061FCE0 /* SDL_dynapi_overrides.h in Headers */ = {isa = PBXBuildFile; fileRef = 56A6703118565E760007D20F /* SDL_dynapi_overrides.h */; }; - 52ED1D82222889500061FCE0 /* yuv_rgb_std_func.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3531FB8B46300D9FEE6 /* yuv_rgb_std_func.h */; }; - 52ED1D83222889500061FCE0 /* SDL_syshaptic.h in Headers */ = {isa = PBXBuildFile; fileRef = 047677BA0EA76A31008ABAF1 /* SDL_syshaptic.h */; }; - 52ED1D84222889500061FCE0 /* SDL_blit_slow.h in Headers */ = {isa = PBXBuildFile; fileRef = 0463873A0F0B5B7D0041FD65 /* SDL_blit_slow.h */; }; - 52ED1D85222889500061FCE0 /* SDL_rwopsbundlesupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 006E9886119552DD001DE610 /* SDL_rwopsbundlesupport.h */; }; - 52ED1D86222889500061FCE0 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 0420496E11E6F03D007E7EC9 /* SDL_clipboardevents_c.h */; }; - 52ED1D87222889500061FCE0 /* SDL_rect_c.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3461FB8B27800D9FEE6 /* SDL_rect_c.h */; }; - 52ED1D88222889500061FCE0 /* yuv_rgb_sse_func.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3541FB8B46300D9FEE6 /* yuv_rgb_sse_func.h */; }; - 52ED1D89222889500061FCE0 /* SDL_gesture_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 04BA9D5F11EF474A00B60E01 /* SDL_gesture_c.h */; }; - 52ED1D8A222889500061FCE0 /* SDL_touch_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 04BA9D6111EF474A00B60E01 /* SDL_touch_c.h */; }; - 52ED1D8B222889500061FCE0 /* SDL_sysrender.h in Headers */ = {isa = PBXBuildFile; fileRef = 041B2CEB12FA0F680087D585 /* SDL_sysrender.h */; }; - 52ED1D8C222889500061FCE0 /* SDL_yuv_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 04409BA412FA989600FB9AA8 /* SDL_yuv_sw_c.h */; }; - 52ED1D8D222889500061FCE0 /* yuv_rgb.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3551FB8B46300D9FEE6 /* yuv_rgb.h */; }; - 52ED1D8E222889500061FCE0 /* SDL_blendfillrect.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7806B12FB751400FC43C0 /* SDL_blendfillrect.h */; }; - 52ED1D8F222889500061FCE0 /* SDL_blendline.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7806D12FB751400FC43C0 /* SDL_blendline.h */; }; - 52ED1D90222889500061FCE0 /* SDL_hidapijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F3BDD79020F51CB8004ECBF3 /* SDL_hidapijoystick_c.h */; }; - 52ED1D91222889500061FCE0 /* SDL_blendpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7806F12FB751400FC43C0 /* SDL_blendpoint.h */; }; - 52ED1D92222889500061FCE0 /* SDL_draw.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7807012FB751400FC43C0 /* SDL_draw.h */; }; - 52ED1D93222889500061FCE0 /* SDL_drawline.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7807212FB751400FC43C0 /* SDL_drawline.h */; }; - 52ED1D94222889500061FCE0 /* SDL_yuv_c.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3481FB8B27800D9FEE6 /* SDL_yuv_c.h */; }; - 52ED1D95222889500061FCE0 /* SDL_drawpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7807412FB751400FC43C0 /* SDL_drawpoint.h */; }; - 52ED1D96222889500061FCE0 /* SDL_nullframebuffer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7808212FB753F00FC43C0 /* SDL_nullframebuffer_c.h */; }; - 52ED1D97222889500061FCE0 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 0442EC4E12FE1C1E004C9285 /* SDL_render_sw_c.h */; }; - 52ED1D98222889500061FCE0 /* SDL_uikitclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = FA1DC2701C62BE65008F99A0 /* SDL_uikitclipboard.h */; }; - 52ED1D99222889500061FCE0 /* SDL_shaders_gles2.h in Headers */ = {isa = PBXBuildFile; fileRef = 0402A85712FE70C600CECEE3 /* SDL_shaders_gles2.h */; }; - 52ED1D9A222889500061FCE0 /* SDL_assert_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 04BAC09A1300C1290055DE28 /* SDL_assert_c.h */; }; - 52ED1D9B222889500061FCE0 /* SDL_coreaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = 56EA86FA13E9EC2B002E47EB /* SDL_coreaudio.h */; }; - 52ED1D9C222889500061FCE0 /* SDL_uikitviewcontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = 93CB792213FC5E5200BD3E05 /* SDL_uikitviewcontroller.h */; }; - 52ED1D9D222889500061FCE0 /* SDL_rotate.h in Headers */ = {isa = PBXBuildFile; fileRef = AA628ADA159369E3005138DD /* SDL_rotate.h */; }; - 52ED1D9E222889500061FCE0 /* begin_code.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558651595D55500BBD41B /* begin_code.h */; }; - 52ED1D9F222889500061FCE0 /* close_code.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558661595D55500BBD41B /* close_code.h */; }; - 52ED1DA0222889500061FCE0 /* SDL_assert.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558671595D55500BBD41B /* SDL_assert.h */; }; - 52ED1DA1222889500061FCE0 /* SDL_atomic.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558681595D55500BBD41B /* SDL_atomic.h */; }; - 52ED1DA2222889500061FCE0 /* SDL_audio.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558691595D55500BBD41B /* SDL_audio.h */; }; - 52ED1DA3222889500061FCE0 /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = 55FFA9192122302B00D7CBED /* SDL_syspower.h */; }; - 52ED1DA4222889500061FCE0 /* SDL_blendmode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75586A1595D55500BBD41B /* SDL_blendmode.h */; }; - 52ED1DA5222889500061FCE0 /* SDL_sensor_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F30D9C9B212CD0980047DF2E /* SDL_sensor_c.h */; }; - 52ED1DA6222889500061FCE0 /* SDL_clipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75586B1595D55500BBD41B /* SDL_clipboard.h */; }; - 52ED1DA7222889500061FCE0 /* SDL_config_iphoneos.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75586C1595D55500BBD41B /* SDL_config_iphoneos.h */; }; - 52ED1DA8222889500061FCE0 /* SDL_config.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75586D1595D55500BBD41B /* SDL_config.h */; }; - 52ED1DA9222889500061FCE0 /* SDL_copying.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75586E1595D55500BBD41B /* SDL_copying.h */; }; - 52ED1DAA222889500061FCE0 /* SDL_egl_c.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3431FB8B27700D9FEE6 /* SDL_egl_c.h */; }; - 52ED1DAB222889500061FCE0 /* SDL_cpuinfo.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75586F1595D55500BBD41B /* SDL_cpuinfo.h */; }; - 52ED1DAC222889500061FCE0 /* SDL_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558701595D55500BBD41B /* SDL_endian.h */; }; - 52ED1DAD222889500061FCE0 /* SDL_error.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558711595D55500BBD41B /* SDL_error.h */; }; - 52ED1DAE222889500061FCE0 /* SDL_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 56A6702D18565E450007D20F /* SDL_internal.h */; }; - 52ED1DAF222889500061FCE0 /* SDL_events.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558721595D55500BBD41B /* SDL_events.h */; }; - 52ED1DB0222889500061FCE0 /* SDL_gesture.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558731595D55500BBD41B /* SDL_gesture.h */; }; - 52ED1DB1222889500061FCE0 /* SDL_haptic.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558741595D55500BBD41B /* SDL_haptic.h */; }; - 52ED1DB2222889500061FCE0 /* SDL_hints.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558751595D55500BBD41B /* SDL_hints.h */; }; - 52ED1DB3222889500061FCE0 /* SDL_dataqueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 566726441DF72CF5001DD3DB /* SDL_dataqueue.h */; }; - 52ED1DB4222889500061FCE0 /* SDL_syssensor.h in Headers */ = {isa = PBXBuildFile; fileRef = F30D9C9C212CD0990047DF2E /* SDL_syssensor.h */; }; - 52ED1DB5222889500061FCE0 /* SDL_joystick.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558771595D55500BBD41B /* SDL_joystick.h */; }; - 52ED1DB6222889500061FCE0 /* SDL_shape_internals.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3451FB8B27800D9FEE6 /* SDL_shape_internals.h */; }; - 52ED1DB7222889500061FCE0 /* SDL_keyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558781595D55500BBD41B /* SDL_keyboard.h */; }; - 52ED1DB8222889500061FCE0 /* controller_type.h in Headers */ = {isa = PBXBuildFile; fileRef = A704172D20F7E74800A82227 /* controller_type.h */; }; - 52ED1DB9222889500061FCE0 /* SDL_keycode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558791595D55500BBD41B /* SDL_keycode.h */; }; - 52ED1DBA222889500061FCE0 /* SDL_loadso.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75587A1595D55500BBD41B /* SDL_loadso.h */; }; - 52ED1DBB222889500061FCE0 /* SDL_log.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75587B1595D55500BBD41B /* SDL_log.h */; }; - 52ED1DBC222889500061FCE0 /* SDL_coremotionsensor.h in Headers */ = {isa = PBXBuildFile; fileRef = F30D9CA4212CD0BF0047DF2E /* SDL_coremotionsensor.h */; }; - 52ED1DBD222889500061FCE0 /* SDL_main.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75587C1595D55500BBD41B /* SDL_main.h */; }; - 52ED1DBE222889500061FCE0 /* SDL_mouse.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75587D1595D55500BBD41B /* SDL_mouse.h */; }; - 52ED1DBF222889500061FCE0 /* SDL_displayevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7C19D27212E552B00DF2152 /* SDL_displayevents_c.h */; }; - 52ED1DC0222889500061FCE0 /* SDL_mutex.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75587E1595D55500BBD41B /* SDL_mutex.h */; }; - 52ED1DC1222889500061FCE0 /* SDL_name.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75587F1595D55500BBD41B /* SDL_name.h */; }; - 52ED1DC2222889500061FCE0 /* SDL_opengl.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558801595D55500BBD41B /* SDL_opengl.h */; }; - 52ED1DC3222889500061FCE0 /* SDL_opengles.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558811595D55500BBD41B /* SDL_opengles.h */; }; - 52ED1DC4222889500061FCE0 /* SDL_shaders_metal_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = AADC5A611FDA10C800960936 /* SDL_shaders_metal_ios.h */; }; - 52ED1DC5222889500061FCE0 /* SDL_opengles2.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558821595D55500BBD41B /* SDL_opengles2.h */; }; - 52ED1DC6222889500061FCE0 /* SDL_pixels.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558831595D55500BBD41B /* SDL_pixels.h */; }; - 52ED1DC7222889500061FCE0 /* SDL_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558841595D55500BBD41B /* SDL_platform.h */; }; - 52ED1DC8222889500061FCE0 /* SDL_power.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558851595D55500BBD41B /* SDL_power.h */; }; - 52ED1DC9222889500061FCE0 /* SDL_quit.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558861595D55500BBD41B /* SDL_quit.h */; }; - 52ED1DCA222889500061FCE0 /* SDL_rect.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558871595D55500BBD41B /* SDL_rect.h */; }; - 52ED1DCB222889500061FCE0 /* SDL_render.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558881595D55500BBD41B /* SDL_render.h */; }; - 52ED1DCC222889500061FCE0 /* SDL_revision.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558891595D55500BBD41B /* SDL_revision.h */; }; - 52ED1DCD222889500061FCE0 /* SDL_rwops.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75588A1595D55500BBD41B /* SDL_rwops.h */; }; - 52ED1DCE222889500061FCE0 /* SDL_scancode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75588B1595D55500BBD41B /* SDL_scancode.h */; }; - 52ED1DCF222889500061FCE0 /* SDL_shape.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75588C1595D55500BBD41B /* SDL_shape.h */; }; - 52ED1DD0222889500061FCE0 /* SDL_stdinc.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75588D1595D55500BBD41B /* SDL_stdinc.h */; }; - 52ED1DD1222889500061FCE0 /* SDL_sysjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = FAD4F7011BA3C4E8008346CE /* SDL_sysjoystick_c.h */; }; - 52ED1DD2222889500061FCE0 /* SDL_surface.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75588E1595D55500BBD41B /* SDL_surface.h */; }; - 52ED1DD3222889500061FCE0 /* SDL_system.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75588F1595D55500BBD41B /* SDL_system.h */; }; - 52ED1DD4222889500061FCE0 /* SDL_sensor.h in Headers */ = {isa = PBXBuildFile; fileRef = F30D9C98212CD0360047DF2E /* SDL_sensor.h */; }; - 52ED1DD5222889500061FCE0 /* SDL_syswm.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558901595D55500BBD41B /* SDL_syswm.h */; }; - 52ED1DD6222889500061FCE0 /* SDL_thread.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558911595D55500BBD41B /* SDL_thread.h */; }; - 52ED1DD7222889500061FCE0 /* SDL_timer.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558921595D55500BBD41B /* SDL_timer.h */; }; - 52ED1DD8222889500061FCE0 /* SDL_touch.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558931595D55500BBD41B /* SDL_touch.h */; }; - 52ED1DD9222889500061FCE0 /* SDL_types.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558941595D55500BBD41B /* SDL_types.h */; }; - 52ED1DDA222889500061FCE0 /* SDL_version.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558951595D55500BBD41B /* SDL_version.h */; }; - 52ED1DDB222889500061FCE0 /* SDL_vulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D7516FE1EE1C5B400820EEA /* SDL_vulkan.h */; }; - 52ED1DDC222889500061FCE0 /* SDL_video.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558961595D55500BBD41B /* SDL_video.h */; }; - 52ED1DDD222889500061FCE0 /* SDL.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558971595D55500BBD41B /* SDL.h */; }; - 52ED1DDE222889500061FCE0 /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D7516F91EE1C28A00820EEA /* SDL_uikitvulkan.h */; }; - 52ED1DDF222889500061FCE0 /* SDL_uikitmodes.h in Headers */ = {isa = PBXBuildFile; fileRef = AA126AD21617C5E6005ABC8F /* SDL_uikitmodes.h */; }; - 52ED1DE0222889500061FCE0 /* SDL_dropevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = AA704DD4162AA90A0076D1C1 /* SDL_dropevents_c.h */; }; - 52ED1DE1222889500061FCE0 /* SDL_messagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = AA9FF9501637C6E5000DF050 /* SDL_messagebox.h */; }; - 52ED1DE2222889500061FCE0 /* SDL_uikitmessagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = AABCC3921640643D00AB8930 /* SDL_uikitmessagebox.h */; }; - 52ED1DE3222889500061FCE0 /* SDL_gamecontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = AA0AD06416647BD400CE5896 /* SDL_gamecontroller.h */; }; - 52ED1DE4222889500061FCE0 /* SDL_dummysensor.h in Headers */ = {isa = PBXBuildFile; fileRef = F36839CA214790950000F255 /* SDL_dummysensor.h */; }; - 52ED1DE5222889500061FCE0 /* SDL_bits.h in Headers */ = {isa = PBXBuildFile; fileRef = AADA5B8E16CCAB7C00107CF7 /* SDL_bits.h */; }; - 52ED1DE6222889500061FCE0 /* SDL_filesystem.h in Headers */ = {isa = PBXBuildFile; fileRef = 56C181DE17C44D5E00406AE3 /* SDL_filesystem.h */; }; - 52ED1DE8222889500061FCE0 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA310DD52EDC00FB1D6B /* SDL_systimer.c */; }; - 52ED1DE9222889500061FCE0 /* SDL_timer.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA2E0DD52EDC00FB1D6B /* SDL_timer.c */; }; - 52ED1DEA222889500061FCE0 /* SDL_coremotionsensor.m in Sources */ = {isa = PBXBuildFile; fileRef = F30D9CA3212CD0BF0047DF2E /* SDL_coremotionsensor.m */; }; - 52ED1DEB222889500061FCE0 /* SDL_string.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A750DEA620800C5B771 /* SDL_string.c */; }; - 52ED1DEC222889500061FCE0 /* SDL_dummyaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B91D0DD52EDC00FB1D6B /* SDL_dummyaudio.c */; }; - 52ED1DED222889500061FCE0 /* SDL_audio.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9440DD52EDC00FB1D6B /* SDL_audio.c */; }; - 52ED1DEE222889500061FCE0 /* SDL_audiocvt.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9460DD52EDC00FB1D6B /* SDL_audiocvt.c */; }; - 52ED1DEF222889500061FCE0 /* SDL_audiotypecvt.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B94A0DD52EDC00FB1D6B /* SDL_audiotypecvt.c */; }; - 52ED1DF0222889500061FCE0 /* SDL_mixer.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B94B0DD52EDC00FB1D6B /* SDL_mixer.c */; }; - 52ED1DF1222889500061FCE0 /* SDL_wave.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9530DD52EDC00FB1D6B /* SDL_wave.c */; }; - 52ED1DF2222889500061FCE0 /* SDL_uikitvulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D7516FA1EE1C28A00820EEA /* SDL_uikitvulkan.m */; }; - 52ED1DF3222889500061FCE0 /* SDL_uikitclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = FA1DC2711C62BE65008F99A0 /* SDL_uikitclipboard.m */; }; - 52ED1DF4222889500061FCE0 /* SDL_cpuinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B98B0DD52EDC00FB1D6B /* SDL_cpuinfo.c */; }; - 52ED1DF5222889500061FCE0 /* SDL_events.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9930DD52EDC00FB1D6B /* SDL_events.c */; }; - 52ED1DF6222889500061FCE0 /* SDL_keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9950DD52EDC00FB1D6B /* SDL_keyboard.c */; }; - 52ED1DF7222889500061FCE0 /* SDL_dynapi.c in Sources */ = {isa = PBXBuildFile; fileRef = 56A6703318565E760007D20F /* SDL_dynapi.c */; }; - 52ED1DF8222889500061FCE0 /* SDL_mouse.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9970DD52EDC00FB1D6B /* SDL_mouse.c */; }; - 52ED1DF9222889500061FCE0 /* SDL_quit.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9990DD52EDC00FB1D6B /* SDL_quit.c */; }; - 52ED1DFA222889500061FCE0 /* SDL_windowevents.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B99B0DD52EDC00FB1D6B /* SDL_windowevents.c */; }; - 52ED1DFB222889500061FCE0 /* SDL_uikitmetalview.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D7516F81EE1C28A00820EEA /* SDL_uikitmetalview.m */; }; - 52ED1DFC222889500061FCE0 /* SDL_rwops.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B99E0DD52EDC00FB1D6B /* SDL_rwops.c */; }; - 52ED1DFD222889500061FCE0 /* hid.m in Sources */ = {isa = PBXBuildFile; fileRef = F30D9CC5212CE92C0047DF2E /* hid.m */; }; - 52ED1DFE222889500061FCE0 /* SDL_vulkan_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D75171E1EE1D98200820EEA /* SDL_vulkan_utils.c */; }; - 52ED1DFF222889500061FCE0 /* SDL_error.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9D50DD52EDC00FB1D6B /* SDL_error.c */; }; - 52ED1E00222889500061FCE0 /* SDL.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9D80DD52EDC00FB1D6B /* SDL.c */; }; - 52ED1E01222889500061FCE0 /* SDL_syscond.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA070DD52EDC00FB1D6B /* SDL_syscond.c */; }; - 52ED1E02222889500061FCE0 /* SDL_render_metal.m in Sources */ = {isa = PBXBuildFile; fileRef = AADC5A621FDA10C800960936 /* SDL_render_metal.m */; }; - 52ED1E03222889500061FCE0 /* SDL_sysmutex.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA080DD52EDC00FB1D6B /* SDL_sysmutex.c */; }; - 52ED1E04222889500061FCE0 /* SDL_syssem.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA0A0DD52EDC00FB1D6B /* SDL_syssem.c */; }; - 52ED1E05222889500061FCE0 /* SDL_systhread.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA0B0DD52EDC00FB1D6B /* SDL_systhread.c */; }; - 52ED1E06222889500061FCE0 /* SDL_thread.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA150DD52EDC00FB1D6B /* SDL_thread.c */; }; - 52ED1E07222889500061FCE0 /* SDL_getenv.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A700DEA620800C5B771 /* SDL_getenv.c */; }; - 52ED1E08222889500061FCE0 /* SDL_iconv.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A710DEA620800C5B771 /* SDL_iconv.c */; }; - 52ED1E09222889500061FCE0 /* SDL_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A720DEA620800C5B771 /* SDL_malloc.c */; }; - 52ED1E0A222889500061FCE0 /* SDL_hidapi_xbox360.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD78B20F51CB8004ECBF3 /* SDL_hidapi_xbox360.c */; }; - 52ED1E0B222889500061FCE0 /* SDL_qsort.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A730DEA620800C5B771 /* SDL_qsort.c */; }; - 52ED1E0C222889500061FCE0 /* SDL_hidapi_ps4.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD78E20F51CB8004ECBF3 /* SDL_hidapi_ps4.c */; }; - 52ED1E0D222889500061FCE0 /* SDL_stdlib.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A740DEA620800C5B771 /* SDL_stdlib.c */; }; - 52ED1E0E222889500061FCE0 /* SDL_blit.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683000DF2374E00F98A1A /* SDL_blit.c */; }; - 52ED1E0F222889500061FCE0 /* SDL_blit_0.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683020DF2374E00F98A1A /* SDL_blit_0.c */; }; - 52ED1E10222889500061FCE0 /* SDL_yuv.c in Sources */ = {isa = PBXBuildFile; fileRef = AA13B34F1FB8B3CC00D9FEE6 /* SDL_yuv.c */; }; - 52ED1E11222889500061FCE0 /* SDL_blit_1.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683030DF2374E00F98A1A /* SDL_blit_1.c */; }; - 52ED1E12222889500061FCE0 /* SDL_dataqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = 566726431DF72CF5001DD3DB /* SDL_dataqueue.c */; }; - 52ED1E13222889500061FCE0 /* SDL_blit_A.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683040DF2374E00F98A1A /* SDL_blit_A.c */; }; - 52ED1E14222889500061FCE0 /* SDL_blit_auto.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683050DF2374E00F98A1A /* SDL_blit_auto.c */; }; - 52ED1E15222889500061FCE0 /* SDL_blit_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683070DF2374E00F98A1A /* SDL_blit_copy.c */; }; - 52ED1E16222889500061FCE0 /* SDL_blit_N.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683090DF2374E00F98A1A /* SDL_blit_N.c */; }; - 52ED1E17222889500061FCE0 /* SDL_blit_slow.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA6830A0DF2374E00F98A1A /* SDL_blit_slow.c */; }; - 52ED1E18222889500061FCE0 /* SDL_bmp.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA6830B0DF2374E00F98A1A /* SDL_bmp.c */; }; - 52ED1E19222889500061FCE0 /* SDL_pixels.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA6830F0DF2374E00F98A1A /* SDL_pixels.c */; }; - 52ED1E1A222889500061FCE0 /* SDL_rect.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683110DF2374E00F98A1A /* SDL_rect.c */; }; - 52ED1E1B222889500061FCE0 /* SDL_RLEaccel.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683150DF2374E00F98A1A /* SDL_RLEaccel.c */; }; - 52ED1E1C222889500061FCE0 /* SDL_stretch.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683170DF2374E00F98A1A /* SDL_stretch.c */; }; - 52ED1E1D222889500061FCE0 /* SDL_egl.c in Sources */ = {isa = PBXBuildFile; fileRef = AA13B3471FB8B27800D9FEE6 /* SDL_egl.c */; }; - 52ED1E1E222889500061FCE0 /* SDL_surface.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683190DF2374E00F98A1A /* SDL_surface.c */; }; - 52ED1E1F222889500061FCE0 /* SDL_video.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA6831B0DF2374E00F98A1A /* SDL_video.c */; }; - 52ED1E20222889500061FCE0 /* SDL_nullevents.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA685F50DF244C800F98A1A /* SDL_nullevents.c */; }; - 52ED1E21222889500061FCE0 /* SDL_nullvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA685F90DF244C800F98A1A /* SDL_nullvideo.c */; }; - 52ED1E22222889500061FCE0 /* SDL_joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = FD5F9D1E0E0E08B3008E885B /* SDL_joystick.c */; }; - 52ED1E23222889500061FCE0 /* SDL_sysjoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F000E26E5B600F90B21 /* SDL_sysjoystick.m */; }; - 52ED1E24222889500061FCE0 /* SDL_uikitevents.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F0D0E26E5D900F90B21 /* SDL_uikitevents.m */; }; - 52ED1E25222889500061FCE0 /* yuv_rgb.c in Sources */ = {isa = PBXBuildFile; fileRef = AA13B3561FB8B46300D9FEE6 /* yuv_rgb.c */; }; - 52ED1E26222889500061FCE0 /* SDL_uikitopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F0F0E26E5D900F90B21 /* SDL_uikitopengles.m */; }; - 52ED1E27222889500061FCE0 /* SDL_uikitvideo.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F110E26E5D900F90B21 /* SDL_uikitvideo.m */; }; - 52ED1E28222889500061FCE0 /* SDL_uikitview.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F130E26E5D900F90B21 /* SDL_uikitview.m */; }; - 52ED1E29222889500061FCE0 /* SDL_displayevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7C19D28212E552B00DF2152 /* SDL_displayevents.c */; }; - 52ED1E2A222889500061FCE0 /* SDL_uikitwindow.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F150E26E5D900F90B21 /* SDL_uikitwindow.m */; }; - 52ED1E2B222889500061FCE0 /* SDL_uikitopenglview.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F170E26E5D900F90B21 /* SDL_uikitopenglview.m */; }; - 52ED1E2C222889500061FCE0 /* SDL_uikitappdelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689FCC0E26E9D400F90B21 /* SDL_uikitappdelegate.m */; }; - 52ED1E2D222889500061FCE0 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = FD8BD8190E27E25900B52CD5 /* SDL_sysloadso.c */; }; - 52ED1E2E222889500061FCE0 /* SDL_hidapijoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD79120F51CB8004ECBF3 /* SDL_hidapijoystick.c */; }; - 52ED1E2F222889500061FCE0 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = 047677B80EA76A31008ABAF1 /* SDL_syshaptic.c */; }; - 52ED1E30222889500061FCE0 /* SDL_haptic.c in Sources */ = {isa = PBXBuildFile; fileRef = 047677B90EA76A31008ABAF1 /* SDL_haptic.c */; }; - 52ED1E31222889500061FCE0 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = 047AF1B20EA98D6C00811173 /* SDL_sysloadso.c */; }; - 52ED1E32222889500061FCE0 /* SDL_fillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = 0463873E0F0B5B7D0041FD65 /* SDL_fillrect.c */; }; - 52ED1E33222889500061FCE0 /* SDL_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F2AF551104ABD200D6DDF7 /* SDL_assert.c */; }; - 52ED1E34222889500061FCE0 /* SDL_hidapi_xboxone.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD78D20F51CB8004ECBF3 /* SDL_hidapi_xboxone.c */; }; - 52ED1E35222889500061FCE0 /* SDL_power.c in Sources */ = {isa = PBXBuildFile; fileRef = 56ED04E0118A8EE200A56AA6 /* SDL_power.c */; }; - 52ED1E36222889500061FCE0 /* SDL_syspower.m in Sources */ = {isa = PBXBuildFile; fileRef = 56ED04E2118A8EFD00A56AA6 /* SDL_syspower.m */; }; - 52ED1E37222889500061FCE0 /* SDL_rwopsbundlesupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 006E9887119552DD001DE610 /* SDL_rwopsbundlesupport.m */; }; - 52ED1E38222889500061FCE0 /* SDL_clipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 044E5FB711E606EB0076F181 /* SDL_clipboard.c */; }; - 52ED1E39222889500061FCE0 /* SDL_clipboardevents.c in Sources */ = {isa = PBXBuildFile; fileRef = 0420496F11E6F03D007E7EC9 /* SDL_clipboardevents.c */; }; - 52ED1E3A222889500061FCE0 /* SDL_gesture.c in Sources */ = {isa = PBXBuildFile; fileRef = 04BA9D6011EF474A00B60E01 /* SDL_gesture.c */; }; - 52ED1E3B222889500061FCE0 /* SDL_touch.c in Sources */ = {isa = PBXBuildFile; fileRef = 04BA9D6211EF474A00B60E01 /* SDL_touch.c */; }; - 52ED1E3C222889500061FCE0 /* SDL_atomic.c in Sources */ = {isa = PBXBuildFile; fileRef = 04FFAB8912E23B8D00BA343D /* SDL_atomic.c */; }; - 52ED1E3D222889500061FCE0 /* SDL_spinlock.c in Sources */ = {isa = PBXBuildFile; fileRef = 04FFAB8A12E23B8D00BA343D /* SDL_spinlock.c */; }; - 52ED1E3E222889500061FCE0 /* SDL_render.c in Sources */ = {isa = PBXBuildFile; fileRef = 041B2CEA12FA0F680087D585 /* SDL_render.c */; }; - 52ED1E3F222889500061FCE0 /* SDL_yuv_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = 04409BA512FA989600FB9AA8 /* SDL_yuv_sw.c */; }; - 52ED1E40222889500061FCE0 /* SDL_blendfillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7806A12FB751400FC43C0 /* SDL_blendfillrect.c */; }; - 52ED1E41222889500061FCE0 /* SDL_blendline.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7806C12FB751400FC43C0 /* SDL_blendline.c */; }; - 52ED1E42222889500061FCE0 /* SDL_blendpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7806E12FB751400FC43C0 /* SDL_blendpoint.c */; }; - 52ED1E43222889500061FCE0 /* SDL_drawline.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7807112FB751400FC43C0 /* SDL_drawline.c */; }; - 52ED1E44222889500061FCE0 /* SDL_drawpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7807312FB751400FC43C0 /* SDL_drawpoint.c */; }; - 52ED1E45222889500061FCE0 /* SDL_nullframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7808312FB753F00FC43C0 /* SDL_nullframebuffer.c */; }; - 52ED1E46222889500061FCE0 /* SDL_render_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = 0442EC4F12FE1C1E004C9285 /* SDL_render_sw.c */; }; - 52ED1E47222889500061FCE0 /* SDL_render_gles.c in Sources */ = {isa = PBXBuildFile; fileRef = 0442EC5212FE1C28004C9285 /* SDL_render_gles.c */; }; - 52ED1E48222889500061FCE0 /* SDL_hints.c in Sources */ = {isa = PBXBuildFile; fileRef = 0442EC5412FE1C3F004C9285 /* SDL_hints.c */; }; - 52ED1E49222889500061FCE0 /* SDL_shape.c in Sources */ = {isa = PBXBuildFile; fileRef = AA13B3441FB8B27800D9FEE6 /* SDL_shape.c */; }; - 52ED1E4A222889500061FCE0 /* SDL_render_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = 0402A85512FE70C600CECEE3 /* SDL_render_gles2.c */; }; - 52ED1E4B222889500061FCE0 /* SDL_dummysensor.c in Sources */ = {isa = PBXBuildFile; fileRef = F36839CB214790950000F255 /* SDL_dummysensor.c */; }; - 52ED1E4C222889500061FCE0 /* SDL_shaders_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = 0402A85612FE70C600CECEE3 /* SDL_shaders_gles2.c */; }; - 52ED1E4D222889500061FCE0 /* SDL_log.c in Sources */ = {isa = PBXBuildFile; fileRef = 04BAC09B1300C1290055DE28 /* SDL_log.c */; }; - 52ED1E4E222889500061FCE0 /* SDL_coreaudio.m in Sources */ = {isa = PBXBuildFile; fileRef = 56EA86F913E9EC2B002E47EB /* SDL_coreaudio.m */; }; - 52ED1E4F222889500061FCE0 /* SDL_sensor.c in Sources */ = {isa = PBXBuildFile; fileRef = F30D9C9D212CD0990047DF2E /* SDL_sensor.c */; }; - 52ED1E50222889500061FCE0 /* SDL_hidapi_switch.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD78C20F51CB8004ECBF3 /* SDL_hidapi_switch.c */; }; - 52ED1E51222889500061FCE0 /* SDL_uikitviewcontroller.m in Sources */ = {isa = PBXBuildFile; fileRef = 93CB792513FC5F5300BD3E05 /* SDL_uikitviewcontroller.m */; }; - 52ED1E52222889500061FCE0 /* SDL_rotate.c in Sources */ = {isa = PBXBuildFile; fileRef = AA628AD9159369E3005138DD /* SDL_rotate.c */; }; - 52ED1E53222889500061FCE0 /* SDL_uikitmodes.m in Sources */ = {isa = PBXBuildFile; fileRef = AA126AD31617C5E6005ABC8F /* SDL_uikitmodes.m */; }; - 52ED1E54222889500061FCE0 /* SDL_dropevents.c in Sources */ = {isa = PBXBuildFile; fileRef = AA704DD5162AA90A0076D1C1 /* SDL_dropevents.c */; }; - 52ED1E55222889500061FCE0 /* SDL_uikitmessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = AABCC3931640643D00AB8930 /* SDL_uikitmessagebox.m */; }; - 52ED1E56222889500061FCE0 /* SDL_gamecontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = AA0AD06116647BBB00CE5896 /* SDL_gamecontroller.c */; }; - 52ED1E57222889500061FCE0 /* SDL_systls.c in Sources */ = {isa = PBXBuildFile; fileRef = AA0F8494178D5F1A00823F9D /* SDL_systls.c */; }; - 52ED1E58222889500061FCE0 /* SDL_sysfilesystem.m in Sources */ = {isa = PBXBuildFile; fileRef = 56C181E117C44D7A00406AE3 /* SDL_sysfilesystem.m */; }; - 52ED1E6C22288B8C0061FCE0 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E6B22288B8C0061FCE0 /* QuartzCore.framework */; }; - 52ED1E6E22288B960061FCE0 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E6D22288B960061FCE0 /* CoreAudio.framework */; }; - 52ED1E7022288BA20061FCE0 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E6F22288BA20061FCE0 /* AudioToolbox.framework */; }; - 52ED1E7222288BAC0061FCE0 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7122288BAC0061FCE0 /* AVFoundation.framework */; }; - 52ED1E7422288BB70061FCE0 /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7322288BB70061FCE0 /* CoreBluetooth.framework */; }; - 52ED1E7622288BC10061FCE0 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7522288BC10061FCE0 /* CoreGraphics.framework */; }; - 52ED1E7822288BCA0061FCE0 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7722288BCA0061FCE0 /* UIKit.framework */; }; - 52ED1E7A22288BDD0061FCE0 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7922288BDD0061FCE0 /* GameController.framework */; }; - 52ED1E7C22288BE70061FCE0 /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7B22288BE70061FCE0 /* CoreMotion.framework */; }; - 52ED1E7E22288BF00061FCE0 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7D22288BF00061FCE0 /* Metal.framework */; }; - 52ED1E8022288BFA0061FCE0 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7F22288BFA0061FCE0 /* OpenGLES.framework */; }; - 55FFA91A2122302B00D7CBED /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = 55FFA9192122302B00D7CBED /* SDL_syspower.h */; }; - 566726451DF72CF5001DD3DB /* SDL_dataqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = 566726431DF72CF5001DD3DB /* SDL_dataqueue.c */; }; - 566726461DF72CF5001DD3DB /* SDL_dataqueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 566726441DF72CF5001DD3DB /* SDL_dataqueue.h */; }; - 56A6702E18565E450007D20F /* SDL_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 56A6702D18565E450007D20F /* SDL_internal.h */; }; - 56A6703518565E760007D20F /* SDL_dynapi_overrides.h in Headers */ = {isa = PBXBuildFile; fileRef = 56A6703118565E760007D20F /* SDL_dynapi_overrides.h */; }; - 56A6703618565E760007D20F /* SDL_dynapi_procs.h in Headers */ = {isa = PBXBuildFile; fileRef = 56A6703218565E760007D20F /* SDL_dynapi_procs.h */; }; - 56A6703718565E760007D20F /* SDL_dynapi.c in Sources */ = {isa = PBXBuildFile; fileRef = 56A6703318565E760007D20F /* SDL_dynapi.c */; }; - 56A6703818565E760007D20F /* SDL_dynapi.h in Headers */ = {isa = PBXBuildFile; fileRef = 56A6703418565E760007D20F /* SDL_dynapi.h */; }; - 56C181DF17C44D5E00406AE3 /* SDL_filesystem.h in Headers */ = {isa = PBXBuildFile; fileRef = 56C181DE17C44D5E00406AE3 /* SDL_filesystem.h */; }; - 56C181E217C44D7A00406AE3 /* SDL_sysfilesystem.m in Sources */ = {isa = PBXBuildFile; fileRef = 56C181E117C44D7A00406AE3 /* SDL_sysfilesystem.m */; }; - 56EA86FB13E9EC2B002E47EB /* SDL_coreaudio.m in Sources */ = {isa = PBXBuildFile; fileRef = 56EA86F913E9EC2B002E47EB /* SDL_coreaudio.m */; }; - 56EA86FC13E9EC2B002E47EB /* SDL_coreaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = 56EA86FA13E9EC2B002E47EB /* SDL_coreaudio.h */; }; - 56ED04E1118A8EE200A56AA6 /* SDL_power.c in Sources */ = {isa = PBXBuildFile; fileRef = 56ED04E0118A8EE200A56AA6 /* SDL_power.c */; }; - 56ED04E3118A8EFD00A56AA6 /* SDL_syspower.m in Sources */ = {isa = PBXBuildFile; fileRef = 56ED04E2118A8EFD00A56AA6 /* SDL_syspower.m */; }; - 56F9D5601DF73BA400C15B5D /* SDL_dataqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = 566726431DF72CF5001DD3DB /* SDL_dataqueue.c */; }; - 63CC93C723849391002A5C54 /* SDL_strtokr.c in Sources */ = {isa = PBXBuildFile; fileRef = 63CC93C623849391002A5C54 /* SDL_strtokr.c */; }; - 63CC93C823849391002A5C54 /* SDL_strtokr.c in Sources */ = {isa = PBXBuildFile; fileRef = 63CC93C623849391002A5C54 /* SDL_strtokr.c */; }; - 63CC93C923849391002A5C54 /* SDL_strtokr.c in Sources */ = {isa = PBXBuildFile; fileRef = 63CC93C623849391002A5C54 /* SDL_strtokr.c */; }; - 63CC93CA23849391002A5C54 /* SDL_strtokr.c in Sources */ = {isa = PBXBuildFile; fileRef = 63CC93C623849391002A5C54 /* SDL_strtokr.c */; }; - 93CB792313FC5E5200BD3E05 /* SDL_uikitviewcontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = 93CB792213FC5E5200BD3E05 /* SDL_uikitviewcontroller.h */; }; - 93CB792613FC5F5300BD3E05 /* SDL_uikitviewcontroller.m in Sources */ = {isa = PBXBuildFile; fileRef = 93CB792513FC5F5300BD3E05 /* SDL_uikitviewcontroller.m */; }; - A704172E20F7E74800A82227 /* controller_type.h in Headers */ = {isa = PBXBuildFile; fileRef = A704172D20F7E74800A82227 /* controller_type.h */; }; - A704172F20F7E76000A82227 /* SDL_gamecontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = AA0AD06116647BBB00CE5896 /* SDL_gamecontroller.c */; }; - A704173120F7F39900A82227 /* SDL_hidapi_steam.c in Sources */ = {isa = PBXBuildFile; fileRef = A704173020F7F39400A82227 /* SDL_hidapi_steam.c */; }; - A704173220F7F39900A82227 /* SDL_hidapi_steam.c in Sources */ = {isa = PBXBuildFile; fileRef = A704173020F7F39400A82227 /* SDL_hidapi_steam.c */; }; - A75FDAB723E288E400529352 /* SDL_hidapi_steam.c in Sources */ = {isa = PBXBuildFile; fileRef = A704173020F7F39400A82227 /* SDL_hidapi_steam.c */; }; - A75FDAB823E2890000529352 /* SDL_hidapi_steam.c in Sources */ = {isa = PBXBuildFile; fileRef = A704173020F7F39400A82227 /* SDL_hidapi_steam.c */; }; - A75FDBD923EA38AD00529352 /* SDL_hidapi_rumble.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDBD723EA38AD00529352 /* SDL_hidapi_rumble.c */; }; - A75FDBDA23EA38AD00529352 /* SDL_hidapi_rumble.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDBD723EA38AD00529352 /* SDL_hidapi_rumble.c */; }; - A75FDBDB23EA38AD00529352 /* SDL_hidapi_rumble.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDBD723EA38AD00529352 /* SDL_hidapi_rumble.c */; }; - A75FDBDC23EA38AD00529352 /* SDL_hidapi_rumble.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDBD723EA38AD00529352 /* SDL_hidapi_rumble.c */; }; - A75FDBDD23EA38AD00529352 /* SDL_hidapi_rumble.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDBD823EA38AD00529352 /* SDL_hidapi_rumble.h */; }; - A75FDBDE23EA38AD00529352 /* SDL_hidapi_rumble.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDBD823EA38AD00529352 /* SDL_hidapi_rumble.h */; }; - A75FDBDF23EA38AD00529352 /* SDL_hidapi_rumble.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDBD823EA38AD00529352 /* SDL_hidapi_rumble.h */; }; - A7C19D29212E552C00DF2152 /* SDL_displayevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7C19D27212E552B00DF2152 /* SDL_displayevents_c.h */; }; - A7C19D2A212E552C00DF2152 /* SDL_displayevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7C19D28212E552B00DF2152 /* SDL_displayevents.c */; }; - A7C19D2B212E552C00DF2152 /* SDL_displayevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7C19D28212E552B00DF2152 /* SDL_displayevents.c */; }; - A7F629241FE06523002F9CC9 /* SDL_uikitmetalview.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D7516F81EE1C28A00820EEA /* SDL_uikitmetalview.m */; }; - A7FF6B6223AC3BC6005876C6 /* SDL_hidapi_gamecube.c in Sources */ = {isa = PBXBuildFile; fileRef = A7FF6B6123AC3BC6005876C6 /* SDL_hidapi_gamecube.c */; }; - A7FF6B6323AC3BC6005876C6 /* SDL_hidapi_gamecube.c in Sources */ = {isa = PBXBuildFile; fileRef = A7FF6B6123AC3BC6005876C6 /* SDL_hidapi_gamecube.c */; }; - A7FF6B6423AC3BC6005876C6 /* SDL_hidapi_gamecube.c in Sources */ = {isa = PBXBuildFile; fileRef = A7FF6B6123AC3BC6005876C6 /* SDL_hidapi_gamecube.c */; }; - A7FF6B6523AC3BC6005876C6 /* SDL_hidapi_gamecube.c in Sources */ = {isa = PBXBuildFile; fileRef = A7FF6B6123AC3BC6005876C6 /* SDL_hidapi_gamecube.c */; }; - A7FF6B6723AC3BCD005876C6 /* SDL_hidapi_xbox360w.c in Sources */ = {isa = PBXBuildFile; fileRef = A7FF6B6623AC3BCD005876C6 /* SDL_hidapi_xbox360w.c */; }; - A7FF6B6823AC3BCD005876C6 /* SDL_hidapi_xbox360w.c in Sources */ = {isa = PBXBuildFile; fileRef = A7FF6B6623AC3BCD005876C6 /* SDL_hidapi_xbox360w.c */; }; - A7FF6B6923AC3BCD005876C6 /* SDL_hidapi_xbox360w.c in Sources */ = {isa = PBXBuildFile; fileRef = A7FF6B6623AC3BCD005876C6 /* SDL_hidapi_xbox360w.c */; }; - A7FF6B6A23AC3BCD005876C6 /* SDL_hidapi_xbox360w.c in Sources */ = {isa = PBXBuildFile; fileRef = A7FF6B6623AC3BCD005876C6 /* SDL_hidapi_xbox360w.c */; }; - AA0AD06216647BBB00CE5896 /* SDL_gamecontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = AA0AD06116647BBB00CE5896 /* SDL_gamecontroller.c */; }; - AA0AD06516647BD400CE5896 /* SDL_gamecontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = AA0AD06416647BD400CE5896 /* SDL_gamecontroller.h */; }; - AA0F8495178D5F1A00823F9D /* SDL_systls.c in Sources */ = {isa = PBXBuildFile; fileRef = AA0F8494178D5F1A00823F9D /* SDL_systls.c */; }; - AA126AD41617C5E7005ABC8F /* SDL_uikitmodes.h in Headers */ = {isa = PBXBuildFile; fileRef = AA126AD21617C5E6005ABC8F /* SDL_uikitmodes.h */; }; - AA126AD51617C5E7005ABC8F /* SDL_uikitmodes.m in Sources */ = {isa = PBXBuildFile; fileRef = AA126AD31617C5E6005ABC8F /* SDL_uikitmodes.m */; }; - AA13B3491FB8B27800D9FEE6 /* SDL_egl_c.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3431FB8B27700D9FEE6 /* SDL_egl_c.h */; }; - AA13B34A1FB8B27800D9FEE6 /* SDL_shape.c in Sources */ = {isa = PBXBuildFile; fileRef = AA13B3441FB8B27800D9FEE6 /* SDL_shape.c */; }; - AA13B34B1FB8B27800D9FEE6 /* SDL_shape_internals.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3451FB8B27800D9FEE6 /* SDL_shape_internals.h */; }; - AA13B34C1FB8B27800D9FEE6 /* SDL_rect_c.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3461FB8B27800D9FEE6 /* SDL_rect_c.h */; }; - AA13B34D1FB8B27800D9FEE6 /* SDL_egl.c in Sources */ = {isa = PBXBuildFile; fileRef = AA13B3471FB8B27800D9FEE6 /* SDL_egl.c */; }; - AA13B34E1FB8B27800D9FEE6 /* SDL_yuv_c.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3481FB8B27800D9FEE6 /* SDL_yuv_c.h */; }; - AA13B3501FB8B3CC00D9FEE6 /* SDL_yuv.c in Sources */ = {isa = PBXBuildFile; fileRef = AA13B34F1FB8B3CC00D9FEE6 /* SDL_yuv.c */; }; - AA13B3571FB8B46400D9FEE6 /* yuv_rgb_std_func.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3531FB8B46300D9FEE6 /* yuv_rgb_std_func.h */; }; - AA13B3581FB8B46400D9FEE6 /* yuv_rgb_sse_func.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3541FB8B46300D9FEE6 /* yuv_rgb_sse_func.h */; }; - AA13B3591FB8B46400D9FEE6 /* yuv_rgb.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3551FB8B46300D9FEE6 /* yuv_rgb.h */; }; - AA13B35A1FB8B46400D9FEE6 /* yuv_rgb.c in Sources */ = {isa = PBXBuildFile; fileRef = AA13B3561FB8B46300D9FEE6 /* yuv_rgb.c */; }; - AA628ADB159369E3005138DD /* SDL_rotate.c in Sources */ = {isa = PBXBuildFile; fileRef = AA628AD9159369E3005138DD /* SDL_rotate.c */; }; - AA628ADC159369E3005138DD /* SDL_rotate.h in Headers */ = {isa = PBXBuildFile; fileRef = AA628ADA159369E3005138DD /* SDL_rotate.h */; }; - AA704DD6162AA90A0076D1C1 /* SDL_dropevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = AA704DD4162AA90A0076D1C1 /* SDL_dropevents_c.h */; }; - AA704DD7162AA90A0076D1C1 /* SDL_dropevents.c in Sources */ = {isa = PBXBuildFile; fileRef = AA704DD5162AA90A0076D1C1 /* SDL_dropevents.c */; }; - AA7558981595D55500BBD41B /* begin_code.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558651595D55500BBD41B /* begin_code.h */; }; - AA7558991595D55500BBD41B /* close_code.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558661595D55500BBD41B /* close_code.h */; }; - AA75589A1595D55500BBD41B /* SDL_assert.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558671595D55500BBD41B /* SDL_assert.h */; }; - AA75589B1595D55500BBD41B /* SDL_atomic.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558681595D55500BBD41B /* SDL_atomic.h */; }; - AA75589C1595D55500BBD41B /* SDL_audio.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558691595D55500BBD41B /* SDL_audio.h */; }; - AA75589D1595D55500BBD41B /* SDL_blendmode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75586A1595D55500BBD41B /* SDL_blendmode.h */; }; - AA75589E1595D55500BBD41B /* SDL_clipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75586B1595D55500BBD41B /* SDL_clipboard.h */; }; - AA75589F1595D55500BBD41B /* SDL_config_iphoneos.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75586C1595D55500BBD41B /* SDL_config_iphoneos.h */; }; - AA7558A01595D55500BBD41B /* SDL_config.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75586D1595D55500BBD41B /* SDL_config.h */; }; - AA7558A11595D55500BBD41B /* SDL_copying.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75586E1595D55500BBD41B /* SDL_copying.h */; }; - AA7558A21595D55500BBD41B /* SDL_cpuinfo.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75586F1595D55500BBD41B /* SDL_cpuinfo.h */; }; - AA7558A31595D55500BBD41B /* SDL_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558701595D55500BBD41B /* SDL_endian.h */; }; - AA7558A41595D55500BBD41B /* SDL_error.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558711595D55500BBD41B /* SDL_error.h */; }; - AA7558A51595D55500BBD41B /* SDL_events.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558721595D55500BBD41B /* SDL_events.h */; }; - AA7558A61595D55500BBD41B /* SDL_gesture.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558731595D55500BBD41B /* SDL_gesture.h */; }; - AA7558A71595D55500BBD41B /* SDL_haptic.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558741595D55500BBD41B /* SDL_haptic.h */; }; - AA7558A81595D55500BBD41B /* SDL_hints.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558751595D55500BBD41B /* SDL_hints.h */; }; - AA7558AA1595D55500BBD41B /* SDL_joystick.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558771595D55500BBD41B /* SDL_joystick.h */; }; - AA7558AB1595D55500BBD41B /* SDL_keyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558781595D55500BBD41B /* SDL_keyboard.h */; }; - AA7558AC1595D55500BBD41B /* SDL_keycode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558791595D55500BBD41B /* SDL_keycode.h */; }; - AA7558AD1595D55500BBD41B /* SDL_loadso.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75587A1595D55500BBD41B /* SDL_loadso.h */; }; - AA7558AE1595D55500BBD41B /* SDL_log.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75587B1595D55500BBD41B /* SDL_log.h */; }; - AA7558AF1595D55500BBD41B /* SDL_main.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75587C1595D55500BBD41B /* SDL_main.h */; }; - AA7558B01595D55500BBD41B /* SDL_mouse.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75587D1595D55500BBD41B /* SDL_mouse.h */; }; - AA7558B11595D55500BBD41B /* SDL_mutex.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75587E1595D55500BBD41B /* SDL_mutex.h */; }; - AA7558B21595D55500BBD41B /* SDL_name.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75587F1595D55500BBD41B /* SDL_name.h */; }; - AA7558B31595D55500BBD41B /* SDL_opengl.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558801595D55500BBD41B /* SDL_opengl.h */; }; - AA7558B41595D55500BBD41B /* SDL_opengles.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558811595D55500BBD41B /* SDL_opengles.h */; }; - AA7558B51595D55500BBD41B /* SDL_opengles2.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558821595D55500BBD41B /* SDL_opengles2.h */; }; - AA7558B61595D55500BBD41B /* SDL_pixels.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558831595D55500BBD41B /* SDL_pixels.h */; }; - AA7558B71595D55500BBD41B /* SDL_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558841595D55500BBD41B /* SDL_platform.h */; }; - AA7558B81595D55500BBD41B /* SDL_power.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558851595D55500BBD41B /* SDL_power.h */; }; - AA7558B91595D55500BBD41B /* SDL_quit.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558861595D55500BBD41B /* SDL_quit.h */; }; - AA7558BA1595D55500BBD41B /* SDL_rect.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558871595D55500BBD41B /* SDL_rect.h */; }; - AA7558BB1595D55500BBD41B /* SDL_render.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558881595D55500BBD41B /* SDL_render.h */; }; - AA7558BC1595D55500BBD41B /* SDL_revision.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558891595D55500BBD41B /* SDL_revision.h */; }; - AA7558BD1595D55500BBD41B /* SDL_rwops.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75588A1595D55500BBD41B /* SDL_rwops.h */; }; - AA7558BE1595D55500BBD41B /* SDL_scancode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75588B1595D55500BBD41B /* SDL_scancode.h */; }; - AA7558BF1595D55500BBD41B /* SDL_shape.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75588C1595D55500BBD41B /* SDL_shape.h */; }; - AA7558C01595D55500BBD41B /* SDL_stdinc.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75588D1595D55500BBD41B /* SDL_stdinc.h */; }; - AA7558C11595D55500BBD41B /* SDL_surface.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75588E1595D55500BBD41B /* SDL_surface.h */; }; - AA7558C21595D55500BBD41B /* SDL_system.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75588F1595D55500BBD41B /* SDL_system.h */; }; - AA7558C31595D55500BBD41B /* SDL_syswm.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558901595D55500BBD41B /* SDL_syswm.h */; }; - AA7558C41595D55500BBD41B /* SDL_thread.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558911595D55500BBD41B /* SDL_thread.h */; }; - AA7558C51595D55500BBD41B /* SDL_timer.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558921595D55500BBD41B /* SDL_timer.h */; }; - AA7558C61595D55500BBD41B /* SDL_touch.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558931595D55500BBD41B /* SDL_touch.h */; }; - AA7558C71595D55500BBD41B /* SDL_types.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558941595D55500BBD41B /* SDL_types.h */; }; - AA7558C81595D55500BBD41B /* SDL_version.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558951595D55500BBD41B /* SDL_version.h */; }; - AA7558C91595D55500BBD41B /* SDL_video.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558961595D55500BBD41B /* SDL_video.h */; }; - AA7558CA1595D55500BBD41B /* SDL.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558971595D55500BBD41B /* SDL.h */; }; - AA9FF9511637C6E5000DF050 /* SDL_messagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = AA9FF9501637C6E5000DF050 /* SDL_messagebox.h */; }; - AABCC3941640643D00AB8930 /* SDL_uikitmessagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = AABCC3921640643D00AB8930 /* SDL_uikitmessagebox.h */; }; - AABCC3951640643D00AB8930 /* SDL_uikitmessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = AABCC3931640643D00AB8930 /* SDL_uikitmessagebox.m */; }; - AADA5B8F16CCAB7C00107CF7 /* SDL_bits.h in Headers */ = {isa = PBXBuildFile; fileRef = AADA5B8E16CCAB7C00107CF7 /* SDL_bits.h */; }; - AADC5A5D1FDA104400960936 /* yuv_rgb.c in Sources */ = {isa = PBXBuildFile; fileRef = AA13B3561FB8B46300D9FEE6 /* yuv_rgb.c */; }; - AADC5A5E1FDA105300960936 /* SDL_yuv.c in Sources */ = {isa = PBXBuildFile; fileRef = AA13B34F1FB8B3CC00D9FEE6 /* SDL_yuv.c */; }; - AADC5A5F1FDA105600960936 /* SDL_vulkan_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D75171E1EE1D98200820EEA /* SDL_vulkan_utils.c */; }; - AADC5A601FDA10A400960936 /* SDL_uikitvulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D7516FA1EE1C28A00820EEA /* SDL_uikitvulkan.m */; }; - AADC5A631FDA10C800960936 /* SDL_shaders_metal_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = AADC5A611FDA10C800960936 /* SDL_shaders_metal_ios.h */; }; - AADC5A641FDA10C800960936 /* SDL_render_metal.m in Sources */ = {isa = PBXBuildFile; fileRef = AADC5A621FDA10C800960936 /* SDL_render_metal.m */; }; - AADC5A651FDA10CB00960936 /* SDL_render_metal.m in Sources */ = {isa = PBXBuildFile; fileRef = AADC5A621FDA10C800960936 /* SDL_render_metal.m */; }; - F30D9C99212CD0360047DF2E /* SDL_sensor.h in Headers */ = {isa = PBXBuildFile; fileRef = F30D9C98212CD0360047DF2E /* SDL_sensor.h */; }; - F30D9C9E212CD0990047DF2E /* SDL_sensor_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F30D9C9B212CD0980047DF2E /* SDL_sensor_c.h */; }; - F30D9C9F212CD0990047DF2E /* SDL_syssensor.h in Headers */ = {isa = PBXBuildFile; fileRef = F30D9C9C212CD0990047DF2E /* SDL_syssensor.h */; }; - F30D9CA0212CD0990047DF2E /* SDL_sensor.c in Sources */ = {isa = PBXBuildFile; fileRef = F30D9C9D212CD0990047DF2E /* SDL_sensor.c */; }; - F30D9CA1212CD0990047DF2E /* SDL_sensor.c in Sources */ = {isa = PBXBuildFile; fileRef = F30D9C9D212CD0990047DF2E /* SDL_sensor.c */; }; - F30D9CA5212CD0BF0047DF2E /* SDL_coremotionsensor.m in Sources */ = {isa = PBXBuildFile; fileRef = F30D9CA3212CD0BF0047DF2E /* SDL_coremotionsensor.m */; }; - F30D9CA6212CD0BF0047DF2E /* SDL_coremotionsensor.m in Sources */ = {isa = PBXBuildFile; fileRef = F30D9CA3212CD0BF0047DF2E /* SDL_coremotionsensor.m */; }; - F30D9CA7212CD0BF0047DF2E /* SDL_coremotionsensor.h in Headers */ = {isa = PBXBuildFile; fileRef = F30D9CA4212CD0BF0047DF2E /* SDL_coremotionsensor.h */; }; - F30D9CC6212CE92C0047DF2E /* hid.m in Sources */ = {isa = PBXBuildFile; fileRef = F30D9CC5212CE92C0047DF2E /* hid.m */; }; - F30D9CC7212CE92C0047DF2E /* hid.m in Sources */ = {isa = PBXBuildFile; fileRef = F30D9CC5212CE92C0047DF2E /* hid.m */; }; - F36839CC214790950000F255 /* SDL_dummysensor.h in Headers */ = {isa = PBXBuildFile; fileRef = F36839CA214790950000F255 /* SDL_dummysensor.h */; }; - F36839CD214790950000F255 /* SDL_dummysensor.c in Sources */ = {isa = PBXBuildFile; fileRef = F36839CB214790950000F255 /* SDL_dummysensor.c */; }; - F36839CE214790950000F255 /* SDL_dummysensor.c in Sources */ = {isa = PBXBuildFile; fileRef = F36839CB214790950000F255 /* SDL_dummysensor.c */; }; - F3BDD79220F51CB8004ECBF3 /* SDL_hidapi_xbox360.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD78B20F51CB8004ECBF3 /* SDL_hidapi_xbox360.c */; }; - F3BDD79320F51CB8004ECBF3 /* SDL_hidapi_xbox360.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD78B20F51CB8004ECBF3 /* SDL_hidapi_xbox360.c */; }; - F3BDD79420F51CB8004ECBF3 /* SDL_hidapi_switch.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD78C20F51CB8004ECBF3 /* SDL_hidapi_switch.c */; }; - F3BDD79520F51CB8004ECBF3 /* SDL_hidapi_switch.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD78C20F51CB8004ECBF3 /* SDL_hidapi_switch.c */; }; - F3BDD79620F51CB8004ECBF3 /* SDL_hidapi_xboxone.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD78D20F51CB8004ECBF3 /* SDL_hidapi_xboxone.c */; }; - F3BDD79720F51CB8004ECBF3 /* SDL_hidapi_xboxone.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD78D20F51CB8004ECBF3 /* SDL_hidapi_xboxone.c */; }; - F3BDD79820F51CB8004ECBF3 /* SDL_hidapi_ps4.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD78E20F51CB8004ECBF3 /* SDL_hidapi_ps4.c */; }; - F3BDD79920F51CB8004ECBF3 /* SDL_hidapi_ps4.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD78E20F51CB8004ECBF3 /* SDL_hidapi_ps4.c */; }; - F3BDD79B20F51CB8004ECBF3 /* SDL_hidapijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F3BDD79020F51CB8004ECBF3 /* SDL_hidapijoystick_c.h */; }; - F3BDD79C20F51CB8004ECBF3 /* SDL_hidapijoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD79120F51CB8004ECBF3 /* SDL_hidapijoystick.c */; }; - F3BDD79D20F51CB8004ECBF3 /* SDL_hidapijoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD79120F51CB8004ECBF3 /* SDL_hidapijoystick.c */; }; - F3E3C658224069CE007D243C /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3E3C657224069CE007D243C /* SDL_uikit_main.c */; }; - F3E3C65B2241389A007D243C /* SDL_blit.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA683010DF2374E00F98A1A /* SDL_blit.h */; }; - F3E3C65C2241389A007D243C /* SDL_uikitmetalview.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D7517191EE1D32200820EEA /* SDL_uikitmetalview.h */; }; - F3E3C65D2241389A007D243C /* SDL_vulkan_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D75171D1EE1D98200820EEA /* SDL_vulkan_internal.h */; }; - F3E3C65E2241389A007D243C /* SDL_blit_auto.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA683060DF2374E00F98A1A /* SDL_blit_auto.h */; }; - F3E3C65F2241389A007D243C /* SDL_blit_copy.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA683080DF2374E00F98A1A /* SDL_blit_copy.h */; }; - F3E3C6602241389A007D243C /* SDL_pixels_c.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA683100DF2374E00F98A1A /* SDL_pixels_c.h */; }; - F3E3C6612241389A007D243C /* SDL_dynapi_procs.h in Headers */ = {isa = PBXBuildFile; fileRef = 56A6703218565E760007D20F /* SDL_dynapi_procs.h */; }; - F3E3C6622241389A007D243C /* SDL_RLEaccel_c.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA683160DF2374E00F98A1A /* SDL_RLEaccel_c.h */; }; - F3E3C6632241389A007D243C /* SDL_sysvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA6831A0DF2374E00F98A1A /* SDL_sysvideo.h */; }; - F3E3C6642241389A007D243C /* SDL_nullevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA685F60DF244C800F98A1A /* SDL_nullevents_c.h */; }; - F3E3C6652241389A007D243C /* SDL_nullvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA685FA0DF244C800F98A1A /* SDL_nullvideo.h */; }; - F3E3C6662241389A007D243C /* SDL_joystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = FD5F9D1F0E0E08B3008E885B /* SDL_joystick_c.h */; }; - F3E3C6672241389A007D243C /* SDL_sysjoystick.h in Headers */ = {isa = PBXBuildFile; fileRef = FD5F9D200E0E08B3008E885B /* SDL_sysjoystick.h */; }; - F3E3C6682241389A007D243C /* SDL_uikitevents.h in Headers */ = {isa = PBXBuildFile; fileRef = FD689F0C0E26E5D900F90B21 /* SDL_uikitevents.h */; }; - F3E3C6692241389A007D243C /* SDL_uikitopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = FD689F0E0E26E5D900F90B21 /* SDL_uikitopengles.h */; }; - F3E3C66A2241389A007D243C /* SDL_uikitvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = FD689F100E26E5D900F90B21 /* SDL_uikitvideo.h */; }; - F3E3C66B2241389A007D243C /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = FD689F140E26E5D900F90B21 /* SDL_uikitwindow.h */; }; - F3E3C66C2241389A007D243C /* SDL_uikitopenglview.h in Headers */ = {isa = PBXBuildFile; fileRef = FD689F160E26E5D900F90B21 /* SDL_uikitopenglview.h */; }; - F3E3C66D2241389A007D243C /* SDL_dynapi.h in Headers */ = {isa = PBXBuildFile; fileRef = 56A6703418565E760007D20F /* SDL_dynapi.h */; }; - F3E3C66E2241389A007D243C /* SDL_uikitappdelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = FD689FCD0E26E9D400F90B21 /* SDL_uikitappdelegate.h */; }; - F3E3C66F2241389A007D243C /* SDL_dynapi_overrides.h in Headers */ = {isa = PBXBuildFile; fileRef = 56A6703118565E760007D20F /* SDL_dynapi_overrides.h */; }; - F3E3C6702241389A007D243C /* yuv_rgb_std_func.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3531FB8B46300D9FEE6 /* yuv_rgb_std_func.h */; }; - F3E3C6712241389A007D243C /* SDL_syshaptic.h in Headers */ = {isa = PBXBuildFile; fileRef = 047677BA0EA76A31008ABAF1 /* SDL_syshaptic.h */; }; - F3E3C6722241389A007D243C /* SDL_blit_slow.h in Headers */ = {isa = PBXBuildFile; fileRef = 0463873A0F0B5B7D0041FD65 /* SDL_blit_slow.h */; }; - F3E3C6732241389A007D243C /* SDL_rwopsbundlesupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 006E9886119552DD001DE610 /* SDL_rwopsbundlesupport.h */; }; - F3E3C6742241389A007D243C /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 0420496E11E6F03D007E7EC9 /* SDL_clipboardevents_c.h */; }; - F3E3C6752241389A007D243C /* SDL_rect_c.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3461FB8B27800D9FEE6 /* SDL_rect_c.h */; }; - F3E3C6762241389A007D243C /* yuv_rgb_sse_func.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3541FB8B46300D9FEE6 /* yuv_rgb_sse_func.h */; }; - F3E3C6772241389A007D243C /* SDL_gesture_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 04BA9D5F11EF474A00B60E01 /* SDL_gesture_c.h */; }; - F3E3C6782241389A007D243C /* SDL_touch_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 04BA9D6111EF474A00B60E01 /* SDL_touch_c.h */; }; - F3E3C6792241389A007D243C /* SDL_sysrender.h in Headers */ = {isa = PBXBuildFile; fileRef = 041B2CEB12FA0F680087D585 /* SDL_sysrender.h */; }; - F3E3C67A2241389A007D243C /* SDL_yuv_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 04409BA412FA989600FB9AA8 /* SDL_yuv_sw_c.h */; }; - F3E3C67B2241389A007D243C /* yuv_rgb.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3551FB8B46300D9FEE6 /* yuv_rgb.h */; }; - F3E3C67C2241389A007D243C /* SDL_blendfillrect.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7806B12FB751400FC43C0 /* SDL_blendfillrect.h */; }; - F3E3C67D2241389A007D243C /* SDL_blendline.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7806D12FB751400FC43C0 /* SDL_blendline.h */; }; - F3E3C67E2241389A007D243C /* SDL_hidapijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F3BDD79020F51CB8004ECBF3 /* SDL_hidapijoystick_c.h */; }; - F3E3C67F2241389A007D243C /* SDL_blendpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7806F12FB751400FC43C0 /* SDL_blendpoint.h */; }; - F3E3C6802241389A007D243C /* SDL_draw.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7807012FB751400FC43C0 /* SDL_draw.h */; }; - F3E3C6812241389A007D243C /* SDL_drawline.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7807212FB751400FC43C0 /* SDL_drawline.h */; }; - F3E3C6822241389A007D243C /* SDL_yuv_c.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3481FB8B27800D9FEE6 /* SDL_yuv_c.h */; }; - F3E3C6832241389A007D243C /* SDL_drawpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7807412FB751400FC43C0 /* SDL_drawpoint.h */; }; - F3E3C6842241389A007D243C /* SDL_nullframebuffer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7808212FB753F00FC43C0 /* SDL_nullframebuffer_c.h */; }; - F3E3C6852241389A007D243C /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 0442EC4E12FE1C1E004C9285 /* SDL_render_sw_c.h */; }; - F3E3C6862241389A007D243C /* SDL_uikitclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = FA1DC2701C62BE65008F99A0 /* SDL_uikitclipboard.h */; }; - F3E3C6872241389A007D243C /* SDL_shaders_gles2.h in Headers */ = {isa = PBXBuildFile; fileRef = 0402A85712FE70C600CECEE3 /* SDL_shaders_gles2.h */; }; - F3E3C6882241389A007D243C /* SDL_assert_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 04BAC09A1300C1290055DE28 /* SDL_assert_c.h */; }; - F3E3C6892241389A007D243C /* SDL_coreaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = 56EA86FA13E9EC2B002E47EB /* SDL_coreaudio.h */; }; - F3E3C68A2241389A007D243C /* SDL_uikitviewcontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = 93CB792213FC5E5200BD3E05 /* SDL_uikitviewcontroller.h */; }; - F3E3C68B2241389A007D243C /* SDL_rotate.h in Headers */ = {isa = PBXBuildFile; fileRef = AA628ADA159369E3005138DD /* SDL_rotate.h */; }; - F3E3C68C2241389A007D243C /* begin_code.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558651595D55500BBD41B /* begin_code.h */; }; - F3E3C68D2241389A007D243C /* close_code.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558661595D55500BBD41B /* close_code.h */; }; - F3E3C68E2241389A007D243C /* SDL_assert.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558671595D55500BBD41B /* SDL_assert.h */; }; - F3E3C68F2241389A007D243C /* SDL_atomic.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558681595D55500BBD41B /* SDL_atomic.h */; }; - F3E3C6902241389A007D243C /* SDL_audio.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558691595D55500BBD41B /* SDL_audio.h */; }; - F3E3C6912241389A007D243C /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = 55FFA9192122302B00D7CBED /* SDL_syspower.h */; }; - F3E3C6922241389A007D243C /* SDL_blendmode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75586A1595D55500BBD41B /* SDL_blendmode.h */; }; - F3E3C6932241389A007D243C /* SDL_sensor_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F30D9C9B212CD0980047DF2E /* SDL_sensor_c.h */; }; - F3E3C6942241389A007D243C /* SDL_clipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75586B1595D55500BBD41B /* SDL_clipboard.h */; }; - F3E3C6952241389A007D243C /* SDL_config_iphoneos.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75586C1595D55500BBD41B /* SDL_config_iphoneos.h */; }; - F3E3C6962241389A007D243C /* SDL_config.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75586D1595D55500BBD41B /* SDL_config.h */; }; - F3E3C6972241389A007D243C /* SDL_copying.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75586E1595D55500BBD41B /* SDL_copying.h */; }; - F3E3C6982241389A007D243C /* SDL_egl_c.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3431FB8B27700D9FEE6 /* SDL_egl_c.h */; }; - F3E3C6992241389A007D243C /* SDL_cpuinfo.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75586F1595D55500BBD41B /* SDL_cpuinfo.h */; }; - F3E3C69A2241389A007D243C /* SDL_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558701595D55500BBD41B /* SDL_endian.h */; }; - F3E3C69B2241389A007D243C /* SDL_error.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558711595D55500BBD41B /* SDL_error.h */; }; - F3E3C69C2241389A007D243C /* SDL_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 56A6702D18565E450007D20F /* SDL_internal.h */; }; - F3E3C69D2241389A007D243C /* SDL_events.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558721595D55500BBD41B /* SDL_events.h */; }; - F3E3C69E2241389A007D243C /* SDL_gesture.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558731595D55500BBD41B /* SDL_gesture.h */; }; - F3E3C69F2241389A007D243C /* SDL_haptic.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558741595D55500BBD41B /* SDL_haptic.h */; }; - F3E3C6A02241389A007D243C /* SDL_hints.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558751595D55500BBD41B /* SDL_hints.h */; }; - F3E3C6A12241389A007D243C /* SDL_dataqueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 566726441DF72CF5001DD3DB /* SDL_dataqueue.h */; }; - F3E3C6A22241389A007D243C /* SDL_syssensor.h in Headers */ = {isa = PBXBuildFile; fileRef = F30D9C9C212CD0990047DF2E /* SDL_syssensor.h */; }; - F3E3C6A32241389A007D243C /* SDL_joystick.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558771595D55500BBD41B /* SDL_joystick.h */; }; - F3E3C6A42241389A007D243C /* SDL_shape_internals.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3451FB8B27800D9FEE6 /* SDL_shape_internals.h */; }; - F3E3C6A52241389A007D243C /* SDL_keyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558781595D55500BBD41B /* SDL_keyboard.h */; }; - F3E3C6A62241389A007D243C /* controller_type.h in Headers */ = {isa = PBXBuildFile; fileRef = A704172D20F7E74800A82227 /* controller_type.h */; }; - F3E3C6A72241389A007D243C /* SDL_keycode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558791595D55500BBD41B /* SDL_keycode.h */; }; - F3E3C6A82241389A007D243C /* SDL_loadso.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75587A1595D55500BBD41B /* SDL_loadso.h */; }; - F3E3C6A92241389A007D243C /* SDL_log.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75587B1595D55500BBD41B /* SDL_log.h */; }; - F3E3C6AA2241389A007D243C /* SDL_coremotionsensor.h in Headers */ = {isa = PBXBuildFile; fileRef = F30D9CA4212CD0BF0047DF2E /* SDL_coremotionsensor.h */; }; - F3E3C6AB2241389A007D243C /* SDL_main.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75587C1595D55500BBD41B /* SDL_main.h */; }; - F3E3C6AC2241389A007D243C /* SDL_mouse.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75587D1595D55500BBD41B /* SDL_mouse.h */; }; - F3E3C6AD2241389A007D243C /* SDL_displayevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7C19D27212E552B00DF2152 /* SDL_displayevents_c.h */; }; - F3E3C6AE2241389A007D243C /* SDL_mutex.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75587E1595D55500BBD41B /* SDL_mutex.h */; }; - F3E3C6AF2241389A007D243C /* SDL_name.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75587F1595D55500BBD41B /* SDL_name.h */; }; - F3E3C6B02241389A007D243C /* SDL_opengl.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558801595D55500BBD41B /* SDL_opengl.h */; }; - F3E3C6B12241389A007D243C /* SDL_opengles.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558811595D55500BBD41B /* SDL_opengles.h */; }; - F3E3C6B22241389A007D243C /* SDL_shaders_metal_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = AADC5A611FDA10C800960936 /* SDL_shaders_metal_ios.h */; }; - F3E3C6B32241389A007D243C /* SDL_opengles2.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558821595D55500BBD41B /* SDL_opengles2.h */; }; - F3E3C6B42241389A007D243C /* SDL_pixels.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558831595D55500BBD41B /* SDL_pixels.h */; }; - F3E3C6B52241389A007D243C /* SDL_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558841595D55500BBD41B /* SDL_platform.h */; }; - F3E3C6B62241389A007D243C /* SDL_power.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558851595D55500BBD41B /* SDL_power.h */; }; - F3E3C6B72241389A007D243C /* SDL_quit.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558861595D55500BBD41B /* SDL_quit.h */; }; - F3E3C6B82241389A007D243C /* SDL_rect.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558871595D55500BBD41B /* SDL_rect.h */; }; - F3E3C6B92241389A007D243C /* SDL_render.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558881595D55500BBD41B /* SDL_render.h */; }; - F3E3C6BA2241389A007D243C /* SDL_revision.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558891595D55500BBD41B /* SDL_revision.h */; }; - F3E3C6BB2241389A007D243C /* SDL_rwops.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75588A1595D55500BBD41B /* SDL_rwops.h */; }; - F3E3C6BC2241389A007D243C /* SDL_scancode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75588B1595D55500BBD41B /* SDL_scancode.h */; }; - F3E3C6BD2241389A007D243C /* SDL_shape.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75588C1595D55500BBD41B /* SDL_shape.h */; }; - F3E3C6BE2241389A007D243C /* SDL_stdinc.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75588D1595D55500BBD41B /* SDL_stdinc.h */; }; - F3E3C6BF2241389A007D243C /* SDL_sysjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = FAD4F7011BA3C4E8008346CE /* SDL_sysjoystick_c.h */; }; - F3E3C6C02241389A007D243C /* SDL_surface.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75588E1595D55500BBD41B /* SDL_surface.h */; }; - F3E3C6C12241389A007D243C /* SDL_system.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75588F1595D55500BBD41B /* SDL_system.h */; }; - F3E3C6C22241389A007D243C /* SDL_sensor.h in Headers */ = {isa = PBXBuildFile; fileRef = F30D9C98212CD0360047DF2E /* SDL_sensor.h */; }; - F3E3C6C32241389A007D243C /* SDL_syswm.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558901595D55500BBD41B /* SDL_syswm.h */; }; - F3E3C6C42241389A007D243C /* SDL_thread.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558911595D55500BBD41B /* SDL_thread.h */; }; - F3E3C6C52241389A007D243C /* SDL_timer.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558921595D55500BBD41B /* SDL_timer.h */; }; - F3E3C6C62241389A007D243C /* SDL_touch.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558931595D55500BBD41B /* SDL_touch.h */; }; - F3E3C6C72241389A007D243C /* SDL_types.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558941595D55500BBD41B /* SDL_types.h */; }; - F3E3C6C82241389A007D243C /* SDL_version.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558951595D55500BBD41B /* SDL_version.h */; }; - F3E3C6C92241389A007D243C /* SDL_vulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D7516FE1EE1C5B400820EEA /* SDL_vulkan.h */; }; - F3E3C6CA2241389A007D243C /* SDL_video.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558961595D55500BBD41B /* SDL_video.h */; }; - F3E3C6CB2241389A007D243C /* SDL.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558971595D55500BBD41B /* SDL.h */; }; - F3E3C6CC2241389A007D243C /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D7516F91EE1C28A00820EEA /* SDL_uikitvulkan.h */; }; - F3E3C6CD2241389A007D243C /* SDL_uikitmodes.h in Headers */ = {isa = PBXBuildFile; fileRef = AA126AD21617C5E6005ABC8F /* SDL_uikitmodes.h */; }; - F3E3C6CE2241389A007D243C /* SDL_dropevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = AA704DD4162AA90A0076D1C1 /* SDL_dropevents_c.h */; }; - F3E3C6CF2241389A007D243C /* SDL_messagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = AA9FF9501637C6E5000DF050 /* SDL_messagebox.h */; }; - F3E3C6D02241389A007D243C /* SDL_uikitmessagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = AABCC3921640643D00AB8930 /* SDL_uikitmessagebox.h */; }; - F3E3C6D12241389A007D243C /* SDL_gamecontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = AA0AD06416647BD400CE5896 /* SDL_gamecontroller.h */; }; - F3E3C6D22241389A007D243C /* SDL_dummysensor.h in Headers */ = {isa = PBXBuildFile; fileRef = F36839CA214790950000F255 /* SDL_dummysensor.h */; }; - F3E3C6D32241389A007D243C /* SDL_bits.h in Headers */ = {isa = PBXBuildFile; fileRef = AADA5B8E16CCAB7C00107CF7 /* SDL_bits.h */; }; - F3E3C6D42241389A007D243C /* SDL_filesystem.h in Headers */ = {isa = PBXBuildFile; fileRef = 56C181DE17C44D5E00406AE3 /* SDL_filesystem.h */; }; - F3E3C6D62241389A007D243C /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA310DD52EDC00FB1D6B /* SDL_systimer.c */; }; - F3E3C6D72241389A007D243C /* SDL_timer.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA2E0DD52EDC00FB1D6B /* SDL_timer.c */; }; - F3E3C6D82241389A007D243C /* SDL_coremotionsensor.m in Sources */ = {isa = PBXBuildFile; fileRef = F30D9CA3212CD0BF0047DF2E /* SDL_coremotionsensor.m */; }; - F3E3C6D92241389A007D243C /* SDL_string.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A750DEA620800C5B771 /* SDL_string.c */; }; - F3E3C6DA2241389A007D243C /* SDL_dummyaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B91D0DD52EDC00FB1D6B /* SDL_dummyaudio.c */; }; - F3E3C6DB2241389A007D243C /* SDL_audio.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9440DD52EDC00FB1D6B /* SDL_audio.c */; }; - F3E3C6DC2241389A007D243C /* SDL_audiocvt.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9460DD52EDC00FB1D6B /* SDL_audiocvt.c */; }; - F3E3C6DD2241389A007D243C /* SDL_audiotypecvt.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B94A0DD52EDC00FB1D6B /* SDL_audiotypecvt.c */; }; - F3E3C6DE2241389A007D243C /* SDL_mixer.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B94B0DD52EDC00FB1D6B /* SDL_mixer.c */; }; - F3E3C6DF2241389A007D243C /* SDL_wave.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9530DD52EDC00FB1D6B /* SDL_wave.c */; }; - F3E3C6E02241389A007D243C /* SDL_uikitvulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D7516FA1EE1C28A00820EEA /* SDL_uikitvulkan.m */; }; - F3E3C6E12241389A007D243C /* SDL_uikitclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = FA1DC2711C62BE65008F99A0 /* SDL_uikitclipboard.m */; }; - F3E3C6E22241389A007D243C /* SDL_cpuinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B98B0DD52EDC00FB1D6B /* SDL_cpuinfo.c */; }; - F3E3C6E32241389A007D243C /* SDL_events.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9930DD52EDC00FB1D6B /* SDL_events.c */; }; - F3E3C6E42241389A007D243C /* SDL_keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9950DD52EDC00FB1D6B /* SDL_keyboard.c */; }; - F3E3C6E52241389A007D243C /* SDL_dynapi.c in Sources */ = {isa = PBXBuildFile; fileRef = 56A6703318565E760007D20F /* SDL_dynapi.c */; }; - F3E3C6E62241389A007D243C /* SDL_mouse.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9970DD52EDC00FB1D6B /* SDL_mouse.c */; }; - F3E3C6E72241389A007D243C /* SDL_quit.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9990DD52EDC00FB1D6B /* SDL_quit.c */; }; - F3E3C6E82241389A007D243C /* SDL_windowevents.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B99B0DD52EDC00FB1D6B /* SDL_windowevents.c */; }; - F3E3C6E92241389A007D243C /* SDL_uikitmetalview.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D7516F81EE1C28A00820EEA /* SDL_uikitmetalview.m */; }; - F3E3C6EA2241389A007D243C /* SDL_rwops.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B99E0DD52EDC00FB1D6B /* SDL_rwops.c */; }; - F3E3C6EB2241389A007D243C /* hid.m in Sources */ = {isa = PBXBuildFile; fileRef = F30D9CC5212CE92C0047DF2E /* hid.m */; }; - F3E3C6EC2241389A007D243C /* SDL_vulkan_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D75171E1EE1D98200820EEA /* SDL_vulkan_utils.c */; }; - F3E3C6ED2241389A007D243C /* SDL_error.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9D50DD52EDC00FB1D6B /* SDL_error.c */; }; - F3E3C6EE2241389A007D243C /* SDL.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9D80DD52EDC00FB1D6B /* SDL.c */; }; - F3E3C6EF2241389A007D243C /* SDL_syscond.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA070DD52EDC00FB1D6B /* SDL_syscond.c */; }; - F3E3C6F02241389A007D243C /* SDL_render_metal.m in Sources */ = {isa = PBXBuildFile; fileRef = AADC5A621FDA10C800960936 /* SDL_render_metal.m */; }; - F3E3C6F12241389A007D243C /* SDL_sysmutex.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA080DD52EDC00FB1D6B /* SDL_sysmutex.c */; }; - F3E3C6F22241389A007D243C /* SDL_syssem.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA0A0DD52EDC00FB1D6B /* SDL_syssem.c */; }; - F3E3C6F32241389A007D243C /* SDL_systhread.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA0B0DD52EDC00FB1D6B /* SDL_systhread.c */; }; - F3E3C6F42241389A007D243C /* SDL_thread.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA150DD52EDC00FB1D6B /* SDL_thread.c */; }; - F3E3C6F52241389A007D243C /* SDL_getenv.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A700DEA620800C5B771 /* SDL_getenv.c */; }; - F3E3C6F62241389A007D243C /* SDL_iconv.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A710DEA620800C5B771 /* SDL_iconv.c */; }; - F3E3C6F72241389A007D243C /* SDL_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A720DEA620800C5B771 /* SDL_malloc.c */; }; - F3E3C6F82241389A007D243C /* SDL_hidapi_xbox360.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD78B20F51CB8004ECBF3 /* SDL_hidapi_xbox360.c */; }; - F3E3C6F92241389A007D243C /* SDL_qsort.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A730DEA620800C5B771 /* SDL_qsort.c */; }; - F3E3C6FA2241389A007D243C /* SDL_hidapi_ps4.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD78E20F51CB8004ECBF3 /* SDL_hidapi_ps4.c */; }; - F3E3C6FB2241389A007D243C /* SDL_stdlib.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A740DEA620800C5B771 /* SDL_stdlib.c */; }; - F3E3C6FC2241389A007D243C /* SDL_blit.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683000DF2374E00F98A1A /* SDL_blit.c */; }; - F3E3C6FD2241389A007D243C /* SDL_blit_0.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683020DF2374E00F98A1A /* SDL_blit_0.c */; }; - F3E3C6FE2241389A007D243C /* SDL_yuv.c in Sources */ = {isa = PBXBuildFile; fileRef = AA13B34F1FB8B3CC00D9FEE6 /* SDL_yuv.c */; }; - F3E3C6FF2241389A007D243C /* SDL_blit_1.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683030DF2374E00F98A1A /* SDL_blit_1.c */; }; - F3E3C7002241389A007D243C /* SDL_dataqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = 566726431DF72CF5001DD3DB /* SDL_dataqueue.c */; }; - F3E3C7012241389A007D243C /* SDL_blit_A.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683040DF2374E00F98A1A /* SDL_blit_A.c */; }; - F3E3C7022241389A007D243C /* SDL_blit_auto.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683050DF2374E00F98A1A /* SDL_blit_auto.c */; }; - F3E3C7032241389A007D243C /* SDL_blit_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683070DF2374E00F98A1A /* SDL_blit_copy.c */; }; - F3E3C7042241389A007D243C /* SDL_blit_N.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683090DF2374E00F98A1A /* SDL_blit_N.c */; }; - F3E3C7052241389A007D243C /* SDL_blit_slow.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA6830A0DF2374E00F98A1A /* SDL_blit_slow.c */; }; - F3E3C7062241389A007D243C /* SDL_bmp.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA6830B0DF2374E00F98A1A /* SDL_bmp.c */; }; - F3E3C7072241389A007D243C /* SDL_pixels.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA6830F0DF2374E00F98A1A /* SDL_pixels.c */; }; - F3E3C7082241389A007D243C /* SDL_rect.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683110DF2374E00F98A1A /* SDL_rect.c */; }; - F3E3C7092241389A007D243C /* SDL_RLEaccel.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683150DF2374E00F98A1A /* SDL_RLEaccel.c */; }; - F3E3C70A2241389A007D243C /* SDL_stretch.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683170DF2374E00F98A1A /* SDL_stretch.c */; }; - F3E3C70B2241389A007D243C /* SDL_egl.c in Sources */ = {isa = PBXBuildFile; fileRef = AA13B3471FB8B27800D9FEE6 /* SDL_egl.c */; }; - F3E3C70C2241389A007D243C /* SDL_surface.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683190DF2374E00F98A1A /* SDL_surface.c */; }; - F3E3C70D2241389A007D243C /* SDL_video.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA6831B0DF2374E00F98A1A /* SDL_video.c */; }; - F3E3C70E2241389A007D243C /* SDL_nullevents.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA685F50DF244C800F98A1A /* SDL_nullevents.c */; }; - F3E3C70F2241389A007D243C /* SDL_nullvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA685F90DF244C800F98A1A /* SDL_nullvideo.c */; }; - F3E3C7102241389A007D243C /* SDL_joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = FD5F9D1E0E0E08B3008E885B /* SDL_joystick.c */; }; - F3E3C7112241389A007D243C /* SDL_sysjoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F000E26E5B600F90B21 /* SDL_sysjoystick.m */; }; - F3E3C7122241389A007D243C /* SDL_uikitevents.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F0D0E26E5D900F90B21 /* SDL_uikitevents.m */; }; - F3E3C7132241389A007D243C /* yuv_rgb.c in Sources */ = {isa = PBXBuildFile; fileRef = AA13B3561FB8B46300D9FEE6 /* yuv_rgb.c */; }; - F3E3C7142241389A007D243C /* SDL_uikitopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F0F0E26E5D900F90B21 /* SDL_uikitopengles.m */; }; - F3E3C7162241389A007D243C /* SDL_uikitvideo.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F110E26E5D900F90B21 /* SDL_uikitvideo.m */; }; - F3E3C7172241389A007D243C /* SDL_uikitview.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F130E26E5D900F90B21 /* SDL_uikitview.m */; }; - F3E3C7182241389A007D243C /* SDL_displayevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7C19D28212E552B00DF2152 /* SDL_displayevents.c */; }; - F3E3C7192241389A007D243C /* SDL_uikitwindow.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F150E26E5D900F90B21 /* SDL_uikitwindow.m */; }; - F3E3C71A2241389A007D243C /* SDL_uikitopenglview.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F170E26E5D900F90B21 /* SDL_uikitopenglview.m */; }; - F3E3C71B2241389A007D243C /* SDL_uikitappdelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689FCC0E26E9D400F90B21 /* SDL_uikitappdelegate.m */; }; - F3E3C71C2241389A007D243C /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = FD8BD8190E27E25900B52CD5 /* SDL_sysloadso.c */; }; - F3E3C71D2241389A007D243C /* SDL_hidapijoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD79120F51CB8004ECBF3 /* SDL_hidapijoystick.c */; }; - F3E3C71E2241389A007D243C /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = 047677B80EA76A31008ABAF1 /* SDL_syshaptic.c */; }; - F3E3C71F2241389A007D243C /* SDL_haptic.c in Sources */ = {isa = PBXBuildFile; fileRef = 047677B90EA76A31008ABAF1 /* SDL_haptic.c */; }; - F3E3C7202241389A007D243C /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = 047AF1B20EA98D6C00811173 /* SDL_sysloadso.c */; }; - F3E3C7212241389A007D243C /* SDL_fillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = 0463873E0F0B5B7D0041FD65 /* SDL_fillrect.c */; }; - F3E3C7222241389A007D243C /* SDL_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F2AF551104ABD200D6DDF7 /* SDL_assert.c */; }; - F3E3C7232241389A007D243C /* SDL_hidapi_xboxone.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD78D20F51CB8004ECBF3 /* SDL_hidapi_xboxone.c */; }; - F3E3C7242241389A007D243C /* SDL_power.c in Sources */ = {isa = PBXBuildFile; fileRef = 56ED04E0118A8EE200A56AA6 /* SDL_power.c */; }; - F3E3C7252241389A007D243C /* SDL_syspower.m in Sources */ = {isa = PBXBuildFile; fileRef = 56ED04E2118A8EFD00A56AA6 /* SDL_syspower.m */; }; - F3E3C7262241389A007D243C /* SDL_rwopsbundlesupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 006E9887119552DD001DE610 /* SDL_rwopsbundlesupport.m */; }; - F3E3C7272241389A007D243C /* SDL_clipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 044E5FB711E606EB0076F181 /* SDL_clipboard.c */; }; - F3E3C7282241389A007D243C /* SDL_clipboardevents.c in Sources */ = {isa = PBXBuildFile; fileRef = 0420496F11E6F03D007E7EC9 /* SDL_clipboardevents.c */; }; - F3E3C7292241389A007D243C /* SDL_gesture.c in Sources */ = {isa = PBXBuildFile; fileRef = 04BA9D6011EF474A00B60E01 /* SDL_gesture.c */; }; - F3E3C72A2241389A007D243C /* SDL_touch.c in Sources */ = {isa = PBXBuildFile; fileRef = 04BA9D6211EF474A00B60E01 /* SDL_touch.c */; }; - F3E3C72B2241389A007D243C /* SDL_atomic.c in Sources */ = {isa = PBXBuildFile; fileRef = 04FFAB8912E23B8D00BA343D /* SDL_atomic.c */; }; - F3E3C72C2241389A007D243C /* SDL_spinlock.c in Sources */ = {isa = PBXBuildFile; fileRef = 04FFAB8A12E23B8D00BA343D /* SDL_spinlock.c */; }; - F3E3C72D2241389A007D243C /* SDL_render.c in Sources */ = {isa = PBXBuildFile; fileRef = 041B2CEA12FA0F680087D585 /* SDL_render.c */; }; - F3E3C72E2241389A007D243C /* SDL_yuv_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = 04409BA512FA989600FB9AA8 /* SDL_yuv_sw.c */; }; - F3E3C72F2241389A007D243C /* SDL_blendfillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7806A12FB751400FC43C0 /* SDL_blendfillrect.c */; }; - F3E3C7302241389A007D243C /* SDL_blendline.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7806C12FB751400FC43C0 /* SDL_blendline.c */; }; - F3E3C7312241389A007D243C /* SDL_blendpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7806E12FB751400FC43C0 /* SDL_blendpoint.c */; }; - F3E3C7322241389A007D243C /* SDL_drawline.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7807112FB751400FC43C0 /* SDL_drawline.c */; }; - F3E3C7332241389A007D243C /* SDL_drawpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7807312FB751400FC43C0 /* SDL_drawpoint.c */; }; - F3E3C7342241389A007D243C /* SDL_nullframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7808312FB753F00FC43C0 /* SDL_nullframebuffer.c */; }; - F3E3C7352241389A007D243C /* SDL_render_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = 0442EC4F12FE1C1E004C9285 /* SDL_render_sw.c */; }; - F3E3C7362241389A007D243C /* SDL_render_gles.c in Sources */ = {isa = PBXBuildFile; fileRef = 0442EC5212FE1C28004C9285 /* SDL_render_gles.c */; }; - F3E3C7372241389A007D243C /* SDL_hints.c in Sources */ = {isa = PBXBuildFile; fileRef = 0442EC5412FE1C3F004C9285 /* SDL_hints.c */; }; - F3E3C7382241389A007D243C /* SDL_shape.c in Sources */ = {isa = PBXBuildFile; fileRef = AA13B3441FB8B27800D9FEE6 /* SDL_shape.c */; }; - F3E3C7392241389A007D243C /* SDL_render_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = 0402A85512FE70C600CECEE3 /* SDL_render_gles2.c */; }; - F3E3C73A2241389A007D243C /* SDL_dummysensor.c in Sources */ = {isa = PBXBuildFile; fileRef = F36839CB214790950000F255 /* SDL_dummysensor.c */; }; - F3E3C73B2241389A007D243C /* SDL_shaders_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = 0402A85612FE70C600CECEE3 /* SDL_shaders_gles2.c */; }; - F3E3C73C2241389A007D243C /* SDL_log.c in Sources */ = {isa = PBXBuildFile; fileRef = 04BAC09B1300C1290055DE28 /* SDL_log.c */; }; - F3E3C73D2241389A007D243C /* SDL_coreaudio.m in Sources */ = {isa = PBXBuildFile; fileRef = 56EA86F913E9EC2B002E47EB /* SDL_coreaudio.m */; }; - F3E3C73E2241389A007D243C /* SDL_sensor.c in Sources */ = {isa = PBXBuildFile; fileRef = F30D9C9D212CD0990047DF2E /* SDL_sensor.c */; }; - F3E3C73F2241389A007D243C /* SDL_hidapi_switch.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD78C20F51CB8004ECBF3 /* SDL_hidapi_switch.c */; }; - F3E3C7402241389A007D243C /* SDL_uikitviewcontroller.m in Sources */ = {isa = PBXBuildFile; fileRef = 93CB792513FC5F5300BD3E05 /* SDL_uikitviewcontroller.m */; }; - F3E3C7412241389A007D243C /* SDL_rotate.c in Sources */ = {isa = PBXBuildFile; fileRef = AA628AD9159369E3005138DD /* SDL_rotate.c */; }; - F3E3C7422241389A007D243C /* SDL_uikitmodes.m in Sources */ = {isa = PBXBuildFile; fileRef = AA126AD31617C5E6005ABC8F /* SDL_uikitmodes.m */; }; - F3E3C7432241389A007D243C /* SDL_dropevents.c in Sources */ = {isa = PBXBuildFile; fileRef = AA704DD5162AA90A0076D1C1 /* SDL_dropevents.c */; }; - F3E3C7442241389A007D243C /* SDL_uikitmessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = AABCC3931640643D00AB8930 /* SDL_uikitmessagebox.m */; }; - F3E3C7452241389A007D243C /* SDL_gamecontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = AA0AD06116647BBB00CE5896 /* SDL_gamecontroller.c */; }; - F3E3C7462241389A007D243C /* SDL_systls.c in Sources */ = {isa = PBXBuildFile; fileRef = AA0F8494178D5F1A00823F9D /* SDL_systls.c */; }; - F3E3C7472241389A007D243C /* SDL_sysfilesystem.m in Sources */ = {isa = PBXBuildFile; fileRef = 56C181E117C44D7A00406AE3 /* SDL_sysfilesystem.m */; }; - F3E3C7492241389A007D243C /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7F22288BFA0061FCE0 /* OpenGLES.framework */; }; - F3E3C74A2241389A007D243C /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7D22288BF00061FCE0 /* Metal.framework */; }; - F3E3C74C2241389A007D243C /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7922288BDD0061FCE0 /* GameController.framework */; }; - F3E3C74D2241389A007D243C /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7722288BCA0061FCE0 /* UIKit.framework */; }; - F3E3C74E2241389A007D243C /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7522288BC10061FCE0 /* CoreGraphics.framework */; }; - F3E3C74F2241389A007D243C /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7322288BB70061FCE0 /* CoreBluetooth.framework */; }; - F3E3C7502241389A007D243C /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7122288BAC0061FCE0 /* AVFoundation.framework */; }; - F3E3C7512241389A007D243C /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E6F22288BA20061FCE0 /* AudioToolbox.framework */; }; - F3E3C7522241389A007D243C /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E6D22288B960061FCE0 /* CoreAudio.framework */; }; - F3E3C7532241389A007D243C /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E6B22288B8C0061FCE0 /* QuartzCore.framework */; }; - F3E3C75B224138AE007D243C /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3E3C657224069CE007D243C /* SDL_uikit_main.c */; }; - FA1DC2721C62BE65008F99A0 /* SDL_uikitclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = FA1DC2701C62BE65008F99A0 /* SDL_uikitclipboard.h */; }; - FA1DC2731C62BE65008F99A0 /* SDL_uikitclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = FA1DC2711C62BE65008F99A0 /* SDL_uikitclipboard.m */; }; - FA24348D21D4201400B8918A /* SDL_metal.h in Headers */ = {isa = PBXBuildFile; fileRef = FA24348C21D4201400B8918A /* SDL_metal.h */; }; - FAB5981D1BB5C31500BE72C5 /* SDL_atomic.c in Sources */ = {isa = PBXBuildFile; fileRef = 04FFAB8912E23B8D00BA343D /* SDL_atomic.c */; }; - FAB5981E1BB5C31500BE72C5 /* SDL_spinlock.c in Sources */ = {isa = PBXBuildFile; fileRef = 04FFAB8A12E23B8D00BA343D /* SDL_spinlock.c */; }; - FAB5981F1BB5C31500BE72C5 /* SDL_coreaudio.m in Sources */ = {isa = PBXBuildFile; fileRef = 56EA86F913E9EC2B002E47EB /* SDL_coreaudio.m */; }; - FAB598211BB5C31500BE72C5 /* SDL_dummyaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B91D0DD52EDC00FB1D6B /* SDL_dummyaudio.c */; }; - FAB598231BB5C31500BE72C5 /* SDL_audio.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9440DD52EDC00FB1D6B /* SDL_audio.c */; }; - FAB598251BB5C31500BE72C5 /* SDL_audiocvt.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9460DD52EDC00FB1D6B /* SDL_audiocvt.c */; }; - FAB598271BB5C31500BE72C5 /* SDL_audiotypecvt.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B94A0DD52EDC00FB1D6B /* SDL_audiotypecvt.c */; }; - FAB598281BB5C31500BE72C5 /* SDL_mixer.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B94B0DD52EDC00FB1D6B /* SDL_mixer.c */; }; - FAB5982A1BB5C31500BE72C5 /* SDL_wave.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9530DD52EDC00FB1D6B /* SDL_wave.c */; }; - FAB5982C1BB5C31500BE72C5 /* SDL_cpuinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B98B0DD52EDC00FB1D6B /* SDL_cpuinfo.c */; }; - FAB5982F1BB5C31500BE72C5 /* SDL_dynapi.c in Sources */ = {isa = PBXBuildFile; fileRef = 56A6703318565E760007D20F /* SDL_dynapi.c */; }; - FAB598361BB5C31500BE72C5 /* SDL_clipboardevents.c in Sources */ = {isa = PBXBuildFile; fileRef = 0420496F11E6F03D007E7EC9 /* SDL_clipboardevents.c */; }; - FAB598381BB5C31500BE72C5 /* SDL_dropevents.c in Sources */ = {isa = PBXBuildFile; fileRef = AA704DD5162AA90A0076D1C1 /* SDL_dropevents.c */; }; - FAB5983A1BB5C31500BE72C5 /* SDL_events.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9930DD52EDC00FB1D6B /* SDL_events.c */; }; - FAB5983C1BB5C31500BE72C5 /* SDL_gesture.c in Sources */ = {isa = PBXBuildFile; fileRef = 04BA9D6011EF474A00B60E01 /* SDL_gesture.c */; }; - FAB5983E1BB5C31500BE72C5 /* SDL_keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9950DD52EDC00FB1D6B /* SDL_keyboard.c */; }; - FAB598401BB5C31500BE72C5 /* SDL_mouse.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9970DD52EDC00FB1D6B /* SDL_mouse.c */; }; - FAB598421BB5C31500BE72C5 /* SDL_quit.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9990DD52EDC00FB1D6B /* SDL_quit.c */; }; - FAB598441BB5C31500BE72C5 /* SDL_touch.c in Sources */ = {isa = PBXBuildFile; fileRef = 04BA9D6211EF474A00B60E01 /* SDL_touch.c */; }; - FAB598461BB5C31500BE72C5 /* SDL_windowevents.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B99B0DD52EDC00FB1D6B /* SDL_windowevents.c */; }; - FAB598491BB5C31600BE72C5 /* SDL_rwopsbundlesupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 006E9887119552DD001DE610 /* SDL_rwopsbundlesupport.m */; }; - FAB5984A1BB5C31600BE72C5 /* SDL_rwops.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B99E0DD52EDC00FB1D6B /* SDL_rwops.c */; }; - FAB5984B1BB5C31600BE72C5 /* SDL_sysfilesystem.m in Sources */ = {isa = PBXBuildFile; fileRef = 56C181E117C44D7A00406AE3 /* SDL_sysfilesystem.m */; }; - FAB5984C1BB5C31600BE72C5 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = 047677B80EA76A31008ABAF1 /* SDL_syshaptic.c */; }; - FAB5984D1BB5C31600BE72C5 /* SDL_haptic.c in Sources */ = {isa = PBXBuildFile; fileRef = 047677B90EA76A31008ABAF1 /* SDL_haptic.c */; }; - FAB598501BB5C31600BE72C5 /* SDL_sysjoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F000E26E5B600F90B21 /* SDL_sysjoystick.m */; }; - FAB598521BB5C31600BE72C5 /* SDL_joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = FD5F9D1E0E0E08B3008E885B /* SDL_joystick.c */; }; - FAB598551BB5C31600BE72C5 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = 047AF1B20EA98D6C00811173 /* SDL_sysloadso.c */; }; - FAB598561BB5C31600BE72C5 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = FD8BD8190E27E25900B52CD5 /* SDL_sysloadso.c */; }; - FAB598571BB5C31600BE72C5 /* SDL_power.c in Sources */ = {isa = PBXBuildFile; fileRef = 56ED04E0118A8EE200A56AA6 /* SDL_power.c */; }; - FAB598581BB5C31600BE72C5 /* SDL_syspower.m in Sources */ = {isa = PBXBuildFile; fileRef = 56ED04E2118A8EFD00A56AA6 /* SDL_syspower.m */; }; - FAB598591BB5C31600BE72C5 /* SDL_render_gles.c in Sources */ = {isa = PBXBuildFile; fileRef = 0442EC5212FE1C28004C9285 /* SDL_render_gles.c */; }; - FAB5985A1BB5C31600BE72C5 /* SDL_render_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = 0402A85512FE70C600CECEE3 /* SDL_render_gles2.c */; }; - FAB5985B1BB5C31600BE72C5 /* SDL_shaders_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = 0402A85612FE70C600CECEE3 /* SDL_shaders_gles2.c */; }; - FAB5985D1BB5C31600BE72C5 /* SDL_blendfillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7806A12FB751400FC43C0 /* SDL_blendfillrect.c */; }; - FAB5985F1BB5C31600BE72C5 /* SDL_blendline.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7806C12FB751400FC43C0 /* SDL_blendline.c */; }; - FAB598611BB5C31600BE72C5 /* SDL_blendpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7806E12FB751400FC43C0 /* SDL_blendpoint.c */; }; - FAB598641BB5C31600BE72C5 /* SDL_drawline.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7807112FB751400FC43C0 /* SDL_drawline.c */; }; - FAB598661BB5C31600BE72C5 /* SDL_drawpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7807312FB751400FC43C0 /* SDL_drawpoint.c */; }; - FAB598681BB5C31600BE72C5 /* SDL_render_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = 0442EC4F12FE1C1E004C9285 /* SDL_render_sw.c */; }; - FAB5986A1BB5C31600BE72C5 /* SDL_rotate.c in Sources */ = {isa = PBXBuildFile; fileRef = AA628AD9159369E3005138DD /* SDL_rotate.c */; }; - FAB5986D1BB5C31600BE72C5 /* SDL_render.c in Sources */ = {isa = PBXBuildFile; fileRef = 041B2CEA12FA0F680087D585 /* SDL_render.c */; }; - FAB598711BB5C31600BE72C5 /* SDL_yuv_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = 04409BA512FA989600FB9AA8 /* SDL_yuv_sw.c */; }; - FAB598721BB5C31600BE72C5 /* SDL_getenv.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A700DEA620800C5B771 /* SDL_getenv.c */; }; - FAB598731BB5C31600BE72C5 /* SDL_iconv.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A710DEA620800C5B771 /* SDL_iconv.c */; }; - FAB598741BB5C31600BE72C5 /* SDL_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A720DEA620800C5B771 /* SDL_malloc.c */; }; - FAB598751BB5C31600BE72C5 /* SDL_qsort.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A730DEA620800C5B771 /* SDL_qsort.c */; }; - FAB598761BB5C31600BE72C5 /* SDL_stdlib.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A740DEA620800C5B771 /* SDL_stdlib.c */; }; - FAB598771BB5C31600BE72C5 /* SDL_string.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A750DEA620800C5B771 /* SDL_string.c */; }; - FAB598781BB5C31600BE72C5 /* SDL_syscond.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA070DD52EDC00FB1D6B /* SDL_syscond.c */; }; - FAB598791BB5C31600BE72C5 /* SDL_sysmutex.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA080DD52EDC00FB1D6B /* SDL_sysmutex.c */; }; - FAB5987B1BB5C31600BE72C5 /* SDL_syssem.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA0A0DD52EDC00FB1D6B /* SDL_syssem.c */; }; - FAB5987C1BB5C31600BE72C5 /* SDL_systhread.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA0B0DD52EDC00FB1D6B /* SDL_systhread.c */; }; - FAB5987E1BB5C31600BE72C5 /* SDL_systls.c in Sources */ = {isa = PBXBuildFile; fileRef = AA0F8494178D5F1A00823F9D /* SDL_systls.c */; }; - FAB598801BB5C31600BE72C5 /* SDL_thread.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA150DD52EDC00FB1D6B /* SDL_thread.c */; }; - FAB598821BB5C31600BE72C5 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA310DD52EDC00FB1D6B /* SDL_systimer.c */; }; - FAB598831BB5C31600BE72C5 /* SDL_timer.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA2E0DD52EDC00FB1D6B /* SDL_timer.c */; }; - FAB598871BB5C31600BE72C5 /* SDL_uikitappdelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689FCC0E26E9D400F90B21 /* SDL_uikitappdelegate.m */; }; - FAB598891BB5C31600BE72C5 /* SDL_uikitevents.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F0D0E26E5D900F90B21 /* SDL_uikitevents.m */; }; - FAB5988B1BB5C31600BE72C5 /* SDL_uikitmessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = AABCC3931640643D00AB8930 /* SDL_uikitmessagebox.m */; }; - FAB5988D1BB5C31600BE72C5 /* SDL_uikitmodes.m in Sources */ = {isa = PBXBuildFile; fileRef = AA126AD31617C5E6005ABC8F /* SDL_uikitmodes.m */; }; - FAB5988F1BB5C31600BE72C5 /* SDL_uikitopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F0F0E26E5D900F90B21 /* SDL_uikitopengles.m */; }; - FAB598911BB5C31600BE72C5 /* SDL_uikitopenglview.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F170E26E5D900F90B21 /* SDL_uikitopenglview.m */; }; - FAB598931BB5C31600BE72C5 /* SDL_uikitvideo.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F110E26E5D900F90B21 /* SDL_uikitvideo.m */; }; - FAB598951BB5C31600BE72C5 /* SDL_uikitview.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F130E26E5D900F90B21 /* SDL_uikitview.m */; }; - FAB598971BB5C31600BE72C5 /* SDL_uikitviewcontroller.m in Sources */ = {isa = PBXBuildFile; fileRef = 93CB792513FC5F5300BD3E05 /* SDL_uikitviewcontroller.m */; }; - FAB598991BB5C31600BE72C5 /* SDL_uikitwindow.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F150E26E5D900F90B21 /* SDL_uikitwindow.m */; }; - FAB5989A1BB5C31600BE72C5 /* SDL_nullevents.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA685F50DF244C800F98A1A /* SDL_nullevents.c */; }; - FAB5989D1BB5C31600BE72C5 /* SDL_nullframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7808312FB753F00FC43C0 /* SDL_nullframebuffer.c */; }; - FAB5989E1BB5C31600BE72C5 /* SDL_nullvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA685F90DF244C800F98A1A /* SDL_nullvideo.c */; }; - FAB598A01BB5C31600BE72C5 /* SDL_blit.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683000DF2374E00F98A1A /* SDL_blit.c */; }; - FAB598A21BB5C31600BE72C5 /* SDL_blit_0.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683020DF2374E00F98A1A /* SDL_blit_0.c */; }; - FAB598A31BB5C31600BE72C5 /* SDL_blit_1.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683030DF2374E00F98A1A /* SDL_blit_1.c */; }; - FAB598A41BB5C31600BE72C5 /* SDL_blit_A.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683040DF2374E00F98A1A /* SDL_blit_A.c */; }; - FAB598A51BB5C31600BE72C5 /* SDL_blit_auto.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683050DF2374E00F98A1A /* SDL_blit_auto.c */; }; - FAB598A71BB5C31600BE72C5 /* SDL_blit_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683070DF2374E00F98A1A /* SDL_blit_copy.c */; }; - FAB598A91BB5C31600BE72C5 /* SDL_blit_N.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683090DF2374E00F98A1A /* SDL_blit_N.c */; }; - FAB598AA1BB5C31600BE72C5 /* SDL_blit_slow.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA6830A0DF2374E00F98A1A /* SDL_blit_slow.c */; }; - FAB598AC1BB5C31600BE72C5 /* SDL_bmp.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA6830B0DF2374E00F98A1A /* SDL_bmp.c */; }; - FAB598AD1BB5C31600BE72C5 /* SDL_clipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 044E5FB711E606EB0076F181 /* SDL_clipboard.c */; }; - FAB598AE1BB5C31600BE72C5 /* SDL_fillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = 0463873E0F0B5B7D0041FD65 /* SDL_fillrect.c */; }; - FAB598AF1BB5C31600BE72C5 /* SDL_pixels.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA6830F0DF2374E00F98A1A /* SDL_pixels.c */; }; - FAB598B11BB5C31600BE72C5 /* SDL_rect.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683110DF2374E00F98A1A /* SDL_rect.c */; }; - FAB598B21BB5C31600BE72C5 /* SDL_RLEaccel.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683150DF2374E00F98A1A /* SDL_RLEaccel.c */; }; - FAB598B41BB5C31600BE72C5 /* SDL_stretch.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683170DF2374E00F98A1A /* SDL_stretch.c */; }; - FAB598B51BB5C31600BE72C5 /* SDL_surface.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683190DF2374E00F98A1A /* SDL_surface.c */; }; - FAB598B71BB5C31600BE72C5 /* SDL_video.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA6831B0DF2374E00F98A1A /* SDL_video.c */; }; - FAB598B91BB5C31600BE72C5 /* SDL_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F2AF551104ABD200D6DDF7 /* SDL_assert.c */; }; - FAB598BC1BB5C31600BE72C5 /* SDL_error.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9D50DD52EDC00FB1D6B /* SDL_error.c */; }; - FAB598BD1BB5C31600BE72C5 /* SDL_hints.c in Sources */ = {isa = PBXBuildFile; fileRef = 0442EC5412FE1C3F004C9285 /* SDL_hints.c */; }; - FAB598BE1BB5C31600BE72C5 /* SDL_log.c in Sources */ = {isa = PBXBuildFile; fileRef = 04BAC09B1300C1290055DE28 /* SDL_log.c */; }; - FAB598BF1BB5C31600BE72C5 /* SDL.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9D80DD52EDC00FB1D6B /* SDL.c */; }; - FAD4F7021BA3C4E8008346CE /* SDL_sysjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = FAD4F7011BA3C4E8008346CE /* SDL_sysjoystick_c.h */; }; - FAFDF8C61D88D4530083E6F2 /* SDL_uikitclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = FA1DC2711C62BE65008F99A0 /* SDL_uikitclipboard.m */; }; - FD3F4A760DEA620800C5B771 /* SDL_getenv.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A700DEA620800C5B771 /* SDL_getenv.c */; }; - FD3F4A770DEA620800C5B771 /* SDL_iconv.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A710DEA620800C5B771 /* SDL_iconv.c */; }; - FD3F4A780DEA620800C5B771 /* SDL_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A720DEA620800C5B771 /* SDL_malloc.c */; }; - FD3F4A790DEA620800C5B771 /* SDL_qsort.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A730DEA620800C5B771 /* SDL_qsort.c */; }; - FD3F4A7A0DEA620800C5B771 /* SDL_stdlib.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A740DEA620800C5B771 /* SDL_stdlib.c */; }; - FD3F4A7B0DEA620800C5B771 /* SDL_string.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A750DEA620800C5B771 /* SDL_string.c */; }; - FD5F9D2F0E0E08B3008E885B /* SDL_joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = FD5F9D1E0E0E08B3008E885B /* SDL_joystick.c */; }; - FD5F9D300E0E08B3008E885B /* SDL_joystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = FD5F9D1F0E0E08B3008E885B /* SDL_joystick_c.h */; }; - FD5F9D310E0E08B3008E885B /* SDL_sysjoystick.h in Headers */ = {isa = PBXBuildFile; fileRef = FD5F9D200E0E08B3008E885B /* SDL_sysjoystick.h */; }; - FD6526660DE8FCDD002AD96B /* SDL_dummyaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B91D0DD52EDC00FB1D6B /* SDL_dummyaudio.c */; }; - FD6526670DE8FCDD002AD96B /* SDL_audio.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9440DD52EDC00FB1D6B /* SDL_audio.c */; }; - FD6526680DE8FCDD002AD96B /* SDL_audiocvt.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9460DD52EDC00FB1D6B /* SDL_audiocvt.c */; }; - FD65266A0DE8FCDD002AD96B /* SDL_audiotypecvt.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B94A0DD52EDC00FB1D6B /* SDL_audiotypecvt.c */; }; - FD65266B0DE8FCDD002AD96B /* SDL_mixer.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B94B0DD52EDC00FB1D6B /* SDL_mixer.c */; }; - FD65266F0DE8FCDD002AD96B /* SDL_wave.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9530DD52EDC00FB1D6B /* SDL_wave.c */; }; - FD6526700DE8FCDD002AD96B /* SDL_cpuinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B98B0DD52EDC00FB1D6B /* SDL_cpuinfo.c */; }; - FD6526710DE8FCDD002AD96B /* SDL_events.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9930DD52EDC00FB1D6B /* SDL_events.c */; }; - FD6526720DE8FCDD002AD96B /* SDL_keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9950DD52EDC00FB1D6B /* SDL_keyboard.c */; }; - FD6526730DE8FCDD002AD96B /* SDL_mouse.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9970DD52EDC00FB1D6B /* SDL_mouse.c */; }; - FD6526740DE8FCDD002AD96B /* SDL_quit.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9990DD52EDC00FB1D6B /* SDL_quit.c */; }; - FD6526750DE8FCDD002AD96B /* SDL_windowevents.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B99B0DD52EDC00FB1D6B /* SDL_windowevents.c */; }; - FD6526760DE8FCDD002AD96B /* SDL_rwops.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B99E0DD52EDC00FB1D6B /* SDL_rwops.c */; }; - FD6526780DE8FCDD002AD96B /* SDL_error.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9D50DD52EDC00FB1D6B /* SDL_error.c */; }; - FD65267A0DE8FCDD002AD96B /* SDL.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9D80DD52EDC00FB1D6B /* SDL.c */; }; - FD65267B0DE8FCDD002AD96B /* SDL_syscond.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA070DD52EDC00FB1D6B /* SDL_syscond.c */; }; - FD65267C0DE8FCDD002AD96B /* SDL_sysmutex.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA080DD52EDC00FB1D6B /* SDL_sysmutex.c */; }; - FD65267D0DE8FCDD002AD96B /* SDL_syssem.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA0A0DD52EDC00FB1D6B /* SDL_syssem.c */; }; - FD65267E0DE8FCDD002AD96B /* SDL_systhread.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA0B0DD52EDC00FB1D6B /* SDL_systhread.c */; }; - FD65267F0DE8FCDD002AD96B /* SDL_thread.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA150DD52EDC00FB1D6B /* SDL_thread.c */; }; - FD6526800DE8FCDD002AD96B /* SDL_timer.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA2E0DD52EDC00FB1D6B /* SDL_timer.c */; }; - FD6526810DE8FCDD002AD96B /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA310DD52EDC00FB1D6B /* SDL_systimer.c */; }; - FD689F030E26E5B600F90B21 /* SDL_sysjoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F000E26E5B600F90B21 /* SDL_sysjoystick.m */; }; - FD689F1C0E26E5D900F90B21 /* SDL_uikitevents.h in Headers */ = {isa = PBXBuildFile; fileRef = FD689F0C0E26E5D900F90B21 /* SDL_uikitevents.h */; }; - FD689F1D0E26E5D900F90B21 /* SDL_uikitevents.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F0D0E26E5D900F90B21 /* SDL_uikitevents.m */; }; - FD689F1E0E26E5D900F90B21 /* SDL_uikitopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = FD689F0E0E26E5D900F90B21 /* SDL_uikitopengles.h */; }; - FD689F1F0E26E5D900F90B21 /* SDL_uikitopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F0F0E26E5D900F90B21 /* SDL_uikitopengles.m */; }; - FD689F200E26E5D900F90B21 /* SDL_uikitvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = FD689F100E26E5D900F90B21 /* SDL_uikitvideo.h */; }; - FD689F210E26E5D900F90B21 /* SDL_uikitvideo.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F110E26E5D900F90B21 /* SDL_uikitvideo.m */; }; - FD689F230E26E5D900F90B21 /* SDL_uikitview.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F130E26E5D900F90B21 /* SDL_uikitview.m */; }; - FD689F240E26E5D900F90B21 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = FD689F140E26E5D900F90B21 /* SDL_uikitwindow.h */; }; - FD689F250E26E5D900F90B21 /* SDL_uikitwindow.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F150E26E5D900F90B21 /* SDL_uikitwindow.m */; }; - FD689F260E26E5D900F90B21 /* SDL_uikitopenglview.h in Headers */ = {isa = PBXBuildFile; fileRef = FD689F160E26E5D900F90B21 /* SDL_uikitopenglview.h */; }; - FD689F270E26E5D900F90B21 /* SDL_uikitopenglview.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F170E26E5D900F90B21 /* SDL_uikitopenglview.m */; }; - FD689FCE0E26E9D400F90B21 /* SDL_uikitappdelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689FCC0E26E9D400F90B21 /* SDL_uikitappdelegate.m */; }; - FD689FCF0E26E9D400F90B21 /* SDL_uikitappdelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = FD689FCD0E26E9D400F90B21 /* SDL_uikitappdelegate.h */; }; - FD8BD8250E27E25900B52CD5 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = FD8BD8190E27E25900B52CD5 /* SDL_sysloadso.c */; }; - FDA6844D0DF2374E00F98A1A /* SDL_blit.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683000DF2374E00F98A1A /* SDL_blit.c */; }; - FDA6844E0DF2374E00F98A1A /* SDL_blit.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA683010DF2374E00F98A1A /* SDL_blit.h */; }; - FDA6844F0DF2374E00F98A1A /* SDL_blit_0.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683020DF2374E00F98A1A /* SDL_blit_0.c */; }; - FDA684500DF2374E00F98A1A /* SDL_blit_1.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683030DF2374E00F98A1A /* SDL_blit_1.c */; }; - FDA684510DF2374E00F98A1A /* SDL_blit_A.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683040DF2374E00F98A1A /* SDL_blit_A.c */; }; - FDA684520DF2374E00F98A1A /* SDL_blit_auto.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683050DF2374E00F98A1A /* SDL_blit_auto.c */; }; - FDA684530DF2374E00F98A1A /* SDL_blit_auto.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA683060DF2374E00F98A1A /* SDL_blit_auto.h */; }; - FDA684540DF2374E00F98A1A /* SDL_blit_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683070DF2374E00F98A1A /* SDL_blit_copy.c */; }; - FDA684550DF2374E00F98A1A /* SDL_blit_copy.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA683080DF2374E00F98A1A /* SDL_blit_copy.h */; }; - FDA684560DF2374E00F98A1A /* SDL_blit_N.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683090DF2374E00F98A1A /* SDL_blit_N.c */; }; - FDA684570DF2374E00F98A1A /* SDL_blit_slow.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA6830A0DF2374E00F98A1A /* SDL_blit_slow.c */; }; - FDA684580DF2374E00F98A1A /* SDL_bmp.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA6830B0DF2374E00F98A1A /* SDL_bmp.c */; }; - FDA6845C0DF2374E00F98A1A /* SDL_pixels.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA6830F0DF2374E00F98A1A /* SDL_pixels.c */; }; - FDA6845D0DF2374E00F98A1A /* SDL_pixels_c.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA683100DF2374E00F98A1A /* SDL_pixels_c.h */; }; - FDA6845E0DF2374E00F98A1A /* SDL_rect.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683110DF2374E00F98A1A /* SDL_rect.c */; }; - FDA684620DF2374E00F98A1A /* SDL_RLEaccel.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683150DF2374E00F98A1A /* SDL_RLEaccel.c */; }; - FDA684630DF2374E00F98A1A /* SDL_RLEaccel_c.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA683160DF2374E00F98A1A /* SDL_RLEaccel_c.h */; }; - FDA684640DF2374E00F98A1A /* SDL_stretch.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683170DF2374E00F98A1A /* SDL_stretch.c */; }; - FDA684660DF2374E00F98A1A /* SDL_surface.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683190DF2374E00F98A1A /* SDL_surface.c */; }; - FDA684670DF2374E00F98A1A /* SDL_sysvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA6831A0DF2374E00F98A1A /* SDL_sysvideo.h */; }; - FDA684680DF2374E00F98A1A /* SDL_video.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA6831B0DF2374E00F98A1A /* SDL_video.c */; }; - FDA685FB0DF244C800F98A1A /* SDL_nullevents.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA685F50DF244C800F98A1A /* SDL_nullevents.c */; }; - FDA685FC0DF244C800F98A1A /* SDL_nullevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA685F60DF244C800F98A1A /* SDL_nullevents_c.h */; }; - FDA685FF0DF244C800F98A1A /* SDL_nullvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA685F90DF244C800F98A1A /* SDL_nullvideo.c */; }; - FDA686000DF244C800F98A1A /* SDL_nullvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA685FA0DF244C800F98A1A /* SDL_nullvideo.h */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 006E9886119552DD001DE610 /* SDL_rwopsbundlesupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_rwopsbundlesupport.h; sourceTree = ""; }; - 006E9887119552DD001DE610 /* SDL_rwopsbundlesupport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_rwopsbundlesupport.m; sourceTree = ""; }; - 0402A85512FE70C600CECEE3 /* SDL_render_gles2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_render_gles2.c; sourceTree = ""; }; - 0402A85612FE70C600CECEE3 /* SDL_shaders_gles2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_shaders_gles2.c; sourceTree = ""; }; - 0402A85712FE70C600CECEE3 /* SDL_shaders_gles2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_shaders_gles2.h; sourceTree = ""; }; - 041B2CEA12FA0F680087D585 /* SDL_render.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_render.c; sourceTree = ""; }; - 041B2CEB12FA0F680087D585 /* SDL_sysrender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sysrender.h; sourceTree = ""; }; - 0420496E11E6F03D007E7EC9 /* SDL_clipboardevents_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_clipboardevents_c.h; sourceTree = ""; }; - 0420496F11E6F03D007E7EC9 /* SDL_clipboardevents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_clipboardevents.c; sourceTree = ""; }; - 04409BA412FA989600FB9AA8 /* SDL_yuv_sw_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_yuv_sw_c.h; sourceTree = ""; }; - 04409BA512FA989600FB9AA8 /* SDL_yuv_sw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_yuv_sw.c; sourceTree = ""; }; - 0442EC4E12FE1C1E004C9285 /* SDL_render_sw_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_render_sw_c.h; sourceTree = ""; }; - 0442EC4F12FE1C1E004C9285 /* SDL_render_sw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_render_sw.c; sourceTree = ""; }; - 0442EC5212FE1C28004C9285 /* SDL_render_gles.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_render_gles.c; sourceTree = ""; }; - 0442EC5412FE1C3F004C9285 /* SDL_hints.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hints.c; sourceTree = ""; }; - 044E5FB711E606EB0076F181 /* SDL_clipboard.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_clipboard.c; sourceTree = ""; }; - 0463873A0F0B5B7D0041FD65 /* SDL_blit_slow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blit_slow.h; sourceTree = ""; }; - 0463873E0F0B5B7D0041FD65 /* SDL_fillrect.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_fillrect.c; sourceTree = ""; }; - 047677B80EA76A31008ABAF1 /* SDL_syshaptic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_syshaptic.c; sourceTree = ""; }; - 047677B90EA76A31008ABAF1 /* SDL_haptic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_haptic.c; sourceTree = ""; }; - 047677BA0EA76A31008ABAF1 /* SDL_syshaptic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_syshaptic.h; sourceTree = ""; }; - 047AF1B20EA98D6C00811173 /* SDL_sysloadso.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_sysloadso.c; sourceTree = ""; }; - 04BA9D5F11EF474A00B60E01 /* SDL_gesture_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_gesture_c.h; sourceTree = ""; }; - 04BA9D6011EF474A00B60E01 /* SDL_gesture.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_gesture.c; sourceTree = ""; }; - 04BA9D6111EF474A00B60E01 /* SDL_touch_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_touch_c.h; sourceTree = ""; }; - 04BA9D6211EF474A00B60E01 /* SDL_touch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_touch.c; sourceTree = ""; }; - 04BAC09A1300C1290055DE28 /* SDL_assert_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_assert_c.h; sourceTree = ""; }; - 04BAC09B1300C1290055DE28 /* SDL_log.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_log.c; sourceTree = ""; }; - 04F2AF551104ABD200D6DDF7 /* SDL_assert.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_assert.c; sourceTree = ""; }; - 04F7806A12FB751400FC43C0 /* SDL_blendfillrect.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blendfillrect.c; sourceTree = ""; }; - 04F7806B12FB751400FC43C0 /* SDL_blendfillrect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blendfillrect.h; sourceTree = ""; }; - 04F7806C12FB751400FC43C0 /* SDL_blendline.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blendline.c; sourceTree = ""; }; - 04F7806D12FB751400FC43C0 /* SDL_blendline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blendline.h; sourceTree = ""; }; - 04F7806E12FB751400FC43C0 /* SDL_blendpoint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blendpoint.c; sourceTree = ""; }; - 04F7806F12FB751400FC43C0 /* SDL_blendpoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blendpoint.h; sourceTree = ""; }; - 04F7807012FB751400FC43C0 /* SDL_draw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_draw.h; sourceTree = ""; }; - 04F7807112FB751400FC43C0 /* SDL_drawline.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_drawline.c; sourceTree = ""; }; - 04F7807212FB751400FC43C0 /* SDL_drawline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_drawline.h; sourceTree = ""; }; - 04F7807312FB751400FC43C0 /* SDL_drawpoint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_drawpoint.c; sourceTree = ""; }; - 04F7807412FB751400FC43C0 /* SDL_drawpoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_drawpoint.h; sourceTree = ""; }; - 04F7808212FB753F00FC43C0 /* SDL_nullframebuffer_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_nullframebuffer_c.h; sourceTree = ""; }; - 04F7808312FB753F00FC43C0 /* SDL_nullframebuffer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_nullframebuffer.c; sourceTree = ""; }; - 04FFAB8912E23B8D00BA343D /* SDL_atomic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_atomic.c; sourceTree = ""; }; - 04FFAB8A12E23B8D00BA343D /* SDL_spinlock.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_spinlock.c; sourceTree = ""; }; - 4D7516F81EE1C28A00820EEA /* SDL_uikitmetalview.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitmetalview.m; sourceTree = ""; }; - 4D7516F91EE1C28A00820EEA /* SDL_uikitvulkan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitvulkan.h; sourceTree = ""; }; - 4D7516FA1EE1C28A00820EEA /* SDL_uikitvulkan.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitvulkan.m; sourceTree = ""; }; - 4D7516FE1EE1C5B400820EEA /* SDL_vulkan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_vulkan.h; sourceTree = ""; }; - 4D7517191EE1D32200820EEA /* SDL_uikitmetalview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitmetalview.h; sourceTree = ""; }; - 4D75171D1EE1D98200820EEA /* SDL_vulkan_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_vulkan_internal.h; sourceTree = ""; }; - 4D75171E1EE1D98200820EEA /* SDL_vulkan_utils.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_vulkan_utils.c; sourceTree = ""; }; - 52ED1E5C222889500061FCE0 /* libSDL2.dylib */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSDL2.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; - 52ED1E6B22288B8C0061FCE0 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; - 52ED1E6D22288B960061FCE0 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; - 52ED1E6F22288BA20061FCE0 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; - 52ED1E7122288BAC0061FCE0 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; - 52ED1E7322288BB70061FCE0 /* CoreBluetooth.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreBluetooth.framework; path = System/Library/Frameworks/CoreBluetooth.framework; sourceTree = SDKROOT; }; - 52ED1E7522288BC10061FCE0 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; - 52ED1E7722288BCA0061FCE0 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - 52ED1E7922288BDD0061FCE0 /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; }; - 52ED1E7B22288BE70061FCE0 /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; }; - 52ED1E7D22288BF00061FCE0 /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; }; - 52ED1E7F22288BFA0061FCE0 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; - 55FFA9192122302B00D7CBED /* SDL_syspower.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_syspower.h; sourceTree = ""; }; - 566726431DF72CF5001DD3DB /* SDL_dataqueue.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_dataqueue.c; sourceTree = ""; }; - 566726441DF72CF5001DD3DB /* SDL_dataqueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dataqueue.h; sourceTree = ""; }; - 56A6702D18565E450007D20F /* SDL_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_internal.h; sourceTree = ""; }; - 56A6703118565E760007D20F /* SDL_dynapi_overrides.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dynapi_overrides.h; sourceTree = ""; }; - 56A6703218565E760007D20F /* SDL_dynapi_procs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dynapi_procs.h; sourceTree = ""; }; - 56A6703318565E760007D20F /* SDL_dynapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_dynapi.c; sourceTree = ""; }; - 56A6703418565E760007D20F /* SDL_dynapi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dynapi.h; sourceTree = ""; }; - 56C181DE17C44D5E00406AE3 /* SDL_filesystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_filesystem.h; sourceTree = ""; }; - 56C181E117C44D7A00406AE3 /* SDL_sysfilesystem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDL_sysfilesystem.m; path = cocoa/SDL_sysfilesystem.m; sourceTree = ""; }; - 56EA86F913E9EC2B002E47EB /* SDL_coreaudio.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_coreaudio.m; sourceTree = ""; }; - 56EA86FA13E9EC2B002E47EB /* SDL_coreaudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_coreaudio.h; sourceTree = ""; }; - 56ED04E0118A8EE200A56AA6 /* SDL_power.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_power.c; sourceTree = ""; }; - 56ED04E2118A8EFD00A56AA6 /* SDL_syspower.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_syspower.m; sourceTree = ""; }; - 63CC93C623849391002A5C54 /* SDL_strtokr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_strtokr.c; sourceTree = ""; }; - 93CB792213FC5E5200BD3E05 /* SDL_uikitviewcontroller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitviewcontroller.h; sourceTree = ""; }; - 93CB792513FC5F5300BD3E05 /* SDL_uikitviewcontroller.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitviewcontroller.m; sourceTree = ""; }; - A704172D20F7E74800A82227 /* controller_type.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = controller_type.h; sourceTree = ""; }; - A704173020F7F39400A82227 /* SDL_hidapi_steam.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_steam.c; sourceTree = ""; }; - A75FDBD723EA38AD00529352 /* SDL_hidapi_rumble.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_rumble.c; sourceTree = ""; }; - A75FDBD823EA38AD00529352 /* SDL_hidapi_rumble.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_hidapi_rumble.h; sourceTree = ""; }; - A7C19D27212E552B00DF2152 /* SDL_displayevents_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_displayevents_c.h; sourceTree = ""; }; - A7C19D28212E552B00DF2152 /* SDL_displayevents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_displayevents.c; sourceTree = ""; }; - A7FF6B6123AC3BC6005876C6 /* SDL_hidapi_gamecube.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_gamecube.c; sourceTree = ""; }; - A7FF6B6623AC3BCD005876C6 /* SDL_hidapi_xbox360w.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_xbox360w.c; sourceTree = ""; }; - AA0AD06116647BBB00CE5896 /* SDL_gamecontroller.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_gamecontroller.c; sourceTree = ""; }; - AA0AD06416647BD400CE5896 /* SDL_gamecontroller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_gamecontroller.h; sourceTree = ""; }; - AA0F8494178D5F1A00823F9D /* SDL_systls.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_systls.c; sourceTree = ""; }; - AA126AD21617C5E6005ABC8F /* SDL_uikitmodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitmodes.h; sourceTree = ""; }; - AA126AD31617C5E6005ABC8F /* SDL_uikitmodes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitmodes.m; sourceTree = ""; }; - AA13B3431FB8B27700D9FEE6 /* SDL_egl_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_egl_c.h; sourceTree = ""; }; - AA13B3441FB8B27800D9FEE6 /* SDL_shape.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_shape.c; sourceTree = ""; }; - AA13B3451FB8B27800D9FEE6 /* SDL_shape_internals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_shape_internals.h; sourceTree = ""; }; - AA13B3461FB8B27800D9FEE6 /* SDL_rect_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_rect_c.h; sourceTree = ""; }; - AA13B3471FB8B27800D9FEE6 /* SDL_egl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_egl.c; sourceTree = ""; }; - AA13B3481FB8B27800D9FEE6 /* SDL_yuv_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_yuv_c.h; sourceTree = ""; }; - AA13B34F1FB8B3CC00D9FEE6 /* SDL_yuv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_yuv.c; sourceTree = ""; }; - AA13B3531FB8B46300D9FEE6 /* yuv_rgb_std_func.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = yuv_rgb_std_func.h; sourceTree = ""; }; - AA13B3541FB8B46300D9FEE6 /* yuv_rgb_sse_func.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = yuv_rgb_sse_func.h; sourceTree = ""; }; - AA13B3551FB8B46300D9FEE6 /* yuv_rgb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = yuv_rgb.h; sourceTree = ""; }; - AA13B3561FB8B46300D9FEE6 /* yuv_rgb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = yuv_rgb.c; sourceTree = ""; }; - AA628AD9159369E3005138DD /* SDL_rotate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_rotate.c; sourceTree = ""; }; - AA628ADA159369E3005138DD /* SDL_rotate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_rotate.h; sourceTree = ""; }; - AA704DD4162AA90A0076D1C1 /* SDL_dropevents_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dropevents_c.h; sourceTree = ""; }; - AA704DD5162AA90A0076D1C1 /* SDL_dropevents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_dropevents.c; sourceTree = ""; }; - AA7558651595D55500BBD41B /* begin_code.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = begin_code.h; sourceTree = ""; }; - AA7558661595D55500BBD41B /* close_code.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = close_code.h; sourceTree = ""; }; - AA7558671595D55500BBD41B /* SDL_assert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_assert.h; sourceTree = ""; }; - AA7558681595D55500BBD41B /* SDL_atomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_atomic.h; sourceTree = ""; }; - AA7558691595D55500BBD41B /* SDL_audio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_audio.h; sourceTree = ""; }; - AA75586A1595D55500BBD41B /* SDL_blendmode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blendmode.h; sourceTree = ""; }; - AA75586B1595D55500BBD41B /* SDL_clipboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_clipboard.h; sourceTree = ""; }; - AA75586C1595D55500BBD41B /* SDL_config_iphoneos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_config_iphoneos.h; sourceTree = ""; }; - AA75586D1595D55500BBD41B /* SDL_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_config.h; sourceTree = ""; }; - AA75586E1595D55500BBD41B /* SDL_copying.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_copying.h; sourceTree = ""; }; - AA75586F1595D55500BBD41B /* SDL_cpuinfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cpuinfo.h; sourceTree = ""; }; - AA7558701595D55500BBD41B /* SDL_endian.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_endian.h; sourceTree = ""; }; - AA7558711595D55500BBD41B /* SDL_error.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_error.h; sourceTree = ""; }; - AA7558721595D55500BBD41B /* SDL_events.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_events.h; sourceTree = ""; }; - AA7558731595D55500BBD41B /* SDL_gesture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_gesture.h; sourceTree = ""; }; - AA7558741595D55500BBD41B /* SDL_haptic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_haptic.h; sourceTree = ""; }; - AA7558751595D55500BBD41B /* SDL_hints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_hints.h; sourceTree = ""; }; - AA7558771595D55500BBD41B /* SDL_joystick.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_joystick.h; sourceTree = ""; }; - AA7558781595D55500BBD41B /* SDL_keyboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_keyboard.h; sourceTree = ""; }; - AA7558791595D55500BBD41B /* SDL_keycode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_keycode.h; sourceTree = ""; }; - AA75587A1595D55500BBD41B /* SDL_loadso.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_loadso.h; sourceTree = ""; }; - AA75587B1595D55500BBD41B /* SDL_log.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_log.h; sourceTree = ""; }; - AA75587C1595D55500BBD41B /* SDL_main.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_main.h; sourceTree = ""; }; - AA75587D1595D55500BBD41B /* SDL_mouse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_mouse.h; sourceTree = ""; }; - AA75587E1595D55500BBD41B /* SDL_mutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_mutex.h; sourceTree = ""; }; - AA75587F1595D55500BBD41B /* SDL_name.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_name.h; sourceTree = ""; }; - AA7558801595D55500BBD41B /* SDL_opengl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_opengl.h; sourceTree = ""; }; - AA7558811595D55500BBD41B /* SDL_opengles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_opengles.h; sourceTree = ""; }; - AA7558821595D55500BBD41B /* SDL_opengles2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_opengles2.h; sourceTree = ""; }; - AA7558831595D55500BBD41B /* SDL_pixels.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_pixels.h; sourceTree = ""; }; - AA7558841595D55500BBD41B /* SDL_platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_platform.h; sourceTree = ""; }; - AA7558851595D55500BBD41B /* SDL_power.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_power.h; sourceTree = ""; }; - AA7558861595D55500BBD41B /* SDL_quit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_quit.h; sourceTree = ""; }; - AA7558871595D55500BBD41B /* SDL_rect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_rect.h; sourceTree = ""; }; - AA7558881595D55500BBD41B /* SDL_render.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_render.h; sourceTree = ""; }; - AA7558891595D55500BBD41B /* SDL_revision.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_revision.h; sourceTree = ""; }; - AA75588A1595D55500BBD41B /* SDL_rwops.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_rwops.h; sourceTree = ""; }; - AA75588B1595D55500BBD41B /* SDL_scancode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_scancode.h; sourceTree = ""; }; - AA75588C1595D55500BBD41B /* SDL_shape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_shape.h; sourceTree = ""; }; - AA75588D1595D55500BBD41B /* SDL_stdinc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_stdinc.h; sourceTree = ""; }; - AA75588E1595D55500BBD41B /* SDL_surface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_surface.h; sourceTree = ""; }; - AA75588F1595D55500BBD41B /* SDL_system.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_system.h; sourceTree = ""; }; - AA7558901595D55500BBD41B /* SDL_syswm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_syswm.h; sourceTree = ""; }; - AA7558911595D55500BBD41B /* SDL_thread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_thread.h; sourceTree = ""; }; - AA7558921595D55500BBD41B /* SDL_timer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_timer.h; sourceTree = ""; }; - AA7558931595D55500BBD41B /* SDL_touch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_touch.h; sourceTree = ""; }; - AA7558941595D55500BBD41B /* SDL_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_types.h; sourceTree = ""; }; - AA7558951595D55500BBD41B /* SDL_version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_version.h; sourceTree = ""; }; - AA7558961595D55500BBD41B /* SDL_video.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_video.h; sourceTree = ""; }; - AA7558971595D55500BBD41B /* SDL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL.h; sourceTree = ""; }; - AA9FF9501637C6E5000DF050 /* SDL_messagebox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_messagebox.h; sourceTree = ""; }; - AABCC3921640643D00AB8930 /* SDL_uikitmessagebox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitmessagebox.h; sourceTree = ""; }; - AABCC3931640643D00AB8930 /* SDL_uikitmessagebox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitmessagebox.m; sourceTree = ""; }; - AADA5B8E16CCAB7C00107CF7 /* SDL_bits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_bits.h; sourceTree = ""; }; - AADC5A611FDA10C800960936 /* SDL_shaders_metal_ios.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_shaders_metal_ios.h; sourceTree = ""; }; - AADC5A621FDA10C800960936 /* SDL_render_metal.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_render_metal.m; sourceTree = ""; }; - F30D9C98212CD0360047DF2E /* SDL_sensor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sensor.h; sourceTree = ""; }; - F30D9C9B212CD0980047DF2E /* SDL_sensor_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sensor_c.h; sourceTree = ""; }; - F30D9C9C212CD0990047DF2E /* SDL_syssensor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_syssensor.h; sourceTree = ""; }; - F30D9C9D212CD0990047DF2E /* SDL_sensor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_sensor.c; sourceTree = ""; }; - F30D9CA3212CD0BF0047DF2E /* SDL_coremotionsensor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_coremotionsensor.m; sourceTree = ""; }; - F30D9CA4212CD0BF0047DF2E /* SDL_coremotionsensor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_coremotionsensor.h; sourceTree = ""; }; - F30D9CC5212CE92C0047DF2E /* hid.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = hid.m; sourceTree = ""; }; - F36839CA214790950000F255 /* SDL_dummysensor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dummysensor.h; sourceTree = ""; }; - F36839CB214790950000F255 /* SDL_dummysensor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_dummysensor.c; sourceTree = ""; }; - F3BDD78B20F51CB8004ECBF3 /* SDL_hidapi_xbox360.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_xbox360.c; sourceTree = ""; }; - F3BDD78C20F51CB8004ECBF3 /* SDL_hidapi_switch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_switch.c; sourceTree = ""; }; - F3BDD78D20F51CB8004ECBF3 /* SDL_hidapi_xboxone.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_xboxone.c; sourceTree = ""; }; - F3BDD78E20F51CB8004ECBF3 /* SDL_hidapi_ps4.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_ps4.c; sourceTree = ""; }; - F3BDD79020F51CB8004ECBF3 /* SDL_hidapijoystick_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_hidapijoystick_c.h; sourceTree = ""; }; - F3BDD79120F51CB8004ECBF3 /* SDL_hidapijoystick.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapijoystick.c; sourceTree = ""; }; - F3E3C65222406928007D243C /* libSDLmain.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSDLmain.a; sourceTree = BUILT_PRODUCTS_DIR; }; - F3E3C657224069CE007D243C /* SDL_uikit_main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_uikit_main.c; sourceTree = ""; }; - F3E3C7572241389A007D243C /* libSDL2.dylib */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSDL2.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; - F3E3C75F224138AE007D243C /* libSDLmain.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSDLmain.a; sourceTree = BUILT_PRODUCTS_DIR; }; - FA1DC2701C62BE65008F99A0 /* SDL_uikitclipboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitclipboard.h; sourceTree = ""; }; - FA1DC2711C62BE65008F99A0 /* SDL_uikitclipboard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitclipboard.m; sourceTree = ""; }; - FA20874D2307894C0029758C /* SDL_shaders_metal_tvos.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDL_shaders_metal_tvos.h; sourceTree = ""; }; - FA24348C21D4201400B8918A /* SDL_metal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_metal.h; sourceTree = ""; }; - FAB598141BB5C1B100BE72C5 /* libSDL2.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSDL2.a; sourceTree = BUILT_PRODUCTS_DIR; }; - FAD4F7011BA3C4E8008346CE /* SDL_sysjoystick_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sysjoystick_c.h; sourceTree = ""; }; - FD0BBFEF0E3933DD00D833B1 /* SDL_uikitview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitview.h; sourceTree = ""; }; - FD3F4A700DEA620800C5B771 /* SDL_getenv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_getenv.c; sourceTree = ""; }; - FD3F4A710DEA620800C5B771 /* SDL_iconv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_iconv.c; sourceTree = ""; }; - FD3F4A720DEA620800C5B771 /* SDL_malloc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_malloc.c; sourceTree = ""; }; - FD3F4A730DEA620800C5B771 /* SDL_qsort.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_qsort.c; sourceTree = ""; }; - FD3F4A740DEA620800C5B771 /* SDL_stdlib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_stdlib.c; sourceTree = ""; }; - FD3F4A750DEA620800C5B771 /* SDL_string.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_string.c; sourceTree = ""; }; - FD5F9D1E0E0E08B3008E885B /* SDL_joystick.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_joystick.c; sourceTree = ""; }; - FD5F9D1F0E0E08B3008E885B /* SDL_joystick_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_joystick_c.h; sourceTree = ""; }; - FD5F9D200E0E08B3008E885B /* SDL_sysjoystick.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sysjoystick.h; sourceTree = ""; }; - FD6526630DE8FCCB002AD96B /* libSDL2.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSDL2.a; sourceTree = BUILT_PRODUCTS_DIR; }; - FD689F000E26E5B600F90B21 /* SDL_sysjoystick.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_sysjoystick.m; sourceTree = ""; }; - FD689F0C0E26E5D900F90B21 /* SDL_uikitevents.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitevents.h; sourceTree = ""; }; - FD689F0D0E26E5D900F90B21 /* SDL_uikitevents.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitevents.m; sourceTree = ""; }; - FD689F0E0E26E5D900F90B21 /* SDL_uikitopengles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitopengles.h; sourceTree = ""; }; - FD689F0F0E26E5D900F90B21 /* SDL_uikitopengles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitopengles.m; sourceTree = ""; }; - FD689F100E26E5D900F90B21 /* SDL_uikitvideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitvideo.h; sourceTree = ""; }; - FD689F110E26E5D900F90B21 /* SDL_uikitvideo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitvideo.m; sourceTree = ""; }; - FD689F130E26E5D900F90B21 /* SDL_uikitview.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitview.m; sourceTree = ""; }; - FD689F140E26E5D900F90B21 /* SDL_uikitwindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitwindow.h; sourceTree = ""; }; - FD689F150E26E5D900F90B21 /* SDL_uikitwindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitwindow.m; sourceTree = ""; }; - FD689F160E26E5D900F90B21 /* SDL_uikitopenglview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitopenglview.h; sourceTree = ""; }; - FD689F170E26E5D900F90B21 /* SDL_uikitopenglview.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitopenglview.m; sourceTree = ""; }; - FD689FCC0E26E9D400F90B21 /* SDL_uikitappdelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitappdelegate.m; sourceTree = ""; }; - FD689FCD0E26E9D400F90B21 /* SDL_uikitappdelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitappdelegate.h; sourceTree = ""; }; - FD8BD8190E27E25900B52CD5 /* SDL_sysloadso.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_sysloadso.c; sourceTree = ""; }; - FD99B91D0DD52EDC00FB1D6B /* SDL_dummyaudio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_dummyaudio.c; sourceTree = ""; }; - FD99B91E0DD52EDC00FB1D6B /* SDL_dummyaudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dummyaudio.h; sourceTree = ""; }; - FD99B9440DD52EDC00FB1D6B /* SDL_audio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_audio.c; sourceTree = ""; }; - FD99B9450DD52EDC00FB1D6B /* SDL_audio_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_audio_c.h; sourceTree = ""; }; - FD99B9460DD52EDC00FB1D6B /* SDL_audiocvt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_audiocvt.c; sourceTree = ""; }; - FD99B94A0DD52EDC00FB1D6B /* SDL_audiotypecvt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_audiotypecvt.c; sourceTree = ""; }; - FD99B94B0DD52EDC00FB1D6B /* SDL_mixer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_mixer.c; sourceTree = ""; }; - FD99B9520DD52EDC00FB1D6B /* SDL_sysaudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sysaudio.h; sourceTree = ""; }; - FD99B9530DD52EDC00FB1D6B /* SDL_wave.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_wave.c; sourceTree = ""; }; - FD99B9540DD52EDC00FB1D6B /* SDL_wave.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_wave.h; sourceTree = ""; }; - FD99B98B0DD52EDC00FB1D6B /* SDL_cpuinfo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_cpuinfo.c; sourceTree = ""; }; - FD99B98D0DD52EDC00FB1D6B /* blank_cursor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = blank_cursor.h; sourceTree = ""; }; - FD99B98E0DD52EDC00FB1D6B /* default_cursor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = default_cursor.h; sourceTree = ""; }; - FD99B98F0DD52EDC00FB1D6B /* scancodes_darwin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scancodes_darwin.h; sourceTree = ""; }; - FD99B9900DD52EDC00FB1D6B /* scancodes_linux.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scancodes_linux.h; sourceTree = ""; }; - FD99B9920DD52EDC00FB1D6B /* scancodes_xfree86.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scancodes_xfree86.h; sourceTree = ""; }; - FD99B9930DD52EDC00FB1D6B /* SDL_events.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_events.c; sourceTree = ""; }; - FD99B9940DD52EDC00FB1D6B /* SDL_events_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_events_c.h; sourceTree = ""; }; - FD99B9950DD52EDC00FB1D6B /* SDL_keyboard.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_keyboard.c; sourceTree = ""; }; - FD99B9960DD52EDC00FB1D6B /* SDL_keyboard_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_keyboard_c.h; sourceTree = ""; }; - FD99B9970DD52EDC00FB1D6B /* SDL_mouse.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_mouse.c; sourceTree = ""; }; - FD99B9980DD52EDC00FB1D6B /* SDL_mouse_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_mouse_c.h; sourceTree = ""; }; - FD99B9990DD52EDC00FB1D6B /* SDL_quit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_quit.c; sourceTree = ""; }; - FD99B99A0DD52EDC00FB1D6B /* SDL_sysevents.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sysevents.h; sourceTree = ""; }; - FD99B99B0DD52EDC00FB1D6B /* SDL_windowevents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_windowevents.c; sourceTree = ""; }; - FD99B99C0DD52EDC00FB1D6B /* SDL_windowevents_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_windowevents_c.h; sourceTree = ""; }; - FD99B99E0DD52EDC00FB1D6B /* SDL_rwops.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_rwops.c; sourceTree = ""; }; - FD99B9D40DD52EDC00FB1D6B /* SDL_error_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_error_c.h; sourceTree = ""; }; - FD99B9D50DD52EDC00FB1D6B /* SDL_error.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_error.c; sourceTree = ""; }; - FD99B9D80DD52EDC00FB1D6B /* SDL.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL.c; sourceTree = ""; }; - FD99BA070DD52EDC00FB1D6B /* SDL_syscond.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_syscond.c; sourceTree = ""; }; - FD99BA080DD52EDC00FB1D6B /* SDL_sysmutex.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_sysmutex.c; sourceTree = ""; }; - FD99BA090DD52EDC00FB1D6B /* SDL_sysmutex_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sysmutex_c.h; sourceTree = ""; }; - FD99BA0A0DD52EDC00FB1D6B /* SDL_syssem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_syssem.c; sourceTree = ""; }; - FD99BA0B0DD52EDC00FB1D6B /* SDL_systhread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_systhread.c; sourceTree = ""; }; - FD99BA0C0DD52EDC00FB1D6B /* SDL_systhread_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_systhread_c.h; sourceTree = ""; }; - FD99BA140DD52EDC00FB1D6B /* SDL_systhread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_systhread.h; sourceTree = ""; }; - FD99BA150DD52EDC00FB1D6B /* SDL_thread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_thread.c; sourceTree = ""; }; - FD99BA160DD52EDC00FB1D6B /* SDL_thread_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_thread_c.h; sourceTree = ""; }; - FD99BA2E0DD52EDC00FB1D6B /* SDL_timer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_timer.c; sourceTree = ""; }; - FD99BA2F0DD52EDC00FB1D6B /* SDL_timer_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_timer_c.h; sourceTree = ""; }; - FD99BA310DD52EDC00FB1D6B /* SDL_systimer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_systimer.c; sourceTree = ""; }; - FDA683000DF2374E00F98A1A /* SDL_blit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blit.c; sourceTree = ""; }; - FDA683010DF2374E00F98A1A /* SDL_blit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blit.h; sourceTree = ""; }; - FDA683020DF2374E00F98A1A /* SDL_blit_0.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blit_0.c; sourceTree = ""; }; - FDA683030DF2374E00F98A1A /* SDL_blit_1.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blit_1.c; sourceTree = ""; }; - FDA683040DF2374E00F98A1A /* SDL_blit_A.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blit_A.c; sourceTree = ""; }; - FDA683050DF2374E00F98A1A /* SDL_blit_auto.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blit_auto.c; sourceTree = ""; }; - FDA683060DF2374E00F98A1A /* SDL_blit_auto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blit_auto.h; sourceTree = ""; }; - FDA683070DF2374E00F98A1A /* SDL_blit_copy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blit_copy.c; sourceTree = ""; }; - FDA683080DF2374E00F98A1A /* SDL_blit_copy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blit_copy.h; sourceTree = ""; }; - FDA683090DF2374E00F98A1A /* SDL_blit_N.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blit_N.c; sourceTree = ""; }; - FDA6830A0DF2374E00F98A1A /* SDL_blit_slow.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blit_slow.c; sourceTree = ""; }; - FDA6830B0DF2374E00F98A1A /* SDL_bmp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_bmp.c; sourceTree = ""; }; - FDA6830F0DF2374E00F98A1A /* SDL_pixels.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_pixels.c; sourceTree = ""; }; - FDA683100DF2374E00F98A1A /* SDL_pixels_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_pixels_c.h; sourceTree = ""; }; - FDA683110DF2374E00F98A1A /* SDL_rect.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_rect.c; sourceTree = ""; }; - FDA683150DF2374E00F98A1A /* SDL_RLEaccel.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_RLEaccel.c; sourceTree = ""; }; - FDA683160DF2374E00F98A1A /* SDL_RLEaccel_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_RLEaccel_c.h; sourceTree = ""; }; - FDA683170DF2374E00F98A1A /* SDL_stretch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_stretch.c; sourceTree = ""; }; - FDA683190DF2374E00F98A1A /* SDL_surface.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_surface.c; sourceTree = ""; }; - FDA6831A0DF2374E00F98A1A /* SDL_sysvideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sysvideo.h; sourceTree = ""; }; - FDA6831B0DF2374E00F98A1A /* SDL_video.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_video.c; sourceTree = ""; }; - FDA685F50DF244C800F98A1A /* SDL_nullevents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_nullevents.c; sourceTree = ""; }; - FDA685F60DF244C800F98A1A /* SDL_nullevents_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_nullevents_c.h; sourceTree = ""; }; - FDA685F90DF244C800F98A1A /* SDL_nullvideo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_nullvideo.c; sourceTree = ""; }; - FDA685FA0DF244C800F98A1A /* SDL_nullvideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_nullvideo.h; sourceTree = ""; }; - FDC261780E3A3FC8001C4554 /* keyinfotable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = keyinfotable.h; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 52ED1E6922288B720061FCE0 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 52ED1E8022288BFA0061FCE0 /* OpenGLES.framework in Frameworks */, - 52ED1E7E22288BF00061FCE0 /* Metal.framework in Frameworks */, - 52ED1E7C22288BE70061FCE0 /* CoreMotion.framework in Frameworks */, - 52ED1E7A22288BDD0061FCE0 /* GameController.framework in Frameworks */, - 52ED1E7822288BCA0061FCE0 /* UIKit.framework in Frameworks */, - 52ED1E7622288BC10061FCE0 /* CoreGraphics.framework in Frameworks */, - 52ED1E7422288BB70061FCE0 /* CoreBluetooth.framework in Frameworks */, - 52ED1E7222288BAC0061FCE0 /* AVFoundation.framework in Frameworks */, - 52ED1E7022288BA20061FCE0 /* AudioToolbox.framework in Frameworks */, - 52ED1E6E22288B960061FCE0 /* CoreAudio.framework in Frameworks */, - 52ED1E6C22288B8C0061FCE0 /* QuartzCore.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F3E3C7482241389A007D243C /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - F3E3C7492241389A007D243C /* OpenGLES.framework in Frameworks */, - F3E3C74A2241389A007D243C /* Metal.framework in Frameworks */, - F3E3C74C2241389A007D243C /* GameController.framework in Frameworks */, - F3E3C74D2241389A007D243C /* UIKit.framework in Frameworks */, - F3E3C74E2241389A007D243C /* CoreGraphics.framework in Frameworks */, - F3E3C74F2241389A007D243C /* CoreBluetooth.framework in Frameworks */, - F3E3C7502241389A007D243C /* AVFoundation.framework in Frameworks */, - F3E3C7512241389A007D243C /* AudioToolbox.framework in Frameworks */, - F3E3C7522241389A007D243C /* CoreAudio.framework in Frameworks */, - F3E3C7532241389A007D243C /* QuartzCore.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 006E9885119552DD001DE610 /* cocoa */ = { - isa = PBXGroup; - children = ( - 006E9886119552DD001DE610 /* SDL_rwopsbundlesupport.h */, - 006E9887119552DD001DE610 /* SDL_rwopsbundlesupport.m */, - ); - path = cocoa; - sourceTree = ""; - }; - 0402A85412FE70C600CECEE3 /* opengles2 */ = { - isa = PBXGroup; - children = ( - 0402A85512FE70C600CECEE3 /* SDL_render_gles2.c */, - 0402A85612FE70C600CECEE3 /* SDL_shaders_gles2.c */, - 0402A85712FE70C600CECEE3 /* SDL_shaders_gles2.h */, - ); - path = opengles2; - sourceTree = ""; - }; - 041B2CE312FA0F680087D585 /* render */ = { - isa = PBXGroup; - children = ( - AADC5A5C1FDA100800960936 /* metal */, - 041B2CE812FA0F680087D585 /* opengles */, - 0402A85412FE70C600CECEE3 /* opengles2 */, - 041B2CEC12FA0F680087D585 /* software */, - 041B2CEA12FA0F680087D585 /* SDL_render.c */, - 041B2CEB12FA0F680087D585 /* SDL_sysrender.h */, - 04409BA412FA989600FB9AA8 /* SDL_yuv_sw_c.h */, - 04409BA512FA989600FB9AA8 /* SDL_yuv_sw.c */, - ); - path = render; - sourceTree = ""; - }; - 041B2CE812FA0F680087D585 /* opengles */ = { - isa = PBXGroup; - children = ( - 0442EC5212FE1C28004C9285 /* SDL_render_gles.c */, - ); - path = opengles; - sourceTree = ""; - }; - 041B2CEC12FA0F680087D585 /* software */ = { - isa = PBXGroup; - children = ( - 04F7806A12FB751400FC43C0 /* SDL_blendfillrect.c */, - 04F7806B12FB751400FC43C0 /* SDL_blendfillrect.h */, - 04F7806C12FB751400FC43C0 /* SDL_blendline.c */, - 04F7806D12FB751400FC43C0 /* SDL_blendline.h */, - 04F7806E12FB751400FC43C0 /* SDL_blendpoint.c */, - 04F7806F12FB751400FC43C0 /* SDL_blendpoint.h */, - 04F7807012FB751400FC43C0 /* SDL_draw.h */, - 04F7807112FB751400FC43C0 /* SDL_drawline.c */, - 04F7807212FB751400FC43C0 /* SDL_drawline.h */, - 04F7807312FB751400FC43C0 /* SDL_drawpoint.c */, - 04F7807412FB751400FC43C0 /* SDL_drawpoint.h */, - 0442EC4F12FE1C1E004C9285 /* SDL_render_sw.c */, - 0442EC4E12FE1C1E004C9285 /* SDL_render_sw_c.h */, - AA628AD9159369E3005138DD /* SDL_rotate.c */, - AA628ADA159369E3005138DD /* SDL_rotate.h */, - ); - path = software; - sourceTree = ""; - }; - 047677B60EA769DF008ABAF1 /* haptic */ = { - isa = PBXGroup; - children = ( - 047677B70EA76A31008ABAF1 /* dummy */, - 047677B90EA76A31008ABAF1 /* SDL_haptic.c */, - 047677BA0EA76A31008ABAF1 /* SDL_syshaptic.h */, - ); - path = haptic; - sourceTree = ""; - }; - 047677B70EA76A31008ABAF1 /* dummy */ = { - isa = PBXGroup; - children = ( - 047677B80EA76A31008ABAF1 /* SDL_syshaptic.c */, - ); - path = dummy; - sourceTree = ""; - }; - 047AF1B10EA98D6C00811173 /* dummy */ = { - isa = PBXGroup; - children = ( - 047AF1B20EA98D6C00811173 /* SDL_sysloadso.c */, - ); - path = dummy; - sourceTree = ""; - }; - 04B2ECEF1025CEB900F9BC5F /* atomic */ = { - isa = PBXGroup; - children = ( - 04FFAB8912E23B8D00BA343D /* SDL_atomic.c */, - 04FFAB8A12E23B8D00BA343D /* SDL_spinlock.c */, - ); - path = atomic; - sourceTree = ""; - }; - 19C28FACFE9D520D11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - FD6526630DE8FCCB002AD96B /* libSDL2.a */, - FAB598141BB5C1B100BE72C5 /* libSDL2.a */, - 52ED1E5C222889500061FCE0 /* libSDL2.dylib */, - F3E3C65222406928007D243C /* libSDLmain.a */, - F3E3C7572241389A007D243C /* libSDL2.dylib */, - F3E3C75F224138AE007D243C /* libSDLmain.a */, - ); - name = Products; - sourceTree = ""; - }; - 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { - isa = PBXGroup; - children = ( - FD99B8BC0DD52E5C00FB1D6B /* Public Headers */, - FD99B8BD0DD52E6D00FB1D6B /* Library Source */, - 19C28FACFE9D520D11CA2CBB /* Products */, - 52ED1E6A22288B8C0061FCE0 /* Frameworks */, - ); - name = CustomTemplate; - sourceTree = ""; - usesTabs = 0; - }; - 52ED1E6A22288B8C0061FCE0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 52ED1E7F22288BFA0061FCE0 /* OpenGLES.framework */, - 52ED1E7D22288BF00061FCE0 /* Metal.framework */, - 52ED1E7B22288BE70061FCE0 /* CoreMotion.framework */, - 52ED1E7922288BDD0061FCE0 /* GameController.framework */, - 52ED1E7722288BCA0061FCE0 /* UIKit.framework */, - 52ED1E7522288BC10061FCE0 /* CoreGraphics.framework */, - 52ED1E7322288BB70061FCE0 /* CoreBluetooth.framework */, - 52ED1E7122288BAC0061FCE0 /* AVFoundation.framework */, - 52ED1E6F22288BA20061FCE0 /* AudioToolbox.framework */, - 52ED1E6D22288B960061FCE0 /* CoreAudio.framework */, - 52ED1E6B22288B8C0061FCE0 /* QuartzCore.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 56A6702F18565E4F0007D20F /* dynapi */ = { - isa = PBXGroup; - children = ( - 56A6703118565E760007D20F /* SDL_dynapi_overrides.h */, - 56A6703218565E760007D20F /* SDL_dynapi_procs.h */, - 56A6703318565E760007D20F /* SDL_dynapi.c */, - 56A6703418565E760007D20F /* SDL_dynapi.h */, - ); - path = dynapi; - sourceTree = ""; - }; - 56C181E017C44D6900406AE3 /* filesystem */ = { - isa = PBXGroup; - children = ( - 56C181E117C44D7A00406AE3 /* SDL_sysfilesystem.m */, - ); - path = filesystem; - sourceTree = ""; - }; - 56EA86F813E9EBF9002E47EB /* coreaudio */ = { - isa = PBXGroup; - children = ( - 56EA86F913E9EC2B002E47EB /* SDL_coreaudio.m */, - 56EA86FA13E9EC2B002E47EB /* SDL_coreaudio.h */, - ); - path = coreaudio; - sourceTree = ""; - }; - 56ED04DE118A8E9A00A56AA6 /* power */ = { - isa = PBXGroup; - children = ( - 56ED04E0118A8EE200A56AA6 /* SDL_power.c */, - 56ED04DF118A8EB700A56AA6 /* uikit */, - ); - path = power; - sourceTree = ""; - }; - 56ED04DF118A8EB700A56AA6 /* uikit */ = { - isa = PBXGroup; - children = ( - 55FFA9192122302B00D7CBED /* SDL_syspower.h */, - 56ED04E2118A8EFD00A56AA6 /* SDL_syspower.m */, - ); - path = uikit; - sourceTree = ""; - }; - AA13B3521FB8B41700D9FEE6 /* yuv2rgb */ = { - isa = PBXGroup; - children = ( - AA13B3541FB8B46300D9FEE6 /* yuv_rgb_sse_func.h */, - AA13B3531FB8B46300D9FEE6 /* yuv_rgb_std_func.h */, - AA13B3561FB8B46300D9FEE6 /* yuv_rgb.c */, - AA13B3551FB8B46300D9FEE6 /* yuv_rgb.h */, - ); - path = yuv2rgb; - sourceTree = ""; - }; - AADC5A5C1FDA100800960936 /* metal */ = { - isa = PBXGroup; - children = ( - AADC5A621FDA10C800960936 /* SDL_render_metal.m */, - AADC5A611FDA10C800960936 /* SDL_shaders_metal_ios.h */, - FA20874D2307894C0029758C /* SDL_shaders_metal_tvos.h */, - ); - path = metal; - sourceTree = ""; - }; - F30D9C9A212CD0590047DF2E /* sensor */ = { - isa = PBXGroup; - children = ( - F30D9CA2212CD09E0047DF2E /* coremotion */, - F36839C9214790740000F255 /* dummy */, - F30D9C9B212CD0980047DF2E /* SDL_sensor_c.h */, - F30D9C9D212CD0990047DF2E /* SDL_sensor.c */, - F30D9C9C212CD0990047DF2E /* SDL_syssensor.h */, - ); - path = sensor; - sourceTree = ""; - }; - F30D9CA2212CD09E0047DF2E /* coremotion */ = { - isa = PBXGroup; - children = ( - F30D9CA4212CD0BF0047DF2E /* SDL_coremotionsensor.h */, - F30D9CA3212CD0BF0047DF2E /* SDL_coremotionsensor.m */, - ); - path = coremotion; - sourceTree = ""; - }; - F35CEA6E20F51B7F003ECE98 /* hidapi */ = { - isa = PBXGroup; - children = ( - F3BDD77420F51C18004ECBF3 /* ios */, - ); - path = hidapi; - sourceTree = ""; - }; - F36839C9214790740000F255 /* dummy */ = { - isa = PBXGroup; - children = ( - F36839CB214790950000F255 /* SDL_dummysensor.c */, - F36839CA214790950000F255 /* SDL_dummysensor.h */, - ); - path = dummy; - sourceTree = ""; - }; - F3BDD77420F51C18004ECBF3 /* ios */ = { - isa = PBXGroup; - children = ( - F30D9CC5212CE92C0047DF2E /* hid.m */, - ); - path = ios; - sourceTree = ""; - }; - F3BDD78A20F51C8D004ECBF3 /* hidapi */ = { - isa = PBXGroup; - children = ( - A7FF6B6123AC3BC6005876C6 /* SDL_hidapi_gamecube.c */, - F3BDD78E20F51CB8004ECBF3 /* SDL_hidapi_ps4.c */, - A75FDBD723EA38AD00529352 /* SDL_hidapi_rumble.c */, - A75FDBD823EA38AD00529352 /* SDL_hidapi_rumble.h */, - A704173020F7F39400A82227 /* SDL_hidapi_steam.c */, - F3BDD78C20F51CB8004ECBF3 /* SDL_hidapi_switch.c */, - F3BDD78B20F51CB8004ECBF3 /* SDL_hidapi_xbox360.c */, - A7FF6B6623AC3BCD005876C6 /* SDL_hidapi_xbox360w.c */, - F3BDD78D20F51CB8004ECBF3 /* SDL_hidapi_xboxone.c */, - F3BDD79020F51CB8004ECBF3 /* SDL_hidapijoystick_c.h */, - F3BDD79120F51CB8004ECBF3 /* SDL_hidapijoystick.c */, - ); - path = hidapi; - sourceTree = ""; - }; - F3E3C65322406963007D243C /* main */ = { - isa = PBXGroup; - children = ( - F3E3C656224069A1007D243C /* uikit */, - ); - path = main; - sourceTree = ""; - }; - F3E3C656224069A1007D243C /* uikit */ = { - isa = PBXGroup; - children = ( - F3E3C657224069CE007D243C /* SDL_uikit_main.c */, - ); - path = uikit; - sourceTree = ""; - }; - FD3F4A6F0DEA620800C5B771 /* stdlib */ = { - isa = PBXGroup; - children = ( - 63CC93C623849391002A5C54 /* SDL_strtokr.c */, - FD3F4A700DEA620800C5B771 /* SDL_getenv.c */, - FD3F4A710DEA620800C5B771 /* SDL_iconv.c */, - FD3F4A720DEA620800C5B771 /* SDL_malloc.c */, - FD3F4A730DEA620800C5B771 /* SDL_qsort.c */, - FD3F4A740DEA620800C5B771 /* SDL_stdlib.c */, - FD3F4A750DEA620800C5B771 /* SDL_string.c */, - ); - path = stdlib; - sourceTree = ""; - }; - FD5F9D080E0E08B3008E885B /* joystick */ = { - isa = PBXGroup; - children = ( - F3BDD78A20F51C8D004ECBF3 /* hidapi */, - FD689EFF0E26E5B600F90B21 /* iphoneos */, - A704172D20F7E74800A82227 /* controller_type.h */, - AA0AD06116647BBB00CE5896 /* SDL_gamecontroller.c */, - FD5F9D1E0E0E08B3008E885B /* SDL_joystick.c */, - FD5F9D1F0E0E08B3008E885B /* SDL_joystick_c.h */, - FD5F9D200E0E08B3008E885B /* SDL_sysjoystick.h */, - ); - path = joystick; - sourceTree = ""; - }; - FD689EFF0E26E5B600F90B21 /* iphoneos */ = { - isa = PBXGroup; - children = ( - FAD4F7011BA3C4E8008346CE /* SDL_sysjoystick_c.h */, - FD689F000E26E5B600F90B21 /* SDL_sysjoystick.m */, - ); - path = iphoneos; - sourceTree = ""; - }; - FD689F090E26E5D900F90B21 /* uikit */ = { - isa = PBXGroup; - children = ( - FDC261780E3A3FC8001C4554 /* keyinfotable.h */, - FD689FCD0E26E9D400F90B21 /* SDL_uikitappdelegate.h */, - FD689FCC0E26E9D400F90B21 /* SDL_uikitappdelegate.m */, - FA1DC2701C62BE65008F99A0 /* SDL_uikitclipboard.h */, - FA1DC2711C62BE65008F99A0 /* SDL_uikitclipboard.m */, - FD689F0C0E26E5D900F90B21 /* SDL_uikitevents.h */, - FD689F0D0E26E5D900F90B21 /* SDL_uikitevents.m */, - AABCC3921640643D00AB8930 /* SDL_uikitmessagebox.h */, - AABCC3931640643D00AB8930 /* SDL_uikitmessagebox.m */, - 4D7517191EE1D32200820EEA /* SDL_uikitmetalview.h */, - 4D7516F81EE1C28A00820EEA /* SDL_uikitmetalview.m */, - AA126AD21617C5E6005ABC8F /* SDL_uikitmodes.h */, - AA126AD31617C5E6005ABC8F /* SDL_uikitmodes.m */, - FD689F0E0E26E5D900F90B21 /* SDL_uikitopengles.h */, - FD689F0F0E26E5D900F90B21 /* SDL_uikitopengles.m */, - FD689F160E26E5D900F90B21 /* SDL_uikitopenglview.h */, - FD689F170E26E5D900F90B21 /* SDL_uikitopenglview.m */, - FD689F100E26E5D900F90B21 /* SDL_uikitvideo.h */, - FD689F110E26E5D900F90B21 /* SDL_uikitvideo.m */, - FD0BBFEF0E3933DD00D833B1 /* SDL_uikitview.h */, - FD689F130E26E5D900F90B21 /* SDL_uikitview.m */, - 93CB792213FC5E5200BD3E05 /* SDL_uikitviewcontroller.h */, - 93CB792513FC5F5300BD3E05 /* SDL_uikitviewcontroller.m */, - 4D7516F91EE1C28A00820EEA /* SDL_uikitvulkan.h */, - 4D7516FA1EE1C28A00820EEA /* SDL_uikitvulkan.m */, - FD689F140E26E5D900F90B21 /* SDL_uikitwindow.h */, - FD689F150E26E5D900F90B21 /* SDL_uikitwindow.m */, - ); - path = uikit; - sourceTree = ""; - }; - FD8BD8150E27E25900B52CD5 /* loadso */ = { - isa = PBXGroup; - children = ( - 047AF1B10EA98D6C00811173 /* dummy */, - FD8BD8180E27E25900B52CD5 /* dlopen */, - ); - path = loadso; - sourceTree = ""; - }; - FD8BD8180E27E25900B52CD5 /* dlopen */ = { - isa = PBXGroup; - children = ( - FD8BD8190E27E25900B52CD5 /* SDL_sysloadso.c */, - ); - path = dlopen; - sourceTree = ""; - }; - FD99B8BC0DD52E5C00FB1D6B /* Public Headers */ = { - isa = PBXGroup; - children = ( - AA7558651595D55500BBD41B /* begin_code.h */, - AA7558661595D55500BBD41B /* close_code.h */, - AA7558671595D55500BBD41B /* SDL_assert.h */, - AA7558681595D55500BBD41B /* SDL_atomic.h */, - AA7558691595D55500BBD41B /* SDL_audio.h */, - AADA5B8E16CCAB7C00107CF7 /* SDL_bits.h */, - AA75586A1595D55500BBD41B /* SDL_blendmode.h */, - AA75586B1595D55500BBD41B /* SDL_clipboard.h */, - AA75586C1595D55500BBD41B /* SDL_config_iphoneos.h */, - AA75586D1595D55500BBD41B /* SDL_config.h */, - AA75586E1595D55500BBD41B /* SDL_copying.h */, - AA75586F1595D55500BBD41B /* SDL_cpuinfo.h */, - AA7558701595D55500BBD41B /* SDL_endian.h */, - AA7558711595D55500BBD41B /* SDL_error.h */, - AA7558721595D55500BBD41B /* SDL_events.h */, - 56C181DE17C44D5E00406AE3 /* SDL_filesystem.h */, - AA0AD06416647BD400CE5896 /* SDL_gamecontroller.h */, - AA7558731595D55500BBD41B /* SDL_gesture.h */, - AA7558741595D55500BBD41B /* SDL_haptic.h */, - AA7558751595D55500BBD41B /* SDL_hints.h */, - AA7558771595D55500BBD41B /* SDL_joystick.h */, - AA7558781595D55500BBD41B /* SDL_keyboard.h */, - AA7558791595D55500BBD41B /* SDL_keycode.h */, - AA75587A1595D55500BBD41B /* SDL_loadso.h */, - AA75587B1595D55500BBD41B /* SDL_log.h */, - AA75587C1595D55500BBD41B /* SDL_main.h */, - AA9FF9501637C6E5000DF050 /* SDL_messagebox.h */, - FA24348C21D4201400B8918A /* SDL_metal.h */, - AA75587D1595D55500BBD41B /* SDL_mouse.h */, - AA75587E1595D55500BBD41B /* SDL_mutex.h */, - AA75587F1595D55500BBD41B /* SDL_name.h */, - AA7558801595D55500BBD41B /* SDL_opengl.h */, - AA7558811595D55500BBD41B /* SDL_opengles.h */, - AA7558821595D55500BBD41B /* SDL_opengles2.h */, - AA7558831595D55500BBD41B /* SDL_pixels.h */, - AA7558841595D55500BBD41B /* SDL_platform.h */, - AA7558851595D55500BBD41B /* SDL_power.h */, - AA7558861595D55500BBD41B /* SDL_quit.h */, - AA7558871595D55500BBD41B /* SDL_rect.h */, - AA7558881595D55500BBD41B /* SDL_render.h */, - AA7558891595D55500BBD41B /* SDL_revision.h */, - AA75588A1595D55500BBD41B /* SDL_rwops.h */, - AA75588B1595D55500BBD41B /* SDL_scancode.h */, - F30D9C98212CD0360047DF2E /* SDL_sensor.h */, - AA75588C1595D55500BBD41B /* SDL_shape.h */, - AA75588D1595D55500BBD41B /* SDL_stdinc.h */, - AA75588E1595D55500BBD41B /* SDL_surface.h */, - AA75588F1595D55500BBD41B /* SDL_system.h */, - AA7558901595D55500BBD41B /* SDL_syswm.h */, - AA7558911595D55500BBD41B /* SDL_thread.h */, - AA7558921595D55500BBD41B /* SDL_timer.h */, - AA7558931595D55500BBD41B /* SDL_touch.h */, - AA7558941595D55500BBD41B /* SDL_types.h */, - AA7558951595D55500BBD41B /* SDL_version.h */, - AA7558961595D55500BBD41B /* SDL_video.h */, - 4D7516FE1EE1C5B400820EEA /* SDL_vulkan.h */, - AA7558971595D55500BBD41B /* SDL.h */, - ); - name = "Public Headers"; - path = ../../include; - sourceTree = ""; - }; - FD99B8BD0DD52E6D00FB1D6B /* Library Source */ = { - isa = PBXGroup; - children = ( - 04B2ECEF1025CEB900F9BC5F /* atomic */, - FD99B8FB0DD52EDC00FB1D6B /* audio */, - FD99B98A0DD52EDC00FB1D6B /* cpuinfo */, - 56A6702F18565E4F0007D20F /* dynapi */, - FD99B98C0DD52EDC00FB1D6B /* events */, - FD99B99D0DD52EDC00FB1D6B /* file */, - 56C181E017C44D6900406AE3 /* filesystem */, - 047677B60EA769DF008ABAF1 /* haptic */, - F35CEA6E20F51B7F003ECE98 /* hidapi */, - FD5F9D080E0E08B3008E885B /* joystick */, - FD8BD8150E27E25900B52CD5 /* loadso */, - F3E3C65322406963007D243C /* main */, - 56ED04DE118A8E9A00A56AA6 /* power */, - 041B2CE312FA0F680087D585 /* render */, - F30D9C9A212CD0590047DF2E /* sensor */, - FD3F4A6F0DEA620800C5B771 /* stdlib */, - FD99B9E00DD52EDC00FB1D6B /* thread */, - FD99BA1E0DD52EDC00FB1D6B /* timer */, - FDA682420DF2374D00F98A1A /* video */, - 56A6702D18565E450007D20F /* SDL_internal.h */, - 04F2AF551104ABD200D6DDF7 /* SDL_assert.c */, - 04BAC09A1300C1290055DE28 /* SDL_assert_c.h */, - 566726431DF72CF5001DD3DB /* SDL_dataqueue.c */, - 566726441DF72CF5001DD3DB /* SDL_dataqueue.h */, - FD99B9D40DD52EDC00FB1D6B /* SDL_error_c.h */, - FD99B9D50DD52EDC00FB1D6B /* SDL_error.c */, - 0442EC5412FE1C3F004C9285 /* SDL_hints.c */, - 04BAC09B1300C1290055DE28 /* SDL_log.c */, - FD99B9D80DD52EDC00FB1D6B /* SDL.c */, - ); - name = "Library Source"; - path = ../../src; - sourceTree = ""; - }; - FD99B8FB0DD52EDC00FB1D6B /* audio */ = { - isa = PBXGroup; - children = ( - 56EA86F813E9EBF9002E47EB /* coreaudio */, - FD99B91C0DD52EDC00FB1D6B /* dummy */, - FD99B9440DD52EDC00FB1D6B /* SDL_audio.c */, - FD99B9450DD52EDC00FB1D6B /* SDL_audio_c.h */, - FD99B9460DD52EDC00FB1D6B /* SDL_audiocvt.c */, - FD99B94A0DD52EDC00FB1D6B /* SDL_audiotypecvt.c */, - FD99B94B0DD52EDC00FB1D6B /* SDL_mixer.c */, - FD99B9520DD52EDC00FB1D6B /* SDL_sysaudio.h */, - FD99B9530DD52EDC00FB1D6B /* SDL_wave.c */, - FD99B9540DD52EDC00FB1D6B /* SDL_wave.h */, - ); - path = audio; - sourceTree = ""; - }; - FD99B91C0DD52EDC00FB1D6B /* dummy */ = { - isa = PBXGroup; - children = ( - FD99B91D0DD52EDC00FB1D6B /* SDL_dummyaudio.c */, - FD99B91E0DD52EDC00FB1D6B /* SDL_dummyaudio.h */, - ); - path = dummy; - sourceTree = ""; - }; - FD99B98A0DD52EDC00FB1D6B /* cpuinfo */ = { - isa = PBXGroup; - children = ( - FD99B98B0DD52EDC00FB1D6B /* SDL_cpuinfo.c */, - ); - path = cpuinfo; - sourceTree = ""; - }; - FD99B98C0DD52EDC00FB1D6B /* events */ = { - isa = PBXGroup; - children = ( - FD99B98D0DD52EDC00FB1D6B /* blank_cursor.h */, - FD99B98E0DD52EDC00FB1D6B /* default_cursor.h */, - FD99B98F0DD52EDC00FB1D6B /* scancodes_darwin.h */, - FD99B9900DD52EDC00FB1D6B /* scancodes_linux.h */, - FD99B9920DD52EDC00FB1D6B /* scancodes_xfree86.h */, - 0420496F11E6F03D007E7EC9 /* SDL_clipboardevents.c */, - 0420496E11E6F03D007E7EC9 /* SDL_clipboardevents_c.h */, - A7C19D27212E552B00DF2152 /* SDL_displayevents_c.h */, - A7C19D28212E552B00DF2152 /* SDL_displayevents.c */, - AA704DD5162AA90A0076D1C1 /* SDL_dropevents.c */, - AA704DD4162AA90A0076D1C1 /* SDL_dropevents_c.h */, - FD99B9930DD52EDC00FB1D6B /* SDL_events.c */, - FD99B9940DD52EDC00FB1D6B /* SDL_events_c.h */, - 04BA9D6011EF474A00B60E01 /* SDL_gesture.c */, - 04BA9D5F11EF474A00B60E01 /* SDL_gesture_c.h */, - FD99B9950DD52EDC00FB1D6B /* SDL_keyboard.c */, - FD99B9960DD52EDC00FB1D6B /* SDL_keyboard_c.h */, - FD99B9970DD52EDC00FB1D6B /* SDL_mouse.c */, - FD99B9980DD52EDC00FB1D6B /* SDL_mouse_c.h */, - FD99B9990DD52EDC00FB1D6B /* SDL_quit.c */, - FD99B99A0DD52EDC00FB1D6B /* SDL_sysevents.h */, - 04BA9D6211EF474A00B60E01 /* SDL_touch.c */, - 04BA9D6111EF474A00B60E01 /* SDL_touch_c.h */, - FD99B99B0DD52EDC00FB1D6B /* SDL_windowevents.c */, - FD99B99C0DD52EDC00FB1D6B /* SDL_windowevents_c.h */, - ); - path = events; - sourceTree = ""; - }; - FD99B99D0DD52EDC00FB1D6B /* file */ = { - isa = PBXGroup; - children = ( - 006E9885119552DD001DE610 /* cocoa */, - FD99B99E0DD52EDC00FB1D6B /* SDL_rwops.c */, - ); - path = file; - sourceTree = ""; - }; - FD99B9E00DD52EDC00FB1D6B /* thread */ = { - isa = PBXGroup; - children = ( - FD99BA060DD52EDC00FB1D6B /* pthread */, - FD99BA140DD52EDC00FB1D6B /* SDL_systhread.h */, - FD99BA150DD52EDC00FB1D6B /* SDL_thread.c */, - FD99BA160DD52EDC00FB1D6B /* SDL_thread_c.h */, - ); - path = thread; - sourceTree = ""; - }; - FD99BA060DD52EDC00FB1D6B /* pthread */ = { - isa = PBXGroup; - children = ( - FD99BA070DD52EDC00FB1D6B /* SDL_syscond.c */, - FD99BA080DD52EDC00FB1D6B /* SDL_sysmutex.c */, - FD99BA090DD52EDC00FB1D6B /* SDL_sysmutex_c.h */, - FD99BA0A0DD52EDC00FB1D6B /* SDL_syssem.c */, - FD99BA0B0DD52EDC00FB1D6B /* SDL_systhread.c */, - FD99BA0C0DD52EDC00FB1D6B /* SDL_systhread_c.h */, - AA0F8494178D5F1A00823F9D /* SDL_systls.c */, - ); - path = pthread; - sourceTree = ""; - }; - FD99BA1E0DD52EDC00FB1D6B /* timer */ = { - isa = PBXGroup; - children = ( - FD99BA300DD52EDC00FB1D6B /* unix */, - FD99BA2E0DD52EDC00FB1D6B /* SDL_timer.c */, - FD99BA2F0DD52EDC00FB1D6B /* SDL_timer_c.h */, - ); - path = timer; - sourceTree = ""; - }; - FD99BA300DD52EDC00FB1D6B /* unix */ = { - isa = PBXGroup; - children = ( - FD99BA310DD52EDC00FB1D6B /* SDL_systimer.c */, - ); - path = unix; - sourceTree = ""; - }; - FDA682420DF2374D00F98A1A /* video */ = { - isa = PBXGroup; - children = ( - FDA685F40DF244C800F98A1A /* dummy */, - FD689F090E26E5D900F90B21 /* uikit */, - AA13B3521FB8B41700D9FEE6 /* yuv2rgb */, - FDA683020DF2374E00F98A1A /* SDL_blit_0.c */, - FDA683030DF2374E00F98A1A /* SDL_blit_1.c */, - FDA683040DF2374E00F98A1A /* SDL_blit_A.c */, - FDA683050DF2374E00F98A1A /* SDL_blit_auto.c */, - FDA683060DF2374E00F98A1A /* SDL_blit_auto.h */, - FDA683070DF2374E00F98A1A /* SDL_blit_copy.c */, - FDA683080DF2374E00F98A1A /* SDL_blit_copy.h */, - FDA683090DF2374E00F98A1A /* SDL_blit_N.c */, - FDA6830A0DF2374E00F98A1A /* SDL_blit_slow.c */, - 0463873A0F0B5B7D0041FD65 /* SDL_blit_slow.h */, - FDA683000DF2374E00F98A1A /* SDL_blit.c */, - FDA683010DF2374E00F98A1A /* SDL_blit.h */, - FDA6830B0DF2374E00F98A1A /* SDL_bmp.c */, - 044E5FB711E606EB0076F181 /* SDL_clipboard.c */, - AA13B3431FB8B27700D9FEE6 /* SDL_egl_c.h */, - AA13B3471FB8B27800D9FEE6 /* SDL_egl.c */, - 0463873E0F0B5B7D0041FD65 /* SDL_fillrect.c */, - FDA683100DF2374E00F98A1A /* SDL_pixels_c.h */, - FDA6830F0DF2374E00F98A1A /* SDL_pixels.c */, - AA13B3461FB8B27800D9FEE6 /* SDL_rect_c.h */, - FDA683110DF2374E00F98A1A /* SDL_rect.c */, - FDA683160DF2374E00F98A1A /* SDL_RLEaccel_c.h */, - FDA683150DF2374E00F98A1A /* SDL_RLEaccel.c */, - AA13B3451FB8B27800D9FEE6 /* SDL_shape_internals.h */, - AA13B3441FB8B27800D9FEE6 /* SDL_shape.c */, - FDA683170DF2374E00F98A1A /* SDL_stretch.c */, - FDA683190DF2374E00F98A1A /* SDL_surface.c */, - FDA6831A0DF2374E00F98A1A /* SDL_sysvideo.h */, - FDA6831B0DF2374E00F98A1A /* SDL_video.c */, - 4D75171D1EE1D98200820EEA /* SDL_vulkan_internal.h */, - 4D75171E1EE1D98200820EEA /* SDL_vulkan_utils.c */, - AA13B34F1FB8B3CC00D9FEE6 /* SDL_yuv.c */, - AA13B3481FB8B27800D9FEE6 /* SDL_yuv_c.h */, - ); - path = video; - sourceTree = ""; - }; - FDA685F40DF244C800F98A1A /* dummy */ = { - isa = PBXGroup; - children = ( - FDA685F50DF244C800F98A1A /* SDL_nullevents.c */, - FDA685F60DF244C800F98A1A /* SDL_nullevents_c.h */, - 04F7808212FB753F00FC43C0 /* SDL_nullframebuffer_c.h */, - 04F7808312FB753F00FC43C0 /* SDL_nullframebuffer.c */, - FDA685F90DF244C800F98A1A /* SDL_nullvideo.c */, - FDA685FA0DF244C800F98A1A /* SDL_nullvideo.h */, - ); - path = dummy; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 52ED1D6C222889500061FCE0 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 52ED1D6D222889500061FCE0 /* SDL_blit.h in Headers */, - 52ED1D6E222889500061FCE0 /* SDL_uikitmetalview.h in Headers */, - 52ED1D6F222889500061FCE0 /* SDL_vulkan_internal.h in Headers */, - 52ED1D70222889500061FCE0 /* SDL_blit_auto.h in Headers */, - 52ED1D71222889500061FCE0 /* SDL_blit_copy.h in Headers */, - 52ED1D72222889500061FCE0 /* SDL_pixels_c.h in Headers */, - 52ED1D73222889500061FCE0 /* SDL_dynapi_procs.h in Headers */, - 52ED1D74222889500061FCE0 /* SDL_RLEaccel_c.h in Headers */, - 52ED1D75222889500061FCE0 /* SDL_sysvideo.h in Headers */, - 52ED1D76222889500061FCE0 /* SDL_nullevents_c.h in Headers */, - 52ED1D77222889500061FCE0 /* SDL_nullvideo.h in Headers */, - 52ED1D78222889500061FCE0 /* SDL_joystick_c.h in Headers */, - 52ED1D79222889500061FCE0 /* SDL_sysjoystick.h in Headers */, - 52ED1D7A222889500061FCE0 /* SDL_uikitevents.h in Headers */, - 52ED1D7B222889500061FCE0 /* SDL_uikitopengles.h in Headers */, - 52ED1D7C222889500061FCE0 /* SDL_uikitvideo.h in Headers */, - 52ED1D7D222889500061FCE0 /* SDL_uikitwindow.h in Headers */, - 52ED1D7E222889500061FCE0 /* SDL_uikitopenglview.h in Headers */, - 52ED1D7F222889500061FCE0 /* SDL_dynapi.h in Headers */, - 52ED1D80222889500061FCE0 /* SDL_uikitappdelegate.h in Headers */, - 52ED1D81222889500061FCE0 /* SDL_dynapi_overrides.h in Headers */, - 52ED1D82222889500061FCE0 /* yuv_rgb_std_func.h in Headers */, - 52ED1D83222889500061FCE0 /* SDL_syshaptic.h in Headers */, - 52ED1D84222889500061FCE0 /* SDL_blit_slow.h in Headers */, - 52ED1D85222889500061FCE0 /* SDL_rwopsbundlesupport.h in Headers */, - 52ED1D86222889500061FCE0 /* SDL_clipboardevents_c.h in Headers */, - 52ED1D87222889500061FCE0 /* SDL_rect_c.h in Headers */, - 52ED1D88222889500061FCE0 /* yuv_rgb_sse_func.h in Headers */, - 52ED1D89222889500061FCE0 /* SDL_gesture_c.h in Headers */, - 52ED1D8A222889500061FCE0 /* SDL_touch_c.h in Headers */, - 52ED1D8B222889500061FCE0 /* SDL_sysrender.h in Headers */, - 52ED1D8C222889500061FCE0 /* SDL_yuv_sw_c.h in Headers */, - 52ED1D8D222889500061FCE0 /* yuv_rgb.h in Headers */, - 52ED1D8E222889500061FCE0 /* SDL_blendfillrect.h in Headers */, - 52ED1D8F222889500061FCE0 /* SDL_blendline.h in Headers */, - 52ED1D90222889500061FCE0 /* SDL_hidapijoystick_c.h in Headers */, - 52ED1D91222889500061FCE0 /* SDL_blendpoint.h in Headers */, - 52ED1D92222889500061FCE0 /* SDL_draw.h in Headers */, - 52ED1D93222889500061FCE0 /* SDL_drawline.h in Headers */, - 52ED1D94222889500061FCE0 /* SDL_yuv_c.h in Headers */, - 52ED1D95222889500061FCE0 /* SDL_drawpoint.h in Headers */, - 52ED1D96222889500061FCE0 /* SDL_nullframebuffer_c.h in Headers */, - 52ED1D97222889500061FCE0 /* SDL_render_sw_c.h in Headers */, - 52ED1D98222889500061FCE0 /* SDL_uikitclipboard.h in Headers */, - 52ED1D99222889500061FCE0 /* SDL_shaders_gles2.h in Headers */, - 52ED1D9A222889500061FCE0 /* SDL_assert_c.h in Headers */, - 52ED1D9B222889500061FCE0 /* SDL_coreaudio.h in Headers */, - 52ED1D9C222889500061FCE0 /* SDL_uikitviewcontroller.h in Headers */, - 52ED1D9D222889500061FCE0 /* SDL_rotate.h in Headers */, - 52ED1D9E222889500061FCE0 /* begin_code.h in Headers */, - 52ED1D9F222889500061FCE0 /* close_code.h in Headers */, - 52ED1DA0222889500061FCE0 /* SDL_assert.h in Headers */, - 52ED1DA1222889500061FCE0 /* SDL_atomic.h in Headers */, - 52ED1DA2222889500061FCE0 /* SDL_audio.h in Headers */, - 52ED1DA3222889500061FCE0 /* SDL_syspower.h in Headers */, - 52ED1DA4222889500061FCE0 /* SDL_blendmode.h in Headers */, - 52ED1DA5222889500061FCE0 /* SDL_sensor_c.h in Headers */, - 52ED1DA6222889500061FCE0 /* SDL_clipboard.h in Headers */, - 52ED1DA7222889500061FCE0 /* SDL_config_iphoneos.h in Headers */, - 52ED1DA8222889500061FCE0 /* SDL_config.h in Headers */, - 52ED1DA9222889500061FCE0 /* SDL_copying.h in Headers */, - 52ED1DAA222889500061FCE0 /* SDL_egl_c.h in Headers */, - 52ED1DAB222889500061FCE0 /* SDL_cpuinfo.h in Headers */, - 52ED1DAC222889500061FCE0 /* SDL_endian.h in Headers */, - 52ED1DAD222889500061FCE0 /* SDL_error.h in Headers */, - 52ED1DAE222889500061FCE0 /* SDL_internal.h in Headers */, - 52ED1DAF222889500061FCE0 /* SDL_events.h in Headers */, - 52ED1DB0222889500061FCE0 /* SDL_gesture.h in Headers */, - 52ED1DB1222889500061FCE0 /* SDL_haptic.h in Headers */, - 52ED1DB2222889500061FCE0 /* SDL_hints.h in Headers */, - 52ED1DB3222889500061FCE0 /* SDL_dataqueue.h in Headers */, - 52ED1DB4222889500061FCE0 /* SDL_syssensor.h in Headers */, - 52ED1DB5222889500061FCE0 /* SDL_joystick.h in Headers */, - 52ED1DB6222889500061FCE0 /* SDL_shape_internals.h in Headers */, - 52ED1DB7222889500061FCE0 /* SDL_keyboard.h in Headers */, - 52ED1DB8222889500061FCE0 /* controller_type.h in Headers */, - 52ED1DB9222889500061FCE0 /* SDL_keycode.h in Headers */, - 52ED1DBA222889500061FCE0 /* SDL_loadso.h in Headers */, - 52ED1DBB222889500061FCE0 /* SDL_log.h in Headers */, - 52ED1DBC222889500061FCE0 /* SDL_coremotionsensor.h in Headers */, - 52ED1DBD222889500061FCE0 /* SDL_main.h in Headers */, - 52ED1DBE222889500061FCE0 /* SDL_mouse.h in Headers */, - 52ED1DBF222889500061FCE0 /* SDL_displayevents_c.h in Headers */, - 52ED1DC0222889500061FCE0 /* SDL_mutex.h in Headers */, - 52ED1DC1222889500061FCE0 /* SDL_name.h in Headers */, - 52ED1DC2222889500061FCE0 /* SDL_opengl.h in Headers */, - 52ED1DC3222889500061FCE0 /* SDL_opengles.h in Headers */, - 52ED1DC4222889500061FCE0 /* SDL_shaders_metal_ios.h in Headers */, - 52ED1DC5222889500061FCE0 /* SDL_opengles2.h in Headers */, - 52ED1DC6222889500061FCE0 /* SDL_pixels.h in Headers */, - 52ED1DC7222889500061FCE0 /* SDL_platform.h in Headers */, - 52ED1DC8222889500061FCE0 /* SDL_power.h in Headers */, - 52ED1DC9222889500061FCE0 /* SDL_quit.h in Headers */, - 52ED1DCA222889500061FCE0 /* SDL_rect.h in Headers */, - 52ED1DCB222889500061FCE0 /* SDL_render.h in Headers */, - 52ED1DCC222889500061FCE0 /* SDL_revision.h in Headers */, - 52ED1DCD222889500061FCE0 /* SDL_rwops.h in Headers */, - 52ED1DCE222889500061FCE0 /* SDL_scancode.h in Headers */, - 52ED1DCF222889500061FCE0 /* SDL_shape.h in Headers */, - 52ED1DD0222889500061FCE0 /* SDL_stdinc.h in Headers */, - 52ED1DD1222889500061FCE0 /* SDL_sysjoystick_c.h in Headers */, - 52ED1DD2222889500061FCE0 /* SDL_surface.h in Headers */, - 52ED1DD3222889500061FCE0 /* SDL_system.h in Headers */, - 52ED1DD4222889500061FCE0 /* SDL_sensor.h in Headers */, - 52ED1DD5222889500061FCE0 /* SDL_syswm.h in Headers */, - 52ED1DD6222889500061FCE0 /* SDL_thread.h in Headers */, - 52ED1DD7222889500061FCE0 /* SDL_timer.h in Headers */, - A75FDBDE23EA38AD00529352 /* SDL_hidapi_rumble.h in Headers */, - 52ED1DD8222889500061FCE0 /* SDL_touch.h in Headers */, - 52ED1DD9222889500061FCE0 /* SDL_types.h in Headers */, - 52ED1DDA222889500061FCE0 /* SDL_version.h in Headers */, - 52ED1DDB222889500061FCE0 /* SDL_vulkan.h in Headers */, - 52ED1DDC222889500061FCE0 /* SDL_video.h in Headers */, - 52ED1DDD222889500061FCE0 /* SDL.h in Headers */, - 52ED1DDE222889500061FCE0 /* SDL_uikitvulkan.h in Headers */, - 52ED1DDF222889500061FCE0 /* SDL_uikitmodes.h in Headers */, - 52ED1DE0222889500061FCE0 /* SDL_dropevents_c.h in Headers */, - 52ED1DE1222889500061FCE0 /* SDL_messagebox.h in Headers */, - 52ED1DE2222889500061FCE0 /* SDL_uikitmessagebox.h in Headers */, - 52ED1DE3222889500061FCE0 /* SDL_gamecontroller.h in Headers */, - 52ED1DE4222889500061FCE0 /* SDL_dummysensor.h in Headers */, - 52ED1DE5222889500061FCE0 /* SDL_bits.h in Headers */, - 52ED1DE6222889500061FCE0 /* SDL_filesystem.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F3E3C56122406928007D243C /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F3E3C65A2241389A007D243C /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - F3E3C65B2241389A007D243C /* SDL_blit.h in Headers */, - F3E3C65C2241389A007D243C /* SDL_uikitmetalview.h in Headers */, - F3E3C65D2241389A007D243C /* SDL_vulkan_internal.h in Headers */, - F3E3C65E2241389A007D243C /* SDL_blit_auto.h in Headers */, - F3E3C65F2241389A007D243C /* SDL_blit_copy.h in Headers */, - F3E3C6602241389A007D243C /* SDL_pixels_c.h in Headers */, - F3E3C6612241389A007D243C /* SDL_dynapi_procs.h in Headers */, - F3E3C6622241389A007D243C /* SDL_RLEaccel_c.h in Headers */, - F3E3C6632241389A007D243C /* SDL_sysvideo.h in Headers */, - F3E3C6642241389A007D243C /* SDL_nullevents_c.h in Headers */, - F3E3C6652241389A007D243C /* SDL_nullvideo.h in Headers */, - F3E3C6662241389A007D243C /* SDL_joystick_c.h in Headers */, - F3E3C6672241389A007D243C /* SDL_sysjoystick.h in Headers */, - F3E3C6682241389A007D243C /* SDL_uikitevents.h in Headers */, - F3E3C6692241389A007D243C /* SDL_uikitopengles.h in Headers */, - F3E3C66A2241389A007D243C /* SDL_uikitvideo.h in Headers */, - F3E3C66B2241389A007D243C /* SDL_uikitwindow.h in Headers */, - F3E3C66C2241389A007D243C /* SDL_uikitopenglview.h in Headers */, - F3E3C66D2241389A007D243C /* SDL_dynapi.h in Headers */, - F3E3C66E2241389A007D243C /* SDL_uikitappdelegate.h in Headers */, - F3E3C66F2241389A007D243C /* SDL_dynapi_overrides.h in Headers */, - F3E3C6702241389A007D243C /* yuv_rgb_std_func.h in Headers */, - F3E3C6712241389A007D243C /* SDL_syshaptic.h in Headers */, - F3E3C6722241389A007D243C /* SDL_blit_slow.h in Headers */, - F3E3C6732241389A007D243C /* SDL_rwopsbundlesupport.h in Headers */, - F3E3C6742241389A007D243C /* SDL_clipboardevents_c.h in Headers */, - F3E3C6752241389A007D243C /* SDL_rect_c.h in Headers */, - F3E3C6762241389A007D243C /* yuv_rgb_sse_func.h in Headers */, - F3E3C6772241389A007D243C /* SDL_gesture_c.h in Headers */, - F3E3C6782241389A007D243C /* SDL_touch_c.h in Headers */, - F3E3C6792241389A007D243C /* SDL_sysrender.h in Headers */, - F3E3C67A2241389A007D243C /* SDL_yuv_sw_c.h in Headers */, - F3E3C67B2241389A007D243C /* yuv_rgb.h in Headers */, - F3E3C67C2241389A007D243C /* SDL_blendfillrect.h in Headers */, - F3E3C67D2241389A007D243C /* SDL_blendline.h in Headers */, - F3E3C67E2241389A007D243C /* SDL_hidapijoystick_c.h in Headers */, - F3E3C67F2241389A007D243C /* SDL_blendpoint.h in Headers */, - F3E3C6802241389A007D243C /* SDL_draw.h in Headers */, - F3E3C6812241389A007D243C /* SDL_drawline.h in Headers */, - F3E3C6822241389A007D243C /* SDL_yuv_c.h in Headers */, - F3E3C6832241389A007D243C /* SDL_drawpoint.h in Headers */, - F3E3C6842241389A007D243C /* SDL_nullframebuffer_c.h in Headers */, - F3E3C6852241389A007D243C /* SDL_render_sw_c.h in Headers */, - F3E3C6862241389A007D243C /* SDL_uikitclipboard.h in Headers */, - F3E3C6872241389A007D243C /* SDL_shaders_gles2.h in Headers */, - F3E3C6882241389A007D243C /* SDL_assert_c.h in Headers */, - F3E3C6892241389A007D243C /* SDL_coreaudio.h in Headers */, - F3E3C68A2241389A007D243C /* SDL_uikitviewcontroller.h in Headers */, - F3E3C68B2241389A007D243C /* SDL_rotate.h in Headers */, - F3E3C68C2241389A007D243C /* begin_code.h in Headers */, - F3E3C68D2241389A007D243C /* close_code.h in Headers */, - F3E3C68E2241389A007D243C /* SDL_assert.h in Headers */, - F3E3C68F2241389A007D243C /* SDL_atomic.h in Headers */, - F3E3C6902241389A007D243C /* SDL_audio.h in Headers */, - F3E3C6912241389A007D243C /* SDL_syspower.h in Headers */, - F3E3C6922241389A007D243C /* SDL_blendmode.h in Headers */, - F3E3C6932241389A007D243C /* SDL_sensor_c.h in Headers */, - F3E3C6942241389A007D243C /* SDL_clipboard.h in Headers */, - F3E3C6952241389A007D243C /* SDL_config_iphoneos.h in Headers */, - F3E3C6962241389A007D243C /* SDL_config.h in Headers */, - F3E3C6972241389A007D243C /* SDL_copying.h in Headers */, - F3E3C6982241389A007D243C /* SDL_egl_c.h in Headers */, - F3E3C6992241389A007D243C /* SDL_cpuinfo.h in Headers */, - F3E3C69A2241389A007D243C /* SDL_endian.h in Headers */, - F3E3C69B2241389A007D243C /* SDL_error.h in Headers */, - F3E3C69C2241389A007D243C /* SDL_internal.h in Headers */, - F3E3C69D2241389A007D243C /* SDL_events.h in Headers */, - F3E3C69E2241389A007D243C /* SDL_gesture.h in Headers */, - F3E3C69F2241389A007D243C /* SDL_haptic.h in Headers */, - F3E3C6A02241389A007D243C /* SDL_hints.h in Headers */, - F3E3C6A12241389A007D243C /* SDL_dataqueue.h in Headers */, - F3E3C6A22241389A007D243C /* SDL_syssensor.h in Headers */, - F3E3C6A32241389A007D243C /* SDL_joystick.h in Headers */, - F3E3C6A42241389A007D243C /* SDL_shape_internals.h in Headers */, - F3E3C6A52241389A007D243C /* SDL_keyboard.h in Headers */, - F3E3C6A62241389A007D243C /* controller_type.h in Headers */, - F3E3C6A72241389A007D243C /* SDL_keycode.h in Headers */, - F3E3C6A82241389A007D243C /* SDL_loadso.h in Headers */, - F3E3C6A92241389A007D243C /* SDL_log.h in Headers */, - F3E3C6AA2241389A007D243C /* SDL_coremotionsensor.h in Headers */, - F3E3C6AB2241389A007D243C /* SDL_main.h in Headers */, - F3E3C6AC2241389A007D243C /* SDL_mouse.h in Headers */, - F3E3C6AD2241389A007D243C /* SDL_displayevents_c.h in Headers */, - F3E3C6AE2241389A007D243C /* SDL_mutex.h in Headers */, - F3E3C6AF2241389A007D243C /* SDL_name.h in Headers */, - F3E3C6B02241389A007D243C /* SDL_opengl.h in Headers */, - F3E3C6B12241389A007D243C /* SDL_opengles.h in Headers */, - F3E3C6B22241389A007D243C /* SDL_shaders_metal_ios.h in Headers */, - F3E3C6B32241389A007D243C /* SDL_opengles2.h in Headers */, - F3E3C6B42241389A007D243C /* SDL_pixels.h in Headers */, - F3E3C6B52241389A007D243C /* SDL_platform.h in Headers */, - F3E3C6B62241389A007D243C /* SDL_power.h in Headers */, - F3E3C6B72241389A007D243C /* SDL_quit.h in Headers */, - F3E3C6B82241389A007D243C /* SDL_rect.h in Headers */, - F3E3C6B92241389A007D243C /* SDL_render.h in Headers */, - F3E3C6BA2241389A007D243C /* SDL_revision.h in Headers */, - F3E3C6BB2241389A007D243C /* SDL_rwops.h in Headers */, - F3E3C6BC2241389A007D243C /* SDL_scancode.h in Headers */, - F3E3C6BD2241389A007D243C /* SDL_shape.h in Headers */, - F3E3C6BE2241389A007D243C /* SDL_stdinc.h in Headers */, - F3E3C6BF2241389A007D243C /* SDL_sysjoystick_c.h in Headers */, - F3E3C6C02241389A007D243C /* SDL_surface.h in Headers */, - F3E3C6C12241389A007D243C /* SDL_system.h in Headers */, - F3E3C6C22241389A007D243C /* SDL_sensor.h in Headers */, - F3E3C6C32241389A007D243C /* SDL_syswm.h in Headers */, - F3E3C6C42241389A007D243C /* SDL_thread.h in Headers */, - F3E3C6C52241389A007D243C /* SDL_timer.h in Headers */, - A75FDBDF23EA38AD00529352 /* SDL_hidapi_rumble.h in Headers */, - F3E3C6C62241389A007D243C /* SDL_touch.h in Headers */, - F3E3C6C72241389A007D243C /* SDL_types.h in Headers */, - F3E3C6C82241389A007D243C /* SDL_version.h in Headers */, - F3E3C6C92241389A007D243C /* SDL_vulkan.h in Headers */, - F3E3C6CA2241389A007D243C /* SDL_video.h in Headers */, - F3E3C6CB2241389A007D243C /* SDL.h in Headers */, - F3E3C6CC2241389A007D243C /* SDL_uikitvulkan.h in Headers */, - F3E3C6CD2241389A007D243C /* SDL_uikitmodes.h in Headers */, - F3E3C6CE2241389A007D243C /* SDL_dropevents_c.h in Headers */, - F3E3C6CF2241389A007D243C /* SDL_messagebox.h in Headers */, - F3E3C6D02241389A007D243C /* SDL_uikitmessagebox.h in Headers */, - F3E3C6D12241389A007D243C /* SDL_gamecontroller.h in Headers */, - F3E3C6D22241389A007D243C /* SDL_dummysensor.h in Headers */, - F3E3C6D32241389A007D243C /* SDL_bits.h in Headers */, - F3E3C6D42241389A007D243C /* SDL_filesystem.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F3E3C759224138AE007D243C /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FD65265F0DE8FCCB002AD96B /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - FDA6844E0DF2374E00F98A1A /* SDL_blit.h in Headers */, - 4D75171A1EE1D32200820EEA /* SDL_uikitmetalview.h in Headers */, - 4D75171F1EE1D98200820EEA /* SDL_vulkan_internal.h in Headers */, - FDA684530DF2374E00F98A1A /* SDL_blit_auto.h in Headers */, - FDA684550DF2374E00F98A1A /* SDL_blit_copy.h in Headers */, - FDA6845D0DF2374E00F98A1A /* SDL_pixels_c.h in Headers */, - 56A6703618565E760007D20F /* SDL_dynapi_procs.h in Headers */, - FDA684630DF2374E00F98A1A /* SDL_RLEaccel_c.h in Headers */, - FDA684670DF2374E00F98A1A /* SDL_sysvideo.h in Headers */, - FDA685FC0DF244C800F98A1A /* SDL_nullevents_c.h in Headers */, - FDA686000DF244C800F98A1A /* SDL_nullvideo.h in Headers */, - FD5F9D300E0E08B3008E885B /* SDL_joystick_c.h in Headers */, - FD5F9D310E0E08B3008E885B /* SDL_sysjoystick.h in Headers */, - FD689F1C0E26E5D900F90B21 /* SDL_uikitevents.h in Headers */, - FD689F1E0E26E5D900F90B21 /* SDL_uikitopengles.h in Headers */, - FD689F200E26E5D900F90B21 /* SDL_uikitvideo.h in Headers */, - FD689F240E26E5D900F90B21 /* SDL_uikitwindow.h in Headers */, - FD689F260E26E5D900F90B21 /* SDL_uikitopenglview.h in Headers */, - 56A6703818565E760007D20F /* SDL_dynapi.h in Headers */, - FD689FCF0E26E9D400F90B21 /* SDL_uikitappdelegate.h in Headers */, - 56A6703518565E760007D20F /* SDL_dynapi_overrides.h in Headers */, - AA13B3571FB8B46400D9FEE6 /* yuv_rgb_std_func.h in Headers */, - 047677BD0EA76A31008ABAF1 /* SDL_syshaptic.h in Headers */, - 046387420F0B5B7D0041FD65 /* SDL_blit_slow.h in Headers */, - 006E9888119552DD001DE610 /* SDL_rwopsbundlesupport.h in Headers */, - 0420497011E6F03D007E7EC9 /* SDL_clipboardevents_c.h in Headers */, - AA13B34C1FB8B27800D9FEE6 /* SDL_rect_c.h in Headers */, - AA13B3581FB8B46400D9FEE6 /* yuv_rgb_sse_func.h in Headers */, - 04BA9D6311EF474A00B60E01 /* SDL_gesture_c.h in Headers */, - 04BA9D6511EF474A00B60E01 /* SDL_touch_c.h in Headers */, - 041B2CF212FA0F680087D585 /* SDL_sysrender.h in Headers */, - 04409BA812FA989600FB9AA8 /* SDL_yuv_sw_c.h in Headers */, - AA13B3591FB8B46400D9FEE6 /* yuv_rgb.h in Headers */, - 04F7807712FB751400FC43C0 /* SDL_blendfillrect.h in Headers */, - 04F7807912FB751400FC43C0 /* SDL_blendline.h in Headers */, - F3BDD79B20F51CB8004ECBF3 /* SDL_hidapijoystick_c.h in Headers */, - 04F7807B12FB751400FC43C0 /* SDL_blendpoint.h in Headers */, - 04F7807C12FB751400FC43C0 /* SDL_draw.h in Headers */, - 04F7807E12FB751400FC43C0 /* SDL_drawline.h in Headers */, - AA13B34E1FB8B27800D9FEE6 /* SDL_yuv_c.h in Headers */, - 04F7808012FB751400FC43C0 /* SDL_drawpoint.h in Headers */, - 04F7808412FB753F00FC43C0 /* SDL_nullframebuffer_c.h in Headers */, - 0442EC5012FE1C1E004C9285 /* SDL_render_sw_c.h in Headers */, - FA1DC2721C62BE65008F99A0 /* SDL_uikitclipboard.h in Headers */, - 0402A85A12FE70C600CECEE3 /* SDL_shaders_gles2.h in Headers */, - 04BAC09C1300C1290055DE28 /* SDL_assert_c.h in Headers */, - 56EA86FC13E9EC2B002E47EB /* SDL_coreaudio.h in Headers */, - 93CB792313FC5E5200BD3E05 /* SDL_uikitviewcontroller.h in Headers */, - AA628ADC159369E3005138DD /* SDL_rotate.h in Headers */, - AA7558981595D55500BBD41B /* begin_code.h in Headers */, - AA7558991595D55500BBD41B /* close_code.h in Headers */, - AA75589A1595D55500BBD41B /* SDL_assert.h in Headers */, - AA75589B1595D55500BBD41B /* SDL_atomic.h in Headers */, - AA75589C1595D55500BBD41B /* SDL_audio.h in Headers */, - 55FFA91A2122302B00D7CBED /* SDL_syspower.h in Headers */, - AA75589D1595D55500BBD41B /* SDL_blendmode.h in Headers */, - F30D9C9E212CD0990047DF2E /* SDL_sensor_c.h in Headers */, - AA75589E1595D55500BBD41B /* SDL_clipboard.h in Headers */, - FA24348D21D4201400B8918A /* SDL_metal.h in Headers */, - AA75589F1595D55500BBD41B /* SDL_config_iphoneos.h in Headers */, - AA7558A01595D55500BBD41B /* SDL_config.h in Headers */, - AA7558A11595D55500BBD41B /* SDL_copying.h in Headers */, - AA13B3491FB8B27800D9FEE6 /* SDL_egl_c.h in Headers */, - AA7558A21595D55500BBD41B /* SDL_cpuinfo.h in Headers */, - AA7558A31595D55500BBD41B /* SDL_endian.h in Headers */, - AA7558A41595D55500BBD41B /* SDL_error.h in Headers */, - 56A6702E18565E450007D20F /* SDL_internal.h in Headers */, - AA7558A51595D55500BBD41B /* SDL_events.h in Headers */, - AA7558A61595D55500BBD41B /* SDL_gesture.h in Headers */, - AA7558A71595D55500BBD41B /* SDL_haptic.h in Headers */, - AA7558A81595D55500BBD41B /* SDL_hints.h in Headers */, - 566726461DF72CF5001DD3DB /* SDL_dataqueue.h in Headers */, - F30D9C9F212CD0990047DF2E /* SDL_syssensor.h in Headers */, - AA7558AA1595D55500BBD41B /* SDL_joystick.h in Headers */, - AA13B34B1FB8B27800D9FEE6 /* SDL_shape_internals.h in Headers */, - AA7558AB1595D55500BBD41B /* SDL_keyboard.h in Headers */, - A704172E20F7E74800A82227 /* controller_type.h in Headers */, - AA7558AC1595D55500BBD41B /* SDL_keycode.h in Headers */, - AA7558AD1595D55500BBD41B /* SDL_loadso.h in Headers */, - AA7558AE1595D55500BBD41B /* SDL_log.h in Headers */, - F30D9CA7212CD0BF0047DF2E /* SDL_coremotionsensor.h in Headers */, - AA7558AF1595D55500BBD41B /* SDL_main.h in Headers */, - AA7558B01595D55500BBD41B /* SDL_mouse.h in Headers */, - A7C19D29212E552C00DF2152 /* SDL_displayevents_c.h in Headers */, - AA7558B11595D55500BBD41B /* SDL_mutex.h in Headers */, - AA7558B21595D55500BBD41B /* SDL_name.h in Headers */, - AA7558B31595D55500BBD41B /* SDL_opengl.h in Headers */, - AA7558B41595D55500BBD41B /* SDL_opengles.h in Headers */, - AADC5A631FDA10C800960936 /* SDL_shaders_metal_ios.h in Headers */, - AA7558B51595D55500BBD41B /* SDL_opengles2.h in Headers */, - AA7558B61595D55500BBD41B /* SDL_pixels.h in Headers */, - AA7558B71595D55500BBD41B /* SDL_platform.h in Headers */, - AA7558B81595D55500BBD41B /* SDL_power.h in Headers */, - AA7558B91595D55500BBD41B /* SDL_quit.h in Headers */, - AA7558BA1595D55500BBD41B /* SDL_rect.h in Headers */, - AA7558BB1595D55500BBD41B /* SDL_render.h in Headers */, - AA7558BC1595D55500BBD41B /* SDL_revision.h in Headers */, - AA7558BD1595D55500BBD41B /* SDL_rwops.h in Headers */, - AA7558BE1595D55500BBD41B /* SDL_scancode.h in Headers */, - AA7558BF1595D55500BBD41B /* SDL_shape.h in Headers */, - AA7558C01595D55500BBD41B /* SDL_stdinc.h in Headers */, - FAD4F7021BA3C4E8008346CE /* SDL_sysjoystick_c.h in Headers */, - AA7558C11595D55500BBD41B /* SDL_surface.h in Headers */, - AA7558C21595D55500BBD41B /* SDL_system.h in Headers */, - F30D9C99212CD0360047DF2E /* SDL_sensor.h in Headers */, - AA7558C31595D55500BBD41B /* SDL_syswm.h in Headers */, - AA7558C41595D55500BBD41B /* SDL_thread.h in Headers */, - AA7558C51595D55500BBD41B /* SDL_timer.h in Headers */, - A75FDBDD23EA38AD00529352 /* SDL_hidapi_rumble.h in Headers */, - AA7558C61595D55500BBD41B /* SDL_touch.h in Headers */, - AA7558C71595D55500BBD41B /* SDL_types.h in Headers */, - AA7558C81595D55500BBD41B /* SDL_version.h in Headers */, - 4D7516FF1EE1C5B400820EEA /* SDL_vulkan.h in Headers */, - AA7558C91595D55500BBD41B /* SDL_video.h in Headers */, - AA7558CA1595D55500BBD41B /* SDL.h in Headers */, - 4D7516FC1EE1C28A00820EEA /* SDL_uikitvulkan.h in Headers */, - AA126AD41617C5E7005ABC8F /* SDL_uikitmodes.h in Headers */, - AA704DD6162AA90A0076D1C1 /* SDL_dropevents_c.h in Headers */, - AA9FF9511637C6E5000DF050 /* SDL_messagebox.h in Headers */, - AABCC3941640643D00AB8930 /* SDL_uikitmessagebox.h in Headers */, - AA0AD06516647BD400CE5896 /* SDL_gamecontroller.h in Headers */, - F36839CC214790950000F255 /* SDL_dummysensor.h in Headers */, - AADA5B8F16CCAB7C00107CF7 /* SDL_bits.h in Headers */, - 56C181DF17C44D5E00406AE3 /* SDL_filesystem.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 52ED1D6B222889500061FCE0 /* libSDL-iOS-dylib */ = { - isa = PBXNativeTarget; - buildConfigurationList = 52ED1E59222889500061FCE0 /* Build configuration list for PBXNativeTarget "libSDL-iOS-dylib" */; - buildPhases = ( - 52ED1D6C222889500061FCE0 /* Headers */, - 52ED1DE7222889500061FCE0 /* Sources */, - 52ED1E6922288B720061FCE0 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "libSDL-iOS-dylib"; - productName = iPhoneSDLStaticLib; - productReference = 52ED1E5C222889500061FCE0 /* libSDL2.dylib */; - productType = "com.apple.product-type.library.static"; - }; - F3E3C56022406928007D243C /* libSDLmain-iOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = F3E3C64F22406928007D243C /* Build configuration list for PBXNativeTarget "libSDLmain-iOS" */; - buildPhases = ( - F3E3C56122406928007D243C /* Headers */, - F3E3C5DC22406928007D243C /* Sources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "libSDLmain-iOS"; - productName = iPhoneSDLStaticLib; - productReference = F3E3C65222406928007D243C /* libSDLmain.a */; - productType = "com.apple.product-type.library.static"; - }; - F3E3C6592241389A007D243C /* libSDL-tvOS-dylib */ = { - isa = PBXNativeTarget; - buildConfigurationList = F3E3C7542241389A007D243C /* Build configuration list for PBXNativeTarget "libSDL-tvOS-dylib" */; - buildPhases = ( - F3E3C65A2241389A007D243C /* Headers */, - F3E3C6D52241389A007D243C /* Sources */, - F3E3C7482241389A007D243C /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "libSDL-tvOS-dylib"; - productName = iPhoneSDLStaticLib; - productReference = F3E3C7572241389A007D243C /* libSDL2.dylib */; - productType = "com.apple.product-type.library.static"; - }; - F3E3C758224138AE007D243C /* libSDLmain-tvOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = F3E3C75C224138AE007D243C /* Build configuration list for PBXNativeTarget "libSDLmain-tvOS" */; - buildPhases = ( - F3E3C759224138AE007D243C /* Headers */, - F3E3C75A224138AE007D243C /* Sources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "libSDLmain-tvOS"; - productName = iPhoneSDLStaticLib; - productReference = F3E3C75F224138AE007D243C /* libSDLmain.a */; - productType = "com.apple.product-type.library.static"; - }; - FAB598131BB5C1B100BE72C5 /* libSDL-tvOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = FAB5981A1BB5C1B100BE72C5 /* Build configuration list for PBXNativeTarget "libSDL-tvOS" */; - buildPhases = ( - FAB598101BB5C1B100BE72C5 /* Sources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "libSDL-tvOS"; - productName = "libSDL-tvOS"; - productReference = FAB598141BB5C1B100BE72C5 /* libSDL2.a */; - productType = "com.apple.product-type.library.static"; - }; - FD6526620DE8FCCB002AD96B /* libSDL-iOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = FD6526990DE8FD14002AD96B /* Build configuration list for PBXNativeTarget "libSDL-iOS" */; - buildPhases = ( - FD65265F0DE8FCCB002AD96B /* Headers */, - FD6526600DE8FCCB002AD96B /* Sources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "libSDL-iOS"; - productName = iPhoneSDLStaticLib; - productReference = FD6526630DE8FCCB002AD96B /* libSDL2.a */; - productType = "com.apple.product-type.library.static"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 29B97313FDCFA39411CA2CEA /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0900; - TargetAttributes = { - 00B4F48B12F6A69C0084EC00 = { - DevelopmentTeam = UZ5V327NE3; - }; - FAB598131BB5C1B100BE72C5 = { - CreatedOnToolsVersion = 7.1; - DevelopmentTeam = UZ5V327NE3; - }; - FD6526620DE8FCCB002AD96B = { - DevelopmentTeam = UZ5V327NE3; - }; - }; - }; - buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "SDL" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; - projectDirPath = ""; - projectRoot = ../..; - targets = ( - FD6526620DE8FCCB002AD96B /* libSDL-iOS */, - 52ED1D6B222889500061FCE0 /* libSDL-iOS-dylib */, - FAB598131BB5C1B100BE72C5 /* libSDL-tvOS */, - F3E3C6592241389A007D243C /* libSDL-tvOS-dylib */, - F3E3C56022406928007D243C /* libSDLmain-iOS */, - F3E3C758224138AE007D243C /* libSDLmain-tvOS */, - 00B4F48B12F6A69C0084EC00 /* PrepareXcodeProjectTemplate */, - C143576D1F4C4DAA000B792B /* All-iOS */, - C14357721F4C4F2A000B792B /* All-tvOS */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXShellScriptBuildPhase section */ - 00B4F48A12F6A69C0084EC00 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "$(SYMROOT)/$CONFIGURATION-Universal/libSDL.a", - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "# clean up the framework, remove headers, extra files\n\ntemp=$BUILD_DIR/$BUILD_STYLE-template\n# Wrong! 1. Can't assume location of Xcode directory (use xcode-select)\n# 2. Project templates should go in Application Support directories anyway.\ntemplate_dir_name=\"SDL iOS Application\"\n# dest=\"$(HOME)/Library/Application Support/Developer/Shared/Xcode/Project Templates/SDL/SDL iOS Application\"\nrsync_flags=\"--exclude *.svn --links -r\"\n\n# mkdir -p $dest\nmkdir -p $temp\nmkdir -p \"$temp/$template_dir_name/SDL/lib/\"\nmkdir -p \"$temp/$template_dir_name/SDL/include\"\n\n# copy template\nrsync $rsync_flags \"../template/$template_dir_name\" $temp/\n\n# copy Universal libSDL.a\nrsync $rsync_flags -r $SYMROOT/$CONFIGURATION-Universal/libSDL.a \"$temp/$template_dir_name/SDL/lib/\"\n\n# copy headers\nrsync $rsync_flags ../../include/ \"$temp/$template_dir_name/SDL/include\"\n\n#install (nah, don't install)\n# cp -fr \"$temp/$template_dir_name\" \"$dest\""; - }; - C14357711F4C4DB2000B792B /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - output/iOS/debug/libSDL2.a, - output/iOS/release/libSDL2.a, - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "TARGET=libSDL-iOS\nOUTPUT=libSDL2.a\n\nxcodebuild -target \"$TARGET\" -configuration Debug -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO BUILD_DIR=\"${BUILD_DIR}\" BUILD_ROOT=\"${BUILD_ROOT}\" clean build\nxcodebuild -target \"$TARGET\" -configuration Release -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO BUILD_DIR=\"${BUILD_DIR}\" BUILD_ROOT=\"${BUILD_ROOT}\" clean build\nxcodebuild -target \"$TARGET\" ONLY_ACTIVE_ARCH=NO -configuration Debug -sdk iphoneos BUILD_DIR=\"${BUILD_DIR}\" BUILD_ROOT=\"${BUILD_ROOT}\" clean build\nxcodebuild -target \"$TARGET\" ONLY_ACTIVE_ARCH=NO -configuration Release -sdk iphoneos BUILD_DIR=\"${BUILD_DIR}\" BUILD_ROOT=\"${BUILD_ROOT}\" clean build\n\n# make output folders\nmkdir -p output/iOS/debug\nmkdir -p output/iOS/release\n\n# combine lib files for various platforms into one\necho \"Creating output/iOS/debug/$OUTPUT\"\nlipo -create \"${TARGET_BUILD_DIR}/../Debug-iphoneos/$OUTPUT\" \"${TARGET_BUILD_DIR}/../Debug-iphonesimulator/$OUTPUT\" -output \"output/iOS/debug/$OUTPUT\"\necho \"Creating output/iOS/release/$OUTPUT\"\nlipo -create \"${TARGET_BUILD_DIR}/../Release-iphoneos/$OUTPUT\" \"${TARGET_BUILD_DIR}/../Release-iphonesimulator/$OUTPUT\" -output \"output/iOS/release/$OUTPUT\"\n"; - }; - C14357731F4C4F2A000B792B /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - output/tvOS/debug/libSDL2.a, - output/tvOS/release/libSDL2.a, - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "TARGET=libSDL-tvOS\nOUTPUT=libSDL2.a\n\nxcodebuild -target \"$TARGET\" -configuration Debug -sdk appletvsimulator ONLY_ACTIVE_ARCH=NO BUILD_DIR=\"${BUILD_DIR}\" BUILD_ROOT=\"${BUILD_ROOT}\" clean build\nxcodebuild -target \"$TARGET\" -configuration Release -sdk appletvsimulator ONLY_ACTIVE_ARCH=NO BUILD_DIR=\"${BUILD_DIR}\" BUILD_ROOT=\"${BUILD_ROOT}\" clean build\nxcodebuild -target \"$TARGET\" ONLY_ACTIVE_ARCH=NO -configuration Debug -sdk appletvos BUILD_DIR=\"${BUILD_DIR}\" BUILD_ROOT=\"${BUILD_ROOT}\" clean build\nxcodebuild -target \"$TARGET\" ONLY_ACTIVE_ARCH=NO -configuration Release -sdk appletvos BUILD_DIR=\"${BUILD_DIR}\" BUILD_ROOT=\"${BUILD_ROOT}\" clean build\n\n# make output folders\nmkdir -p output/tvOS/debug\nmkdir -p output/tvOS/release\n\n# combine lib files for various platforms into one\necho \"Creating output/tvOS/debug/$OUTPUT\"\nlipo -create \"${TARGET_BUILD_DIR}/../Debug-appletvos/$OUTPUT\" \"${TARGET_BUILD_DIR}/../Debug-appletvsimulator/$OUTPUT\" -output \"output/tvOS/debug/$OUTPUT\"\necho \"Creating output/tvOS/release/$OUTPUT\"\nlipo -create \"${TARGET_BUILD_DIR}/../Release-appletvos/$OUTPUT\" \"${TARGET_BUILD_DIR}/../Release-appletvsimulator/$OUTPUT\" -output \"output/tvOS/release/$OUTPUT\"\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 52ED1DE7222889500061FCE0 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 52ED1DE8222889500061FCE0 /* SDL_systimer.c in Sources */, - 52ED1DE9222889500061FCE0 /* SDL_timer.c in Sources */, - 52ED1DEA222889500061FCE0 /* SDL_coremotionsensor.m in Sources */, - 52ED1DEB222889500061FCE0 /* SDL_string.c in Sources */, - 52ED1DEC222889500061FCE0 /* SDL_dummyaudio.c in Sources */, - 52ED1DED222889500061FCE0 /* SDL_audio.c in Sources */, - 52ED1DEE222889500061FCE0 /* SDL_audiocvt.c in Sources */, - 52ED1DEF222889500061FCE0 /* SDL_audiotypecvt.c in Sources */, - 52ED1DF0222889500061FCE0 /* SDL_mixer.c in Sources */, - 52ED1DF1222889500061FCE0 /* SDL_wave.c in Sources */, - 52ED1DF2222889500061FCE0 /* SDL_uikitvulkan.m in Sources */, - 52ED1DF3222889500061FCE0 /* SDL_uikitclipboard.m in Sources */, - 52ED1DF4222889500061FCE0 /* SDL_cpuinfo.c in Sources */, - 52ED1DF5222889500061FCE0 /* SDL_events.c in Sources */, - 52ED1DF6222889500061FCE0 /* SDL_keyboard.c in Sources */, - 52ED1DF7222889500061FCE0 /* SDL_dynapi.c in Sources */, - 52ED1DF8222889500061FCE0 /* SDL_mouse.c in Sources */, - 52ED1DF9222889500061FCE0 /* SDL_quit.c in Sources */, - 52ED1DFA222889500061FCE0 /* SDL_windowevents.c in Sources */, - 52ED1DFB222889500061FCE0 /* SDL_uikitmetalview.m in Sources */, - 52ED1DFC222889500061FCE0 /* SDL_rwops.c in Sources */, - 52ED1DFD222889500061FCE0 /* hid.m in Sources */, - 52ED1DFE222889500061FCE0 /* SDL_vulkan_utils.c in Sources */, - 52ED1DFF222889500061FCE0 /* SDL_error.c in Sources */, - 52ED1E00222889500061FCE0 /* SDL.c in Sources */, - 52ED1E01222889500061FCE0 /* SDL_syscond.c in Sources */, - 52ED1E02222889500061FCE0 /* SDL_render_metal.m in Sources */, - 52ED1E03222889500061FCE0 /* SDL_sysmutex.c in Sources */, - 52ED1E04222889500061FCE0 /* SDL_syssem.c in Sources */, - 52ED1E05222889500061FCE0 /* SDL_systhread.c in Sources */, - 52ED1E06222889500061FCE0 /* SDL_thread.c in Sources */, - 52ED1E07222889500061FCE0 /* SDL_getenv.c in Sources */, - 52ED1E08222889500061FCE0 /* SDL_iconv.c in Sources */, - 52ED1E09222889500061FCE0 /* SDL_malloc.c in Sources */, - A7FF6B6323AC3BC6005876C6 /* SDL_hidapi_gamecube.c in Sources */, - 52ED1E0A222889500061FCE0 /* SDL_hidapi_xbox360.c in Sources */, - 52ED1E0B222889500061FCE0 /* SDL_qsort.c in Sources */, - 52ED1E0C222889500061FCE0 /* SDL_hidapi_ps4.c in Sources */, - 52ED1E0D222889500061FCE0 /* SDL_stdlib.c in Sources */, - 52ED1E0E222889500061FCE0 /* SDL_blit.c in Sources */, - 52ED1E0F222889500061FCE0 /* SDL_blit_0.c in Sources */, - A75FDAB723E288E400529352 /* SDL_hidapi_steam.c in Sources */, - 52ED1E10222889500061FCE0 /* SDL_yuv.c in Sources */, - 52ED1E11222889500061FCE0 /* SDL_blit_1.c in Sources */, - 52ED1E12222889500061FCE0 /* SDL_dataqueue.c in Sources */, - 52ED1E13222889500061FCE0 /* SDL_blit_A.c in Sources */, - 52ED1E14222889500061FCE0 /* SDL_blit_auto.c in Sources */, - 52ED1E15222889500061FCE0 /* SDL_blit_copy.c in Sources */, - 52ED1E16222889500061FCE0 /* SDL_blit_N.c in Sources */, - 52ED1E17222889500061FCE0 /* SDL_blit_slow.c in Sources */, - 52ED1E18222889500061FCE0 /* SDL_bmp.c in Sources */, - 52ED1E19222889500061FCE0 /* SDL_pixels.c in Sources */, - 52ED1E1A222889500061FCE0 /* SDL_rect.c in Sources */, - 52ED1E1B222889500061FCE0 /* SDL_RLEaccel.c in Sources */, - 52ED1E1C222889500061FCE0 /* SDL_stretch.c in Sources */, - 52ED1E1D222889500061FCE0 /* SDL_egl.c in Sources */, - 52ED1E1E222889500061FCE0 /* SDL_surface.c in Sources */, - A75FDBDA23EA38AD00529352 /* SDL_hidapi_rumble.c in Sources */, - 52ED1E1F222889500061FCE0 /* SDL_video.c in Sources */, - 52ED1E20222889500061FCE0 /* SDL_nullevents.c in Sources */, - 52ED1E21222889500061FCE0 /* SDL_nullvideo.c in Sources */, - 52ED1E22222889500061FCE0 /* SDL_joystick.c in Sources */, - 52ED1E23222889500061FCE0 /* SDL_sysjoystick.m in Sources */, - 52ED1E24222889500061FCE0 /* SDL_uikitevents.m in Sources */, - 52ED1E25222889500061FCE0 /* yuv_rgb.c in Sources */, - 52ED1E26222889500061FCE0 /* SDL_uikitopengles.m in Sources */, - 52ED1E27222889500061FCE0 /* SDL_uikitvideo.m in Sources */, - 52ED1E28222889500061FCE0 /* SDL_uikitview.m in Sources */, - 52ED1E29222889500061FCE0 /* SDL_displayevents.c in Sources */, - 52ED1E2A222889500061FCE0 /* SDL_uikitwindow.m in Sources */, - 52ED1E2B222889500061FCE0 /* SDL_uikitopenglview.m in Sources */, - 52ED1E2C222889500061FCE0 /* SDL_uikitappdelegate.m in Sources */, - 52ED1E2D222889500061FCE0 /* SDL_sysloadso.c in Sources */, - 52ED1E2E222889500061FCE0 /* SDL_hidapijoystick.c in Sources */, - 52ED1E2F222889500061FCE0 /* SDL_syshaptic.c in Sources */, - 52ED1E30222889500061FCE0 /* SDL_haptic.c in Sources */, - 52ED1E31222889500061FCE0 /* SDL_sysloadso.c in Sources */, - 52ED1E32222889500061FCE0 /* SDL_fillrect.c in Sources */, - 52ED1E33222889500061FCE0 /* SDL_assert.c in Sources */, - 52ED1E34222889500061FCE0 /* SDL_hidapi_xboxone.c in Sources */, - 52ED1E35222889500061FCE0 /* SDL_power.c in Sources */, - 52ED1E36222889500061FCE0 /* SDL_syspower.m in Sources */, - 52ED1E37222889500061FCE0 /* SDL_rwopsbundlesupport.m in Sources */, - 52ED1E38222889500061FCE0 /* SDL_clipboard.c in Sources */, - 52ED1E39222889500061FCE0 /* SDL_clipboardevents.c in Sources */, - 52ED1E3A222889500061FCE0 /* SDL_gesture.c in Sources */, - 52ED1E3B222889500061FCE0 /* SDL_touch.c in Sources */, - 52ED1E3C222889500061FCE0 /* SDL_atomic.c in Sources */, - 52ED1E3D222889500061FCE0 /* SDL_spinlock.c in Sources */, - 52ED1E3E222889500061FCE0 /* SDL_render.c in Sources */, - 52ED1E3F222889500061FCE0 /* SDL_yuv_sw.c in Sources */, - 52ED1E40222889500061FCE0 /* SDL_blendfillrect.c in Sources */, - 52ED1E41222889500061FCE0 /* SDL_blendline.c in Sources */, - 52ED1E42222889500061FCE0 /* SDL_blendpoint.c in Sources */, - 52ED1E43222889500061FCE0 /* SDL_drawline.c in Sources */, - 52ED1E44222889500061FCE0 /* SDL_drawpoint.c in Sources */, - 52ED1E45222889500061FCE0 /* SDL_nullframebuffer.c in Sources */, - 52ED1E46222889500061FCE0 /* SDL_render_sw.c in Sources */, - 52ED1E47222889500061FCE0 /* SDL_render_gles.c in Sources */, - 52ED1E48222889500061FCE0 /* SDL_hints.c in Sources */, - 52ED1E49222889500061FCE0 /* SDL_shape.c in Sources */, - A7FF6B6823AC3BCD005876C6 /* SDL_hidapi_xbox360w.c in Sources */, - 52ED1E4A222889500061FCE0 /* SDL_render_gles2.c in Sources */, - 52ED1E4B222889500061FCE0 /* SDL_dummysensor.c in Sources */, - 52ED1E4C222889500061FCE0 /* SDL_shaders_gles2.c in Sources */, - 52ED1E4D222889500061FCE0 /* SDL_log.c in Sources */, - 52ED1E4E222889500061FCE0 /* SDL_coreaudio.m in Sources */, - 52ED1E4F222889500061FCE0 /* SDL_sensor.c in Sources */, - 52ED1E50222889500061FCE0 /* SDL_hidapi_switch.c in Sources */, - 52ED1E51222889500061FCE0 /* SDL_uikitviewcontroller.m in Sources */, - 52ED1E52222889500061FCE0 /* SDL_rotate.c in Sources */, - 52ED1E53222889500061FCE0 /* SDL_uikitmodes.m in Sources */, - 52ED1E54222889500061FCE0 /* SDL_dropevents.c in Sources */, - 52ED1E55222889500061FCE0 /* SDL_uikitmessagebox.m in Sources */, - 52ED1E56222889500061FCE0 /* SDL_gamecontroller.c in Sources */, - 52ED1E57222889500061FCE0 /* SDL_systls.c in Sources */, - 52ED1E58222889500061FCE0 /* SDL_sysfilesystem.m in Sources */, - 63CC93C823849391002A5C54 /* SDL_strtokr.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F3E3C5DC22406928007D243C /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - F3E3C658224069CE007D243C /* SDL_uikit_main.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F3E3C6D52241389A007D243C /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - F3E3C6D62241389A007D243C /* SDL_systimer.c in Sources */, - F3E3C6D72241389A007D243C /* SDL_timer.c in Sources */, - F3E3C6D82241389A007D243C /* SDL_coremotionsensor.m in Sources */, - F3E3C6D92241389A007D243C /* SDL_string.c in Sources */, - F3E3C6DA2241389A007D243C /* SDL_dummyaudio.c in Sources */, - F3E3C6DB2241389A007D243C /* SDL_audio.c in Sources */, - F3E3C6DC2241389A007D243C /* SDL_audiocvt.c in Sources */, - F3E3C6DD2241389A007D243C /* SDL_audiotypecvt.c in Sources */, - F3E3C6DE2241389A007D243C /* SDL_mixer.c in Sources */, - F3E3C6DF2241389A007D243C /* SDL_wave.c in Sources */, - F3E3C6E02241389A007D243C /* SDL_uikitvulkan.m in Sources */, - F3E3C6E12241389A007D243C /* SDL_uikitclipboard.m in Sources */, - F3E3C6E22241389A007D243C /* SDL_cpuinfo.c in Sources */, - F3E3C6E32241389A007D243C /* SDL_events.c in Sources */, - F3E3C6E42241389A007D243C /* SDL_keyboard.c in Sources */, - F3E3C6E52241389A007D243C /* SDL_dynapi.c in Sources */, - F3E3C6E62241389A007D243C /* SDL_mouse.c in Sources */, - F3E3C6E72241389A007D243C /* SDL_quit.c in Sources */, - F3E3C6E82241389A007D243C /* SDL_windowevents.c in Sources */, - F3E3C6E92241389A007D243C /* SDL_uikitmetalview.m in Sources */, - F3E3C6EA2241389A007D243C /* SDL_rwops.c in Sources */, - F3E3C6EB2241389A007D243C /* hid.m in Sources */, - F3E3C6EC2241389A007D243C /* SDL_vulkan_utils.c in Sources */, - F3E3C6ED2241389A007D243C /* SDL_error.c in Sources */, - F3E3C6EE2241389A007D243C /* SDL.c in Sources */, - F3E3C6EF2241389A007D243C /* SDL_syscond.c in Sources */, - F3E3C6F02241389A007D243C /* SDL_render_metal.m in Sources */, - F3E3C6F12241389A007D243C /* SDL_sysmutex.c in Sources */, - F3E3C6F22241389A007D243C /* SDL_syssem.c in Sources */, - F3E3C6F32241389A007D243C /* SDL_systhread.c in Sources */, - F3E3C6F42241389A007D243C /* SDL_thread.c in Sources */, - F3E3C6F52241389A007D243C /* SDL_getenv.c in Sources */, - F3E3C6F62241389A007D243C /* SDL_iconv.c in Sources */, - F3E3C6F72241389A007D243C /* SDL_malloc.c in Sources */, - A7FF6B6523AC3BC6005876C6 /* SDL_hidapi_gamecube.c in Sources */, - F3E3C6F82241389A007D243C /* SDL_hidapi_xbox360.c in Sources */, - F3E3C6F92241389A007D243C /* SDL_qsort.c in Sources */, - F3E3C6FA2241389A007D243C /* SDL_hidapi_ps4.c in Sources */, - F3E3C6FB2241389A007D243C /* SDL_stdlib.c in Sources */, - F3E3C6FC2241389A007D243C /* SDL_blit.c in Sources */, - F3E3C6FD2241389A007D243C /* SDL_blit_0.c in Sources */, - A75FDAB823E2890000529352 /* SDL_hidapi_steam.c in Sources */, - F3E3C6FE2241389A007D243C /* SDL_yuv.c in Sources */, - F3E3C6FF2241389A007D243C /* SDL_blit_1.c in Sources */, - F3E3C7002241389A007D243C /* SDL_dataqueue.c in Sources */, - F3E3C7012241389A007D243C /* SDL_blit_A.c in Sources */, - F3E3C7022241389A007D243C /* SDL_blit_auto.c in Sources */, - F3E3C7032241389A007D243C /* SDL_blit_copy.c in Sources */, - F3E3C7042241389A007D243C /* SDL_blit_N.c in Sources */, - F3E3C7052241389A007D243C /* SDL_blit_slow.c in Sources */, - F3E3C7062241389A007D243C /* SDL_bmp.c in Sources */, - F3E3C7072241389A007D243C /* SDL_pixels.c in Sources */, - F3E3C7082241389A007D243C /* SDL_rect.c in Sources */, - F3E3C7092241389A007D243C /* SDL_RLEaccel.c in Sources */, - F3E3C70A2241389A007D243C /* SDL_stretch.c in Sources */, - F3E3C70B2241389A007D243C /* SDL_egl.c in Sources */, - F3E3C70C2241389A007D243C /* SDL_surface.c in Sources */, - A75FDBDC23EA38AD00529352 /* SDL_hidapi_rumble.c in Sources */, - F3E3C70D2241389A007D243C /* SDL_video.c in Sources */, - F3E3C70E2241389A007D243C /* SDL_nullevents.c in Sources */, - F3E3C70F2241389A007D243C /* SDL_nullvideo.c in Sources */, - F3E3C7102241389A007D243C /* SDL_joystick.c in Sources */, - F3E3C7112241389A007D243C /* SDL_sysjoystick.m in Sources */, - F3E3C7122241389A007D243C /* SDL_uikitevents.m in Sources */, - F3E3C7132241389A007D243C /* yuv_rgb.c in Sources */, - F3E3C7142241389A007D243C /* SDL_uikitopengles.m in Sources */, - F3E3C7162241389A007D243C /* SDL_uikitvideo.m in Sources */, - F3E3C7172241389A007D243C /* SDL_uikitview.m in Sources */, - F3E3C7182241389A007D243C /* SDL_displayevents.c in Sources */, - F3E3C7192241389A007D243C /* SDL_uikitwindow.m in Sources */, - F3E3C71A2241389A007D243C /* SDL_uikitopenglview.m in Sources */, - F3E3C71B2241389A007D243C /* SDL_uikitappdelegate.m in Sources */, - F3E3C71C2241389A007D243C /* SDL_sysloadso.c in Sources */, - F3E3C71D2241389A007D243C /* SDL_hidapijoystick.c in Sources */, - F3E3C71E2241389A007D243C /* SDL_syshaptic.c in Sources */, - F3E3C71F2241389A007D243C /* SDL_haptic.c in Sources */, - F3E3C7202241389A007D243C /* SDL_sysloadso.c in Sources */, - F3E3C7212241389A007D243C /* SDL_fillrect.c in Sources */, - F3E3C7222241389A007D243C /* SDL_assert.c in Sources */, - F3E3C7232241389A007D243C /* SDL_hidapi_xboxone.c in Sources */, - F3E3C7242241389A007D243C /* SDL_power.c in Sources */, - F3E3C7252241389A007D243C /* SDL_syspower.m in Sources */, - F3E3C7262241389A007D243C /* SDL_rwopsbundlesupport.m in Sources */, - F3E3C7272241389A007D243C /* SDL_clipboard.c in Sources */, - F3E3C7282241389A007D243C /* SDL_clipboardevents.c in Sources */, - F3E3C7292241389A007D243C /* SDL_gesture.c in Sources */, - F3E3C72A2241389A007D243C /* SDL_touch.c in Sources */, - F3E3C72B2241389A007D243C /* SDL_atomic.c in Sources */, - F3E3C72C2241389A007D243C /* SDL_spinlock.c in Sources */, - F3E3C72D2241389A007D243C /* SDL_render.c in Sources */, - F3E3C72E2241389A007D243C /* SDL_yuv_sw.c in Sources */, - F3E3C72F2241389A007D243C /* SDL_blendfillrect.c in Sources */, - F3E3C7302241389A007D243C /* SDL_blendline.c in Sources */, - F3E3C7312241389A007D243C /* SDL_blendpoint.c in Sources */, - F3E3C7322241389A007D243C /* SDL_drawline.c in Sources */, - F3E3C7332241389A007D243C /* SDL_drawpoint.c in Sources */, - F3E3C7342241389A007D243C /* SDL_nullframebuffer.c in Sources */, - F3E3C7352241389A007D243C /* SDL_render_sw.c in Sources */, - F3E3C7362241389A007D243C /* SDL_render_gles.c in Sources */, - F3E3C7372241389A007D243C /* SDL_hints.c in Sources */, - F3E3C7382241389A007D243C /* SDL_shape.c in Sources */, - A7FF6B6A23AC3BCD005876C6 /* SDL_hidapi_xbox360w.c in Sources */, - F3E3C7392241389A007D243C /* SDL_render_gles2.c in Sources */, - F3E3C73A2241389A007D243C /* SDL_dummysensor.c in Sources */, - F3E3C73B2241389A007D243C /* SDL_shaders_gles2.c in Sources */, - F3E3C73C2241389A007D243C /* SDL_log.c in Sources */, - F3E3C73D2241389A007D243C /* SDL_coreaudio.m in Sources */, - F3E3C73E2241389A007D243C /* SDL_sensor.c in Sources */, - F3E3C73F2241389A007D243C /* SDL_hidapi_switch.c in Sources */, - F3E3C7402241389A007D243C /* SDL_uikitviewcontroller.m in Sources */, - F3E3C7412241389A007D243C /* SDL_rotate.c in Sources */, - F3E3C7422241389A007D243C /* SDL_uikitmodes.m in Sources */, - F3E3C7432241389A007D243C /* SDL_dropevents.c in Sources */, - F3E3C7442241389A007D243C /* SDL_uikitmessagebox.m in Sources */, - F3E3C7452241389A007D243C /* SDL_gamecontroller.c in Sources */, - F3E3C7462241389A007D243C /* SDL_systls.c in Sources */, - F3E3C7472241389A007D243C /* SDL_sysfilesystem.m in Sources */, - 63CC93CA23849391002A5C54 /* SDL_strtokr.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F3E3C75A224138AE007D243C /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - F3E3C75B224138AE007D243C /* SDL_uikit_main.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FAB598101BB5C1B100BE72C5 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FAB5981D1BB5C31500BE72C5 /* SDL_atomic.c in Sources */, - FAB5981E1BB5C31500BE72C5 /* SDL_spinlock.c in Sources */, - FAB5981F1BB5C31500BE72C5 /* SDL_coreaudio.m in Sources */, - FAB598211BB5C31500BE72C5 /* SDL_dummyaudio.c in Sources */, - FAB598231BB5C31500BE72C5 /* SDL_audio.c in Sources */, - FAB598251BB5C31500BE72C5 /* SDL_audiocvt.c in Sources */, - FAB598271BB5C31500BE72C5 /* SDL_audiotypecvt.c in Sources */, - FAB598281BB5C31500BE72C5 /* SDL_mixer.c in Sources */, - F3BDD79720F51CB8004ECBF3 /* SDL_hidapi_xboxone.c in Sources */, - FAB5982A1BB5C31500BE72C5 /* SDL_wave.c in Sources */, - FAFDF8C61D88D4530083E6F2 /* SDL_uikitclipboard.m in Sources */, - FAB5982C1BB5C31500BE72C5 /* SDL_cpuinfo.c in Sources */, - FAB5982F1BB5C31500BE72C5 /* SDL_dynapi.c in Sources */, - FAB598361BB5C31500BE72C5 /* SDL_clipboardevents.c in Sources */, - FAB598381BB5C31500BE72C5 /* SDL_dropevents.c in Sources */, - FAB5983A1BB5C31500BE72C5 /* SDL_events.c in Sources */, - A7F629241FE06523002F9CC9 /* SDL_uikitmetalview.m in Sources */, - FAB5983C1BB5C31500BE72C5 /* SDL_gesture.c in Sources */, - FAB5983E1BB5C31500BE72C5 /* SDL_keyboard.c in Sources */, - F3BDD79520F51CB8004ECBF3 /* SDL_hidapi_switch.c in Sources */, - FAB598401BB5C31500BE72C5 /* SDL_mouse.c in Sources */, - A704172F20F7E76000A82227 /* SDL_gamecontroller.c in Sources */, - FAB598421BB5C31500BE72C5 /* SDL_quit.c in Sources */, - FAB598441BB5C31500BE72C5 /* SDL_touch.c in Sources */, - FAB598461BB5C31500BE72C5 /* SDL_windowevents.c in Sources */, - F30D9CC7212CE92C0047DF2E /* hid.m in Sources */, - FAB598491BB5C31600BE72C5 /* SDL_rwopsbundlesupport.m in Sources */, - FAB5984A1BB5C31600BE72C5 /* SDL_rwops.c in Sources */, - FAB5984B1BB5C31600BE72C5 /* SDL_sysfilesystem.m in Sources */, - AADC5A5D1FDA104400960936 /* yuv_rgb.c in Sources */, - FAB5984C1BB5C31600BE72C5 /* SDL_syshaptic.c in Sources */, - A75FDBDB23EA38AD00529352 /* SDL_hidapi_rumble.c in Sources */, - AADC5A5F1FDA105600960936 /* SDL_vulkan_utils.c in Sources */, - AADC5A5E1FDA105300960936 /* SDL_yuv.c in Sources */, - FAB5984D1BB5C31600BE72C5 /* SDL_haptic.c in Sources */, - F3BDD79320F51CB8004ECBF3 /* SDL_hidapi_xbox360.c in Sources */, - FAB598501BB5C31600BE72C5 /* SDL_sysjoystick.m in Sources */, - FAB598521BB5C31600BE72C5 /* SDL_joystick.c in Sources */, - FAB598551BB5C31600BE72C5 /* SDL_sysloadso.c in Sources */, - AADC5A651FDA10CB00960936 /* SDL_render_metal.m in Sources */, - A7FF6B6923AC3BCD005876C6 /* SDL_hidapi_xbox360w.c in Sources */, - FAB598561BB5C31600BE72C5 /* SDL_sysloadso.c in Sources */, - FAB598571BB5C31600BE72C5 /* SDL_power.c in Sources */, - F30D9CA1212CD0990047DF2E /* SDL_sensor.c in Sources */, - FAB598581BB5C31600BE72C5 /* SDL_syspower.m in Sources */, - 56F9D5601DF73BA400C15B5D /* SDL_dataqueue.c in Sources */, - FAB598591BB5C31600BE72C5 /* SDL_render_gles.c in Sources */, - F30D9CA6212CD0BF0047DF2E /* SDL_coremotionsensor.m in Sources */, - FAB5985A1BB5C31600BE72C5 /* SDL_render_gles2.c in Sources */, - FAB5985B1BB5C31600BE72C5 /* SDL_shaders_gles2.c in Sources */, - FAB5985D1BB5C31600BE72C5 /* SDL_blendfillrect.c in Sources */, - FAB5985F1BB5C31600BE72C5 /* SDL_blendline.c in Sources */, - FAB598611BB5C31600BE72C5 /* SDL_blendpoint.c in Sources */, - FAB598641BB5C31600BE72C5 /* SDL_drawline.c in Sources */, - FAB598661BB5C31600BE72C5 /* SDL_drawpoint.c in Sources */, - FAB598681BB5C31600BE72C5 /* SDL_render_sw.c in Sources */, - FAB5986A1BB5C31600BE72C5 /* SDL_rotate.c in Sources */, - FAB5986D1BB5C31600BE72C5 /* SDL_render.c in Sources */, - FAB598711BB5C31600BE72C5 /* SDL_yuv_sw.c in Sources */, - FAB598721BB5C31600BE72C5 /* SDL_getenv.c in Sources */, - FAB598731BB5C31600BE72C5 /* SDL_iconv.c in Sources */, - FAB598741BB5C31600BE72C5 /* SDL_malloc.c in Sources */, - FAB598751BB5C31600BE72C5 /* SDL_qsort.c in Sources */, - F36839CE214790950000F255 /* SDL_dummysensor.c in Sources */, - A7C19D2B212E552C00DF2152 /* SDL_displayevents.c in Sources */, - FAB598761BB5C31600BE72C5 /* SDL_stdlib.c in Sources */, - FAB598771BB5C31600BE72C5 /* SDL_string.c in Sources */, - FAB598781BB5C31600BE72C5 /* SDL_syscond.c in Sources */, - F3BDD79D20F51CB8004ECBF3 /* SDL_hidapijoystick.c in Sources */, - AADC5A601FDA10A400960936 /* SDL_uikitvulkan.m in Sources */, - A7FF6B6423AC3BC6005876C6 /* SDL_hidapi_gamecube.c in Sources */, - FAB598791BB5C31600BE72C5 /* SDL_sysmutex.c in Sources */, - FAB5987B1BB5C31600BE72C5 /* SDL_syssem.c in Sources */, - FAB5987C1BB5C31600BE72C5 /* SDL_systhread.c in Sources */, - FAB5987E1BB5C31600BE72C5 /* SDL_systls.c in Sources */, - FAB598801BB5C31600BE72C5 /* SDL_thread.c in Sources */, - FAB598821BB5C31600BE72C5 /* SDL_systimer.c in Sources */, - FAB598831BB5C31600BE72C5 /* SDL_timer.c in Sources */, - FAB598871BB5C31600BE72C5 /* SDL_uikitappdelegate.m in Sources */, - F3BDD79920F51CB8004ECBF3 /* SDL_hidapi_ps4.c in Sources */, - FAB598891BB5C31600BE72C5 /* SDL_uikitevents.m in Sources */, - FAB5988B1BB5C31600BE72C5 /* SDL_uikitmessagebox.m in Sources */, - FAB5988D1BB5C31600BE72C5 /* SDL_uikitmodes.m in Sources */, - FAB5988F1BB5C31600BE72C5 /* SDL_uikitopengles.m in Sources */, - FAB598911BB5C31600BE72C5 /* SDL_uikitopenglview.m in Sources */, - FAB598931BB5C31600BE72C5 /* SDL_uikitvideo.m in Sources */, - FAB598951BB5C31600BE72C5 /* SDL_uikitview.m in Sources */, - FAB598971BB5C31600BE72C5 /* SDL_uikitviewcontroller.m in Sources */, - FAB598991BB5C31600BE72C5 /* SDL_uikitwindow.m in Sources */, - A704173220F7F39900A82227 /* SDL_hidapi_steam.c in Sources */, - FAB5989A1BB5C31600BE72C5 /* SDL_nullevents.c in Sources */, - FAB5989D1BB5C31600BE72C5 /* SDL_nullframebuffer.c in Sources */, - FAB5989E1BB5C31600BE72C5 /* SDL_nullvideo.c in Sources */, - FAB598A01BB5C31600BE72C5 /* SDL_blit.c in Sources */, - FAB598A21BB5C31600BE72C5 /* SDL_blit_0.c in Sources */, - FAB598A31BB5C31600BE72C5 /* SDL_blit_1.c in Sources */, - FAB598A41BB5C31600BE72C5 /* SDL_blit_A.c in Sources */, - FAB598A51BB5C31600BE72C5 /* SDL_blit_auto.c in Sources */, - FAB598A71BB5C31600BE72C5 /* SDL_blit_copy.c in Sources */, - FAB598A91BB5C31600BE72C5 /* SDL_blit_N.c in Sources */, - FAB598AA1BB5C31600BE72C5 /* SDL_blit_slow.c in Sources */, - FAB598AC1BB5C31600BE72C5 /* SDL_bmp.c in Sources */, - FAB598AD1BB5C31600BE72C5 /* SDL_clipboard.c in Sources */, - FAB598AE1BB5C31600BE72C5 /* SDL_fillrect.c in Sources */, - FAB598AF1BB5C31600BE72C5 /* SDL_pixels.c in Sources */, - FAB598B11BB5C31600BE72C5 /* SDL_rect.c in Sources */, - FAB598B21BB5C31600BE72C5 /* SDL_RLEaccel.c in Sources */, - FAB598B41BB5C31600BE72C5 /* SDL_stretch.c in Sources */, - FAB598B51BB5C31600BE72C5 /* SDL_surface.c in Sources */, - FAB598B71BB5C31600BE72C5 /* SDL_video.c in Sources */, - FAB598B91BB5C31600BE72C5 /* SDL_assert.c in Sources */, - FAB598BC1BB5C31600BE72C5 /* SDL_error.c in Sources */, - FAB598BD1BB5C31600BE72C5 /* SDL_hints.c in Sources */, - FAB598BE1BB5C31600BE72C5 /* SDL_log.c in Sources */, - FAB598BF1BB5C31600BE72C5 /* SDL.c in Sources */, - 63CC93C923849391002A5C54 /* SDL_strtokr.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FD6526600DE8FCCB002AD96B /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FD6526810DE8FCDD002AD96B /* SDL_systimer.c in Sources */, - FD6526800DE8FCDD002AD96B /* SDL_timer.c in Sources */, - F30D9CA5212CD0BF0047DF2E /* SDL_coremotionsensor.m in Sources */, - FD3F4A7B0DEA620800C5B771 /* SDL_string.c in Sources */, - FD6526660DE8FCDD002AD96B /* SDL_dummyaudio.c in Sources */, - FD6526670DE8FCDD002AD96B /* SDL_audio.c in Sources */, - FD6526680DE8FCDD002AD96B /* SDL_audiocvt.c in Sources */, - FD65266A0DE8FCDD002AD96B /* SDL_audiotypecvt.c in Sources */, - FD65266B0DE8FCDD002AD96B /* SDL_mixer.c in Sources */, - FD65266F0DE8FCDD002AD96B /* SDL_wave.c in Sources */, - 4D7516FD1EE1C28A00820EEA /* SDL_uikitvulkan.m in Sources */, - FA1DC2731C62BE65008F99A0 /* SDL_uikitclipboard.m in Sources */, - FD6526700DE8FCDD002AD96B /* SDL_cpuinfo.c in Sources */, - FD6526710DE8FCDD002AD96B /* SDL_events.c in Sources */, - FD6526720DE8FCDD002AD96B /* SDL_keyboard.c in Sources */, - 56A6703718565E760007D20F /* SDL_dynapi.c in Sources */, - FD6526730DE8FCDD002AD96B /* SDL_mouse.c in Sources */, - FD6526740DE8FCDD002AD96B /* SDL_quit.c in Sources */, - FD6526750DE8FCDD002AD96B /* SDL_windowevents.c in Sources */, - 4D7516FB1EE1C28A00820EEA /* SDL_uikitmetalview.m in Sources */, - FD6526760DE8FCDD002AD96B /* SDL_rwops.c in Sources */, - F30D9CC6212CE92C0047DF2E /* hid.m in Sources */, - 4D7517201EE1D98200820EEA /* SDL_vulkan_utils.c in Sources */, - FD6526780DE8FCDD002AD96B /* SDL_error.c in Sources */, - FD65267A0DE8FCDD002AD96B /* SDL.c in Sources */, - FD65267B0DE8FCDD002AD96B /* SDL_syscond.c in Sources */, - AADC5A641FDA10C800960936 /* SDL_render_metal.m in Sources */, - FD65267C0DE8FCDD002AD96B /* SDL_sysmutex.c in Sources */, - FD65267D0DE8FCDD002AD96B /* SDL_syssem.c in Sources */, - FD65267E0DE8FCDD002AD96B /* SDL_systhread.c in Sources */, - FD65267F0DE8FCDD002AD96B /* SDL_thread.c in Sources */, - FD3F4A760DEA620800C5B771 /* SDL_getenv.c in Sources */, - FD3F4A770DEA620800C5B771 /* SDL_iconv.c in Sources */, - FD3F4A780DEA620800C5B771 /* SDL_malloc.c in Sources */, - A7FF6B6223AC3BC6005876C6 /* SDL_hidapi_gamecube.c in Sources */, - F3BDD79220F51CB8004ECBF3 /* SDL_hidapi_xbox360.c in Sources */, - FD3F4A790DEA620800C5B771 /* SDL_qsort.c in Sources */, - F3BDD79820F51CB8004ECBF3 /* SDL_hidapi_ps4.c in Sources */, - FD3F4A7A0DEA620800C5B771 /* SDL_stdlib.c in Sources */, - FDA6844D0DF2374E00F98A1A /* SDL_blit.c in Sources */, - FDA6844F0DF2374E00F98A1A /* SDL_blit_0.c in Sources */, - AA13B3501FB8B3CC00D9FEE6 /* SDL_yuv.c in Sources */, - FDA684500DF2374E00F98A1A /* SDL_blit_1.c in Sources */, - 566726451DF72CF5001DD3DB /* SDL_dataqueue.c in Sources */, - FDA684510DF2374E00F98A1A /* SDL_blit_A.c in Sources */, - FDA684520DF2374E00F98A1A /* SDL_blit_auto.c in Sources */, - A704173120F7F39900A82227 /* SDL_hidapi_steam.c in Sources */, - FDA684540DF2374E00F98A1A /* SDL_blit_copy.c in Sources */, - FDA684560DF2374E00F98A1A /* SDL_blit_N.c in Sources */, - FDA684570DF2374E00F98A1A /* SDL_blit_slow.c in Sources */, - FDA684580DF2374E00F98A1A /* SDL_bmp.c in Sources */, - FDA6845C0DF2374E00F98A1A /* SDL_pixels.c in Sources */, - FDA6845E0DF2374E00F98A1A /* SDL_rect.c in Sources */, - FDA684620DF2374E00F98A1A /* SDL_RLEaccel.c in Sources */, - FDA684640DF2374E00F98A1A /* SDL_stretch.c in Sources */, - AA13B34D1FB8B27800D9FEE6 /* SDL_egl.c in Sources */, - FDA684660DF2374E00F98A1A /* SDL_surface.c in Sources */, - A75FDBD923EA38AD00529352 /* SDL_hidapi_rumble.c in Sources */, - FDA684680DF2374E00F98A1A /* SDL_video.c in Sources */, - FDA685FB0DF244C800F98A1A /* SDL_nullevents.c in Sources */, - FDA685FF0DF244C800F98A1A /* SDL_nullvideo.c in Sources */, - FD5F9D2F0E0E08B3008E885B /* SDL_joystick.c in Sources */, - FD689F030E26E5B600F90B21 /* SDL_sysjoystick.m in Sources */, - FD689F1D0E26E5D900F90B21 /* SDL_uikitevents.m in Sources */, - AA13B35A1FB8B46400D9FEE6 /* yuv_rgb.c in Sources */, - FD689F1F0E26E5D900F90B21 /* SDL_uikitopengles.m in Sources */, - FD689F210E26E5D900F90B21 /* SDL_uikitvideo.m in Sources */, - FD689F230E26E5D900F90B21 /* SDL_uikitview.m in Sources */, - A7C19D2A212E552C00DF2152 /* SDL_displayevents.c in Sources */, - FD689F250E26E5D900F90B21 /* SDL_uikitwindow.m in Sources */, - FD689F270E26E5D900F90B21 /* SDL_uikitopenglview.m in Sources */, - FD689FCE0E26E9D400F90B21 /* SDL_uikitappdelegate.m in Sources */, - FD8BD8250E27E25900B52CD5 /* SDL_sysloadso.c in Sources */, - F3BDD79C20F51CB8004ECBF3 /* SDL_hidapijoystick.c in Sources */, - 047677BB0EA76A31008ABAF1 /* SDL_syshaptic.c in Sources */, - 047677BC0EA76A31008ABAF1 /* SDL_haptic.c in Sources */, - 047AF1B30EA98D6C00811173 /* SDL_sysloadso.c in Sources */, - 046387460F0B5B7D0041FD65 /* SDL_fillrect.c in Sources */, - 04F2AF561104ABD200D6DDF7 /* SDL_assert.c in Sources */, - F3BDD79620F51CB8004ECBF3 /* SDL_hidapi_xboxone.c in Sources */, - 56ED04E1118A8EE200A56AA6 /* SDL_power.c in Sources */, - 56ED04E3118A8EFD00A56AA6 /* SDL_syspower.m in Sources */, - 006E9889119552DD001DE610 /* SDL_rwopsbundlesupport.m in Sources */, - 044E5FB811E606EB0076F181 /* SDL_clipboard.c in Sources */, - 0420497111E6F03D007E7EC9 /* SDL_clipboardevents.c in Sources */, - 04BA9D6411EF474A00B60E01 /* SDL_gesture.c in Sources */, - 04BA9D6611EF474A00B60E01 /* SDL_touch.c in Sources */, - 04FFAB8B12E23B8D00BA343D /* SDL_atomic.c in Sources */, - 04FFAB8C12E23B8D00BA343D /* SDL_spinlock.c in Sources */, - 041B2CF112FA0F680087D585 /* SDL_render.c in Sources */, - 04409BA912FA989600FB9AA8 /* SDL_yuv_sw.c in Sources */, - 04F7807612FB751400FC43C0 /* SDL_blendfillrect.c in Sources */, - 04F7807812FB751400FC43C0 /* SDL_blendline.c in Sources */, - 04F7807A12FB751400FC43C0 /* SDL_blendpoint.c in Sources */, - 04F7807D12FB751400FC43C0 /* SDL_drawline.c in Sources */, - 04F7807F12FB751400FC43C0 /* SDL_drawpoint.c in Sources */, - 04F7808512FB753F00FC43C0 /* SDL_nullframebuffer.c in Sources */, - 0442EC5112FE1C1E004C9285 /* SDL_render_sw.c in Sources */, - 0442EC5312FE1C28004C9285 /* SDL_render_gles.c in Sources */, - 0442EC5512FE1C3F004C9285 /* SDL_hints.c in Sources */, - AA13B34A1FB8B27800D9FEE6 /* SDL_shape.c in Sources */, - A7FF6B6723AC3BCD005876C6 /* SDL_hidapi_xbox360w.c in Sources */, - 0402A85812FE70C600CECEE3 /* SDL_render_gles2.c in Sources */, - F36839CD214790950000F255 /* SDL_dummysensor.c in Sources */, - 0402A85912FE70C600CECEE3 /* SDL_shaders_gles2.c in Sources */, - 04BAC09D1300C1290055DE28 /* SDL_log.c in Sources */, - 56EA86FB13E9EC2B002E47EB /* SDL_coreaudio.m in Sources */, - F30D9CA0212CD0990047DF2E /* SDL_sensor.c in Sources */, - F3BDD79420F51CB8004ECBF3 /* SDL_hidapi_switch.c in Sources */, - 93CB792613FC5F5300BD3E05 /* SDL_uikitviewcontroller.m in Sources */, - AA628ADB159369E3005138DD /* SDL_rotate.c in Sources */, - AA126AD51617C5E7005ABC8F /* SDL_uikitmodes.m in Sources */, - AA704DD7162AA90A0076D1C1 /* SDL_dropevents.c in Sources */, - AABCC3951640643D00AB8930 /* SDL_uikitmessagebox.m in Sources */, - AA0AD06216647BBB00CE5896 /* SDL_gamecontroller.c in Sources */, - AA0F8495178D5F1A00823F9D /* SDL_systls.c in Sources */, - 56C181E217C44D7A00406AE3 /* SDL_sysfilesystem.m in Sources */, - 63CC93C723849391002A5C54 /* SDL_strtokr.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 00B4F48C12F6A69C0084EC00 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - PRODUCT_NAME = PrepareXcodeProjectTemplate; - }; - name = Debug; - }; - 00B4F48D12F6A69C0084EC00 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - PRODUCT_NAME = PrepareXcodeProjectTemplate; - ZERO_LINK = NO; - }; - name = Release; - }; - 52ED1E5A222889500061FCE0 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES; - COPY_PHASE_STRIP = NO; - EXECUTABLE_EXTENSION = dylib; - GCC_PREPROCESSOR_DEFINITIONS = "IOS_DYLIB=1"; - GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = YES; - GCC_WARN_STRICT_SELECTOR_MATCH = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - HEADER_SEARCH_PATHS = "$(VULKAN_SDK)/include"; - LD_DYLIB_INSTALL_NAME = "@rpath/libSDL2.dylib"; - MACH_O_TYPE = mh_dylib; - PRODUCT_MODULE_NAME = SDL2; - PRODUCT_NAME = SDL2; - }; - name = Debug; - }; - 52ED1E5B222889500061FCE0 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES; - COPY_PHASE_STRIP = YES; - EXECUTABLE_EXTENSION = dylib; - GCC_PREPROCESSOR_DEFINITIONS = "IOS_DYLIB=1"; - GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = YES; - GCC_WARN_STRICT_SELECTOR_MATCH = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - HEADER_SEARCH_PATHS = "$(VULKAN_SDK)/include"; - LD_DYLIB_INSTALL_NAME = "@rpath/libSDL2.dylib"; - MACH_O_TYPE = mh_dylib; - PRODUCT_MODULE_NAME = SDL2; - PRODUCT_NAME = SDL2; - }; - name = Release; - }; - C01FCF4F08A954540054247B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_SYMBOLS_PRIVATE_EXTERN = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - TVOS_DEPLOYMENT_TARGET = 9.0; - }; - name = Debug; - }; - C01FCF5008A954540054247B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_SYMBOLS_PRIVATE_EXTERN = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - TVOS_DEPLOYMENT_TARGET = 9.0; - }; - name = Release; - }; - C143576F1F4C4DAB000B792B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - C14357701F4C4DAB000B792B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; - C14357751F4C4F2A000B792B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ENABLE_BITCODE = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - C14357761F4C4F2A000B792B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ENABLE_BITCODE = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; - F3E3C65022406928007D243C /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES; - COPY_PHASE_STRIP = NO; - GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = YES; - GCC_WARN_STRICT_SELECTOR_MATCH = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - HEADER_SEARCH_PATHS = "$(VULKAN_SDK)/include"; - PRODUCT_NAME = SDLmain; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - F3E3C65122406928007D243C /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES; - COPY_PHASE_STRIP = YES; - GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = YES; - GCC_WARN_STRICT_SELECTOR_MATCH = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - HEADER_SEARCH_PATHS = "$(VULKAN_SDK)/include"; - PRODUCT_NAME = SDLmain; - SKIP_INSTALL = YES; - }; - name = Release; - }; - F3E3C7552241389A007D243C /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES; - COPY_PHASE_STRIP = NO; - EXECUTABLE_EXTENSION = dylib; - GCC_PREPROCESSOR_DEFINITIONS = "IOS_DYLIB=1"; - GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = YES; - GCC_WARN_STRICT_SELECTOR_MATCH = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - HEADER_SEARCH_PATHS = "$(VULKAN_SDK)/include"; - LD_DYLIB_INSTALL_NAME = "@rpath/libSDL2.dylib"; - MACH_O_TYPE = mh_dylib; - PRODUCT_MODULE_NAME = SDL2; - PRODUCT_NAME = SDL2; - SDKROOT = appletvos; - }; - name = Debug; - }; - F3E3C7562241389A007D243C /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES; - COPY_PHASE_STRIP = YES; - EXECUTABLE_EXTENSION = dylib; - GCC_PREPROCESSOR_DEFINITIONS = "IOS_DYLIB=1"; - GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = YES; - GCC_WARN_STRICT_SELECTOR_MATCH = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - HEADER_SEARCH_PATHS = "$(VULKAN_SDK)/include"; - LD_DYLIB_INSTALL_NAME = "@rpath/libSDL2.dylib"; - MACH_O_TYPE = mh_dylib; - PRODUCT_MODULE_NAME = SDL2; - PRODUCT_NAME = SDL2; - SDKROOT = appletvos; - }; - name = Release; - }; - F3E3C75D224138AE007D243C /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES; - COPY_PHASE_STRIP = NO; - GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = YES; - GCC_WARN_STRICT_SELECTOR_MATCH = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - HEADER_SEARCH_PATHS = "$(VULKAN_SDK)/include"; - PRODUCT_NAME = SDLmain; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - F3E3C75E224138AE007D243C /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES; - COPY_PHASE_STRIP = YES; - GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = YES; - GCC_WARN_STRICT_SELECTOR_MATCH = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - HEADER_SEARCH_PATHS = "$(VULKAN_SDK)/include"; - PRODUCT_NAME = SDLmain; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - FAB5981B1BB5C1B100BE72C5 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = SDL2; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - }; - name = Debug; - }; - FAB5981C1BB5C1B100BE72C5 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_SYMBOLS_PRIVATE_EXTERN = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = SDL2; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - FD6526640DE8FCCB002AD96B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES; - COPY_PHASE_STRIP = NO; - GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = YES; - GCC_WARN_STRICT_SELECTOR_MATCH = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - HEADER_SEARCH_PATHS = "$(VULKAN_SDK)/include"; - PRODUCT_NAME = SDL2; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - FD6526650DE8FCCB002AD96B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES; - COPY_PHASE_STRIP = YES; - GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = YES; - GCC_WARN_STRICT_SELECTOR_MATCH = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - HEADER_SEARCH_PATHS = "$(VULKAN_SDK)/include"; - PRODUCT_NAME = SDL2; - SKIP_INSTALL = YES; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 00B4F48E12F6A6BA0084EC00 /* Build configuration list for PBXAggregateTarget "PrepareXcodeProjectTemplate" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 00B4F48C12F6A69C0084EC00 /* Debug */, - 00B4F48D12F6A69C0084EC00 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 52ED1E59222889500061FCE0 /* Build configuration list for PBXNativeTarget "libSDL-iOS-dylib" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 52ED1E5A222889500061FCE0 /* Debug */, - 52ED1E5B222889500061FCE0 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C01FCF4E08A954540054247B /* Build configuration list for PBXProject "SDL" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF4F08A954540054247B /* Debug */, - C01FCF5008A954540054247B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C143576E1F4C4DAB000B792B /* Build configuration list for PBXAggregateTarget "All-iOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C143576F1F4C4DAB000B792B /* Debug */, - C14357701F4C4DAB000B792B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C14357741F4C4F2A000B792B /* Build configuration list for PBXAggregateTarget "All-tvOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C14357751F4C4F2A000B792B /* Debug */, - C14357761F4C4F2A000B792B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F3E3C64F22406928007D243C /* Build configuration list for PBXNativeTarget "libSDLmain-iOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F3E3C65022406928007D243C /* Debug */, - F3E3C65122406928007D243C /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F3E3C7542241389A007D243C /* Build configuration list for PBXNativeTarget "libSDL-tvOS-dylib" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F3E3C7552241389A007D243C /* Debug */, - F3E3C7562241389A007D243C /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F3E3C75C224138AE007D243C /* Build configuration list for PBXNativeTarget "libSDLmain-tvOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F3E3C75D224138AE007D243C /* Debug */, - F3E3C75E224138AE007D243C /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - FAB5981A1BB5C1B100BE72C5 /* Build configuration list for PBXNativeTarget "libSDL-tvOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FAB5981B1BB5C1B100BE72C5 /* Debug */, - FAB5981C1BB5C1B100BE72C5 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - FD6526990DE8FD14002AD96B /* Build configuration list for PBXNativeTarget "libSDL-iOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FD6526640DE8FCCB002AD96B /* Debug */, - FD6526650DE8FCCB002AD96B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; -} diff --git a/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/All-iOS.xcscheme b/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/All-iOS.xcscheme deleted file mode 100755 index 94a754229..000000000 --- a/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/All-iOS.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/All-tvOS.xcscheme b/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/All-tvOS.xcscheme deleted file mode 100755 index d73ba803b..000000000 --- a/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/All-tvOS.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/PrepareXcodeProjectTemplate.xcscheme b/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/PrepareXcodeProjectTemplate.xcscheme deleted file mode 100755 index 67cdb44b1..000000000 --- a/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/PrepareXcodeProjectTemplate.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/libSDL-iOS-dylib.xcscheme b/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/libSDL-iOS-dylib.xcscheme deleted file mode 100755 index 2534ec732..000000000 --- a/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/libSDL-iOS-dylib.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/libSDL-iOS.xcscheme b/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/libSDL-iOS.xcscheme deleted file mode 100755 index 5379cdb1f..000000000 --- a/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/libSDL-iOS.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/libSDL-tvOS-dylib.xcscheme b/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/libSDL-tvOS-dylib.xcscheme deleted file mode 100755 index 2f1974624..000000000 --- a/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/libSDL-tvOS-dylib.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/libSDL-tvOS.xcscheme b/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/libSDL-tvOS.xcscheme deleted file mode 100755 index 195a0824e..000000000 --- a/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/libSDL-tvOS.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/libSDLmain-iOS.xcscheme b/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/libSDLmain-iOS.xcscheme deleted file mode 100755 index afeddaa05..000000000 --- a/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/libSDLmain-iOS.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/libSDLmain-tvOS.xcscheme b/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/libSDLmain-tvOS.xcscheme deleted file mode 100755 index 6d5731dfd..000000000 --- a/externals/SDL/Xcode-iOS/SDL/SDL.xcodeproj/xcshareddata/xcschemes/libSDLmain-tvOS.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/externals/SDL/Xcode-iOS/Template/SDL iOS Application/Default-568h@2x.png b/externals/SDL/Xcode-iOS/Template/SDL iOS Application/Default-568h@2x.png deleted file mode 100755 index eaea96e9e0acc43f7db73c6cbcb8b6165dc6a0be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83791 zcmeFYRa9H;w>3^_ixt=4P-td$0YhwdR~_KGAP9l?d=?@Gvki2vn36bTBY5KVo1! zamB#`KJky=0NychU6l<7*ZO_z>GuMdLO05*9T+p&<1`I}-*56NZX{ z+*{xI-Nm_N6Lj|G#lf8WvcqeNH{o#@D#UA?IyZ_xr(%tyOSjxUO9`zWesNdlI8plk8@mo`Pj-1K+8GRz6Y zQO}>TA&#>y?poVt1baaWz-v9ne1|v+c(G%|{QC5dYsi_}^Xjzq{;zcEtbB0`Z^Nx&IXcsEp+>_QN&ytx#h8+TVX$2h`y* zteYR-zwT+OwK-Jfajtc!fI(_O*bBUm&!0aJV8tY5i}03xlAC_k-;ltH8!hlL9AZ41 zOUw?BvWE7?zgAFC6uJ*p!H*U=?MnBS{XP-@gF>29oC;YNMHU8`1H(#*+5c;)X6f5K zsE2mepTCiw*UTzOW*9Sd)Lg#4WpR+AM}O+xE%E*LH*(>B{oFIcy8~hTIG}@tsO+~k zIi}WP3H^q_{``4W(WhJi*65D(&#VH%{*Ta9nU`*z_m!9@WUr;z=$|eykdSL*kdu(i zZ9Mw(U6xsew3EFM)pz&L96^5#&;0))k*L)uPUjfR1cXh$jkLdcXYCo~%(SF%Gf7X$&}s&rQsK~-6KZDMH`2-feQJOF z@42f}W+1PcXeM)-o8kOlw@v@-;$og-@pzUAYeLNw5FeV|M&$XAe#4P;f#~>@w6LiCAC8dO|{pgL1#$t|EG19tt?Az2|($CCd zdegZ1IF`8wH%?9>(aGzu<6IT|4V^@X#;6@I$nr;O?3b9QKs-^6lMdFZS9DiSsYbQ8 zIptzunW`3~P!%zTdMB=t_|)*y8AX!BMA8V7Qq8mx|75+QNOa>{wbz3MQsIHA-h6A< zikU-P5K7T`@@m49WNX;yWP?lLx5o{AjS^4b_n8LG$bzxI4UK(W}d%hbX1_I z6rww0=Lt0>4aBlugQB&8N1PhA|`HB!gZ(jBSf5uuG&Zfrg&4OWZ zmUFXZah6B}%58=(1_tM&V{&R|FPb+@6ls+gi!UlNFCK@X>^NNy@D)xCmYv?X)T*pK znen17Pl*(gSF!N5G>`QV`#Xu0se`yZgwn8~`{rbG?im)_DKIwP$E!YOb(>GT>mBE` z<@e^1&vk7{>USRppfh{!5i2?FpKeOgWdg4A;nzxw4099>5aVn>cG2I z`NU<1#d9l=)#z077>jqYwUZi)CTJ>VV#16@4ducdik!~BwGx4p9M9wmT z+5BdvDg(dKDdLrk+Rp^Gw2?QQl<73(RU!UKbKAItyO~!0?ob_Ott8MIE3=A)dJ>j8 zR$iyuZga4@Gk5t>eEThZY%#5Z`DZVpQSdRP|@nQ{Nn= zT9fZ4oMuq-5}iUljv%vd>ccD6Hm;`p;CcvBk7uj7a~TnQgIAvIA8FGZEBy_ftCDNP zdpMa-bTq{#qXc?=DffHcCR?wl?^Gc!W57+2x)yhCZ;dr?=3=g--oWTRTa2aDOhE!d zz_j=c7exhqB$ry|?HJIAm={3;Zg;MAhQyTE0^)z%(Zh6WH#zOZxsy)f+0YWY6SO*W7YD zEzWDw3hcCt^{o_v2=$lp0`Po;eggSubmJF1Kh>T<8jSbx?gCns>3yIdsd(y>oUFZX z`qBNq4Ah7MgMQSk=!Qj(d!zF7Nk6)3HdVw|g}*zR`U~yukEg9lRJhcZ4K=P|wjY9H zOBFp>5pwcP{f-XbdUsEsl-=NH2cDeZeM<1J9$7a?!N>d9oNb8&zSL>xIlg=y4Ud0t zLS4)N8s|j(*Ok;piAK-{){q{2q*UU7yF@T}ORhv6#w1FY!!7il%TCqc(czMB^1-S9 z>Gh-H9j{T-roq^9_~vlWQ;9_x$`!Ea+;FRql(R7j~qQ~uh6ty~05sL~e$m8vycW168a{a^*uaT|{ zWwx9@krv?@`=jk(`Ph-m#skdLB3*T}f6d24u-k)KV3CtCfZGBcy5Dv?N2qIaQT%*2 zWF-x(d}Km}@HjMad9yq?f?>BT5gu61O*rVwP!I@X!cjb@Qx6NKM0ojRk%`F`WzT%u zB?u3MUESRPNj5bik!oG=0z+FJ)Mt=7Vo=b%;{r#YHmY6X-VQ`Z8kYL_9xVvQ?m%)R zWJVNTXvyS*@-P~x!r%h4sXcntBSS7(s~h#BZr5w?MC-m9EM#etIr~*ehM6@4*?r9> zbb+^a|McNKsgKSx;XZ7{hPkfIGBdP2$ZTF{p}^iok>o|pEyG1?Y|>OGd&T+}|~o#iN=|QcA1Tgf#}$5oI*uAst-d1YvvPmU|MT>B>*n7$Ytz6x;c|G>@8kKGao&;6~l0o?HTN)9Py51kKv%0 z__~S>qkj$`dQ+?yRq>O&swK!PyI@3A+rk%h%*k~|NHiSh;T~*){q~WoPb}&)Etg}9 z_cbP(m)G_BmZFTOl$1?ne%~r><}BzX;-4LxF1x-u0W70zhBG~2{f3r`?(x48)w*PK zIhh-Wq0}}-FTwnhD$HqW^`bG)p^yp)?J|+8Q>+Q^#p-I0la}>1N1)QxhJ4{#Tqt{t zeZ>2}Bcd+_KD((i!#BojUz}@cRD~=*xw+5~l$0J_zXY8KB?I^WiHT-1Ua?!RNpPXA z#5~};baHNFUPfYZhM>(&=7g7f`JlCsI`o}DZ$;f)?&97mHnYJ>BQFfKWEI>N=3YVNbAZ{sX%MyL@!ADXf-nQVi znrg<>X^rK^z1M>Fi;1hpwbr~QjU5N3(j&vCU@a-nEG5l_zS~{l)I%^#_gzgWCeheX7 z;G36y1J#Hd`%yOLJ+Ft#p`0Y`w}*^Pplm z#6@Mr7B$?NZ}GR8dx%X=M3klwQniI6G;apN;jy!Mvd*kVGdy4s_0Tw6OU|s@oI!dciz^nXlXHTyGSMw;`+-p|beh4u-N|f_JtUVM z16DIq`V!H4Oxf(=p z7&s!r|44H}+k==QX2ne_E23xp1@U1${MN>nr!3n^b)aD={AHhR3%!U!#9C-=>M2{G<%X&$Lr zu2zH$K(HtL%O%F|Js3e?Z)oe*30)$>>(2*XsKKIBMN8Z3{JGWMW10)b4D>zAiInFp z|CF5WU;dbhcik#Y0WgSh7rni=(%;rAF`>c79~Eb!zE@GlA322cLw|}HpWc~W9#3C9 z7Tw`lo8{Nz(cz)ETIj$PEbIDN43HH6OSx{FtUt|^B)zz7n{4Ts?Dqe*yy`U8h*HJm zYAUKrw5{n{N6^lYkK4t*M-UYbkt;tS>)VbsO#1Cx@VhIr*Nxj3HArJT!l0e>=j^d*d(EqQs&QH2 zfxKH`e0}H@eJMGVjGNd*@+kVHx z{Swobq~x0?Xm>|qmqL^R@q3y^%A38M5Y;2jrTDGWDYtWM53<- zT!IlpF4+ZR4yeZMzppedV1Wz`t$j(gCu4=8{LM;Dy2`|_OCTb%4z;*xQ6yVZxMN|I6>7{Om@N(swz{397< zPe@&|TNRp-FHrV_K2#g+&HN4KKe1fJf;Md`3mC36MF~=)A@4L{{7~ z)Eh3UbU1sW*Lw+|^*>WnSQLHosJt~WrRT0%STYh9B~GZ3@|Nlc#^v_b&7*(8ddS6$ ztc6!KOa zj+W_ktWeP1!`tt)q;4SPRY8jm#_357mL3P6y5rC34M0dd*#0!AJNf z*fs!%?b`O?wL}uSw4BqB=_b?3xJTJ88JOkIp^t9P1+=Fr-GM8VBmR8b#g~I-Yrm47 zp_=h-DcE|v94B{QCsR+~I`Z~$gAedH=Jt>0w@+#$g8(w(cRds@q{k5oDX0wvmCO>S zlcRCM7e1pV|f6dZHa{BZ5q z)XK1@31`BepsEF{DiPczOg!81ym1XoTxggZn?b_~SlwQU;c*!Gndsm3 zdB*j>#|?$am+Cx+T1<=X)HF*&1%NlYnT{$5XAkD`^*E}e)J41WOG8^j??Nc`e#p82 zC)vbjxp|{r52sH4wL#TvJ-&6xczO%xs*-GZptxm-Axzc|Le7mxO--0!D3YHKB+{$v zx>s*~O3v@%9}d+3_;{ora!dde+Rp+n7l)VXT-~-#uh%`Oc`(TuW0_qoN?s+g0^&pc zLD z3^dluRk-ZP5zC2{R2qK_^*JT}E2w~#P)Nhb_Q(pIXvA16BXvH_KaD*9^0ndwkbFa( z3VDw`nkLQC`xlEK)8lZr2 zxn#4Xon2BbUvc)u4=0cKe%6LU=DJm0ffNl=&#>ung}d5eo8k=~p)qBoSKomRWjQ4{ zW+nlSSu=;^QZIx+`U)4fNnhh8TUryUf2sWFExR)B5XP_SN*CbTtZA_1K=uN+4s!IT z0}x21CnzwMBN;!pc=(0FrEW;m%6K?$2TD&Bnr*Fw800`lCuq|bs3xqWi-k_eR6OY&VH1V zd~(YfWjODY$hz%d@vMTo3lK4@UHHt9lzkWRx*S_`!S#FB&l_vwc<#HFAD{(O8gvwX zu?rJ)eJ@dsx0hn==!1}B?gJB5MkaufTDqo&@638ONq6#(KO$>XJ8tCmsMh_0cU6OR znCb(q!FDM>sIJqtwJd(x>*`w7smr!GE1L*oTB3t#8V>-l65i?_tT@)Abd%4%HswQ! z`zeY~TDT|?;GL5_#j&?*SNdC?0Ri7e9VOQx7y6j&l*ey}UgKSH1GL@YXB4{8e)jIi zGxx&-r@E#~ZDo*x=XKC+@Nb*yaM^UcYHXyY^arXpu2n0yfu zJ*A5VR0!EiR5?H|=^CL*a2%0x_tw$Ug?r#=V&Fd+CP{k2fr&uqE9nu+u z?{0olQeYlzV}KM%ic}B}%m3F4F#2J$XGSZ2a`T}6=vdlh+rf}B+$0rH-(@nf+JcfT zht=bRWc2d%I0Pg`~@hoX+geleW!JJm17 zh)cP2!X9I!@pZ2BJ8S(x8>#ENj~`kO0VRYGapHTpC50hMN!`~I|4NjWr?)sos~j@< z!`oGav{k`3i1Q3%rEC>&Dwc;`C?{9+lj&4vqZ-^14p7L7MMP3nz$_ zq13@CJF~))GUY8EVS&@A^*j}ao)W_IRuBeR^5JxbT9$Z73KR5P!G&+Aii7f4>h?E@ zCWCAz3)?>Gp2dT8AX`>?)3#{&LSuvob9%ZS9I}Bmqd(o~Z`(D7xpzyxgwl6EZF4m)0&Y;w&Jdl7wiJ^x;Y`7rpHdaaeWvf{?4Gef4X% z%xo3>CC0CgrgYV5TC)xUpq(9BFR7UhHz%OhYRS4M*wiBm3N&t+y6c?xg?53F4*AJ2 zZQ5@TL#qp8LDseZk_Rwpa>@xf<5>cGxE)TnHSe2l7oG`dlM4w6^hTp1{dV(Ez&!=6 zpHKre2`CGFb(MR24BiLVLSN$znrxl#yJ?pff2Qx^y1#}ARG|U_FM8WU={shnXZu$9*V!M6*%n&4VPwIlC+Nelj}P0+w-`cO z`gN_OzQtpmRopRG3q_vyUrA)JmF{km7sYZrDr&YK2VX>`upNJB=}n;Oc7#296i zN&B)In_@O*!^X=p(Ke*Crr_$2jGqIq*5!_=dG1?mG0i{`Chtu)0BIbU3gya~iB05se9yuy-85QTAd;#l z*5GX!?l|NqjHIXQ>+sqgTeh8R61jwZV^zVy4qex@MNa4#I3A)F`7|lju|B zDl4Z}!u7S>Je^Yk{VLiV3F`Ciw-Kz7-1gRk4=S&0wWt2IXZJbsuO9GcDBB_aylN&f zs+~EK2v-);{}k6j4}$p^(~pE;QoyQjfIYBcjN`1C4OlR0;#W8!4q4=AoY(n zOX!6n#_nm5sqYy%*N$=XFV{Jcd=~2@r#0a|eDf$0cCuG4)6sD!5!21i8)Z8y;-jwXqh54Uh!;D4+mka)hjVoz zm#Y{@hvwqahSuKxpZc^I*l^@|-@jj*luQE$nTHm~4ozl40Le&>_)|(mY+?z8aDJfX z_r4}T{MIgA@gJqvA~T}wR{3-g*&RJc5=;;z%cMdI%oK?}$;H`9BxRj1SDkyd??Ta) zHFX2ack70PBM5iTU|CqUXcRBiiPLmujbv*xBgTkb{M}EiH~ZHC_11|a{y>K@54yr` z&!d%SmGN#>nLeqArMwt{p&|t`M|gw35I=cjPMpLlP`0yXT|Fr&!w3KHJz>ao?GNil z3uVOa6~^q|x!=Z~kDV|Q46Al@XofzTal4wPVnhXKg=COj(0`XT2&}ATG)w~FZ+Aig zO|b}Bw75s2sC|tkl67@=80kgccX`k_P-OnwiymO}CZh6y5WXR}E|}4Aq+SF~?k0Ax zJ{Zqyq=qqk-9Y5r3p&zz1)q%5-kzt3HP%!p(DigNUE9;u`(Q6<9lHuao$uZyeb-IE zKG!(vIta-G3hWa`-~8K4m!;O=-)9Bynu6fnASZ58%Z9cV#rhdbNOecb&QMoI%3kR) zbPj2}X_)#N)C&-=PTBi4pWBt@52)GI#{g1E0uA*8c0W!vMr;Vl@6ktK2UepESO3%cz8XAqiw6wxB z1b79{CxnE)a8mfUt)`W~@AlwfkPz0Gp71=(A^7N)1;~9Xog0p)*Y{;VAD-n${j8*U zSp0B@3lF(`RLItg^UV%yVQEZRDR3GD_ik1yM&=)2hb1Hsvkg?l8(0jF9Ht(*(x;hB zcX=&dXzmzp%eNk2cX6QjV}P;NY~><#P3X~rCk=Pnkj}6z$L2}c9koluCsq}ul9#>3 zw{v3c{WI-{IQlN!C*wP|zWXWlhRY>IUhm30sFWVNTpXS5Hx+72X_0c%0!>%5-)$W8e}XD#ZU@g^@bYlGZ+5=B4(4}Cl{%idsV7UI zj|Ian=c@VK%$8Y`E#Cn{R=1>_dT+C__~-t2GCj?rqz$wV7_ay5pXpa7Sbo!ER>42p zG?R-;nLcX2A@_93v|x^fgdSkOjWuMD6&!guJGhsgvdB^8=$o3NZ8=<^a6+!Gvk;xE zQ?-8_u(}#SK2vb()Fq<(6S`dd$hCTG{WfK%CLoB^(iOBfm7V%D+ZlcnKYWrFax2ny zz1{`Y9||LB@`QJRMQd)P=d&4F+ho&oo&f;_i=++Nu&@8CUjsO;EK_q^A}q3I2W_MZh@nMIry?|pIgC6Np|PF&9@I{W=q43py|PEj*^;> zKK!YNhr_w3(pPWIfdlU3*?S*nIG42S%F4a{zx`J)e*jQJi^WnKeIbcM`c#HS$Zj_$ zshOU-QfUDRJHu_agY&@PtJ~tYgHP{oxA~G;Nz4+5toT8CVt0XoUIm_}W2@LQcxQD7-ooKNx+Bc>&OoMLd*y2Y8WhF;^ONV_6 z`sX~T4Bi{}1tU98q+}j?`2N^k_@Tz}s1d7U`9ix56oaO?AAvm9%x=z-=`I-yW}+S^ z8TuJbvwYc^A9#@Y;d!zfwwK{g)8!)Mg?*g_FiZaiR$cy_b=raQ`KX!kh1J0ackyI4$;d3Mg#=j8@V zLxV8a`qsaaklpP4>$Uk&?|~6BV_{Ia9xzv31rw$|jpf?OYHj$PaiR|n*rrh{rUk4B zTUQ-9Ac}=HTPr~ZH17vgW7_iO`km6OtaLOa6fF+o8q&+xC_*+%Hh)fEbW>N5A)rRk zJJ}?#Xp#ccJJB5tiPn2;Q_c)%Uo9=y?H1tnoZ^!i4C^D*=A?9$j(7j5+&X3h@ro02 zfv>IhF|ZiB0t)i+jR(IWM^(r-=={unB}PNrJM?Z(F>5sS-DY>MnK5O^`3T=}cDb~i z=ng?$-uzgYOSNX}6f?|Xx5I)!S?QLu0JBy#y0Rl`wW!A}t7a>x&r=`t`qW>h)H&X! zxa-=6tWPuYWT@bI&nv@nWPBPA21!J0j5pP-7K&3wr-jQ0K-{8;jtb8BX`x3*J z*JNXcucg|$IOZ7?((n&E!Iv;N(Q&S| zAy{)hhZ#OpIB^s1=`RZr`J$Po6qcaRyMDDa@nLgEOS-dhXy$Uj#dK{$3^9HYcIxQu z=j!@CGUbdQ_-@TH5EUB_Um~Vy57CkJ&M|J)BF7UgEF-LQB_; z={%ztbx!=1N$M-+zK~0;hhdlC3(iKT)S+jw!p7NhSChGm>Y~Y_sW9d!i!xrw;cW)~ z2VXPT9qI-BVJk5PZK>#xW2S;O6b;+2hdk0I*X3Tnij}>_1A5AYafwP1>gyh_aUA7h z4t#pON1*2wtkNjFQZ*xxSCX`qpuXsut`7^*<3%46PS*zLP>=oF5WRX~fN=-#HWa+2 z3toOHU{y_x2N-@#U_f<=&jI%Wh6F(%s0A}b{noAVBB!oOnUgLDn4NZ-9*`M~w&jad zP#9_!fJJfyaaRT*rX`+VcyYQsUtck`fGiKYh%NB}8nU=oQ2V`1ZS;hF-6IUa6$>dS zj({Kw-}V>Csy;33Eta}o5y%PH;2AY(ctxz}8}_?~wuq#D=aE?b*V~D5)0N1OBM591 zL5LK1rwZU%T3T9lP0gh_aqzLo$NIL9QGs6p{$iOzx@ZbFU1k%FV2}ABHcwt;O4_S}*Bw}^)n>jf_EiV{pPwQI!NF%j}=eUa3rP4~o`V_?L zPtMt!c`#_q+^oY=&PwUILX=MO)$7w$#k%iryNGl+s3P)1%t6&tc4L1%Rj^n>0Jq0L zB_5gO6!O=>jXVs`zf4U4-UX6xohw}Y`-l2TC%b09KQHjuoqAbR06AKh+e+N;7Dowv zq0330o+;inr}oUGu@0Y=ag67F6pL-R`P0}IthMEVal8@&peUgURC;{#i(G4hLj5IL z3_!-Ay7_!m!Da^3nXm+Qm91-;E2jt(Q8ixFs^7k=aK+pHqph&M^vt=w-BU24Rj`A$ zh_9lm^65)z&4b;SHWkPGnie@XcbQWDYwWs~Q|6N2b(ocwFXrsLIrLvuWoXShO^J1=}QL+J<&Sl+XP@Z=hfsSGLBy9Hb^-LzT;Q|2jx(i24`;6 z#;r!dcdWsl>o`Qg`>b^k%Ooq`%zExvz_pUW#kDS-R-Tom_2I48tj__?icRZ)UUjYI zyuCtEh{mg*38+5{_y8s6rd9SixAT?=%Lx`3&E0fywn?gV@YAQ5F;49zNn#^YM>|Ma$REwPcPl5UsbA4@Zo_qX6xDziXC6gd6H}ES{O! z<;3FKmL8v;Bl?}|vx{x_4XQ=G+f5zlgL_w={?cDd0S8)Ipr~4{&iA+dMUS#O(4ePZ zV#M2S&WbJ<9xGiUWc^a%vKM%cw8o4_)Ue~mtU4p3zJ460r=L^0lS&-L4-lwS}cC>qK0rM(DdCPyZl*0>LI2hjubSX6`M6r|Y1Hn}=(c zt8F2^U>iC3?*I*}1|p8b9@3z{YL+M~lMI5+yUp7PnQb>SPMoZt+^JE zQpn~2fCQkHnzUBF`e~4>$B{H-6KOmL2;hK-RMdV9j?b1FeYnYopX{n_zrK^3SgM!w z5_M|rz|m?aD8ed5tdBLfV*E%)2-yF^03t^-LU^W_IdxX*$*fcGig$;EErL}5fb>)D z8H~XXlK;*oLr&t`{~Z_>JbUA9ZJryB0!v*Ca%>U}A6_Xj&_PpafH^O2M8On6FK2-k z1BOor`QeXL<^HAAeaa+rV6qKToHT~e4ZReII2(}ws)`=(svqz2-DcWlzDr;z6qPvQ zm-S&`t@cFC#K@%2YnT2)>lwFDL%ZQ5Qabp2T>L)MMS8eRVCwPyD2DPprcLz{%@wvf zKwW>mfH7utRqo0iNXrv{zBHE@-t*&4(Mdcqvi`n9EnBvSVa!1RB(QY5I-n}H%`u_; zfTw6BwB!n(H+lJf_jvif#|JDSJH(e00vHFR)I^i1)sKc4k6*T&eC4D#wvvu_C{SM3 zs%JBqo9*4(upcRHgzLR&tQ)sbqd zNMyHpqO;BcSa?3WhVR?OQPHQAVg;G?7n5}yX?Ul1ADN(A*m6cnjD0o8_kptAZo6_C z&Y{spDeAo&9!gcGpArg26q^qJIQfvbyuc&v!KEGHMYMT^mrDmmWmHxXUOVG|EY*Z- z7PT+-I$5Dl;smxI*Sw_*Or|s^FGRW%D87j)sFA#8=RR*h5{;SgN-k)0gXBSdz#hI1 zg1=&pL`yjNkctb+s&T;cbvSi+sQk9$gifzza&`zGchk%MqvXdpZA?P}(@aO$2m#%N zv*7ujQ>K42;KHqGdS8{NB$L+R1)SZXpEh? zysG9qk-g7s2SE8ZaEF%(07C#vpy5n`-p%DB*Bfqzxv};{)9mLLmnPvWQCy^hv^@EUm$=k~Bb?()GzooXcL_uWfXi_!PSmMuv|Ul2Nj))9!* zfL31D8P){Tb}hsK5j-pZ=8YI@C9|gUxmXMeB#Yw>%_0Xaqgs0eGw`u(3URs;QsN{^ zO&Lo(?b|Jjbi)BoA^3wIRr* zK7w?r7LXR`L<5clBjk7VjREC4_cLS_F19qc7QjhDgLHu*6EM5Bs2*b&u)NO`lbIod14^9hd$ja>qPm^_JErer4iguTO@=JKC7}RgD7icJ8koV! z9_%|uirT;k;9F5!QdU=1~$9olsRh>ea zf>vr+94b0~QwsqU%@ZMAz<72S4EQj^j#Q~P*XF*2UORht&p3x#zkv+F7@$GU+p!@ca z+YRM<(d%4~+Ntg1_;%kMvOdCUz*Je0IV$xf_9>us?PPj!7IgOAKwZR%l)M>y|G4N9 zDO}-y5R^_kG79&v)?m?Gs@CV%`}!DQLwI3|=Z1*YpEu}+wyM|p6J2uxNf4}9IqxOo zG%=&wzf;d{hg@XT3ldt<@mFP>uaE?Mzf!Howl54#kt>(0;!N~+Y8PV~w4BI`tykEH zlOKKzJk7BXBrr=5r1s%|?m(g_P(6X7lj09@%!MU){4j4aY=F##J$=D=gDX~Li`cq| z4roV=^_-ZHT1F)U?|8N0+`EEYhY1&xoWX+K^`s&Z!4<#-PqtDvilKN$C z+w%mQHbvuUUpit|Y$O-yS#dg7Kcy43f5=D-u^0J^!NNk08GA*y7z}S?Toy#x66j%E z$|)BkS&~(D64|)KVf*mhxg+};$p)A-7+y+Wf9DyiBnve#m|GheQj_vtzBiX%X?4(l zk+|p@@9vaY>K_Z3S(Me2rfCck+)Mzp<(4JGe_#!a+_$4?5}f_&79S5*jT6uAUDe+n zh7lv{Dj~6^vcHKw#p~mlc@JH+NTOF9Qb;#m5z5c2@ez>OvrD<{@&ji?maUy1gkhFN zURli>GL}p@EK3pr(Z#V`VbV<#k-DPE9jv%z z7YnAgE$|goI>WGw#HECSPr_|(*lhZ|-+-LPDSF#wJ+h03j4y6QDw-p{EluejN=^>6LgKpcR-6O0_X+V&ay$y z-4S8B6oiOLc8cS!pzRSJMA9iu4HnhU1al;3b$FO#ETJk*PDxcjmD%00;@h+g0P^%V zPE;2q0#FR^Z=KQdH`6)mZ>^eAdGYLhZYGg?#vwJp0g^q>K`^Y6 zJG09}h}?ZH9)xLSup-kW>;2#d_>1>*30(tva-IUSKLDTd9j>!%cQRDRDs~3Su3sP1 z=$Du8;xscfs$(UCn(pqE(me1Ba}hoG|m*>lr^l91>Vy>F2FK4kLb0AwvSlw8mfrqDR?)Jwo)TL>CuwT_ z{flK0eUBmDC5x0o%Ww2H+B7f0=W?D(Cfljbh})Gqg86IIUo0U~khy0==a%b+e6#3x z@w=B;{CkCtG$1Tu;wOSHBWT#-8CI&{!3hVqTQ5E_#jF(Gw{Crs^oY%B_l+xm_*z3G5n1~P;{tB6Yk!Hax_9j3-0v|q`!~Ucv5T?kigghe^uLyV#F3>5_qg{8(WD>5> z2#btAur~L~_C_xLKodJLhhpa8O62qnuW?cpQu=PqI;%>m(-gYs{LcHL{PVgj;dU_2 z{{FTczPcQQ!tQ_5d!~a~@Xf*xaHNG*lsB>7Y_}y``w4z*`DaELe=%wugdvLquJNJz z;Cq~CAgguSV?_BXf5}Nmy1n1ORgS&+s3zDBW8l(0g1n=WCqnhL zYB-(Fzy(eXI{=U&Vh(hb>e*o^>)yeq+!N4?jJQ)5!By0V{=^eg(DAsWn1Mm@L4)lg z)sr`zJ?mRIEGh2GQ)*A;`X{sf+HQ7ZZ&%@g$urB1pU~Lk79UI~9_W`Zj)EQ@E2~+7 zFoGo-Xk%agA$Uv@TR)#V(9xP4ct1g;%RzCi82y3cb?egF@fos4lJ_gI-B-mWHw?RG z)9EQVb5|tPLZ)xaHQc?D*bRfDo&z)1gI(wKn6H=-JoTrC=K+{yLrSh*+cjCTKLWds z81Kc4;@X#K&U{q{kiDq8#&VoootQlLMAe_OK5=9bWn>Y|_50k1aYZ46A(u;9zMDN_ z4Xzt6i>GKJ%3dqH;rR4M(TX1@Im$NTLy~F1f>l0acOqgn)i@R4w)7tMq@ppu>)SHd6NS|(5tarb1P;|%5vdksbR>!2J@%PkrkH*9K zZ&~!c_$Vreq2QVq59Ak(_lapeQZ^`MX0(0iaS`k|yog~lQHTx1NhSBOY+E_+A4MAF zh(dGF*dtXNQ)yR^myH>OhxD0h!vEI`07{Pt)se~jVi3_0-F1^rN4t8xNB#ZF&+?!t z3tPAk@8ZhNhim+ZG8A?q+HSPc&g*&Q@kLfR$5Q>p7DOlwElBh($iMpY?a2Fuped)tr#dn)^~A%3oSTGci+nhSe(HM2)|_YIJf}kce(k zUclD+2|rJQj(~t@=cRJSRRP8Il(Gg+s67oJMh2gszgTJv3`<-ky?}!|ix?Z>N{B48 zA3ColzF{T)h#ki!DVS{9E-Dj}i@5L2b>V;R-7)4RtY@TtppxIvf zB&^YO7Ral$*l`x55HDjmTK7{7dBF9QyJ{|-xr@)!6h@drP0cyxS!cXFJq&pA0 z{FW(qYX6U$^mmPH5n$`45xsy5aANZ#YsW-$wh6dFu8`8k!bzVSLqN z{>N(u9)_zC`}a`+v?+vWKf~&v>{sJjv0_b{2qLikS%1v~)`T3{jbEBPYGA`CdpNC%t^%d%wC^=tTITVq#U*D^fs zPa%7rP){Ej2uQLzy>)xvk92Sj?>=tSN}$U}57+M^u}mooWuJe<1D=rC!McHkgzOtJ zy7yYonR6KVMWp-AjD@6b)@VTyqxaHebh0h*t{b1~01GH8^5R7;NuhJ@Hceq!KCOQe zC*@IOVYCLTs}f1)uDTi#?xcw4QynaW)Pbed(;|Ovi|gq*(k<1~ z%3^f!^W(>Pvwfd)5HjJgew@wRrG$eNq~=xHHk&!oeoh+B@be1?6<*>qZEl5jqf#N+ zc4bTJ&>ekeejy>HzB6`xPWAnzoU_yCj_ur0Nj&a>gc=nwJ8^fyO#FJePaI?=VxzlMI}7lR@WBj*br|>ySps>F~WQ=suI0 zcJ%tUvb0zxBj(-?zBpHh35W`Iw+(0$?k@JUEuy}th3CY{)NLo3e*sZoGS{Sg;$aof z7%ZY5CeE+Ddk46LL(3eMse$lh-Doka8i$;`x;>v5!pIMkbF(#1bZ8xG7V073ZBb%T zo~LLR+DyySIwxl4C&+gH`495UPS`jRVq#K46-0U4^FdavdTLcjORB$nmiXpEeZ|{k zdfG87;0Dhev=$&E=Av$%{xUw~+Kqb%rutLCQ?Jb{DD^1sIm<@S04H@#g~~Oq8QofV zzdOGs;zqK^F zGvyweyFs9c#_jR?2BVGXTh1b)z2~;nkLRp1{4r-CR&Vek24840EFl&;1$BODB;iXQ z@_sJc-cniVh7$dxJX1{0oH+R`s3RwapWT{_0x~RiF*%=3x*`(T*g~R4axTe&P@m{NK{k}B@uneL6ekOtl~re==M}Jotdu3`klzwK zTuTVX0f0H8naMTd!XmH2p8vM&=Z{re?7Q(0^n;{N{(+Np}-4 zPsBQ!G`4n!^?4Jmd+f%(B-V(>atQq1Ij0+Wwaw+yYrmp?xxSCoCdZud;t!ZFNYk4E zdYF7SiOf&dt`xkYc>48Kp+2zNDO2Rdo{iIY(t@o2L(^4;qb@{bS zBn_{-v<;f;c19z@MEvuG{OP8s#M(J1ZXe#s0n&B1_ z7bM{&bR(T=vy68r#lwl{=gE0S0O|dzvQcGy;!+bp$ycAF6`2UtOQv~!)|i#*jCtNm zN`@1US=XHe=mo&xCb+Qt`s;c>FDD5ntO%v$64>Pw;_DJK`K+fNhv4IE;Po8Zj31`` zPK3GtY>%(JZE5W+YGH#s1RPhv^<1*WwlqAcE4!^(SWj>8H+%<1`j0!bqJGGxsnKPH z&DnI9@>KlCV~09aa+7+;Wp;AfG4czO-VGCKY8vZXhrCyZBvNn%)_Q5kPWeSO^B;J( zSrL-27$W3eFo+4~B#%<(Z*0j`g;WzqqN^57lgce+8riueK(j?^bWDt`!=`HH3(jSv zgTA5l+WkWwDDzNuRJ3x^+5)ENDrKV?Q&h1@*LON=xkF;qV^`w$-MINZ}% z#TS?`Hd4P7d7XL?WgKDN0-m^|c5bXgG8v`uD8B*Od|eu%$Ll#kp@E|?Meq=nm^V@V z*{$Wm_A&ztBqliRuI=3!qxSG9S2JFLrb5m{A8qAuF{VS-D|+?OAPFwD6m!bGDg}ag^n>tfA%gc1hR#HH*sDEB$S(X!^9&kUf}yb z^~|DzD2CHbQss;DILd5tY}yldvgcgBaUa1dE_$!o?Bo?Jv&NX;ET}L{<+c8TC6Ee& z;3&U-it^=MU46$v2S;LJ{#)-;6Oxpr{YGSCN6h-n(cxXUvZeI3*KApZT0;(7e_@{~ z1-s_HOMR%e;itTA~ZuyJDZhiuT?ArcX}M$Vr&e%EA|-rZPbCJ1XQcj~AlM zhytMn&*~7| zpfL%$Oi?5nCPd>)A|q|Nun~rGyxyR?qVMjEV`Lby+Q~5ASoYeCWfbef_0`v9*L}3q z0x-Z18JK)I+n~KZU)?o`j8Vy9=Zn+U#un#coMdNr#5hHjH1$xjDYitITf4Ie&gN8R z)hBY-6+rRp(Wn8_0Q0G|Ka6BHF$@~++)E4DT>ASZzYXuho5KFFBqW8Ix%b>1HJUCv z^*Vp!^GP29R_^8Fp%44QPj3=cXX;wMy*hKlB}K2ms`-~-5xJsuP*>_L6U$MCo3>zU@}N{qsj@Nz2>xtjG}hR@bV zLvP2;>y)%7sKqx>7f+j;^xd?*Mw)1Smne>__u-5=*op5Fkj&Kz`rS+aJp4mzVvy|L zwtQN3@d=O`&D`K0ZEoM(pBx%t8#irI`y35z81fTCNl8!dIxu^veUN(B&n$J(R982QI!Lf2i!t-iA)=NoJ zY89qeXXptL0#{>Z1Dgoo?2!y}%kDcBY?b^1VI4B`WWCfU0j`|Oa!<8oAtiO&ytO7= z)V=`6zOTmkV}yX%nN66jEM{phx zUKM1ZNyb|p(@XIossQ!p+a$u3)<5UltdpkBC!R4F&m~rj+M{)eDnEzHmHi%1t;e2s z-XIX+AY(Am_hKGx9u(6)tQNi^DOI5)8o<)S56NV})dL0f`Q|a}EQ7M8ODSe?bf)c$ zn4U!dqIuTD7?;_yB%aV$^t`RBt9MV_ro7x5_pH6vD^Sj0_ zE$KZc;xg)!ucpqA?T`L_r4aCnTzQx(yg4YOXs@smCB_X_6og@eVy<_=mEq|Mi;B81 zuM2(`m7OGR>0weS5|6OJ#g6+{B;hJau4!`ZY6xsfk`*AcLvc-on5bslDS7(3VAj=Y zPLM@R_`Apghgl7OSWR9$+RQng>aTR8-zL?OFw_2J(o2UW`KS1u;&ZA!NTznN{o#nG zDBQgu#-b{Xdn$oc8WJ!cgWe(Zc;Xcn-!*+98~jBtQvWuocE7T@al~SKW%K#5=lXWr z=jQdpO}+zHs&zU6axp%P@$?aUW#zNjp%{%HQ_$Y6!?q6K&pqSq->vZAv{OOU%iqUB zD>ozSw>>^x@(Gg{=lY5vLXnDN;3`gU(SORpXvoc@;dd0@|obFkzq z>m@zbT4QUwH+VW&7(Ka&(f#*tD$O*tJ<=;gjOjGM7Z_JNPQ>W^nF`g+O}@8V&-ExY zh>TR+Zy*qoBg2S#l3t$b`0!8B$reX3OC*^6G2BtA)=qNIO_=SlTAbDQ(wun>=``&| z`?F(<+RKq!CHdHl(fFE~@yELRuU|7Mx}|u*mB(3{y0xRJ!O`XTnUt}k{0|xB-ihbO zIz~pNl8m&8S=97_+IX`Su-XKsepO>TRAP8K4g&|xH!P|6(?cq;aPwNJXW z1xon>j|B?SB(ASTyT<=13?yF^W(CrD?mmtTTce7GuV@w^CTFj#xeJlc&_X(z^6~;h zy_ctM@gO~K=nGiBo9Bj=Ra+$pX*vX@USupChe-GVm1C*uigrcw%idsZ}>b2-z-y5` zmkpMtxIG=}ddKX}y=c9=eeHVEYT&5FhFT(9Z0e$Axp24Xi1=#Ps#?LkH%S*2Nvs=z zcL9vNu^3gZr`{{8J;(X=sB~h%e-?FVTwAl!--@=EtwF1|1JUxY(S#$KI@WTw??rvL zZx>TE3pU-+6V8a?9}FQsf}wobXbLilecP^Q|`$%ECo4}k_tPnBy`)LM?0rYtD3>wg;y^q@j+JD;VRe3Fki8((Y_t@fISOMeuA681#Z5%Y z3?qIl5t^tw_yqAQ3kzJWnP-){I$k^W+~oAUJpaPZ4Gq(1sDkL3_m;=HsHy3!YYMw& z3g3a6W3~6$a`7#04$%#KMs&pW%ix7c%B9(c^D52Q!w&?}Rv23vhcB~_En|kpdQGG~ zRd!Nqhn1IikTAu<;uY~nE9B02-y9(&rp<_a;Y(hQUVW?hP&{X(Vlmw6?d)}!&7coI ztsvRCxL1#^D)Z2}a?dA<=lMLBl%lRSpEs32t<8>sICJj0X0olWp}yYsuvC7Uuj__B zilyLdO?1=xrDj>LNb5nQ)<-5^6Gh>24-V76e2nduW#U&to!QV)_{-+r7lvt_wA#mE zt*%$Z9F{2ZlkD=e@91VT>CpZ+jY9r3_FuuHiZxr;A$eEj;q#fsn#El zSvyC?-(SyN-nZ|kwvLzQ<|tJIA=bUm_Ta;k?mgMPv%I(=&B7uSWAwbi@sZ$pYqV|f zKU9}-gWU1$9_F+Y`6RoVcKQ0PH^EY0EVWoLIx5*hbm&qGU6**?s~r@W{Vvl6i+yy! zfntQ7EN7_9&T@~GGGz(hz56fH$mq+53jl0Y4Uc^W!w3_ z?vM3509)+?&IKEZS~T_+xe&XtU~SMhLe=K%`Jwyz=Jj*;v90ZjVGf?!z;+RLYGAgZ zW!_olqD=8Jmjxe|ZcTs_oL}BDCwgb=Sgx!gjjPWu>ylJ)l4B}qRMB8`uSn5lm|;=Z zp8F#!E+e)bxn8m-n~COz)f=5;{RrlOPt*6t-|LH{#eYCLd=tzArrguwpk-`XDepc7 ztnAg-ml1|R5P_|1JdWde%IC^yBvW80%X^>L+xZDv3!M<4cFK?}8Gb435z&7N^WNrZ zZSSW=*{P?1GTBE<^j?BjWMpr7vn(#e^pAc@bc_`DJ^wY5PRX=c?Y!4y^`#$VlE9+a zu{A3*;*&Gm$XFp@Nlit^%$ppwc=m1%Q^sJ7s2%KcCTE|;;qt$knsaK4TmCvVoC=TH z(Y?sm%bzxcqWK>j2sx`<1`{>d*4Es(7?R*8l z=i;C7a%JP_wtQ=0*eQi~WI^M#P(n4a%Shog+s+Pa{nE`M?75) zbz1Yd&tD}Ek8iVJrDwNg@AHXm(#SAP4Mr_|p-_`9C8dVA=heTuWOZ%7Czpoddd-&Dl#tN-P?q`E=e6{uoiAIzjkF zQ;gT86jfoHW1n9?q!N_s-qF2?ylcPv#w;W_!6X&m;AcogmK^+NM*-}(Mbl}@`|^O} zg31^YSv&#TJ6OBoZYpdT|5(O(D%#0>cp8^nNc}Olr%?Ky`!v?OLu6CSozlA^Hew&1 zFOWkHGYOC#=bo)68=ViM&j*wsi*4LzphC=}LXP&0kMx3TkAd^;ynO5F#TPq4O6{4P z?w_c^%n|^hEZe`jZCadD5M)YtB6?S0l>`e$C!T=Uo?#+<3HEUC2?hSQ=1N56yz3rR zM~=>?#Zw`a>OB4yFxSKOAsV^yKMIrva(|9sgnmZH`0CuWv1iXcquF3>mb<)yoa7ICNCTi8-X^5TgKMs{ppXiu)3 zUoxzxnNyo4NaS#$Z{22_;oI}dRYmXAD>AD|CdrG<{6;4i+p#1>B($`?+woTYI6;@A zP|Zi-@aF4PWWxQ3yYmm!AK3o-LQ>d)uB~5M<~lg!&v;+YMal*VBp66ANQMv<$A55H zL$lFt?rC_bYF5i1HxvnLE}YQ|jR^^fy3|PKM*hqS%-%C_p(=ufrL+=6P^`O~ z0^&KL&k;#@TH1W)6VvS#C!6icX~4nU`%H0GK$Ps)AipVjA1u?|)I&e@mSD~;0vc{y z619Enh4ZW|!$2roY?v;uFm7_`fXoL9-MdGnxy(e^3FJq%1(BrXtHK=F^a80Wod}E{xQ+vuzaS~^KvXuP-P(%~lJ^v&9WF=C-Ri31e)Z8n|tfhhh( zpFPvX!_vNOvgv&c^WjfajWfISX0~z-m{j~~A*wRnd+t%jCFHulzV2=7D~FJ{AkZj4 z=`lWKEn)& znvP1H)7TlH{@-H0nS1O0;<2!G4Z#^b&VxmH;nTY_=9;6To0@uO``< zUY&0o^ht>SWW4;K%*4T=Wek?BxHyii$G-t`qpY@T1Nc1FqxMdFm=;s+xWr@c-!cTw z72Lrnp{WH9M;RsQf==EzPzYyLjRe$B|5>2;qpK>#6D}%Y9#6OkR8uREb+vp z-N_-3-We*f)A^S4yl0a!jQ9$>vy8x(GWaja;U@!jTHiYuw{S~KfQ7Igrd8BW-*Yv2_e?Koq$nBoIx{V-aV zkv=uFPmh7)aZLoz*2CD3w9aI=Yl02!H%mZzH7Y{bH{8YyHKt?hgFUz-LyTIL1p}B{ zkV+HY(wGuD{VU#H;B$B_kC&|+mKzIIbh%p!NH@06=N3??60i;aW8`Ni_#@ib6i5l) zyxAXm%Q9}swd2S~>f|5G7}QSS(`9w{5wM~d(jx-|v^=r!Y@S!Qa$u=lLwIDfD9h4tB zbg>Qv+yQo0?5JZ5V#0@@wOgU{h&PMPf}_iVc&6go^SqkWUmdAPEu-2BYF-(dP}a9n z{;qEhhcegR$u=R$^&Oq!L{lt&-yyj3i`n)_%fYbZzn)l(j&B$@B)VAj3noMctE}@I zzWws0? z51)$No7VFGDw{#&&cFYEEdUsyJ~B&CCm9ss^F$IMi;BOP%vKipG>d9y83DZOlrb5C zVank(<{A5SCJpwF+}pqklrcDyqNx_8G5+3;Qivyavqan_!-(3UduY@6Raepz* zQ-cf4)Zi9Z z=_DAhtX%SbuSQY}tB8n{a>238vKUPq9x4${^^xk`uShsd^f}OtiJ1ve{bQ%hqb@Z9 zjH`y-u|aOOTW?RrTg!!TGO@tmu^dcl`A-k+U*?Bj_e#wQzUu*+5@9Cpj1*mcck4L* zst8bb?Qid_3JSK>%cmguUDsm%RDjp=XBWRpR-|>#q%9T^SDf2?KTn>NerW0NW9c!9 ztI*el*?gEmwV+_PUT2TrH+PeubPY@ysimKl3CXN)BFwMVVk!*v!j;~O@<1rJwT5@~+`}iJIRZhVw5$wQz zEB;a>X~?V~uS|p5PD7*!qu2wLI3(^b>WU!BJ@r&pMLT*x$O7j}&*#_WCv}mAc2l`rLJl&+(EgsRZx8#);!r0l9=k_lmF)R>ou%T<@X!huJ> zm%{>D21<4WI6X~<&dpD1_WFj&(fd%Fnq5Z$zA`|kf7TeWTIj0Cfn-~yBp2Z1JFoZW z?jpcKqkM!33JwP3(|O%K{FJb40vI@$hwUxgGl2@D;AqJ1e#8?RkY_=XS_a$E&^P0Z zUH7FrK?I}E`o?%b8s?@|%re(L+|d|rdv}6Uf%T}=5g${GsMEerG{tP^&5rGthV=Gp zF@ez-k~lfeumc+x6lnm!e~ytfArb&XpzY}ZzKq1MCU0*K*M&GlBNaK?K#6hV_gg%i z{obq0>r3~5?r!=k%4JHPpH_A+chwim2(kNE5bA05h}`x0RaiC{@$IV@Sjk5V*Bk3I zW42#Z>z@^vk<=RLCG!D3lLT3E(b}3QE;qDnA3_K7d7PSvWw=Q2!4$hB80qXazU=YJ7NmfiGazCzA^52pU=;#$ z_6~C?UlI?MACV~ra3BcjxKAb`m(daiy$%UJJHFrh_g4rXwW^sloMH-^WALBOhkwj7 z1xHk3Vf*g&nUsaDv}See@i#gmP3!+q;AMWw7v>e10k*tF=S$#nT_&f06fW(|HJF7R1MYPE4(r@A*2`;Ab!=758r_$`fQFe#h;2rUA&Dm)?;f$o zjUXI~scmNyUNVvDz3?aG2;h}A+KmJ&)sv6xjXDidScfou#}9KG+5nTyy=3uiwvw!c zUX$(1p|Ast^yRQKu;h_UX?&jx`cK&vBU5e9i%rL>SLHAWPL@A=b4lJ$kN$m~Z|+Tg z-_P1^0#6ZB+}X|};k@N+|HU8MHiTmPv!jFE1}I3uK3WSl@r{Cb*w%zK2fvWKVQ{rB$#V(D|`-*$C<%*lITyD)xM{AJ} z4oLx`HM-p~mG(ESw9ks3An*uT&waAZOup^#?_bT*@r{2qnp&;SX`UltN8?Q1$WW$0 zTr&RptkViu2fH{^PHL9g!z*gWB-sT_dtoj=L#9>q0OU#bcU&2l<{7f8HelOqJ?7-l zlB5EFnuC>j>fnq`MWf0>BAj`u$jn8igq-M8&hv^Xf+F;CiDUq>DkZ1fIOdcA*1eGm zRDef*Q;^Xb1?o6HaD;E`Gke`j{h*g>8j_tHkwuAP(R|V53z3&S+74jOLzP!yVXrIUA zF2_%rDaecnEY?Q#&@K)PjgJsUzOsm8DSP>)jx(X9;>uyZ&UV=K2BQ?_VfK<;!+Sv~ zqTnGmRv^BjMFImrN*Mi|)@Yl>E5>|~*6c}5sSEW8Tz(}@?sI*Wr{Gl=&w+6BF6Yge z<(0stzRub`yf+ap5_Q?Ogf0qv8R4osNcZ~3g9ymK;B13bWYB$6kPC>X@HC9Y(TqHm z`scX2Mg6=y7-l(nNBjiw1U#SZ0AdJKSo~jF#ziNqJs>j$lu%}p;pu`}5BX3EtIrZ= zy5^iV{N*pjC*SMvUSq1-EJi~-D6ywKN7kOchcIn8^woa`TWIek@KSV+_48lVHZvEK zK$#OLvX|xyno0oJv}1FyAovHdFh-GO3s6jpjhv%r=C68dee2~)rlO6Cy0|Tb^Ei}^ zJ!vN3<29#$(+r@~y>Im*k{E@ozV^B%KmcOx9Z76%J`K&ozMnmpp7VACvsnJ79SDut zQsQGA{rs5GR^54@#gs_0FBE0K|8g^ghjn(-S?IPsfgf#k-m{PdfNgm`qI<)qm5J!xN^M!P-AE)WOkMkl$*|01-pu4e6y2kPtcs7N+nbCpyq52Fi5@uITdQ^sGX*yRHB zm$TLSl=^r-Fv2l7S#-j;JuSMI$ElDsq*H$h_Wl#=oU zdJYZ@=KN28w3vhT-K(|Pq6yrGSXm5q_yA)M1YcU|nNSWiUCjazKzhqb#$TOuEO1Wa zb2d!*?;bwU=t7=Kq+6oy__XdH{%;wp4T-}am_uOh%X++AVQ;JUhwT){JUQ(@_ee35 z3H?S{;E1a@^(Z-{F&Jjkp5)g4d&J`Hh@?cdnkW?^cik@d~O|d z0imp5$Y`XHF25Y$X3CF+>Z=pnV;*ddWj~^0NL79zRTQpqbFwL2)6F1whkji=9--Vuc^Eb+qtu#YORG0`||+a+8Mc&T*>C z&7Z2~dbsXQWty{U5>wdn5Wx6cp4rrwUs7i)*v6I`3x+Eb`^c)o7zrn_3S$_N3`r>f z0Ufnv_iXQ7esHp_q9e*7U}W@C^2rOCI6U{$HecNFgJ;Rvgx%j32n#)&olTUeP}Vav z46HcC84xo9EAo;cP3?>=b>1fkk|6Q80O9fOhzvw!=kEscY$xZUzZJ_Eu`8rpr;=e`jE85hu zI|cMo3Je$LqWm{uT7MZm4Io@u?MToJgoy}cb=r{yhrB_LLC@XQU}++-Rv+9uDqrvH zdQqpSX=zi!hS57a# z{zIp7ERW!k#sV!yEaEo8MkXMiSvT2cJIy8ZCXgmYEoGCz$b*v2w}nVien^N^Wuz}V z#zUfpO4~=bc%hsm`h9lDl2F~@14?Bgx*P9yfER&wYR?-2E~<-`rqF zGs;=F?%c8pxVhwtxG2NKc^p?-^%Gs2MQ&WyO=5hT#t;C4HfHNA(gCO3H%9>8e%W@e z*?9KGJ-n{x9!{p~hLFI@x;5fGmk;QsL_VR_tAy3a3!Fze>Sb*lYaa%Qo*!bg;>8GOf%6M%yE_k8)MC69abUDZ|8_qI~2u{ z>DDNfZyE2n6v&G-f6j@BT?}O{8Yc0P?yjXN-aR~obG9rwHk`WSL)dZiCi9O9ci@s2 zi>bNdu%xQ=#oHhw9XwEn_=%g6d}QQxI-oN7Lb=H=><;X!P|9pYwD{)hikjU}S&Iv! zL1F<@)OsrP2Kz&9;hTPoW{*RH)M?7NHtTmc0fjLR2dk}yXAp7A-C0TOU3b3PASW!G zowCjh=Iqq2BD=%G!N;13t_eh#xFjtsu-wT{@tn z?PkWONAp-`oAP1V=IjQs5I%@95cT{T!tU52OhO_=Z7M2mbyUG-SFEh}e1s}Ol^`m+ z>qccHeu8zlAU0y>t)oY4ry*;E2MO3mI-9?B0rub}o?;&UP$9EBU&b_rGW?tQq)dIo zB5`b)z|fqHVPli;CZ_qyuE#~jE>Ce=46)?fpORti)PW)Zx-GNW8+k?3xH0^;bi&$& zW-ignoGQMa=Tu2BPXRu4%$DWl;GVEl>0dk%93Ruv#J`mv<4L@a63)3&-+CX~2>zLA zy`lTQo(ryXVSEJ*zLB9$AlTh9Vp=l!ccVTmTig$Hw;R zLNS_rF~UF-DO;RLx@0MP-97MQCrq7sDzhLX6LI(QgbgN#ESSrYW zcBd&xycH~Vc>|@akQ+A%pYZxLpDK^g?0q05%LTcrOtu~1;dCW zVk6}^ZQlTMS|>te0oxNoBYTd$|4Bmn3wKo#plKBigOj-vjD)Cq&>mgE6k(wF@Lb*AQ*A%rXK< zP4t|ZM%dMU9~51EF(r{*%Y0&9|%N)-7;KLip>`4)lhf=tbcrM*`r~V%DwmuHM^t=yYI~my| z4TN49Wt3w3r(2zN7gDSN@&@<$OHj_#u0l!Ow^QZ~vfzPkta_U`VyH>q$-7Q28m4-7 zbX0?xXrLZA_-8+{)D{MZW>L!0_KCYW#2JGZc1-Kp~PVn^*sXluS_4v* zY$Dh<09WNB$MOSAp=8JazWoRr_Xy2lO(rqo5PLng=(`0-f+Yt z*)2`iUN8^iL@$f3Q{=;Uj^RM6zo=>GS;JC*SaI6~C_Zb>kI#A*Q~}1UIKUImR_OXWzdA2}xZX=%U1u;tJn)8Z%=>tlC3Y z2i*UYsc@7x+xdY`8|2BF;UHqg(im0&I}&!It0WS`38W?;m745Y;%UO?(OAq!BytcD zn<>VB38A+A71Or-OU0(LQpdolwC9aYbEiv|SBmP2Cn3l)kVEA6mVZp;R%V8x|L1w_ zml{3mqBQ|tN_Nn6%J!>NEW~j>;~bLW<#rxVy13tKhRS%H*bKhJPX(wtT95z$Z=D1W zKK}9=Vn0z3Dc$90YnE(TmNR$7!@Y69B&!*2qt~}mXQBs9A1{{{sIrosnY`!LwIJ;1 z7@fAJE_@Fsh2^K~Nh5Y!H!$ye8y`P5flJ7}%NII(0$35G6Amdkm?G{Eg>0j@Wa;w8 zlmp@I_VWxSXIr(5kjeKgqr|G7NQU?Od zbRYj`E>+=wBb5q3EOC1nXn0{TiFw~! zWNp`ZKRN_*h%=3G+456ZTq2Xth%tx3cJR*{uvi}}4~Yr|(OamW4fl}2!;y=Qq7tWT z%%T?a(YXPsKTX4n6B_s%`_x`PlZc9RWb5DN!APM*GX1vsfYHnbC*to-(M=+@KNZCF z`cD37lk$<*=OL<)*Xe?)?Q%bBTL~-O*wK;EIpri5-)>Q;%mP7vQs@lvE?2Z^{Vc;o zXG8a)MA*o!W}YxlMY{jA6Xk=u-e}JaHN-zQniQwKsrrM2&jo^o9bx16x($oC;pDZV zKFlnNw9YuWQE>3QJOfOJK+!&JRs)b=Zdkci2b{TpYBd$f*Q-2f+bljlP}H+n=N>JxB7E^g%hj&jwA5 z+1Nldr(X|Dge(X*ak>h*d}UZ|obTu+!c;w}bJX#%PY}4X$?j|x{xcAoGh z-3-}{q<;X$`hNXO&lu-kqarPtzq57I&-s-vKQR1mEUT(i$xR*|w`-BNc?iHg-x0+F z!xpfrLHyZoz2ql>2@2*`8oqzaQvM6D0Kk9pXHO%lcvl^`B7w%I;+L#4An&oyZnz&if5m>!ej#}R%)ZiC16Zwe3HQI_6iL!pu z?e!0fxMJTLb3wa+{#ft7n&brqCPh=Eg72H9gI0P-W`AAczIX33r`Db*bRWs{WbOTw z-}gMa>=82Kq+`&WVyE>M+MEW^qm1B;tjL?HT2rd=hXW^#f``+bkII53f)#`Aj z<=Yj~Yh)B~9_5c-$92<9%RI$wTIOB;aelm-=9iZe4P}%Np#+&I6CLk>|NfOl6R>JD zeUs%bGhX`XJ+G14U+{e+b>icoBKCBNnY-WJ6}{p*vw9KlWhs19A4 z^l*{nFx=ZhKQi%;?Um#VFC`dWznqPZAiC2E|3*Y%%}_+b&}s19FCmU4c*>GkBJoRK zNH@Zh++YE3+P|I>wzVyb+OdgrD>&<3rxfNyCROvlDS5+lTyu_Rkph(G_ataU1^xUU zSf>}V4o>RB7B1QtS&a z%3iw)5T{(+G0E2YN7v^OFcnp_f;850%rLpr&d>gs3#28=U+Xn zfhoJ#Fh_CsTp&rbSTx^UFT_(yJ<)U^Z)EIZ|6vO*96?U*)y>_b@LI`=$A^h8<&@2$ zWA}wVH>8VR3r<~{P68`Z2}TTP66lknUz7l{l^Fn21Qysq5Lj z@CiR_T|cNxUG6HSAKy};UO3mpskh^@zeIt%o1A%G%*uO#L_Nk=GA*~f*bt+Azp|Mo z>>6LIh4<#pWA?W(ZyKvsck0(i!+&9tq^xjyI=TL|XbAp9p;FV&-rSvb+L-9*r#nh) z=d)Gil@=>7^htEM1S(cW_+6)Qajj+1zDWc^i3vabU}~_E__>!A!q4;{I?%=N zyLpqDOpf_So`3#Li83EvO)S;C>3DtoqbawhBK96Zt+w;VaEzcA>ld{LpGIePk*@b4 zA8g*E)i|4qMjGcXt(As?ip!L~SGWr2t^Jc!gNDI9zsEZ{PDWfVWM1QMo!f9h{u!J1@dhiydbtdx`A%Il zsl1yyP-gv4ELH71Jrl2;92PKCZ7&lsLiI&f6Y1i9!Z`R+dchrQY`=qER<}SIP3#q~ z2|r;<7H!364ew|SA2WWHzapbx&}BrrD#-C2?f;m?Mm7pBuolciVI=)cZGKLYIon_k z2Tp4dV%zhWgjBJH{qJ5#sT&u3UCswWq3ex?P*ivRg`NG~yq21jt6F2e1^a4l6X`C4 zPdT4Ba9+oaoqA;{b3_*~_vH}n&A)h?f=593vHe^iJRjWkVW7cXlNtuoh%b2$o=6Wv z!3S=RKkcjRP1jiL>|Fk48hw?KG_o(DLsNESl_~g1+Rcft9+$cd_=0hi-@SQ{I9VHj zX0bChzY52(l0lgB;XWj!owkwb`@iolOMOnNS|Bmkd<=zUAzSUI0;3Aa*E?6a!W!Oy zpUft%r=j+C@Fq}4R02IR5;E9Av{!xEOaBkDU2a<$uZ&elmr?%Sx5m&6a+ypTLis8g zAN22j;J`gdP_*CH6r=E2=`$`-hrB|G5tE9sv(;lHLp!z8Cj6?XHop*7R(x^oJh3nt zy?x7axSPkDCK{JF*EVO@R=|jsTsxfY2a{Q={&ypuc^W1V5=}v?%edyQGpj)m*X4`F zz?f+Y3}tp%e>1xvYxaDU&QeZ7KhFFyvn4X;Y%&-}vu z{a@-^(%Y#oi=S0JUMBn;?~C%x?o!SU+;4zDFnVLQEbq|EwVxJsauivJRtc9HZav4& z#mGnJRu9|PJ~|%>1}d=44w<41W4ryy`ih*MiE>rwwL((fP)6!Hetr3`o}$2rR+c6_ zho#TrHCvvP9V|I9#F`o!n~ck)Asx_Z;M?8=@S=WZX{ea_`Xe5>){GTh^R@?kA9~I3 z-lQpKNyy8T?N{~Q8}*)(L6$9+22>gcw>Kc^V>U}8qwk28jFPU5ot z>|!)koyyGT3lv?d3>hfrP_UO?gGR1GnO-uy&)-V{zWI4me!Ns4MNC#)JsiKbAnYLM zi^)o}0Xju7DsFbZ?x)UP#-xa-^5MnY#}qNjC(Cr6nf;DPC;GDeU%GQBtubbEUDcnE z8NwTWtlAZgU_@YANg8O-nfiSC3apuUcfgIX<`{q!Za5r+crw6O$*@~pcV+tcj$8X`VKzkM3Il0t)!Nd5s zF>C$Bzu(XyeQ)Z;@EXEEGih69dErzT&HhXLkEz}-wZQC3g&pdUKkr3(YSNg&4w>CgL~ zH&HD4YOIsL;qUalEt23UZGz0i_`DnqxBxAQTG=)fZdF~}=LucPNq8@pzW|Pnz$My;}^2A-DhVHiuDQRaagy${c_4NoP(x zbnlQ#lCBj?Q=&X<=D2U6VPVCh?3VQ5JB>23O2LLS&dxt~o*WZ|2mZWB`Z`qU9r~|1 z5T*edbbAb?PbQ`CsX%Fi@kIXzLf!iCR2YYlx}K}0f3YWOXLWKiT7fscB3*{`L{nZw zK>@nP>`$wm(#&?ktgy>M-SU^cAEISdHKP-}1mg$3YRyO_5|)u4Ai(>Ie_2Ig)S96s zn5=hQk`cNbPg9?m`aBF_{*VKAE1II;;LjKiST+ZxR4wjT`NJrWW2B}5^A?I<|K!#)w2qFUZ_*JKfE~WMoY3;7BTT) zC9=NARxW+VCGdIA)?W-!EHd(oo+jpHj#jZUZ1f1R+NFAYa`Gd?cQn@vhibndbur4< ztw)WlE##%Ybf(2BwEoy>(cd5O$}8rNSy>&>i{=I!vPXZ%%S!AZ@kV4?vhAGbt>R`+?! zn2&m1ZcR$8 zgVFqq;elog8?r_{ug^DLZt8sq*j@WHSWQGqF7?&OJ;`y{l`n`mfZ~ZP)^=VnudOa3 zaf_waXw6Nivic-wk`Ng#@`G;#Uo&=|Q|;!>;!@pNf0K24rIo;_%?>4j%&YJO^VLiq9G+kv>)ZN#m zyBVZGy1QZM?i>jTMY>xW>5%SDK^SC6DWzK)q(MqbnxXUkJ^!`dFMe<-j(6@ovG+dv zR9WVnC&O7VkmBfP)3s*S{&={Uh&+#}hDfJ|855bcC^v-$N1;9eVfUeC6?Y@!QkoBnsD z{VA|fwwUx4)qIVq8jNkgsveXrH?{*NLF^Ww6;PxsGm1c%g6ml4ggo6PxsQ5h5zbx> zVonTw)vMv-mm=Ti!z7sXUiQ$m`>NLwJ7c38bu9YLxGmq};g&k^qD-W;iapAH+;`2! z656fMsbDq_$z;lHWV>&dpm34evpbKYk7LzhxTXR3HXjF^1>zfLPNmE2LDCguWH3Ur zHZWsK@V-G=hZ|OXkNfM*5oepS^T%eFmx0^Xh>hGUhyi{ke*=pA{$wWjbsL9^?DI)-<^u~WR(VkE)t2V~kH{1K zxfIA37OZ$wG+PBh(cS1nS9MhAL+{xq6K%y@BQew7uGza<*ce%Du$~ z``u@voed-jHv)*;q<(z7rrYg4M)S4~%pm6%dUHaR0+lKeob@_*_{oV=HBDKiHrZtg+*sn)t!lX60i?QA{`EzF~ z&S4j|S_iGI1`J*OcS-6Sx=2^t-PS(UlJ1Lw+k1))h3QcU)hMf8tyPPDk47 zY`8-Io5_6Nm7!TLsg%2fGnZxpm=FbV!JEwxw<3-SYrvz7z7oo>c>pSKZX^DNG&u() zp*AJG2qUSX-DAM%E7im7UNz|K->B!~uVT!l{~(6f4&8`8&CCAfY2}t)vdMQ5sfU5E zhvs#~EmuH#(uMx(Mv_)h*WTI1a_xc!E0TULcd7DTv*il|f-iTbF8$l+0R)5~1zDgR zIxBiP`@HHk{wfuddbWX5rq;#?2=RI_3fV(L1Wm}n=>g7Vkrs<>1gq;S2aHdwv3Ag2 zXA#qhuhKr)3ri zbbnd^2Wv$iCGt-I!pg@h8qcX})a;p$_b%f@A7JeZ?oTPvy%_MQ^U43>LFsn$MTw6d zAuf2k%N8b;xII0$^b3{azURhG?y37eIR-k6ZGz&Dh}g~gN?sHYvE6+$u1}Y~Kb~}( zD?d~nyh5v$CsK^dz#`UH{FOn`dAixoJ))3*lK5)NJ*X$mrA+j@yxcgi>fi^{PJ79& z``DFMyEQcvPh+Z&CVylJkPeE^N00_QNM;)d2>?q6E3gt!YVB&UZ#@Ee2I;exxGYR8 zJj4xQwuy|Upx?(dt{f|TNGT?=IUxf|C>k2C#hb%p85tRo7RegdgK`!xZ;bF5Va%e9 zNITkWv^@8VgwimLC$mmYP4%@ZsZlo&PCc91FmySr>E5_UbeGLFIho`Nm<9|C1Rlx1 zUGiTVU?lRN+C^s6#pt%^Q~_@Pc^Kcb6}{G5^~{RP1DC(O-+I;4Mc@+3fzmq5E!3pO zsjW7nimPtpOr{O*h5jo)y!ihR1mXFX(q!bymKanRz$}*l^`}aoRjMigH|5o2nf0@rv;$~}MTEUcD;?ni-1Jw}NWTHbGZm>UDCUse zxs8)cbIHP}k;~!d_zRUg75*m$u#$zg#8Zb^;N^AAs@GLH0D@#^&Jm!X^J?Zn-zW2+ zHGlH1QHDTNn6{dB8w73j;Qzd64s^J?SFM&wIO9AiIUWKQo8Al6qtgKDGw@`eAQ#ST zsS!;0@&-JKkNW4(Ec7OL7XqP6Q$;WMA}(txdTx9LPWsMq4-{QWStS$Ar2JbSg1`T<8HGkKsq7ZmxT%M1 zuNh@hH<@C3eUNm$rtn}#=LJrLnfQy|IXUv{tG66u{u)fGmhkqS%jUi8Y<9f`qN^ZU zT`Yv+3U*wn_b3RHdaMm&SB6eo`x~q)fBq!AH%T}@R6%!ne&fx#LYEWcK9pd15vje} z10_)hPMWNOJgo0iwNM5RUm>t^m3sqNMCfkzwYnqHRNvqH`&p@|z@{It^^bViS^zkf z@2h^ZbKicvV~hLtdW65iT4Y%)OlAX3pA(1@BBqvSJ*2NIs=U5`PgZ5owPI`U)>Wv- zupF47dEQVj`up)^+k)TM38Y9EvYA;8=>33ksUs)J6t!2Geuo=+5XilMfZe2Za_@I# zkOE3XyBJj|EB7s8vL8NzS(a)EUuPh&NM(QenN> z-lLhOfVkp4Ov;hYA%rvA-*gnk+6t?(5>U+*uunZ-Y^(QqK=r8mV;|??Rzhu6=IAEH zK$zq{z(jh14ovrk+>FznPZWmtf4H|lzAD^9L^?j^YHDdANE+(>wSJB?CEKy!E;*As zShHX%r!mX=2HN;-6NQfKS;s~!Q32uX8zhxc_siGn1nVF(r#4?M2_K8@Ly7B)`)f%m zDgXHTSR`b5hU^MdB$d(#*4UKbJ+Yt4FjA+J1FL-RpwY#j!9p#jEs>73t=Ssvvg5pz zKc#@p2o%hbdKrOyQ%>~2B&MD_(Dm6*R80PTrWA6Wkk>*1=e`!PQl-z(n3|p+ONIHo z;j-wB5*l4<3KnvFbG`ZS&V(6=rOA!w^_=Ll4VC0QvOT<9rjzm@R0Bok3P-CM)m;86 z{e?)d^zCVDmqNW89ycNSS)j6T!Pe}@_4w_!z#C=lIsgEqvIU3&x87y_7kvT+FEgN5 zoLXDcV$YBv2;WR zJx8LjZ~M(eJWi<>kda_}!lI^~_^mYMY6<66NIPn{7-|Qh!;MN7h7uzRob7ekf}}Qu zsn*6ynM?+X73FMw&>i(f|GR;}+X{{YyHPqd`o!b>?(;@T{2_PNbas&1PShFn^(T7u z;RXfqoZ_g+eY%!3|X3-e~)uQ)wLj>U+JD~+A)e4^X zjznuaru28~Na8jC;xuqJ`ri=&7$JNqz-4oIinX@0K8>X?C;?cAjosHwDUb1$pBgl9 zfap1S#jEjo-Zb+qpw#v^`7nX!AUY7f!$U#^HHFs$@d+m}82y{YYG+0K;3THOrWS$E}sHU!a1;L%v`{9^j; zz`WxTX<08c4 zbdB5cL<0gp4HXg2zT~OT@$zY4Lv&+?F5l7rzBxxlR85~2B2iUKRqMBRwcncgJby7T zjoExE-krFHzUaAu5sekM)U?G&!96Aiag~tak&h z`v4DF>ssx-f=cJ&{>2(?Z$!^&j6w zkcK=9M<>xJ&O$(n%&!)Ph0EOw-cdut#dUE6??DiyOlt*QoS=~PzKii2cdF>m^R@5C zWIpU;u^+2cRRbK%L=*?V*y$s(t~| z1`s9@guj{f{6SV0b@NRQ{lI{Om%z^}+B-Gu`;MHX`8AWSLV7ZG}be z0Ub)hPS6_X;bBErOWNo8nym}XL!-_nbj1{2O^)9mE(ix?iW?oW0l@H`XKl_cim;n^ zM{{Pyf9%k=q?rfWvxog?%az{vgmL&!`6@5!F!93>sD%{Kg{l?)AmB~ou%v_ak_TzJt3?ecIlvNh|iIjOpS>=F8-(X z3Zl>U0@p_e1K(iSCZ}o|UE-t|IPC=f8hcycIgI9KC#*Wjyl4|czV4N=WAT}p2`+s6 zqM_zZ(6Q^Yo@QtY}qf!rSta{3Rt%vUJ#{hXZto0pcGu%T(A+shX#G^ zSMbdJKCnFC;klii@v#dbk2V1JTf&RzlfCyTKGExZ=1DaCNXFQG|M*r|$sv1(*|Af{ z5xq;N4>sjIr!pjcs;#F73mDaghpCku>Tw(943k#nF!$oDP-#MdIuodN^3S2`=YY{0 z>g?CT!=Q~@@D(hEF?P5CtZ9YURRLAoHXj90`qA6l;nWz`7(1w%qk882E+@dlwN(JW z;si-jH?{2UJ55e6WjZ2A)&?87NkWA_+|xub8BJn;D&JZBjgzL=rdDnfVOlsJpb=aRF z^zi|QOuVHZJ0C!cA+>SKsNzVd{I-AkVIWnDsJ-_#f>2LG>yb(^lM;Ou=zYsnSct9k zRB>hL0q_ zH#@J7R|BeyL^E_YLr33EN-Qm`gxMZ+n;v-3WAf}=?x@Goz+vk%blj=U4!7W#Yd@C) zNs_j&se<+kxry_gWvpC%*mkRLC#{w@+Nr%g7NhxuqR>~}9-NmOS)2vLOm01%*hCnV`Y$7BotHt5# z*?kB{KKTkv_*SFsIB;#GMb zC{kfG@Kj@J|J+~*l|^xWzGZ<43!JZB3WyAmM&`^H3&@mg-!tm7->muzxtm#AS^oR7 z!GrK=W{Jx*f1BVDwfWa_V)$_@SrmCwV*I-g=RvfZ5Y_&$`4pPw7}N@47CSf^r4eta zQJD@jnFpYD9RUPoXJeD@np(W~`6Id*zu>Qa0|0YLW~}d_1}V~cy*4reBk*v>PJUaw z?Tn@$HLd%ZB*gJxGz|o(a!G)KoXs4a$=6H+icAtz44I76a8?xj~H#-KIux~&6rxKm!4&9K@RhECgm-FaH(z|NgycAl*ye=2kpZ2Y3VwG;wN-4mLRDC(CWL zy121oaAo{6_ylyF!Uc>Kj&{&6PF1-6U zbX0!@ft-PhdN%n0Y-5Wr;rWji5ufB%deP>h-v+C6;3H~b$j(*N?S*^HNjiH7OF$RG zVza!udg3_cg8Sb5xKXBJn;tgptXPyZV@e_r$4v4_6J&eB9=Ou$%t!!7h?NotvVK7! zJD{3}^cCw>)2Z`AiP9atHDxoAjIm@fz>12huM4zhR@3b@K$#pu02?XFFW9>=EV@nX zr!>eyPMv27H3Eo1ele05(ku?h#ekYH^aEL>#CQ1 zC|qYvnarO6DW+t@QXO4N+48=y70@r_m(-L4tVeEnN5SQl*VNp!oVGH@fdLZ2sL$EY z?$2!#Wo~9!an>KAjy?N$tH_uWw<9)mWEPNl3uA^BkByJ~b47LWs+wGVn z$yH#p)N)|JMTe!jiV<6bqdJsI9@7 zbF{~U>YpBNDr+e#KeV(2n3Jt2u6B^w%dVxL=wkGBlPrQfb$m0PCS_Vh!UJghBR6N_ zNQ7bR>Ez+1xca~xTXVn9&aS7u@O%POY?i`0t=rTP4+7uShoE)kbn8s77SFZv!+K|l zDWXDTu6b#Z3depgXI;@xoJI(u*f{L`o}8GtEJLYrKbMu|a*lfgM6Bqespt7&i} zhMxac&_F-oLOnxST9?M?{e_ z)Mlw+(v1gDtOM%*$1PU630Ep6n9_pxjG72ID5_>=q+p49p zpkv+Eqwgt6yWojj&_F)DnqE=GHm*nt6GycBi_Mgnpv5mNrdVThc9QZQs~oEt82n4@ zSZq#U90issoh>pll%-{72C1RVpBg@;S;ziYNtk%{*!`@iFYSs3NM-;L@Aw`I^pI~j zk1N;!0yu*hB_Pz;^5@V?u=(OL2gJbuil!ubEYUHd>Dj9nE7}IsG6okvm*JSaW&9M1 z1-7=v!ijqmMr2Pixh%h}Q7Usv9I-=j^PDAcsXK`c%}dVjuJr4Zl3@0m_I~YHf!ro9 za2SSB7rib8ci0mX0zAAgbo0}pzpnBNj`CdH;`M|q&Ha*Re7sh1^>Qr3qG!r8!7k0* ztKF!GEAPX0F4B7ICknJErE~C0P=O>!(cG&5%a4ya^)&{g{9RmT1rF@cGW*qzLxRU# zv0hCIPbQ%v9iul|vCaZWP*E|nTql?DFAYYcHqq6%9sx>j-prR&_xk{eb8r$Dsj;Ye zcWAXiAJ#ioFGn$Mt+nCjEHkj2wwYpvu65g{Zlxo8DPyUMUUr>_Q8O%S`spCn;xT7i z_x622i-QsFI%Kw?o|@$wUVFm7iak_>rio28rmg*4aUN0ANWI9-`jMy&FHq0gb#L6C zv4@j8bL8URr;gN3D7AM9fpAQfDYgBJl3|aFy4Cc^W+J%EWqx+s_Eeq(wd}&s(C?;?s0%bz{ z_xoHK{ignT=hu~!{%S+v<_JwsbpBz~oUq;Q>vHDGq^h7#vehp2xsN32V1N0MJi+zX zmr4UiD$2b62B)8jb%+aotWs`zqB{@1U(W*KN@F-xRV;kRdWX%^|xMTHR z6Eei9qyoYxmC_gxR_(8b-w46FD2XUFON>H&Uv!`mBxM3w;hm@Ge!L5|g_bl5?&1p) zt-mdeG_{$Cn|2x!Y?X#CPNe5+HY+}IRd|%6&GNDvpY}N;mz`3Xg)f(g+zY(;W$9s)E2^xzpaUmYpmu`_ z3H&aV@MJgN(<2#^9zXS*(Hf3lVB$l#C}kCXr2~Kj(Y?^lQ-)ajs;MmF)Gru|Pe>^v zR{L(q=SC~;6Dpm87n>kZ+*8i&l=KL*e-wP$_Plzhtq>qiW9N6r&>Px=Dn7jP%^xZZ zNibYrjb+rrSDj!x_XvdDeJ%V1+XG_IPAYD-@%&trwTXelZa|ngT|Xk9q>hr2SL<+6 zj9x;WQ?vt@9igFvO&RXLcJmKCH9w3|kn#1(627sA*1=#^tZ~2X3RF{L=tpe*N(j!t zq@(|l9oyCt+=<5<{#To6@7No;ea)n&wOm;n_r4;@6sM{6BP&PM{USvSW&Mw4Vx3SR z%N(}|z6v%Ef>T2?{>48HNS70zJW%_7UEgDfA2H& zD2XS8AdtGFKsrT7e81`PHBzHjbNg8uXIGFIOi*R1)u46KHU~uxGM)%3^IGA}?^sN1 zEwxS@LXjuiKXQ!KA;S+>0a1G!a&RV$%`P{tf)ya`fwb*NH$DT7H=)*5AXEhDKI#QP zi~?B~a5}I1Sp47xK?c=x+h`1tZ7J*S$2gl$e3l4;xSt)l*T)hJEyC<`N`5Xq=!c`o z%0NJ=v5Te1A%qC|42-%cg#R=+G$ChRTyC%2E6RCSbsomN*JO|ey~AbkS6n_R_cc+p zI}q%v3OSWbxQ%I8spjrFVj@+>QT+OY(fGyW-{W96w}yk;>&ZP7S5TMlZx$c3$#PR6 z3J>gzgT{m;vpx1p(EK(|nc2!5N9Pg3% ze9`ZY9Cz08H1wmGFj(!oL-CNH{|||Se|9V|$KN=4BY|vFE?!Q#d3h7}lYjk!F~sHm zjH!Bzdap%k*KfB2v%~B{(lXFPzxO0-eRWQZy7>#{{msq-g8YNe;m9B?CZcmP$+ZG6 zpC(iiY*nOnSG(MKPa_$-v!F>YydSUyG9xHCb17>+Dc2P1u4_6JO}pz}SlVxwWRQiK zvd`-4q+(t;hQzjd4??sGJAx1Gw9iKKO43VnD_shpXi^xYUVu;KrUzWMdLxARS8?F1S`hwZOShVIg#5TJT) zEAG0<4?_Vekm&hH*daXzJ=EkQHc=gC)^seJmsvSm8a;VY5v5GI$@ckI3&7fV&Tz5i z13q<-%>||Rxr0FIUTuewf1h; zH{`6`p2C2i#`fyhj%jBwQz|Rq_b*-Z28bbq2=VlBkyMeEvD80q&R5k}T2Gae^jJZ< zAaYvTq4P!m0h{?6^N|@Q$-tw;yxW!9;OJB7Tm3}bq%u|_LsJjJqL+*$kG^@1$~l~w zkxwk_arBwaBElV>BuGf5j3umCtXOgM3~Goszu`fQx~1h}>YlWfc3nfjAmQb|hx~&KMWYN>W`uX?+EptY^ehtOr!}^P+)I;o# zDY^fWOx3&wa4`;?#<`?^bg^o2aIS2!Om>ZIPj-xLZ16(Ap{&*4klm1IAw>Lq@pWUp zqklcUvNU3Q(oVC|%$76HM#+17%V^0*biP>H5d0b89f-Da@p@MRd^Ys~{PIh9aFAu` z`^{?u$JuM!Qk8mxt(~GS)esAw9Ivo~A2;=$3&Cp2Nul(!`Qv(=5Q+;xiA)#g{aJb< z$eMvlm`D+k&Z$Vy;OG!(vlOEN^zXXh8Og>(7+D!j%=gw#9(|^Tv##LaqNu{7=h`Z82c6Qii=KWhGJ5y!NREj>;y#_2kzMQ?a zP}xLkDGH1}(zw|H1_vN=Ca#;>Y5syq(p`hdQ#4}Y8I}fo%pe>QphT|qKN_`!)_f>XZxmKwH9!r zLKzP(2htAZ6;DI42^0`@({(c1dMwPSexAGb+MnKAvS88I8^veCKCB3jC`_pxoH)rZ zc&qL3Kj7m5)Cl7Bu~>Ja*#jAMUNO@`|8Bye-Kdb~(_9waD1XI!x@!LFOfE$tBpHe% zRa~NG>m^U32I?Wj)b#*gy0fan6FSweyfrjQ_WgaclI=?LGz>IJgh_|P4Ka)di_OF_ zT}5&O#lc+KKDD;b@lvnVPhSM);Vi91a^XWF0{`?3hCtCzk*qNm;D9t8 zW3f<!2<227n|B7ljnG+;q!chgRw|t zAR-V#wgb6}S&2pzoXp9o6ab|Ts}`SHIaaOH%ES}C6KWb^52U%0ei>VF|4O&=9xyqlO;TV5j+tt%iy5Ee?I3Q&k&j5s4HA>H_@Old&s z14Qd%{fa3HoKe7Dt<;EZQ3J>CQL#Tc0TnbK;FFN4=ny4aWjf%46r=>vRbkv}P5cbZ zz$a42rH+Pje_$t9dCUhrqC!+>aj0B1W^=#aR(Y`Am9b+8Fv~0I+G#}7c2zAk%frM* zT?0>O{)>ltRVZcKX@L(9_;3-6Ct+pu=z7l20QH~X#XfQRR6XfAQh~ebcj&$9@id3~ znv(-@!6VR;s85jcgzUhINEZYUJh|^*VP)602+oCj0z#0#!&AJ4huf`q?q>KwsmB|(StMKT z)I&Z1CBdsfhf%UupU62XnkYZc%ga@L{sZ+shoY1bHBz6Disft(W`K-%FHS)Ex>bZO z%Z2&t46hmcoJn`pCD;H`_NH1FTP#zc%z-R$KdQR*zCp8uGC2v#4xFpCiBYEJIB&ff z3#jsjlK#4Zv5bx1B)iM|wbhc=M#Sra<*5A!sSyRLGk5u^H#Mkj<^m3l?2(}>@hTd# zQ{E)1spqCyRdV%+?Fy=;Vrfd>0<<0w_qj9JvzzBCBZRGISmWescHd?1VlEhBddkdJ zLh^S;_y?$XFXV2wl^Hshr-GjA_24(nxtvMjrrolUEar|K^%!GbwoQv#IBR z4Nb^Bla=aL-g-!KmU+PE1@jO}P5rySLoVCfAA@4fN5B^M;V&qFy}gawD6Zl8%i}@U zHit!5l5(MMV)!Xd2~*Y%c2Qf_{3=;7Kt2?>>%KjF-_~@qs0SvZO6HA!`^wHa`0fn+uGtb zw$bn;se$#!*_Powb+6`@i;}$BP3`C7(=*^t)7(hkvI37IcEIcTq3DqiAk-c&WA|>a zk@3^Cm~P=OkEgA`)?DA`j26G6kv+eQHbXKh3V;j)Pj3I?5cV7zU+}oH&O11=lLsjZ zLad=We_6D_eb}{5+j9#ac|`@|8P!D-M|bjs0kQ}DwB@*%nXoMia9IvDgD*E3u4gyE zCx#u){8y@wJ{4j8x7S4{rhmV+EH}+yukuwonlt3qR0K{+tu2@ zbnMKVM%x#<&Znnn-=iv0GU}q&G)d;`--TdEWf&d@A;ZA%UOc0?qT?+Z*_P8jlWl)`6X)wPFbE_&7OK z2>HEIo^*!F8IbX|x?Z|Mv}Gl8Sjn&b9|k&PwCV@u1gLb%C;8L zH5+}d)L`vi#5ciz-}wJnsWM3DzIlry)4bj4`G!Fo4e2l%o7VSwpa@=oPP4m|6`W|j z)X1JczJx>D@uVc>F{Js;qA`_$VLR{<~Xop?kj7 zeqrJH*}(N}WAJvu@Hq?^V*{p$@h{G{C(qWrD}h8@aYb3ctlY{+|4Ju~9Zz_cE1&CUV*DzjAJoiw&BXdn|Y|UvamauxY(p<^alj zY|JFf?>@`-KT;V}L@v z>oq!Xc<|3jImL?R_PmUWlEymFiAohRvZrp87;c{vpQtIQ@ZBPC2lshj``H!9MB^J% z7<0L@01`Rp`X|ZSq!K#zLA$eili`2LZZhToeCplPmz{vh++UKkov0|Gu~kTAABYXu zA?86(&d+@zPZk6OVmpu5qoXA1pDBHFvDE4pa+>#Z;L6w1*`zGp1j z7su!{Tl-TO%F$8oSWE<{$yS9eoIq)J-pf%7|Idpiq3|Rz>M0LjG%*}H%+iz9b85DS zQZcJ46}W=?^LlXQ=hK9FV3^Mdz>jIt6Atm>L@5tefkrV(WjYBAwAFX8fFse+&;q)E z^`ED*;K>g+f5PK6HMabuT)P^hr|aFH&jA~h#bHrpw4}`}j@NOoN5NM|97ob_*;yf- z1uwU*!Ji9He9ZlVBrIM|l6()ow*YVBos}2W4N2yyad2q*cr_Jd|4K;vMgYGBYkSnAc|4e0tPi05 zK&)?65y`0fU*~|n;&Us~_2gIy?ah<$fdiug+bKgu@4W(3OL{)^+>j_v83bSSH~#$Y ziQlsBh1>P=wo8ehaGUbxDI0j$@Bb_{7NtyM9yw&3r|?}A)wc z=YzL50%AF~r=fj_=t7TDfZRs%0l&faMK<_Gy~z6bU&i0h*1tXw<3@hsdFc}&U`ipi z2nvslWxKeeuMkVCAOQ1tYZ?^|I9BXTp6T*{MuFE*eI(_ZT_4Lf$b8{jsICr+Enh46 zWS{K;`18Bv#er@MCgLda|_eT9EZ4MQd%)8x*Y+~C`ZRjo4&xHm~leZqGUYn?< z&B08*0JR0?a_#lM;;C@_l6sDhQkeuaMxXgX#w9{oju;H1DjK`kflmR_mJ26OmseNG zs!Rt5PG8H*bILo`z8Np!%kbyOya9nU>2xc@lqn9Qws+@HNmf}gsnQq{atU-EI z|42`ta_dWva@B7Ks^#zaf+WWOu?SLiw(E3-!6zi#=3P;{POr=$(}I9bhO&2c!Q7ke zz#vsV8r|>w`$D}_v`F)*mFh>9>MWiC_@jNI{%!Q$-Ot&kD{ z6I1HlL5lBh{>TH#4;Z%rhT`=br@V26oZ6}yG&n0thP;3Zq1E8J9DZtXUoj}!>d^a6vo|fQ&hY$F= z?2xl_;|@!5%6T&xec=SgSSnGkbYOUiIY(tG)zQ+*E59lbu+VC|{)K&DF(c0jE30D9 z@gmZM=w5EvQWXt1hOE<_f&0&bV@roO>IrH59*wV$Lb4W`J5UqDLD*9A1SpAA6dRF- z&F3YQwVPoi>UYx&+Ghz5!DHPivblMUt4}HT(`!pw^#+>-k`F+)i?Gt%5y=?mwA7T6 zc>RjTZ;QOp_g>Ko5V*{?T|?E4o4qhIt${o$3%t8{i*sA&OWzdxN1Ki~jjSl@4e4fRm)*W@VQSWCbYw?4OyjxM!Mc8u8u=TvDCNZ1CMLA3Pc< ztXtNGz}4afwru0B^&gREPJ4b|^w_vfzvnv&Tc~KH3}@ju4Jm@OY9l#DiDH2UwIb-X zmj?p^*+6N$ubl1iKN7Ex%_0@VlIwd{BI}!T&aT_b!f{X!K+jt50x%72TSTxQ_x!mH zn_vDt1a|KE?L*a+-(tI)0c<)}B)?GK>x#o8X+aszibjV%3XpMyi4bdM*n*Iz^*gti z`g1lDkMV@bCZ{}DqHyrug7o;;(+*-yeW2_i6%`j8+bokeO6{+o);0G(<^oSDrbZlO z=n#-o&}=S|n(rh4FbGtvZyEay;OaEL*Y=Q@hj4p9Jb5nN`Ir=+sQpd?Pulmd`@Csg zK9E?PR>Y16W^RJOv>uw|;u0ogG}Q70@A!*sp*oBiYCqRgBv_?Jh=A`s=CEGJwtj4K zeL3`fuGI`1ce@*I$YVg)$d#dM&&_5i@NG^$Uz{!pLx6X8)-9g|pHGzh32a}+8sI^$9j(vF=X_`Kiq8y~@bx*B82**%5$FS5n5Fg)nKLbIfF0E7nsx!b}UT-a~Wy#_0 z#MC&b`etiKHPe=gMZmG4)QWkaa3_{JOVlHaQ@xaeDTPQ;4@EWkwf|{t%gSgKd`Rl1 z^8pJ>0yY2Cgz=N-N>xC}O>JOT*UQ((rL4|GD7&e6NG!4KH_v&3A-4L@;ugPpKnNhjInd8=`rlO1HJ6RyT<=s;*fMr-2Mg(&HN*R zetbOJ3SAHlzNacY^*kHKwAmv?0JdNM^xYsBu*6hMQDq@MT5gMc*?W1CH<$E^H<0E0 z7knIYrzrJ!_Jja_=&gP%3wf>;-4Pv|7>DoFhGbbhA8m86kEg2U^@P%RX>wlAC*Y)M zETU}Ih$Q+KPCgqZo$t6x_WivC=ZPe`?G+yXrqtw4nsmDuQ{*-;+?crqWeryN-nSVp z2Cclge+Z})$s=p;RLL#3uJ1ZiN?3(K30PI)D;m6KS#Q?r!>__ox#KlItF&I;W9C;K zro`OW=q`{Gcaw=whrI?|`>v1IdU&25ZEx3rRjhbaU@DSB>}rY9x#u2+A-|m|zRrvB zufDfEKkgn~pO3mIiD-pnV)6_4}9eMAojuM|6bPL_BPKvIv-4|fAy@L90eiy3It`gzDA zID_YL#}Gg@MRO}Ia)xNEM+c|(1?Z%&M)2X0UH9zh=3)`stw7wB)hZNMuF^a9@{)S4 zO1fBNks6k93O(e_tN)yZQvA{d3gHmH6K`-ZTTNH`X5^*C)#pAA`@pFZb}S zf!MS?j4%STS^Mu)ozH*qSu=hWv;KvXKhJBwpgeU*(*Mh^^L^B(-EIjv#r`w}d)$0B z9R8vuAS4mZsSYfrU4L15ArA0yCiz>XN1P}nLJ;W@RHV>rvvAF|+UP2h`mMMME0Kdj z_GI-(nli0lva9qJXNChVD5D#{a^aAXD3&$phf(9rec@2@>$BVOkUNf){=`?_!J}V@ zUfrCm0MK@8UTx4J+pisVz-6)>@8h~V{<`12SZ8fl%$^_kWv1Hnryw4F4BYdi*BY>f zt+GljluNX%A3HKl@voU^_jbJft4wRN*F0YEwAkp0eY4t@7pa#MTSZ=ByC>>*4=#5g zVS~C~1{D=ORB4}iNl=7l z((0&;cA`45fU77whdMtduyH_hoqs`u`4gXuc*JynjUz?T?QkCs{<;Ta^FK+RN;5Wy(9TNb0lwO7BRC>41B_$j1gIOh6rM z+9FW*(5by)Q6$sMPy^fp+u0~@fJbG|d1vX7>royC!z?{}u(&0%c)tIr1EHfXsiufd zEa=yWiFsddP@-3ZxtD3ja{fQgG&_nbKb4&Ud7|!7eo0O`jA(HSMaoo+EmEU0JZz5yJ+w~ z&hP%jYrNS7Z#Sf$CTP#mEp9Ctcj&En0Mmzh4dO|7wgoG|OkmJI2y4zR);kloX|&H8 zbHJVw2)#9RRTr6o>yj@X5EUMs(VD=Gk#68~!%aEazf)r9Eu%q*Q2&tpSCP@A6+mOe`vV6}9 zC4mc-s&$b0E9|j3 zL*jF~sMe+j{0}_tR~5~JAzvuurL8)Rw(g#4r`F%@t0nzDsFp`kY#>lC6&-(XsPW>8WuC^1Wf?bW3p!Av4B9MeCTFXT@wYyn- zniXMIP+SWol~E;yzM7hA_zX=o7s{IMC{zeQra;z`0s`~K;{cylp_H<>4IUWZ30tDT zghDqkjmagIk?_0=7}T#+@pVD zk$5ze9k`%~X8K~@yYzH)p?iG%;QqA-m+i;$`b0K(VszvPLX{=Vm(vHhdE5H~Xi z?~YN5hM*4lh6BM=l&h$iTejo)PmI$s?ICX`5`L&Xik42>U5sI)i-p*S1#)X@OMSK` z+s}PvpM{mQ=OnDio)jKhkwsL}+4E8IdrBara8jMGkXVNmVHnW4?R(ke=nuL)LX4_Sa zs)BF1B_mfU3m2JG^M|lWYkB#EJ~OJ`!iFkv4;Ka7Gplmi9Eof8$$svyHno(e0*e9( zQKWJ!8ofu+0JIs}ek95$+stUZb<{R$0G*p~EceJ!s#ct7F0FKYt79yyyF(%|BUM;! z7N6+mrZ6Tsc^F3)7o!lc9;V}~9ZgNolm8a@F%Ak2&ZCxn?aquu>X;U`($;*jh2ox} zZ$Ra^@@J+Y=cXNr7{xG007!$+xk`^01)XC$%u$RO0NJh3IZveckOF&vf16le{qog1 zCrGh$?!x!#`}Sk>`h8GhhYyG$kGVj@ZAHudk!#4>$0by+O^$$D>5Jr~?d(3r3V@?? z{5Ov-7W|LuyGemZIXgv(LB{lV`J=Utf{_EUFZ;%`nrWfWG#5)$PndkHo)Gc>_P{8$?J%w4vw&{2a#y&+?>iU%X%^mZBF1H~2X*)bP67iAgax?e zTAnEcO%_~vbc9ie^~z$)M;42_dHq^fUc7;KKkfTi@0>E#vxZd5Qy+ivJedV=P2=+}uD5K7 z8bD+-8EIYyLIy>;9yEq*PNwShSDS-4R$5$89w%j?#EEZ0Mss5Wsc&7hp8i9?v}Je!X|^R-O)#AtLg zlsJai1xAs9!cS4)*$+r$41)m#ao;wYOrO_6?j?m?O^1|ef|JotI>OCXgb_DdrG~T% zwwIpJvkQ2dw`GnN8!+V;FdjG7mRuF-GU`Tb^jZriL&KGC4_P`Bwp(vyWta;rhnh7_ zJNc(caEVFgSDKyvPNfi|aG`Ui@q|1{0D~UEyR)=kS&9xG2XFgv)`NEaf^Q#z-OEK! zApEr!9*6W+tQ?F;efi%1qvF(}Edgu9w7 zI+ezuyOEOa9Ln$VzVG*wKg_xJ+_TT#Yp=al!+?#(PKH96#umc#?p5cxZ1Bk7WM~A$DJme{KK`fkA2N;9SV&1Utq<%0&EW?L2USbT(aCqYk`pP= zdnk9G2hP00IRmOIDe7EmRGU>fRsqQwfwQU%mBaE2sd^6-2Q{nY*21bRpwtAv5OlhZlew#kk{pQ31ptH!*4E*OGUh zG1XT}9DgCYCX3p`-_n|T!V(X(KGCsWTx}wSa&I}?=Lyb>Yv&%(22JtMfJr5W)Spng zGK;4#Qu%$z=Z!jk-@n2iM@%=@Q!#QDgFmhP`VaUGg9_K9bwcPnu_t|;1|_fKrQfB& z>)mYuC+N`aj*ZqzJ2KtA(wotLtCZYa!oVzPo7VwB8XRbAylZwekOBc!li0)h8}(b? z@m7!hlFO&qK`s!KVOctIwy^f*Uj4@U6@{2IM3faxM9j*<4@TRs>gwy56d$yc-y0Rv z=tm~4tqt%NOz#&OeGhjqfXQf{pYNY<@T5IIFXjVN zDJJ#64>NDZy05u;-w&p{6Z`J|d7VIa)p<{bG-}{Rn!d~Zv-5>}XqXt#%pa~EU(DPd zIMoF3hLNn!0n;Gl+bmJ<&m9u4q}73oiS6U4DMNZKa)^)<6&UdcX=-u@Y^QHC!&sPR%k*)&fIJQ$ zXPBGkM*$SVPLJ?^XQuy1lr_^$nOskHzN99uzis#SjDrLnlLGE{G#GK5E#BbYTbR}4 zf-=n-gj=MSXseGaxB|gzTrK7=BjlMDjLog)-5V9(#JFAOG^Z-Lnnb#C+~RDJh$@ts}|I zT020p4vi2BJr1+>1APS@!CANFuUFdg=HA1mRKf(Zv)E@R&%HV4k_+b@Cv0V|0wL?n zJUH1#f}V;^K|QFPeW2$EuKAik?$%MG&EGeujHSOJD>toTiDLi6z2mVljCe2tD1UqNmgiP6nzZXa&4uuko>S zwlxQ=eJ&DTGHcu451IzXgxV7(-IIm?OKou@YNo(n9;V(#70`Z=B*99hjx2o`tKAl^$|gt1*9vFlIs5}%~N#fzI(Sm=W4u0 z^SS3lO)UQ36ywSBT;Q9GoU+Hs3E0!`xQshyPd}L|Qif2EItewN{JLK4zc>&E%!u=i z%D4o0x+x#7JD=%ysnG8pGUK6&dq64Lz70{MOOOMwh7rna@wn~8>MEjC>{PttVd_V$ z>X6H3kKLH(Zcf35YAVZby>?Tg&P3~1x_HGpL{ zq5^|`-#a6N&zeomzI6hEjH+&%JC0cBT1j63larn^~2u@EALnYA$Ck*{$ z`0FuGkr^oV>Du+`C~l5_;^`o%0aTL9{5(B3ASL(&ORO92lu44C_4;*GSh%wx-5a77 zIAH!qLP5HI{7|L(<6}P&AR40G@wiOsa?q2ml9sdY3#4f0V}ahaUOrLzzdEGl6X8nH zYzRHriSA_}b+C9Q8%oe0Acq4E@av}--|Fpby<5OKKdOhFY?0(Fiv-l6wH2BPJ#H6Whlb;s~by;0*uBaasQN2)TB2ctn``bke| z7p>s0ZdCaGd;YN)a}t2{Vs1!>&)Z<5YvEZy1=fM}?&`qmJmRvF^xYr# z;A2-{{yq4F(bU4r`M-WJ3E9CGT|M|k0YvX7^#*^K19uTy4+7Gy>Rf{0O+&{2E zw(sj}r=MdVIQ)Tp?g4j25~2#2QLBSo$>G~oE9iJ`nurcI*{+70KX*r)Z&e?n5F45R z$LL~67+AJ39Yj6EUfV67#mXJvk+);6Vd-MDd9^cQs}qE;NaXa3o>48zM3Uxa?Ygo0 zxxa4J>S9QfH;3=32RMAdgcP?5_JJgy1)5I11xEM*Fh&QFKW^)}n;D*%@|k`>&T4h* zr3AdtsBFSsP_9;rC6y{$36OhD*8Cw6M1wBR;242+R}dAmgO`<_EeoTgBjws90I*6% zV{JBVCTY>Sj1n$k{-3=F-J9vv8)1%izpuz}eD9T@x1FaI|F{cjB?rm@y@DtGi)@-S z6~N9$1!0}9RiII^(M)res9YLO9tvN-qXzW@tJ0{NwyVz?p`wVOE@z0Ugxk~MGx&Kd zLH7%oF*8cW+>99*Y@`Sr2*rlIx@82jd$@+92FfTX*k|3#boSU%6mEi|%74?n;S~uN zKF5;&Jx$iJPdkVYSdOGP<$JsaY~1WRY!LbC5Vf*d7YfLr>rP9AHK}bm0L@$OkeL)6 z&N$ZF@)|ZJj=A1Fl-L1Ytr&}amqx#>sWGN@cW@*Lw5c;yJdY@(6W`;6uH=wMh)21hOJzH^j}VWLZ$P=)%4 z;}?oh1lUul`@lqC^d!2brof*-qiyDak_(Mom4?&nxEH>9Xm zT+HTQ7+Ki}6al87@a%C`rXvHuSFs2VP~V3Q(*fRs6}-Zz;y(}WQMNP)kz{ZTbFHRa z1K+rfX|%gn;_=j}b^&^~Q9YdI)K7vty566RxykM~?E%@H+Nb8`#HHfu;GT1!Yo zpxw$bR6+fQ(qnY>n6w8!0@bx=H;5a0+cDaCd)+x|8gSVft2~^?vX``TG#!7(8Gx1iPKY5GqsCL40O z)bk+e4^gX?a3+WhhXD{i|6=an&ifyV1!UovP2 zw9Re5Q`S4Idm2;Do}UDYJHBa<2XJ+Mns2OVyLlj&{S9A<2ToWFRqZiPa+V zsEMcwc)LUjG{zZg>+yB!J z>I@{$iPHLwFM>3Zt#GWrzU#OVndFqiVbE)}ap}Da({)@;a#(h(KWTd=t*zTUvwnLM z^eKOz?(U6Z{P-y#yF!I0Xt%3Xu%R9>eNKi-aW-K%07AB3wQt=0O7frf3?!c|PB8Sv zZA1_QNC1icRci+ae(v((BG#8HPrK5c`wvn!Gp}&-E8A@or2epVJz-ydoO`nHerGa%(hplI7*Fm8?>gxbE~cqw}1 ziC##&t8bSPdwd7hNeoBtPUzzj`gZiorG6BYK4nC_^j%WrO+)h@q^U!;eVhtCuJ@v% z?&8j9*4nqdgY7dhYLhdG^hTSC@*K}->h>2hky+aG@9%Nev?iLw_gOJcLhwcjr3_}Z z>40e>oyQI~MTuBnq?devZ1D=d)d$$P7NIubIKynK$`l_>f?E;oU*zoSE@!l#$>HCV z0Lb*!dw5bUSE=Nw8Wt1FR#JNS%9_(xo|*M&6nMQ;CVAE zy@Ads{O4kRyx|02O3H1^-G<#~0t2eFmt4ZWx-w-+2wvJWqIKahY!mVOtP8(6m*zrZ zOG-YZC=g~0>lA$^WvBK?V#~K@87xxnNGR;=jMNhRe7xKQ@gQlYEuLgwWPJuXLnB*mW>y4VP_v2@}BKH z`0Gz*ZmiGM*_J1-kS$9qYZmO}`c66s^gR`V7_ajaNOE(m-MoU-3;wW#`eYJ>nGd9Z zIdm$i`D|-%{d8uiTS~abG8tb>tA~7$S|E!<1CxQ@4oh!i>X*#hbMgqOPP$ebhOyU> z2&Cs2M+qAjJ0!>2c7~`;^$igtQdqlmXU`wr3c|0h(Mz9wo7u}=ZCAGozv_6YzNS6t z$^@&h_|qwq-#kUgY}nycZ)vK6P46R%VdgKk)sS}Jc{J!%{2)}HtGfspy-vjI+Uy@S zIUo=Hw&lMc#DR{Yfsx4*+Mc-04ggCd#GSWJ07xuer6QWPl_PZRv81sO_k7y#`6w2X z?!Mf_!G6m>9mYQ)l>>53=3~u#5F6p^1-p*BrT?JWf-&33fh4y3O2YJ<4q>E(jz@2! zQOLld%(Rw=v847iQ!j_C=;}n$&Z>RAzmvwC8%1q8`1)XZxZC?sN|zq4G~7`v`8`ak zt9FND(-}Dhd1{bs(v6wrB^(wx8A27?SDOBYja`A17l?vL#%#f>8cyG+&`)rT=NQ9* z)WtdvC`FI}`{BL|CC(;hMdCB)t*kmB;8%kop&rZ>miGYtyBY^1Rsc|cX|rGcI@asW zCpH9~6PDzx9Ao&}9g_78KYTXP0}xD?2@A)^hzYaCkD%s0FCG9aZA2*(8>rBkHo1zD zd4XaZ((p}dzs~5oC6PoLRs$N(UUmzULQDq<#kTxdoPEgt^6kqx2(=SbUN2MHabb{P zt=_+9!dU#z>$uUHj7EV?QE8YcodZ^F(0?QI=T5wzkC(2;GtkRvaVQws*!eCM_XZp1 zqQ>D4_Gg*s&Gb@&CKGh#leRCiu|KmZ(qu5mhl$J0S?@Dd)m`aj;J=d0fOg;3 zI{@~ltp1JA0v7yB8P@XMK!+pH=sEDP7uTE4^8N8&pY=6uB`7hFq*!G@cTnJ~X3B@pD_LR8ZHfKY zl!KB-l2lg%kf&*N$!HR0K<`?@KX-G|rG5{82_Y#c+uK*^eIYKV%C0P!`t$lZKxG&V z^Hk=VrT!GH)K!aK_@&pgTK72vwc>=~Ua)`RwK$9UD(8P%R;2og)&9Z|#t^EW2JDDi z%tX_g5Ib9l9SdNb%O>gJg{YPLTn)6>&im?hePyKHs8@{>#1vA|*%@MA5xN-TPL4r# z?oA+TGr9wb3JZM8B=c?}?9fq{KRb3g3;)R6-Lbkt4QF-Oz}=h#N1}-%cHTO?w#2-R zIQ|&bq+hUJ>%Y`bns0DT5rQoC!G{a!lv9xwq#WogNwtx@^L3!)0AA%1gglcB+w(WH zeXVF5_*k!6Ja357G4M3tQ|VdRh2xGjHhJ-%I|5|6*=1rgDVz!zt48S1C7HC#hlYsl zz=o*e0|RQ5w4s5ggRKnj@s;f&RZZ6hw@uf2b>s7-u!adC2e*n%3&h5U_14uKtCeLe zBF*GtmoMIZj56E_$j}HQvNP z#QHx=_5&S*0+4r??VCn+S?I{WR{4C?wX?kr_^hNIU?UbtP1EV?5tjS#B{C6%38qjW z8I*e6sqW$bP@;+90V)xC|6lCu4UrI_%`p_99+e4S7g}^PGJuXbJ9vNS`|pmV5x-|!h0UzRP1 zAwH?I-RzyK^k>21QTx6Gm;y%&^{M{Xj?#&e8Or&sb3}GQtYaXg#z098Hto^>T&5() z6u>F(wMa+$N%|b2t>N2+H_)e64s3EWYhYmU9GS$pVo_(-0SWe3L#C=*zdPS?t#B1r{~&+`leHtsuUBef?z|upn3C+ODls-mjpCN-ngm>B zs7Oaal?RiU%6?_4_ZDrfO|LPMw${hrTP(5I3Q6^h4(!V|udHtse!SV!yh~5d?)GdI z+)eXFvWx7pR(J0m8y$vtg3P2HPa6QJYarD7eS$LZDcTB-7`{8*@4!8qCwMM`%&c`6 z0{WU3JyEY|WnwEV{w2D%xtx$Njv8C#8@=h6Fp`}-_e|(=P?r+JPaL(X1#;7OUQT4< zx_}=9aIq`?HeRU>_aMm|z$`239r!>w7)Ho}4iDw$B?JB)39wdFbcrS|k^cNQ+X5~Z zY#%w|)XQeZcz7mo56?~vLHJCdKx51_otNwr!n@_*F;^qUMf}U4MLw6sl6t)enKC27 z#Lh-)jYXJ$4Jfoj0vhJjw|R_)C;QCue^*TDuC)(hk5&Eg?}Rz%WWt>663vZnf!w55 z&0oD{iv|3LWl{Ieh~#0i7JH_ebn{4LalSDy#iC59#wdn=Yf-RW8lkqTC;~Wrr1e>wZPe!u|YE6BuNun%?u_?4%g)ygCKoa`x<^1bIut znrA*h^6-Cq^L%JH&FA!wYfgZT7)P7i*V93LBR)X1eB2fc@Wa=BnT!~bY%q#?P#W^Z zufM=&l08)91L?7{UxO7X=R^JBO^j)$}hltVAJDE7@2=nhY-_wjU zXMcF#p~>9V#ww3YI5vO!{v$vrzl>$~32RpD;@xQJ^tAfl z2IbjLk=FSZS5Ok$d*1imzq(8LgYB{aWP(l}XtO@WhJPJ_*p>R-4*e=?$e?~uR0Y_# zj?bhjbtB`)ziF}$U3kl5dfa29rD7gpfk=XS`#6o_s|J3*N;G{Kpdbib-T>9)boc`8 zwd}LtA;79~>FC|lfe^Ft0a~A@K(>SHaQs4bhl*DU}9s#d$eIQfGYX4bWBX6MmQXh62kUKbNhhnyx-KuUyA?Ehl zVADQE`JK7Y^dkF%AwGQyTm=&YqquigWR($HGO1zsx%Yv^{;fG0rat=fj4C4NhV~yOFRunQ?hEI*?3q94wQH#Fi&s%gL?_bA01)*!29N#snepS<- z4a#eX3MRSQFoKYR0lf$)+-|_QNI^R+xvy&pB~Ipzwzd!ssbb+Xght~;y{SzvLZj5K z2N%T=0UT)S?u`GAmfHcbgAyGGr--T4p497Ale1Ybq}&{X2oihO3Pn3^yYcI@6^R{& zz?jFc8XtR!!_2KR*iGDx#|cZy6pX0eK5g0Y>#SDruenXO@PLT)W}3io;b@vr)M
  • Bj1^{|UM1A*C zr}s<$25fF2T`M;mC>8eV6+^u9fX3n$t)gf$bkJ1k8APN`*WbcZ#;{3VcyXLX4MrD2 zwUZ#ljE)}i%vcj61W!M4*@EV)>-6S?SxUw2aNd zyx|*7F$E)RHg3j3=PxaHbI<~9#w`vB0h|Q zqEf@TN`lM-rVObcW-Wf>1D|#FqdZmkp#}8&Cnu_VW;` zq7@GpVM+`P<2PmI+HsK3r#R`;k8Wm4Id2pZW2vb$GNf6>^PTMt#)6`Rd#qeNRRzj5g_~$nUl!eosFPk zOGs!*Pu*V<)fOfHZ%7`YqLMG5WkDCG=@}!ik}uG57`Z68|eO; z@4L&ASUX$2zZTtcGgv&);$XFXk4#qHqYg#k1) zRc>rDv$RRgfUCh2M;tE!VLe~#$z98aW%`Fc1yc54s0%1DlDpP{q67ope4+Dig#7un z*l4-WRqvM_9$pZ2;~Dbbv7_3DoqPISR;$4xeAnk2i@tD6#so@8n0eH3%xxzXUT}2A z&ji^1q+1}--m7S~MAe;(5@lhI9lH1jDk^LVqfth>9xXzk0!||IP>$0zdAf~H(bS#z z+x*s1fXl|!*8>cJF5KgyM8xY)=em0Cey=gI76}ZI;k?h-*M)AF~-O z(u|F<7#;c=NU~iEUC5tgARh9PC2aXcHH#Tc>XZ|y?Y>z#QW$IYJbUhw6Tk197#m9k zgXJfGA7)x$>fK#?`d*vI=K@3YajV8(adSgPWV+ zEsb=WLivhm6e%gSNicBldoT>23~(X=Is?(hRgy}lw!E1Z#k=U8e98zbZsv$POh>)R z{@b;n+jC}=RZF4MOW&XGF@@&r42ipV9t%G>Z$r^D;w z{E$j-4;{6t8I-C~nc>}0d`qWHs1JJ&7MKWrDRxpeYX|^fwQS~OezM=RG^h16|K|$U zNgz=-GMLb7iz$t6$~*Z zDveDh7dCd{N~?$6E0TBxBUpN>WA0x_?EV6K0PXSfTb`wwK#@!tKYcwW&B`ekBi#ea z<5z1*bYnbmMhw!X)G@S)P9VCHN^PY*8!c5eNzjA&$>kn`%Y?J8dk1 z!}?{Og+K%S=10$b;V|hUPN3pSCnj?L@ro1swEdF@%P%KGzLS%VLpo5lLX}Lh&hh<9 zt87MZJR@7O1g|o6+Ar|MjZHL=zBQucY{yubc4n{OB+|JE+xm)bwICdurEAv4lDYI} zlk@nTq-ZAo$S$Y>3KV{#IUF=G3g{X6iFHonV0KRm=Bo__*f~8xM4uXA~ z$pmL8kDIfC)a^`0f?$qVi*(hR{>0jLvT?2EcyOvj)=r%!DPMp)A9(>pHE#sd;w-L3 zreEpEDBylEE4$|bP{9&Asn8Rw)3v(x2HHqkh)M$iCfmm0hr)RSE!Q+Uuyn!7Svm_} zdR5&CEg!XHxWw-w4kz=s3R+?`8Bzvt65+NeC6?$|yB#{vb9oIlo)_Bc>yiAx>*NEK z5S1$pvAI~=!_Fl80K~oNH*th6tIz<34s^4|9Dev3;!c~i1*p9(_Q7o6qQp+ZN zC0t;l2C(Kv3pFYv)up63d5@p~dJxZAeyO9i>J5FfUHzwN1Yd;+ zp0U#Y4vAIWd?+Jtj)%I_(l;>n?0B^?TiL;n`XoKW82D{<)U##Nu*Pki$+6u*pt_jU zD|x+Y^z;Uu@x{f^ZR^SJf5z+7Vk*y;&YXQ^<|8%y#%=1Hs7!*r?G%B<+ioXGK=RVV z9{aiJR8E~yq|M~7Q(xw~qmn zm;A1-(U#kA7dyv{aJN($1YyyhU&y_{2>?O!;m89~(6)4irNovGOl1JE zS8$R(Qe(1s_jV^*Np&HQkzT5J5&+1*3j-S<$PdtSUWAEL$>p+9KQDoslc2$@do;M7 zG6%$I;d5Ca-NFDck%8!*n@#L#gEx|zqzA0uuN#Kj{&fiLux{!E%v=VrD-FGWFEW~% z{-W<=w9;@YfF=QalL997a@_*u(*-iGm>x*t_i(4{IA@*4q6kPc$MO1IchrHrhT)3h zl=*&!f~qK@FEMBahhPU$D$l4yAOY~2hhdT@>@7ZQj6qI;ok~yrRvJLg@Gr{K4w*>* z*a867XtuU+KqB*&eR#Hs-`KKcsRvhbqNLAkrhv~W0nEduEIvy>kgl?AfN-@1_Xay_ zQ7z9Da)EKQQwznlp%~^stXttEpWXVCI2o`DC=;BV{;+NNy|5NUq@WGZDf`QQq`4TS zwO%=H90&ciyx){v=?5l}K(mD!5Ow%WdKSp-VhOdB9jeKui_wM0Q-0hk*sEW&TRz^Y z{lctky0L!Hngo?fey&8mi)&}FRG)9EAFk}MGfZbY^Hyn?&`!X4bN=pV7Fi!}3bSI< z1hjM221?}V4{l_hx-Hj&f)*1&&%y?xmGDsUB#L)k%}e@r2U&_+LgBx$w?H!fZ!SJ6 zIT{-q?a-hV0bv*=*Pvbg$9&iM^KtP?2fdQdq^~9Pp_)BUyZONH`j_V4j_JMst>4*F z@U;^_yM2ejr0Z}Hyv4K{{74ARZu>-ev-!hL^p2Zyo9}U+!|nbI3?NK@H<9m4J`yJo zQqQq@CjOY_fps@V5kyo3zQFV9lQ7ntZ}R#YD8yH5?L--YvN7qdRe^KQggDEgB?2UU z_JE6ZlZ!bP5Gc)&TJoo`d|{<8wYRYQN5|@YsT?M=rsbkpM%)8)iGniw$jnzZo+e>K zM!Rz0xgySaXZ;@{#T{a{CRj>pg!;qDi_r=jZ zr4H0to!}AO+yEHTBK_sj{P5pPhk>Fucp=U^j(U7UNX3mT0q+;Hq2U(koxW!Rf5}95 z1H@C{{LWUs^F+qZ)fUC6n@aeD!^Mk>QqINYCQRWK_J<&OO4(J4FzO&GEwYGP|M_-n z3jc;mYCBBkwDk0OxoE|y8xYs@wM?O`_wU98L_%Ga58Knc4y7z0XjH&72MgI~S*OO8 z=;Hi2MF^f|uynxI1(ifA+aN&fqciDjnDXfo6L|?-1B}?U4QK?a5vH@`t}Q4_S3tl^8+D=`Sr1XILy7DL`pG)`EE{3!@oW!dDQ2|sLcSj9z`kXs-s z><)C)UsMgImJ~F%DC1J85U*M(T5(*v`%i;Th_+oeiteeLSF^ zeIL}8??4lF?DsB-V=dCmo~yxmBA1us_d@LOEUD=?Ze1r=Yxpm#8tIuCl7Wni5*$b4 z-U&h_W$Ac(v~D#T^ylRL#q(|_?Rfo{%sP8|&`7euK_-efmwJXzDOAkYjGT?J8g2qN zJDa~TLnCQwg%NQE?SlY4{Rb9(fT>3>aM$kh4~>rG58wlS;Jzlaztf6`-zqk6JbEHy z6qgnRS8M#r`LU_dLzyf}k{dv7yQsi?%uMy}$8Hzg78Jnt1sGKtFM2spdy!L?=KMxX z8aB=o7X|`KuJowZfTzpfChV!l+TP3Pztk7g75FNK)-~NxxX)3}MmvZZQ8J#a`or^q>}ak9_DdofFedMr0>_omPLwBI-ba|9t3Kbr&B>qLQ=h+wG)`&ox3K09qRFm+k zS^1Pz%aoL^byCCc4+~aIxp^E;fGLQ&I|+u8L&gHNx5QofB$+HgAvH=1voq^|t`bYq z2v#y?G&ck+Z4x&=>NCMe$#$e?wQRPdjmUB>oIC2QgcGevm&abCXfF>=71Kcyn?TN{ zyCXGZ%tlxC=>PpEPF0W~`S79vLSnPHAnwOS6sHrTP&{;hpC$M5rMPV8aeKnwLm9l( zldlmf6Ac5h6dg5;0Z*+vi3BygV8(1<|s}WZppo!3dVU7onU+69nsbKs`>2z>kAT7H(0=<42U3 z>FcmD0$mj4SN)gGT$<}=Q{=q{$-1M^WY*2}oU9Uq3iq`$)MQQf{~3S`A8V)d*favB zu4~ya+eHSV$)}I%kxLr2^!#%y%0!1H@eT=H4MDk-QCbjH_Te2D%KgYNvFb7hTb8Lk zPXl#~*zLQY79NM~QV$EvrpDSeg&q(VbIVMb%0uEO4kQ;)vi=9w-ud_9vz+mcy&QGf zWaiYaJn2O-PKhGuZ~3d@mTrk&bNl@8GQ?&QS^F-L01!sM&6R{yRVW!}`~gmq)?1vT zx%$h0ACEgWw#xVK<2zNe{T%#gF~XpqXq0QrWX07FoYeI$8QG&9jF$;LUtH$@S@5h0 zb^4F+Et5u(A|&5?0^y{o`taa7lJ2JHmW)ofb{Qa?GStlNzO52C+87|Z;B*?$3@!YL zODL7U&ZI%mYkx~909`itm+Wr*j>POGu}n<_D-VwD9$D2?y?IkP;eO=h+yXUDoDPo` zZoTa(`$AJtsPL$6`-)oCirmY?SdV2Rq5EFf%A6GwkbaAlS4&oJ!h2tN*kH%aZ@IMV zUJB~>Rl#Ka(UW5z7h!(>(PTT!b~dK+CMw>F|DOxsj&=w3*6I8^dZ0}nUOr<_R-v_d zm!EPZ${TlhjODn^fII6trOEQGv9!poCNBVbJxAe(7b*D3hlVFZ**AzuGRZQN3rEtN zZaO3X-Ll%Wd@u&)lj60RHa#a!`*-8| z+vKpeN7Ykim{YLB)#*l6LrUpLOPCkACIMw#M?{Kw1_j~Se~!7IIrLSM0?M%Jf||!EsoE8J+2gVtCuFpW+^Cn%2PN@Rw)kjz^1@27jrb$vQF}xsGJ6Y>J80((0A= zv}3>XBi=3QO)exx>hInyZarf)|^&Z=Opom{Vlcxb!z*7+0_YL2b4*jTh@p#e9zJas>U2dp!# zSDbI(UY4<4F|QOo_Ex6fD{6)*XeqnUqRgPowmSl6;d@ZKjI4}ynU=LsgP)%tm~*U@ zl>1{DB+nGSUs4!yx`~98t9|Xzl~OO_gjz4c{*I7MO(41JJdUu3$(UHNB}k)-_%-l~ zj(NoM_!YX!YqBFd_!aDFU@fYFDjSQTP@Rkd{(!X+955wGt_dzIPmZaU z=+gY?(i)qhOIpGzy?T?1SzHH~8Mf5l)}-o1IUyAt1yvmdg}~d;7}5Dvqy2l4rKN#f zh_x<*$0jX=Nk!oUYJMA4!tqPYkPkt4Ea;N+u(FPvBA9l~*KKi>$1nCcrjn^GGA#1u z8&5w#QEvNStGyq|T0Z?Yy2~oft|5qH(A!luehGX?dieX9JUiHG9@a&rR+Uj%T`_Av zcwyaKl#^4tWYjUe#)S20*>`lOX~pY$rO6VtR&Su9v$RP6x%Ds^n}ZA_-UcUyr?B)} zmXob*T|r_^`JOUIAcWgM$ggq#4{?7jNU^z2`eQIezc;`HnT7a9`5&IoIxs`?!ki3E zS+c?IH&;S;TSbo*{yZgj%1nh;J65_;Oe25bAg1N*!kdoPFyx1Uj}v0{n! z0GIN71R&?S;PC8+!hKQ~mB!@tlm*by2yYNqGTgjKp(eX!*F331krcL95WxRTfZ{ zqfj-Om66RJqg#@Sp1h8B4c;l5U0fK;x6+TYG;}*Cih8L0B?{8#RBYwQs*-lUopSUc zqo}a8tt|IjD5E9aUF?uFCAzP@Lx6EoV_sasV)mGc(~sz%p{TCBRB2EdJAc?z)*2k) z?&h2%`&`4TC0s>b?l3K<`L>VjER+eyrt0|EE-K}$q4;s;Xrs+0#hB1Y(dIUPOdxdX z7S9&+PW6$4mEWoOtpfTdA3?oNS1Iq6yYEMUsvl3LGAKjL@a0i!DU2;cs0yLGm!soM zGHvM)ae321U1h*mSz}PB{Z}fQP*Hh^=%Z6U`MDX<` zQN7t!-qn&d{K`OBxBZ1|TuJG;f_AEban5#W)sk0R{DfW&+oTqCuBNG~eEU{XG}1_y zLI>~JXGXxtplU&1JfSidBUCNIPA;O1GpUVAryI9Ee`0EHJc2jYm#nHjw9t-$2h$0W zV3}SEl7w4-`|3Vr=mJ*rnl^Ogs@#Z*chwyF0;}tX8RFIW(D_Zmz83 z6TPV)Sx#y0bK9#N#?Je!z=uI9o(=RP5kG`?gc{OqM>kLE2@vnnPr{ zL3@x^MPy%Hkd;!Zf-%piZa3DZ?;w6mWuYo>!OFvJx^rHpOUaitryu=O^?e*idK~03 z`O)ERHn>-IgZHEc4Q36u2;X^|iCPVHfY6lG5}1>A@OO9yUt#e9Y9hZ&cCd-?tVz&q z){>jKBRq4X$jk^*rJee($E*Kf?u)}BY(2ujA*9F(1a*)X@ii3jRSXq@_t}4DiBqHX zRHfxHwT%1V$&ql}Th8jJz3J^}`l4UMu1AA84Ng3y&(Z|LgjQLM=#1B=c!LCB^S3&b zrJ1q><(F&LK(u-zX1GAf9wv2wNBds{7|d0&57CD&9{b7_Td23PWtA$_m&oc=j<@5A zmbV@UOR?%!B_BunZ6Qp)X{hQ;rk2a}?~%cI!C+YBVZ~JD*+emcjltg{?U+%{k~vfJ zI{!m5ip$FhV&^mC%GO5{-A>~|cP-jX^rNOEFe+I@qB8-4*S*Kh$nc>!#O5Lu{4uZc z^GfaQZ{N#QEHXA?E3!ckpQoH;JYkzLbGG)bsx^7Qi|k~QCrI8&$1prVB|LzgdDCc! zb(>%58vohnLsj!7=n@c4LO7Gsy`H7-{{?sQl`_F1>_5*ydFs5TCS9hJx5Ll6Xj*5xMoxju3azt!bQGzzi0fnFaUvlb&+vSE zF%Ug{yE5N7X}e>46!M}REHb?pcO_Ws(H*)!m%Up^C}EIqSN^$8=k7-nD*>5|tYQ6u z6zt!^U=6Dxv~|KG(m^9{eptXxpUF_9IOH$(mHl{@_@N*~t+?M{ z@-qhltUc1a$8lvFFChQ&vuELO(aTfYiNGS#u-#`N)~PvixBlQ)bG?>@DZmvWna)PaiK^JB#tK( zvUM#|+4=b3mwlhZH^?~=r!UUb4W8rx4>AS(n4h}jTPb8NR$W>Y?v7T60NzJ4Q~LVw-X#tW z?*6F(?ehHu@-CL5A*#*p>+fdht)BuAN3~h#g#3L?QU1ddN*Un;O@g)AHmw&MLa1yn zmmR^GnB8g-=H;EXWt~%n%iEU&STs1=fmPMu`k>0P{PI!*Zril{K^ex_BB5>^-U61bNc>79?@nYSTJPqpV7w#W-J6=*wi#fMw zrrL|_mRQmir?RBJ=gAzt2)F#!N(+B)ExJGAGOq>MK3SP^xG#AXe)zoVGQgE<0YX}G z>mQxLS7EBSJvvs99>_vylpc{(9}t)Ej)D|+e1}=Uv}^rNnu6z!_l;nqWVXXSkkI-m z$nUVGVY*Qm+BgW{pnv-LYQ*yZ&RnWc1*bwMjL0XDpG$qwST^fcaQoA4Ua;>*82;O8}%)SX{Hb>wwWT*(q@#q=;?H#`n4ZLG;C zwV%{2UeT&wD_c3ycHq^9+?MkM0+T0X!yoEPN-t@7kS2LT$9^Axt0qT7{cWV|<$z_y z=G|wdNiA~eB=doWL!HvNBZ1kAd12}?(l-)jT&{0Fo;MlKjz50v4{&t=ncW!_)?GX6 zJX@&&U0xIL%o%C~H|Na<(gT4AczcBBP~b{sI-9;ojw8R6(NyM;fcg01a@^ag<5KkhAkVhx4;Msg(K9RRvr&XtX`Inru z-Fd>c2H{89}Meo#Lh6 zQqk4*>BxYmb}f zP72Dd&CYC-D{?0>-Nj`_z;CsCIzpyg87F?42O!vLK*}{7=(3sD`In2Rx7-Apks-He zw>)5tah}=Locks4mY_-nmAeixWaeO=B@HnsH-BT^%r4U}x7zcgj@L`clY+wGz7|NY zs=>;IgkERRsy2tRukJi!x)YU;wKkWj;MQuUMJ_GKEm_4(oxLS!_c0l5-f?&xy0k{q z`~YL)PTvC&0x$WT<*)niZKIhR^S$j?)@COjc+!dG^;X2Dg}bcLv;r^?<00;W-XT7R zB#-HSpD=Lx>hjkezU>X-Cf9=X+q-7Sdi;#9S3Da5N%AG%bFlwofVBA>rsX`+z1d^7 z#-SohwFP!TWOPaBcu7F6Z>M?ZXg>%3q4qUS!7ALT_3hF}Au^u9?e9F!<&3Oqh>P>& z(|{Plu)*4}1EfVpgd<|1z+^IeO_WtLC2+@I{M+=~iUoe1*}j^V2v!^%-EuNz!!lp- zv6Z^98as>ovsS$t$Hkf3`hAc7s>a=hOi1FfFIV642tU+XABKkZ^75=Oe&RsDJ!yiS zf`Uh|Gen7>P&Ej8#KFE1?-`5fMPS8;qlwI_A`P@2&YiE8{&B|xk%`BI7nf|8X;f9L zIF=hY6czesTc>+Nw}Y;-YS}cyjo{iN#R;R#+k$O<;?Gb8#eUYF;hK|_ulbfwX98I~ zW|v%pHN)yxCq;O2fcvX1y&ychq9cc8Js^F|SkODyatgyNkc*&OJ+~rDa$2l)YSmU$ zb6qls%?an@HdJz^>t~}S9c1E{2NWg$v2IhOo;REcDEcmHKz=2r!W)y!ZE}||yS~@k zFzfg;YoGlxtN%R(&d7mxS~veLF7PsJ`_L{zpM$6R=lmeQUuQS6^QIl%vG%Hpl59No z(L}`mU%SWsThrpeYXiZ9w&NbM`$+k&j(zd>A++H%(fZI-$s2{V-3)IR4 zP15FVnEvK?h9t$v3EB|x}34wLOn4|UZ39o?C{PZ!w(3Ch2f6_cAe zDMpAUb&5IHL-y}^`d*Pgu0wf}OYE3(-GLh<`7*FK#7&^FUM2bDB?{H|bX@z@>#e(v zJ!Mn#6s6o3=HK{1TkC=i>Xj|TWeeB_4(P1IYV|gG_S|ZdxYi03`^c6w zS?jDDXzzI(zM}4 zu}$Yv(u}Xvt6=@-T7f+|<;k}~-OYK?S7=%(nbX{OK;dCLHl?|)+MWsNlwG}9Yi_w; zFa$$Ju$$q9sTH$`>p+U2|JUAk05#RE?V_lt2>5+c1VK=ms1&7138;L6ND~l{5{fh- z6e*!YY=Bb22PjBK1BtXCU4j%vh)6FXK!AvV5JEx;p#+lL&AI=XIdkruZ|?c$&Odkl z`I&)X_MWx&+G{=QEzkR|cMm9U)Z@jAg>+X=T9J8h&DZPn*Y{}8ZmafN*8KL3#<^p@ z{%L*hdcJrmiOYNY$tQ_>!`ySbE?W_*lJ-W~mtQ3|{WR4!98Hi-qQ<(s=OK?m=%rTs zuCg~S`<;?S%l(12w#Od*c?b>KFPY&4+g1nH>d!4aZ> zio_pw)sGa^@NbQIKd&n7y^GU-Uj=Bib{ia^-cvtGyb{-6Z@=$&vbZ3f(s$ltfy+{} zdEszs_KnFa(dDBXcKk+-Djb>_a`>vWr#QGAzW&}L6M@_!rxIUj$;5hJNLbi?KApW6 zqrRepKVxaZWxVTc%{`l}MI2CVOSnSA+OuA@Kj z={OTh+OK|mxkinZ@R{MU#W%ouRo%Pi4+E-I=SJz;>)|o)&`&y#HGIBn;6LTV<0REx zd+$-YT~s*U;xqK#H;s$);Md&Ybbc`X^*XR{fG>u77*VR4EmEeYV(tH(PtUNcGv1m* zElDiqX@jzMPTaV+9tjgN)QGr$w-5R%Xo?z<$Z_E0m?qMz^xnnNyO-Z9Ch^C0Jz&@& z-g;NOovHF3iv1cehv}O5Je`ZMoqu{+ne=Gjgd`6xD*0Y?@<=rB506c=o1`IsL&&L6 z>P0`CA$jc3P<}QUZ8NrdUX|Yv>O|Ixv#u_?qksH_Kv4ZU8nH`lF<^}y5vylggvUtW zt8foh=nZB5qc0))_bvdD*c(_bQ>;Ee)L)-;9IPLzM8b%(kCA+W%S(;W7;_@4YX{@I z!z>*oM|4g%k@Ebn-C?gYY)Tz2`V8J)**5V zF9O-d{KVu04+^Nu6?BuFh%6CG(}Kl(uA2)>+Ges43sD8bcB8LGR*w7xXMR)affEV5 zuJx{68LDe)hUxHfsJN&)Rlv+VzvE5V&b5rawoIwlkr5-qgdDhqZ2wewd;FkzutvU$ zpJ|k-8`&l~Sj@ZX2S9KX*#e5>>}AOGb=zn2pDtULj;7-sD#k~aR1pzhX-x+|ycLU_ z?UW(L58(^lvjX#^Hr&r>CV27aKIS;8eE{*aOC`Nz%oJ&#u#?O9UhHP401g`2h)T8| z5{q?t6)fa?zX6~w()mLNr>jeEW@oZ?zc>y z5Lu5XT?Bwa`DF0fWK;rZM^G8DH^!gt=n4-)mjq7x#u6`I-w+gS?5mHyRp3o64AUdu&zMgR{9F7mQJ!S}k`U zCRpfY7aegLGSCwKE&1m)+p=HRmR97v3sHr_&CKL|3GFl@2U;JHi~zFCV^9 zgcL8K#)?1~rD}RsB2T<~i{b;?Q|u0x*8G+^8VOVDRaMv%7OSW^-;vOMdme}pO#6mX zS{~F{qoW+=r(@*ps_*Zf-8Q}zS3Kxloho5(X|wfZBUI*XzY0Mz8a>rqHg+`)nh3bl zDtuB9;of7|8hg8M8r3!A1Z)bpud~2$5qCX6u9Z^&MZ-r%+OG_j)}7gC zYGvx>PazI-FLW6h#JQb5zIWY3@$Shwa%ZedIZ`~B?g@7-AsHn6`~W(C8oT~%6L~<` zu(3cQX(HOGcq0HVP$xKttsvKy-vu$5BDorRDcakQW0-_i@0}^W?+^wzHJ<%mCSX%FFJaHR)g-UDFJ19EP2QD0SNS{B_X;KXJ4xBi)&t#YUKj3YExfrn zAG9R*>z;xPn{sIZXY=TFKe9CWetnvPmSeL_Wk!p~5VWBShS&_!XbvF2P*W8rqP(iS z2-UBGf&#^wRKMHwEX-XCfiNt_?|V0z=eamcwNUGJT(9qI=+?xldn z^X0XoPlfszp?$ldmtQ;BdrVtM89|BW$}g<8TyabZ`JpqV!cz33IWAJVFYL+3pIulg zPbSa}r|tIg(JR%y_S}LBL)=b`-z)5@ZkqFZkLGIF)rJ{DqThODRUCMGp{yq3$h*F& z+&mYwRleJ#O0eKbyWc!+zD&8VflYPIsz|NhTyzg4fbqDARLqwP7R}QmoGIl4oil@@ z;WmEn7yGbk5A!^``}Gy2clHVR^g#7-$`u)v{KeB3$SssEM%70xACvNc%iUMqk_kH} zQHXcS9(^Nz-5Flu>1HhHDei*!{Fl5I;)JhR47vMP}q#_ zmU~~;eX`2!rPJ=4D>Djjd?@*Y({D!1BlK+n$ww)1B?S5!X~^z4EijsI0-U(X=-TV` z`r~M6dy94&Zetj4p!_h}E5UvqC}XG^rR6k6n(T2AL0%qyMUiR_2V>36N(!SCO1u`Y z@j`Z2=c3S6+^4q}jv{V5iX630&%mnR5Ul&4uS4@j8<-d1 zR=&?gN@TT?A&!Mr5rtKlN{sl$B#e>!9~Gnq>eGR7w<@nJ(hJM-Yj-BV&?9lAjP*CA z83eb56yTtMsF~xg{Om_Ky7}jwsqk)-z>51c&;EhDP~G=f>x#k2#vppNO^bz5hP-9V z{d@fS6!I11l8m7L=Gb$>?`Gg}zb~zteGduso%#k)HYk)VZsSyznwmPwONcsGsaFv6 zF@zZDPv6*($@7+R`iB3lNS5#S94#V0U)%FKcmTG_rx)erCfRCeb3$3{VBdnz>*E@9 z{`DofYfJL;s(1S!g}Ih;o|jIvyWP`{rmAOm!Jchs=*HYLi(n*qyOYIDB<1>F^*8Q& zb#nl+Wtoa^`S$52Cb9qxPLS>}FPAtmUo0L+_qcj>EL*{}Dc#L72_UWN}5-POsxCC-teG;hBQXg~B`b(U*t_YPEC z`lG{guOes6t7_-&o805f>#y(JIx|{niLkbu?uB&bj$h2^o+=KN883V%M@*YFgsDv3 zJsm2w@^N;}IKM1alwe_YW&8;t$8>g6F#WN58Q|-_`Xq7pqAJ0^4h_B$`!P01Lq;okcTq{|aa3a%1= zZdmwII*an4GQ+E@y2o1RWl>L}bi1+cHDjYV_bw&lSeM*a701rwnkAV2?*TWWoqOa& zS~3rhZk8i&`$x!JdEJ3xa*ZZ+f=ATsch*li{Q=}z>D-GKLiT!;fDgRZx==K6-m1cB z3B~UKpWli~B4w-PX%CpFR@Y0vRhs@o2aY-`-GhWmhv%a%7&8_ze(2eiWYp2%^!QI* zAs0Nalz|oAHwPf&TLZF*nm#Tqzk;GB{BQqZd8$K#mA|YEp z18`PJo4zTsSuB%&|JpCF->yMKQFmJM8ooZfh3c!8_2T|qu4RDbNz|%D;5Oy`aQCU2 zPLtHlH2N#Gp1JUu`x!o$;!}WP1@ZjNIO}JO-n;JLaJNlbX zl}MLFpRe2ZcU?CZh5D*o)hx|DV}>A2qT5g#P_Jym1u;Sz`C7%&ft^p6v_O3xyeByh z1Rwt5BjoqyNUr`cgjq?FE;jsfff9JqQ&M4R;&m29rgli;Pb2&(8JEF3sPuHcw?1>{ z5{e>D0-mYW)=kxCbFDWn95yfV9?pDQwCOy>S8QEY72?}`!7uZ}iy?5b%jr;`i!VDf z8zJh*sjo-D+PK>F=iOg(wqK0S4fk4tu^z}MwL{py=K?&R?TQCAaXMpbmyl224W)sQ zSw}joo$ul8v<XK+& z>fVNt{+~c4zoR%G#&N_4u~kijmHar!CNe@_I>oXniwL*i0o0&{5p&$n)yY?!NYr7*fBsS#E(7(%DJ8JVD~ckBV*P-Q&EuP(Yj;-ayKn4uhUkkNB^=Wmw)wd zKmoDgL0LpuL3x&+N>`s`Nt0k!YPnNdYVvJc!}m%&wi#1*gu3q40$x`!iL_;EaRvXfVta^K}N1^Qw<9w5=YvV`^E?w71{4|N9f4_+Pi6S5fM zHH-Ulq2$VGWFFtUYqpV#@m>7Y?sivAB=dk;l`1);#YC6vNT|Xs^y8BqSTmOPjkbZTBqI~}=qX?>INaWYa`ii;4lh-*8t={Vj z5%$zlsTus@Q(>caXKW+wcNKFxUbpH&MAy4NCaW4<_6jGqQ`1A_=I4lAyuX(9RCiWi zjT}#byN4#<6uzTb=_c)8eL!H?_+~LKU`KYI=PJ_@aV=wEx69NQ(R^Nk@Nrn9E<1UQ z5iWi?_efsyt%-w>sGL$L?*I@F~}ML5FV3 zRgcEl1?oiJCm#HBnCW7-{&w~H9k_27R7@Zcy}skdY0zi*y|z{nTdM$oK4jqT82T8V zD)@VG(@lHCGZK2Bk2L#UHCD7(GTxl57x19y3Np!O)-y+4C>ELfCAw5M9`(_rQ>Aa> zY-8fFCuZC2BWKN3Pe5OLbTt9p``Fx))0iZ)6G_oSw_!dCNsOxzq`(A{kF0y+TZgnqIj-x+AJfoOhYpCP^Rqr$&;jS0?uR}_@Mwi{ie5%#FZTY5rY{C~hc{vVU=OCD0 z@4;lb)luGkX#OlkNJ^vJrsnFKj-HW0&Ay*{h5(-ocUT@XzCSsaBXJ|J=84~zH8@wB zQWD%cM8D};pg~nYw~G543g*x8E8X5(gT1W0!#ZWk8+H1e;pH5_Oy!-II^r_oZJ%+d ztu|xkqlqkK^>hO=Yj#8P3p^yq_Q3qw4fh9+dL9(lYhDkD!ycQmsc-*LFMTd-?_u8H z;1wBid`_(aM2JgVe6G4pJ?2oq%84v%wKTjVQMSDhaRh+l&x+_^L0&C`Q_qxq zDEicLuQw*Lo@}_LsplE%>b(BErfga6m-hT^`E#K-`FCxt#%d6Q)ka9ZNmyB z&yb`!>6yM)zJ!X|dfz%^kQVn7P5?7)*3V1fcQcXY9}$u-ulPycc(wVJr~Lyi4}tq# zQ68Ee+gc=Tzpw}#tM^rIS@2t+97DWEpwNR*ZLLZ`3aKW0{pf+GwD#s5=vA6%e!=6K zc2+`v3xipk`lC9pCO|Yac~YYuhx7fa!lPkoakiMId0C4z^1#l}M(~n+!O%GG2XaX8 zlnT-Z03C-9*GyGS$lD_859w*Y>3i+Ha0z__sQ@SawEplNSzhC1tmln0H=gJ;M7o%Y zoM?J#;dy`QsQ(nIiO_EH(Z}HZ8S%F2ZV}|5H#U>0odXwZ?ep7v@9g>6Z660=5r@8A zuy|uC;Q1w3*+}q9we#s)=42mz1IyX>L2i#6Dv8Im+_A~!CaR@sF2RoyQa}4hr4DNB zH|2PYI%oasAjdwoIXHk7;oty}3jEo>_wQZ=#K69J0rUoFc;H{)y*W7kGZ+77F#l=} z|6k0^-&Xnmmu33zI+#Z8|0MSRdF%XrBO13W#_ZZqBE|yjA{GNQcRwY5)T`HP#r$|6 z4^jzF>eGNNVZUufN3$ThLyrBCHJjQ$O&ELl7%AdbBjC#b$%qx$nb7l( z^NveCZd3dIr9jG8^z1zEIIsJR|6VIrYxfhktmy8z6!vdhU+ZOZyKDNPz2B&(_XWwA ztyt8L=~HmAz#lr3SN0{shZ;>v`pR(9lj%{CFlRI4i|ll_7^gGJHAsl#`U4^;V`)M+ zx0qY8$vQxk{9cj|znsPSA1#%0Ktb16qL}8Bzj1_k8z12OM={lA`b_n4o9TJD>r~)E zG^2YSPg;lgjeb`p*M%@YJe3$I7v{`XhFp&quPtz7ebIw%-`MR6$n|AK+kjzBtf(#= zW(U5zG2nVh)w%=->X!W3U)JC-G6enwX>AU{T~P$xG!U(Bz1%&4BsPXH|71mxR57b* z5GcDn1wzLpuSYp00(oTbc7ir~JeS{wwvryo=juk5!LXq*fi0%Hoo4P?NEZ23C~3-H z!{a;6@zJ0FV@#-}!n*=Jth1)mJWH=!WHheqGG>YB(ZjGtixl*I1l9(P!|(v5T`oab zleQ7l=eQPuavpcND6M$4DaATFy-bH_1S@RK3d5vw)p=0#d6JX7KYtpx!*pv?ny?mm zs~N7fLe?Bcy^oSj23ZQxEsCuO7R!jtaPmS<;D%8?!asjAb(E5a zzK{^yw*wn2aRNco#Z0BTl#1}5_I4QSD6^ql+h=J-xB7Lg5w2E-L%CU;n5|ML+S4Nd z@anfXPTxw^VHU5D?RBRytoBOK(qYDQrVi4fFK^R5W;>Bcer4I(V%6Gz)g+HrVF?{c zIhSP4*RDy^$-}t_Gf%NUy!%Rb_J%)$nP^^?b z4Ys0vaAc;u?fX_HgS=GWakLyK60zGFZ4GN$kCSJBj6$B1khS^4ZI=7U z<-M42UX1;goqu(&w?NCXU&mPy#Qwlphp+Camd%P`_7*7OA!ge}*(UyWt+ZvDLiW`? z3Z^>>wDp5YU&;iT8Hffx&XBjgHlyvrPXdYW4%J4=RN6L}SB8=0EaO^ZfjCPcb8E!0 zTd=GFHA1i1JsaU*(9CQX5w3WTa)_`vn|=)r{b|s0&1+lvL`kLR5+MM9Hd(J=r@)Ju zAJP04pSRs**k0hCtqGJ>hK{7hljaq*@9k3R$~3vc#Up}W!y|U%?ImFx`T6%bk1iMX zZBHxGn-bBBni>5~jE2zW8~)K0BiZsT;E9V*TOCRi_xe-nyeV;`Ykxx=Xf}RdG!W)i z>{|ow7hIzdPQhDudkx4;Y^!OLB3Na{lMjTk@Qhj!Vvrhz>fy<7D|)-r-VN~`7!V76 zqq(EoKY+M28Z1_DWuPpjnN5kHm@7Usarbz#{Y#6A>+fs2tINWP3t)%7d(SevGRXWA zow35+sXD%syOb=WDD%VXg`BhV8IZv6!v^_QC&g=2X2QFVmwa+VM@e>{9#Lf!wX92) zDrECYTb&|}@N0=N0Z87+(HKids;()U`h2icF?xv^LDX_;8kg8YTecJu_jcAttJ?V{ z%!F8bJtmISJzX#|G;ci??HUh)I5F3o3W&>gjrJ>_%>1KPQ1;}NK=g23$m+}NgH(!~ zS8(~o_CIx?>uZc3Fa2MUO`FGm<8A{!^8Xk((T@0L$nW^PP}iZ<=|XT`nUYOdLh z;?w^0peA$oS4tm6vw43Tvbj)Z5X9F5yHqqcEXD(37Z!BJfMr{~x;3R3?I0e_Ca4Ls zq(~K&(OJAYk5yFdMXYJubDAR6YMLf(9MgE14NIFXxXK` z1Av7z1_!kSR>VZk%umfwf>6enINXlMerjP6#ew%;Fsj7qrJ!@yuZruED4M_A4fYSt zcv2hU`xxJ4QO(c73Z|M+D(WYEBd|-p-7EOyhN)rb@)@V?(ANpEUhHH*1XL=ruK+bhs{>JSLe^k-xro$+~h_T%iTXKX3Ci9d(AS)cO+vZOHfz zi+(KhJ77M2kZj!kerBZck!z)U;=Z^d{3L5^w>8Tq>3}0}$(H#rR&JK&?wNu?SM@#X z%)Bjm`8VoJyU1DfhdzFDq-uyCRg<~Qxj8h$MQP}O&E`1KewUw!%YJO{-SsYJ4EfhnqyZM*7aIFBzccoANJWAv{@N5POBv=(88}A0Q9_8LK!Onf+wkqGT&8{ z&dVBNTYm0!#gmHPa=8&lY{ZcLQ*0= zTTh+suHMLSbz&5O)Wl;}a)2{L4U1Q2QIuy&x$B?UA9wnwSk{}0$Yqn^ksPGPony`m zUlp94xq`4$d?9%{8@9VXbSP-|F_o7;bei@<5X_?PiVt?!I8@GW=@bFKkDN$&x7=3rPt zl9O%&L5jYKgsgoD2cuAy7dvQCK)UfQ&E37k;P#48-E*+nfp7QmBrv#fcQx{;7J_mb^XYPoY!$%ZE5EK6E6a+ddjRtJu`Yu??hUGBWvC4SpDA zz84r~*7zRC7e2y>gc8p^9Rl|lqdw3eAivbO0n4CnGF#om?3;+fHwtv!KccsR-#*_D9 zVWk1Hc^*wZSL^Y9EWW^yyg4mUPH zSN9|RO6W-+JTTXF_1Zug^h_K9M)>yrS6_CO6<#&wl|b7tchlo1Vm(O#=O~{ItoPSb ziCV49#gG9J%~&gDc2(YBaxgG6x&=(Dyr?f{kOHjw;6wh-leH91KHU}^Y*s8(x0ZIO zEnv%N!L_=W8o7AI(RiPOf&Xla4q4G;rsQP$)1k@4uK_<|B8?+ji0rzi?Nx*6Eo-q4 zE7V~Y$X?{$CNZ)BHbD%V|5&Y|RSgQYpM*w4>Hd%pm{OZW?VGXrZt*FXAnRnJ)4K{U zk{GtCk2zZm#^y(^&PiKRKcOP|DXNOFX+b6$fLvH&A8b*%sXHfk7u#LGzRcAJ2Z8=W_!TvOO4xer7B}rp#|N(o;QiO=d&~)Y z%+owqd(CwXE|ZAqsyh|r4L~9QV|F>cR9ndoPV^&i7tqSl!`&;)>!Oj5DHe#<0da;TF($&HKEvppe+1nKc_Jiw_WOs+ty?pINpK-yLmUOOQ6~nhJTLI|{=*;N!M*V=z-0k2 z877{aT*?XT7Ta2)d9og%B9`~Di&t z4t%=xrO=-G%S^&C|2OMbXLoV=Yt2qRA+A_Pa(l#9yxDLlY?ELJbF5TX58vVYM5cpL z;@~QMY|HK`yViiP8rZA=eyY?J&VHkKt?=c%+Mcy1|F08t4Cy+ zF}?&n6Fe=hIGouEt&cOf1lHZ1G+i3cE$NVAGx`OGE)mi0@Udz!XW8kTgNJpV-Esis~?}B%?cuIs2I)qjM+qLH6gduw<1%bm|Qaa z2Vk2AB1!(Otj-YVJ^}UPSm>(xO8!98W`TSERLGz}>kd4y@ukbvg!9ehSBi@bLagYa zZUy`5yFng27vYi>w(2Tx=Zt=h*=RfIYSJuE-PA+9O}#>4{|tQ?oOZpzdHOP7{n`Lo z=K^J;UUVtMpDW?Jkd1UFwqY;)W+!Z?10TFtvpF?K)YZO<%xtCePerpO(^*l2d*j)F zV@Z#&OsRBKpV5`^l+$j@4`1-%2H>q1L|03XHRp5hAD1PG6)fY%LoZ6Z{Jm44jrVVbFHPV;lgFGzZAVh0C=QU;2aeb+u=8_iY(3 zKu{Ce>sVFW;Z)!qNu^}}eak}GYg=m`~#$Da|V<^i(siR`4@N_36G z!b?c0vTMT69^0eZ`)cGoHEqy6!u=QC$Ho}f*T>@ zsl+`|Y_?Wp9N<#iu8f@Lrf2aL6k4*GhbZ-KGlE1USg0TW(m%XTurEh?SP3}hJh$5- ziXBy;Ej%m$Wh^dcYTG!mHVhg4mea+zXbZIpT98NA8>Yhx;`H_F`p+8C8&jBMnRZ`U zLOp#_Zxg@fA7vHM7w&C zcS2+iVK?#{#0keMAnGSbTDo49lDWE`$mw0UtNP9^uf`+s@RrK>v$iFG?Qn{?=^edS z)Zn{m^ff(NgJU?1?aU*=q0MvvtXj>@se*@jI)IrAU8`*A6XVo2Q968r!%Q!9lIDyj zb#N~PqV}n$w!Y;QA*U%QBRpQTE$`qyeM&$moq*01@*z6`q|ow{;oE|4tT_VhVn^$7|LXk( zKb-He{hfm(i;ys6GI^4Ay=GO*|1I1*y`$BlcN#e`r`le}XgE#{Ht3}0CGgF`1d zLhjl)gqH0yC8P|km7GoYI~`A_=}4O;OIh*C2Uq&@j_yyU*1Pz#;1VL6ei6KrVqX_Q zIZ`pDR1PJ_1K^MNeyg`Y*^+Cy#yDQAwg6y%XbmO)SN?ZcAmn=a0U+4$KQ#2ein#o@ zo0-26+kd0`|F0rUt87Ars|Y}%bKGFs6WVVaQUo?X#}Obl#d(zDF@T*m0Q9G?b8wva zKQB82$W(gF@vmp<>v%h%Ozu(H4Lz?5SM*c4z_Af5~eU|>k?SFCkFIw$S`F};L zzZk+luKqs_<-e@eKLGHbhVak${Kwn>eye{1`#*N}7oh+5Tm406f3a2m^Q|BU(x18N Vcxl*tzAtZQkcXxLPgvElp`vSq;VFN4@G{IeiE$(i?f^G=zvccVT;r4q{ z_ui|!dRJFhSGCl#GyCu9?wRTNP0M~$SCz+nPx>AS2?D5QX-v$~oqQ&Th z4iEA6&Q-y{0|^No@jp7=E2PY9Vnic~t+a|X5>j1!;G;$o;xo0Cf~E=*l0O3y($_E~ zr27}d`#utq7dH~pfjJVAXgU%SkxQc4pd1pCJU~%aTHAN&Xw}Dfe)jq8nTO8 zj&{V?*SCVxyC$0(aRi&!szwXv!5x_P90fF1zs{ANg+Q*Jz+w99n zSeSwh{Qav}>(BryFD}}3?7Y+6Yl%m4WflO^*P(ZxzP|d3^csn}7YPZC8wm%&2nvGv zSExuI|DSarA!GbsKk+|z{D<;?8{>b|@&An8|G@MAhTeY{=6~VfKLq}(l>hHK{v$L( zVgDKYeei>xMZo`if8RH|Yh#9hcToScZsT&Xb&(|eQ^J*$PSFHIXBEaUcG>8^n z@b~(Q_mTZ11OygM`v2uSAs;t9`$)j*fyR~0(Ks9Jt%L5=%x^>MY1vq5@N;^!QLR!f zeB<#Lq&I}aq^*fjDV5ID2nf>fb2*~Xuw4l8W{DkUFj;z&QT91_pL`yt4)!d3#^K ze>My5k=ng`r}QQ3N;`F%y7%Sk=1s!CfACKG>Cx+DRicz+y;gBasb5hr;ZzG^<98O? zaM%x8Fmqv)rVL9VSUnC$Wfn&URin{hf=19IP+1!~=~Qzv%OX(jXYGq-^W3+4mQDY-)yC9qR$u+8qcH^DE>yU*vi;O4lIU@9>7w^k>;CCEgSKUU z_>vszhB2nkQ35*CT9C20U!>x?X-D}QNurtF(OetnsV;0Snr>`Uu8UeVk1 zj4AB($ZoPpn9Tbb3N%OszR8`xG(K@9NK0`U6Xo|fY2o={(IwVG5ir)2v)s~bI03r( z4$kPAPmoJ;qwwwax{95Waz!QsBsBmQX+^ z#>BjqHa!`bn)tJnG4JaSPy4FMTvs3W4qwYjb?&s}kPm07pf;~btr5q*$!$oF6NeJu zr%Yx)s>~PQF{))ueLVCc_F!j=4xP2!5^2say9$GX_V_NID_jCyXWN}{+C+cVJ1V(X z=yKpusOrsizkXx;o~GAs@n9lIeogAJB99m~D=uPe%`Ab3(09^a@E&--_f0D<|A+TU zC`&P!&ryfPucZD{U&raWuJ0|Pf5kZk1w<6JnzCVS^7RQ{GQGo5(=|n}Cl*_t4%_IM zE~*H%J~?RDV$ktJ7LPId(_=pjdyLJwkO-bkbujg~x91aI=n`cP$^w73?C9SpTWtO) zTI@65h(>ocX!DqnfOZQ9VGS)Xe>+p2u?%tKA$eEqLCCr90fS$5o4&vO$q9}OZ=O&P z%2FX~J~HU`|KtZ4B*5Qzng$?vyy^ftROx!)nQ8?2eYVP)HP$y4JwKlxmU^n6-VX`T zJaiO1#2#xAzk7N)0om+a2#}E(Cbd?(>u4JXUk=!|*ih6PaGc@HSfIb5(ZIn#b$f34 zTtfms>!WLPRkJs7D^KzdWY|{C<8r0tIz5{@ir@p)sYd(=mG=8ZSK|m3wQI<*sFH=x zlvU|op1fZCbn5H*9J~8?eS&uTldwzTcoVTr!3*q+xNo*M_CxvH)h88PR&fXk<`v&P ztsFL_!Y{IB-|tuH5jGUm{yf@w%r$8D=Ua(0v~J08>9W|^sOV^MNb2Kdmn&=iX$@V2 zOB*PTqTANdBXA=Bv{I_|5!{vIcb2Q(C3pLEx-V)nLfs zv}{d1P94ie9xq|=h#c}U>3!`mEbC^HTt=}9g9uj!9+E$HeC-RbFZ>W^4(662rjz|q z@}<7gw^K50`SARn01z&&1*X?HLq&#B2D^>L!*SXSi3mv(r$oc;P^^wT+q{n#cW)oF zRLSm&pusB*FHy7J%q4~o@-bact z2}vD(^qwoo4lUFKQAd$DewV#*#}e}j|nms8QY=1r)*Wxf7yB@`Cn$tLk zl_Qrh&U`-49ZR`)4jtlg51Hmk(ehg#(BYl5!5{wM97-L2sWoc%R5<)gb9|HamTGd+ zsNLrBuRxE}N?jU`JufM7$#dutI!g8NJnUZ42Um#|BmmY?x%7vFzkj4=uCV{8@${U( z4CCOe5cWTsne2*0k5=Ltk_*#jv)W14tXORHhTRCg+}@+Bt-StG;YIT0OEmjSvs2y} z%q4AYtGD3O@p5z3OVdizy?;gUswwP&W@rI+UEF9V2^#V+5iK#>O8Hq#Us6mj`B1YQ zY}j_*QG6Jz|6DOf#+?A6LdNm6ksFs&z=bCAyu<@|M1q#4s2c0nJ)<{j!A0}&fpQ#)uoAy^CRfx8o9rh zTG}!jn^M?n7duDO;30Ia=ixA;DB{+~FAxGT*-FX8_B_!cJHfFno zb4>y){SOZMFJU3BQw49;B8;KUSRN4xitx@DgdShYGB{UD8)mZN>eXJHY5)|r-e7PCTwZG zF3%XN>_k9@#!5a$F(OiOs=NFf*;rdM-ofxOjew!SNeP}U;dOgFUjyIi;t|5Q@P|i3 z1pmqZdp;N9%!C_y`j*WTwI=s5#RFr;SS24Eaer2O1DjRuJsdgY|a=tTx zsOW3q%%w`t>EsWoz=wxMmX}=L$Eb)W*Tyl0hn=FdBV7+_{Y#?(-q`;AXZI;qG^3m@ z6%zKbFJK%Ql2jHpE-BYN1=u@o0Hw=Bg&%u=uCNzLs)6ZjLw_<8D_eLwkJ|AlE~Tr}}VDyw24M*dQ)?uB%h-2W^x7 zFz>kJCM<^SY(w!SC(*LOP)BE$Z`@7!zvPn z$LD?1XYxMl!6p@8{kD>D?tX67G}}c|{Sz}i-&_Yuq6+5s3{mPz?*M4WQl1Ls4U$WS z=&t%vP4*|j6X+xr`yVI2O<^nV2f>3*Cm(F)*XSPnfFGF@x30td-*Ofdgpk<0XeNbu-oc`U{FTVw|QjxRj$8?<^_mswA1~l6_aR=Y-vbbG+ka8~zm}pZ!1Wz)KsyH{ngbe_n;v znNn*-hep>soffEw-SS{q;e_AWXh?`Q?=RCe0A(C21{N05qu91z^_AI{HfQ-9*BE>y zi8Ya2ZrlJhPDvY1xp?; z=k*7>lk#@qaullp%OUD-4_cpDCfJz8{kLX1PgCEC6WKR-pQiKN9h@BhHEe<^IA4&d zV^A$zcKNNFC;@lxMy7F^+g+K(POlcXAQBuHw0S-ytt*>Y=uN&s-7uz$r52~@kFR5K z4(7Z1ch_qw6J*e=LUt?SU%dRgq^cIL`bRMnndzB^R>dnpd6XF@eACK|pOONVmP!}~ zWg`evbY>jS8EstMGG71EB{F0ZNQjANXJ?sKOTBrU@^gnrw?SHmKh+}MhU&AbJ+N|i zwZY!w_N!4f)%PENw=``?XV}Nd$1-D4D+UKHjlI|Q%TEJ&eaHWu^fPv!uZ1#-bd1^X z0l<-VhM12}B&cbrpS~W-IyU?k$_wBY6`$F@@C^zXu)!6=-k&^Yr$MnmfS1cl2S0b9 zQ);hn#h01u*CpK|pYb`NejsA2uG<*ROpl8zt(qXaY)M=Fmt4d~f%kTsq?fo$;*HhQ z2%^&nU~muDhXa7om1oG0-HugdZ2qf9i7B zyKOsiNKIp}_*p4w%51ow>enzW+Vk*`Kf#-h95vd|=3r2i@`EZj;&H4K+S3y)mR3v{id6-t(v zBZ-}044bmn?*QI5Sy55EoQdxlPfgruUhSfJ!RCZ~dGe6&t+rmEUG&s~?FGn02xNz*i@Ql< z7R=32V354Lyg_Ox4mDse5t7n(U50CQt_>|=4G@14CzXs@l!Z`?%Cj(l?J{*W4VUr} z>vYs^)qNzi9CVxml*L^YpR3zw5!m=}nXij=H(K z@5(D>wStD(BUm^&%Uy-Z{J-MLAa3>RK@X#1T2z8jh0BL@m`CMx3srf6_tTYcV#rpL zHm@HYvMrQY#_EwVkmn_e`lyw*+T!;hbk!Qv#O!QbE-0_&4l9yQJFZ&>sn)s6Y9M8Z zN!uJCrnBZJ$qlg5En5CrIKD4ew(}}gcFJBry7zz-dWoti>O;PLueC2AW6bFTL#wU! za{pB*Qo~_(rrL8t@l9^U)GRK+t;~dcI8{e@4gN1{=-T>Uj<^=g>FQmvP12PbHV8$4 ztxHyeK2uIXN20y{UQ1hZDIK};aJ~bU>9TGDpN-9mFb49H8dKIt5zlb?;LSJ+a@++E z<_5`=O(kh)>zcx}&iLcNi%yJTuaI@I^&`qzeaj`2WzmLO8yg#k8Wur%$g?jsGYt+M zxhBgw<6KWCyI$y^hwZ!aQ1{4~U6EXveroy4s}B)!znQ4Xa>HazK zUPDJ^6fW2A)&A5`;&M^C&!zR75xDMctEM&c_D%dHA6nbNcj@v}#0|jxqjf^i)0_vk z7jzsAy$&_3e(V?%1qjeNY$#_}+Cl*J2hx$++TlYs4xbs}UhtnYZZX-4>T-zp)=Wmy zJpd~$O`4cb-vu2{iA5$P|Hyq_hVPCSgweo0Ehb(>No^7U%DEUeqDq-!`zik`B}D3z*C zOPSYqpHFxH<;?NN0W)R>(hK0cDsmdLXmV&4m0t|0aU8E+Rde!+Tf4rTggyF{Ca3DP zs^&^|_zgc}8a2d|OBrbHFmw2n$tKB$z=TV%AdAt3HhI5Y@L!pBJ6A~IG|qW`=8mvf z`q>DMoy`&GaqijAwG|KfD*b_H2qNcA{+px9HGyJrnEL#I6<+*O}~tT zeP*uCwwyt^0*qFKoT( zu$gPh%9EU>kK+eu#aG7(J??%%yHXZByb3ZW`-xqVYB&3dq{#%bxHPi5DJ3Ku=n9EA zRAdBHWCE6ZI;J%*3*V;Y6Y>lj9pMnnWeU!OK5F+SjSd@;8+BFF{vI;G;PxWZMR=yS z^hoqy4nBzjKYseEcx~a8w+)xEAYsllUxeTOWN#Vs_b@y)ouR!X&QJD8w?04Sx84U~qYnpl*Ggry7 z`sf-y!tn%tCzd9)$uN>2$zs#+>J*XAIN!94nV(==#`U)QQiGNR;(zCNoaf%P>27|V zxe;AzZ)pBi3|4Rf*~nwv@~Sg%8rrRz(yI@qXg1DG)oV)do1$WbrD&BEs$v`XADjvk z4Tm^#T$baZFBb2JTGVt){XYeKjf%2WK+@kk~>d$~r@O01?qFMJ*k*CCUpzeKSs7o#fXJ`z5w0_%aXEwqj&>qEzYJ~ZHg3GApwi7@6(=LHbjl)4 z%Oc|U}v0Y;#xzi*7hUd{2VXb1$c&Th9mKqYvCr=ra~)CguAb5#1xiY`ZE{T>r` z=I-#KHCfS~@+;aA=1Dqg^`lQzaGL4=9t4&iQ;`A(wTjpc|QfhHQl$bd!ST&?M7F(`z^~ zzp^nveb+g{j4PWL3@aiVlF9(Jmp!{=NS+rDRejz2eI|vqZsN_E=5rMU-Ts#&X#DFg zRSM^5wr#ZuUhoKcPEJk9<>0g-PR%wOGc$PjQ0OM^Aecd_^c5;pZZKyl$Z6VD4*mVO z3+k%u{tQXHAjM`Zhoq)vf6a&x_~_qUcJv@dwchHHw`lz_je9Tu_vpU>7pIHiZUJVI zVYR!!XL|Y$eGKZC6j=B1u8P3N&sFbg1R2-o5DTXdau^+2|WHz5ag=~0*`O5?5mRJ`_ zuZnYiv)%d4y0C#(o9$uVNcdaOY1PcRGRT#qe>mKNf99#c0KLZv9TP$Hi7MA zDy4|G`&jjB00WR6O2SpZ1rHtN3p=~|l0-`%mI4bVZT2NBLdc<7H8s=ZpU z_E$x17LH%cLDW4`t;EzRI0X~QOqfZYN-g(j0R z=HkA5Wfo0s0G;-fwh9BJ1Xtw~aRWQux6oPp>cNgzhQ=5X$HL;CjOe1fy&C-`o`L_V}y0yF^iTwJP3duCcU`no+qj0 z4%u+DP&5dZK0gVP$J)vMt}|=RZ*0j_^&y!m)3u@CMiM{pc=0Qq0 zbz5KemyF4ZMeL91&2F!M8^ctcUBPSWX~RaFuCrcW!=ArFsbn$Ny2BzNnlY2}`8>2} z2;isaNNHwN<0V4GSBp{9V#rclI!Q=1#zhULRw9W=k?muSmMa4D$Pu&DADrJmNgHTr zOVEV&#uQR3re%sEc4?W}?V)`@RJcX@n9g)Rv6xBj+Nx;h?I`G=YBvK&tZRNC+M8Lz zqx{LmF;Cd%LE0IH4pTx%>e2z#Qns4 z=|5!qsAqTV1LAOs=)0f(bu~R&ah>LPwsmFfkL2|Ty=l&^q_Tbgx!bJ0JHHH{Zibz8 z<&?#WWWf9<*X>}+8`tfgu;`U$6+?Y}yQKGL04iBRSi5P}k(b}I*!CtT#osJt{~S&= z8~+QR1~bL7hD}lR)sBW9zeiXNBAO@bA0DHbH9NyoH!;k8H$HyxAv|X@8o9US* z_)4YLH^gPVId$I3%s|IZrhNFAgs1G(_Eg0QdDp=n?7O z`M4WtWgeT8`&F(H(y$O#zrxZGblJKPL2RxreK0ug_dxJ=aFQ49KLyBg;l2RN@iQ!nCfOFOfD zPKxHnZJ;%sh$>Imd!{L_d*=F$a-#3__h2;%{$`Iz{@;IrZikq!iP#Ox zp^feOH7IfMwY0{5tQP92%eK}(8JPtBASJW`U42{OmjE^)#|cp_?O*RY>EA2APTx>v zxqd(vA71tD&)3U)*0U_4FrH%47?T#6aV8UOe0=S*wov24q%Z~K-#c&?GFf)n+|to~ z3_rXGt0$!by5JI(Fq2l1fBN;h`oM(fvm}ChaVRF)jKe~{DU)jM{n7IFq2TFS+imUG z>8_t?r?Mg=`0nXds>R!@1OEM7jegV{`&hMa5c~SVG6?HgppCy$O|{c0sX(Wb9NTZT zPu!2krNX&z?|sn-i)$83|1hCC1BKH`MPw+1RGRn=atNh~Xes^dNQdrNjy_@msstUK zl<%EzEZ>4UtdDQHB5x@~ciaQ?;|WkgY93Q5(_5e)DA(afLqe>kT1xva|e! zE=y`?!yY`i7W*t5hD;0?$LmF)yvew({j~vo_7aW$_B8xFQKN(FxA@Uz(*IzEpAzwY z@eD;nEMmXOVI*3pzqI?K9YToO<>#9v+MA2PCyRMqzJn26kqJPG@ewI4*{kC;zj)Zf z5=28?Nk=6K2+$Hx#20H;+|SIAyeXkc`zxu92sGTSB+r~Um1nE#d6|n9qgh2*pycvp z#TMv#G^9t>;uz^iaY!=Odpyo%IB6CZ{W{n*(8f>k4?IB?pGv0%2ZlfhGBNvd;cru` zO|zDG+r8K#)I-&`O^+dR--8v?7-9>XXgalD0ZNE-c=<#!pUxrK$_ztsZ}?jZG! zSsOmHR9hZ_^82#o2%&!>oA@*asW3}gvftPEX{j7{4@NTIAh;Z-{&jsJGo<88&$`(M zt8t!6<_ozne9I#)o1#99w@+Wk zY$tcks$QHBkoF_dvZ}&M==^SvckgV=n&+ogUH32jxnEy>{M6t$%eBt_d|$ZBsvT~S zy1nC8mmuNUGoszXfcf_HEfQ#bj-rE*!+`O9Xzncfs1*F=gN&>+vDiauyDAsT9o408 z5HU?ypL$po%~QzNk`H0hkUo<5zWhq&_grU%)W+58Cc5|{%;=#XadrNU1@fc;Zt7rp zL2!;SUiPuQkt$PA^?MI$9CDvS4i3Dm`F@5vuFf;$fr~;knu>X+V5f(pgq>jc*aL^O zfp=S{o{7*+n26cB@DXVToa#1X)gM}KVaQC6Gmh^@wk(kbyCt<8+bjm zJhXBw4Ecl%qj6k;G2Z4S`O#k`jJRT{`e)ij7|~5Zb!`(*F8L>!r!ZB z|H0zAVU{zw7j!T}v=;2}Fx)vpyv%Mt-Ms1{mHqM?@8#rgfs?xK0O_%Sj<%+5I%tQh z*{nFZThi+0`M9GEN37qx?H4c>E$DuKBte{;v)aJZ=239MlJ&%|yEK^NNo}{I8K83C~AE(l5Xw1~&h%tCB9+)L1eTc+5 z>hO7)YU**Gbj(}paq$7G_hl5OI0zBo69StR4?#LUNmJj=T)ju4y%OmOb2$K=KQ)}L z;y(F%eM$RH40@7%ZpU1X9veF%bV#VqpjgUz0mw>!Oq|tp>R2z_s`nym-X_T26lvD# zh|OIUwWfl4bcj1G|IAd8>yi5IwGq`v-Q<+h=``ORXXK+)=sBSy!TUEces`OQDCK7< zLt3g%86-7xrSN(Bajg=u&eE9A8toHAjoY>fAQ)V!Kn8Jk&#hLmtF?E4-WAyG(f;tcv@h`~x-y&l8meMW+bwq{fd;ztZ>LOM)&IeZm0@i;KfQ z*n4hI*s#)e?{`gOl%mpr#amY-9@+y30FPMIcNXJrM`V1G85c|AjWhI-WAH0lGAKsNhG$;BTpzL zcg)@lt47gyOXGYWu@fYff5jd8~=Pdz%(REULF1S!p+J#8F+mtlGnonOF>8oU!0G5@q*I%tndlavj6K+lXOYS z)%0!tH^Sn={(MlBr(6BF0dJ$|@LcG+?Y;hlif9aL4_N=KL}3=#Ma< z9De!1#&efX&CBx%DDE;jx%=|jSQeM*o0vCM`o&N{4&Sn);qxGNUf1x&(TgNpGd1O) zraC8!d!a?1Xy7uk!Gn!8JBo-nVpE?G_rnKEqo@1FL}_FA<>)SD*Gmh~Oq_3jtuT}i zMisd8A9ZBRSl%w3dU#jfdG3tS)llqtwAXZ$tpBJQD-plXKez}zEO2pl157W$o(;s)x6L57NZ%R`@Jgg!o&A6plmFs8Ip)QhsOyaD8 zBbjD3WGhe{JouoG6kC0}@4caQlO045R&;MAZ}PHS&$ZL@V)%#Z&UJDg0-=d5r0ef_ z_?Pnq`qXi!MV zY=$ZT#C`Z52fF(gJEci^PH1#=Bq;MrzC^mm^M#(>_2YfW8b+Wq8J*7yB;)l*-?ZK& zsQK|R-6l^l*P(ucwMrRL#o)NNu0T75gZk%kP!->g*7u^Dh&4H_b2|CV^&u>>r2mtw z;i0t#KC|4|ytDl*kedO&PWh%zTmuJ(<~Fti`0vc&;DqAVAMPV@adEC?3prKaJ-^p= z5eb~mSIz?b7OBzm8qY%jO|HfNH(VX?}d4%Tz4? zw08MfM_=2qDbs~i(DiU9N3G{h)!Fp<5c(odhcB}F$(c;#WDYk|j$Xr@`*Nx?JW3rz ztzLS1H)X|iOEuB8!L64Ivj(uSyGJalfXlR{3XTH7AO2<7rCj9A{(ySJm_gTcDK`+y++bf+KD$_Xq?8co(*CY)A z*j+*WOK}{0e^ z*+RdSp>=Q6u=jwg2_GqwrjwRIwmI5(Iz(a!P62QmD{YyK2rp-@UB@)|)jJf3ni&(A zHdZx{#s6|uZ9VXGI&JNNdsjA>hyCa0;pS~DTfguybyBq7c+NdMqJsVobCRgA=b(<; z)73ZuG9jl$AWpIOK8w4$L02&P5OKM^i5kh(TcG=STD~*@Zj#al*-=I-yqa8=^EwP% zjCTnAaJPjpLq<)?zAw{UYcJ-Ug}+HDFM7l9a&rSuFTAoU<>29=_r67*b~|lZ5r!3L*$h>-luA5Zu?0mY z5HQdXe}BB%GuHXkY%qRPc1D%2-|#unT#&SiMlc?R zBaSt zjXzUw(wVz#^*8(+qD-Vz4L-c7Sha7+WLgyxJe}G9;?ni1OG ze$Ul$L#Y%SQzsWeMz5GCTd_D(XVNayn3q=VJZ~%O9s{o3LxVH!(QDMof&Jj!9E2ippXXB1W{Dwtqex=Nk@Q5X`7MF&9yD26CUK5U4LzgRLTvG6ZtAqfI zZk=RszLf9q94UW;O(?tN%#HJXEl=m6)GK#0MFxIH^=aPmN6x}vYcJv(&?@j_2%j0 zZ{K3=a{m7Ebxs9@_m}HAn zGgKM_gLe?w$f?Q6r&8G*Z1!^Ynt{fRW5=s0Ueq`kCC&C0f@E)`YnRzW%>V3rlF^UY z3p_r(YFW18CuS#1D*1sp@l^9f9Qa9>elkQxhT{{Y*iZ=n6>S45d&&aBryT`pVC`l*69%1J%1g8RjpArXQ~8XQ(oUct%}*A{>v{cv!D@7 z1xCiVyWFd>?M!CyAWk5-*w`rfBercoQ1?#Vgl6IgAOPXJ6wCsAIP`9U&CE*$pRe9C z7D-NEX(?F)J}X9%FR)cz#GZ`q>nUhx=fY0N`9vFa60?s5$x6uUyquNtHlI_i zqU0d%h^zRNUApUVl~>lvP#Qv-gV;Dbi-T zRVL6{< zXsP~k-T#|ah^s=JB3W|_8%39C;3ga4}1#&|jgdP%+F9 zp()Wqb;ZgZ5ZU7bheF9IDS9`0Isq3TvoJX{4S)uZ9Q^TSAEe{b9l!e>QC=cUHF#?S z>M);rp8$2i2|ujfhhO~^VA+-(*JOPzMl-?cB z6~pph!Ig*PYQ1<6Pf{3pAD#MKhIRHH%4g?~_APIyycV-9VL~Ce{?+W<6wOD&&-}LN z7hN@#sIW*m(CR+Lf|1ZpG=7`lcQmVx7&R*00JpM6TZ{#F*m;}4yC~XN=E46Gl8i3o zW)JYnGu693_~NM0->Jggo2;oaO&noCtdIUKn2A^XpQYNHCZpK&a&h;=6@M^<$5cgQ zmhjy~4aGuF$auWt)~mUe1`T|Gj*cQ^ycb{4TBE+%TIZUxZ%CHQ#xr`~Cev$C6Ar<1vXuC)Op7;%|qj;lG_vpHS{ zu?t~a{lhL}6FL#|to*1e5DzpQl*c+)W#nBcVYb&P|ICsC%z(A3W*m3;?BkP?{`Cdj z%B_FfzPt~WCZVxzGBAibPXXh&@7djie3DoFmqRNH^P{Bundh(J+Wc$tCL_+$Q5&t_ z5+DMC)K)S_{cW5{b~X`Z7#J3~$@(MfUtr?wLya?l77kvxUS<7=w{v}eLm}+RE_CZD zO(PSvD-3p<)yI*G+9pP|QYtI7Z*)&ZP0>lQGaMTLBj^;O$K2T;J2vy}={jdi4Ok#bXkRFamfNf%8)yD8 zx@yYeVVt!Ip^Ic=B@BONc~=*y&u-(pN0xSvp60ZW3Sc>2X}*^5F|Ii!EWu6mU>Dl; zJsHuum+Z;g6^^h77W!#KuyjCDqOGe9wzHJEj6Ys3K``bY#Gv9$8#%r2DY^=QWO9_$ z{`n)fH0%p3*efVq_XnN$L;-Q+6g1@Hh_4Y4+jQ#r>8tw zDmD!xRA|EFlZZUe2FJQZ$M@)%xQD)=PwKBbux#j*GVB2i&`Y3d4ZR}%8)$KpI~J;3 z^54aekW+*diX>0#nKK5=~*(TWL!4)hTNJ&m6j$IY}raDCA zsZI08TftzKNrsF=!-Gqeb8I&@zuaXI7B{mbSx*>o;lPoR3$x}Yj%6%bbR;A_)5X9{ z8iw&@an;Apo!;hgaI$c+aB$TybFd`=Nvsgw?XZl4m`7q%bn((WkpXi#UHqmC1tG{6 zL{I<~c2@g`@Y}n(3CqGF+RcbhUn}&gf;d~25uUz4$vB*l-3gnd5$iP3=9NBh3l?nL*u4N}9wZuk8k4uP)OK?C9yZ?jwY;@Jf)U~zi9S|7u6?*6) zoI`-cG!$heqWHl{H>Q7|%zYR!QgMggghNiYD{zf1Z~gT0Va{dAR9n}gDHB%)8JZ$y zf;bZnR|Rr*Mc}waQMCTmjb-GI<*ZVyFN#qmU%;BQ(K6cB*7|l)rfLxvgviF9P{R-k zqy}3Xocl@y=dDv=pgz4q0J6(R6KAuEov8v{EjKrfsM+3ga_D&|H5&4|cAf}8qf7EX zgFn80peIQi{`8JT+=%%syU<>I7y=pMb<{@WyJ3Wp1f9Lrh&^ljkw5z24y>!djl=oH zTRCBa*@Re_0fEMR9TTVtRN4iH;Pum6-_8(o^;ASzoQ}>X;&Oq%HX{d4Qk6?vS9eE*(_Zintez5w?Gc%t3N9@r zTpBP=9L}h@BR}b9JSoK_q#Fas)i_t7J zHYT$MBvDJVbSQIMjI`uktc*vn3XFot;t&c{sa$oYwNp*R)N(x)v@*L6&gQi>ZUBBA*jgpx_*sRgT$W;?V8f#sJbc7~z}X$K3uwAl9VaS-Ut{^GU6NaGsO`+U%IJ3`_A(h>UAr53UTc zMXJ?Ov+B_rkCVfk2H5U)yixU7>)oLEu%1z+JkMNrd zd$@Eu+G*dJDt7!A?wL4r$xzA_gg;)G-GLe2S=3Ynur?Rc{)31ddk`gd?PN+`b|h6Nz@ zLv&?XW(foWDXTBE%Y@h)0vj3(MFO95MAKYj>zL0VC2s6^7_6jIkiRAzmwUgsjJc6N zv-F#5Y_JqRe^l3LvWKgrP_ZI3gP1-%6lwf7xx0S3X|hw+yrdYYiue{_LSzh9u_0|8 z9ejW;zQlrmTGeySXm$l@v8>DXUk^U2Nxj|*owTWNErvg*s%J82dj0k6P&e}7gJV}j zZSj9nNoL+5_K|wE%-22!#wTMg9f1@PCjS^cY{A0h4>H_g*E$UkfB1*eEf70-xPH9t zXFW#0_A^yF@2mem>dF7lG5$X)H2?3V>Hlj5I-+j;|F&?Qp8;bfl+>uluZ6=apTo=i zQ%5bXkHnYH6v8f>e-GvtpEKRgQl$}P@0e(BTk=N^=NpPH_v~A-)sg?(FAca_@mt;e zs&Eecc=}LZjFtT`$7Jx<<9X6&O=Q2AO3(2Q)-qw#+IX5koc4gz(vLfm;ZcdR5F!gEw=MOxvj`5lz`V0h^7(CmG^y zp0h+0oY1IqHRH1!sp^F@STtr5Q+)2tf`pD)Ha}4AdSGXpNHvoeCL6rD-UC4h(-wSr zav%+NyRYfte4yr$+^I1e+`Q-wc+YS~AgflhYM*<*WxYE!J6Tk5TYY~NK@)^4qqY9< z(_iMwQiMm+=6QUV>u&O3aJ4i1^L39v@KtS+Sg4AmXWG-G=_{jNm%GHVcLIE(ghJvuy4E?Jhs=w@%OoVUg;nsu3?cf}I1$rwl@0j&^FFuV)?SZ+ zI6~CPy!$|%O;G>$?u3;9HkmU2=j;D6-aTL5dX+Gx;L|-MRWG;x&ks6CD0ib5LRlr3 zgq%5uiPYivKepX@_7tFnKu5oN>`=AhOT*vDlable|EjP5lpfCxEQ-{Ol`Zx67o0z8 z)&BVtxAyD9xj|nh_}9J`w%uhMU$tb_ggpwAtLlTU9h7N5UF_%>^_4mM;imJkK!G{j zSr>nKAGWT(>8Ku7yJJ_nd&`A>ZL>dxvs&cB_x4=vHno+wEVp}kmC^Hm`>f{9oVX_a zNB`9~JL}^a=@1IuvpP84_YkBjvS$=pK)_pOsov(b%K2X%MHmluk|Er0`$(EtK ze!wy-vi$jy>8sotR-dx{yWXev_2gCWOLo{yUUp^%Fh$?b&-uUqOZdg?ufM#lW90sB z`u{@<==-bb*}XenpWOdX$;y1<>1kFUn*LcbgueLoP29Wbc)y(4=c6Y%7J}mUd6Ca7 zqs6N_SI-6||K`JGt1JJ!NCcYjxA17&EBkN2)b@2n_*NUBrfts?&VkbJ%b3vnmcYcb zrrC1q)UH+GGr#}#+nU*b*SP%QCHt@kj8hKy1}D{=S>J6p18C+|>B+#%^{@0I`_<=x zN-b&oEOu7?wKP_)1g7ri=WF8rcVE?hXdFMs2I!|Kbw~cIG*z9gw>4Tt#3B|x}JU} zt^ycdU&M^IG%n=gm0GtlzxGqQcHQr61IIzGGSXco^y63!VE!aO#)}8NV z^wnZM;6WI84?RIWSp?^iBRD0{P8LBNtb!(idVmPjRj}hg5Cy)%0iq94q3qBTw3-Fs y0(6PC-8hbmAu{C9!h!Mt0>>xF@*lJR00009a7bBm000XU z000XU0RWnu7ytkO1ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ^-$_J4RCwC#nt4!F*BQXiId^;e$|fMlrlP2zxEmK# zj0@J?u@jqUJGIudsWn4YlBsFjvN*=LO=Q%V*j5s2#JCX~Yt*;Sxj1u@IPiyR8^K`j^%isdklbri$$4#%|4Y| zSYG9jWd%aW^Q_%sj*SW*Iv{ak>I*TQ!Zz>Nv-2N0dYz_Givqy2tl4A;4Gu_7j2|^5 zIlyjd`m;w*=KcBoOsz&B6hH_ztXR|~CgPzC7~`u&CE=k#W|Qgur|kV+duz?swV7E? zr&|zshGl$56TOn7)_J+;=H7i@@7$A7iW3-y>E1QAva0&KbA^3-_jpJSWUT(^FYjhz zLd<3(fY9re00js^Sy3cO<~UX`>Sb900Pq|KbQ+yjqtj}%8UbUXVoV5O7-Tf)j0RnK zm1D`<8>am_qu$wYP?lksdn!7u2BF8uzyP~llGUOc#cg>Yx8TYLnOS_j>W|e-~V)6lesV=eX?s zM;GX|AFq3pK~GgM5Q0MnBo!21{%r4|8I#7g4v_QBS+D3dnT?nbtwz|j`R#6&Q%y4mV`4TM)~{HIAo4}g{v#(}dvoobifWC(8!e`tyAO{WIcV0T z(NCY#X0x^M>am{Ji@J7>YbAs#@798Q-w8qpK+F6#8})DeVa}edD=7tpkS3u|U2gH7 zB1lUelJ(JYomPV}fe^AByMEhlN-085TeYJiI=q!WuehY7va+%j0E@{0CdO)%3NnkU)fB+xIbj6XRc+lIjt?006BQ zWFP#R64Ek+2J}vV2vQ0l1U%2){Gn{&vULWXwnI=rLf7aQM+_L3GB7+e=n*ZA8#!q6 zCwqO)6ur{LYsKx=Mh+j(udXal9Wf{}GP0QmMh@vSHf5l*wvJLtDd0KIWY7Z$Zs7@Aj5NGWXw!1LVp zwQo$CkmB-)PM1efRZ1y>kmp!~UTZSy>*`$@D>g1zy5?Szv{}CqY8v#aircF_^E?+E z9B`+!tiImaGOL0DtY2(foxS~?Y2$|n*{zDI);rxUk4Pv50B{^@u$Z>~{mXL~uIaRz zw$0QzU7{p6a6)J`8{6v|6JuQMaMrtAj+z>_)i=^c4@nz6q}ow??fYB#7q1^Xou6~; z3?`Ie5P}e^`0%ka48yc-Cb!^@h*0(2T0+_i2~m``?K&Xv8~{L;<*10zg!pJl zmfHoOfA8*NQ<4ojUQyI$01KC`do5#)qqhEjovGu7+bkwburDJmW`nP7H8zc=5#{!H zf4k(pi`R+;fd>Fc9`Br)<9Uv2kp>!pe=>j`@i7xpdh2yO&kM~$NLBEM8$SK#w|TG3 z7(X^;U|dwV?*tW9jq;w`J2=Eji;Ao<=ClnT8-e9OTMFDa~eJ2mk-R$cUWbmJZkR?` z=5B5M#Fx_vrGyYw#T>^P^*R7Rozoo_61a8E60=d?8~_3U<}ZG)MOJ&{j!Mvjw+GD@0MEga8Nt1*)p@92?#tXy(sG{b|8V zW|N`8_>YwyHr9SY;H_q3mzap@X(=<(Mm8=3J{8ogIkY@1Vwkq)rC#0QdL(y6K#d6R z(63KY>l>NNEnX?QdHH(Dow6!Xk`O|HHcR&|QHcqit!Cr@cT3)%b7bG)96-VRxvwPk zOnAsn{7i`?$!Bu&KH2rTqN-_QMo*uV*7{2MY)Z!JEm`}H4DTBS03AB8|I~@&AGi}g zgQBXqva$@zB36`?VS{E(o!m4}p7jvAeW!Ha!JOif5|(9ChP{xQGQ35ddPY4U$;#Y6 zuIdzO)AMRYRdqyo*!VG{8rR6j1|WnGN*RP;I}P-0i`(r!lbfG^{z6TaEoD&831dbN z9@tN()jsykT#E@-RaHtU%d#x{llX0W))&XXiD z#@OqXWJMtuE2?_8#u?KooMjo7Wo1R>xd-~kBT53#K?o#C7DX|A`KH*&ki_`NimGY= zfZb*d2@VPm3kwPic=Y>=r>a7fQm~y&aA*B@#yUo%uG}vaf+U-`8@k!czdzMj*F~(SyWm!=a zMNw6?rp_gBEJV}gpv5|`ST0$00000NkvXXu0mjff{t_O diff --git a/externals/SDL/Xcode-iOS/Template/SDL iOS Application/Info.plist b/externals/SDL/Xcode-iOS/Template/SDL iOS Application/Info.plist deleted file mode 100755 index b8089dca2..000000000 --- a/externals/SDL/Xcode-iOS/Template/SDL iOS Application/Info.plist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - ${PRODUCT_NAME} - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - Icon - CFBundleIdentifier - com.yourcompany.${PRODUCT_NAME:identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - APPL - CFBundleSignature - ???? - CFBundleVersion - 1.0 - LSRequiresIPhoneOS - - - diff --git a/externals/SDL/Xcode-iOS/Template/SDL iOS Application/___PROJECTNAME___.xcodeproj/TemplateIcon.icns b/externals/SDL/Xcode-iOS/Template/SDL iOS Application/___PROJECTNAME___.xcodeproj/TemplateIcon.icns deleted file mode 100755 index 4500ce2bbd0e598176a3fa6c4fad8ecf466b7b05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34248 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 b$mf1IYH#m`|IBszq&e`P=n)<<3WE4=D!jsj diff --git a/externals/SDL/Xcode-iOS/Template/SDL iOS Application/___PROJECTNAME___.xcodeproj/TemplateInfo.plist b/externals/SDL/Xcode-iOS/Template/SDL iOS Application/___PROJECTNAME___.xcodeproj/TemplateInfo.plist deleted file mode 100755 index 498e37d4f..000000000 --- a/externals/SDL/Xcode-iOS/Template/SDL iOS Application/___PROJECTNAME___.xcodeproj/TemplateInfo.plist +++ /dev/null @@ -1,10 +0,0 @@ - - - - - Description - This project builds an SDL based project for iPhone OS using C or Objective-C. It includes everything you need to get up and running with SDL on iPhone. - CFBundleIconFile - Icon.png - - diff --git a/externals/SDL/Xcode-iOS/Template/SDL iOS Application/___PROJECTNAME___.xcodeproj/project.pbxproj b/externals/SDL/Xcode-iOS/Template/SDL iOS Application/___PROJECTNAME___.xcodeproj/project.pbxproj deleted file mode 100755 index 8e54e04f7..000000000 --- a/externals/SDL/Xcode-iOS/Template/SDL iOS Application/___PROJECTNAME___.xcodeproj/project.pbxproj +++ /dev/null @@ -1,500 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; - 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; - 28FD15000DC6FC520079059D /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28FD14FF0DC6FC520079059D /* OpenGLES.framework */; }; - 28FD15080DC6FC5B0079059D /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28FD15070DC6FC5B0079059D /* QuartzCore.framework */; }; - 945C4F53195AF17F00DBBF61 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 945C4F52195AF17F00DBBF61 /* Default-568h@2x.png */; }; - F3A497AC2555F0BD00E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A497AB2555F0BD00E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - F3A497AD2555F0C000E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A4978F2555F07100E92A8B /* libSDL2.a */; }; - F3A497B02555F0FF00E92A8B /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A497AF2555F0FF00E92A8B /* Metal.framework */; }; - F3A497B32555F11600E92A8B /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A497B22555F11600E92A8B /* AVFoundation.framework */; }; - FA8B4B97196703B400F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4B96196703B400F8EB7C /* CoreMotion.framework */; }; - FAE0E9651BAF967F0098DFA4 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FAE0E9641BAF967F0098DFA4 /* GameController.framework */; }; - FD779EDE0E26BA1200F39101 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FD779EDD0E26BA1200F39101 /* CoreAudio.framework */; }; - FD77A07D0E26BD8C00F39101 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = FD77A07C0E26BD8C00F39101 /* Icon.png */; }; - FD77A07F0E26BDA900F39101 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = FD77A07E0E26BDA900F39101 /* Default.png */; }; - FD77A0850E26BDB800F39101 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FD77A0840E26BDB800F39101 /* AudioToolbox.framework */; }; - FD77A09D0E26BDE500F39101 /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = FD77A09C0E26BDE500F39101 /* main.c */; }; - FDB8BFC60E5A0F6A00980157 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDB8BFC50E5A0F6A00980157 /* CoreGraphics.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - F3A497862555F07100E92A8B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = BECDF66C0761BA81005FE872; - remoteInfo = Framework; - }; - F3A497882555F07100E92A8B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = A7D88B5423E2437C00DCD162; - remoteInfo = "Framework-iOS"; - }; - F3A4978A2555F07100E92A8B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = A7D88D1523E24BED00DCD162; - remoteInfo = "Framework-tvOS"; - }; - F3A4978C2555F07100E92A8B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = BECDF6B30761BA81005FE872; - remoteInfo = "Static Library"; - }; - F3A4978E2555F07100E92A8B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = A7D88E5423E24D3B00DCD162; - remoteInfo = "Static Library-iOS"; - }; - F3A497902555F07100E92A8B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = A769B23D23E259AE00872273; - remoteInfo = "Static Library-tvOS"; - }; - F3A497922555F07100E92A8B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = DB31407717554B71006C0E22; - remoteInfo = "Shared Library"; - }; - F3A497942555F07100E92A8B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = A75FCEB323E25AB700529352; - remoteInfo = "Shared Library-iOS"; - }; - F3A497962555F07100E92A8B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = A75FD06C23E25AC700529352; - remoteInfo = "Shared Library-tvOS"; - }; - F3A497982555F07100E92A8B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = BECDF6BE0761BA81005FE872; - remoteInfo = "Standard DMG"; - }; - F3A4979A2555F07100E92A8B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = A75FDB8C23E4C74400529352; - remoteInfo = hidapi; - }; - F3A4979C2555F07100E92A8B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = A75FDB4923E399AC00529352; - remoteInfo = "hidapi-iOS"; - }; - F3A4979E2555F07100E92A8B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = A75FDB6E23E3A2C900529352; - remoteInfo = "hidapi-tvOS"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 1D6058910D05DD3D006BFB54 /* ___PROJECTNAME___.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "___PROJECTNAME___.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - 28FD14FF0DC6FC520079059D /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; - 28FD15070DC6FC5B0079059D /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; - 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 944A65681957463F0094A81E /* SDL.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDL.xcodeproj; path = ../../../Xcode/SDL/SDL.xcodeproj; sourceTree = ""; }; - 945C4F52195AF17F00DBBF61 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; }; - F3A497AB2555F0BD00E92A8B /* CoreHaptics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreHaptics.framework; path = System/Library/Frameworks/CoreHaptics.framework; sourceTree = SDKROOT; }; - F3A497AF2555F0FF00E92A8B /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; }; - F3A497B22555F11600E92A8B /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; - FA8B4B96196703B400F8EB7C /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; }; - FAE0E9641BAF967F0098DFA4 /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; }; - FD779EDD0E26BA1200F39101 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; - FD77A07C0E26BD8C00F39101 /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Icon.png; sourceTree = ""; }; - FD77A07E0E26BDA900F39101 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = ""; }; - FD77A0840E26BDB800F39101 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; - FD77A09C0E26BDE500F39101 /* main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = ""; }; - FDB8BFC50E5A0F6A00980157 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 1D60588F0D05DD3D006BFB54 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - F3A497AD2555F0C000E92A8B /* libSDL2.a in Frameworks */, - FD77A0850E26BDB800F39101 /* AudioToolbox.framework in Frameworks */, - F3A497B32555F11600E92A8B /* AVFoundation.framework in Frameworks */, - 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */, - FD779EDE0E26BA1200F39101 /* CoreAudio.framework in Frameworks */, - FDB8BFC60E5A0F6A00980157 /* CoreGraphics.framework in Frameworks */, - F3A497AC2555F0BD00E92A8B /* CoreHaptics.framework in Frameworks */, - FA8B4B97196703B400F8EB7C /* CoreMotion.framework in Frameworks */, - FAE0E9651BAF967F0098DFA4 /* GameController.framework in Frameworks */, - F3A497B02555F0FF00E92A8B /* Metal.framework in Frameworks */, - 28FD15000DC6FC520079059D /* OpenGLES.framework in Frameworks */, - 28FD15080DC6FC5B0079059D /* QuartzCore.framework in Frameworks */, - 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 19C28FACFE9D520D11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 1D6058910D05DD3D006BFB54 /* ___PROJECTNAME___.app */, - ); - name = Products; - sourceTree = ""; - }; - 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { - isa = PBXGroup; - children = ( - 945C4F52195AF17F00DBBF61 /* Default-568h@2x.png */, - 29B97315FDCFA39411CA2CEA /* Sources */, - 29B97317FDCFA39411CA2CEA /* Resources */, - 29B97323FDCFA39411CA2CEA /* Frameworks */, - 19C28FACFE9D520D11CA2CBB /* Products */, - ); - name = CustomTemplate; - sourceTree = ""; - }; - 29B97315FDCFA39411CA2CEA /* Sources */ = { - isa = PBXGroup; - children = ( - 944A65681957463F0094A81E /* SDL.xcodeproj */, - FD77A09C0E26BDE500F39101 /* main.c */, - ); - name = Sources; - sourceTree = ""; - }; - 29B97317FDCFA39411CA2CEA /* Resources */ = { - isa = PBXGroup; - children = ( - FD77A07E0E26BDA900F39101 /* Default.png */, - FD77A07C0E26BD8C00F39101 /* Icon.png */, - 8D1107310486CEB800E47090 /* Info.plist */, - ); - name = Resources; - sourceTree = ""; - }; - 29B97323FDCFA39411CA2CEA /* Frameworks */ = { - isa = PBXGroup; - children = ( - F3A497B22555F11600E92A8B /* AVFoundation.framework */, - F3A497AF2555F0FF00E92A8B /* Metal.framework */, - F3A497AB2555F0BD00E92A8B /* CoreHaptics.framework */, - FAE0E9641BAF967F0098DFA4 /* GameController.framework */, - FA8B4B96196703B400F8EB7C /* CoreMotion.framework */, - FDB8BFC50E5A0F6A00980157 /* CoreGraphics.framework */, - FD77A0840E26BDB800F39101 /* AudioToolbox.framework */, - FD779EDD0E26BA1200F39101 /* CoreAudio.framework */, - 28FD15070DC6FC5B0079059D /* QuartzCore.framework */, - 28FD14FF0DC6FC520079059D /* OpenGLES.framework */, - 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */, - 1D30AB110D05D00D00671497 /* Foundation.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - F3A497772555F07100E92A8B /* Products */ = { - isa = PBXGroup; - children = ( - F3A497872555F07100E92A8B /* SDL2.framework */, - F3A497892555F07100E92A8B /* SDL2.framework */, - F3A4978B2555F07100E92A8B /* SDL2.framework */, - F3A4978D2555F07100E92A8B /* libSDL2.a */, - F3A4978F2555F07100E92A8B /* libSDL2.a */, - F3A497912555F07100E92A8B /* libSDL2.a */, - F3A497932555F07100E92A8B /* libSDL2.dylib */, - F3A497952555F07100E92A8B /* libSDL2.dylib */, - F3A497972555F07100E92A8B /* libSDL2.dylib */, - F3A497992555F07100E92A8B /* SDL2 */, - F3A4979B2555F07100E92A8B /* hidapi.framework */, - F3A4979D2555F07100E92A8B /* hidapi.framework */, - F3A4979F2555F07100E92A8B /* hidapi.framework */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 1D6058900D05DD3D006BFB54 /* ___PROJECTNAME___ */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "___PROJECTNAME___" */; - buildPhases = ( - 1D60588D0D05DD3D006BFB54 /* Resources */, - 1D60588E0D05DD3D006BFB54 /* Sources */, - 1D60588F0D05DD3D006BFB54 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "___PROJECTNAME___"; - productName = "___PROJECTNAME___"; - productReference = 1D6058910D05DD3D006BFB54 /* ___PROJECTNAME___.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 29B97313FDCFA39411CA2CEA /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0510; - }; - buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "___PROJECTNAME___" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = F3A497772555F07100E92A8B /* Products */; - ProjectRef = 944A65681957463F0094A81E /* SDL.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 1D6058900D05DD3D006BFB54 /* ___PROJECTNAME___ */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - F3A497872555F07100E92A8B /* SDL2.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = SDL2.framework; - remoteRef = F3A497862555F07100E92A8B /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - F3A497892555F07100E92A8B /* SDL2.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = SDL2.framework; - remoteRef = F3A497882555F07100E92A8B /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - F3A4978B2555F07100E92A8B /* SDL2.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = SDL2.framework; - remoteRef = F3A4978A2555F07100E92A8B /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - F3A4978D2555F07100E92A8B /* libSDL2.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libSDL2.a; - remoteRef = F3A4978C2555F07100E92A8B /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - F3A4978F2555F07100E92A8B /* libSDL2.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libSDL2.a; - remoteRef = F3A4978E2555F07100E92A8B /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - F3A497912555F07100E92A8B /* libSDL2.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libSDL2.a; - remoteRef = F3A497902555F07100E92A8B /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - F3A497932555F07100E92A8B /* libSDL2.dylib */ = { - isa = PBXReferenceProxy; - fileType = "compiled.mach-o.dylib"; - path = libSDL2.dylib; - remoteRef = F3A497922555F07100E92A8B /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - F3A497952555F07100E92A8B /* libSDL2.dylib */ = { - isa = PBXReferenceProxy; - fileType = "compiled.mach-o.dylib"; - path = libSDL2.dylib; - remoteRef = F3A497942555F07100E92A8B /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - F3A497972555F07100E92A8B /* libSDL2.dylib */ = { - isa = PBXReferenceProxy; - fileType = "compiled.mach-o.dylib"; - path = libSDL2.dylib; - remoteRef = F3A497962555F07100E92A8B /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - F3A497992555F07100E92A8B /* SDL2 */ = { - isa = PBXReferenceProxy; - fileType = "compiled.mach-o.executable"; - path = SDL2; - remoteRef = F3A497982555F07100E92A8B /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - F3A4979B2555F07100E92A8B /* hidapi.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = hidapi.framework; - remoteRef = F3A4979A2555F07100E92A8B /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - F3A4979D2555F07100E92A8B /* hidapi.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = hidapi.framework; - remoteRef = F3A4979C2555F07100E92A8B /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - F3A4979F2555F07100E92A8B /* hidapi.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = hidapi.framework; - remoteRef = F3A4979E2555F07100E92A8B /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 1D60588D0D05DD3D006BFB54 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FD77A07D0E26BD8C00F39101 /* Icon.png in Resources */, - FD77A07F0E26BDA900F39101 /* Default.png in Resources */, - 945C4F53195AF17F00DBBF61 /* Default-568h@2x.png in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 1D60588E0D05DD3D006BFB54 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FD77A09D0E26BDE500F39101 /* main.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 1D6058940D05DD3E006BFB54 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = ""; - INFOPLIST_FILE = Info.plist; - LIBRARY_SEARCH_PATHS = "$(inherited)"; - PRODUCT_NAME = "___PROJECTNAME___"; - USER_HEADER_SEARCH_PATHS = ../../../include; - }; - name = Debug; - }; - 1D6058950D05DD3E006BFB54 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = ""; - INFOPLIST_FILE = Info.plist; - LIBRARY_SEARCH_PATHS = "$(inherited)"; - PRODUCT_NAME = "___PROJECTNAME___"; - USER_HEADER_SEARCH_PATHS = ../../../include; - }; - name = Release; - }; - C01FCF4F08A954540054247B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - GCC_C_LANGUAGE_STANDARD = c99; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = ""; - PREBINDING = NO; - SDKROOT = iphoneos; - }; - name = Debug; - }; - C01FCF5008A954540054247B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - GCC_C_LANGUAGE_STANDARD = c99; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - OTHER_CFLAGS = ""; - PREBINDING = NO; - SDKROOT = iphoneos; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "___PROJECTNAME___" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1D6058940D05DD3E006BFB54 /* Debug */, - 1D6058950D05DD3E006BFB54 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C01FCF4E08A954540054247B /* Build configuration list for PBXProject "___PROJECTNAME___" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF4F08A954540054247B /* Debug */, - C01FCF5008A954540054247B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; -} diff --git a/externals/SDL/Xcode-iOS/Template/SDL iOS Application/___PROJECTNAME___.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/externals/SDL/Xcode-iOS/Template/SDL iOS Application/___PROJECTNAME___.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100755 index f2ce4f05f..000000000 --- a/externals/SDL/Xcode-iOS/Template/SDL iOS Application/___PROJECTNAME___.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/externals/SDL/Xcode-iOS/Template/SDL iOS Application/main.c b/externals/SDL/Xcode-iOS/Template/SDL iOS Application/main.c deleted file mode 100755 index 52fd9a49a..000000000 --- a/externals/SDL/Xcode-iOS/Template/SDL iOS Application/main.c +++ /dev/null @@ -1,100 +0,0 @@ -/* - * rectangles.c - * written by Holmes Futrell - * use however you want - */ - -#include "SDL.h" -#include -#include -#include - -#define SCREEN_WIDTH 320 -#define SCREEN_HEIGHT 480 - -int -randomInt(int min, int max) -{ - return min + rand() % (max - min + 1); -} - -void -render(SDL_Renderer *renderer) -{ - - SDL_Rect rect; - Uint8 r, g, b; - - /* Clear the screen */ - SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); - SDL_RenderClear(renderer); - - /* Come up with a random rectangle */ - rect.w = randomInt(64, 128); - rect.h = randomInt(64, 128); - rect.x = randomInt(0, SCREEN_WIDTH); - rect.y = randomInt(0, SCREEN_HEIGHT); - - /* Come up with a random color */ - r = randomInt(50, 255); - g = randomInt(50, 255); - b = randomInt(50, 255); - SDL_SetRenderDrawColor(renderer, r, g, b, 255); - - /* Fill the rectangle in the color */ - SDL_RenderFillRect(renderer, &rect); - - /* update screen */ - SDL_RenderPresent(renderer); -} - -int -main(int argc, char *argv[]) -{ - - SDL_Window *window; - SDL_Renderer *renderer; - int done; - SDL_Event event; - - /* initialize SDL */ - if (SDL_Init(SDL_INIT_VIDEO) < 0) { - printf("Could not initialize SDL\n"); - return 1; - } - - /* seed random number generator */ - srand(time(NULL)); - - /* create window and renderer */ - window = - SDL_CreateWindow(NULL, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, - SDL_WINDOW_OPENGL); - if (!window) { - printf("Could not initialize Window\n"); - return 1; - } - - renderer = SDL_CreateRenderer(window, -1, 0); - if (!renderer) { - printf("Could not create renderer\n"); - return 1; - } - - /* Enter render loop, waiting for user to quit */ - done = 0; - while (!done) { - while (SDL_PollEvent(&event)) { - if (event.type == SDL_QUIT) { - done = 1; - } - } - render(renderer); - SDL_Delay(1); - } - - /* shutdown SDL */ - SDL_Quit(); - - return 0; -} diff --git a/externals/SDL/Xcode/SDL/hidapi/Info.plist b/externals/SDL/Xcode/SDL/hidapi/Info.plist deleted file mode 100755 index 145b17a93..000000000 --- a/externals/SDL/Xcode/SDL/hidapi/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - $(CURRENT_PROJECT_VERSION) - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - - diff --git a/externals/SDL/acinclude/pkg_config.m4 b/externals/SDL/acinclude/pkg_config.m4 deleted file mode 100755 index 596b10f58..000000000 --- a/externals/SDL/acinclude/pkg_config.m4 +++ /dev/null @@ -1,133 +0,0 @@ -# PKG_PROG_PKG_CONFIG([MIN-VERSION]) -# ---------------------------------- -AC_DEFUN([PKG_PROG_PKG_CONFIG], -[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) -m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) -AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) -AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) -AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=m4_default([$1], [0.9.0]) - AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - PKG_CONFIG="" - fi -fi[]dnl -])# PKG_PROG_PKG_CONFIG - -# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -# -# Check to see whether a particular set of modules exists. Similar -# to PKG_CHECK_MODULES(), but does not set variables or print errors. -# -# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -# only at the first occurence in configure.ac, so if the first place -# it's called might be skipped (such as if it is within an "if", you -# have to call PKG_CHECK_EXISTS manually -# -------------------------------------------------------------- -AC_DEFUN([PKG_CHECK_EXISTS], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -if test -n "$PKG_CONFIG" && \ - AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then - m4_default([$2], [:]) -m4_ifvaln([$3], [else - $3])dnl -fi]) - -# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) -# --------------------------------------------- -m4_define([_PKG_CONFIG], -[if test -n "$$1"; then - pkg_cv_[]$1="$$1" - elif test -n "$PKG_CONFIG"; then - PKG_CHECK_EXISTS([$3], - [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], - [pkg_failed=yes]) - else - pkg_failed=untried -fi[]dnl -])# _PKG_CONFIG - -# _PKG_SHORT_ERRORS_SUPPORTED -# ----------------------------- -AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi[]dnl -])# _PKG_SHORT_ERRORS_SUPPORTED - - -# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], -# [ACTION-IF-NOT-FOUND]) -# -# -# Note that if there is a possibility the first call to -# PKG_CHECK_MODULES might not happen, you should be sure to include an -# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac -# -# -# -------------------------------------------------------------- -AC_DEFUN([PKG_CHECK_MODULES], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl -AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl - -pkg_failed=no -AC_MSG_CHECKING([for $1]) - -_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) -_PKG_CONFIG([$1][_LIBS], [libs], [$2]) - -m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS -and $1[]_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details.]) - -if test $pkg_failed = yes; then - AC_MSG_RESULT([no]) - _PKG_SHORT_ERRORS_SUPPORTED - if test $_pkg_short_errors_supported = yes; then - $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` - else - $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD - - m4_default([$4], [AC_MSG_ERROR( -[Package requirements ($2) were not met: - -$$1_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -_PKG_TEXT])dnl - ]) -elif test $pkg_failed = untried; then - AC_MSG_RESULT([no]) - m4_default([$4], [AC_MSG_FAILURE( -[The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -_PKG_TEXT - -To get pkg-config, see .])dnl - ]) -else - $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS - $1[]_LIBS=$pkg_cv_[]$1[]_LIBS - AC_MSG_RESULT([yes]) - $3 -fi[]dnl -])# PKG_CHECK_MODULES diff --git a/externals/SDL/build-scripts/config.sub.patch b/externals/SDL/build-scripts/config.sub.patch deleted file mode 100755 index 8c09e0046..000000000 --- a/externals/SDL/build-scripts/config.sub.patch +++ /dev/null @@ -1,72 +0,0 @@ ---- config.sub.orig 2017-09-09 08:01:02.139023205 -0700 -+++ config.sub 2017-09-09 07:59:35.798264474 -0700 -@@ -364,6 +364,19 @@ - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; -+ nacl64*) -+ basic_machine=x86_64-pc -+ os=-nacl -+ ;; -+ nacl*) -+ basic_machine=i686-pc -+ os=-nacl -+ ;; -+ pnacl*) -+ # le32-unknown-pnacl comes from http://www.chromium.org/nativeclient/pnacl/stability-of-the-pnacl-bitcode-abi -+ basic_machine=le32-unknown -+ os=-pnacl -+ ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 -@@ -877,6 +890,10 @@ - basic_machine=le32-unknown - os=-nacl - ;; -+ pnacl) -+ basic_machine=le32-unknown -+ os=-pnacl -+ ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 -@@ -1429,6 +1446,12 @@ - ;; - esac - ;; -+ -nacl*) -+ os=-nacl -+ ;; -+ -pnacl*) -+ os=-pnacl -+ ;; - -nto-qnx*) - ;; - -nto*) -@@ -1459,6 +1482,9 @@ - -os400*) - os=-os400 - ;; -+ -cegcc*) -+ os=-cegcc -+ ;; - -wince*) - os=-wince - ;; -@@ -1548,9 +1574,15 @@ - os=-dicos - ;; - -nacl*) -+ os=-nacl -+ ;; -+ -pnacl*) -+ os=-pnacl - ;; - -ios) - ;; -+ -emscripten*) -+ ;; - -none) - ;; - *) diff --git a/externals/SDL/build-scripts/gcc-fat.sh b/externals/SDL/build-scripts/gcc-fat.sh deleted file mode 100755 index 65f759d4a..000000000 --- a/externals/SDL/build-scripts/gcc-fat.sh +++ /dev/null @@ -1,102 +0,0 @@ -#!/bin/sh -# -# Build Universal binaries on Mac OS X, thanks Ryan! -# -# Usage: ./configure CC="sh gcc-fat.sh" && make && rm -rf x86 x64 - -DEVELOPER="`xcode-select -print-path`/Platforms/MacOSX.platform/Developer" - -# Intel 32-bit compiler flags (10.6 runtime compatibility) -GCC_COMPILE_X86="gcc -arch i386 -mmacosx-version-min=10.6 \ --I/usr/local/include" - -GCC_LINK_X86="-mmacosx-version-min=10.6" - -# Intel 64-bit compiler flags (10.6 runtime compatibility) -GCC_COMPILE_X64="gcc -arch x86_64 -mmacosx-version-min=10.6 \ --DMAC_OS_X_VERSION_MIN_REQUIRED=1060 \ --I/usr/local/include" - -GCC_LINK_X64="-mmacosx-version-min=10.6" - -# Output both PowerPC and Intel object files -args="$*" -compile=yes -link=yes -while test x$1 != x; do - case $1 in - --version) exec gcc $1;; - -v) exec gcc $1;; - -V) exec gcc $1;; - -print-prog-name=*) exec gcc $1;; - -print-search-dirs) exec gcc $1;; - -E) GCC_COMPILE_X86="$GCC_COMPILE_X86 -E" - GCC_COMPILE_X64="$GCC_COMPILE_X64 -E" - compile=no; link=no;; - -c) link=no;; - -o) output=$2;; - *.c|*.cc|*.cpp|*.S|*.m|*.mm) source=$1;; - esac - shift -done -if test x$link = xyes; then - GCC_COMPILE_X86="$GCC_COMPILE_X86 $GCC_LINK_X86" - GCC_COMPILE_X64="$GCC_COMPILE_X64 $GCC_LINK_X64" -fi -if test x"$output" = x; then - if test x$link = xyes; then - output=a.out - elif test x$compile = xyes; then - output=`echo $source | sed -e 's|.*/||' -e 's|\(.*\)\.[^\.]*|\1|'`.o - fi -fi - -# Compile X86 32-bit -if test x"$output" != x; then - dir=x86/`dirname $output` - if test -d $dir; then - : - else - mkdir -p $dir - fi -fi -set -- $args -while test x$1 != x; do - if test -f "x86/$1" && test "$1" != "$output"; then - x86_args="$x86_args x86/$1" - else - x86_args="$x86_args $1" - fi - shift -done -$GCC_COMPILE_X86 $x86_args || exit $? -if test x"$output" != x; then - cp $output x86/$output -fi - -# Compile X86 32-bit -if test x"$output" != x; then - dir=x64/`dirname $output` - if test -d $dir; then - : - else - mkdir -p $dir - fi -fi -set -- $args -while test x$1 != x; do - if test -f "x64/$1" && test "$1" != "$output"; then - x64_args="$x64_args x64/$1" - else - x64_args="$x64_args $1" - fi - shift -done -$GCC_COMPILE_X64 $x64_args || exit $? -if test x"$output" != x; then - cp $output x64/$output -fi - -if test x"$output" != x; then - lipo -create -o $output x86/$output x64/$output -fi diff --git a/externals/SDL/build-scripts/iosbuild.sh b/externals/SDL/build-scripts/iosbuild.sh deleted file mode 100755 index 143de7dad..000000000 --- a/externals/SDL/build-scripts/iosbuild.sh +++ /dev/null @@ -1,190 +0,0 @@ -#!/bin/sh -# -# Build a fat binary for iOS - -# Number of CPUs (for make -j) -NCPU=`sysctl -n hw.ncpu` -if test x$NJOB = x; then - NJOB=$NCPU -fi - -SRC_DIR=$(cd `dirname $0`/..; pwd) -if [ "$PWD" = "$SRC_DIR" ]; then - PREFIX=$SRC_DIR/ios-build - if [ ! -d "$PREFIX" ]; then - mkdir $PREFIX - fi -else - PREFIX=$PWD -fi - -BUILD_I386_IOSSIM=YES -BUILD_X86_64_IOSSIM=YES - -BUILD_IOS_ARMV7=YES -BUILD_IOS_ARMV7S=YES -BUILD_IOS_ARM64=YES - -# 13.4.0 - Mavericks -# 14.0.0 - Yosemite -# 15.0.0 - El Capitan -DARWIN=darwin15.0.0 - -XCODEDIR=`xcode-select --print-path` -IOS_SDK_VERSION=`xcrun --sdk iphoneos --show-sdk-version` -MIN_SDK_VERSION=6.0 - -IPHONEOS_PLATFORM=`xcrun --sdk iphoneos --show-sdk-platform-path` -IPHONEOS_SYSROOT=`xcrun --sdk iphoneos --show-sdk-path` - -IPHONESIMULATOR_PLATFORM=`xcrun --sdk iphonesimulator --show-sdk-platform-path` -IPHONESIMULATOR_SYSROOT=`xcrun --sdk iphonesimulator --show-sdk-path` - -# Uncomment if you want to see more information about each invocation -# of clang as the builds proceed. -# CLANG_VERBOSE="--verbose" - -CC=clang -CXX=clang - -SILENCED_WARNINGS="-Wno-unused-local-typedef -Wno-unused-function" - -CFLAGS="${CLANG_VERBOSE} ${SILENCED_WARNINGS} -DNDEBUG -g -O0 -pipe -fPIC -fobjc-arc" - -echo "PREFIX ..................... ${PREFIX}" -echo "BUILD_MACOSX_X86_64 ........ ${BUILD_MACOSX_X86_64}" -echo "BUILD_I386_IOSSIM .......... ${BUILD_I386_IOSSIM}" -echo "BUILD_X86_64_IOSSIM ........ ${BUILD_X86_64_IOSSIM}" -echo "BUILD_IOS_ARMV7 ............ ${BUILD_IOS_ARMV7}" -echo "BUILD_IOS_ARMV7S ........... ${BUILD_IOS_ARMV7S}" -echo "BUILD_IOS_ARM64 ............ ${BUILD_IOS_ARM64}" -echo "DARWIN ..................... ${DARWIN}" -echo "XCODEDIR ................... ${XCODEDIR}" -echo "IOS_SDK_VERSION ............ ${IOS_SDK_VERSION}" -echo "MIN_SDK_VERSION ............ ${MIN_SDK_VERSION}" -echo "IPHONEOS_PLATFORM .......... ${IPHONEOS_PLATFORM}" -echo "IPHONEOS_SYSROOT ........... ${IPHONEOS_SYSROOT}" -echo "IPHONESIMULATOR_PLATFORM ... ${IPHONESIMULATOR_PLATFORM}" -echo "IPHONESIMULATOR_SYSROOT .... ${IPHONESIMULATOR_SYSROOT}" -echo "CC ......................... ${CC}" -echo "CFLAGS ..................... ${CFLAGS}" -echo "CXX ........................ ${CXX}" -echo "CXXFLAGS ................... ${CXXFLAGS}" -echo "LDFLAGS .................... ${LDFLAGS}" - -################################################################### -# This section contains the build commands for each of the -# architectures that will be included in the universal binaries. -################################################################### - -echo "$(tput setaf 2)" -echo "###########################" -echo "# i386 for iPhone Simulator" -echo "###########################" -echo "$(tput sgr0)" - -if [ "${BUILD_I386_IOSSIM}" == "YES" ] -then - ( - cd ${PREFIX} - make clean - ../configure --build=x86_64-apple-${DARWIN} --host=i386-ios-${DARWIN} --disable-shared --prefix=${PREFIX}/platform/i386-sim "CC=${CC}" "CFLAGS=${CFLAGS} -mios-simulator-version-min=${MIN_SDK_VERSION} -arch i386 -isysroot ${IPHONESIMULATOR_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS} -mios-simulator-version-min=${MIN_SDK_VERSION} -arch i386 -isysroot ${IPHONESIMULATOR_SYSROOT}" LDFLAGS="-arch i386 -mios-simulator-version-min=${MIN_SDK_VERSION} ${LDFLAGS} -L${IPHONESIMULATOR_SYSROOT}/usr/lib/ -L${IPHONESIMULATOR_SYSROOT}/usr/lib/system" || exit 2 - cp $SRC_DIR/include/SDL_config_iphoneos.h include/SDL_config.h - make -j10 || exit 3 - make install - ) || exit $? -fi - -echo "$(tput setaf 2)" -echo "#############################" -echo "# x86_64 for iPhone Simulator" -echo "#############################" -echo "$(tput sgr0)" - -if [ "${BUILD_X86_64_IOSSIM}" == "YES" ] -then - ( - cd ${PREFIX} - make clean - ../configure --build=x86_64-apple-${DARWIN} --host=x86_64-ios-${DARWIN} --disable-shared --prefix=${PREFIX}/platform/x86_64-sim "CC=${CC}" "CFLAGS=${CFLAGS} -mios-simulator-version-min=${MIN_SDK_VERSION} -arch x86_64 -isysroot ${IPHONESIMULATOR_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS} -mios-simulator-version-min=${MIN_SDK_VERSION} -arch x86_64 -isysroot ${IPHONESIMULATOR_SYSROOT}" LDFLAGS="-arch x86_64 -mios-simulator-version-min=${MIN_SDK_VERSION} ${LDFLAGS} -L${IPHONESIMULATOR_SYSROOT}/usr/lib/ -L${IPHONESIMULATOR_SYSROOT}/usr/lib/system" || exit 2 - cp $SRC_DIR/include/SDL_config_iphoneos.h include/SDL_config.h - make -j$NJOB || exit 3 - make install - ) || exit $? -fi - -echo "$(tput setaf 2)" -echo "##################" -echo "# armv7 for iPhone" -echo "##################" -echo "$(tput sgr0)" - -if [ "${BUILD_IOS_ARMV7}" == "YES" ] -then - ( - cd ${PREFIX} - make clean - ../configure --build=x86_64-apple-${DARWIN} --host=armv7-ios-${DARWIN} --disable-shared --prefix=${PREFIX}/platform/armv7-ios "CC=${CC}" "CFLAGS=${CFLAGS} -miphoneos-version-min=${MIN_SDK_VERSION} -arch armv7 -isysroot ${IPHONEOS_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS} -arch armv7 -isysroot ${IPHONEOS_SYSROOT}" LDFLAGS="-arch armv7 -miphoneos-version-min=${MIN_SDK_VERSION} ${LDFLAGS}" || exit 2 - cp $SRC_DIR/include/SDL_config_iphoneos.h include/SDL_config.h - make -j$NJOB || exit 3 - make install - ) || exit $? -fi - -echo "$(tput setaf 2)" -echo "###################" -echo "# armv7s for iPhone" -echo "###################" -echo "$(tput sgr0)" - -if [ "${BUILD_IOS_ARMV7S}" == "YES" ] -then - ( - cd ${PREFIX} - make clean - ../configure --build=x86_64-apple-${DARWIN} --host=armv7s-ios-${DARWIN} --disable-shared --prefix=${PREFIX}/platform/armv7s-ios "CC=${CC}" "CFLAGS=${CFLAGS} -miphoneos-version-min=${MIN_SDK_VERSION} -arch armv7s -isysroot ${IPHONEOS_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS} -miphoneos-version-min=${MIN_SDK_VERSION} -arch armv7s -isysroot ${IPHONEOS_SYSROOT}" LDFLAGS="-arch armv7s -miphoneos-version-min=${MIN_SDK_VERSION} ${LDFLAGS}" || exit 2 - cp $SRC_DIR/include/SDL_config_iphoneos.h include/SDL_config.h - make -j$NJOB || exit 3 - make install - ) || exit $? -fi - -echo "$(tput setaf 2)" -echo "##################" -echo "# arm64 for iPhone" -echo "##################" -echo "$(tput sgr0)" - -if [ "${BUILD_IOS_ARM64}" == "YES" ] -then - ( - cd ${PREFIX} - make clean - ../configure --build=x86_64-apple-${DARWIN} --host=arm-ios-${DARWIN} --disable-shared --prefix=${PREFIX}/platform/arm64-ios "CC=${CC}" "CFLAGS=${CFLAGS} -miphoneos-version-min=${MIN_SDK_VERSION} -arch arm64 -isysroot ${IPHONEOS_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS} -miphoneos-version-min=${MIN_SDK_VERSION} -arch arm64 -isysroot ${IPHONEOS_SYSROOT}" LDFLAGS="-arch arm64 -miphoneos-version-min=${MIN_SDK_VERSION} ${LDFLAGS}" || exit 2 - cp $SRC_DIR/include/SDL_config_iphoneos.h include/SDL_config.h - make -j$NJOB || exit 3 - make install - ) || exit $? -fi - -echo "$(tput setaf 2)" -echo "###################################################################" -echo "# Create Universal Libraries and Finalize the packaging" -echo "###################################################################" -echo "$(tput sgr0)" - -( - cd ${PREFIX}/platform - mkdir -p universal - lipo x86_64-sim/lib/libSDL2.a i386-sim/lib/libSDL2.a arm64-ios/lib/libSDL2.a armv7s-ios/lib/libSDL2.a armv7-ios/lib/libSDL2.a -create -output universal/libSDL2.a -) - -( - cd ${PREFIX} - mkdir -p lib - cp -r platform/universal/* lib - #rm -rf platform - lipo -info lib/libSDL2.a -) - -echo Done! diff --git a/externals/SDL/debian/libsdl2.install b/externals/SDL/debian/libsdl2.install deleted file mode 100755 index e4193c74c..000000000 --- a/externals/SDL/debian/libsdl2.install +++ /dev/null @@ -1 +0,0 @@ -usr/lib/*/libSDL2-2.0.so.0* diff --git a/externals/SDL/docs/README-macosx.md b/externals/SDL/docs/README-macosx.md deleted file mode 100755 index 2cb80013f..000000000 --- a/externals/SDL/docs/README-macosx.md +++ /dev/null @@ -1,240 +0,0 @@ -Mac OS X -============================================================================== - -These instructions are for people using Apple's Mac OS X (pronounced -"ten"). - -From the developer's point of view, OS X is a sort of hybrid Mac and -Unix system, and you have the option of using either traditional -command line tools or Apple's IDE Xcode. - -Command Line Build -================== - -To build SDL using the command line, use the standard configure and make -process: - - ./configure - make - sudo make install - -You can also build SDL as a Universal library (a single binary for both -32-bit and 64-bit Intel architectures), on Mac OS X 10.7 and newer, by using -the gcc-fat.sh script in build-scripts: - - mkdir mybuild - cd mybuild - CC=$PWD/../build-scripts/gcc-fat.sh CXX=$PWD/../build-scripts/g++-fat.sh ../configure - make - sudo make install - -This script builds SDL with 10.5 ABI compatibility on i386 and 10.6 -ABI compatibility on x86_64 architectures. For best compatibility you -should compile your application the same way. - -Please note that building SDL requires at least Xcode 4.6 and the 10.7 SDK -(even if you target back to 10.5 systems). PowerPC support for Mac OS X has -been officially dropped as of SDL 2.0.2. - -To use the library once it's built, you essential have two possibilities: -use the traditional autoconf/automake/make method, or use Xcode. - -============================================================================== -Caveats for using SDL with Mac OS X -============================================================================== - -Some things you have to be aware of when using SDL on Mac OS X: - -- If you register your own NSApplicationDelegate (using [NSApp setDelegate:]), - SDL will not register its own. This means that SDL will not terminate using - SDL_Quit if it receives a termination request, it will terminate like a - normal app, and it will not send a SDL_DROPFILE when you request to open a - file with the app. To solve these issues, put the following code in your - NSApplicationDelegate implementation: - - - - (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender - { - if (SDL_GetEventState(SDL_QUIT) == SDL_ENABLE) { - SDL_Event event; - event.type = SDL_QUIT; - SDL_PushEvent(&event); - } - - return NSTerminateCancel; - } - - - (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename - { - if (SDL_GetEventState(SDL_DROPFILE) == SDL_ENABLE) { - SDL_Event event; - event.type = SDL_DROPFILE; - event.drop.file = SDL_strdup([filename UTF8String]); - return (SDL_PushEvent(&event) > 0); - } - - return NO; - } - -============================================================================== -Using the Simple DirectMedia Layer with a traditional Makefile -============================================================================== - -An existing autoconf/automake build system for your SDL app has good chances -to work almost unchanged on OS X. However, to produce a "real" Mac OS X binary -that you can distribute to users, you need to put the generated binary into a -so called "bundle", which basically is a fancy folder with a name like -"MyCoolGame.app". - -To get this build automatically, add something like the following rule to -your Makefile.am: - - bundle_contents = APP_NAME.app/Contents - APP_NAME_bundle: EXE_NAME - mkdir -p $(bundle_contents)/MacOS - mkdir -p $(bundle_contents)/Resources - echo "APPL????" > $(bundle_contents)/PkgInfo - $(INSTALL_PROGRAM) $< $(bundle_contents)/MacOS/ - -You should replace EXE_NAME with the name of the executable. APP_NAME is what -will be visible to the user in the Finder. Usually it will be the same -as EXE_NAME but capitalized. E.g. if EXE_NAME is "testgame" then APP_NAME -usually is "TestGame". You might also want to use `@PACKAGE@` to use the package -name as specified in your configure.ac file. - -If your project builds more than one application, you will have to do a bit -more. For each of your target applications, you need a separate rule. - -If you want the created bundles to be installed, you may want to add this -rule to your Makefile.am: - - install-exec-hook: APP_NAME_bundle - rm -rf $(DESTDIR)$(prefix)/Applications/APP_NAME.app - mkdir -p $(DESTDIR)$(prefix)/Applications/ - cp -r $< /$(DESTDIR)$(prefix)Applications/ - -This rule takes the Bundle created by the rule from step 3 and installs them -into "$(DESTDIR)$(prefix)/Applications/". - -Again, if you want to install multiple applications, you will have to augment -the make rule accordingly. - - -But beware! That is only part of the story! With the above, you end up with -a bare bone .app bundle, which is double clickable from the Finder. But -there are some more things you should do before shipping your product... - -1) The bundle right now probably is dynamically linked against SDL. That - means that when you copy it to another computer, *it will not run*, - unless you also install SDL on that other computer. A good solution - for this dilemma is to static link against SDL. On OS X, you can - achieve that by linking against the libraries listed by - - sdl-config --static-libs - - instead of those listed by - - sdl-config --libs - - Depending on how exactly SDL is integrated into your build systems, the - way to achieve that varies, so I won't describe it here in detail - -2) Add an 'Info.plist' to your application. That is a special XML file which - contains some meta-information about your application (like some copyright - information, the version of your app, the name of an optional icon file, - and other things). Part of that information is displayed by the Finder - when you click on the .app, or if you look at the "Get Info" window. - More information about Info.plist files can be found on Apple's homepage. - - -As a final remark, let me add that I use some of the techniques (and some -variations of them) in Exult and ScummVM; both are available in source on -the net, so feel free to take a peek at them for inspiration! - - -============================================================================== -Using the Simple DirectMedia Layer with Xcode -============================================================================== - -These instructions are for using Apple's Xcode IDE to build SDL applications. - -- First steps - -The first thing to do is to unpack the Xcode.tar.gz archive in the -top level SDL directory (where the Xcode.tar.gz archive resides). -Because Stuffit Expander will unpack the archive into a subdirectory, -you should unpack the archive manually from the command line: - - cd [path_to_SDL_source] - tar zxf Xcode.tar.gz - -This will create a new folder called Xcode, which you can browse -normally from the Finder. - -- Building the Framework - -The SDL Library is packaged as a framework bundle, an organized -relocatable folder hierarchy of executable code, interface headers, -and additional resources. For practical purposes, you can think of a -framework as a more user and system-friendly shared library, whose library -file behaves more or less like a standard UNIX shared library. - -To build the framework, simply open the framework project and build it. -By default, the framework bundle "SDL.framework" is installed in -/Library/Frameworks. Therefore, the testers and project stationary expect -it to be located there. However, it will function the same in any of the -following locations: - - ~/Library/Frameworks - /Local/Library/Frameworks - /System/Library/Frameworks - -- Build Options - There are two "Build Styles" (See the "Targets" tab) for SDL. - "Deployment" should be used if you aren't tweaking the SDL library. - "Development" should be used to debug SDL apps or the library itself. - -- Building the Testers - Open the SDLTest project and build away! - -- Using the Project Stationary - Copy the stationary to the indicated folders to access it from - the "New Project" and "Add target" menus. What could be easier? - -- Setting up a new project by hand - Some of you won't want to use the Stationary so I'll give some tips: - * Create a new "Cocoa Application" - * Add src/main/macosx/SDLMain.m , .h and .nib to your project - * Remove "main.c" from your project - * Remove "MainMenu.nib" from your project - * Add "$(HOME)/Library/Frameworks/SDL.framework/Headers" to include path - * Add "$(HOME)/Library/Frameworks" to the frameworks search path - * Add "-framework SDL -framework Foundation -framework AppKit" to "OTHER_LDFLAGS" - * Set the "Main Nib File" under "Application Settings" to "SDLMain.nib" - * Add your files - * Clean and build - -- Building from command line - Use pbxbuild in the same directory as your .pbproj file - -- Running your app - You can send command line args to your app by either invoking it from - the command line (in *.app/Contents/MacOS) or by entering them in the - "Executables" panel of the target settings. - -- Implementation Notes - Some things that may be of interest about how it all works... - * Working directory - As defined in the SDL_main.m file, the working directory of your SDL app - is by default set to its parent. You may wish to change this to better - suit your needs. - * You have a Cocoa App! - Your SDL app is essentially a Cocoa application. When your app - starts up and the libraries finish loading, a Cocoa procedure is called, - which sets up the working directory and calls your main() method. - You are free to modify your Cocoa app with generally no consequence - to SDL. You cannot, however, easily change the SDL window itself. - Functionality may be added in the future to help this. - - -Known bugs are listed in the file "BUGS.txt". diff --git a/externals/SDL/src/hidapi/SDL_hidapi.h b/externals/SDL/src/hidapi/SDL_hidapi.h deleted file mode 100755 index 148352041..000000000 --- a/externals/SDL/src/hidapi/SDL_hidapi.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2021 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ -#include "../SDL_internal.h" - -#ifdef SDL_JOYSTICK_HIDAPI - -#ifdef SDL_LIBUSB_DYNAMIC -#define HAVE_ENABLE_GAMECUBE_ADAPTORS -#endif - -#ifdef HAVE_ENABLE_GAMECUBE_ADAPTORS -extern void SDL_EnableGameCubeAdaptors(void); -#endif - -#endif /* SDL_JOYSTICK_HIDAPI */ - -/* vi: set sts=4 ts=4 sw=4 expandtab: */ diff --git a/externals/SDL/src/hidapi/linux/hid.cpp b/externals/SDL/src/hidapi/linux/hid.cpp deleted file mode 100755 index 841f34fb4..000000000 --- a/externals/SDL/src/hidapi/linux/hid.cpp +++ /dev/null @@ -1,333 +0,0 @@ -//=================== Copyright Valve Corporation, All rights reserved. ======= -// -// Purpose: A wrapper around both the libusb and hidraw versions of HIDAPI -// -// The libusb version doesn't support Bluetooth, but not all Linux -// distributions allow access to /dev/hidraw* -// -// This merges the two, at a small performance cost, until distributions -// have granted access to /dev/hidraw* -// -//============================================================================= - -#define NAMESPACE HIDRAW -#include "../hidapi/hidapi.h" -#undef NAMESPACE -#undef HIDAPI_H__ - -#define NAMESPACE HIDUSB -#include "../hidapi/hidapi.h" -#undef NAMESPACE -#undef HIDAPI_H__ - -#include "../hidapi/hidapi.h" - -#include "../../../public/tier1/utlvector.h" -#include "../../../public/tier1/utlhashmap.h" - - -template -void CopyHIDDeviceInfo( T *pSrc, struct hid_device_info *pDst ) -{ - pDst->path = pSrc->path ? strdup( pSrc->path ) : NULL; - pDst->vendor_id = pSrc->vendor_id; - pDst->product_id = pSrc->product_id; - pDst->serial_number = pSrc->serial_number ? wcsdup( pSrc->serial_number ) : NULL; - pDst->release_number = pSrc->release_number; - pDst->manufacturer_string = pSrc->manufacturer_string ? wcsdup( pSrc->manufacturer_string ) : NULL; - pDst->product_string = pSrc->product_string ? wcsdup( pSrc->product_string ) : NULL; - pDst->usage_page = pSrc->usage_page; - pDst->usage = pSrc->usage; - pDst->interface_number = pSrc->interface_number; - pDst->next = NULL; -} - -extern "C" -{ - -enum EHIDAPIType -{ - k_EHIDAPIUnknown, - k_EHIDAPIRAW, - k_EHIDAPIUSB -}; - -static CUtlHashMap s_hashDeviceToAPI; - -static EHIDAPIType GetAPIForDevice( hid_device *pDevice ) -{ - int iIndex = s_hashDeviceToAPI.Find( (uintptr_t)pDevice ); - if ( iIndex != -1 ) - { - return s_hashDeviceToAPI[ iIndex ]; - } - return k_EHIDAPIUnknown; -} - -struct hid_device_info HID_API_EXPORT * HID_API_CALL hid_enumerate(unsigned short vendor_id, unsigned short product_id) -{ - struct HIDUSB::hid_device_info *usb_devs = HIDUSB::hid_enumerate( vendor_id, product_id ); - struct HIDUSB::hid_device_info *usb_dev; - struct HIDRAW::hid_device_info *raw_devs = HIDRAW::hid_enumerate( vendor_id, product_id ); - struct HIDRAW::hid_device_info *raw_dev; - struct hid_device_info *devs = NULL, *last = NULL, *new_dev; - - for ( usb_dev = usb_devs; usb_dev; usb_dev = usb_dev->next ) - { - bool bFound = false; - for ( raw_dev = raw_devs; raw_dev; raw_dev = raw_dev->next ) - { - if ( usb_dev->vendor_id == raw_dev->vendor_id && usb_dev->product_id == raw_dev->product_id ) - { - bFound = true; - break; - } - } - -//printf("%s USB device VID/PID 0x%.4x/0x%.4x, %ls %ls\n", bFound ? "Found matching" : "Added new", usb_dev->vendor_id, usb_dev->product_id, usb_dev->manufacturer_string, usb_dev->product_string ); - - if ( !bFound ) - { - new_dev = new struct hid_device_info; - CopyHIDDeviceInfo( usb_dev, new_dev ); - - if ( last ) - { - last->next = new_dev; - } - else - { - devs = new_dev; - } - last = new_dev; - } - } - HIDUSB::hid_free_enumeration( usb_devs ); - - for ( raw_dev = raw_devs; raw_dev; raw_dev = raw_dev->next ) - { - new_dev = new struct hid_device_info; - CopyHIDDeviceInfo( raw_dev, new_dev ); - new_dev->next = NULL; - - if ( last ) - { - last->next = new_dev; - } - else - { - devs = new_dev; - } - last = new_dev; - } - HIDRAW::hid_free_enumeration( raw_devs ); - - return devs; -} - -void HID_API_EXPORT HID_API_CALL hid_free_enumeration(struct hid_device_info *devs) -{ - while ( devs ) - { - struct hid_device_info *next = devs->next; - free( devs->path ); - free( devs->serial_number ); - free( devs->manufacturer_string ); - free( devs->product_string ); - delete devs; - devs = next; - } -} - -HID_API_EXPORT hid_device * HID_API_CALL hid_open(unsigned short vendor_id, unsigned short product_id, const wchar_t *serial_number) -{ - hid_device *pDevice = NULL; - if ( ( pDevice = (hid_device *)HIDRAW::hid_open( vendor_id, product_id, serial_number ) ) != NULL ) - { - s_hashDeviceToAPI.Insert( (uintptr_t)pDevice, k_EHIDAPIRAW ); - return pDevice; - } - if ( ( pDevice = (hid_device *)HIDUSB::hid_open( vendor_id, product_id, serial_number ) ) != NULL ) - { - s_hashDeviceToAPI.Insert( (uintptr_t)pDevice, k_EHIDAPIUSB ); - return pDevice; - } - return NULL; -} - -HID_API_EXPORT hid_device * HID_API_CALL hid_open_path(const char *path, int bExclusive) -{ - hid_device *pDevice = NULL; - if ( ( pDevice = (hid_device *)HIDRAW::hid_open_path( path, bExclusive ) ) != NULL ) - { - s_hashDeviceToAPI.Insert( (uintptr_t)pDevice, k_EHIDAPIRAW ); - return pDevice; - } - if ( ( pDevice = (hid_device *)HIDUSB::hid_open_path( path, bExclusive ) ) != NULL ) - { - s_hashDeviceToAPI.Insert( (uintptr_t)pDevice, k_EHIDAPIUSB ); - return pDevice; - } - return NULL; -} - -int HID_API_EXPORT HID_API_CALL hid_write(hid_device *device, const unsigned char *data, size_t length) -{ - switch ( GetAPIForDevice( device ) ) - { - case k_EHIDAPIRAW: - return HIDRAW::hid_write( (HIDRAW::hid_device*)device, data, length ); - case k_EHIDAPIUSB: - return HIDUSB::hid_write( (HIDUSB::hid_device*)device, data, length ); - default: - return -1; - } -} - -int HID_API_EXPORT HID_API_CALL hid_read_timeout(hid_device *device, unsigned char *data, size_t length, int milliseconds) -{ - switch ( GetAPIForDevice( device ) ) - { - case k_EHIDAPIRAW: - return HIDRAW::hid_read_timeout( (HIDRAW::hid_device*)device, data, length, milliseconds ); - case k_EHIDAPIUSB: - return HIDUSB::hid_read_timeout( (HIDUSB::hid_device*)device, data, length, milliseconds ); - default: - return -1; - } -} - -int HID_API_EXPORT HID_API_CALL hid_read(hid_device *device, unsigned char *data, size_t length) -{ - switch ( GetAPIForDevice( device ) ) - { - case k_EHIDAPIRAW: - return HIDRAW::hid_read( (HIDRAW::hid_device*)device, data, length ); - case k_EHIDAPIUSB: - return HIDUSB::hid_read( (HIDUSB::hid_device*)device, data, length ); - default: - return -1; - } -} - -int HID_API_EXPORT HID_API_CALL hid_set_nonblocking(hid_device *device, int nonblock) -{ - switch ( GetAPIForDevice( device ) ) - { - case k_EHIDAPIRAW: - return HIDRAW::hid_set_nonblocking( (HIDRAW::hid_device*)device, nonblock ); - case k_EHIDAPIUSB: - return HIDUSB::hid_set_nonblocking( (HIDUSB::hid_device*)device, nonblock ); - default: - return -1; - } -} - -int HID_API_EXPORT HID_API_CALL hid_send_feature_report(hid_device *device, const unsigned char *data, size_t length) -{ - switch ( GetAPIForDevice( device ) ) - { - case k_EHIDAPIRAW: - return HIDRAW::hid_send_feature_report( (HIDRAW::hid_device*)device, data, length ); - case k_EHIDAPIUSB: - return HIDUSB::hid_send_feature_report( (HIDUSB::hid_device*)device, data, length ); - default: - return -1; - } -} - -int HID_API_EXPORT HID_API_CALL hid_get_feature_report(hid_device *device, unsigned char *data, size_t length) -{ - switch ( GetAPIForDevice( device ) ) - { - case k_EHIDAPIRAW: - return HIDRAW::hid_get_feature_report( (HIDRAW::hid_device*)device, data, length ); - case k_EHIDAPIUSB: - return HIDUSB::hid_get_feature_report( (HIDUSB::hid_device*)device, data, length ); - default: - return -1; - } -} - -void HID_API_EXPORT HID_API_CALL hid_close(hid_device *device) -{ - switch ( GetAPIForDevice( device ) ) - { - case k_EHIDAPIRAW: - HIDRAW::hid_close( (HIDRAW::hid_device*)device ); - break; - case k_EHIDAPIUSB: - HIDUSB::hid_close( (HIDUSB::hid_device*)device ); - break; - default: - break; - } - s_hashDeviceToAPI.Remove( (uintptr_t)device ); -} - -int HID_API_EXPORT_CALL hid_get_manufacturer_string(hid_device *device, wchar_t *string, size_t maxlen) -{ - switch ( GetAPIForDevice( device ) ) - { - case k_EHIDAPIRAW: - return HIDRAW::hid_get_manufacturer_string( (HIDRAW::hid_device*)device, string, maxlen ); - case k_EHIDAPIUSB: - return HIDUSB::hid_get_manufacturer_string( (HIDUSB::hid_device*)device, string, maxlen ); - default: - return -1; - } -} - -int HID_API_EXPORT_CALL hid_get_product_string(hid_device *device, wchar_t *string, size_t maxlen) -{ - switch ( GetAPIForDevice( device ) ) - { - case k_EHIDAPIRAW: - return HIDRAW::hid_get_product_string( (HIDRAW::hid_device*)device, string, maxlen ); - case k_EHIDAPIUSB: - return HIDUSB::hid_get_product_string( (HIDUSB::hid_device*)device, string, maxlen ); - default: - return -1; - } -} - -int HID_API_EXPORT_CALL hid_get_serial_number_string(hid_device *device, wchar_t *string, size_t maxlen) -{ - switch ( GetAPIForDevice( device ) ) - { - case k_EHIDAPIRAW: - return HIDRAW::hid_get_serial_number_string( (HIDRAW::hid_device*)device, string, maxlen ); - case k_EHIDAPIUSB: - return HIDUSB::hid_get_serial_number_string( (HIDUSB::hid_device*)device, string, maxlen ); - default: - return -1; - } -} - -int HID_API_EXPORT_CALL hid_get_indexed_string(hid_device *device, int string_index, wchar_t *string, size_t maxlen) -{ - switch ( GetAPIForDevice( device ) ) - { - case k_EHIDAPIRAW: - return HIDRAW::hid_get_indexed_string( (HIDRAW::hid_device*)device, string_index, string, maxlen ); - case k_EHIDAPIUSB: - return HIDUSB::hid_get_indexed_string( (HIDUSB::hid_device*)device, string_index, string, maxlen ); - default: - return -1; - } -} - -HID_API_EXPORT const wchar_t* HID_API_CALL hid_error(hid_device *device) -{ - switch ( GetAPIForDevice( device ) ) - { - case k_EHIDAPIRAW: - return HIDRAW::hid_error( (HIDRAW::hid_device*)device ); - case k_EHIDAPIUSB: - return HIDUSB::hid_error( (HIDUSB::hid_device*)device ); - default: - return NULL; - } -} - -} diff --git a/externals/SDL/src/joystick/bsd/SDL_sysjoystick.c b/externals/SDL/src/joystick/bsd/SDL_sysjoystick.c deleted file mode 100755 index 057f93b4a..000000000 --- a/externals/SDL/src/joystick/bsd/SDL_sysjoystick.c +++ /dev/null @@ -1,784 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2020 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ -#include "../../SDL_internal.h" - -#ifdef SDL_JOYSTICK_USBHID - -/* - * Joystick driver for the uhid(4) interface found in OpenBSD, - * NetBSD and FreeBSD. - * - * Maintainer: - */ - -#include - -#include -#include -#include - -#ifndef __FreeBSD_kernel_version -#define __FreeBSD_kernel_version __FreeBSD_version -#endif - -#if defined(HAVE_USB_H) -#include -#endif -#ifdef __DragonFly__ -#include -#include -#else -#include -#include -#endif - -#if defined(HAVE_USBHID_H) -#include -#elif defined(HAVE_LIBUSB_H) -#include -#elif defined(HAVE_LIBUSBHID_H) -#include -#endif - -#if defined(__FREEBSD__) || defined(__FreeBSD_kernel__) -#ifndef __DragonFly__ -#include -#endif -#if __FreeBSD_kernel_version > 800063 -#include -#endif -#include -#endif - -#if SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H -#include -#endif - -#include "SDL_joystick.h" -#include "../SDL_sysjoystick.h" -#include "../SDL_joystick_c.h" - -#define MAX_UHID_JOYS 64 -#define MAX_JOY_JOYS 2 -#define MAX_JOYS (MAX_UHID_JOYS + MAX_JOY_JOYS) - -#ifdef __OpenBSD__ - -#define HUG_DPAD_UP 0x90 -#define HUG_DPAD_DOWN 0x91 -#define HUG_DPAD_RIGHT 0x92 -#define HUG_DPAD_LEFT 0x93 - -#define HAT_CENTERED 0x00 -#define HAT_UP 0x01 -#define HAT_RIGHT 0x02 -#define HAT_DOWN 0x04 -#define HAT_LEFT 0x08 -#define HAT_RIGHTUP (HAT_RIGHT|HAT_UP) -#define HAT_RIGHTDOWN (HAT_RIGHT|HAT_DOWN) -#define HAT_LEFTUP (HAT_LEFT|HAT_UP) -#define HAT_LEFTDOWN (HAT_LEFT|HAT_DOWN) - -/* calculate the value from the state of the dpad */ -int -dpad_to_sdl(Sint32 *dpad) -{ - if (dpad[2]) { - if (dpad[0]) - return HAT_RIGHTUP; - else if (dpad[1]) - return HAT_RIGHTDOWN; - else - return HAT_RIGHT; - } else if (dpad[3]) { - if (dpad[0]) - return HAT_LEFTUP; - else if (dpad[1]) - return HAT_LEFTDOWN; - else - return HAT_LEFT; - } else if (dpad[0]) { - return HAT_UP; - } else if (dpad[1]) { - return HAT_DOWN; - } - return HAT_CENTERED; -} -#endif - -struct report -{ -#if defined(__FREEBSD__) && (__FreeBSD_kernel_version > 900000) - void *buf; /* Buffer */ -#elif defined(__FREEBSD__) && (__FreeBSD_kernel_version > 800063) - struct usb_gen_descriptor *buf; /* Buffer */ -#else - struct usb_ctl_report *buf; /* Buffer */ -#endif - size_t size; /* Buffer size */ - int rid; /* Report ID */ - enum - { - SREPORT_UNINIT, - SREPORT_CLEAN, - SREPORT_DIRTY - } status; -}; - -static struct -{ - int uhid_report; - hid_kind_t kind; - const char *name; -} const repinfo[] = { - {UHID_INPUT_REPORT, hid_input, "input"}, - {UHID_OUTPUT_REPORT, hid_output, "output"}, - {UHID_FEATURE_REPORT, hid_feature, "feature"} -}; - -enum -{ - REPORT_INPUT = 0, - REPORT_OUTPUT = 1, - REPORT_FEATURE = 2 -}; - -enum -{ - JOYAXE_X, - JOYAXE_Y, - JOYAXE_Z, - JOYAXE_SLIDER, - JOYAXE_WHEEL, - JOYAXE_RX, - JOYAXE_RY, - JOYAXE_RZ, - JOYAXE_count -}; - -struct joystick_hwdata -{ - int fd; - char *path; - enum - { - BSDJOY_UHID, /* uhid(4) */ - BSDJOY_JOY /* joy(4) */ - } type; - struct report_desc *repdesc; - struct report inreport; - int axis_map[JOYAXE_count]; /* map present JOYAXE_* to 0,1,.. */ -}; - -static char *joynames[MAX_JOYS]; -static char *joydevnames[MAX_JOYS]; - -static int report_alloc(struct report *, struct report_desc *, int); -static void report_free(struct report *); - -#if defined(USBHID_UCR_DATA) || (defined(__FreeBSD_kernel__) && __FreeBSD_kernel_version <= 800063) -#define REP_BUF_DATA(rep) ((rep)->buf->ucr_data) -#elif (defined(__FREEBSD__) && (__FreeBSD_kernel_version > 900000)) -#define REP_BUF_DATA(rep) ((rep)->buf) -#elif (defined(__FREEBSD__) && (__FreeBSD_kernel_version > 800063)) -#define REP_BUF_DATA(rep) ((rep)->buf->ugd_data) -#else -#define REP_BUF_DATA(rep) ((rep)->buf->data) -#endif - -static int numjoysticks = 0; - -static int BSD_JoystickOpen(SDL_Joystick * joy, int device_index); -static void BSD_JoystickClose(SDL_Joystick * joy); - -static int -BSD_JoystickInit(void) -{ - char s[16]; - int i, fd; - - numjoysticks = 0; - - SDL_memset(joynames, 0, sizeof(joynames)); - SDL_memset(joydevnames, 0, sizeof(joydevnames)); - - for (i = 0; i < MAX_UHID_JOYS; i++) { - SDL_Joystick nj; - - SDL_snprintf(s, SDL_arraysize(s), "/dev/uhid%d", i); - - joynames[numjoysticks] = SDL_strdup(s); - - if (BSD_JoystickOpen(&nj, numjoysticks) == 0) { - BSD_JoystickClose(&nj); - numjoysticks++; - } else { - SDL_free(joynames[numjoysticks]); - joynames[numjoysticks] = NULL; - } - } - for (i = 0; i < MAX_JOY_JOYS; i++) { - SDL_snprintf(s, SDL_arraysize(s), "/dev/joy%d", i); - fd = open(s, O_RDONLY); - if (fd != -1) { - joynames[numjoysticks++] = SDL_strdup(s); - close(fd); - } - } - - /* Read the default USB HID usage table. */ - hid_init(NULL); - - return (numjoysticks); -} - -static int -BSD_JoystickGetCount(void) -{ - return numjoysticks; -} - -static void -BSD_JoystickDetect(void) -{ -} - -static const char * -BSD_JoystickGetDeviceName(int device_index) -{ - if (joydevnames[device_index] != NULL) { - return (joydevnames[device_index]); - } - return (joynames[device_index]); -} - -static int -BSD_JoystickGetDevicePlayerIndex(int device_index) -{ - return -1; -} - -static void -BSD_JoystickSetDevicePlayerIndex(int device_index, int player_index) -{ -} - -/* Function to perform the mapping from device index to the instance id for this index */ -static SDL_JoystickID -BSD_JoystickGetDeviceInstanceID(int device_index) -{ - return device_index; -} - -static int -usage_to_joyaxe(unsigned usage) -{ - int joyaxe; - switch (usage) { - case HUG_X: - joyaxe = JOYAXE_X; - break; - case HUG_Y: - joyaxe = JOYAXE_Y; - break; - case HUG_Z: - joyaxe = JOYAXE_Z; - break; - case HUG_SLIDER: - joyaxe = JOYAXE_SLIDER; - break; - case HUG_WHEEL: - joyaxe = JOYAXE_WHEEL; - break; - case HUG_RX: - joyaxe = JOYAXE_RX; - break; - case HUG_RY: - joyaxe = JOYAXE_RY; - break; - case HUG_RZ: - joyaxe = JOYAXE_RZ; - break; - default: - joyaxe = -1; - } - return joyaxe; -} - -static unsigned -hatval_to_sdl(Sint32 hatval) -{ - static const unsigned hat_dir_map[8] = { - SDL_HAT_UP, SDL_HAT_RIGHTUP, SDL_HAT_RIGHT, SDL_HAT_RIGHTDOWN, - SDL_HAT_DOWN, SDL_HAT_LEFTDOWN, SDL_HAT_LEFT, SDL_HAT_LEFTUP - }; - unsigned result; - if ((hatval & 7) == hatval) - result = hat_dir_map[hatval]; - else - result = SDL_HAT_CENTERED; - return result; -} - - -static int -BSD_JoystickOpen(SDL_Joystick * joy, int device_index) -{ - char *path = joynames[device_index]; - struct joystick_hwdata *hw; - struct hid_item hitem; - struct hid_data *hdata; - struct report *rep = NULL; -#if defined(__NetBSD__) - usb_device_descriptor_t udd; - struct usb_string_desc usd; -#endif - int fd; - int i; - - fd = open(path, O_RDONLY); - if (fd == -1) { - return SDL_SetError("%s: %s", path, strerror(errno)); - } - - joy->instance_id = device_index; - hw = (struct joystick_hwdata *) - SDL_malloc(sizeof(struct joystick_hwdata)); - if (hw == NULL) { - close(fd); - return SDL_OutOfMemory(); - } - joy->hwdata = hw; - hw->fd = fd; - hw->path = SDL_strdup(path); - if (!SDL_strncmp(path, "/dev/joy", 8)) { - hw->type = BSDJOY_JOY; - joy->naxes = 2; - joy->nbuttons = 2; - joy->nhats = 0; - joy->nballs = 0; - joydevnames[device_index] = SDL_strdup("Gameport joystick"); - goto usbend; - } else { - hw->type = BSDJOY_UHID; - } - - { - int ax; - for (ax = 0; ax < JOYAXE_count; ax++) - hw->axis_map[ax] = -1; - } - hw->repdesc = hid_get_report_desc(fd); - if (hw->repdesc == NULL) { - SDL_SetError("%s: USB_GET_REPORT_DESC: %s", hw->path, - strerror(errno)); - goto usberr; - } - rep = &hw->inreport; -#if defined(__FREEBSD__) && (__FreeBSD_kernel_version > 800063) || defined(__FreeBSD_kernel__) - rep->rid = hid_get_report_id(fd); - if (rep->rid < 0) { -#else - if (ioctl(fd, USB_GET_REPORT_ID, &rep->rid) < 0) { -#endif - rep->rid = -1; /* XXX */ - } -#if defined(__NetBSD__) - if (ioctl(fd, USB_GET_DEVICE_DESC, &udd) == -1) - goto desc_failed; - - /* Get default language */ - usd.usd_string_index = USB_LANGUAGE_TABLE; - usd.usd_language_id = 0; - if (ioctl(fd, USB_GET_STRING_DESC, &usd) == -1 || usd.usd_desc.bLength < 4) { - usd.usd_language_id = 0; - } else { - usd.usd_language_id = UGETW(usd.usd_desc.bString[0]); - } - - usd.usd_string_index = udd.iProduct; - if (ioctl(fd, USB_GET_STRING_DESC, &usd) == 0) { - char str[128]; - char *new_name = NULL; - int i; - for (i = 0; i < (usd.usd_desc.bLength >> 1) - 1 && i < sizeof(str) - 1; i++) { - str[i] = UGETW(usd.usd_desc.bString[i]); - } - str[i] = '\0'; - asprintf(&new_name, "%s @ %s", str, path); - if (new_name != NULL) { - SDL_free(joydevnames[numjoysticks]); - joydevnames[numjoysticks] = new_name; - } - } -desc_failed: -#endif - if (report_alloc(rep, hw->repdesc, REPORT_INPUT) < 0) { - goto usberr; - } - if (rep->size <= 0) { - SDL_SetError("%s: Input report descriptor has invalid length", - hw->path); - goto usberr; - } -#if defined(USBHID_NEW) || (defined(__FREEBSD__) && __FreeBSD_kernel_version >= 500111) || defined(__FreeBSD_kernel__) - hdata = hid_start_parse(hw->repdesc, 1 << hid_input, rep->rid); -#else - hdata = hid_start_parse(hw->repdesc, 1 << hid_input); -#endif - if (hdata == NULL) { - SDL_SetError("%s: Cannot start HID parser", hw->path); - goto usberr; - } - joy->naxes = 0; - joy->nbuttons = 0; - joy->nhats = 0; - joy->nballs = 0; - for (i = 0; i < JOYAXE_count; i++) - hw->axis_map[i] = -1; - - while (hid_get_item(hdata, &hitem) > 0) { - char *sp; - const char *s; - - switch (hitem.kind) { - case hid_collection: - switch (HID_PAGE(hitem.usage)) { - case HUP_GENERIC_DESKTOP: - switch (HID_USAGE(hitem.usage)) { - case HUG_JOYSTICK: - case HUG_GAME_PAD: - s = hid_usage_in_page(hitem.usage); - sp = SDL_malloc(SDL_strlen(s) + 5); - SDL_snprintf(sp, SDL_strlen(s) + 5, "%s (%d)", - s, device_index); - joydevnames[device_index] = sp; - } - } - break; - case hid_input: - switch (HID_PAGE(hitem.usage)) { - case HUP_GENERIC_DESKTOP: - { - unsigned usage = HID_USAGE(hitem.usage); - int joyaxe = usage_to_joyaxe(usage); - if (joyaxe >= 0) { - hw->axis_map[joyaxe] = 1; - } else if (usage == HUG_HAT_SWITCH -#ifdef __OpenBSD__ - || usage == HUG_DPAD_UP -#endif - ) { - joy->nhats++; - } - break; - } - case HUP_BUTTON: - joy->nbuttons++; - break; - default: - break; - } - break; - default: - break; - } - } - hid_end_parse(hdata); - for (i = 0; i < JOYAXE_count; i++) - if (hw->axis_map[i] > 0) - hw->axis_map[i] = joy->naxes++; - - if (joy->naxes == 0 && joy->nbuttons == 0 && joy->nhats == 0 && joy->nballs == 0) { - SDL_SetError("%s: Not a joystick, ignoring", hw->path); - goto usberr; - } - - usbend: - /* The poll blocks the event thread. */ - fcntl(fd, F_SETFL, O_NONBLOCK); -#ifdef __NetBSD__ - /* Flush pending events */ - if (rep) { - while (read(joy->hwdata->fd, REP_BUF_DATA(rep), rep->size) == rep->size) - ; - } -#endif - - return (0); - usberr: - close(hw->fd); - SDL_free(hw->path); - SDL_free(hw); - return (-1); -} - -static void -BSD_JoystickUpdate(SDL_Joystick * joy) -{ - struct hid_item hitem; - struct hid_data *hdata; - struct report *rep; - int nbutton, naxe = -1; - Sint32 v; -#ifdef __OpenBSD__ - Sint32 dpad[4] = {0, 0, 0, 0}; -#endif - -#if defined(__FREEBSD__) || SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H || defined(__FreeBSD_kernel__) - struct joystick gameport; - static int x, y, xmin = 0xffff, ymin = 0xffff, xmax = 0, ymax = 0; - - if (joy->hwdata->type == BSDJOY_JOY) { - while (read(joy->hwdata->fd, &gameport, sizeof gameport) == sizeof gameport) { - if (abs(x - gameport.x) > 8) { - x = gameport.x; - if (x < xmin) { - xmin = x; - } - if (x > xmax) { - xmax = x; - } - if (xmin == xmax) { - xmin--; - xmax++; - } - v = (Sint32) x; - v -= (xmax + xmin + 1) / 2; - v *= 32768 / ((xmax - xmin + 1) / 2); - SDL_PrivateJoystickAxis(joy, 0, v); - } - if (abs(y - gameport.y) > 8) { - y = gameport.y; - if (y < ymin) { - ymin = y; - } - if (y > ymax) { - ymax = y; - } - if (ymin == ymax) { - ymin--; - ymax++; - } - v = (Sint32) y; - v -= (ymax + ymin + 1) / 2; - v *= 32768 / ((ymax - ymin + 1) / 2); - SDL_PrivateJoystickAxis(joy, 1, v); - } - SDL_PrivateJoystickButton(joy, 0, gameport.b1); - SDL_PrivateJoystickButton(joy, 1, gameport.b2); - } - return; - } -#endif /* defined(__FREEBSD__) || SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H */ - - rep = &joy->hwdata->inreport; - - while (read(joy->hwdata->fd, REP_BUF_DATA(rep), rep->size) == rep->size) { -#if defined(USBHID_NEW) || (defined(__FREEBSD__) && __FreeBSD_kernel_version >= 500111) || defined(__FreeBSD_kernel__) - hdata = hid_start_parse(joy->hwdata->repdesc, 1 << hid_input, rep->rid); -#else - hdata = hid_start_parse(joy->hwdata->repdesc, 1 << hid_input); -#endif - if (hdata == NULL) { - /*fprintf(stderr, "%s: Cannot start HID parser\n", joy->hwdata->path);*/ - continue; - } - - for (nbutton = 0; hid_get_item(hdata, &hitem) > 0;) { - switch (hitem.kind) { - case hid_input: - switch (HID_PAGE(hitem.usage)) { - case HUP_GENERIC_DESKTOP: - { - unsigned usage = HID_USAGE(hitem.usage); - int joyaxe = usage_to_joyaxe(usage); - if (joyaxe >= 0) { - naxe = joy->hwdata->axis_map[joyaxe]; - /* scaleaxe */ - v = (Sint32) hid_get_data(REP_BUF_DATA(rep), &hitem); - v -= (hitem.logical_maximum + - hitem.logical_minimum + 1) / 2; - v *= 32768 / - ((hitem.logical_maximum - - hitem.logical_minimum + 1) / 2); - SDL_PrivateJoystickAxis(joy, naxe, v); - } else if (usage == HUG_HAT_SWITCH) { - v = (Sint32) hid_get_data(REP_BUF_DATA(rep), &hitem); - SDL_PrivateJoystickHat(joy, 0, - hatval_to_sdl(v) - - hitem.logical_minimum); - } -#ifdef __OpenBSD__ - else if (usage == HUG_DPAD_UP) { - dpad[0] = (Sint32) hid_get_data(REP_BUF_DATA(rep), &hitem); - SDL_PrivateJoystickHat(joy, 0, dpad_to_sdl(dpad)); - } - else if (usage == HUG_DPAD_DOWN) { - dpad[1] = (Sint32) hid_get_data(REP_BUF_DATA(rep), &hitem); - SDL_PrivateJoystickHat(joy, 0, dpad_to_sdl(dpad)); - } - else if (usage == HUG_DPAD_RIGHT) { - dpad[2] = (Sint32) hid_get_data(REP_BUF_DATA(rep), &hitem); - SDL_PrivateJoystickHat(joy, 0, dpad_to_sdl(dpad)); - } - else if (usage == HUG_DPAD_LEFT) { - dpad[3] = (Sint32) hid_get_data(REP_BUF_DATA(rep), &hitem); - SDL_PrivateJoystickHat(joy, 0, dpad_to_sdl(dpad)); - } -#endif - break; - } - case HUP_BUTTON: - v = (Sint32) hid_get_data(REP_BUF_DATA(rep), &hitem); - SDL_PrivateJoystickButton(joy, nbutton, v); - nbutton++; - break; - default: - continue; - } - break; - default: - break; - } - } - hid_end_parse(hdata); - } -} - -/* Function to close a joystick after use */ -static void -BSD_JoystickClose(SDL_Joystick * joy) -{ - if (SDL_strncmp(joy->hwdata->path, "/dev/joy", 8)) { - report_free(&joy->hwdata->inreport); - hid_dispose_report_desc(joy->hwdata->repdesc); - } - close(joy->hwdata->fd); - SDL_free(joy->hwdata->path); - SDL_free(joy->hwdata); -} - -static void -BSD_JoystickQuit(void) -{ - int i; - - for (i = 0; i < MAX_JOYS; i++) { - SDL_free(joynames[i]); - SDL_free(joydevnames[i]); - } - - return; -} - -static SDL_JoystickGUID -BSD_JoystickGetDeviceGUID( int device_index ) -{ - SDL_JoystickGUID guid; - /* the GUID is just the first 16 chars of the name for now */ - const char *name = BSD_JoystickGetDeviceName( device_index ); - SDL_zero( guid ); - SDL_memcpy( &guid, name, SDL_min( sizeof(guid), SDL_strlen( name ) ) ); - return guid; -} - -static int -report_alloc(struct report *r, struct report_desc *rd, int repind) -{ - int len; - -#ifdef __DragonFly__ - len = hid_report_size(rd, r->rid, repinfo[repind].kind); -#elif __FREEBSD__ -# if (__FreeBSD_kernel_version >= 460000) || defined(__FreeBSD_kernel__) -# if (__FreeBSD_kernel_version <= 500111) - len = hid_report_size(rd, r->rid, repinfo[repind].kind); -# else - len = hid_report_size(rd, repinfo[repind].kind, r->rid); -# endif -# else - len = hid_report_size(rd, repinfo[repind].kind, &r->rid); -# endif -#else -# ifdef USBHID_NEW - len = hid_report_size(rd, repinfo[repind].kind, r->rid); -# else - len = hid_report_size(rd, repinfo[repind].kind, &r->rid); -# endif -#endif - - if (len < 0) { - return SDL_SetError("Negative HID report size"); - } - r->size = len; - - if (r->size > 0) { -#if defined(__FREEBSD__) && (__FreeBSD_kernel_version > 900000) - r->buf = SDL_malloc(r->size); -#else - r->buf = SDL_malloc(sizeof(*r->buf) - sizeof(REP_BUF_DATA(r)) + - r->size); -#endif - if (r->buf == NULL) { - return SDL_OutOfMemory(); - } - } else { - r->buf = NULL; - } - - r->status = SREPORT_CLEAN; - return 0; -} - -static void -report_free(struct report *r) -{ - SDL_free(r->buf); - r->status = SREPORT_UNINIT; -} - -static int -BSD_JoystickRumble(SDL_Joystick * joystick, Uint16 low_frequency_rumble, Uint16 high_frequency_rumble) -{ - return SDL_Unsupported(); -} - -SDL_JoystickDriver SDL_BSD_JoystickDriver = -{ - BSD_JoystickInit, - BSD_JoystickGetCount, - BSD_JoystickDetect, - BSD_JoystickGetDeviceName, - BSD_JoystickGetDevicePlayerIndex, - BSD_JoystickSetDevicePlayerIndex, - BSD_JoystickGetDeviceGUID, - BSD_JoystickGetDeviceInstanceID, - BSD_JoystickOpen, - BSD_JoystickRumble, - BSD_JoystickUpdate, - BSD_JoystickClose, - BSD_JoystickQuit, -}; - -#endif /* SDL_JOYSTICK_USBHID */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/externals/SDL/src/joystick/darwin/SDL_sysjoystick.c b/externals/SDL/src/joystick/darwin/SDL_sysjoystick.c deleted file mode 100755 index 461a85f18..000000000 --- a/externals/SDL/src/joystick/darwin/SDL_sysjoystick.c +++ /dev/null @@ -1,1066 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2020 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ -#include "../../SDL_internal.h" - -#ifdef SDL_JOYSTICK_IOKIT - -#include "SDL_events.h" -#include "SDL_joystick.h" -#include "../SDL_sysjoystick.h" -#include "../SDL_joystick_c.h" -#include "SDL_sysjoystick_c.h" -#include "../hidapi/SDL_hidapijoystick_c.h" -#include "../../haptic/darwin/SDL_syshaptic_c.h" /* For haptic hot plugging */ - - -#define SDL_JOYSTICK_RUNLOOP_MODE CFSTR("SDLJoystick") - -#define CONVERT_MAGNITUDE(x) (((x)*10000) / 0x7FFF) - -/* The base object of the HID Manager API */ -static IOHIDManagerRef hidman = NULL; - -/* Linked list of all available devices */ -static recDevice *gpDeviceList = NULL; - -void FreeRumbleEffectData(FFEFFECT *effect) -{ - if (!effect) { - return; - } - SDL_free(effect->rgdwAxes); - SDL_free(effect->rglDirection); - SDL_free(effect->lpvTypeSpecificParams); - SDL_free(effect); -} - -FFEFFECT *CreateRumbleEffectData(Sint16 magnitude) -{ - FFEFFECT *effect; - FFPERIODIC *periodic; - - /* Create the effect */ - effect = (FFEFFECT *)SDL_calloc(1, sizeof(*effect)); - if (!effect) { - return NULL; - } - effect->dwSize = sizeof(*effect); - effect->dwGain = 10000; - effect->dwFlags = FFEFF_OBJECTOFFSETS; - effect->dwDuration = SDL_MAX_RUMBLE_DURATION_MS * 1000; /* In microseconds. */ - effect->dwTriggerButton = FFEB_NOTRIGGER; - - effect->cAxes = 2; - effect->rgdwAxes = (DWORD *)SDL_calloc(effect->cAxes, sizeof(DWORD)); - if (!effect->rgdwAxes) { - FreeRumbleEffectData(effect); - return NULL; - } - - effect->rglDirection = (LONG *)SDL_calloc(effect->cAxes, sizeof(LONG)); - if (!effect->rglDirection) { - FreeRumbleEffectData(effect); - return NULL; - } - effect->dwFlags |= FFEFF_CARTESIAN; - - periodic = (FFPERIODIC *)SDL_calloc(1, sizeof(*periodic)); - if (!periodic) { - FreeRumbleEffectData(effect); - return NULL; - } - periodic->dwMagnitude = CONVERT_MAGNITUDE(magnitude); - periodic->dwPeriod = 1000000; - - effect->cbTypeSpecificParams = sizeof(*periodic); - effect->lpvTypeSpecificParams = periodic; - - return effect; -} - -static recDevice *GetDeviceForIndex(int device_index) -{ - recDevice *device = gpDeviceList; - while (device) { - if (!device->removed) { - if (device_index == 0) - break; - - --device_index; - } - device = device->pNext; - } - return device; -} - -static void -FreeElementList(recElement *pElement) -{ - while (pElement) { - recElement *pElementNext = pElement->pNext; - SDL_free(pElement); - pElement = pElementNext; - } -} - -static recDevice * -FreeDevice(recDevice *removeDevice) -{ - recDevice *pDeviceNext = NULL; - if (removeDevice) { - if (removeDevice->deviceRef) { - IOHIDDeviceUnscheduleFromRunLoop(removeDevice->deviceRef, CFRunLoopGetCurrent(), SDL_JOYSTICK_RUNLOOP_MODE); - CFRelease(removeDevice->deviceRef); - removeDevice->deviceRef = NULL; - } - - /* save next device prior to disposing of this device */ - pDeviceNext = removeDevice->pNext; - - if ( gpDeviceList == removeDevice ) { - gpDeviceList = pDeviceNext; - } else if (gpDeviceList) { - recDevice *device = gpDeviceList; - while (device->pNext != removeDevice) { - device = device->pNext; - } - device->pNext = pDeviceNext; - } - removeDevice->pNext = NULL; - - /* free element lists */ - FreeElementList(removeDevice->firstAxis); - FreeElementList(removeDevice->firstButton); - FreeElementList(removeDevice->firstHat); - - SDL_free(removeDevice); - } - return pDeviceNext; -} - -static SDL_bool -GetHIDElementState(recDevice *pDevice, recElement *pElement, SInt32 *pValue) -{ - SInt32 value = 0; - int returnValue = SDL_FALSE; - - if (pDevice && pDevice->deviceRef && pElement) { - IOHIDValueRef valueRef; - if (IOHIDDeviceGetValue(pDevice->deviceRef, pElement->elementRef, &valueRef) == kIOReturnSuccess) { - value = (SInt32) IOHIDValueGetIntegerValue(valueRef); - - /* record min and max for auto calibration */ - if (value < pElement->minReport) { - pElement->minReport = value; - } - if (value > pElement->maxReport) { - pElement->maxReport = value; - } - *pValue = value; - - returnValue = SDL_TRUE; - } - } - return returnValue; -} - -static SDL_bool -GetHIDScaledCalibratedState(recDevice * pDevice, recElement * pElement, SInt32 min, SInt32 max, SInt32 *pValue) -{ - const float deviceScale = max - min; - const float readScale = pElement->maxReport - pElement->minReport; - int returnValue = SDL_FALSE; - if (GetHIDElementState(pDevice, pElement, pValue)) - { - if (readScale == 0) { - returnValue = SDL_TRUE; /* no scaling at all */ - } - else - { - *pValue = ((*pValue - pElement->minReport) * deviceScale / readScale) + min; - returnValue = SDL_TRUE; - } - } - return returnValue; -} - -static void -JoystickDeviceWasRemovedCallback(void *ctx, IOReturn result, void *sender) -{ - recDevice *device = (recDevice *) ctx; - device->removed = SDL_TRUE; - if (device->deviceRef) { - // deviceRef was invalidated due to the remove - CFRelease(device->deviceRef); - device->deviceRef = NULL; - } - if (device->ffeffect_ref) { - FFDeviceReleaseEffect(device->ffdevice, device->ffeffect_ref); - device->ffeffect_ref = NULL; - } - if (device->ffeffect) { - FreeRumbleEffectData(device->ffeffect); - device->ffeffect = NULL; - } - if (device->ffdevice) { - FFReleaseDevice(device->ffdevice); - device->ffdevice = NULL; - device->ff_initialized = SDL_FALSE; - } -#if SDL_HAPTIC_IOKIT - MacHaptic_MaybeRemoveDevice(device->ffservice); -#endif - - SDL_PrivateJoystickRemoved(device->instance_id); -} - - -static void AddHIDElement(const void *value, void *parameter); - -/* Call AddHIDElement() on all elements in an array of IOHIDElementRefs */ -static void -AddHIDElements(CFArrayRef array, recDevice *pDevice) -{ - const CFRange range = { 0, CFArrayGetCount(array) }; - CFArrayApplyFunction(array, range, AddHIDElement, pDevice); -} - -static SDL_bool -ElementAlreadyAdded(const IOHIDElementCookie cookie, const recElement *listitem) { - while (listitem) { - if (listitem->cookie == cookie) { - return SDL_TRUE; - } - listitem = listitem->pNext; - } - return SDL_FALSE; -} - -/* See if we care about this HID element, and if so, note it in our recDevice. */ -static void -AddHIDElement(const void *value, void *parameter) -{ - recDevice *pDevice = (recDevice *) parameter; - IOHIDElementRef refElement = (IOHIDElementRef) value; - const CFTypeID elementTypeID = refElement ? CFGetTypeID(refElement) : 0; - - if (refElement && (elementTypeID == IOHIDElementGetTypeID())) { - const IOHIDElementCookie cookie = IOHIDElementGetCookie(refElement); - const uint32_t usagePage = IOHIDElementGetUsagePage(refElement); - const uint32_t usage = IOHIDElementGetUsage(refElement); - recElement *element = NULL; - recElement **headElement = NULL; - - /* look at types of interest */ - switch (IOHIDElementGetType(refElement)) { - case kIOHIDElementTypeInput_Misc: - case kIOHIDElementTypeInput_Button: - case kIOHIDElementTypeInput_Axis: { - switch (usagePage) { /* only interested in kHIDPage_GenericDesktop and kHIDPage_Button */ - case kHIDPage_GenericDesktop: - switch (usage) { - case kHIDUsage_GD_X: - case kHIDUsage_GD_Y: - case kHIDUsage_GD_Z: - case kHIDUsage_GD_Rx: - case kHIDUsage_GD_Ry: - case kHIDUsage_GD_Rz: - case kHIDUsage_GD_Slider: - case kHIDUsage_GD_Dial: - case kHIDUsage_GD_Wheel: - if (!ElementAlreadyAdded(cookie, pDevice->firstAxis)) { - element = (recElement *) SDL_calloc(1, sizeof (recElement)); - if (element) { - pDevice->axes++; - headElement = &(pDevice->firstAxis); - } - } - break; - - case kHIDUsage_GD_Hatswitch: - if (!ElementAlreadyAdded(cookie, pDevice->firstHat)) { - element = (recElement *) SDL_calloc(1, sizeof (recElement)); - if (element) { - pDevice->hats++; - headElement = &(pDevice->firstHat); - } - } - break; - case kHIDUsage_GD_DPadUp: - case kHIDUsage_GD_DPadDown: - case kHIDUsage_GD_DPadRight: - case kHIDUsage_GD_DPadLeft: - case kHIDUsage_GD_Start: - case kHIDUsage_GD_Select: - case kHIDUsage_GD_SystemMainMenu: - if (!ElementAlreadyAdded(cookie, pDevice->firstButton)) { - element = (recElement *) SDL_calloc(1, sizeof (recElement)); - if (element) { - pDevice->buttons++; - headElement = &(pDevice->firstButton); - } - } - break; - } - break; - - case kHIDPage_Simulation: - switch (usage) { - case kHIDUsage_Sim_Rudder: - case kHIDUsage_Sim_Throttle: - case kHIDUsage_Sim_Accelerator: - case kHIDUsage_Sim_Brake: - if (!ElementAlreadyAdded(cookie, pDevice->firstAxis)) { - element = (recElement *) SDL_calloc(1, sizeof (recElement)); - if (element) { - pDevice->axes++; - headElement = &(pDevice->firstAxis); - } - } - break; - - default: - break; - } - break; - - case kHIDPage_Button: - case kHIDPage_Consumer: /* e.g. 'pause' button on Steelseries MFi gamepads. */ - if (!ElementAlreadyAdded(cookie, pDevice->firstButton)) { - element = (recElement *) SDL_calloc(1, sizeof (recElement)); - if (element) { - pDevice->buttons++; - headElement = &(pDevice->firstButton); - } - } - break; - - default: - break; - } - } - break; - - case kIOHIDElementTypeCollection: { - CFArrayRef array = IOHIDElementGetChildren(refElement); - if (array) { - AddHIDElements(array, pDevice); - } - } - break; - - default: - break; - } - - if (element && headElement) { /* add to list */ - recElement *elementPrevious = NULL; - recElement *elementCurrent = *headElement; - while (elementCurrent && usage >= elementCurrent->usage) { - elementPrevious = elementCurrent; - elementCurrent = elementCurrent->pNext; - } - if (elementPrevious) { - elementPrevious->pNext = element; - } else { - *headElement = element; - } - - element->elementRef = refElement; - element->usagePage = usagePage; - element->usage = usage; - element->pNext = elementCurrent; - - element->minReport = element->min = (SInt32) IOHIDElementGetLogicalMin(refElement); - element->maxReport = element->max = (SInt32) IOHIDElementGetLogicalMax(refElement); - element->cookie = IOHIDElementGetCookie(refElement); - - pDevice->elements++; - } - } -} - -static SDL_bool -GetDeviceInfo(IOHIDDeviceRef hidDevice, recDevice *pDevice) -{ - Sint32 vendor = 0; - Sint32 product = 0; - Sint32 version = 0; - const char *name; - const char *manufacturer_remapped; - char manufacturer_string[256]; - char product_string[256]; - CFTypeRef refCF = NULL; - CFArrayRef array = NULL; - Uint16 *guid16 = (Uint16 *)pDevice->guid.data; - int i; - - /* get usage page and usage */ - refCF = IOHIDDeviceGetProperty(hidDevice, CFSTR(kIOHIDPrimaryUsagePageKey)); - if (refCF) { - CFNumberGetValue(refCF, kCFNumberSInt32Type, &pDevice->usagePage); - } - if (pDevice->usagePage != kHIDPage_GenericDesktop) { - return SDL_FALSE; /* Filter device list to non-keyboard/mouse stuff */ - } - - refCF = IOHIDDeviceGetProperty(hidDevice, CFSTR(kIOHIDPrimaryUsageKey)); - if (refCF) { - CFNumberGetValue(refCF, kCFNumberSInt32Type, &pDevice->usage); - } - - if ((pDevice->usage != kHIDUsage_GD_Joystick && - pDevice->usage != kHIDUsage_GD_GamePad && - pDevice->usage != kHIDUsage_GD_MultiAxisController)) { - return SDL_FALSE; /* Filter device list to non-keyboard/mouse stuff */ - } - - /* Make sure we retain the use of the IOKit-provided device-object, - lest the device get disconnected and we try to use it. (Fixes - SDL-Bugzilla #4961, aka. https://bugzilla.libsdl.org/show_bug.cgi?id=4961 ) - */ - CFRetain(hidDevice); - - /* Now that we've CFRetain'ed the device-object (for our use), we'll - save the reference to it. - */ - pDevice->deviceRef = hidDevice; - - refCF = IOHIDDeviceGetProperty(hidDevice, CFSTR(kIOHIDVendorIDKey)); - if (refCF) { - CFNumberGetValue(refCF, kCFNumberSInt32Type, &vendor); - } - - refCF = IOHIDDeviceGetProperty(hidDevice, CFSTR(kIOHIDProductIDKey)); - if (refCF) { - CFNumberGetValue(refCF, kCFNumberSInt32Type, &product); - } - - refCF = IOHIDDeviceGetProperty(hidDevice, CFSTR(kIOHIDVersionNumberKey)); - if (refCF) { - CFNumberGetValue(refCF, kCFNumberSInt32Type, &version); - } - - /* get device name */ - name = SDL_GetCustomJoystickName(vendor, product); - if (name) { - SDL_strlcpy(pDevice->product, name, sizeof(pDevice->product)); - } else { - refCF = IOHIDDeviceGetProperty(hidDevice, CFSTR(kIOHIDManufacturerKey)); - if ((!refCF) || (!CFStringGetCString(refCF, manufacturer_string, sizeof(manufacturer_string), kCFStringEncodingUTF8))) { - manufacturer_string[0] = '\0'; - } - refCF = IOHIDDeviceGetProperty(hidDevice, CFSTR(kIOHIDProductKey)); - if ((!refCF) || (!CFStringGetCString(refCF, product_string, sizeof(product_string), kCFStringEncodingUTF8))) { - SDL_strlcpy(product_string, "Unidentified joystick", sizeof(product_string)); - } - for (i = (int)SDL_strlen(manufacturer_string) - 1; i > 0; --i) { - if (SDL_isspace(manufacturer_string[i])) { - manufacturer_string[i] = '\0'; - } else { - break; - } - } - - manufacturer_remapped = SDL_GetCustomJoystickManufacturer(manufacturer_string); - if (manufacturer_remapped != manufacturer_string) { - SDL_strlcpy(manufacturer_string, manufacturer_remapped, sizeof(manufacturer_string)); - } - - if (SDL_strncasecmp(manufacturer_string, product_string, SDL_strlen(manufacturer_string)) == 0) { - SDL_strlcpy(pDevice->product, product_string, sizeof(pDevice->product)); - } else { - SDL_snprintf(pDevice->product, sizeof(pDevice->product), "%s %s", manufacturer_string, product_string); - } - } - -#ifdef SDL_JOYSTICK_HIDAPI - if (HIDAPI_IsDevicePresent(vendor, product, version, pDevice->product)) { - /* The HIDAPI driver is taking care of this device */ - return 0; - } -#endif - - SDL_memset(pDevice->guid.data, 0, sizeof(pDevice->guid.data)); - - if (vendor && product) { - *guid16++ = SDL_SwapLE16(SDL_HARDWARE_BUS_USB); - *guid16++ = 0; - *guid16++ = SDL_SwapLE16((Uint16)vendor); - *guid16++ = 0; - *guid16++ = SDL_SwapLE16((Uint16)product); - *guid16++ = 0; - *guid16++ = SDL_SwapLE16((Uint16)version); - *guid16++ = 0; - } else { - *guid16++ = SDL_SwapLE16(SDL_HARDWARE_BUS_BLUETOOTH); - *guid16++ = 0; - SDL_strlcpy((char*)guid16, pDevice->product, sizeof(pDevice->guid.data) - 4); - } - - array = IOHIDDeviceCopyMatchingElements(hidDevice, NULL, kIOHIDOptionsTypeNone); - if (array) { - AddHIDElements(array, pDevice); - CFRelease(array); - } - - return SDL_TRUE; -} - -static SDL_bool -JoystickAlreadyKnown(IOHIDDeviceRef ioHIDDeviceObject) -{ - recDevice *i; - for (i = gpDeviceList; i != NULL; i = i->pNext) { - if (i->deviceRef == ioHIDDeviceObject) { - return SDL_TRUE; - } - } - return SDL_FALSE; -} - - -static void -JoystickDeviceWasAddedCallback(void *ctx, IOReturn res, void *sender, IOHIDDeviceRef ioHIDDeviceObject) -{ - recDevice *device; - int device_index = 0; - io_service_t ioservice; - - if (res != kIOReturnSuccess) { - return; - } - - if (JoystickAlreadyKnown(ioHIDDeviceObject)) { - return; /* IOKit sent us a duplicate. */ - } - - device = (recDevice *) SDL_calloc(1, sizeof(recDevice)); - if (!device) { - SDL_OutOfMemory(); - return; - } - - if (!GetDeviceInfo(ioHIDDeviceObject, device)) { - FreeDevice(device); - return; /* not a device we care about, probably. */ - } - - if (SDL_ShouldIgnoreJoystick(device->product, device->guid)) { - FreeDevice(device); - return; - } - - /* Get notified when this device is disconnected. */ - IOHIDDeviceRegisterRemovalCallback(ioHIDDeviceObject, JoystickDeviceWasRemovedCallback, device); - IOHIDDeviceScheduleWithRunLoop(ioHIDDeviceObject, CFRunLoopGetCurrent(), SDL_JOYSTICK_RUNLOOP_MODE); - - /* Allocate an instance ID for this device */ - device->instance_id = SDL_GetNextJoystickInstanceID(); - - /* We have to do some storage of the io_service_t for SDL_HapticOpenFromJoystick */ - ioservice = IOHIDDeviceGetService(ioHIDDeviceObject); - if ((ioservice) && (FFIsForceFeedback(ioservice) == FF_OK)) { - device->ffservice = ioservice; -#if SDL_HAPTIC_IOKIT - MacHaptic_MaybeAddDevice(ioservice); -#endif - } - - /* Add device to the end of the list */ - if ( !gpDeviceList ) { - gpDeviceList = device; - } else { - recDevice *curdevice; - - curdevice = gpDeviceList; - while ( curdevice->pNext ) { - ++device_index; - curdevice = curdevice->pNext; - } - curdevice->pNext = device; - ++device_index; /* bump by one since we counted by pNext. */ - } - - SDL_PrivateJoystickAdded(device->instance_id); -} - -static SDL_bool -ConfigHIDManager(CFArrayRef matchingArray) -{ - CFRunLoopRef runloop = CFRunLoopGetCurrent(); - - if (IOHIDManagerOpen(hidman, kIOHIDOptionsTypeNone) != kIOReturnSuccess) { - return SDL_FALSE; - } - - IOHIDManagerSetDeviceMatchingMultiple(hidman, matchingArray); - IOHIDManagerRegisterDeviceMatchingCallback(hidman, JoystickDeviceWasAddedCallback, NULL); - IOHIDManagerScheduleWithRunLoop(hidman, runloop, SDL_JOYSTICK_RUNLOOP_MODE); - - while (CFRunLoopRunInMode(SDL_JOYSTICK_RUNLOOP_MODE,0,TRUE) == kCFRunLoopRunHandledSource) { - /* no-op. Callback fires once per existing device. */ - } - - /* future hotplug events will come through SDL_JOYSTICK_RUNLOOP_MODE now. */ - - return SDL_TRUE; /* good to go. */ -} - - -static CFDictionaryRef -CreateHIDDeviceMatchDictionary(const UInt32 page, const UInt32 usage, int *okay) -{ - CFDictionaryRef retval = NULL; - CFNumberRef pageNumRef = CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &page); - CFNumberRef usageNumRef = CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &usage); - const void *keys[2] = { (void *) CFSTR(kIOHIDDeviceUsagePageKey), (void *) CFSTR(kIOHIDDeviceUsageKey) }; - const void *vals[2] = { (void *) pageNumRef, (void *) usageNumRef }; - - if (pageNumRef && usageNumRef) { - retval = CFDictionaryCreate(kCFAllocatorDefault, keys, vals, 2, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); - } - - if (pageNumRef) { - CFRelease(pageNumRef); - } - if (usageNumRef) { - CFRelease(usageNumRef); - } - - if (!retval) { - *okay = 0; - } - - return retval; -} - -static SDL_bool -CreateHIDManager(void) -{ - SDL_bool retval = SDL_FALSE; - int okay = 1; - const void *vals[] = { - (void *) CreateHIDDeviceMatchDictionary(kHIDPage_GenericDesktop, kHIDUsage_GD_Joystick, &okay), - (void *) CreateHIDDeviceMatchDictionary(kHIDPage_GenericDesktop, kHIDUsage_GD_GamePad, &okay), - (void *) CreateHIDDeviceMatchDictionary(kHIDPage_GenericDesktop, kHIDUsage_GD_MultiAxisController, &okay), - }; - const size_t numElements = SDL_arraysize(vals); - CFArrayRef array = okay ? CFArrayCreate(kCFAllocatorDefault, vals, numElements, &kCFTypeArrayCallBacks) : NULL; - size_t i; - - for (i = 0; i < numElements; i++) { - if (vals[i]) { - CFRelease((CFTypeRef) vals[i]); - } - } - - if (array) { - hidman = IOHIDManagerCreate(kCFAllocatorDefault, kIOHIDOptionsTypeNone); - if (hidman != NULL) { - retval = ConfigHIDManager(array); - } - CFRelease(array); - } - - return retval; -} - - -static int -DARWIN_JoystickInit(void) -{ - if (gpDeviceList) { - return SDL_SetError("Joystick: Device list already inited."); - } - - if (!CreateHIDManager()) { - return SDL_SetError("Joystick: Couldn't initialize HID Manager"); - } - - return 0; -} - -static int -DARWIN_JoystickGetCount(void) -{ - recDevice *device = gpDeviceList; - int nJoySticks = 0; - - while (device) { - if (!device->removed) { - nJoySticks++; - } - device = device->pNext; - } - - return nJoySticks; -} - -static void -DARWIN_JoystickDetect(void) -{ - recDevice *device = gpDeviceList; - while (device) { - if (device->removed) { - device = FreeDevice(device); - } else { - device = device->pNext; - } - } - - /* run this after the checks above so we don't set device->removed and delete the device before - DARWIN_JoystickUpdate can run to clean up the SDL_Joystick object that owns this device */ - while (CFRunLoopRunInMode(SDL_JOYSTICK_RUNLOOP_MODE,0,TRUE) == kCFRunLoopRunHandledSource) { - /* no-op. Pending callbacks will fire in CFRunLoopRunInMode(). */ - } -} - -/* Function to get the device-dependent name of a joystick */ -const char * -DARWIN_JoystickGetDeviceName(int device_index) -{ - recDevice *device = GetDeviceForIndex(device_index); - return device ? device->product : "UNKNOWN"; -} - -static int -DARWIN_JoystickGetDevicePlayerIndex(int device_index) -{ - return -1; -} - -static void -DARWIN_JoystickSetDevicePlayerIndex(int device_index, int player_index) -{ -} - -static SDL_JoystickGUID -DARWIN_JoystickGetDeviceGUID( int device_index ) -{ - recDevice *device = GetDeviceForIndex(device_index); - SDL_JoystickGUID guid; - if (device) { - guid = device->guid; - } else { - SDL_zero(guid); - } - return guid; -} - -static SDL_JoystickID -DARWIN_JoystickGetDeviceInstanceID(int device_index) -{ - recDevice *device = GetDeviceForIndex(device_index); - return device ? device->instance_id : 0; -} - -static int -DARWIN_JoystickOpen(SDL_Joystick * joystick, int device_index) -{ - recDevice *device = GetDeviceForIndex(device_index); - - joystick->instance_id = device->instance_id; - joystick->hwdata = device; - joystick->name = device->product; - - joystick->naxes = device->axes; - joystick->nhats = device->hats; - joystick->nballs = 0; - joystick->nbuttons = device->buttons; - return 0; -} - -/* - * Like strerror but for force feedback errors. - */ -static const char * -FFStrError(unsigned int err) -{ - switch (err) { - case FFERR_DEVICEFULL: - return "device full"; - /* This should be valid, but for some reason isn't defined... */ - /* case FFERR_DEVICENOTREG: - return "device not registered"; */ - case FFERR_DEVICEPAUSED: - return "device paused"; - case FFERR_DEVICERELEASED: - return "device released"; - case FFERR_EFFECTPLAYING: - return "effect playing"; - case FFERR_EFFECTTYPEMISMATCH: - return "effect type mismatch"; - case FFERR_EFFECTTYPENOTSUPPORTED: - return "effect type not supported"; - case FFERR_GENERIC: - return "undetermined error"; - case FFERR_HASEFFECTS: - return "device has effects"; - case FFERR_INCOMPLETEEFFECT: - return "incomplete effect"; - case FFERR_INTERNAL: - return "internal fault"; - case FFERR_INVALIDDOWNLOADID: - return "invalid download id"; - case FFERR_INVALIDPARAM: - return "invalid parameter"; - case FFERR_MOREDATA: - return "more data"; - case FFERR_NOINTERFACE: - return "interface not supported"; - case FFERR_NOTDOWNLOADED: - return "effect is not downloaded"; - case FFERR_NOTINITIALIZED: - return "object has not been initialized"; - case FFERR_OUTOFMEMORY: - return "out of memory"; - case FFERR_UNPLUGGED: - return "device is unplugged"; - case FFERR_UNSUPPORTED: - return "function call unsupported"; - case FFERR_UNSUPPORTEDAXIS: - return "axis unsupported"; - - default: - return "unknown error"; - } -} - -static int -DARWIN_JoystickInitRumble(recDevice *device, Sint16 magnitude) -{ - HRESULT result; - - if (!device->ffdevice) { - result = FFCreateDevice(device->ffservice, &device->ffdevice); - if (result != FF_OK) { - return SDL_SetError("Unable to create force feedback device from service: %s", FFStrError(result)); - } - } - - /* Reset and then enable actuators */ - result = FFDeviceSendForceFeedbackCommand(device->ffdevice, FFSFFC_RESET); - if (result != FF_OK) { - return SDL_SetError("Unable to reset force feedback device: %s", FFStrError(result)); - } - - result = FFDeviceSendForceFeedbackCommand(device->ffdevice, FFSFFC_SETACTUATORSON); - if (result != FF_OK) { - return SDL_SetError("Unable to enable force feedback actuators: %s", FFStrError(result)); - } - - /* Create the effect */ - device->ffeffect = CreateRumbleEffectData(magnitude); - if (!device->ffeffect) { - return SDL_OutOfMemory(); - } - - result = FFDeviceCreateEffect(device->ffdevice, kFFEffectType_Sine_ID, - device->ffeffect, &device->ffeffect_ref); - if (result != FF_OK) { - return SDL_SetError("Haptic: Unable to create effect: %s", FFStrError(result)); - } - return 0; -} - -static int -DARWIN_JoystickRumble(SDL_Joystick * joystick, Uint16 low_frequency_rumble, Uint16 high_frequency_rumble) -{ - HRESULT result; - recDevice *device = joystick->hwdata; - - /* Scale and average the two rumble strengths */ - Sint16 magnitude = (Sint16)(((low_frequency_rumble / 2) + (high_frequency_rumble / 2)) / 2); - - if (!device->ffservice) { - return SDL_Unsupported(); - } - - if (device->ff_initialized) { - FFPERIODIC *periodic = ((FFPERIODIC *)device->ffeffect->lpvTypeSpecificParams); - periodic->dwMagnitude = CONVERT_MAGNITUDE(magnitude); - - result = FFEffectSetParameters(device->ffeffect_ref, device->ffeffect, - (FFEP_DURATION | FFEP_TYPESPECIFICPARAMS)); - if (result != FF_OK) { - return SDL_SetError("Unable to update rumble effect: %s", FFStrError(result)); - } - } else { - if (DARWIN_JoystickInitRumble(device, magnitude) < 0) { - return -1; - } - device->ff_initialized = SDL_TRUE; - } - - result = FFEffectStart(device->ffeffect_ref, 1, 0); - if (result != FF_OK) { - return SDL_SetError("Unable to run the rumble effect: %s", FFStrError(result)); - } - return 0; -} - -static void -DARWIN_JoystickUpdate(SDL_Joystick * joystick) -{ - recDevice *device = joystick->hwdata; - recElement *element; - SInt32 value, range; - int i; - - if (!device) { - return; - } - - if (device->removed) { /* device was unplugged; ignore it. */ - if (joystick->hwdata) { - joystick->force_recentering = SDL_TRUE; - joystick->hwdata = NULL; - } - return; - } - - element = device->firstAxis; - i = 0; - - int goodRead = SDL_FALSE; - while (element) { - goodRead = GetHIDScaledCalibratedState(device, element, -32768, 32767, &value); - if (goodRead) { - SDL_PrivateJoystickAxis(joystick, i, value); - } - - element = element->pNext; - ++i; - } - - element = device->firstButton; - i = 0; - while (element) { - goodRead = GetHIDElementState(device, element, &value); - if (goodRead) { - if (value > 1) { /* handle pressure-sensitive buttons */ - value = 1; - } - SDL_PrivateJoystickButton(joystick, i, value); - } - - element = element->pNext; - ++i; - } - - element = device->firstHat; - i = 0; - - while (element) { - Uint8 pos = 0; - - range = (element->max - element->min + 1); - goodRead = GetHIDElementState(device, element, &value); - if (goodRead) { - value -= element->min; - if (range == 4) { /* 4 position hatswitch - scale up value */ - value *= 2; - } else if (range != 8) { /* Neither a 4 nor 8 positions - fall back to default position (centered) */ - value = -1; - } - switch (value) { - case 0: - pos = SDL_HAT_UP; - break; - case 1: - pos = SDL_HAT_RIGHTUP; - break; - case 2: - pos = SDL_HAT_RIGHT; - break; - case 3: - pos = SDL_HAT_RIGHTDOWN; - break; - case 4: - pos = SDL_HAT_DOWN; - break; - case 5: - pos = SDL_HAT_LEFTDOWN; - break; - case 6: - pos = SDL_HAT_LEFT; - break; - case 7: - pos = SDL_HAT_LEFTUP; - break; - default: - /* Every other value is mapped to center. We do that because some - * joysticks use 8 and some 15 for this value, and apparently - * there are even more variants out there - so we try to be generous. - */ - pos = SDL_HAT_CENTERED; - break; - } - - SDL_PrivateJoystickHat(joystick, i, pos); - } - - element = element->pNext; - ++i; - } -} - -static void -DARWIN_JoystickClose(SDL_Joystick * joystick) -{ -} - -static void -DARWIN_JoystickQuit(void) -{ - while (FreeDevice(gpDeviceList)) { - /* spin */ - } - - if (hidman) { - IOHIDManagerUnscheduleFromRunLoop(hidman, CFRunLoopGetCurrent(), SDL_JOYSTICK_RUNLOOP_MODE); - IOHIDManagerClose(hidman, kIOHIDOptionsTypeNone); - CFRelease(hidman); - hidman = NULL; - } -} - -SDL_JoystickDriver SDL_DARWIN_JoystickDriver = -{ - DARWIN_JoystickInit, - DARWIN_JoystickGetCount, - DARWIN_JoystickDetect, - DARWIN_JoystickGetDeviceName, - DARWIN_JoystickGetDevicePlayerIndex, - DARWIN_JoystickSetDevicePlayerIndex, - DARWIN_JoystickGetDeviceGUID, - DARWIN_JoystickGetDeviceInstanceID, - DARWIN_JoystickOpen, - DARWIN_JoystickRumble, - DARWIN_JoystickUpdate, - DARWIN_JoystickClose, - DARWIN_JoystickQuit, -}; - -#endif /* SDL_JOYSTICK_IOKIT */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/externals/SDL/src/joystick/darwin/SDL_sysjoystick_c.h b/externals/SDL/src/joystick/darwin/SDL_sysjoystick_c.h deleted file mode 100755 index 45a5793cf..000000000 --- a/externals/SDL/src/joystick/darwin/SDL_sysjoystick_c.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2020 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ -#include "../../SDL_internal.h" - -#ifndef SDL_JOYSTICK_IOKIT_H -#define SDL_JOYSTICK_IOKIT_H - -#include -#include -#include - -struct recElement -{ - IOHIDElementRef elementRef; - IOHIDElementCookie cookie; - uint32_t usagePage, usage; /* HID usage */ - SInt32 min; /* reported min value possible */ - SInt32 max; /* reported max value possible */ - - /* runtime variables used for auto-calibration */ - SInt32 minReport; /* min returned value */ - SInt32 maxReport; /* max returned value */ - - struct recElement *pNext; /* next element in list */ -}; -typedef struct recElement recElement; - -struct joystick_hwdata -{ - IOHIDDeviceRef deviceRef; /* HIDManager device handle */ - io_service_t ffservice; /* Interface for force feedback, 0 = no ff */ - FFDeviceObjectReference ffdevice; - FFEFFECT *ffeffect; - FFEffectObjectReference ffeffect_ref; - SDL_bool ff_initialized; - - char product[256]; /* name of product */ - uint32_t usage; /* usage page from IOUSBHID Parser.h which defines general usage */ - uint32_t usagePage; /* usage within above page from IOUSBHID Parser.h which defines specific usage */ - - int axes; /* number of axis (calculated, not reported by device) */ - int buttons; /* number of buttons (calculated, not reported by device) */ - int hats; /* number of hat switches (calculated, not reported by device) */ - int elements; /* number of total elements (should be total of above) (calculated, not reported by device) */ - - recElement *firstAxis; - recElement *firstButton; - recElement *firstHat; - - SDL_bool removed; - - int instance_id; - SDL_JoystickGUID guid; - - struct joystick_hwdata *pNext; /* next device */ -}; -typedef struct joystick_hwdata recDevice; - -#endif /* SDL_JOYSTICK_IOKIT_H */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/externals/SDL/src/joystick/iphoneos/SDL_sysjoystick.m b/externals/SDL/src/joystick/iphoneos/SDL_sysjoystick.m deleted file mode 100755 index d14e047bb..000000000 --- a/externals/SDL/src/joystick/iphoneos/SDL_sysjoystick.m +++ /dev/null @@ -1,863 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2020 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ -#include "../../SDL_internal.h" - -/* This is the iOS implementation of the SDL joystick API */ -#include "SDL_sysjoystick_c.h" - -/* needed for SDL_IPHONE_MAX_GFORCE macro */ -#include "../../../include/SDL_config_iphoneos.h" - -#include "SDL_assert.h" -#include "SDL_events.h" -#include "SDL_joystick.h" -#include "SDL_hints.h" -#include "SDL_stdinc.h" -#include "../SDL_sysjoystick.h" -#include "../SDL_joystick_c.h" - - -#if !SDL_EVENTS_DISABLED -#include "../../events/SDL_events_c.h" -#endif - -#if !TARGET_OS_TV -#import -#endif - -#ifdef SDL_JOYSTICK_MFI -#import - -static id connectObserver = nil; -static id disconnectObserver = nil; - -#include -#include - -/* remove compilation warnings for strict builds by defining these selectors, even though - * they are only ever used indirectly through objc_msgSend - */ -@interface GCExtendedGamepad (SDL) -#if (__IPHONE_OS_VERSION_MAX_ALLOWED < 121000) || (__APPLETV_OS_VERSION_MAX_ALLOWED < 121000) || (__MAC_OS_VERSION_MAX_ALLOWED < 1401000) -@property (nonatomic, readonly, nullable) GCControllerButtonInput *leftThumbstickButton; -@property (nonatomic, readonly, nullable) GCControllerButtonInput *rightThumbstickButton; -#endif -#if (__IPHONE_OS_VERSION_MAX_ALLOWED < 130000) || (__APPLETV_OS_VERSION_MAX_ALLOWED < 130000) || (__MAC_OS_VERSION_MAX_ALLOWED < 1500000) -@property (nonatomic, readonly) GCControllerButtonInput *buttonMenu; -@property (nonatomic, readonly, nullable) GCControllerButtonInput *buttonOptions; -#endif -@end -@interface GCMicroGamepad (SDL) -#if (__IPHONE_OS_VERSION_MAX_ALLOWED < 130000) || (__APPLETV_OS_VERSION_MAX_ALLOWED < 130000) || (__MAC_OS_VERSION_MAX_ALLOWED < 1500000) -@property (nonatomic, readonly) GCControllerButtonInput *buttonMenu; -#endif -@end - -#endif /* SDL_JOYSTICK_MFI */ - -#if !TARGET_OS_TV -static const char *accelerometerName = "iOS Accelerometer"; -static CMMotionManager *motionManager = nil; -#endif /* !TARGET_OS_TV */ - -static SDL_JoystickDeviceItem *deviceList = NULL; - -static int numjoysticks = 0; -int SDL_AppleTVRemoteOpenedAsJoystick = 0; - -static SDL_JoystickDeviceItem * -GetDeviceForIndex(int device_index) -{ - SDL_JoystickDeviceItem *device = deviceList; - int i = 0; - - while (i < device_index) { - if (device == NULL) { - return NULL; - } - device = device->next; - i++; - } - - return device; -} - -static void -IOS_AddMFIJoystickDevice(SDL_JoystickDeviceItem *device, GCController *controller) -{ -#ifdef SDL_JOYSTICK_MFI - const Uint16 VENDOR_APPLE = 0x05AC; - const Uint16 VENDOR_MICROSOFT = 0x045e; - const Uint16 VENDOR_SONY = 0x054C; - Uint16 *guid16 = (Uint16 *)device->guid.data; - Uint16 vendor = 0; - Uint16 product = 0; - Uint8 subtype = 0; - - const char *name = NULL; - /* Explicitly retain the controller because SDL_JoystickDeviceItem is a - * struct, and ARC doesn't work with structs. */ - device->controller = (__bridge GCController *) CFBridgingRetain(controller); - - if (controller.vendorName) { - name = controller.vendorName.UTF8String; - } - - if (!name) { - name = "MFi Gamepad"; - } - - device->name = SDL_strdup(name); - - if (controller.extendedGamepad) { - GCExtendedGamepad *gamepad = controller.extendedGamepad; - BOOL is_xbox = [controller.vendorName containsString: @"Xbox"]; - BOOL is_ps4 = [controller.vendorName containsString: @"DUALSHOCK"]; -#if TARGET_OS_TV - BOOL is_MFi = (!is_xbox && !is_ps4); -#endif - int nbuttons = 0; - - /* These buttons are part of the original MFi spec */ - device->button_mask |= (1 << SDL_CONTROLLER_BUTTON_A); - device->button_mask |= (1 << SDL_CONTROLLER_BUTTON_B); - device->button_mask |= (1 << SDL_CONTROLLER_BUTTON_X); - device->button_mask |= (1 << SDL_CONTROLLER_BUTTON_Y); - device->button_mask |= (1 << SDL_CONTROLLER_BUTTON_LEFTSHOULDER); - device->button_mask |= (1 << SDL_CONTROLLER_BUTTON_RIGHTSHOULDER); - nbuttons += 6; - - /* These buttons are available on some newer controllers */ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wunguarded-availability-new" - if ([gamepad respondsToSelector:@selector(leftThumbstickButton)] && gamepad.leftThumbstickButton) { - device->button_mask |= (1 << SDL_CONTROLLER_BUTTON_LEFTSTICK); - ++nbuttons; - } - if ([gamepad respondsToSelector:@selector(rightThumbstickButton)] && gamepad.rightThumbstickButton) { - device->button_mask |= (1 << SDL_CONTROLLER_BUTTON_RIGHTSTICK); - ++nbuttons; - } - if ([gamepad respondsToSelector:@selector(buttonOptions)] && gamepad.buttonOptions) { - device->button_mask |= (1 << SDL_CONTROLLER_BUTTON_BACK); - ++nbuttons; - } - BOOL has_direct_menu = [gamepad respondsToSelector:@selector(buttonMenu)] && gamepad.buttonMenu; -#if TARGET_OS_TV - /* On tvOS MFi controller menu button brings you to the home screen */ - if (is_MFi) { - has_direct_menu = FALSE; - } -#endif - device->button_mask |= (1 << SDL_CONTROLLER_BUTTON_START); - ++nbuttons; - if (!has_direct_menu) { - device->uses_pause_handler = SDL_TRUE; - } -#pragma clang diagnostic pop - - if (is_xbox) { - vendor = VENDOR_MICROSOFT; - product = 0x02E0; /* Assume Xbox One S BLE Controller unless/until GCController flows VID/PID */ - } else if (is_ps4) { - vendor = VENDOR_SONY; - product = 0x09CC; /* Assume DS4 Slim unless/until GCController flows VID/PID */ - } else { - vendor = VENDOR_APPLE; - product = 1; - subtype = 1; - } - - device->naxes = 6; /* 2 thumbsticks and 2 triggers */ - device->nhats = 1; /* d-pad */ - device->nbuttons = nbuttons; - - } else if (controller.gamepad) { - int nbuttons = 0; - - /* These buttons are part of the original MFi spec */ - device->button_mask |= (1 << SDL_CONTROLLER_BUTTON_A); - device->button_mask |= (1 << SDL_CONTROLLER_BUTTON_B); - device->button_mask |= (1 << SDL_CONTROLLER_BUTTON_X); - device->button_mask |= (1 << SDL_CONTROLLER_BUTTON_Y); - device->button_mask |= (1 << SDL_CONTROLLER_BUTTON_LEFTSHOULDER); - device->button_mask |= (1 << SDL_CONTROLLER_BUTTON_RIGHTSHOULDER); - device->button_mask |= (1 << SDL_CONTROLLER_BUTTON_START); - nbuttons += 7; - device->uses_pause_handler = SDL_TRUE; - - vendor = VENDOR_APPLE; - product = 2; - subtype = 2; - device->naxes = 0; /* no traditional analog inputs */ - device->nhats = 1; /* d-pad */ - device->nbuttons = nbuttons; - } -#if TARGET_OS_TV - else if (controller.microGamepad) { - int nbuttons = 0; - - device->button_mask |= (1 << SDL_CONTROLLER_BUTTON_A); - device->button_mask |= (1 << SDL_CONTROLLER_BUTTON_B); /* Button X on microGamepad */ - nbuttons += 2; - - device->button_mask |= (1 << SDL_CONTROLLER_BUTTON_START); - ++nbuttons; - device->uses_pause_handler = SDL_TRUE; - - vendor = VENDOR_APPLE; - product = 3; - subtype = 3; - device->naxes = 2; /* treat the touch surface as two axes */ - device->nhats = 0; /* apparently the touch surface-as-dpad is buggy */ - device->nbuttons = nbuttons; - - controller.microGamepad.allowsRotation = SDL_GetHintBoolean(SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION, SDL_FALSE); - } -#endif /* TARGET_OS_TV */ - - /* We only need 16 bits for each of these; space them out to fill 128. */ - /* Byteswap so devices get same GUID on little/big endian platforms. */ - *guid16++ = SDL_SwapLE16(SDL_HARDWARE_BUS_BLUETOOTH); - *guid16++ = 0; - *guid16++ = SDL_SwapLE16(vendor); - *guid16++ = 0; - *guid16++ = SDL_SwapLE16(product); - *guid16++ = 0; - - *guid16++ = SDL_SwapLE16(device->button_mask); - - if (subtype != 0) { - /* Note that this is an MFI controller and what subtype it is */ - device->guid.data[14] = 'm'; - device->guid.data[15] = subtype; - } - - /* This will be set when the first button press of the controller is - * detected. */ - controller.playerIndex = -1; - -#endif /* SDL_JOYSTICK_MFI */ -} - -static void -IOS_AddJoystickDevice(GCController *controller, SDL_bool accelerometer) -{ - SDL_JoystickDeviceItem *device = deviceList; - -#if TARGET_OS_TV - if (!SDL_GetHintBoolean(SDL_HINT_TV_REMOTE_AS_JOYSTICK, SDL_TRUE)) { - /* Ignore devices that aren't actually controllers (e.g. remotes), they'll be handled as keyboard input */ - if (controller && !controller.extendedGamepad && !controller.gamepad && controller.microGamepad) { - return; - } - } -#endif - - while (device != NULL) { - if (device->controller == controller) { - return; - } - device = device->next; - } - - device = (SDL_JoystickDeviceItem *) SDL_calloc(1, sizeof(SDL_JoystickDeviceItem)); - if (device == NULL) { - return; - } - - device->accelerometer = accelerometer; - device->instance_id = SDL_GetNextJoystickInstanceID(); - - if (accelerometer) { -#if TARGET_OS_TV - SDL_free(device); - return; -#else - device->name = SDL_strdup(accelerometerName); - device->naxes = 3; /* Device acceleration in the x, y, and z axes. */ - device->nhats = 0; - device->nbuttons = 0; - - /* Use the accelerometer name as a GUID. */ - SDL_memcpy(&device->guid.data, device->name, SDL_min(sizeof(SDL_JoystickGUID), SDL_strlen(device->name))); -#endif /* TARGET_OS_TV */ - } else if (controller) { - IOS_AddMFIJoystickDevice(device, controller); - } - - if (deviceList == NULL) { - deviceList = device; - } else { - SDL_JoystickDeviceItem *lastdevice = deviceList; - while (lastdevice->next != NULL) { - lastdevice = lastdevice->next; - } - lastdevice->next = device; - } - - ++numjoysticks; - - SDL_PrivateJoystickAdded(device->instance_id); -} - -static SDL_JoystickDeviceItem * -IOS_RemoveJoystickDevice(SDL_JoystickDeviceItem *device) -{ - SDL_JoystickDeviceItem *prev = NULL; - SDL_JoystickDeviceItem *next = NULL; - SDL_JoystickDeviceItem *item = deviceList; - - if (device == NULL) { - return NULL; - } - - next = device->next; - - while (item != NULL) { - if (item == device) { - break; - } - prev = item; - item = item->next; - } - - /* Unlink the device item from the device list. */ - if (prev) { - prev->next = device->next; - } else if (device == deviceList) { - deviceList = device->next; - } - - if (device->joystick) { - device->joystick->hwdata = NULL; - } - -#ifdef SDL_JOYSTICK_MFI - @autoreleasepool { - if (device->controller) { - /* The controller was explicitly retained in the struct, so it - * should be explicitly released before freeing the struct. */ - GCController *controller = CFBridgingRelease((__bridge CFTypeRef)(device->controller)); - controller.controllerPausedHandler = nil; - device->controller = nil; - } - } -#endif /* SDL_JOYSTICK_MFI */ - - --numjoysticks; - - SDL_PrivateJoystickRemoved(device->instance_id); - - SDL_free(device->name); - SDL_free(device); - - return next; -} - -#if TARGET_OS_TV -static void SDLCALL -SDL_AppleTVRemoteRotationHintChanged(void *udata, const char *name, const char *oldValue, const char *newValue) -{ - BOOL allowRotation = newValue != NULL && *newValue != '0'; - - @autoreleasepool { - for (GCController *controller in [GCController controllers]) { - if (controller.microGamepad) { - controller.microGamepad.allowsRotation = allowRotation; - } - } - } -} -#endif /* TARGET_OS_TV */ - -static int -IOS_JoystickInit(void) -{ - @autoreleasepool { - NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; - -#if !TARGET_OS_TV - if (SDL_GetHintBoolean(SDL_HINT_ACCELEROMETER_AS_JOYSTICK, SDL_TRUE)) { - /* Default behavior, accelerometer as joystick */ - IOS_AddJoystickDevice(nil, SDL_TRUE); - } -#endif /* !TARGET_OS_TV */ - -#ifdef SDL_JOYSTICK_MFI - /* GameController.framework was added in iOS 7. */ - if (![GCController class]) { - return 0; - } - - for (GCController *controller in [GCController controllers]) { - IOS_AddJoystickDevice(controller, SDL_FALSE); - } - -#if TARGET_OS_TV - SDL_AddHintCallback(SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION, - SDL_AppleTVRemoteRotationHintChanged, NULL); -#endif /* TARGET_OS_TV */ - - connectObserver = [center addObserverForName:GCControllerDidConnectNotification - object:nil - queue:nil - usingBlock:^(NSNotification *note) { - GCController *controller = note.object; - IOS_AddJoystickDevice(controller, SDL_FALSE); - }]; - - disconnectObserver = [center addObserverForName:GCControllerDidDisconnectNotification - object:nil - queue:nil - usingBlock:^(NSNotification *note) { - GCController *controller = note.object; - SDL_JoystickDeviceItem *device = deviceList; - while (device != NULL) { - if (device->controller == controller) { - IOS_RemoveJoystickDevice(device); - break; - } - device = device->next; - } - }]; -#endif /* SDL_JOYSTICK_MFI */ - } - - return 0; -} - -static int -IOS_JoystickGetCount(void) -{ - return numjoysticks; -} - -static void -IOS_JoystickDetect(void) -{ -} - -static const char * -IOS_JoystickGetDeviceName(int device_index) -{ - SDL_JoystickDeviceItem *device = GetDeviceForIndex(device_index); - return device ? device->name : "Unknown"; -} - -static int -IOS_JoystickGetDevicePlayerIndex(int device_index) -{ - SDL_JoystickDeviceItem *device = GetDeviceForIndex(device_index); - return device ? (int)device->controller.playerIndex : -1; -} - -static void -IOS_JoystickSetDevicePlayerIndex(int device_index, int player_index) -{ - SDL_JoystickDeviceItem *device = GetDeviceForIndex(device_index); - if (device) { - device->controller.playerIndex = player_index; - } -} - -static SDL_JoystickGUID -IOS_JoystickGetDeviceGUID( int device_index ) -{ - SDL_JoystickDeviceItem *device = GetDeviceForIndex(device_index); - SDL_JoystickGUID guid; - if (device) { - guid = device->guid; - } else { - SDL_zero(guid); - } - return guid; -} - -static SDL_JoystickID -IOS_JoystickGetDeviceInstanceID(int device_index) -{ - SDL_JoystickDeviceItem *device = GetDeviceForIndex(device_index); - return device ? device->instance_id : -1; -} - -static int -IOS_JoystickOpen(SDL_Joystick * joystick, int device_index) -{ - SDL_JoystickDeviceItem *device = GetDeviceForIndex(device_index); - if (device == NULL) { - return SDL_SetError("Could not open Joystick: no hardware device for the specified index"); - } - - joystick->hwdata = device; - joystick->instance_id = device->instance_id; - - joystick->naxes = device->naxes; - joystick->nhats = device->nhats; - joystick->nbuttons = device->nbuttons; - joystick->nballs = 0; - - device->joystick = joystick; - - @autoreleasepool { - if (device->accelerometer) { -#if !TARGET_OS_TV - if (motionManager == nil) { - motionManager = [[CMMotionManager alloc] init]; - } - - /* Shorter times between updates can significantly increase CPU usage. */ - motionManager.accelerometerUpdateInterval = 0.1; - [motionManager startAccelerometerUpdates]; -#endif /* !TARGET_OS_TV */ - } else { -#ifdef SDL_JOYSTICK_MFI - if (device->uses_pause_handler) { - GCController *controller = device->controller; - controller.controllerPausedHandler = ^(GCController *c) { - if (joystick->hwdata) { - ++joystick->hwdata->num_pause_presses; - } - }; - } -#endif /* SDL_JOYSTICK_MFI */ - } - } - if (device->remote) { - ++SDL_AppleTVRemoteOpenedAsJoystick; - } - - return 0; -} - -static void -IOS_AccelerometerUpdate(SDL_Joystick * joystick) -{ -#if !TARGET_OS_TV - const float maxgforce = SDL_IPHONE_MAX_GFORCE; - const SInt16 maxsint16 = 0x7FFF; - CMAcceleration accel; - - @autoreleasepool { - if (!motionManager.isAccelerometerActive) { - return; - } - - accel = motionManager.accelerometerData.acceleration; - } - - /* - Convert accelerometer data from floating point to Sint16, which is what - the joystick system expects. - - To do the conversion, the data is first clamped onto the interval - [-SDL_IPHONE_MAX_G_FORCE, SDL_IPHONE_MAX_G_FORCE], then the data is multiplied - by MAX_SINT16 so that it is mapped to the full range of an Sint16. - - You can customize the clamped range of this function by modifying the - SDL_IPHONE_MAX_GFORCE macro in SDL_config_iphoneos.h. - - Once converted to Sint16, the accelerometer data no longer has coherent - units. You can convert the data back to units of g-force by multiplying - it in your application's code by SDL_IPHONE_MAX_GFORCE / 0x7FFF. - */ - - /* clamp the data */ - accel.x = SDL_min(SDL_max(accel.x, -maxgforce), maxgforce); - accel.y = SDL_min(SDL_max(accel.y, -maxgforce), maxgforce); - accel.z = SDL_min(SDL_max(accel.z, -maxgforce), maxgforce); - - /* pass in data mapped to range of SInt16 */ - SDL_PrivateJoystickAxis(joystick, 0, (accel.x / maxgforce) * maxsint16); - SDL_PrivateJoystickAxis(joystick, 1, -(accel.y / maxgforce) * maxsint16); - SDL_PrivateJoystickAxis(joystick, 2, (accel.z / maxgforce) * maxsint16); -#endif /* !TARGET_OS_TV */ -} - -#ifdef SDL_JOYSTICK_MFI -static Uint8 -IOS_MFIJoystickHatStateForDPad(GCControllerDirectionPad *dpad) -{ - Uint8 hat = 0; - - if (dpad.up.isPressed) { - hat |= SDL_HAT_UP; - } else if (dpad.down.isPressed) { - hat |= SDL_HAT_DOWN; - } - - if (dpad.left.isPressed) { - hat |= SDL_HAT_LEFT; - } else if (dpad.right.isPressed) { - hat |= SDL_HAT_RIGHT; - } - - if (hat == 0) { - return SDL_HAT_CENTERED; - } - - return hat; -} -#endif - -static void -IOS_MFIJoystickUpdate(SDL_Joystick * joystick) -{ -#if SDL_JOYSTICK_MFI - @autoreleasepool { - GCController *controller = joystick->hwdata->controller; - Uint8 hatstate = SDL_HAT_CENTERED; - int i; - int pause_button_index = 0; - - if (controller.extendedGamepad) { - GCExtendedGamepad *gamepad = controller.extendedGamepad; - - /* Axis order matches the XInput Windows mappings. */ - Sint16 axes[] = { - (Sint16) (gamepad.leftThumbstick.xAxis.value * 32767), - (Sint16) (gamepad.leftThumbstick.yAxis.value * -32767), - (Sint16) ((gamepad.leftTrigger.value * 65535) - 32768), - (Sint16) (gamepad.rightThumbstick.xAxis.value * 32767), - (Sint16) (gamepad.rightThumbstick.yAxis.value * -32767), - (Sint16) ((gamepad.rightTrigger.value * 65535) - 32768), - }; - - /* Button order matches the XInput Windows mappings. */ - Uint8 buttons[joystick->nbuttons]; - int button_count = 0; - - /* These buttons are part of the original MFi spec */ - buttons[button_count++] = gamepad.buttonA.isPressed; - buttons[button_count++] = gamepad.buttonB.isPressed; - buttons[button_count++] = gamepad.buttonX.isPressed; - buttons[button_count++] = gamepad.buttonY.isPressed; - buttons[button_count++] = gamepad.leftShoulder.isPressed; - buttons[button_count++] = gamepad.rightShoulder.isPressed; - - /* These buttons are available on some newer controllers */ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wunguarded-availability-new" - if (joystick->hwdata->button_mask & (1 << SDL_CONTROLLER_BUTTON_LEFTSTICK)) { - buttons[button_count++] = gamepad.leftThumbstickButton.isPressed; - } - if (joystick->hwdata->button_mask & (1 << SDL_CONTROLLER_BUTTON_RIGHTSTICK)) { - buttons[button_count++] = gamepad.rightThumbstickButton.isPressed; - } - if (joystick->hwdata->button_mask & (1 << SDL_CONTROLLER_BUTTON_BACK)) { - buttons[button_count++] = gamepad.buttonOptions.isPressed; - } - /* This must be the last button, so we can optionally handle it with pause_button_index below */ - if (joystick->hwdata->button_mask & (1 << SDL_CONTROLLER_BUTTON_START)) { - if (joystick->hwdata->uses_pause_handler) { - pause_button_index = button_count; - buttons[button_count++] = joystick->delayed_guide_button; - } else { - buttons[button_count++] = gamepad.buttonMenu.isPressed; - } - } -#pragma clang diagnostic pop - - hatstate = IOS_MFIJoystickHatStateForDPad(gamepad.dpad); - - for (i = 0; i < SDL_arraysize(axes); i++) { - SDL_PrivateJoystickAxis(joystick, i, axes[i]); - } - - for (i = 0; i < button_count; i++) { - SDL_PrivateJoystickButton(joystick, i, buttons[i]); - } - } else if (controller.gamepad) { - GCGamepad *gamepad = controller.gamepad; - - /* Button order matches the XInput Windows mappings. */ - Uint8 buttons[joystick->nbuttons]; - int button_count = 0; - buttons[button_count++] = gamepad.buttonA.isPressed; - buttons[button_count++] = gamepad.buttonB.isPressed; - buttons[button_count++] = gamepad.buttonX.isPressed; - buttons[button_count++] = gamepad.buttonY.isPressed; - buttons[button_count++] = gamepad.leftShoulder.isPressed; - buttons[button_count++] = gamepad.rightShoulder.isPressed; - pause_button_index = button_count; - buttons[button_count++] = joystick->delayed_guide_button; - - hatstate = IOS_MFIJoystickHatStateForDPad(gamepad.dpad); - - for (i = 0; i < button_count; i++) { - SDL_PrivateJoystickButton(joystick, i, buttons[i]); - } - } -#if TARGET_OS_TV - else if (controller.microGamepad) { - GCMicroGamepad *gamepad = controller.microGamepad; - - Sint16 axes[] = { - (Sint16) (gamepad.dpad.xAxis.value * 32767), - (Sint16) (gamepad.dpad.yAxis.value * -32767), - }; - - for (i = 0; i < SDL_arraysize(axes); i++) { - SDL_PrivateJoystickAxis(joystick, i, axes[i]); - } - - Uint8 buttons[joystick->nbuttons]; - int button_count = 0; - buttons[button_count++] = gamepad.buttonA.isPressed; - buttons[button_count++] = gamepad.buttonX.isPressed; -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wunguarded-availability-new" - /* This must be the last button, so we can optionally handle it with pause_button_index below */ - if (joystick->hwdata->button_mask & (1 << SDL_CONTROLLER_BUTTON_START)) { - if (joystick->hwdata->uses_pause_handler) { - pause_button_index = button_count; - buttons[button_count++] = joystick->delayed_guide_button; - } else { - buttons[button_count++] = gamepad.buttonMenu.isPressed; - } - } -#pragma clang diagnostic pop - - for (i = 0; i < button_count; i++) { - SDL_PrivateJoystickButton(joystick, i, buttons[i]); - } - } -#endif /* TARGET_OS_TV */ - - if (joystick->nhats > 0) { - SDL_PrivateJoystickHat(joystick, 0, hatstate); - } - - if (joystick->hwdata->uses_pause_handler) { - for (i = 0; i < joystick->hwdata->num_pause_presses; i++) { - SDL_PrivateJoystickButton(joystick, pause_button_index, SDL_PRESSED); - SDL_PrivateJoystickButton(joystick, pause_button_index, SDL_RELEASED); - } - joystick->hwdata->num_pause_presses = 0; - } - } -#endif /* SDL_JOYSTICK_MFI */ -} - -static int -IOS_JoystickRumble(SDL_Joystick * joystick, Uint16 low_frequency_rumble, Uint16 high_frequency_rumble) -{ - return SDL_Unsupported(); -} - -static void -IOS_JoystickUpdate(SDL_Joystick * joystick) -{ - SDL_JoystickDeviceItem *device = joystick->hwdata; - - if (device == NULL) { - return; - } - - if (device->accelerometer) { - IOS_AccelerometerUpdate(joystick); - } else if (device->controller) { - IOS_MFIJoystickUpdate(joystick); - } -} - -static void -IOS_JoystickClose(SDL_Joystick * joystick) -{ - SDL_JoystickDeviceItem *device = joystick->hwdata; - - if (device == NULL) { - return; - } - - device->joystick = NULL; - - @autoreleasepool { - if (device->accelerometer) { -#if !TARGET_OS_TV - [motionManager stopAccelerometerUpdates]; -#endif /* !TARGET_OS_TV */ - } else if (device->controller) { -#ifdef SDL_JOYSTICK_MFI - GCController *controller = device->controller; - controller.controllerPausedHandler = nil; - controller.playerIndex = -1; -#endif - } - } - if (device->remote) { - --SDL_AppleTVRemoteOpenedAsJoystick; - } -} - -static void -IOS_JoystickQuit(void) -{ - @autoreleasepool { -#ifdef SDL_JOYSTICK_MFI - NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; - - if (connectObserver) { - [center removeObserver:connectObserver name:GCControllerDidConnectNotification object:nil]; - connectObserver = nil; - } - - if (disconnectObserver) { - [center removeObserver:disconnectObserver name:GCControllerDidDisconnectNotification object:nil]; - disconnectObserver = nil; - } - -#if TARGET_OS_TV - SDL_DelHintCallback(SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION, - SDL_AppleTVRemoteRotationHintChanged, NULL); -#endif /* TARGET_OS_TV */ -#endif /* SDL_JOYSTICK_MFI */ - - while (deviceList != NULL) { - IOS_RemoveJoystickDevice(deviceList); - } - -#if !TARGET_OS_TV - motionManager = nil; -#endif /* !TARGET_OS_TV */ - } - - numjoysticks = 0; -} - -SDL_JoystickDriver SDL_IOS_JoystickDriver = -{ - IOS_JoystickInit, - IOS_JoystickGetCount, - IOS_JoystickDetect, - IOS_JoystickGetDeviceName, - IOS_JoystickGetDevicePlayerIndex, - IOS_JoystickSetDevicePlayerIndex, - IOS_JoystickGetDeviceGUID, - IOS_JoystickGetDeviceInstanceID, - IOS_JoystickOpen, - IOS_JoystickRumble, - IOS_JoystickUpdate, - IOS_JoystickClose, - IOS_JoystickQuit, -}; - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/externals/SDL/src/joystick/iphoneos/SDL_sysjoystick_c.h b/externals/SDL/src/joystick/iphoneos/SDL_sysjoystick_c.h deleted file mode 100755 index 0ae00edbd..000000000 --- a/externals/SDL/src/joystick/iphoneos/SDL_sysjoystick_c.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2020 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ -#include "../../SDL_internal.h" - -#ifndef SDL_JOYSTICK_IOS_H -#define SDL_JOYSTICK_IOS_H - -#include "SDL_stdinc.h" -#include "../SDL_sysjoystick.h" - -@class GCController; - -typedef struct joystick_hwdata -{ - SDL_bool accelerometer; - SDL_bool remote; - - GCController __unsafe_unretained *controller; - SDL_bool uses_pause_handler; - int num_pause_presses; - Uint32 pause_button_down_time; - - char *name; - SDL_Joystick *joystick; - SDL_JoystickID instance_id; - SDL_JoystickGUID guid; - - int naxes; - int nbuttons; - int nhats; - Uint16 button_mask; - - struct joystick_hwdata *next; -} joystick_hwdata; - -typedef joystick_hwdata SDL_JoystickDeviceItem; - -#endif /* SDL_JOYSTICK_IOS_H */ - - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/externals/SDL/src/joystick/windows/SDL_mmjoystick.c b/externals/SDL/src/joystick/windows/SDL_mmjoystick.c deleted file mode 100755 index 613c4068d..000000000 --- a/externals/SDL/src/joystick/windows/SDL_mmjoystick.c +++ /dev/null @@ -1,515 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2021 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ -#include "../../SDL_internal.h" - -#ifdef SDL_JOYSTICK_WINMM - -/* Win32 MultiMedia Joystick driver, contributed by Andrei de A. Formiga */ - -#include "../../core/windows/SDL_windows.h" -#include -#include - -#include "SDL_events.h" -#include "SDL_joystick.h" -#include "../SDL_sysjoystick.h" -#include "../SDL_joystick_c.h" - -#ifdef REGSTR_VAL_JOYOEMNAME -#undef REGSTR_VAL_JOYOEMNAME -#endif -#define REGSTR_VAL_JOYOEMNAME "OEMName" - -#define MAX_JOYSTICKS 16 -#define MAX_AXES 6 /* each joystick can have up to 6 axes */ -#define MAX_BUTTONS 32 /* and 32 buttons */ -#define JOY_BUTTON_FLAG(n) (1<instance_id = device_index; - joystick->hwdata = - (struct joystick_hwdata *) SDL_malloc(sizeof(*joystick->hwdata)); - if (joystick->hwdata == NULL) { - return SDL_OutOfMemory(); - } - SDL_memset(joystick->hwdata, 0, sizeof(*joystick->hwdata)); - - /* set hardware data */ - joystick->hwdata->id = SYS_JoystickID[index]; - for (i = 0; i < MAX_AXES; ++i) { - if ((i < 2) || (SYS_Joystick[index].wCaps & caps_flags[i - 2])) { - joystick->hwdata->transaxis[i].offset = SDL_JOYSTICK_AXIS_MIN - axis_min[i]; - joystick->hwdata->transaxis[i].scale = - (float) (SDL_JOYSTICK_AXIS_MAX - SDL_JOYSTICK_AXIS_MIN) / (axis_max[i] - axis_min[i]); - } else { - joystick->hwdata->transaxis[i].offset = 0; - joystick->hwdata->transaxis[i].scale = 1.0; /* Just in case */ - } - } - - /* fill nbuttons, naxes, and nhats fields */ - joystick->nbuttons = SYS_Joystick[index].wNumButtons; - joystick->naxes = SYS_Joystick[index].wNumAxes; - if (SYS_Joystick[index].wCaps & JOYCAPS_HASPOV) { - joystick->nhats = 1; - } else { - joystick->nhats = 0; - } - return (0); -} - -static Uint8 -TranslatePOV(DWORD value) -{ - Uint8 pos; - - pos = SDL_HAT_CENTERED; - if (value != JOY_POVCENTERED) { - if ((value > JOY_POVLEFT) || (value < JOY_POVRIGHT)) { - pos |= SDL_HAT_UP; - } - if ((value > JOY_POVFORWARD) && (value < JOY_POVBACKWARD)) { - pos |= SDL_HAT_RIGHT; - } - if ((value > JOY_POVRIGHT) && (value < JOY_POVLEFT)) { - pos |= SDL_HAT_DOWN; - } - if (value > JOY_POVBACKWARD) { - pos |= SDL_HAT_LEFT; - } - } - return (pos); -} - -static int -WINMM_JoystickRumble(SDL_Joystick *joystick, Uint16 low_frequency_rumble, Uint16 high_frequency_rumble) -{ - return SDL_Unsupported(); -} - -static int -WINMM_JoystickRumbleTriggers(SDL_Joystick *joystick, Uint16 left_rumble, Uint16 right_rumble) -{ - return SDL_Unsupported(); -} - -static SDL_bool WINMM_JoystickHasLED(SDL_Joystick *joystick) -{ - return SDL_FALSE; -} - -static int -WINMM_JoystickSetLED(SDL_Joystick *joystick, Uint8 red, Uint8 green, Uint8 blue) -{ - return SDL_Unsupported(); -} - -static int -WINMM_JoystickSendEffect(SDL_Joystick *joystick, const void *data, int size) -{ - return SDL_Unsupported(); -} - -static int WINMM_JoystickSetSensorsEnabled(SDL_Joystick *joystick, SDL_bool enabled) -{ - return SDL_Unsupported(); -} - -/* Function to update the state of a joystick - called as a device poll. - * This function shouldn't update the joystick structure directly, - * but instead should call SDL_PrivateJoystick*() to deliver events - * and update joystick device state. - */ -static void -WINMM_JoystickUpdate(SDL_Joystick *joystick) -{ - MMRESULT result; - int i; - DWORD flags[MAX_AXES] = { JOY_RETURNX, JOY_RETURNY, JOY_RETURNZ, - JOY_RETURNR, JOY_RETURNU, JOY_RETURNV - }; - DWORD pos[MAX_AXES]; - struct _transaxis *transaxis; - int value; - JOYINFOEX joyinfo; - - joyinfo.dwSize = sizeof(joyinfo); - joyinfo.dwFlags = JOY_RETURNALL | JOY_RETURNPOVCTS; - if (!joystick->hats) { - joyinfo.dwFlags &= ~(JOY_RETURNPOV | JOY_RETURNPOVCTS); - } - result = joyGetPosEx(joystick->hwdata->id, &joyinfo); - if (result != JOYERR_NOERROR) { - SetMMerror("joyGetPosEx", result); - return; - } - - /* joystick motion events */ - pos[0] = joyinfo.dwXpos; - pos[1] = joyinfo.dwYpos; - pos[2] = joyinfo.dwZpos; - pos[3] = joyinfo.dwRpos; - pos[4] = joyinfo.dwUpos; - pos[5] = joyinfo.dwVpos; - - transaxis = joystick->hwdata->transaxis; - for (i = 0; i < joystick->naxes; i++) { - if (joyinfo.dwFlags & flags[i]) { - value = (int) (((float) pos[i] + transaxis[i].offset) * transaxis[i].scale); - SDL_PrivateJoystickAxis(joystick, (Uint8) i, (Sint16) value); - } - } - - /* joystick button events */ - if (joyinfo.dwFlags & JOY_RETURNBUTTONS) { - for (i = 0; i < joystick->nbuttons; ++i) { - if (joyinfo.dwButtons & JOY_BUTTON_FLAG(i)) { - SDL_PrivateJoystickButton(joystick, (Uint8) i, SDL_PRESSED); - } else { - SDL_PrivateJoystickButton(joystick, (Uint8) i, SDL_RELEASED); - } - } - } - - /* joystick hat events */ - if (joyinfo.dwFlags & JOY_RETURNPOV) { - SDL_PrivateJoystickHat(joystick, 0, TranslatePOV(joyinfo.dwPOV)); - } -} - -/* Function to close a joystick after use */ -static void -WINMM_JoystickClose(SDL_Joystick *joystick) -{ - SDL_free(joystick->hwdata); -} - -/* Function to perform any system-specific joystick related cleanup */ -static void -WINMM_JoystickQuit(void) -{ - int i; - for (i = 0; i < MAX_JOYSTICKS; i++) { - SDL_free(SYS_JoystickName[i]); - SYS_JoystickName[i] = NULL; - } -} - -static SDL_bool -WINMM_JoystickGetGamepadMapping(int device_index, SDL_GamepadMapping *out) -{ - return SDL_FALSE; -} - - -/* implementation functions */ -void -SetMMerror(char *function, int code) -{ - static char *error; - static char errbuf[1024]; - - errbuf[0] = 0; - switch (code) { - case MMSYSERR_NODRIVER: - error = "Joystick driver not present"; - break; - - case MMSYSERR_INVALPARAM: - case JOYERR_PARMS: - error = "Invalid parameter(s)"; - break; - - case MMSYSERR_BADDEVICEID: - error = "Bad device ID"; - break; - - case JOYERR_UNPLUGGED: - error = "Joystick not attached"; - break; - - case JOYERR_NOCANDO: - error = "Can't capture joystick input"; - break; - - default: - SDL_snprintf(errbuf, SDL_arraysize(errbuf), - "%s: Unknown Multimedia system error: 0x%x", - function, code); - break; - } - - if (!errbuf[0]) { - SDL_snprintf(errbuf, SDL_arraysize(errbuf), "%s: %s", function, - error); - } - SDL_SetError("%s", errbuf); -} - -SDL_JoystickDriver SDL_WINMM_JoystickDriver = -{ - WINMM_JoystickInit, - WINMM_NumJoysticks, - WINMM_JoystickDetect, - WINMM_JoystickGetDeviceName, - WINMM_JoystickGetDevicePlayerIndex, - WINMM_JoystickSetDevicePlayerIndex, - WINMM_JoystickGetDeviceGUID, - WINMM_JoystickGetDeviceInstanceID, - WINMM_JoystickOpen, - WINMM_JoystickRumble, - WINMM_JoystickRumbleTriggers, - WINMM_JoystickHasLED, - WINMM_JoystickSetLED, - WINMM_JoystickSendEffect, - WINMM_JoystickSetSensorsEnabled, - WINMM_JoystickUpdate, - WINMM_JoystickClose, - WINMM_JoystickQuit, - WINMM_JoystickGetGamepadMapping -}; - -#endif /* SDL_JOYSTICK_WINMM */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/externals/SDL/src/render/vitagxm/shader_src/texture_tint_f.cg b/externals/SDL/src/render/vitagxm/shader_src/texture_tint_f.cg deleted file mode 100755 index 8b12a8067..000000000 --- a/externals/SDL/src/render/vitagxm/shader_src/texture_tint_f.cg +++ /dev/null @@ -1,4 +0,0 @@ -float4 main( float2 vTexcoord : TEXCOORD0, uniform sampler2D tex, uniform float4 uTintColor) -{ - return tex2D(tex, vTexcoord) * uTintColor; -} diff --git a/externals/SDL/src/thread/windows/SDL_syscond_srw.c b/externals/SDL/src/thread/windows/SDL_syscond_srw.c deleted file mode 100755 index 763a5465e..000000000 --- a/externals/SDL/src/thread/windows/SDL_syscond_srw.c +++ /dev/null @@ -1,282 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2021 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ -#include "../../SDL_internal.h" - -#include "SDL_hints.h" -#include "SDL_thread.h" - -#include "../generic/SDL_syscond_c.h" -#include "SDL_sysmutex_c.h" - -typedef SDL_cond * (*pfnSDL_CreateCond)(void); -typedef void (*pfnSDL_DestroyCond)(SDL_cond *); -typedef int (*pfnSDL_CondSignal)(SDL_cond *); -typedef int (*pfnSDL_CondBroadcast)(SDL_cond *); -typedef int (*pfnSDL_CondWait)(SDL_cond *, SDL_mutex *); -typedef int (*pfnSDL_CondWaitTimeout)(SDL_cond *, SDL_mutex *, Uint32); - -typedef struct SDL_cond_impl_t -{ - pfnSDL_CreateCond Create; - pfnSDL_DestroyCond Destroy; - pfnSDL_CondSignal Signal; - pfnSDL_CondBroadcast Broadcast; - pfnSDL_CondWait Wait; - pfnSDL_CondWaitTimeout WaitTimeout; -} SDL_cond_impl_t; - -/* Implementation will be chosen at runtime based on available Kernel features */ -static SDL_cond_impl_t SDL_cond_impl_active = {0}; - - -/** - * Native Windows Condition Variable (SRW Locks) - */ - -#ifndef CONDITION_VARIABLE_INIT -#define CONDITION_VARIABLE_INIT {0} -typedef struct CONDITION_VARIABLE { - PVOID Ptr; -} CONDITION_VARIABLE, *PCONDITION_VARIABLE; -#endif - -#if __WINRT__ -#define pWakeConditionVariable WakeConditionVariable -#define pWakeAllConditionVariable WakeAllConditionVariable -#define pSleepConditionVariableSRW SleepConditionVariableSRW -#else -typedef VOID(WINAPI *pfnWakeConditionVariable)(PCONDITION_VARIABLE); -typedef VOID(WINAPI *pfnWakeAllConditionVariable)(PCONDITION_VARIABLE); -typedef BOOL(WINAPI *pfnSleepConditionVariableSRW)(PCONDITION_VARIABLE, PSRWLOCK, DWORD, ULONG); - -static pfnWakeConditionVariable pWakeConditionVariable = NULL; -static pfnWakeAllConditionVariable pWakeAllConditionVariable = NULL; -static pfnSleepConditionVariableSRW pSleepConditionVariableSRW = NULL; -#endif - -typedef struct SDL_cond_srw -{ - CONDITION_VARIABLE cond; -} SDL_cond_srw; - - -static SDL_cond * -SDL_CreateCond_srw(void) -{ - SDL_cond_srw *cond; - - /* Relies on CONDITION_VARIABLE_INIT == 0. */ - cond = (SDL_cond_srw *) SDL_calloc(1, sizeof(*cond)); - if (!cond) { - SDL_OutOfMemory(); - } - - return (SDL_cond *)cond; -} - -static void -SDL_DestroyCond_srw(SDL_cond * cond) -{ - if (cond) { - /* There are no kernel allocated resources */ - SDL_free(cond); - } -} - -static int -SDL_CondSignal_srw(SDL_cond * _cond) -{ - SDL_cond_srw *cond = (SDL_cond_srw *)_cond; - if (!cond) { - return SDL_SetError("Passed a NULL condition variable"); - } - - pWakeConditionVariable(&cond->cond); - - return 0; -} - -static int -SDL_CondBroadcast_srw(SDL_cond * _cond) -{ - SDL_cond_srw *cond = (SDL_cond_srw *)_cond; - if (!cond) { - return SDL_SetError("Passed a NULL condition variable"); - } - - pWakeAllConditionVariable(&cond->cond); - - return 0; -} - -static int -SDL_CondWaitTimeout_srw(SDL_cond * _cond, SDL_mutex * _mutex, Uint32 ms) -{ - SDL_cond_srw *cond = (SDL_cond_srw *)_cond; - SDL_mutex_srw *mutex = (SDL_mutex_srw *)_mutex; - DWORD timeout; - int ret; - - if (!cond) { - return SDL_SetError("Passed a NULL condition variable"); - } - if (!mutex) { - return SDL_SetError("Passed a NULL mutex"); - } - - if (mutex->count != 1 || mutex->owner != GetCurrentThreadId()) { - return SDL_SetError("Passed mutex is not locked or locked recursively"); - } - - if (ms == SDL_MUTEX_MAXWAIT) { - timeout = INFINITE; - } else { - timeout = (DWORD) ms; - } - - /* The mutex must be updated to the released state */ - mutex->count = 0; - mutex->owner = 0; - - if (pSleepConditionVariableSRW(&cond->cond, &mutex->srw, timeout, 0) == FALSE) { - if (GetLastError() == ERROR_TIMEOUT) { - ret = SDL_MUTEX_TIMEDOUT; - } else { - ret = SDL_SetError("SleepConditionVariableSRW() failed"); - } - } else { - ret = 0; - } - - /* The mutex is owned by us again, regardless of status of the wait */ - SDL_assert(mutex->count == 0 && mutex->owner == 0); - mutex->count = 1; - mutex->owner = GetCurrentThreadId(); - - return ret; -} - -static int -SDL_CondWait_srw(SDL_cond * cond, SDL_mutex * mutex) { - return SDL_CondWaitTimeout_srw(cond, mutex, SDL_MUTEX_MAXWAIT); -} - -static const SDL_cond_impl_t SDL_cond_impl_srw = -{ - &SDL_CreateCond_srw, - &SDL_DestroyCond_srw, - &SDL_CondSignal_srw, - &SDL_CondBroadcast_srw, - &SDL_CondWait_srw, - &SDL_CondWaitTimeout_srw, -}; - -/** - * Generic Condition Variable implementation using SDL_mutex and SDL_sem - */ - -static const SDL_cond_impl_t SDL_cond_impl_generic = -{ - &SDL_CreateCond_generic, - &SDL_DestroyCond_generic, - &SDL_CondSignal_generic, - &SDL_CondBroadcast_generic, - &SDL_CondWait_generic, - &SDL_CondWaitTimeout_generic, -}; - - -SDL_cond * -SDL_CreateCond(void) -{ - if (SDL_cond_impl_active.Create == NULL) { - /* Default to generic implementation, works with all mutex implementations */ - const SDL_cond_impl_t * impl = &SDL_cond_impl_generic; - - if (SDL_mutex_impl_active.Type == SDL_MUTEX_INVALID) { - /* The mutex implementation isn't decided yet, trigger it */ - SDL_mutex *mutex = SDL_CreateMutex(); - if (!mutex) { - return NULL; - } - SDL_DestroyMutex(mutex); - - SDL_assert(SDL_mutex_impl_active.Type != SDL_MUTEX_INVALID); - } - - /* It is required SRW Locks are used */ - if (SDL_mutex_impl_active.Type == SDL_MUTEX_SRW) { -#if __WINRT__ - /* Link statically on this platform */ - impl = &SDL_cond_impl_srw; -#else - HMODULE kernel32 = GetModuleHandle(TEXT("kernel32.dll")); - if (kernel32) { - pWakeConditionVariable = (pfnWakeConditionVariable) GetProcAddress(kernel32, "WakeConditionVariable"); - pWakeAllConditionVariable = (pfnWakeAllConditionVariable) GetProcAddress(kernel32, "WakeAllConditionVariable"); - pSleepConditionVariableSRW = (pfnSleepConditionVariableSRW) GetProcAddress(kernel32, "SleepConditionVariableSRW"); - if (pWakeConditionVariable && pWakeAllConditionVariable && pSleepConditionVariableSRW) { - /* Use the Windows provided API */ - impl = &SDL_cond_impl_srw; - } - } - if (!(kernel32 && pWakeConditionVariable && pWakeAllConditionVariable && pSleepConditionVariableSRW)) { - SDL_LogWarn(SDL_LOG_CATEGORY_SYSTEM, "Could not load required imports for SRW Condition Variables although SRW Locks are used!"); - } -#endif - } - - SDL_memcpy(&SDL_cond_impl_active, impl, sizeof(SDL_cond_impl_active)); - } - return SDL_cond_impl_active.Create(); -} - -void -SDL_DestroyCond(SDL_cond * cond) -{ - SDL_cond_impl_active.Destroy(cond); -} - -int -SDL_CondSignal(SDL_cond * cond) -{ - return SDL_cond_impl_active.Signal(cond); -} - -int -SDL_CondBroadcast(SDL_cond * cond) -{ - return SDL_cond_impl_active.Broadcast(cond); -} - -int -SDL_CondWaitTimeout(SDL_cond * cond, SDL_mutex * mutex, Uint32 ms) -{ - return SDL_cond_impl_active.WaitTimeout(cond, mutex, ms); -} - -int -SDL_CondWait(SDL_cond * cond, SDL_mutex * mutex) -{ - return SDL_cond_impl_active.Wait(cond, mutex); -} - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/externals/SDL/src/video/cocoa/SDL_cocoamousetap.h b/externals/SDL/src/video/cocoa/SDL_cocoamousetap.h deleted file mode 100755 index 3a1a0721b..000000000 --- a/externals/SDL/src/video/cocoa/SDL_cocoamousetap.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2020 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ -#include "../../SDL_internal.h" - -#ifndef SDL_cocoamousetap_h_ -#define SDL_cocoamousetap_h_ - -#include "SDL_cocoamouse.h" - -extern void Cocoa_InitMouseEventTap(SDL_MouseData *driverdata); -extern void Cocoa_EnableMouseEventTap(SDL_MouseData *driverdata, SDL_bool enabled); -extern void Cocoa_QuitMouseEventTap(SDL_MouseData *driverdata); - -#endif /* SDL_cocoamousetap_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/externals/SDL/src/video/cocoa/SDL_cocoamousetap.m b/externals/SDL/src/video/cocoa/SDL_cocoamousetap.m deleted file mode 100755 index 953c81a7b..000000000 --- a/externals/SDL/src/video/cocoa/SDL_cocoamousetap.m +++ /dev/null @@ -1,286 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2020 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ -#include "../../SDL_internal.h" - -#if SDL_VIDEO_DRIVER_COCOA - -#include "SDL_cocoamousetap.h" - -/* Event taps are forbidden in the Mac App Store, so we can only enable this - * code if your app doesn't need to ship through the app store. - * This code makes it so that a grabbed cursor cannot "leak" a mouse click - * past the edge of the window if moving the cursor too fast. - */ -#if SDL_MAC_NO_SANDBOX - -#include "SDL_keyboard.h" -#include "SDL_cocoavideo.h" -#include "../../thread/SDL_systhread.h" - -#include "../../events/SDL_mouse_c.h" - -typedef struct { - CFMachPortRef tap; - CFRunLoopRef runloop; - CFRunLoopSourceRef runloopSource; - SDL_Thread *thread; - SDL_sem *runloopStartedSemaphore; -} SDL_MouseEventTapData; - -static const CGEventMask movementEventsMask = - CGEventMaskBit(kCGEventLeftMouseDragged) - | CGEventMaskBit(kCGEventRightMouseDragged) - | CGEventMaskBit(kCGEventMouseMoved); - -static const CGEventMask allGrabbedEventsMask = - CGEventMaskBit(kCGEventLeftMouseDown) | CGEventMaskBit(kCGEventLeftMouseUp) - | CGEventMaskBit(kCGEventRightMouseDown) | CGEventMaskBit(kCGEventRightMouseUp) - | CGEventMaskBit(kCGEventOtherMouseDown) | CGEventMaskBit(kCGEventOtherMouseUp) - | CGEventMaskBit(kCGEventLeftMouseDragged) | CGEventMaskBit(kCGEventRightMouseDragged) - | CGEventMaskBit(kCGEventMouseMoved); - -static CGEventRef -Cocoa_MouseTapCallback(CGEventTapProxy proxy, CGEventType type, CGEventRef event, void *refcon) -{ - SDL_MouseEventTapData *tapdata = (SDL_MouseEventTapData*)refcon; - SDL_Mouse *mouse = SDL_GetMouse(); - SDL_Window *window = SDL_GetKeyboardFocus(); - NSWindow *nswindow; - NSRect windowRect; - CGPoint eventLocation; - - switch (type) { - case kCGEventTapDisabledByTimeout: - { - CGEventTapEnable(tapdata->tap, true); - return NULL; - } - case kCGEventTapDisabledByUserInput: - { - return NULL; - } - default: - break; - } - - - if (!window || !mouse) { - return event; - } - - if (mouse->relative_mode) { - return event; - } - - if (!(window->flags & SDL_WINDOW_INPUT_GRABBED)) { - return event; - } - - /* This is the same coordinate system as Cocoa uses. */ - nswindow = ((SDL_WindowData *) window->driverdata)->nswindow; - eventLocation = CGEventGetUnflippedLocation(event); - windowRect = [nswindow contentRectForFrameRect:[nswindow frame]]; - - if (!NSMouseInRect(NSPointFromCGPoint(eventLocation), windowRect, NO)) { - - /* This is in CGs global screenspace coordinate system, which has a - * flipped Y. - */ - CGPoint newLocation = CGEventGetLocation(event); - - if (eventLocation.x < NSMinX(windowRect)) { - newLocation.x = NSMinX(windowRect); - } else if (eventLocation.x >= NSMaxX(windowRect)) { - newLocation.x = NSMaxX(windowRect) - 1.0; - } - - if (eventLocation.y <= NSMinY(windowRect)) { - newLocation.y -= (NSMinY(windowRect) - eventLocation.y + 1); - } else if (eventLocation.y > NSMaxY(windowRect)) { - newLocation.y += (eventLocation.y - NSMaxY(windowRect)); - } - - CGWarpMouseCursorPosition(newLocation); - CGAssociateMouseAndMouseCursorPosition(YES); - - if ((CGEventMaskBit(type) & movementEventsMask) == 0) { - /* For click events, we just constrain the event to the window, so - * no other app receives the click event. We can't due the same to - * movement events, since they mean that our warp cursor above - * behaves strangely. - */ - CGEventSetLocation(event, newLocation); - } - } - - return event; -} - -static void -SemaphorePostCallback(CFRunLoopTimerRef timer, void *info) -{ - SDL_SemPost((SDL_sem*)info); -} - -static int -Cocoa_MouseTapThread(void *data) -{ - SDL_MouseEventTapData *tapdata = (SDL_MouseEventTapData*)data; - - /* Tap was created on main thread but we own it now. */ - CFMachPortRef eventTap = tapdata->tap; - if (eventTap) { - /* Try to create a runloop source we can schedule. */ - CFRunLoopSourceRef runloopSource = CFMachPortCreateRunLoopSource(kCFAllocatorDefault, eventTap, 0); - if (runloopSource) { - tapdata->runloopSource = runloopSource; - } else { - CFRelease(eventTap); - SDL_SemPost(tapdata->runloopStartedSemaphore); - /* TODO: Both here and in the return below, set some state in - * tapdata to indicate that initialization failed, which we should - * check in InitMouseEventTap, after we move the semaphore check - * from Quit to Init. - */ - return 1; - } - } else { - SDL_SemPost(tapdata->runloopStartedSemaphore); - return 1; - } - - tapdata->runloop = CFRunLoopGetCurrent(); - CFRunLoopAddSource(tapdata->runloop, tapdata->runloopSource, kCFRunLoopCommonModes); - CFRunLoopTimerContext context = {.info = tapdata->runloopStartedSemaphore}; - /* We signal the runloop started semaphore *after* the run loop has started, indicating it's safe to CFRunLoopStop it. */ - CFRunLoopTimerRef timer = CFRunLoopTimerCreate(kCFAllocatorDefault, CFAbsoluteTimeGetCurrent(), 0, 0, 0, &SemaphorePostCallback, &context); - CFRunLoopAddTimer(tapdata->runloop, timer, kCFRunLoopCommonModes); - CFRelease(timer); - - /* Run the event loop to handle events in the event tap. */ - CFRunLoopRun(); - /* Make sure this is signaled so that SDL_QuitMouseEventTap knows it can safely SDL_WaitThread for us. */ - if (SDL_SemValue(tapdata->runloopStartedSemaphore) < 1) { - SDL_SemPost(tapdata->runloopStartedSemaphore); - } - CFRunLoopRemoveSource(tapdata->runloop, tapdata->runloopSource, kCFRunLoopCommonModes); - - /* Clean up. */ - CGEventTapEnable(tapdata->tap, false); - CFRelease(tapdata->runloopSource); - CFRelease(tapdata->tap); - tapdata->runloopSource = NULL; - tapdata->tap = NULL; - - return 0; -} - -void -Cocoa_InitMouseEventTap(SDL_MouseData* driverdata) -{ - SDL_MouseEventTapData *tapdata; - driverdata->tapdata = SDL_calloc(1, sizeof(SDL_MouseEventTapData)); - tapdata = (SDL_MouseEventTapData*)driverdata->tapdata; - - tapdata->runloopStartedSemaphore = SDL_CreateSemaphore(0); - if (tapdata->runloopStartedSemaphore) { - tapdata->tap = CGEventTapCreate(kCGSessionEventTap, kCGHeadInsertEventTap, - kCGEventTapOptionDefault, allGrabbedEventsMask, - &Cocoa_MouseTapCallback, tapdata); - if (tapdata->tap) { - /* Tap starts disabled, until app requests mouse grab */ - CGEventTapEnable(tapdata->tap, false); - tapdata->thread = SDL_CreateThreadInternal(&Cocoa_MouseTapThread, "Event Tap Loop", 512 * 1024, tapdata); - if (tapdata->thread) { - /* Success - early out. Ownership transferred to thread. */ - return; - } - CFRelease(tapdata->tap); - } - SDL_DestroySemaphore(tapdata->runloopStartedSemaphore); - } - SDL_free(driverdata->tapdata); - driverdata->tapdata = NULL; -} - -void -Cocoa_EnableMouseEventTap(SDL_MouseData *driverdata, SDL_bool enabled) -{ - SDL_MouseEventTapData *tapdata = (SDL_MouseEventTapData*)driverdata->tapdata; - if (tapdata && tapdata->tap) - { - CGEventTapEnable(tapdata->tap, !!enabled); - } -} - -void -Cocoa_QuitMouseEventTap(SDL_MouseData *driverdata) -{ - SDL_MouseEventTapData *tapdata = (SDL_MouseEventTapData*)driverdata->tapdata; - int status; - - if (tapdata == NULL) { - /* event tap was already cleaned up (possibly due to CGEventTapCreate - * returning null.) - */ - return; - } - - /* Ensure that the runloop has been started first. - * TODO: Move this to InitMouseEventTap, check for error conditions that can - * happen in Cocoa_MouseTapThread, and fall back to the non-EventTap way of - * grabbing the mouse if it fails to Init. - */ - status = SDL_SemWaitTimeout(tapdata->runloopStartedSemaphore, 5000); - if (status > -1) { - /* Then stop it, which will cause Cocoa_MouseTapThread to return. */ - CFRunLoopStop(tapdata->runloop); - /* And then wait for Cocoa_MouseTapThread to finish cleaning up. It - * releases some of the pointers in tapdata. */ - SDL_WaitThread(tapdata->thread, &status); - } - - SDL_free(driverdata->tapdata); - driverdata->tapdata = NULL; -} - -#else /* SDL_MAC_NO_SANDBOX */ - -void -Cocoa_InitMouseEventTap(SDL_MouseData *unused) -{ -} - -void -Cocoa_EnableMouseEventTap(SDL_MouseData *driverdata, SDL_bool enabled) -{ -} - -void -Cocoa_QuitMouseEventTap(SDL_MouseData *driverdata) -{ -} - -#endif /* !SDL_MAC_NO_SANDBOX */ - -#endif /* SDL_VIDEO_DRIVER_COCOA */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/externals/SDL/src/video/khronos/vulkan/vulkan_mir.h b/externals/SDL/src/video/khronos/vulkan/vulkan_mir.h deleted file mode 100755 index 7d24ed27a..000000000 --- a/externals/SDL/src/video/khronos/vulkan/vulkan_mir.h +++ /dev/null @@ -1,65 +0,0 @@ -#ifndef VULKAN_MIR_H_ -#define VULKAN_MIR_H_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright (c) 2015-2018 The Khronos Group Inc. -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ - -/* -** This header is generated from the Khronos Vulkan XML API Registry. -** -*/ - - -#define VK_KHR_mir_surface 1 -#define VK_KHR_MIR_SURFACE_SPEC_VERSION 4 -#define VK_KHR_MIR_SURFACE_EXTENSION_NAME "VK_KHR_mir_surface" - -typedef VkFlags VkMirSurfaceCreateFlagsKHR; - -typedef struct VkMirSurfaceCreateInfoKHR { - VkStructureType sType; - const void* pNext; - VkMirSurfaceCreateFlagsKHR flags; - MirConnection* connection; - MirSurface* mirSurface; -} VkMirSurfaceCreateInfoKHR; - - -typedef VkResult (VKAPI_PTR *PFN_vkCreateMirSurfaceKHR)(VkInstance instance, const VkMirSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); -typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceMirPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateMirSurfaceKHR( - VkInstance instance, - const VkMirSurfaceCreateInfoKHR* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkSurfaceKHR* pSurface); - -VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceMirPresentationSupportKHR( - VkPhysicalDevice physicalDevice, - uint32_t queueFamilyIndex, - MirConnection* connection); -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_dyn.c b/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_dyn.c deleted file mode 100755 index 019c8e188..000000000 --- a/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_dyn.c +++ /dev/null @@ -1,167 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2020 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#include "../../SDL_internal.h" - -#if SDL_VIDEO_DRIVER_KMSDRM - -#define DEBUG_DYNAMIC_KMSDRM_LEGACY 0 - -#include "SDL_kmsdrm_legacy_dyn.h" - -#ifdef SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC - -#include "SDL_name.h" -#include "SDL_loadso.h" - -typedef struct -{ - void *lib; - const char *libname; -} kmsdrmdynlib; - -#ifndef SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC -#define SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC NULL -#endif -#ifndef SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC_GBM -#define SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC_GBM NULL -#endif - -static kmsdrmdynlib kmsdrmlibs[] = { - {NULL, SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC_GBM}, - {NULL, SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC} -}; - -static void * -KMSDRM_LEGACY_GetSym(const char *fnname, int *pHasModule) -{ - int i; - void *fn = NULL; - for (i = 0; i < SDL_TABLESIZE(kmsdrmlibs); i++) { - if (kmsdrmlibs[i].lib != NULL) { - fn = SDL_LoadFunction(kmsdrmlibs[i].lib, fnname); - if (fn != NULL) - break; - } - } - -#if DEBUG_DYNAMIC_KMSDRM_LEGACY - if (fn != NULL) - SDL_Log("KMSDRM_LEGACY: Found '%s' in %s (%p)\n", fnname, kmsdrmlibs[i].libname, fn); - else - SDL_Log("KMSDRM_LEGACY: Symbol '%s' NOT FOUND!\n", fnname); -#endif - - if (fn == NULL) - *pHasModule = 0; /* kill this module. */ - - return fn; -} - -#endif /* SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC */ - -/* Define all the function pointers and wrappers... */ -#define SDL_KMSDRM_LEGACY_MODULE(modname) int SDL_KMSDRM_LEGACY_HAVE_##modname = 0; -#define SDL_KMSDRM_LEGACY_SYM(rc,fn,params) SDL_DYNKMSDRM_LEGACYFN_##fn KMSDRM_LEGACY_##fn = NULL; -#define SDL_KMSDRM_LEGACY_SYM_CONST(type,name) SDL_DYNKMSDRM_LEGACYCONST_##name KMSDRM_LEGACY_##name = NULL; -#include "SDL_kmsdrm_legacy_sym.h" - -static int kmsdrm_load_refcount = 0; - -void -SDL_KMSDRM_LEGACY_UnloadSymbols(void) -{ - /* Don't actually unload if more than one module is using the libs... */ - if (kmsdrm_load_refcount > 0) { - if (--kmsdrm_load_refcount == 0) { -#ifdef SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC - int i; -#endif - - /* set all the function pointers to NULL. */ -#define SDL_KMSDRM_LEGACY_MODULE(modname) SDL_KMSDRM_LEGACY_HAVE_##modname = 0; -#define SDL_KMSDRM_LEGACY_SYM(rc,fn,params) KMSDRM_LEGACY_##fn = NULL; -#define SDL_KMSDRM_LEGACY_SYM_CONST(type,name) KMSDRM_LEGACY_##name = NULL; -#include "SDL_kmsdrm_legacy_sym.h" - - -#ifdef SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC - for (i = 0; i < SDL_TABLESIZE(kmsdrmlibs); i++) { - if (kmsdrmlibs[i].lib != NULL) { - SDL_UnloadObject(kmsdrmlibs[i].lib); - kmsdrmlibs[i].lib = NULL; - } - } -#endif - } - } -} - -/* returns non-zero if all needed symbols were loaded. */ -int -SDL_KMSDRM_LEGACY_LoadSymbols(void) -{ - int rc = 1; /* always succeed if not using Dynamic KMSDRM_LEGACY stuff. */ - - /* deal with multiple modules needing these symbols... */ - if (kmsdrm_load_refcount++ == 0) { -#ifdef SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC - int i; - int *thismod = NULL; - for (i = 0; i < SDL_TABLESIZE(kmsdrmlibs); i++) { - if (kmsdrmlibs[i].libname != NULL) { - kmsdrmlibs[i].lib = SDL_LoadObject(kmsdrmlibs[i].libname); - } - } - -#define SDL_KMSDRM_LEGACY_MODULE(modname) SDL_KMSDRM_LEGACY_HAVE_##modname = 1; /* default yes */ -#include "SDL_kmsdrm_legacy_sym.h" - -#define SDL_KMSDRM_LEGACY_MODULE(modname) thismod = &SDL_KMSDRM_LEGACY_HAVE_##modname; -#define SDL_KMSDRM_LEGACY_SYM(rc,fn,params) KMSDRM_LEGACY_##fn = (SDL_DYNKMSDRM_LEGACYFN_##fn) KMSDRM_LEGACY_GetSym(#fn,thismod); -#define SDL_KMSDRM_LEGACY_SYM_CONST(type,name) KMSDRM_LEGACY_##name = *(SDL_DYNKMSDRM_LEGACYCONST_##name*) KMSDRM_LEGACY_GetSym(#name,thismod); -#include "SDL_kmsdrm_legacy_sym.h" - - if ((SDL_KMSDRM_LEGACY_HAVE_LIBDRM) && (SDL_KMSDRM_LEGACY_HAVE_GBM)) { - /* all required symbols loaded. */ - SDL_ClearError(); - } else { - /* in case something got loaded... */ - SDL_KMSDRM_LEGACY_UnloadSymbols(); - rc = 0; - } - -#else /* no dynamic KMSDRM_LEGACY */ - -#define SDL_KMSDRM_LEGACY_MODULE(modname) SDL_KMSDRM_LEGACY_HAVE_##modname = 1; /* default yes */ -#define SDL_KMSDRM_LEGACY_SYM(rc,fn,params) KMSDRM_LEGACY_##fn = fn; -#define SDL_KMSDRM_LEGACY_SYM_CONST(type,name) KMSDRM_LEGACY_##name = name; -#include "SDL_kmsdrm_legacy_sym.h" - -#endif - } - - return rc; -} - -#endif /* SDL_VIDEO_DRIVER_KMSDRM */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_dyn.h b/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_dyn.h deleted file mode 100755 index 3cb67b08e..000000000 --- a/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_dyn.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2020 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef SDL_kmsdrmdyn_h_ -#define SDL_kmsdrmdyn_h_ - -#include "../../SDL_internal.h" - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -int SDL_KMSDRM_LEGACY_LoadSymbols(void); -void SDL_KMSDRM_LEGACY_UnloadSymbols(void); - -/* Declare all the function pointers and wrappers... */ -#define SDL_KMSDRM_LEGACY_SYM(rc,fn,params) \ - typedef rc (*SDL_DYNKMSDRM_LEGACYFN_##fn) params; \ - extern SDL_DYNKMSDRM_LEGACYFN_##fn KMSDRM_LEGACY_##fn; -#define SDL_KMSDRM_LEGACY_SYM_CONST(type, name) \ - typedef type SDL_DYNKMSDRM_LEGACYCONST_##name; \ - extern SDL_DYNKMSDRM_LEGACYCONST_##name KMSDRM_LEGACY_##name; -#include "SDL_kmsdrm_legacy_sym.h" - -#ifdef __cplusplus -} -#endif - -#endif /* SDL_kmsdrmdyn_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_events.c b/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_events.c deleted file mode 100755 index a5c765edb..000000000 --- a/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_events.c +++ /dev/null @@ -1,42 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2020 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#include "../../SDL_internal.h" - -#if SDL_VIDEO_DRIVER_KMSDRM - -#include "SDL_kmsdrm_legacy_video.h" -#include "SDL_kmsdrm_legacy_events.h" - -#ifdef SDL_INPUT_LINUXEV -#include "../../core/linux/SDL_evdev.h" -#endif - -void KMSDRM_LEGACY_PumpEvents(_THIS) -{ -#ifdef SDL_INPUT_LINUXEV - SDL_EVDEV_Poll(); -#endif - -} - -#endif /* SDL_VIDEO_DRIVER_KMSDRM */ - diff --git a/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_events.h b/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_events.h deleted file mode 100755 index 24c23bcb6..000000000 --- a/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_events.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2020 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#include "../../SDL_internal.h" - -#ifndef SDL_kmsdrmevents_h_ -#define SDL_kmsdrmevents_h_ - -extern void KMSDRM_LEGACY_PumpEvents(_THIS); -extern void KMSDRM_LEGACY_EventInit(_THIS); -extern void KMSDRM_LEGACY_EventQuit(_THIS); - -#endif /* SDL_kmsdrmevents_h_ */ diff --git a/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_mouse.c b/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_mouse.c deleted file mode 100755 index c980ebba6..000000000 --- a/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_mouse.c +++ /dev/null @@ -1,502 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2020 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#include "../../SDL_internal.h" - -#if SDL_VIDEO_DRIVER_KMSDRM - -#include "SDL_kmsdrm_legacy_video.h" -#include "SDL_kmsdrm_legacy_mouse.h" -#include "SDL_kmsdrm_legacy_dyn.h" - -#include "../../events/SDL_mouse_c.h" -#include "../../events/default_cursor.h" - -static SDL_Cursor *KMSDRM_LEGACY_CreateDefaultCursor(void); -static SDL_Cursor *KMSDRM_LEGACY_CreateCursor(SDL_Surface * surface, int hot_x, int hot_y); -static int KMSDRM_LEGACY_ShowCursor(SDL_Cursor * cursor); -static void KMSDRM_LEGACY_MoveCursor(SDL_Cursor * cursor); -static void KMSDRM_LEGACY_FreeCursor(SDL_Cursor * cursor); -static void KMSDRM_LEGACY_WarpMouse(SDL_Window * window, int x, int y); -static int KMSDRM_LEGACY_WarpMouseGlobal(int x, int y); - -static SDL_Cursor * -KMSDRM_LEGACY_CreateDefaultCursor(void) -{ - return SDL_CreateCursor(default_cdata, default_cmask, DEFAULT_CWIDTH, DEFAULT_CHEIGHT, DEFAULT_CHOTX, DEFAULT_CHOTY); -} - -/* Evaluate if a given cursor size is supported or not. Notably, current Intel gfx only support 64x64 and up. */ -static SDL_bool -KMSDRM_LEGACY_IsCursorSizeSupported (int w, int h, uint32_t bo_format) { - - SDL_VideoDevice *dev = SDL_GetVideoDevice(); - SDL_VideoData *viddata = ((SDL_VideoData *)dev->driverdata); - SDL_DisplayData *dispdata = (SDL_DisplayData *)SDL_GetDisplayDriverData(0); - - int ret; - uint32_t bo_handle; - struct gbm_bo *bo = KMSDRM_LEGACY_gbm_bo_create(viddata->gbm, w, h, bo_format, - GBM_BO_USE_CURSOR | GBM_BO_USE_WRITE); - - if (!bo) { - SDL_SetError("Could not create GBM cursor BO width size %dx%d for size testing", w, h); - goto cleanup; - } - - bo_handle = KMSDRM_LEGACY_gbm_bo_get_handle(bo).u32; - ret = KMSDRM_LEGACY_drmModeSetCursor(viddata->drm_fd, dispdata->crtc_id, bo_handle, w, h); - - if (ret) { - goto cleanup; - } - else { - KMSDRM_LEGACY_gbm_bo_destroy(bo); - return SDL_TRUE; - } - -cleanup: - if (bo) { - KMSDRM_LEGACY_gbm_bo_destroy(bo); - } - return SDL_FALSE; -} - -/* Create a cursor from a surface */ -static SDL_Cursor * -KMSDRM_LEGACY_CreateCursor(SDL_Surface * surface, int hot_x, int hot_y) -{ - SDL_VideoDevice *dev = SDL_GetVideoDevice(); - SDL_VideoData *viddata = ((SDL_VideoData *)dev->driverdata); - SDL_PixelFormat *pixlfmt = surface->format; - KMSDRM_LEGACY_CursorData *curdata; - SDL_Cursor *cursor; - SDL_bool cursor_supported = SDL_FALSE; - int i, ret, usable_cursor_w, usable_cursor_h; - uint32_t bo_format, bo_stride; - char *buffer = NULL; - size_t bufsize; - - switch(pixlfmt->format) { - case SDL_PIXELFORMAT_RGB332: - bo_format = GBM_FORMAT_RGB332; - break; - case SDL_PIXELFORMAT_ARGB4444: - bo_format = GBM_FORMAT_ARGB4444; - break; - case SDL_PIXELFORMAT_RGBA4444: - bo_format = GBM_FORMAT_RGBA4444; - break; - case SDL_PIXELFORMAT_ABGR4444: - bo_format = GBM_FORMAT_ABGR4444; - break; - case SDL_PIXELFORMAT_BGRA4444: - bo_format = GBM_FORMAT_BGRA4444; - break; - case SDL_PIXELFORMAT_ARGB1555: - bo_format = GBM_FORMAT_ARGB1555; - break; - case SDL_PIXELFORMAT_RGBA5551: - bo_format = GBM_FORMAT_RGBA5551; - break; - case SDL_PIXELFORMAT_ABGR1555: - bo_format = GBM_FORMAT_ABGR1555; - break; - case SDL_PIXELFORMAT_BGRA5551: - bo_format = GBM_FORMAT_BGRA5551; - break; - case SDL_PIXELFORMAT_RGB565: - bo_format = GBM_FORMAT_RGB565; - break; - case SDL_PIXELFORMAT_BGR565: - bo_format = GBM_FORMAT_BGR565; - break; - case SDL_PIXELFORMAT_RGB888: - case SDL_PIXELFORMAT_RGB24: - bo_format = GBM_FORMAT_RGB888; - break; - case SDL_PIXELFORMAT_BGR888: - case SDL_PIXELFORMAT_BGR24: - bo_format = GBM_FORMAT_BGR888; - break; - case SDL_PIXELFORMAT_RGBX8888: - bo_format = GBM_FORMAT_RGBX8888; - break; - case SDL_PIXELFORMAT_BGRX8888: - bo_format = GBM_FORMAT_BGRX8888; - break; - case SDL_PIXELFORMAT_ARGB8888: - bo_format = GBM_FORMAT_ARGB8888; - break; - case SDL_PIXELFORMAT_RGBA8888: - bo_format = GBM_FORMAT_RGBA8888; - break; - case SDL_PIXELFORMAT_ABGR8888: - bo_format = GBM_FORMAT_ABGR8888; - break; - case SDL_PIXELFORMAT_BGRA8888: - bo_format = GBM_FORMAT_BGRA8888; - break; - case SDL_PIXELFORMAT_ARGB2101010: - bo_format = GBM_FORMAT_ARGB2101010; - break; - default: - SDL_SetError("Unsupported pixel format for cursor"); - return NULL; - } - - if (!KMSDRM_LEGACY_gbm_device_is_format_supported(viddata->gbm, bo_format, GBM_BO_USE_CURSOR | GBM_BO_USE_WRITE)) { - SDL_SetError("Unsupported pixel format for cursor"); - return NULL; - } - - cursor = (SDL_Cursor *) SDL_calloc(1, sizeof(*cursor)); - if (!cursor) { - SDL_OutOfMemory(); - return NULL; - } - curdata = (KMSDRM_LEGACY_CursorData *) SDL_calloc(1, sizeof(*curdata)); - if (!curdata) { - SDL_OutOfMemory(); - SDL_free(cursor); - return NULL; - } - - /* We have to know beforehand if a cursor with the same size as the surface is supported. - * If it's not, we have to find an usable cursor size and use an intermediate and clean buffer. - * If we can't find a cursor size supported by the hardware, we won't go on trying to - * call SDL_SetCursor() later. */ - - usable_cursor_w = surface->w; - usable_cursor_h = surface->h; - - while (usable_cursor_w <= MAX_CURSOR_W && usable_cursor_h <= MAX_CURSOR_H) { - if (KMSDRM_LEGACY_IsCursorSizeSupported(usable_cursor_w, usable_cursor_h, bo_format)) { - cursor_supported = SDL_TRUE; - break; - } - usable_cursor_w += usable_cursor_w; - usable_cursor_h += usable_cursor_h; - } - - if (!cursor_supported) { - SDL_SetError("Could not find a cursor size supported by the kernel driver"); - goto cleanup; - } - - curdata->hot_x = hot_x; - curdata->hot_y = hot_y; - curdata->w = usable_cursor_w; - curdata->h = usable_cursor_h; - - curdata->bo = KMSDRM_LEGACY_gbm_bo_create(viddata->gbm, usable_cursor_w, usable_cursor_h, bo_format, - GBM_BO_USE_CURSOR | GBM_BO_USE_WRITE); - - if (!curdata->bo) { - SDL_SetError("Could not create GBM cursor BO"); - goto cleanup; - } - - bo_stride = KMSDRM_LEGACY_gbm_bo_get_stride(curdata->bo); - bufsize = bo_stride * curdata->h; - - if (surface->pitch != bo_stride) { - /* pitch doesn't match stride, must be copied to temp buffer */ - buffer = SDL_malloc(bufsize); - if (!buffer) { - SDL_OutOfMemory(); - goto cleanup; - } - - if (SDL_MUSTLOCK(surface)) { - if (SDL_LockSurface(surface) < 0) { - /* Could not lock surface */ - goto cleanup; - } - } - - /* Clean the whole temporary buffer */ - SDL_memset(buffer, 0x00, bo_stride * curdata->h); - - /* Copy to temporary buffer */ - for (i = 0; i < surface->h; i++) { - SDL_memcpy(buffer + (i * bo_stride), - ((char *)surface->pixels) + (i * surface->pitch), - surface->w * pixlfmt->BytesPerPixel); - } - - if (SDL_MUSTLOCK(surface)) { - SDL_UnlockSurface(surface); - } - - if (KMSDRM_LEGACY_gbm_bo_write(curdata->bo, buffer, bufsize)) { - SDL_SetError("Could not write to GBM cursor BO"); - goto cleanup; - } - - /* Free temporary buffer */ - SDL_free(buffer); - buffer = NULL; - } else { - /* surface matches BO format */ - if (SDL_MUSTLOCK(surface)) { - if (SDL_LockSurface(surface) < 0) { - /* Could not lock surface */ - goto cleanup; - } - } - - ret = KMSDRM_LEGACY_gbm_bo_write(curdata->bo, surface->pixels, bufsize); - - if (SDL_MUSTLOCK(surface)) { - SDL_UnlockSurface(surface); - } - - if (ret) { - SDL_SetError("Could not write to GBM cursor BO"); - goto cleanup; - } - } - - cursor->driverdata = curdata; - - return cursor; - -cleanup: - if (buffer) { - SDL_free(buffer); - } - if (cursor) { - SDL_free(cursor); - } - if (curdata) { - if (curdata->bo) { - KMSDRM_LEGACY_gbm_bo_destroy(curdata->bo); - } - SDL_free(curdata); - } - return NULL; -} - -/* Show the specified cursor, or hide if cursor is NULL */ -static int -KMSDRM_LEGACY_ShowCursor(SDL_Cursor * cursor) -{ - SDL_VideoDevice *dev = SDL_GetVideoDevice(); - SDL_VideoData *viddata = ((SDL_VideoData *)dev->driverdata); - SDL_Mouse *mouse; - KMSDRM_LEGACY_CursorData *curdata; - SDL_VideoDisplay *display = NULL; - SDL_DisplayData *dispdata = NULL; - int ret; - uint32_t bo_handle; - - mouse = SDL_GetMouse(); - if (!mouse) { - return SDL_SetError("No mouse."); - } - - if (mouse->focus) { - display = SDL_GetDisplayForWindow(mouse->focus); - if (display) { - dispdata = (SDL_DisplayData*) display->driverdata; - } - } - - if (!cursor) { - /* Hide current cursor */ - if (mouse->cur_cursor && mouse->cur_cursor->driverdata) { - curdata = (KMSDRM_LEGACY_CursorData *) mouse->cur_cursor->driverdata; - - if (curdata->crtc_id != 0) { - ret = KMSDRM_LEGACY_drmModeSetCursor(viddata->drm_fd, curdata->crtc_id, 0, 0, 0); - if (ret) { - SDL_SetError("Could not hide current cursor with drmModeSetCursor()."); - return ret; - } - /* Mark previous cursor as not-displayed */ - curdata->crtc_id = 0; - - return 0; - } - } - /* otherwise if possible, hide global cursor */ - if (dispdata && dispdata->crtc_id != 0) { - ret = KMSDRM_LEGACY_drmModeSetCursor(viddata->drm_fd, dispdata->crtc_id, 0, 0, 0); - if (ret) { - SDL_SetError("Could not hide display's cursor with drmModeSetCursor()."); - return ret; - } - return 0; - } - - return SDL_SetError("Couldn't find cursor to hide."); - } - /* If cursor != NULL, show new cursor on display */ - if (!display) { - return SDL_SetError("Could not get display for mouse."); - } - if (!dispdata) { - return SDL_SetError("Could not get display driverdata."); - } - - curdata = (KMSDRM_LEGACY_CursorData *) cursor->driverdata; - if (!curdata || !curdata->bo) { - return SDL_SetError("Cursor not initialized properly."); - } - - bo_handle = KMSDRM_LEGACY_gbm_bo_get_handle(curdata->bo).u32; - if (curdata->hot_x == 0 && curdata->hot_y == 0) { - ret = KMSDRM_LEGACY_drmModeSetCursor(viddata->drm_fd, dispdata->crtc_id, bo_handle, - curdata->w, curdata->h); - } else { - ret = KMSDRM_LEGACY_drmModeSetCursor2(viddata->drm_fd, dispdata->crtc_id, bo_handle, - curdata->w, curdata->h, curdata->hot_x, curdata->hot_y); - } - if (ret) { - SDL_SetError("drmModeSetCursor failed."); - return ret; - } - - curdata->crtc_id = dispdata->crtc_id; - - return 0; -} - -/* Free a window manager cursor */ -static void -KMSDRM_LEGACY_FreeCursor(SDL_Cursor * cursor) -{ - KMSDRM_LEGACY_CursorData *curdata; - int drm_fd; - - if (cursor) { - curdata = (KMSDRM_LEGACY_CursorData *) cursor->driverdata; - - if (curdata) { - if (curdata->bo) { - if (curdata->crtc_id != 0) { - drm_fd = KMSDRM_LEGACY_gbm_device_get_fd(KMSDRM_LEGACY_gbm_bo_get_device(curdata->bo)); - /* Hide the cursor if previously shown on a CRTC */ - KMSDRM_LEGACY_drmModeSetCursor(drm_fd, curdata->crtc_id, 0, 0, 0); - curdata->crtc_id = 0; - } - KMSDRM_LEGACY_gbm_bo_destroy(curdata->bo); - curdata->bo = NULL; - } - SDL_free(cursor->driverdata); - } - SDL_free(cursor); - } -} - -/* Warp the mouse to (x,y) */ -static void -KMSDRM_LEGACY_WarpMouse(SDL_Window * window, int x, int y) -{ - /* Only one global/fullscreen window is supported */ - KMSDRM_LEGACY_WarpMouseGlobal(x, y); -} - -/* Warp the mouse to (x,y) */ -static int -KMSDRM_LEGACY_WarpMouseGlobal(int x, int y) -{ - KMSDRM_LEGACY_CursorData *curdata; - SDL_Mouse *mouse = SDL_GetMouse(); - - if (mouse && mouse->cur_cursor && mouse->cur_cursor->driverdata) { - /* Update internal mouse position. */ - SDL_SendMouseMotion(mouse->focus, mouse->mouseID, 0, x, y); - - /* And now update the cursor graphic position on screen. */ - curdata = (KMSDRM_LEGACY_CursorData *) mouse->cur_cursor->driverdata; - if (curdata->bo) { - - if (curdata->crtc_id != 0) { - int ret, drm_fd; - drm_fd = KMSDRM_LEGACY_gbm_device_get_fd(KMSDRM_LEGACY_gbm_bo_get_device(curdata->bo)); - ret = KMSDRM_LEGACY_drmModeMoveCursor(drm_fd, curdata->crtc_id, x, y); - - if (ret) { - SDL_SetError("drmModeMoveCursor() failed."); - } - - return ret; - } else { - return SDL_SetError("Cursor is not currently shown."); - } - } else { - return SDL_SetError("Cursor not initialized properly."); - } - } else { - return SDL_SetError("No mouse or current cursor."); - } -} - -void -KMSDRM_LEGACY_InitMouse(_THIS) -{ - /* FIXME: Using UDEV it should be possible to scan all mice - * but there's no point in doing so as there's no multimice support...yet! - */ - SDL_Mouse *mouse = SDL_GetMouse(); - - mouse->CreateCursor = KMSDRM_LEGACY_CreateCursor; - mouse->ShowCursor = KMSDRM_LEGACY_ShowCursor; - mouse->MoveCursor = KMSDRM_LEGACY_MoveCursor; - mouse->FreeCursor = KMSDRM_LEGACY_FreeCursor; - mouse->WarpMouse = KMSDRM_LEGACY_WarpMouse; - mouse->WarpMouseGlobal = KMSDRM_LEGACY_WarpMouseGlobal; - - SDL_SetDefaultCursor(KMSDRM_LEGACY_CreateDefaultCursor()); -} - -void -KMSDRM_LEGACY_QuitMouse(_THIS) -{ - /* TODO: ? */ -} - -/* This is called when a mouse motion event occurs */ -static void -KMSDRM_LEGACY_MoveCursor(SDL_Cursor * cursor) -{ - SDL_Mouse *mouse = SDL_GetMouse(); - KMSDRM_LEGACY_CursorData *curdata; - int drm_fd, ret; - - /* We must NOT call SDL_SendMouseMotion() here or we will enter recursivity! - That's why we move the cursor graphic ONLY. */ - if (mouse && mouse->cur_cursor && mouse->cur_cursor->driverdata) { - curdata = (KMSDRM_LEGACY_CursorData *) mouse->cur_cursor->driverdata; - drm_fd = KMSDRM_LEGACY_gbm_device_get_fd(KMSDRM_LEGACY_gbm_bo_get_device(curdata->bo)); - ret = KMSDRM_LEGACY_drmModeMoveCursor(drm_fd, curdata->crtc_id, mouse->x, mouse->y); - - if (ret) { - SDL_SetError("drmModeMoveCursor() failed."); - } - } -} - -#endif /* SDL_VIDEO_DRIVER_KMSDRM */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_mouse.h b/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_mouse.h deleted file mode 100755 index 384196718..000000000 --- a/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_mouse.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2020 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#include "../../SDL_internal.h" - -#ifndef SDL_KMSDRM_LEGACY_mouse_h_ -#define SDL_KMSDRM_LEGACY_mouse_h_ - -#include - -#define MAX_CURSOR_W 512 -#define MAX_CURSOR_H 512 - -typedef struct _KMSDRM_LEGACY_CursorData -{ - struct gbm_bo *bo; - uint32_t crtc_id; - int hot_x, hot_y; - int w, h; -} KMSDRM_LEGACY_CursorData; - -extern void KMSDRM_LEGACY_InitMouse(_THIS); -extern void KMSDRM_LEGACY_QuitMouse(_THIS); - -#endif /* SDL_KMSDRM_LEGACY_mouse_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_opengles.c b/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_opengles.c deleted file mode 100755 index 890801891..000000000 --- a/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_opengles.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2020 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#include "../../SDL_internal.h" - -#if SDL_VIDEO_DRIVER_KMSDRM && SDL_VIDEO_OPENGL_EGL - -#include "SDL_log.h" - -#include "SDL_kmsdrm_legacy_video.h" -#include "SDL_kmsdrm_legacy_opengles.h" -#include "SDL_kmsdrm_legacy_dyn.h" - -#ifndef EGL_PLATFORM_GBM_MESA -#define EGL_PLATFORM_GBM_MESA 0x31D7 -#endif - -/* EGL implementation of SDL OpenGL support */ - -int -KMSDRM_LEGACY_GLES_LoadLibrary(_THIS, const char *path) { - NativeDisplayType display = (NativeDisplayType)((SDL_VideoData *)_this->driverdata)->gbm; - return SDL_EGL_LoadLibrary(_this, path, display, EGL_PLATFORM_GBM_MESA); -} - -SDL_EGL_CreateContext_impl(KMSDRM_LEGACY) - -int KMSDRM_LEGACY_GLES_SetSwapInterval(_THIS, int interval) { - if (!_this->egl_data) { - return SDL_SetError("EGL not initialized"); - } - - if (interval == 0 || interval == 1) { - _this->egl_data->egl_swapinterval = interval; - } else { - return SDL_SetError("Only swap intervals of 0 or 1 are supported"); - } - - return 0; -} - -int -KMSDRM_LEGACY_GLES_SwapWindow(_THIS, SDL_Window * window) { - SDL_WindowData *windata = ((SDL_WindowData *) window->driverdata); - SDL_DisplayData *dispdata = (SDL_DisplayData *) SDL_GetDisplayForWindow(window)->driverdata; - SDL_VideoData *viddata = ((SDL_VideoData *)_this->driverdata); - KMSDRM_LEGACY_FBInfo *fb_info; - int ret, timeout; - - /* Recreate the GBM / EGL surfaces if the display mode has changed */ - if (windata->egl_surface_dirty) { - KMSDRM_LEGACY_CreateSurfaces(_this, window); - } - - /* Wait for confirmation that the next front buffer has been flipped, at which - point the previous front buffer can be released */ - timeout = 0; - if (_this->egl_data->egl_swapinterval == 1) { - timeout = -1; - } - if (!KMSDRM_LEGACY_WaitPageFlip(_this, windata, timeout)) { - return 0; - } - - /* Release the previous front buffer */ - if (windata->curr_bo) { - KMSDRM_LEGACY_gbm_surface_release_buffer(windata->gs, windata->curr_bo); - /* SDL_LogDebug(SDL_LOG_CATEGORY_VIDEO, "Released GBM surface %p", (void *)windata->curr_bo); */ - windata->curr_bo = NULL; - } - - windata->curr_bo = windata->next_bo; - - /* Make the current back buffer the next front buffer */ - if (!(_this->egl_data->eglSwapBuffers(_this->egl_data->egl_display, windata->egl_surface))) { - SDL_LogError(SDL_LOG_CATEGORY_VIDEO, "eglSwapBuffers failed."); - return 0; - } - - /* Lock the next front buffer so it can't be allocated as a back buffer */ - windata->next_bo = KMSDRM_LEGACY_gbm_surface_lock_front_buffer(windata->gs); - if (!windata->next_bo) { - SDL_LogError(SDL_LOG_CATEGORY_VIDEO, "Could not lock GBM surface front buffer"); - return 0; - /* } else { - SDL_LogDebug(SDL_LOG_CATEGORY_VIDEO, "Locked GBM surface %p", (void *)windata->next_bo); */ - } - - fb_info = KMSDRM_LEGACY_FBFromBO(_this, windata->next_bo); - if (!fb_info) { - return 0; - } - - if (!windata->curr_bo) { - /* On the first swap, immediately present the new front buffer. Before - drmModePageFlip can be used the CRTC has to be configured to use - the current connector and mode with drmModeSetCrtc */ - ret = KMSDRM_LEGACY_drmModeSetCrtc(viddata->drm_fd, dispdata->crtc_id, fb_info->fb_id, 0, - 0, &dispdata->conn->connector_id, 1, &dispdata->mode); - - if (ret) { - SDL_LogError(SDL_LOG_CATEGORY_VIDEO, "Could not configure CRTC"); - } - } else { - /* On subsequent swaps, queue the new front buffer to be flipped during - the next vertical blank */ - ret = KMSDRM_LEGACY_drmModePageFlip(viddata->drm_fd, dispdata->crtc_id, fb_info->fb_id, - DRM_MODE_PAGE_FLIP_EVENT, &windata->waiting_for_flip); - /* SDL_LogDebug(SDL_LOG_CATEGORY_VIDEO, "drmModePageFlip(%d, %u, %u, DRM_MODE_PAGE_FLIP_EVENT, &windata->waiting_for_flip)", - viddata->drm_fd, displaydata->crtc_id, fb_info->fb_id); */ - - if (_this->egl_data->egl_swapinterval == 1) { - if (ret == 0) { - windata->waiting_for_flip = SDL_TRUE; - } else { - SDL_LogError(SDL_LOG_CATEGORY_VIDEO, "Could not queue pageflip: %d", ret); - } - } - - /* Wait immediately for vsync (as if we only had two buffers), for low input-lag scenarios. - Run your SDL2 program with "SDL_KMSDRM_LEGACY_DOUBLE_BUFFER=1 " to enable this. */ - if (_this->egl_data->egl_swapinterval == 1 && windata->double_buffer) { - KMSDRM_LEGACY_WaitPageFlip(_this, windata, -1); - } - } - - return 0; -} - -SDL_EGL_MakeCurrent_impl(KMSDRM_LEGACY) - -#endif /* SDL_VIDEO_DRIVER_KMSDRM && SDL_VIDEO_OPENGL_EGL */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_opengles.h b/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_opengles.h deleted file mode 100755 index 5e5ba96dc..000000000 --- a/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_opengles.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2020 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ -#include "../../SDL_internal.h" - -#ifndef SDL_kmsdrmopengles_h_ -#define SDL_kmsdrmopengles_h_ - -#if SDL_VIDEO_DRIVER_KMSDRM && SDL_VIDEO_OPENGL_EGL - -#include "../SDL_sysvideo.h" -#include "../SDL_egl_c.h" - -/* OpenGLES functions */ -#define KMSDRM_LEGACY_GLES_GetAttribute SDL_EGL_GetAttribute -#define KMSDRM_LEGACY_GLES_GetProcAddress SDL_EGL_GetProcAddress -#define KMSDRM_LEGACY_GLES_UnloadLibrary SDL_EGL_UnloadLibrary -#define KMSDRM_LEGACY_GLES_DeleteContext SDL_EGL_DeleteContext -#define KMSDRM_LEGACY_GLES_GetSwapInterval SDL_EGL_GetSwapInterval - -extern int KMSDRM_LEGACY_GLES_SetSwapInterval(_THIS, int interval); -extern int KMSDRM_LEGACY_GLES_LoadLibrary(_THIS, const char *path); -extern SDL_GLContext KMSDRM_LEGACY_GLES_CreateContext(_THIS, SDL_Window * window); -extern int KMSDRM_LEGACY_GLES_SwapWindow(_THIS, SDL_Window * window); -extern int KMSDRM_LEGACY_GLES_MakeCurrent(_THIS, SDL_Window * window, SDL_GLContext context); - -#endif /* SDL_VIDEO_DRIVER_KMSDRM && SDL_VIDEO_OPENGL_EGL */ - -#endif /* SDL_kmsdrmopengles_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_sym.h b/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_sym.h deleted file mode 100755 index 8c41608fc..000000000 --- a/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_sym.h +++ /dev/null @@ -1,99 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2020 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/* *INDENT-OFF* */ - -#ifndef SDL_KMSDRM_LEGACY_MODULE -#define SDL_KMSDRM_LEGACY_MODULE(modname) -#endif - -#ifndef SDL_KMSDRM_LEGACY_SYM -#define SDL_KMSDRM_LEGACY_SYM(rc,fn,params) -#endif - -#ifndef SDL_KMSDRM_LEGACY_SYM_CONST -#define SDL_KMSDRM_LEGACY_SYM_CONST(type, name) -#endif - - -SDL_KMSDRM_LEGACY_MODULE(LIBDRM) -SDL_KMSDRM_LEGACY_SYM(void,drmModeFreeResources,(drmModeResPtr ptr)) -SDL_KMSDRM_LEGACY_SYM(void,drmModeFreeFB,(drmModeFBPtr ptr)) -SDL_KMSDRM_LEGACY_SYM(void,drmModeFreeCrtc,(drmModeCrtcPtr ptr)) -SDL_KMSDRM_LEGACY_SYM(void,drmModeFreeConnector,(drmModeConnectorPtr ptr)) -SDL_KMSDRM_LEGACY_SYM(void,drmModeFreeEncoder,(drmModeEncoderPtr ptr)) -SDL_KMSDRM_LEGACY_SYM(drmModeResPtr,drmModeGetResources,(int fd)) -SDL_KMSDRM_LEGACY_SYM(int,drmModeAddFB,(int fd, uint32_t width, uint32_t height, uint8_t depth, - uint8_t bpp, uint32_t pitch, uint32_t bo_handle, - uint32_t *buf_id)) -SDL_KMSDRM_LEGACY_SYM(int,drmModeRmFB,(int fd, uint32_t bufferId)) -SDL_KMSDRM_LEGACY_SYM(drmModeFBPtr,drmModeGetFB,(int fd, uint32_t buf)) -SDL_KMSDRM_LEGACY_SYM(drmModeCrtcPtr,drmModeGetCrtc,(int fd, uint32_t crtcId)) -SDL_KMSDRM_LEGACY_SYM(int,drmModeSetCrtc,(int fd, uint32_t crtcId, uint32_t bufferId, - uint32_t x, uint32_t y, uint32_t *connectors, int count, - drmModeModeInfoPtr mode)) -SDL_KMSDRM_LEGACY_SYM(int,drmModeSetCursor,(int fd, uint32_t crtcId, uint32_t bo_handle, - uint32_t width, uint32_t height)) -SDL_KMSDRM_LEGACY_SYM(int,drmModeSetCursor2,(int fd, uint32_t crtcId, uint32_t bo_handle, - uint32_t width, uint32_t height, - int32_t hot_x, int32_t hot_y)) -SDL_KMSDRM_LEGACY_SYM(int,drmModeMoveCursor,(int fd, uint32_t crtcId, int x, int y)) -SDL_KMSDRM_LEGACY_SYM(drmModeEncoderPtr,drmModeGetEncoder,(int fd, uint32_t encoder_id)) -SDL_KMSDRM_LEGACY_SYM(drmModeConnectorPtr,drmModeGetConnector,(int fd, uint32_t connector_id)) -SDL_KMSDRM_LEGACY_SYM(int,drmHandleEvent,(int fd,drmEventContextPtr evctx)) -SDL_KMSDRM_LEGACY_SYM(int,drmModePageFlip,(int fd, uint32_t crtc_id, uint32_t fb_id, - uint32_t flags, void *user_data)) - - -SDL_KMSDRM_LEGACY_MODULE(GBM) -SDL_KMSDRM_LEGACY_SYM(int,gbm_device_get_fd,(struct gbm_device *gbm)) -SDL_KMSDRM_LEGACY_SYM(int,gbm_device_is_format_supported,(struct gbm_device *gbm, - uint32_t format, uint32_t usage)) -SDL_KMSDRM_LEGACY_SYM(void,gbm_device_destroy,(struct gbm_device *gbm)) -SDL_KMSDRM_LEGACY_SYM(struct gbm_device *,gbm_create_device,(int fd)) -SDL_KMSDRM_LEGACY_SYM(unsigned int,gbm_bo_get_width,(struct gbm_bo *bo)) -SDL_KMSDRM_LEGACY_SYM(unsigned int,gbm_bo_get_height,(struct gbm_bo *bo)) -SDL_KMSDRM_LEGACY_SYM(uint32_t,gbm_bo_get_stride,(struct gbm_bo *bo)) -SDL_KMSDRM_LEGACY_SYM(union gbm_bo_handle,gbm_bo_get_handle,(struct gbm_bo *bo)) -SDL_KMSDRM_LEGACY_SYM(int,gbm_bo_write,(struct gbm_bo *bo, const void *buf, size_t count)) -SDL_KMSDRM_LEGACY_SYM(struct gbm_device *,gbm_bo_get_device,(struct gbm_bo *bo)) -SDL_KMSDRM_LEGACY_SYM(void,gbm_bo_set_user_data,(struct gbm_bo *bo, void *data, - void (*destroy_user_data)(struct gbm_bo *, void *))) -SDL_KMSDRM_LEGACY_SYM(void *,gbm_bo_get_user_data,(struct gbm_bo *bo)) -SDL_KMSDRM_LEGACY_SYM(void,gbm_bo_destroy,(struct gbm_bo *bo)) -SDL_KMSDRM_LEGACY_SYM(struct gbm_bo *,gbm_bo_create,(struct gbm_device *gbm, - uint32_t width, uint32_t height, - uint32_t format, uint32_t usage)) -SDL_KMSDRM_LEGACY_SYM(struct gbm_surface *,gbm_surface_create,(struct gbm_device *gbm, - uint32_t width, uint32_t height, - uint32_t format, uint32_t flags)) -SDL_KMSDRM_LEGACY_SYM(void,gbm_surface_destroy,(struct gbm_surface *surf)) -SDL_KMSDRM_LEGACY_SYM(struct gbm_bo *,gbm_surface_lock_front_buffer,(struct gbm_surface *surf)) -SDL_KMSDRM_LEGACY_SYM(void,gbm_surface_release_buffer,(struct gbm_surface *surf, struct gbm_bo *bo)) - - -#undef SDL_KMSDRM_LEGACY_MODULE -#undef SDL_KMSDRM_LEGACY_SYM -#undef SDL_KMSDRM_LEGACY_SYM_CONST - -/* *INDENT-ON* */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_video.c b/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_video.c deleted file mode 100755 index 36b1899bd..000000000 --- a/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_video.c +++ /dev/null @@ -1,934 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2020 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#include "../../SDL_internal.h" - -#if SDL_VIDEO_DRIVER_KMSDRM - -/* SDL internals */ -#include "../SDL_sysvideo.h" -#include "SDL_syswm.h" -#include "SDL_log.h" -#include "SDL_hints.h" -#include "../../events/SDL_events_c.h" -#include "../../events/SDL_mouse_c.h" -#include "../../events/SDL_keyboard_c.h" - -#ifdef SDL_INPUT_LINUXEV -#include "../../core/linux/SDL_evdev.h" -#endif - -/* KMS/DRM declarations */ -#include "SDL_kmsdrm_legacy_video.h" -#include "SDL_kmsdrm_legacy_events.h" -#include "SDL_kmsdrm_legacy_opengles.h" -#include "SDL_kmsdrm_legacy_mouse.h" -#include "SDL_kmsdrm_legacy_dyn.h" -#include -#include -#include -#include - -#define KMSDRM_LEGACY_DRI_PATH "/dev/dri/" - -static int -check_modestting(int devindex) -{ - SDL_bool available = SDL_FALSE; - char device[512]; - int drm_fd; - - SDL_snprintf(device, sizeof (device), "%scard%d", KMSDRM_LEGACY_DRI_PATH, devindex); - - drm_fd = open(device, O_RDWR | O_CLOEXEC); - if (drm_fd >= 0) { - if (SDL_KMSDRM_LEGACY_LoadSymbols()) { - drmModeRes *resources = KMSDRM_LEGACY_drmModeGetResources(drm_fd); - if (resources) { - SDL_LogDebug(SDL_LOG_CATEGORY_VIDEO, "%scard%d connector, encoder and CRTC counts are: %d %d %d", - KMSDRM_LEGACY_DRI_PATH, devindex, - resources->count_connectors, resources->count_encoders, resources->count_crtcs); - - if (resources->count_connectors > 0 && resources->count_encoders > 0 && resources->count_crtcs > 0) { - available = SDL_TRUE; - } - KMSDRM_LEGACY_drmModeFreeResources(resources); - } - SDL_KMSDRM_LEGACY_UnloadSymbols(); - } - close(drm_fd); - } - - return available; -} - -static int get_dricount(void) -{ - int devcount = 0; - struct dirent *res; - struct stat sb; - DIR *folder; - - if (!(stat(KMSDRM_LEGACY_DRI_PATH, &sb) == 0 - && S_ISDIR(sb.st_mode))) { - printf("The path %s cannot be opened or is not available\n", - KMSDRM_LEGACY_DRI_PATH); - return 0; - } - - if (access(KMSDRM_LEGACY_DRI_PATH, F_OK) == -1) { - printf("The path %s cannot be opened\n", - KMSDRM_LEGACY_DRI_PATH); - return 0; - } - - folder = opendir(KMSDRM_LEGACY_DRI_PATH); - if (folder) { - while ((res = readdir(folder))) { - int len = SDL_strlen(res->d_name); - if (len > 4 && SDL_strncmp(res->d_name, "card", 4) == 0) { - devcount++; - } - } - closedir(folder); - } - - return devcount; -} - -static int -get_driindex(void) -{ - const int devcount = get_dricount(); - int i; - - for (i = 0; i < devcount; i++) { - if (check_modestting(i)) { - return i; - } - } - - return -ENOENT; -} - -static int -KMSDRM_LEGACY_Available(void) -{ - int ret = -ENOENT; - - ret = get_driindex(); - if (ret >= 0) - return 1; - - return ret; -} - -static void -KMSDRM_LEGACY_DeleteDevice(SDL_VideoDevice * device) -{ - if (device->driverdata) { - SDL_free(device->driverdata); - device->driverdata = NULL; - } - - SDL_free(device); - - SDL_KMSDRM_LEGACY_UnloadSymbols(); -} - -static SDL_VideoDevice * -KMSDRM_LEGACY_CreateDevice(int devindex) -{ - SDL_VideoDevice *device; - SDL_VideoData *viddata; - - if (!KMSDRM_LEGACY_Available()) { - return NULL; - } - - if (!devindex || (devindex > 99)) { - devindex = get_driindex(); - } - - if (devindex < 0) { - SDL_SetError("devindex (%d) must be between 0 and 99.\n", devindex); - return NULL; - } - - if (!SDL_KMSDRM_LEGACY_LoadSymbols()) { - return NULL; - } - - device = (SDL_VideoDevice *) SDL_calloc(1, sizeof(SDL_VideoDevice)); - if (!device) { - SDL_OutOfMemory(); - return NULL; - } - - viddata = (SDL_VideoData *) SDL_calloc(1, sizeof(SDL_VideoData)); - if (!viddata) { - SDL_OutOfMemory(); - goto cleanup; - } - viddata->devindex = devindex; - viddata->drm_fd = -1; - - device->driverdata = viddata; - - /* Setup all functions which we can handle */ - device->VideoInit = KMSDRM_LEGACY_VideoInit; - device->VideoQuit = KMSDRM_LEGACY_VideoQuit; - device->GetDisplayModes = KMSDRM_LEGACY_GetDisplayModes; - device->SetDisplayMode = KMSDRM_LEGACY_SetDisplayMode; - device->CreateSDLWindow = KMSDRM_LEGACY_CreateWindow; - device->CreateSDLWindowFrom = KMSDRM_LEGACY_CreateWindowFrom; - device->SetWindowTitle = KMSDRM_LEGACY_SetWindowTitle; - device->SetWindowIcon = KMSDRM_LEGACY_SetWindowIcon; - device->SetWindowPosition = KMSDRM_LEGACY_SetWindowPosition; - device->SetWindowSize = KMSDRM_LEGACY_SetWindowSize; - device->ShowWindow = KMSDRM_LEGACY_ShowWindow; - device->HideWindow = KMSDRM_LEGACY_HideWindow; - device->RaiseWindow = KMSDRM_LEGACY_RaiseWindow; - device->MaximizeWindow = KMSDRM_LEGACY_MaximizeWindow; - device->MinimizeWindow = KMSDRM_LEGACY_MinimizeWindow; - device->RestoreWindow = KMSDRM_LEGACY_RestoreWindow; - device->SetWindowGrab = KMSDRM_LEGACY_SetWindowGrab; - device->DestroyWindow = KMSDRM_LEGACY_DestroyWindow; - device->GetWindowWMInfo = KMSDRM_LEGACY_GetWindowWMInfo; -#if SDL_VIDEO_OPENGL_EGL - device->GL_LoadLibrary = KMSDRM_LEGACY_GLES_LoadLibrary; - device->GL_GetProcAddress = KMSDRM_LEGACY_GLES_GetProcAddress; - device->GL_UnloadLibrary = KMSDRM_LEGACY_GLES_UnloadLibrary; - device->GL_CreateContext = KMSDRM_LEGACY_GLES_CreateContext; - device->GL_MakeCurrent = KMSDRM_LEGACY_GLES_MakeCurrent; - device->GL_SetSwapInterval = KMSDRM_LEGACY_GLES_SetSwapInterval; - device->GL_GetSwapInterval = KMSDRM_LEGACY_GLES_GetSwapInterval; - device->GL_SwapWindow = KMSDRM_LEGACY_GLES_SwapWindow; - device->GL_DeleteContext = KMSDRM_LEGACY_GLES_DeleteContext; -#endif - device->PumpEvents = KMSDRM_LEGACY_PumpEvents; - device->free = KMSDRM_LEGACY_DeleteDevice; - - return device; - -cleanup: - if (device) - SDL_free(device); - if (viddata) - SDL_free(viddata); - return NULL; -} - -VideoBootStrap KMSDRM_LEGACY_bootstrap = { - "KMSDRM_LEGACY", - "KMS/DRM Video Driver", - KMSDRM_LEGACY_CreateDevice -}; - - -static void -KMSDRM_LEGACY_FBDestroyCallback(struct gbm_bo *bo, void *data) -{ - KMSDRM_LEGACY_FBInfo *fb_info = (KMSDRM_LEGACY_FBInfo *)data; - - if (fb_info && fb_info->drm_fd >= 0 && fb_info->fb_id != 0) { - KMSDRM_LEGACY_drmModeRmFB(fb_info->drm_fd, fb_info->fb_id); - SDL_LogDebug(SDL_LOG_CATEGORY_VIDEO, "Delete DRM FB %u", fb_info->fb_id); - } - - SDL_free(fb_info); -} - -KMSDRM_LEGACY_FBInfo * -KMSDRM_LEGACY_FBFromBO(_THIS, struct gbm_bo *bo) -{ - SDL_VideoData *viddata = ((SDL_VideoData *)_this->driverdata); - unsigned w,h; - int ret; - Uint32 stride, handle; - - /* Check for an existing framebuffer */ - KMSDRM_LEGACY_FBInfo *fb_info = (KMSDRM_LEGACY_FBInfo *)KMSDRM_LEGACY_gbm_bo_get_user_data(bo); - - if (fb_info) { - return fb_info; - } - - /* Create a structure that contains enough info to remove the framebuffer - when the backing buffer is destroyed */ - fb_info = (KMSDRM_LEGACY_FBInfo *)SDL_calloc(1, sizeof(KMSDRM_LEGACY_FBInfo)); - - if (!fb_info) { - SDL_OutOfMemory(); - return NULL; - } - - fb_info->drm_fd = viddata->drm_fd; - - /* Create framebuffer object for the buffer */ - w = KMSDRM_LEGACY_gbm_bo_get_width(bo); - h = KMSDRM_LEGACY_gbm_bo_get_height(bo); - stride = KMSDRM_LEGACY_gbm_bo_get_stride(bo); - handle = KMSDRM_LEGACY_gbm_bo_get_handle(bo).u32; - ret = KMSDRM_LEGACY_drmModeAddFB(viddata->drm_fd, w, h, 24, 32, stride, handle, - &fb_info->fb_id); - if (ret) { - SDL_free(fb_info); - return NULL; - } - - SDL_LogDebug(SDL_LOG_CATEGORY_VIDEO, "New DRM FB (%u): %ux%u, stride %u from BO %p", - fb_info->fb_id, w, h, stride, (void *)bo); - - /* Associate our DRM framebuffer with this buffer object */ - KMSDRM_LEGACY_gbm_bo_set_user_data(bo, fb_info, KMSDRM_LEGACY_FBDestroyCallback); - - return fb_info; -} - -static void -KMSDRM_LEGACY_FlipHandler(int fd, unsigned int frame, unsigned int sec, unsigned int usec, void *data) -{ - *((SDL_bool *) data) = SDL_FALSE; -} - -SDL_bool -KMSDRM_LEGACY_WaitPageFlip(_THIS, SDL_WindowData *windata, int timeout) { - SDL_VideoData *viddata = ((SDL_VideoData *)_this->driverdata); - drmEventContext ev = {0}; - struct pollfd pfd = {0}; - - ev.version = DRM_EVENT_CONTEXT_VERSION; - ev.page_flip_handler = KMSDRM_LEGACY_FlipHandler; - - pfd.fd = viddata->drm_fd; - pfd.events = POLLIN; - - while (windata->waiting_for_flip) { - pfd.revents = 0; - - if (poll(&pfd, 1, timeout) < 0) { - SDL_LogError(SDL_LOG_CATEGORY_VIDEO, "DRM poll error"); - return SDL_FALSE; - } - - if (pfd.revents & (POLLHUP | POLLERR)) { - SDL_LogError(SDL_LOG_CATEGORY_VIDEO, "DRM poll hup or error"); - return SDL_FALSE; - } - - if (pfd.revents & POLLIN) { - /* Page flip? If so, drmHandleEvent will unset windata->waiting_for_flip */ - KMSDRM_LEGACY_drmHandleEvent(viddata->drm_fd, &ev); - } else { - /* Timed out and page flip didn't happen */ - SDL_LogDebug(SDL_LOG_CATEGORY_VIDEO, "Dropping frame while waiting_for_flip"); - return SDL_FALSE; - } - } - - return SDL_TRUE; -} - -/*****************************************************************************/ -/* SDL Video and Display initialization/handling functions */ -/* _this is a SDL_VideoDevice * */ -/*****************************************************************************/ -static void -KMSDRM_LEGACY_DestroySurfaces(_THIS, SDL_Window * window) -{ - SDL_WindowData *windata = (SDL_WindowData *)window->driverdata; - - KMSDRM_LEGACY_WaitPageFlip(_this, windata, -1); - - if (windata->curr_bo) { - KMSDRM_LEGACY_gbm_surface_release_buffer(windata->gs, windata->curr_bo); - windata->curr_bo = NULL; - } - - if (windata->next_bo) { - KMSDRM_LEGACY_gbm_surface_release_buffer(windata->gs, windata->next_bo); - windata->next_bo = NULL; - } - -#if SDL_VIDEO_OPENGL_EGL - SDL_EGL_MakeCurrent(_this, EGL_NO_SURFACE, EGL_NO_CONTEXT); - - if (windata->egl_surface != EGL_NO_SURFACE) { - SDL_EGL_DestroySurface(_this, windata->egl_surface); - windata->egl_surface = EGL_NO_SURFACE; - } -#endif - - if (windata->gs) { - KMSDRM_LEGACY_gbm_surface_destroy(windata->gs); - windata->gs = NULL; - } -} - -int -KMSDRM_LEGACY_CreateSurfaces(_THIS, SDL_Window * window) -{ - SDL_VideoData *viddata = ((SDL_VideoData *)_this->driverdata); - SDL_WindowData *windata = (SDL_WindowData *)window->driverdata; - SDL_DisplayData *dispdata = (SDL_DisplayData *) SDL_GetDisplayForWindow(window)->driverdata; - Uint32 width = dispdata->mode.hdisplay; - Uint32 height = dispdata->mode.vdisplay; - Uint32 surface_fmt = GBM_FORMAT_XRGB8888; - Uint32 surface_flags = GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING; -#if SDL_VIDEO_OPENGL_EGL - EGLContext egl_context; -#endif - - if (!KMSDRM_LEGACY_gbm_device_is_format_supported(viddata->gbm, surface_fmt, surface_flags)) { - SDL_LogWarn(SDL_LOG_CATEGORY_VIDEO, "GBM surface format not supported. Trying anyway."); - } - -#if SDL_VIDEO_OPENGL_EGL - SDL_EGL_SetRequiredVisualId(_this, surface_fmt); - egl_context = (EGLContext)SDL_GL_GetCurrentContext(); -#endif - - KMSDRM_LEGACY_DestroySurfaces(_this, window); - - windata->gs = KMSDRM_LEGACY_gbm_surface_create(viddata->gbm, width, height, surface_fmt, surface_flags); - - if (!windata->gs) { - return SDL_SetError("Could not create GBM surface"); - } - -#if SDL_VIDEO_OPENGL_EGL - windata->egl_surface = SDL_EGL_CreateSurface(_this, (NativeWindowType)windata->gs); - - if (windata->egl_surface == EGL_NO_SURFACE) { - return SDL_SetError("Could not create EGL window surface"); - } - - SDL_EGL_MakeCurrent(_this, windata->egl_surface, egl_context); - - windata->egl_surface_dirty = 0; -#endif - - return 0; -} - -int -KMSDRM_LEGACY_VideoInit(_THIS) -{ - int i, j, ret = 0; - SDL_VideoData *viddata = ((SDL_VideoData *)_this->driverdata); - SDL_DisplayData *dispdata = NULL; - drmModeRes *resources = NULL; - drmModeEncoder *encoder = NULL; - char devname[32]; - SDL_VideoDisplay display = {0}; - - dispdata = (SDL_DisplayData *) SDL_calloc(1, sizeof(SDL_DisplayData)); - - if (!dispdata) { - return SDL_OutOfMemory(); - } - - SDL_LogDebug(SDL_LOG_CATEGORY_VIDEO, "KMSDRM_LEGACY_VideoInit()"); - - /* Open /dev/dri/cardNN */ - SDL_snprintf(devname, sizeof(devname), "/dev/dri/card%d", viddata->devindex); - - SDL_LogDebug(SDL_LOG_CATEGORY_VIDEO, "Opening device %s", devname); - viddata->drm_fd = open(devname, O_RDWR | O_CLOEXEC); - - if (viddata->drm_fd < 0) { - ret = SDL_SetError("Could not open %s", devname); - goto cleanup; - } - - SDL_LogDebug(SDL_LOG_CATEGORY_VIDEO, "Opened DRM FD (%d)", viddata->drm_fd); - - viddata->gbm = KMSDRM_LEGACY_gbm_create_device(viddata->drm_fd); - if (!viddata->gbm) { - ret = SDL_SetError("Couldn't create gbm device."); - goto cleanup; - } - - /* Get all of the available connectors / devices / crtcs */ - resources = KMSDRM_LEGACY_drmModeGetResources(viddata->drm_fd); - if (!resources) { - ret = SDL_SetError("drmModeGetResources(%d) failed", viddata->drm_fd); - goto cleanup; - } - - for (i = 0; i < resources->count_connectors; i++) { - drmModeConnector *conn = KMSDRM_LEGACY_drmModeGetConnector(viddata->drm_fd, resources->connectors[i]); - - if (!conn) { - continue; - } - - if (conn->connection == DRM_MODE_CONNECTED && conn->count_modes) { - SDL_LogDebug(SDL_LOG_CATEGORY_VIDEO, "Found connector %d with %d modes.", - conn->connector_id, conn->count_modes); - dispdata->conn = conn; - break; - } - - KMSDRM_LEGACY_drmModeFreeConnector(conn); - } - - if (!dispdata->conn) { - ret = SDL_SetError("No currently active connector found."); - goto cleanup; - } - - /* Try to find the connector's current encoder */ - for (i = 0; i < resources->count_encoders; i++) { - encoder = KMSDRM_LEGACY_drmModeGetEncoder(viddata->drm_fd, resources->encoders[i]); - - if (!encoder) { - continue; - } - - if (encoder->encoder_id == dispdata->conn->encoder_id) { - SDL_LogDebug(SDL_LOG_CATEGORY_VIDEO, "Found encoder %d.", encoder->encoder_id); - break; - } - - KMSDRM_LEGACY_drmModeFreeEncoder(encoder); - encoder = NULL; - } - - if (!encoder) { - /* No encoder was connected, find the first supported one */ - for (i = 0; i < resources->count_encoders; i++) { - encoder = KMSDRM_LEGACY_drmModeGetEncoder(viddata->drm_fd, resources->encoders[i]); - - if (!encoder) { - continue; - } - - for (j = 0; j < dispdata->conn->count_encoders; j++) { - if (dispdata->conn->encoders[j] == encoder->encoder_id) { - break; - } - } - - if (j != dispdata->conn->count_encoders) { - break; - } - - KMSDRM_LEGACY_drmModeFreeEncoder(encoder); - encoder = NULL; - } - } - - if (!encoder) { - ret = SDL_SetError("No connected encoder found."); - goto cleanup; - } - - SDL_LogDebug(SDL_LOG_CATEGORY_VIDEO, "Found encoder %d.", encoder->encoder_id); - - /* Try to find a CRTC connected to this encoder */ - dispdata->saved_crtc = KMSDRM_LEGACY_drmModeGetCrtc(viddata->drm_fd, encoder->crtc_id); - - if (!dispdata->saved_crtc) { - /* No CRTC was connected, find the first CRTC that can be connected */ - for (i = 0; i < resources->count_crtcs; i++) { - if (encoder->possible_crtcs & (1 << i)) { - encoder->crtc_id = resources->crtcs[i]; - dispdata->saved_crtc = KMSDRM_LEGACY_drmModeGetCrtc(viddata->drm_fd, encoder->crtc_id); - break; - } - } - } - - if (!dispdata->saved_crtc) { - ret = SDL_SetError("No CRTC found."); - goto cleanup; - } - - SDL_LogDebug(SDL_LOG_CATEGORY_VIDEO, "Saved crtc_id %u, fb_id %u, (%u,%u), %ux%u", - dispdata->saved_crtc->crtc_id, dispdata->saved_crtc->buffer_id, dispdata->saved_crtc->x, - dispdata->saved_crtc->y, dispdata->saved_crtc->width, dispdata->saved_crtc->height); - - dispdata->crtc_id = encoder->crtc_id; - - /* Figure out the default mode to be set. If the current CRTC's mode isn't - valid, select the first mode supported by the connector - - FIXME find first mode that specifies DRM_MODE_TYPE_PREFERRED */ - dispdata->mode = dispdata->saved_crtc->mode; - - if (dispdata->saved_crtc->mode_valid == 0) { - SDL_LogDebug(SDL_LOG_CATEGORY_VIDEO, - "Current mode is invalid, selecting connector's mode #0."); - dispdata->mode = dispdata->conn->modes[0]; - } - - /* Setup the single display that's available */ - - display.desktop_mode.w = dispdata->mode.hdisplay; - display.desktop_mode.h = dispdata->mode.vdisplay; - display.desktop_mode.refresh_rate = dispdata->mode.vrefresh; -#if 1 - display.desktop_mode.format = SDL_PIXELFORMAT_ARGB8888; -#else - /* FIXME */ - drmModeFB *fb = drmModeGetFB(viddata->drm_fd, dispdata->saved_crtc->buffer_id); - display.desktop_mode.format = drmToSDLPixelFormat(fb->bpp, fb->depth); - drmModeFreeFB(fb); -#endif - display.current_mode = display.desktop_mode; - display.driverdata = dispdata; - SDL_AddVideoDisplay(&display, SDL_FALSE); - -#ifdef SDL_INPUT_LINUXEV - SDL_EVDEV_Init(); -#endif - - KMSDRM_LEGACY_InitMouse(_this); - - return ret; - -cleanup: - if (encoder) - KMSDRM_LEGACY_drmModeFreeEncoder(encoder); - if (resources) - KMSDRM_LEGACY_drmModeFreeResources(resources); - - if (ret != 0) { - /* Error (complete) cleanup */ - if (dispdata->conn) { - KMSDRM_LEGACY_drmModeFreeConnector(dispdata->conn); - dispdata->conn = NULL; - } - if (dispdata->saved_crtc) { - KMSDRM_LEGACY_drmModeFreeCrtc(dispdata->saved_crtc); - dispdata->saved_crtc = NULL; - } - if (viddata->gbm) { - KMSDRM_LEGACY_gbm_device_destroy(viddata->gbm); - viddata->gbm = NULL; - } - if (viddata->drm_fd >= 0) { - close(viddata->drm_fd); - viddata->drm_fd = -1; - } - SDL_free(dispdata); - } - return ret; -} - -void -KMSDRM_LEGACY_VideoQuit(_THIS) -{ - SDL_VideoData *viddata = ((SDL_VideoData *)_this->driverdata); - SDL_DisplayData *dispdata = (SDL_DisplayData *)SDL_GetDisplayDriverData(0); - - SDL_LogDebug(SDL_LOG_CATEGORY_VIDEO, "KMSDRM_LEGACY_VideoQuit()"); - - if (_this->gl_config.driver_loaded) { - SDL_GL_UnloadLibrary(); - } - - /* Clear out the window list */ - SDL_free(viddata->windows); - viddata->windows = NULL; - viddata->max_windows = 0; - viddata->num_windows = 0; - - /* Restore saved CRTC settings */ - if (viddata->drm_fd >= 0 && dispdata && dispdata->conn && dispdata->saved_crtc) { - drmModeConnector *conn = dispdata->conn; - drmModeCrtc *crtc = dispdata->saved_crtc; - - int ret = KMSDRM_LEGACY_drmModeSetCrtc(viddata->drm_fd, crtc->crtc_id, crtc->buffer_id, - crtc->x, crtc->y, &conn->connector_id, 1, &crtc->mode); - - if (ret != 0) { - SDL_LogWarn(SDL_LOG_CATEGORY_VIDEO, "Could not restore original CRTC mode"); - } - } - if (dispdata && dispdata->conn) { - KMSDRM_LEGACY_drmModeFreeConnector(dispdata->conn); - dispdata->conn = NULL; - } - if (dispdata && dispdata->saved_crtc) { - KMSDRM_LEGACY_drmModeFreeCrtc(dispdata->saved_crtc); - dispdata->saved_crtc = NULL; - } - if (viddata->gbm) { - KMSDRM_LEGACY_gbm_device_destroy(viddata->gbm); - viddata->gbm = NULL; - } - if (viddata->drm_fd >= 0) { - close(viddata->drm_fd); - SDL_LogDebug(SDL_LOG_CATEGORY_VIDEO, "Closed DRM FD %d", viddata->drm_fd); - viddata->drm_fd = -1; - } -#ifdef SDL_INPUT_LINUXEV - SDL_EVDEV_Quit(); -#endif -} - -void -KMSDRM_LEGACY_GetDisplayModes(_THIS, SDL_VideoDisplay * display) -{ - SDL_DisplayData *dispdata = display->driverdata; - drmModeConnector *conn = dispdata->conn; - SDL_DisplayMode mode; - int i; - - for (i = 0; i < conn->count_modes; i++) { - SDL_DisplayModeData *modedata = SDL_calloc(1, sizeof(SDL_DisplayModeData)); - - if (modedata) { - modedata->mode_index = i; - } - - mode.w = conn->modes[i].hdisplay; - mode.h = conn->modes[i].vdisplay; - mode.refresh_rate = conn->modes[i].vrefresh; - mode.format = SDL_PIXELFORMAT_ARGB8888; - mode.driverdata = modedata; - - if (!SDL_AddDisplayMode(display, &mode)) { - SDL_free(modedata); - } - } -} - -int -KMSDRM_LEGACY_SetDisplayMode(_THIS, SDL_VideoDisplay * display, SDL_DisplayMode * mode) -{ - SDL_VideoData *viddata = (SDL_VideoData *)_this->driverdata; - SDL_DisplayData *dispdata = (SDL_DisplayData *)display->driverdata; - SDL_DisplayModeData *modedata = (SDL_DisplayModeData *)mode->driverdata; - drmModeConnector *conn = dispdata->conn; - int i; - - if (!modedata) { - return SDL_SetError("Mode doesn't have an associated index"); - } - - dispdata->mode = conn->modes[modedata->mode_index]; - - for (i = 0; i < viddata->num_windows; i++) { - SDL_Window *window = viddata->windows[i]; - SDL_WindowData *windata = (SDL_WindowData *)window->driverdata; - -#if SDL_VIDEO_OPENGL_EGL - /* Can't recreate EGL surfaces right now, need to wait until SwapWindow - so the correct thread-local surface and context state are available */ - windata->egl_surface_dirty = 1; -#else - if (KMSDRM_LEGACY_CreateSurfaces(_this, window)) { - return -1; - } -#endif - - /* Tell app about the resize */ - SDL_SendWindowEvent(window, SDL_WINDOWEVENT_RESIZED, mode->w, mode->h); - } - - return 0; -} - -int -KMSDRM_LEGACY_CreateWindow(_THIS, SDL_Window * window) -{ - SDL_VideoData *viddata = (SDL_VideoData *)_this->driverdata; - SDL_WindowData *windata; - SDL_VideoDisplay *display; - -#if SDL_VIDEO_OPENGL_EGL - if (!_this->egl_data) { - if (SDL_GL_LoadLibrary(NULL) < 0) { - goto error; - } - } -#endif - - /* Allocate window internal data */ - windata = (SDL_WindowData *)SDL_calloc(1, sizeof(SDL_WindowData)); - - if (!windata) { - SDL_OutOfMemory(); - goto error; - } - - /* Windows have one size for now */ - display = SDL_GetDisplayForWindow(window); - window->w = display->desktop_mode.w; - window->h = display->desktop_mode.h; - - /* Maybe you didn't ask for a fullscreen OpenGL window, but that's what you get */ - window->flags |= (SDL_WINDOW_FULLSCREEN | SDL_WINDOW_OPENGL); - - /* In case we want low-latency, double-buffer video, we take note here */ - windata->double_buffer = SDL_FALSE; - - if (SDL_GetHintBoolean(SDL_HINT_VIDEO_DOUBLE_BUFFER, SDL_FALSE)) { - windata->double_buffer = SDL_TRUE; - } - - /* Setup driver data for this window */ - windata->viddata = viddata; - window->driverdata = windata; - - if (KMSDRM_LEGACY_CreateSurfaces(_this, window)) { - goto error; - } - - /* Add window to the internal list of tracked windows. Note, while it may - seem odd to support multiple fullscreen windows, some apps create an - extra window as a dummy surface when working with multiple contexts */ - if (viddata->num_windows >= viddata->max_windows) { - int new_max_windows = viddata->max_windows + 1; - viddata->windows = (SDL_Window **)SDL_realloc(viddata->windows, - new_max_windows * sizeof(SDL_Window *)); - viddata->max_windows = new_max_windows; - - if (!viddata->windows) { - SDL_OutOfMemory(); - goto error; - } - } - - viddata->windows[viddata->num_windows++] = window; - - /* Focus on the newly created window */ - SDL_SetMouseFocus(window); - SDL_SetKeyboardFocus(window); - - return 0; - -error: - KMSDRM_LEGACY_DestroyWindow(_this, window); - - return -1; -} - -void -KMSDRM_LEGACY_DestroyWindow(_THIS, SDL_Window * window) -{ - SDL_WindowData *windata = (SDL_WindowData *) window->driverdata; - SDL_VideoData *viddata; - int i, j; - - if (!windata) { - return; - } - - /* Remove from the internal window list */ - viddata = windata->viddata; - - for (i = 0; i < viddata->num_windows; i++) { - if (viddata->windows[i] == window) { - viddata->num_windows--; - - for (j = i; j < viddata->num_windows; j++) { - viddata->windows[j] = viddata->windows[j + 1]; - } - - break; - } - } - - KMSDRM_LEGACY_DestroySurfaces(_this, window); - - window->driverdata = NULL; - - SDL_free(windata); -} - -int -KMSDRM_LEGACY_CreateWindowFrom(_THIS, SDL_Window * window, const void *data) -{ - return -1; -} - -void -KMSDRM_LEGACY_SetWindowTitle(_THIS, SDL_Window * window) -{ -} -void -KMSDRM_LEGACY_SetWindowIcon(_THIS, SDL_Window * window, SDL_Surface * icon) -{ -} -void -KMSDRM_LEGACY_SetWindowPosition(_THIS, SDL_Window * window) -{ -} -void -KMSDRM_LEGACY_SetWindowSize(_THIS, SDL_Window * window) -{ -} -void -KMSDRM_LEGACY_ShowWindow(_THIS, SDL_Window * window) -{ -} -void -KMSDRM_LEGACY_HideWindow(_THIS, SDL_Window * window) -{ -} -void -KMSDRM_LEGACY_RaiseWindow(_THIS, SDL_Window * window) -{ -} -void -KMSDRM_LEGACY_MaximizeWindow(_THIS, SDL_Window * window) -{ -} -void -KMSDRM_LEGACY_MinimizeWindow(_THIS, SDL_Window * window) -{ -} -void -KMSDRM_LEGACY_RestoreWindow(_THIS, SDL_Window * window) -{ -} -void -KMSDRM_LEGACY_SetWindowGrab(_THIS, SDL_Window * window, SDL_bool grabbed) -{ - -} - -/*****************************************************************************/ -/* SDL Window Manager function */ -/*****************************************************************************/ -SDL_bool -KMSDRM_LEGACY_GetWindowWMInfo(_THIS, SDL_Window * window, struct SDL_SysWMinfo *info) -{ - if (info->version.major <= SDL_MAJOR_VERSION) { - return SDL_TRUE; - } else { - SDL_SetError("application not compiled with SDL %d.%d\n", - SDL_MAJOR_VERSION, SDL_MINOR_VERSION); - return SDL_FALSE; - } - - /* Failed to get window manager information */ - return SDL_FALSE; -} - -#endif /* SDL_VIDEO_DRIVER_KMSDRM */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_video.h b/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_video.h deleted file mode 100755 index 28e1bc4fe..000000000 --- a/externals/SDL/src/video/kmsdrm_legacy/SDL_kmsdrm_legacy_video.h +++ /dev/null @@ -1,132 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2020 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#include "../../SDL_internal.h" - -#ifndef __SDL_KMSDRM_LEGACYVIDEO_H__ -#define __SDL_KMSDRM_LEGACYVIDEO_H__ - -#include "../SDL_sysvideo.h" - -#include -#include -#include -#include -#include -#if SDL_VIDEO_OPENGL_EGL -#include -#endif - -typedef struct SDL_VideoData -{ - int devindex; /* device index that was passed on creation */ - int drm_fd; /* DRM file desc */ - struct gbm_device *gbm; - - SDL_Window **windows; - int max_windows; - int num_windows; -} SDL_VideoData; - - -typedef struct SDL_DisplayModeData -{ - int mode_index; -} SDL_DisplayModeData; - - -typedef struct SDL_DisplayData -{ - uint32_t crtc_id; - drmModeConnector *conn; - drmModeModeInfo mode; - drmModeCrtc *saved_crtc; /* CRTC to restore on quit */ -} SDL_DisplayData; - - -typedef struct SDL_WindowData -{ - SDL_VideoData *viddata; - struct gbm_surface *gs; - struct gbm_bo *curr_bo; - struct gbm_bo *next_bo; - struct gbm_bo *crtc_bo; - SDL_bool waiting_for_flip; - SDL_bool double_buffer; -#if SDL_VIDEO_OPENGL_EGL - int egl_surface_dirty; - EGLSurface egl_surface; -#endif -} SDL_WindowData; - -typedef struct KMSDRM_LEGACY_FBInfo -{ - int drm_fd; /* DRM file desc */ - uint32_t fb_id; /* DRM framebuffer ID */ -} KMSDRM_LEGACY_FBInfo; - -/* Helper functions */ -int KMSDRM_LEGACY_CreateSurfaces(_THIS, SDL_Window * window); -KMSDRM_LEGACY_FBInfo *KMSDRM_LEGACY_FBFromBO(_THIS, struct gbm_bo *bo); -SDL_bool KMSDRM_LEGACY_WaitPageFlip(_THIS, SDL_WindowData *windata, int timeout); - -/****************************************************************************/ -/* SDL_VideoDevice functions declaration */ -/****************************************************************************/ - -/* Display and window functions */ -int KMSDRM_LEGACY_VideoInit(_THIS); -void KMSDRM_LEGACY_VideoQuit(_THIS); -void KMSDRM_LEGACY_GetDisplayModes(_THIS, SDL_VideoDisplay * display); -int KMSDRM_LEGACY_SetDisplayMode(_THIS, SDL_VideoDisplay * display, SDL_DisplayMode * mode); -int KMSDRM_LEGACY_CreateWindow(_THIS, SDL_Window * window); -int KMSDRM_LEGACY_CreateWindowFrom(_THIS, SDL_Window * window, const void *data); -void KMSDRM_LEGACY_SetWindowTitle(_THIS, SDL_Window * window); -void KMSDRM_LEGACY_SetWindowIcon(_THIS, SDL_Window * window, SDL_Surface * icon); -void KMSDRM_LEGACY_SetWindowPosition(_THIS, SDL_Window * window); -void KMSDRM_LEGACY_SetWindowSize(_THIS, SDL_Window * window); -void KMSDRM_LEGACY_ShowWindow(_THIS, SDL_Window * window); -void KMSDRM_LEGACY_HideWindow(_THIS, SDL_Window * window); -void KMSDRM_LEGACY_RaiseWindow(_THIS, SDL_Window * window); -void KMSDRM_LEGACY_MaximizeWindow(_THIS, SDL_Window * window); -void KMSDRM_LEGACY_MinimizeWindow(_THIS, SDL_Window * window); -void KMSDRM_LEGACY_RestoreWindow(_THIS, SDL_Window * window); -void KMSDRM_LEGACY_SetWindowGrab(_THIS, SDL_Window * window, SDL_bool grabbed); -void KMSDRM_LEGACY_DestroyWindow(_THIS, SDL_Window * window); - -/* Window manager function */ -SDL_bool KMSDRM_LEGACY_GetWindowWMInfo(_THIS, SDL_Window * window, - struct SDL_SysWMinfo *info); - -/* OpenGL/OpenGL ES functions */ -int KMSDRM_LEGACY_GLES_LoadLibrary(_THIS, const char *path); -void *KMSDRM_LEGACY_GLES_GetProcAddress(_THIS, const char *proc); -void KMSDRM_LEGACY_GLES_UnloadLibrary(_THIS); -SDL_GLContext KMSDRM_LEGACY_GLES_CreateContext(_THIS, SDL_Window * window); -int KMSDRM_LEGACY_GLES_MakeCurrent(_THIS, SDL_Window * window, SDL_GLContext context); -int KMSDRM_LEGACY_GLES_SetSwapInterval(_THIS, int interval); -int KMSDRM_LEGACY_GLES_GetSwapInterval(_THIS); -int KMSDRM_LEGACY_GLES_SwapWindow(_THIS, SDL_Window * window); -void KMSDRM_LEGACY_GLES_DeleteContext(_THIS, SDL_GLContext context); - -#endif /* __SDL_KMSDRM_LEGACYVIDEO_H__ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/externals/SDL/src/video/os2/my_gradd.h b/externals/SDL/src/video/os2/my_gradd.h deleted file mode 100755 index 3f0f3265d..000000000 --- a/externals/SDL/src/video/os2/my_gradd.h +++ /dev/null @@ -1,171 +0,0 @@ -/* -gradd.h structures and constants -- only the ones used by SDL_os2vman.c. - -Based on public knowledge from around the internet including pages from -http://www.osfree.org and http://www.edm2.com -*/ - -#ifndef my_gradd_h_ -#define my_gradd_h_ - -typedef struct _INITPROCOUT { - ULONG ulLength; /* Length of the INITPROCOUT data structure, in bytes. */ - ULONG ulVRAMVirt; /* 32-bit virtual address of VRAM. */ -} INITPROCOUT; -typedef INITPROCOUT *PINITPROCOUT; - -#define RC_SUCCESS 0 - -typedef ULONG GID; -typedef ULONG (_System FNVMIENTRY) ( - GID gid, ULONG ulFunction, - PVOID pIn, - PVOID pOut /* PINITPROCOUT */ -); - -#define VMI_CMD_INITPROC 1 -#define VMI_CMD_TERMPROC 3 -#define VMI_CMD_QUERYMODES 5 -#define VMI_CMD_SETMODE 6 -#define VMI_CMD_PALETTE 7 -#define VMI_CMD_BITBLT 8 -#define VMI_CMD_LINE 9 -#define VMI_CMD_REQUESTHW 14 -#define VMI_CMD_QUERYCURRENTMODE 0x1001 - -#define QUERYMODE_NUM_MODES 0x01 -#define QUERYMODE_MODE_DATA 0x02 - -typedef struct _HWPALETTEINFO { - ULONG ulLength; /* Size of the HWPALETTEINFO data structure, in bytes. */ - ULONG fFlags; /* Palette flag. */ - ULONG ulStartIndex; /* Starting palette index. */ - ULONG ulNumEntries; /* Number of palette slots to query or set. */ - PRGB2 pRGBs; /* Pointer to the array of RGB values. */ -} HWPALETTEINFO; -typedef HWPALETTEINFO *PHWPALETTEINFO; - -#define PALETTE_GET 0x01 -#define PALETTE_SET 0x02 - -typedef struct _BMAPINFO { - ULONG ulLength; /* Length of the BMAPINFO data structure, in bytes. */ - ULONG ulType; /* Description of the Blt. */ - ULONG ulWidth; /* Width in pels of the bit map. */ - ULONG ulHeight; /* Height in pels of the bit map. */ - ULONG ulBpp; /* Number of bits per pel/color depth. */ - ULONG ulBytesPerLine; /* Number of aligned bytes per line. */ - PBYTE pBits; /* Pointer to bit-map bits. */ -} BMAPINFO; -typedef BMAPINFO *PBMAPINFO; - -#define BMAP_VRAM 0 -#define BMAP_MEMORY 1 - -typedef struct _LINEPACK { - ULONG ulStyleStep; /* Value to be added to ulStyleValue. */ - ULONG ulStyleValue; /* Style value at the current pel. */ - ULONG ulFlags; /* Flags used for the LINEPACK data structure. */ - struct _LINEPACK *plpkNext; /* Pointer to next LINEPACK data structure. */ - ULONG ulAbsDeltaX; /* Clipped Bresenham Delta X, absolute. */ - ULONG ulAbsDeltaY; /* Clipped Bresenham Delta Y, absolute. */ - POINTL ptlClipStart; /* Pointer to location for device to perform Bresenham algorithm. */ - POINTL ptlClipEnd; /* Ending location for Bresenham algorithm (see ptlClipStart). */ - POINTL ptlStart; /* Pointer to starting location for line. */ - POINTL ptlEnd; /* Ending location for line. */ - LONG lClipStartError;/* Standard Bresenham error at the clipped start point. */ -} LINEPACK; -typedef LINEPACK *PLINEPACK; - -typedef struct _LINEINFO { - ULONG ulLength; /* Length of LINEINFO data structure. */ - ULONG ulType; /* Defines line type. */ - ULONG ulStyleMask; /* A 32-bit style mask. */ - ULONG cLines; /* Count of lines to be drawn. */ - ULONG ulFGColor; /* Line Foreground color. */ - ULONG ulBGColor; /* Line Background color. */ - USHORT usForeROP; /* Line Foreground mix. */ - USHORT usBackROP; /* Line Background mix. */ - PBMAPINFO pDstBmapInfo; /* Pointer to destination surface bit map. */ - PLINEPACK alpkLinePack; /* Pointer to LINEPACK data structure. */ - PRECTL prclBounds; /* Pointer to bounding rect of a clipped line. */ -} LINEINFO; -typedef LINEINFO *PLINEINFO; - -#define LINE_DO_FIRST_PEL 0x02 -#define LINE_DIR_Y_POSITIVE 0x04 -#define LINE_HORIZONTAL 0x08 -#define LINE_DIR_X_POSITIVE 0x20 -#define LINE_VERTICAL 0x1000 -#define LINE_DO_LAST_PEL 0x4000 -#define LINE_SOLID 0x01 - -typedef struct _BLTRECT { - ULONG ulXOrg; /* X origin of the destination Blt. */ - ULONG ulYOrg; /* Y origin of the destination Blt. */ - ULONG ulXExt; /* X extent of the BitBlt. */ - ULONG ulYExt; /* Y extent of the BitBlt. */ -} BLTRECT; -typedef BLTRECT *PBLTRECT; - -typedef struct _BITBLTINFO { - ULONG ulLength; /* Length of the BITBLTINFO data structure, in bytes. */ - ULONG ulBltFlags; /* Flags for rendering of rasterized data. */ - ULONG cBlits; /* Count of Blts to be performed. */ - ULONG ulROP; /* Raster operation. */ - ULONG ulMonoBackROP; /* Background mix if B_APPLY_BACK_ROP is set. */ - ULONG ulSrcFGColor; /* Monochrome source Foreground color. */ - ULONG ulSrcBGColor; /* Monochrome source Background color and transparent color. */ - ULONG ulPatFGColor; /* Monochrome pattern Foreground color. */ - ULONG ulPatBGColor; /* Monochrome pattern Background color. */ - PBYTE abColors; /* Pointer to color translation table. */ - PBMAPINFO pSrcBmapInfo; /* Pointer to source bit map (BMAPINFO) */ - PBMAPINFO pDstBmapInfo; /* Pointer to destination bit map (BMAPINFO). */ - PBMAPINFO pPatBmapInfo; /* Pointer to pattern bit map (BMAPINFO). */ - PPOINTL aptlSrcOrg; /* Pointer to array of source origin POINTLs. */ - PPOINTL aptlPatOrg; /* Pointer to array of pattern origin POINTLs. */ - PBLTRECT abrDst; /* Pointer to array of Blt rects. */ - PRECTL prclSrcBounds; /* Pointer to source bounding rect of source Blts. */ - PRECTL prclDstBounds; /* Pointer to destination bounding rect of destination Blts. */ -} BITBLTINFO; -typedef BITBLTINFO *PBITBLTINFO; - -#define BF_DEFAULT_STATE 0x0 -#define BF_ROP_INCL_SRC (0x01 << 2) -#define BF_PAT_HOLLOW (0x01 << 8) - -typedef struct _GDDMODEINFO { - ULONG ulLength; /* Size of the GDDMODEINFO data structure, in bytes. */ - ULONG ulModeId; /* ID used to make SETMODE request. */ - ULONG ulBpp; /* Number of colors (bpp). */ - ULONG ulHorizResolution;/* Number of horizontal pels. */ - ULONG ulVertResolution; /* Number of vertical scan lines. */ - ULONG ulRefreshRate; /* Refresh rate in Hz. */ - PBYTE pbVRAMPhys; /* Physical address of VRAM. */ - ULONG ulApertureSize; /* Size of VRAM, in bytes. */ - ULONG ulScanLineSize; /* Size of one scan line, in bytes. */ - - ULONG fccColorEncoding, ulTotalVRAMSize, cColors; -} GDDMODEINFO; -typedef GDDMODEINFO *PGDDMODEINFO; - -typedef struct _HWREQIN { - ULONG ulLength; /* Size of the HWREQIN data structure, in bytes. */ - ULONG ulFlags; /* Request option flags. */ - ULONG cScrChangeRects; /* Count of screen rectangles affected by HWREQIN. */ - PRECTL arectlScreen; /* Array of screen rectangles affected by HWREQIN. */ -} HWREQIN; -typedef HWREQIN *PHWREQIN; - -#define REQUEST_HW 0x01 - -/* -BOOL GreDeath(HDC hdc, PVOID pInstance, LONG lFunction); -LONG GreResurrection(HDC hdc, LONG cbVmem, PULONG pReserved, PVOID pInstance, LONG lFunction); -*/ -#define GreDeath(h) (BOOL)Gre32Entry3((ULONG)(h), 0, 0x40B7L) -#define GreResurrection(h,n,r) (LONG)Gre32Entry5((ULONG)(h), (ULONG)(n), (ULONG)(r), 0, 0x40B8L) -ULONG _System Gre32Entry3(ULONG, ULONG, ULONG); -ULONG _System Gre32Entry5(ULONG, ULONG, ULONG, ULONG, ULONG); - -#endif /* my_gradd_h_ */ diff --git a/externals/SDL/src/video/x11/imKStoUCS.c b/externals/SDL/src/video/x11/imKStoUCS.c deleted file mode 100755 index 40e224243..000000000 --- a/externals/SDL/src/video/x11/imKStoUCS.c +++ /dev/null @@ -1,350 +0,0 @@ -/* -Copyright (C) 2003-2006,2008 Jamey Sharp, Josh Triplett -Copyright © 2009 Red Hat, Inc. -Copyright 1990-1992,1999,2000,2004,2009,2010 Oracle and/or its affiliates. -All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice (including the next -paragraph) shall be included in all copies or substantial portions of the -Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. -*/ - -#include "../../SDL_internal.h" - -#if SDL_VIDEO_DRIVER_X11 -#include -#include "imKStoUCS.h" - -static unsigned short const keysym_to_unicode_1a1_1ff[] = { - 0x0104, 0x02d8, 0x0141, 0x0000, 0x013d, 0x015a, 0x0000, /* 0x01a0-0x01a7 */ - 0x0000, 0x0160, 0x015e, 0x0164, 0x0179, 0x0000, 0x017d, 0x017b, /* 0x01a8-0x01af */ - 0x0000, 0x0105, 0x02db, 0x0142, 0x0000, 0x013e, 0x015b, 0x02c7, /* 0x01b0-0x01b7 */ - 0x0000, 0x0161, 0x015f, 0x0165, 0x017a, 0x02dd, 0x017e, 0x017c, /* 0x01b8-0x01bf */ - 0x0154, 0x0000, 0x0000, 0x0102, 0x0000, 0x0139, 0x0106, 0x0000, /* 0x01c0-0x01c7 */ - 0x010c, 0x0000, 0x0118, 0x0000, 0x011a, 0x0000, 0x0000, 0x010e, /* 0x01c8-0x01cf */ - 0x0110, 0x0143, 0x0147, 0x0000, 0x0000, 0x0150, 0x0000, 0x0000, /* 0x01d0-0x01d7 */ - 0x0158, 0x016e, 0x0000, 0x0170, 0x0000, 0x0000, 0x0162, 0x0000, /* 0x01d8-0x01df */ - 0x0155, 0x0000, 0x0000, 0x0103, 0x0000, 0x013a, 0x0107, 0x0000, /* 0x01e0-0x01e7 */ - 0x010d, 0x0000, 0x0119, 0x0000, 0x011b, 0x0000, 0x0000, 0x010f, /* 0x01e8-0x01ef */ - 0x0111, 0x0144, 0x0148, 0x0000, 0x0000, 0x0151, 0x0000, 0x0000, /* 0x01f0-0x01f7 */ - 0x0159, 0x016f, 0x0000, 0x0171, 0x0000, 0x0000, 0x0163, 0x02d9 /* 0x01f8-0x01ff */ -}; - -static unsigned short const keysym_to_unicode_2a1_2fe[] = { - 0x0126, 0x0000, 0x0000, 0x0000, 0x0000, 0x0124, 0x0000, /* 0x02a0-0x02a7 */ - 0x0000, 0x0130, 0x0000, 0x011e, 0x0134, 0x0000, 0x0000, 0x0000, /* 0x02a8-0x02af */ - 0x0000, 0x0127, 0x0000, 0x0000, 0x0000, 0x0000, 0x0125, 0x0000, /* 0x02b0-0x02b7 */ - 0x0000, 0x0131, 0x0000, 0x011f, 0x0135, 0x0000, 0x0000, 0x0000, /* 0x02b8-0x02bf */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x010a, 0x0108, 0x0000, /* 0x02c0-0x02c7 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x02c8-0x02cf */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0120, 0x0000, 0x0000, /* 0x02d0-0x02d7 */ - 0x011c, 0x0000, 0x0000, 0x0000, 0x0000, 0x016c, 0x015c, 0x0000, /* 0x02d8-0x02df */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x010b, 0x0109, 0x0000, /* 0x02e0-0x02e7 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x02e8-0x02ef */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0121, 0x0000, 0x0000, /* 0x02f0-0x02f7 */ - 0x011d, 0x0000, 0x0000, 0x0000, 0x0000, 0x016d, 0x015d /* 0x02f8-0x02ff */ -}; - -static unsigned short const keysym_to_unicode_3a2_3fe[] = { - 0x0138, 0x0156, 0x0000, 0x0128, 0x013b, 0x0000, /* 0x03a0-0x03a7 */ - 0x0000, 0x0000, 0x0112, 0x0122, 0x0166, 0x0000, 0x0000, 0x0000, /* 0x03a8-0x03af */ - 0x0000, 0x0000, 0x0000, 0x0157, 0x0000, 0x0129, 0x013c, 0x0000, /* 0x03b0-0x03b7 */ - 0x0000, 0x0000, 0x0113, 0x0123, 0x0167, 0x014a, 0x0000, 0x014b, /* 0x03b8-0x03bf */ - 0x0100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x012e, /* 0x03c0-0x03c7 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0116, 0x0000, 0x0000, 0x012a, /* 0x03c8-0x03cf */ - 0x0000, 0x0145, 0x014c, 0x0136, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x03d0-0x03d7 */ - 0x0000, 0x0172, 0x0000, 0x0000, 0x0000, 0x0168, 0x016a, 0x0000, /* 0x03d8-0x03df */ - 0x0101, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x012f, /* 0x03e0-0x03e7 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0117, 0x0000, 0x0000, 0x012b, /* 0x03e8-0x03ef */ - 0x0000, 0x0146, 0x014d, 0x0137, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x03f0-0x03f7 */ - 0x0000, 0x0173, 0x0000, 0x0000, 0x0000, 0x0169, 0x016b /* 0x03f8-0x03ff */ -}; - -static unsigned short const keysym_to_unicode_4a1_4df[] = { - 0x3002, 0x3008, 0x3009, 0x3001, 0x30fb, 0x30f2, 0x30a1, /* 0x04a0-0x04a7 */ - 0x30a3, 0x30a5, 0x30a7, 0x30a9, 0x30e3, 0x30e5, 0x30e7, 0x30c3, /* 0x04a8-0x04af */ - 0x30fc, 0x30a2, 0x30a4, 0x30a6, 0x30a8, 0x30aa, 0x30ab, 0x30ad, /* 0x04b0-0x04b7 */ - 0x30af, 0x30b1, 0x30b3, 0x30b5, 0x30b7, 0x30b9, 0x30bb, 0x30bd, /* 0x04b8-0x04bf */ - 0x30bf, 0x30c1, 0x30c4, 0x30c6, 0x30c8, 0x30ca, 0x30cb, 0x30cc, /* 0x04c0-0x04c7 */ - 0x30cd, 0x30ce, 0x30cf, 0x30d2, 0x30d5, 0x30d8, 0x30db, 0x30de, /* 0x04c8-0x04cf */ - 0x30df, 0x30e0, 0x30e1, 0x30e2, 0x30e4, 0x30e6, 0x30e8, 0x30e9, /* 0x04d0-0x04d7 */ - 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ef, 0x30f3, 0x309b, 0x309c /* 0x04d8-0x04df */ -}; - -static unsigned short const keysym_to_unicode_590_5fe[] = { - 0x06f0, 0x06f1, 0x06f2, 0x06f3, 0x06f4, 0x06f5, 0x06f6, 0x06f7, /* 0x0590-0x0597 */ - 0x06f8, 0x06f9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0598-0x059f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x066a, 0x0670, 0x0679, /* 0x05a0-0x05a7 */ - - 0x067e, 0x0686, 0x0688, 0x0691, 0x060c, 0x0000, 0x06d4, 0x0000, /* 0x05ac-0x05af */ - 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, /* 0x05b0-0x05b7 */ - 0x0668, 0x0669, 0x0000, 0x061b, 0x0000, 0x0000, 0x0000, 0x061f, /* 0x05b8-0x05bf */ - 0x0000, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, /* 0x05c0-0x05c7 */ - 0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, /* 0x05c8-0x05cf */ - 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, /* 0x05d0-0x05d7 */ - 0x0638, 0x0639, 0x063a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x05d8-0x05df */ - 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, /* 0x05e0-0x05e7 */ - 0x0648, 0x0649, 0x064a, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f, /* 0x05e8-0x05ef */ - 0x0650, 0x0651, 0x0652, 0x0653, 0x0654, 0x0655, 0x0698, 0x06a4, /* 0x05f0-0x05f7 */ - 0x06a9, 0x06af, 0x06ba, 0x06be, 0x06cc, 0x06d2, 0x06c1 /* 0x05f8-0x05fe */ -}; - -static unsigned short keysym_to_unicode_680_6ff[] = { - 0x0492, 0x0496, 0x049a, 0x049c, 0x04a2, 0x04ae, 0x04b0, 0x04b2, /* 0x0680-0x0687 */ - 0x04b6, 0x04b8, 0x04ba, 0x0000, 0x04d8, 0x04e2, 0x04e8, 0x04ee, /* 0x0688-0x068f */ - 0x0493, 0x0497, 0x049b, 0x049d, 0x04a3, 0x04af, 0x04b1, 0x04b3, /* 0x0690-0x0697 */ - 0x04b7, 0x04b9, 0x04bb, 0x0000, 0x04d9, 0x04e3, 0x04e9, 0x04ef, /* 0x0698-0x069f */ - 0x0000, 0x0452, 0x0453, 0x0451, 0x0454, 0x0455, 0x0456, 0x0457, /* 0x06a0-0x06a7 */ - 0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x0491, 0x045e, 0x045f, /* 0x06a8-0x06af */ - 0x2116, 0x0402, 0x0403, 0x0401, 0x0404, 0x0405, 0x0406, 0x0407, /* 0x06b0-0x06b7 */ - 0x0408, 0x0409, 0x040a, 0x040b, 0x040c, 0x0490, 0x040e, 0x040f, /* 0x06b8-0x06bf */ - 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, /* 0x06c0-0x06c7 */ - 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, /* 0x06c8-0x06cf */ - 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, /* 0x06d0-0x06d7 */ - 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, /* 0x06d8-0x06df */ - 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, /* 0x06e0-0x06e7 */ - 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, /* 0x06e8-0x06ef */ - 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, /* 0x06f0-0x06f7 */ - 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a /* 0x06f8-0x06ff */ -}; - -static unsigned short const keysym_to_unicode_7a1_7f9[] = { - 0x0386, 0x0388, 0x0389, 0x038a, 0x03aa, 0x0000, 0x038c, /* 0x07a0-0x07a7 */ - 0x038e, 0x03ab, 0x0000, 0x038f, 0x0000, 0x0000, 0x0385, 0x2015, /* 0x07a8-0x07af */ - 0x0000, 0x03ac, 0x03ad, 0x03ae, 0x03af, 0x03ca, 0x0390, 0x03cc, /* 0x07b0-0x07b7 */ - 0x03cd, 0x03cb, 0x03b0, 0x03ce, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x07b8-0x07bf */ - 0x0000, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, /* 0x07c0-0x07c7 */ - 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, /* 0x07c8-0x07cf */ - 0x03a0, 0x03a1, 0x03a3, 0x0000, 0x03a4, 0x03a5, 0x03a6, 0x03a7, /* 0x07d0-0x07d7 */ - 0x03a8, 0x03a9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x07d8-0x07df */ - 0x0000, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, /* 0x07e0-0x07e7 */ - 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, /* 0x07e8-0x07ef */ - 0x03c0, 0x03c1, 0x03c3, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, /* 0x07f0-0x07f7 */ - 0x03c8, 0x03c9 /* 0x07f8-0x07ff */ -}; - -static unsigned short const keysym_to_unicode_8a4_8fe[] = { - 0x2320, 0x2321, 0x0000, 0x231c, /* 0x08a0-0x08a7 */ - 0x231d, 0x231e, 0x231f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x08a8-0x08af */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x08b0-0x08b7 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x2264, 0x2260, 0x2265, 0x222b, /* 0x08b8-0x08bf */ - 0x2234, 0x0000, 0x221e, 0x0000, 0x0000, 0x2207, 0x0000, 0x0000, /* 0x08c0-0x08c7 */ - 0x2245, 0x2246, 0x0000, 0x0000, 0x0000, 0x0000, 0x21d2, 0x0000, /* 0x08c8-0x08cf */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x221a, 0x0000, /* 0x08d0-0x08d7 */ - 0x0000, 0x0000, 0x2282, 0x2283, 0x2229, 0x222a, 0x2227, 0x2228, /* 0x08d8-0x08df */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x08e0-0x08e7 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2202, /* 0x08e8-0x08ef */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0192, 0x0000, /* 0x08f0-0x08f7 */ - 0x0000, 0x0000, 0x0000, 0x2190, 0x2191, 0x2192, 0x2193 /* 0x08f8-0x08ff */ -}; - -static unsigned short const keysym_to_unicode_9df_9f8[] = { - 0x2422, /* 0x09d8-0x09df */ - 0x2666, 0x25a6, 0x2409, 0x240c, 0x240d, 0x240a, 0x0000, 0x0000, /* 0x09e0-0x09e7 */ - 0x240a, 0x240b, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c, 0x2500, /* 0x09e8-0x09ef */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x251c, 0x2524, 0x2534, 0x252c, /* 0x09f0-0x09f7 */ - 0x2502 /* 0x09f8-0x09ff */ -}; - -static unsigned short const keysym_to_unicode_aa1_afe[] = { - 0x2003, 0x2002, 0x2004, 0x2005, 0x2007, 0x2008, 0x2009, /* 0x0aa0-0x0aa7 */ - 0x200a, 0x2014, 0x2013, 0x0000, 0x0000, 0x0000, 0x2026, 0x2025, /* 0x0aa8-0x0aaf */ - 0x2153, 0x2154, 0x2155, 0x2156, 0x2157, 0x2158, 0x2159, 0x215a, /* 0x0ab0-0x0ab7 */ - 0x2105, 0x0000, 0x0000, 0x2012, 0x2039, 0x2024, 0x203a, 0x0000, /* 0x0ab8-0x0abf */ - 0x0000, 0x0000, 0x0000, 0x215b, 0x215c, 0x215d, 0x215e, 0x0000, /* 0x0ac0-0x0ac7 */ - 0x0000, 0x2122, 0x2120, 0x0000, 0x25c1, 0x25b7, 0x25cb, 0x25ad, /* 0x0ac8-0x0acf */ - 0x2018, 0x2019, 0x201c, 0x201d, 0x211e, 0x2030, 0x2032, 0x2033, /* 0x0ad0-0x0ad7 */ - 0x0000, 0x271d, 0x0000, 0x220e, 0x25c2, 0x2023, 0x25cf, 0x25ac, /* 0x0ad8-0x0adf */ - 0x25e6, 0x25ab, 0x25ae, 0x25b5, 0x25bf, 0x2606, 0x2022, 0x25aa, /* 0x0ae0-0x0ae7 */ - 0x25b4, 0x25be, 0x261a, 0x261b, 0x2663, 0x2666, 0x2665, 0x0000, /* 0x0ae8-0x0aef */ - 0x2720, 0x2020, 0x2021, 0x2713, 0x2612, 0x266f, 0x266d, 0x2642, /* 0x0af0-0x0af7 */ - 0x2640, 0x2121, 0x2315, 0x2117, 0x2038, 0x201a, 0x201e /* 0x0af8-0x0aff */ -}; - -/* none of the APL keysyms match the Unicode characters */ - -static unsigned short const keysym_to_unicode_cdf_cfa[] = { - 0x2017, /* 0x0cd8-0x0cdf */ - 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, /* 0x0ce0-0x0ce7 */ - 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, /* 0x0ce8-0x0cef */ - 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, /* 0x0cf0-0x0cf7 */ - 0x05e8, 0x05e9, 0x05ea /* 0x0cf8-0x0cff */ -}; - -static unsigned short const keysym_to_unicode_da1_df9[] = { - 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, /* 0x0da0-0x0da7 */ - 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f, /* 0x0da8-0x0daf */ - 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17, /* 0x0db0-0x0db7 */ - 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f, /* 0x0db8-0x0dbf */ - 0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, /* 0x0dc0-0x0dc7 */ - 0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f, /* 0x0dc8-0x0dcf */ - 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37, /* 0x0dd0-0x0dd7 */ - 0x0e38, 0x0e39, 0x0e3a, 0x0000, 0x0000, 0x0000, 0x0e3e, 0x0e3f, /* 0x0dd8-0x0ddf */ - 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47, /* 0x0de0-0x0de7 */ - 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x0000, 0x0000, /* 0x0de8-0x0def */ - 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, /* 0x0df0-0x0df7 */ - 0x0e58, 0x0e59 /* 0x0df8-0x0dff */ -}; - -static unsigned short const keysym_to_unicode_ea0_eff[] = { - 0x0000, 0x1101, 0x1101, 0x11aa, 0x1102, 0x11ac, 0x11ad, 0x1103, /* 0x0ea0-0x0ea7 */ - 0x1104, 0x1105, 0x11b0, 0x11b1, 0x11b2, 0x11b3, 0x11b4, 0x11b5, /* 0x0ea8-0x0eaf */ - 0x11b6, 0x1106, 0x1107, 0x1108, 0x11b9, 0x1109, 0x110a, 0x110b, /* 0x0eb0-0x0eb7 */ - 0x110c, 0x110d, 0x110e, 0x110f, 0x1110, 0x1111, 0x1112, 0x1161, /* 0x0eb8-0x0ebf */ - 0x1162, 0x1163, 0x1164, 0x1165, 0x1166, 0x1167, 0x1168, 0x1169, /* 0x0ec0-0x0ec7 */ - 0x116a, 0x116b, 0x116c, 0x116d, 0x116e, 0x116f, 0x1170, 0x1171, /* 0x0ec8-0x0ecf */ - 0x1172, 0x1173, 0x1174, 0x1175, 0x11a8, 0x11a9, 0x11aa, 0x11ab, /* 0x0ed0-0x0ed7 */ - 0x11ac, 0x11ad, 0x11ae, 0x11af, 0x11b0, 0x11b1, 0x11b2, 0x11b3, /* 0x0ed8-0x0edf */ - 0x11b4, 0x11b5, 0x11b6, 0x11b7, 0x11b8, 0x11b9, 0x11ba, 0x11bb, /* 0x0ee0-0x0ee7 */ - 0x11bc, 0x11bd, 0x11be, 0x11bf, 0x11c0, 0x11c1, 0x11c2, 0x0000, /* 0x0ee8-0x0eef */ - 0x0000, 0x0000, 0x1140, 0x0000, 0x0000, 0x1159, 0x119e, 0x0000, /* 0x0ef0-0x0ef7 */ - 0x11eb, 0x0000, 0x11f9, 0x0000, 0x0000, 0x0000, 0x0000, 0x20a9, /* 0x0ef8-0x0eff */ -}; - -static unsigned short keysym_to_unicode_12a1_12fe[] = { - 0x1e02, 0x1e03, 0x0000, 0x0000, 0x0000, 0x1e0a, 0x0000, /* 0x12a0-0x12a7 */ - 0x1e80, 0x0000, 0x1e82, 0x1e0b, 0x1ef2, 0x0000, 0x0000, 0x0000, /* 0x12a8-0x12af */ - 0x1e1e, 0x1e1f, 0x0000, 0x0000, 0x1e40, 0x1e41, 0x0000, 0x1e56, /* 0x12b0-0x12b7 */ - 0x1e81, 0x1e57, 0x1e83, 0x1e60, 0x1ef3, 0x1e84, 0x1e85, 0x1e61, /* 0x12b8-0x12bf */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x12c0-0x12c7 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x12c8-0x12cf */ - 0x0174, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1e6a, /* 0x12d0-0x12d7 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0176, 0x0000, /* 0x12d8-0x12df */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x12e0-0x12e7 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x12e8-0x12ef */ - 0x0175, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1e6b, /* 0x12f0-0x12f7 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0177 /* 0x12f0-0x12ff */ -}; - -static unsigned short const keysym_to_unicode_13bc_13be[] = { - 0x0152, 0x0153, 0x0178 /* 0x13b8-0x13bf */ -}; - -static unsigned short keysym_to_unicode_14a1_14ff[] = { - 0x2741, 0x00a7, 0x0589, 0x0029, 0x0028, 0x00bb, 0x00ab, /* 0x14a0-0x14a7 */ - 0x2014, 0x002e, 0x055d, 0x002c, 0x2013, 0x058a, 0x2026, 0x055c, /* 0x14a8-0x14af */ - 0x055b, 0x055e, 0x0531, 0x0561, 0x0532, 0x0562, 0x0533, 0x0563, /* 0x14b0-0x14b7 */ - 0x0534, 0x0564, 0x0535, 0x0565, 0x0536, 0x0566, 0x0537, 0x0567, /* 0x14b8-0x14bf */ - 0x0538, 0x0568, 0x0539, 0x0569, 0x053a, 0x056a, 0x053b, 0x056b, /* 0x14c0-0x14c7 */ - 0x053c, 0x056c, 0x053d, 0x056d, 0x053e, 0x056e, 0x053f, 0x056f, /* 0x14c8-0x14cf */ - 0x0540, 0x0570, 0x0541, 0x0571, 0x0542, 0x0572, 0x0543, 0x0573, /* 0x14d0-0x14d7 */ - 0x0544, 0x0574, 0x0545, 0x0575, 0x0546, 0x0576, 0x0547, 0x0577, /* 0x14d8-0x14df */ - 0x0548, 0x0578, 0x0549, 0x0579, 0x054a, 0x057a, 0x054b, 0x057b, /* 0x14e0-0x14e7 */ - 0x054c, 0x057c, 0x054d, 0x057d, 0x054e, 0x057e, 0x054f, 0x057f, /* 0x14e8-0x14ef */ - 0x0550, 0x0580, 0x0551, 0x0581, 0x0552, 0x0582, 0x0553, 0x0583, /* 0x14f0-0x14f7 */ - 0x0554, 0x0584, 0x0555, 0x0585, 0x0556, 0x0586, 0x2019, 0x0027, /* 0x14f8-0x14ff */ -}; - -static unsigned short keysym_to_unicode_15d0_15f6[] = { - 0x10d0, 0x10d1, 0x10d2, 0x10d3, 0x10d4, 0x10d5, 0x10d6, 0x10d7, /* 0x15d0-0x15d7 */ - 0x10d8, 0x10d9, 0x10da, 0x10db, 0x10dc, 0x10dd, 0x10de, 0x10df, /* 0x15d8-0x15df */ - 0x10e0, 0x10e1, 0x10e2, 0x10e3, 0x10e4, 0x10e5, 0x10e6, 0x10e7, /* 0x15e0-0x15e7 */ - 0x10e8, 0x10e9, 0x10ea, 0x10eb, 0x10ec, 0x10ed, 0x10ee, 0x10ef, /* 0x15e8-0x15ef */ - 0x10f0, 0x10f1, 0x10f2, 0x10f3, 0x10f4, 0x10f5, 0x10f6 /* 0x15f0-0x15f7 */ -}; - -static unsigned short keysym_to_unicode_16a0_16f6[] = { - 0x0000, 0x0000, 0xf0a2, 0x1e8a, 0x0000, 0xf0a5, 0x012c, 0xf0a7, /* 0x16a0-0x16a7 */ - 0xf0a8, 0x01b5, 0x01e6, 0x0000, 0x0000, 0x0000, 0x0000, 0x019f, /* 0x16a8-0x16af */ - 0x0000, 0x0000, 0xf0b2, 0x1e8b, 0x01d1, 0xf0b5, 0x012d, 0xf0b7, /* 0x16b0-0x16b7 */ - 0xf0b8, 0x01b6, 0x01e7, 0x0000, 0x0000, 0x01d2, 0x0000, 0x0275, /* 0x16b8-0x16bf */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x018f, 0x0000, /* 0x16c0-0x16c7 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x16c8-0x16cf */ - 0x0000, 0x1e36, 0xf0d2, 0xf0d3, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x16d0-0x16d7 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x16d8-0x16df */ - 0x0000, 0x1e37, 0xf0e2, 0xf0e3, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x16e0-0x16e7 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x16e8-0x16ef */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0259 /* 0x16f0-0x16f6 */ -}; - -static unsigned short const keysym_to_unicode_1e9f_1eff[] = { - 0x0303, - 0x1ea0, 0x1ea1, 0x1ea2, 0x1ea3, 0x1ea4, 0x1ea5, 0x1ea6, 0x1ea7, /* 0x1ea0-0x1ea7 */ - 0x1ea8, 0x1ea9, 0x1eaa, 0x1eab, 0x1eac, 0x1ead, 0x1eae, 0x1eaf, /* 0x1ea8-0x1eaf */ - 0x1eb0, 0x1eb1, 0x1eb2, 0x1eb3, 0x1eb4, 0x1eb5, 0x1eb6, 0x1eb7, /* 0x1eb0-0x1eb7 */ - 0x1eb8, 0x1eb9, 0x1eba, 0x1ebb, 0x1ebc, 0x1ebd, 0x1ebe, 0x1ebf, /* 0x1eb8-0x1ebf */ - 0x1ec0, 0x1ec1, 0x1ec2, 0x1ec3, 0x1ec4, 0x1ec5, 0x1ec6, 0x1ec7, /* 0x1ec0-0x1ec7 */ - 0x1ec8, 0x1ec9, 0x1eca, 0x1ecb, 0x1ecc, 0x1ecd, 0x1ece, 0x1ecf, /* 0x1ec8-0x1ecf */ - 0x1ed0, 0x1ed1, 0x1ed2, 0x1ed3, 0x1ed4, 0x1ed5, 0x1ed6, 0x1ed7, /* 0x1ed0-0x1ed7 */ - 0x1ed8, 0x1ed9, 0x1eda, 0x1edb, 0x1edc, 0x1edd, 0x1ede, 0x1edf, /* 0x1ed8-0x1edf */ - 0x1ee0, 0x1ee1, 0x1ee2, 0x1ee3, 0x1ee4, 0x1ee5, 0x1ee6, 0x1ee7, /* 0x1ee0-0x1ee7 */ - 0x1ee8, 0x1ee9, 0x1eea, 0x1eeb, 0x1eec, 0x1eed, 0x1eee, 0x1eef, /* 0x1ee8-0x1eef */ - 0x1ef0, 0x1ef1, 0x0300, 0x0301, 0x1ef4, 0x1ef5, 0x1ef6, 0x1ef7, /* 0x1ef0-0x1ef7 */ - 0x1ef8, 0x1ef9, 0x01a0, 0x01a1, 0x01af, 0x01b0, 0x0309, 0x0323 /* 0x1ef8-0x1eff */ -}; - -static unsigned short const keysym_to_unicode_20a0_20ac[] = { - 0x20a0, 0x20a1, 0x20a2, 0x20a3, 0x20a4, 0x20a5, 0x20a6, 0x20a7, /* 0x20a0-0x20a7 */ - 0x20a8, 0x20a9, 0x20aa, 0x20ab, 0x20ac /* 0x20a8-0x20af */ -}; - -unsigned int -X11_KeySymToUcs4(KeySym keysym) -{ - /* 'Unicode keysym' */ - if ((keysym & 0xff000000) == 0x01000000) - return (keysym & 0x00ffffff); - - if (keysym > 0 && keysym < 0x100) - return keysym; - else if (keysym > 0x1a0 && keysym < 0x200) - return keysym_to_unicode_1a1_1ff[keysym - 0x1a1]; - else if (keysym > 0x2a0 && keysym < 0x2ff) - return keysym_to_unicode_2a1_2fe[keysym - 0x2a1]; - else if (keysym > 0x3a1 && keysym < 0x3ff) - return keysym_to_unicode_3a2_3fe[keysym - 0x3a2]; - else if (keysym > 0x4a0 && keysym < 0x4e0) - return keysym_to_unicode_4a1_4df[keysym - 0x4a1]; - else if (keysym > 0x589 && keysym < 0x5ff) - return keysym_to_unicode_590_5fe[keysym - 0x590]; - else if (keysym > 0x67f && keysym < 0x700) - return keysym_to_unicode_680_6ff[keysym - 0x680]; - else if (keysym > 0x7a0 && keysym < 0x7fa) - return keysym_to_unicode_7a1_7f9[keysym - 0x7a1]; - else if (keysym > 0x8a3 && keysym < 0x8ff) - return keysym_to_unicode_8a4_8fe[keysym - 0x8a4]; - else if (keysym > 0x9de && keysym < 0x9f9) - return keysym_to_unicode_9df_9f8[keysym - 0x9df]; - else if (keysym > 0xaa0 && keysym < 0xaff) - return keysym_to_unicode_aa1_afe[keysym - 0xaa1]; - else if (keysym > 0xcde && keysym < 0xcfb) - return keysym_to_unicode_cdf_cfa[keysym - 0xcdf]; - else if (keysym > 0xda0 && keysym < 0xdfa) - return keysym_to_unicode_da1_df9[keysym - 0xda1]; - else if (keysym > 0xe9f && keysym < 0xf00) - return keysym_to_unicode_ea0_eff[keysym - 0xea0]; - else if (keysym > 0x12a0 && keysym < 0x12ff) - return keysym_to_unicode_12a1_12fe[keysym - 0x12a1]; - else if (keysym > 0x13bb && keysym < 0x13bf) - return keysym_to_unicode_13bc_13be[keysym - 0x13bc]; - else if (keysym > 0x14a0 && keysym < 0x1500) - return keysym_to_unicode_14a1_14ff[keysym - 0x14a1]; - else if (keysym > 0x15cf && keysym < 0x15f7) - return keysym_to_unicode_15d0_15f6[keysym - 0x15d0]; - else if (keysym > 0x169f && keysym < 0x16f7) - return keysym_to_unicode_16a0_16f6[keysym - 0x16a0]; - else if (keysym > 0x1e9e && keysym < 0x1f00) - return keysym_to_unicode_1e9f_1eff[keysym - 0x1e9f]; - else if (keysym > 0x209f && keysym < 0x20ad) - return keysym_to_unicode_20a0_20ac[keysym - 0x20a0]; - else - return 0; -} - -#endif /* SDL_VIDEO_DRIVER_X11 */ - diff --git a/externals/SDL/src/video/x11/imKStoUCS.h b/externals/SDL/src/video/x11/imKStoUCS.h deleted file mode 100755 index fe4381d98..000000000 --- a/externals/SDL/src/video/x11/imKStoUCS.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef _imKStoUCS_h -#define _imKStoUCS_h - -/* -Copyright (C) 2003-2006,2008 Jamey Sharp, Josh Triplett -Copyright © 2009 Red Hat, Inc. -Copyright 1990-1992,1999,2000,2004,2009,2010 Oracle and/or its affiliates. -All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice (including the next -paragraph) shall be included in all copies or substantial portions of the -Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. -*/ - -extern unsigned int X11_KeySymToUcs4(KeySym keysym); - -#endif /* _imKStoUCS_h */ diff --git a/externals/SDL/wayland-protocols/org-kde-kwin-server-decoration-manager.xml b/externals/SDL/wayland-protocols/org-kde-kwin-server-decoration-manager.xml deleted file mode 100755 index 8bc106c7c..000000000 --- a/externals/SDL/wayland-protocols/org-kde-kwin-server-decoration-manager.xml +++ /dev/null @@ -1,94 +0,0 @@ - - - . - ]]> - - - This interface allows to coordinate whether the server should create - a server-side window decoration around a wl_surface representing a - shell surface (wl_shell_surface or similar). By announcing support - for this interface the server indicates that it supports server - side decorations. - - - - When a client creates a server-side decoration object it indicates - that it supports the protocol. The client is supposed to tell the - server whether it wants server-side decorations or will provide - client-side decorations. - - If the client does not create a server-side decoration object for - a surface the server interprets this as lack of support for this - protocol and considers it as client-side decorated. Nevertheless a - client-side decorated surface should use this protocol to indicate - to the server that it does not want a server-side deco. - - - - - - - - - - - - - This event is emitted directly after binding the interface. It contains - the default mode for the decoration. When a new server decoration object - is created this new object will be in the default mode until the first - request_mode is requested. - - The server may change the default mode at any time. - - - - - - - - - - - - - - - - - - - - - This event is emitted directly after the decoration is created and - represents the base decoration policy by the server. E.g. a server - which wants all surfaces to be client-side decorated will send Client, - a server which wants server-side decoration will send Server. - - The client can request a different mode through the decoration request. - The server will acknowledge this by another event with the same mode. So - even if a server prefers server-side decoration it's possible to force a - client-side decoration. - - The server may emit this event at any time. In this case the client can - again request a different mode. It's the responsibility of the server to - prevent a feedback loop. - - - - - diff --git a/externals/SDL/wayland-protocols/xdg-shell-unstable-v6.xml b/externals/SDL/wayland-protocols/xdg-shell-unstable-v6.xml deleted file mode 100755 index 1c0f92452..000000000 --- a/externals/SDL/wayland-protocols/xdg-shell-unstable-v6.xml +++ /dev/null @@ -1,1044 +0,0 @@ - - - - - Copyright © 2008-2013 Kristian Høgsberg - Copyright © 2013 Rafael Antognolli - Copyright © 2013 Jasper St. Pierre - Copyright © 2010-2013 Intel Corporation - - Permission is hereby granted, free of charge, to any person obtaining a - copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation - the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice (including the next - paragraph) shall be included in all copies or substantial portions of the - Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - - - - xdg_shell allows clients to turn a wl_surface into a "real window" - which can be dragged, resized, stacked, and moved around by the - user. Everything about this interface is suited towards traditional - desktop environments. - - - - - - - - - - - - - - Destroy this xdg_shell object. - - Destroying a bound xdg_shell object while there are surfaces - still alive created by this xdg_shell object instance is illegal - and will result in a protocol error. - - - - - - Create a positioner object. A positioner object is used to position - surfaces relative to some parent surface. See the interface description - and xdg_surface.get_popup for details. - - - - - - - This creates an xdg_surface for the given surface. While xdg_surface - itself is not a role, the corresponding surface may only be assigned - a role extending xdg_surface, such as xdg_toplevel or xdg_popup. - - This creates an xdg_surface for the given surface. An xdg_surface is - used as basis to define a role to a given surface, such as xdg_toplevel - or xdg_popup. It also manages functionality shared between xdg_surface - based surface roles. - - See the documentation of xdg_surface for more details about what an - xdg_surface is and how it is used. - - - - - - - - A client must respond to a ping event with a pong request or - the client may be deemed unresponsive. See xdg_shell.ping. - - - - - - - The ping event asks the client if it's still alive. Pass the - serial specified in the event back to the compositor by sending - a "pong" request back with the specified serial. See xdg_shell.ping. - - Compositors can use this to determine if the client is still - alive. It's unspecified what will happen if the client doesn't - respond to the ping request, or in what timeframe. Clients should - try to respond in a reasonable amount of time. - - A compositor is free to ping in any way it wants, but a client must - always respond to any xdg_shell object it created. - - - - - - - - The xdg_positioner provides a collection of rules for the placement of a - child surface relative to a parent surface. Rules can be defined to ensure - the child surface remains within the visible area's borders, and to - specify how the child surface changes its position, such as sliding along - an axis, or flipping around a rectangle. These positioner-created rules are - constrained by the requirement that a child surface must intersect with or - be at least partially adjacent to its parent surface. - - See the various requests for details about possible rules. - - At the time of the request, the compositor makes a copy of the rules - specified by the xdg_positioner. Thus, after the request is complete the - xdg_positioner object can be destroyed or reused; further changes to the - object will have no effect on previous usages. - - For an xdg_positioner object to be considered complete, it must have a - non-zero size set by set_size, and a non-zero anchor rectangle set by - set_anchor_rect. Passing an incomplete xdg_positioner object when - positioning a surface raises an error. - - - - - - - - - Notify the compositor that the xdg_positioner will no longer be used. - - - - - - Set the size of the surface that is to be positioned with the positioner - object. The size is in surface-local coordinates and corresponds to the - window geometry. See xdg_surface.set_window_geometry. - - If a zero or negative size is set the invalid_input error is raised. - - - - - - - - Specify the anchor rectangle within the parent surface that the child - surface will be placed relative to. The rectangle is relative to the - window geometry as defined by xdg_surface.set_window_geometry of the - parent surface. The rectangle must be at least 1x1 large. - - When the xdg_positioner object is used to position a child surface, the - anchor rectangle may not extend outside the window geometry of the - positioned child's parent surface. - - If a zero or negative size is set the invalid_input error is raised. - - - - - - - - - - - - - - - - - - Defines a set of edges for the anchor rectangle. These are used to - derive an anchor point that the child surface will be positioned - relative to. If two orthogonal edges are specified (e.g. 'top' and - 'left'), then the anchor point will be the intersection of the edges - (e.g. the top left position of the rectangle); otherwise, the derived - anchor point will be centered on the specified edge, or in the center of - the anchor rectangle if no edge is specified. - - If two parallel anchor edges are specified (e.g. 'left' and 'right'), - the invalid_input error is raised. - - - - - - - - - - - - - - - Defines in what direction a surface should be positioned, relative to - the anchor point of the parent surface. If two orthogonal gravities are - specified (e.g. 'bottom' and 'right'), then the child surface will be - placed in the specified direction; otherwise, the child surface will be - centered over the anchor point on any axis that had no gravity - specified. - - If two parallel gravities are specified (e.g. 'left' and 'right'), the - invalid_input error is raised. - - - - - - - The constraint adjustment value define ways the compositor will adjust - the position of the surface, if the unadjusted position would result - in the surface being partly constrained. - - Whether a surface is considered 'constrained' is left to the compositor - to determine. For example, the surface may be partly outside the - compositor's defined 'work area', thus necessitating the child surface's - position be adjusted until it is entirely inside the work area. - - The adjustments can be combined, according to a defined precedence: 1) - Flip, 2) Slide, 3) Resize. - - - - Don't alter the surface position even if it is constrained on some - axis, for example partially outside the edge of a monitor. - - - - - Slide the surface along the x axis until it is no longer constrained. - - First try to slide towards the direction of the gravity on the x axis - until either the edge in the opposite direction of the gravity is - unconstrained or the edge in the direction of the gravity is - constrained. - - Then try to slide towards the opposite direction of the gravity on the - x axis until either the edge in the direction of the gravity is - unconstrained or the edge in the opposite direction of the gravity is - constrained. - - - - - Slide the surface along the y axis until it is no longer constrained. - - First try to slide towards the direction of the gravity on the y axis - until either the edge in the opposite direction of the gravity is - unconstrained or the edge in the direction of the gravity is - constrained. - - Then try to slide towards the opposite direction of the gravity on the - y axis until either the edge in the direction of the gravity is - unconstrained or the edge in the opposite direction of the gravity is - constrained. - - - - - Invert the anchor and gravity on the x axis if the surface is - constrained on the x axis. For example, if the left edge of the - surface is constrained, the gravity is 'left' and the anchor is - 'left', change the gravity to 'right' and the anchor to 'right'. - - If the adjusted position also ends up being constrained, the resulting - position of the flip_x adjustment will be the one before the - adjustment. - - - - - Invert the anchor and gravity on the y axis if the surface is - constrained on the y axis. For example, if the bottom edge of the - surface is constrained, the gravity is 'bottom' and the anchor is - 'bottom', change the gravity to 'top' and the anchor to 'top'. - - If the adjusted position also ends up being constrained, the resulting - position of the flip_y adjustment will be the one before the - adjustment. - - - - - Resize the surface horizontally so that it is completely - unconstrained. - - - - - Resize the surface vertically so that it is completely unconstrained. - - - - - - - Specify how the window should be positioned if the originally intended - position caused the surface to be constrained, meaning at least - partially outside positioning boundaries set by the compositor. The - adjustment is set by constructing a bitmask describing the adjustment to - be made when the surface is constrained on that axis. - - If no bit for one axis is set, the compositor will assume that the child - surface should not change its position on that axis when constrained. - - If more than one bit for one axis is set, the order of how adjustments - are applied is specified in the corresponding adjustment descriptions. - - The default adjustment is none. - - - - - - - Specify the surface position offset relative to the position of the - anchor on the anchor rectangle and the anchor on the surface. For - example if the anchor of the anchor rectangle is at (x, y), the surface - has the gravity bottom|right, and the offset is (ox, oy), the calculated - surface position will be (x + ox, y + oy). The offset position of the - surface is the one used for constraint testing. See - set_constraint_adjustment. - - An example use case is placing a popup menu on top of a user interface - element, while aligning the user interface element of the parent surface - with some user interface element placed somewhere in the popup surface. - - - - - - - - - An interface that may be implemented by a wl_surface, for - implementations that provide a desktop-style user interface. - - It provides a base set of functionality required to construct user - interface elements requiring management by the compositor, such as - toplevel windows, menus, etc. The types of functionality are split into - xdg_surface roles. - - Creating an xdg_surface does not set the role for a wl_surface. In order - to map an xdg_surface, the client must create a role-specific object - using, e.g., get_toplevel, get_popup. The wl_surface for any given - xdg_surface can have at most one role, and may not be assigned any role - not based on xdg_surface. - - A role must be assigned before any other requests are made to the - xdg_surface object. - - The client must call wl_surface.commit on the corresponding wl_surface - for the xdg_surface state to take effect. - - Creating an xdg_surface from a wl_surface which has a buffer attached or - committed is a client error, and any attempts by a client to attach or - manipulate a buffer prior to the first xdg_surface.configure call must - also be treated as errors. - - For a surface to be mapped by the compositor, the following conditions - must be met: (1) the client has assigned a xdg_surface based role to the - surface, (2) the client has set and committed the xdg_surface state and - the role dependent state to the surface and (3) the client has committed a - buffer to the surface. - - - - - - - - - - - Destroy the xdg_surface object. An xdg_surface must only be destroyed - after its role object has been destroyed. - - - - - - This creates an xdg_toplevel object for the given xdg_surface and gives - the associated wl_surface the xdg_toplevel role. - - See the documentation of xdg_toplevel for more details about what an - xdg_toplevel is and how it is used. - - - - - - - This creates an xdg_popup object for the given xdg_surface and gives the - associated wl_surface the xdg_popup role. - - See the documentation of xdg_popup for more details about what an - xdg_popup is and how it is used. - - - - - - - - - The window geometry of a surface is its "visible bounds" from the - user's perspective. Client-side decorations often have invisible - portions like drop-shadows which should be ignored for the - purposes of aligning, placing and constraining windows. - - The window geometry is double buffered, and will be applied at the - time wl_surface.commit of the corresponding wl_surface is called. - - Once the window geometry of the surface is set, it is not possible to - unset it, and it will remain the same until set_window_geometry is - called again, even if a new subsurface or buffer is attached. - - If never set, the value is the full bounds of the surface, - including any subsurfaces. This updates dynamically on every - commit. This unset is meant for extremely simple clients. - - The arguments are given in the surface-local coordinate space of - the wl_surface associated with this xdg_surface. - - The width and height must be greater than zero. Setting an invalid size - will raise an error. When applied, the effective window geometry will be - the set window geometry clamped to the bounding rectangle of the - combined geometry of the surface of the xdg_surface and the associated - subsurfaces. - - - - - - - - - - When a configure event is received, if a client commits the - surface in response to the configure event, then the client - must make an ack_configure request sometime before the commit - request, passing along the serial of the configure event. - - For instance, for toplevel surfaces the compositor might use this - information to move a surface to the top left only when the client has - drawn itself for the maximized or fullscreen state. - - If the client receives multiple configure events before it - can respond to one, it only has to ack the last configure event. - - A client is not required to commit immediately after sending - an ack_configure request - it may even ack_configure several times - before its next surface commit. - - A client may send multiple ack_configure requests before committing, but - only the last request sent before a commit indicates which configure - event the client really is responding to. - - - - - - - The configure event marks the end of a configure sequence. A configure - sequence is a set of one or more events configuring the state of the - xdg_surface, including the final xdg_surface.configure event. - - Where applicable, xdg_surface surface roles will during a configure - sequence extend this event as a latched state sent as events before the - xdg_surface.configure event. Such events should be considered to make up - a set of atomically applied configuration states, where the - xdg_surface.configure commits the accumulated state. - - Clients should arrange their surface for the new states, and then send - an ack_configure request with the serial sent in this configure event at - some point before committing the new surface. - - If the client receives multiple configure events before it can respond - to one, it is free to discard all but the last event it received. - - - - - - - - This interface defines an xdg_surface role which allows a surface to, - among other things, set window-like properties such as maximize, - fullscreen, and minimize, set application-specific metadata like title and - id, and well as trigger user interactive operations such as interactive - resize and move. - - - - - Unmap and destroy the window. The window will be effectively - hidden from the user's point of view, and all state like - maximization, fullscreen, and so on, will be lost. - - - - - - Set the "parent" of this surface. This window should be stacked - above a parent. The parent surface must be mapped as long as this - surface is mapped. - - Parent windows should be set on dialogs, toolboxes, or other - "auxiliary" surfaces, so that the parent is raised when the dialog - is raised. - - - - - - - Set a short title for the surface. - - This string may be used to identify the surface in a task bar, - window list, or other user interface elements provided by the - compositor. - - The string must be encoded in UTF-8. - - - - - - - Set an application identifier for the surface. - - The app ID identifies the general class of applications to which - the surface belongs. The compositor can use this to group multiple - surfaces together, or to determine how to launch a new application. - - For D-Bus activatable applications, the app ID is used as the D-Bus - service name. - - The compositor shell will try to group application surfaces together - by their app ID. As a best practice, it is suggested to select app - ID's that match the basename of the application's .desktop file. - For example, "org.freedesktop.FooViewer" where the .desktop file is - "org.freedesktop.FooViewer.desktop". - - See the desktop-entry specification [0] for more details on - application identifiers and how they relate to well-known D-Bus - names and .desktop files. - - [0] http://standards.freedesktop.org/desktop-entry-spec/ - - - - - - - Clients implementing client-side decorations might want to show - a context menu when right-clicking on the decorations, giving the - user a menu that they can use to maximize or minimize the window. - - This request asks the compositor to pop up such a window menu at - the given position, relative to the local surface coordinates of - the parent surface. There are no guarantees as to what menu items - the window menu contains. - - This request must be used in response to some sort of user action - like a button press, key press, or touch down event. - - - - - - - - - - Start an interactive, user-driven move of the surface. - - This request must be used in response to some sort of user action - like a button press, key press, or touch down event. The passed - serial is used to determine the type of interactive move (touch, - pointer, etc). - - The server may ignore move requests depending on the state of - the surface (e.g. fullscreen or maximized), or if the passed serial - is no longer valid. - - If triggered, the surface will lose the focus of the device - (wl_pointer, wl_touch, etc) used for the move. It is up to the - compositor to visually indicate that the move is taking place, such as - updating a pointer cursor, during the move. There is no guarantee - that the device focus will return when the move is completed. - - - - - - - - These values are used to indicate which edge of a surface - is being dragged in a resize operation. - - - - - - - - - - - - - - - Start a user-driven, interactive resize of the surface. - - This request must be used in response to some sort of user action - like a button press, key press, or touch down event. The passed - serial is used to determine the type of interactive resize (touch, - pointer, etc). - - The server may ignore resize requests depending on the state of - the surface (e.g. fullscreen or maximized). - - If triggered, the client will receive configure events with the - "resize" state enum value and the expected sizes. See the "resize" - enum value for more details about what is required. The client - must also acknowledge configure events using "ack_configure". After - the resize is completed, the client will receive another "configure" - event without the resize state. - - If triggered, the surface also will lose the focus of the device - (wl_pointer, wl_touch, etc) used for the resize. It is up to the - compositor to visually indicate that the resize is taking place, - such as updating a pointer cursor, during the resize. There is no - guarantee that the device focus will return when the resize is - completed. - - The edges parameter specifies how the surface should be resized, - and is one of the values of the resize_edge enum. The compositor - may use this information to update the surface position for - example when dragging the top left corner. The compositor may also - use this information to adapt its behavior, e.g. choose an - appropriate cursor image. - - - - - - - - - The different state values used on the surface. This is designed for - state values like maximized, fullscreen. It is paired with the - configure event to ensure that both the client and the compositor - setting the state can be synchronized. - - States set in this way are double-buffered. They will get applied on - the next commit. - - - - The surface is maximized. The window geometry specified in the configure - event must be obeyed by the client. - - - - - The surface is fullscreen. The window geometry specified in the configure - event must be obeyed by the client. - - - - - The surface is being resized. The window geometry specified in the - configure event is a maximum; the client cannot resize beyond it. - Clients that have aspect ratio or cell sizing configuration can use - a smaller size, however. - - - - - Client window decorations should be painted as if the window is - active. Do not assume this means that the window actually has - keyboard or pointer focus. - - - - - - - Set a maximum size for the window. - - The client can specify a maximum size so that the compositor does - not try to configure the window beyond this size. - - The width and height arguments are in window geometry coordinates. - See xdg_surface.set_window_geometry. - - Values set in this way are double-buffered. They will get applied - on the next commit. - - The compositor can use this information to allow or disallow - different states like maximize or fullscreen and draw accurate - animations. - - Similarly, a tiling window manager may use this information to - place and resize client windows in a more effective way. - - The client should not rely on the compositor to obey the maximum - size. The compositor may decide to ignore the values set by the - client and request a larger size. - - If never set, or a value of zero in the request, means that the - client has no expected maximum size in the given dimension. - As a result, a client wishing to reset the maximum size - to an unspecified state can use zero for width and height in the - request. - - Requesting a maximum size to be smaller than the minimum size of - a surface is illegal and will result in a protocol error. - - The width and height must be greater than or equal to zero. Using - strictly negative values for width and height will result in a - protocol error. - - - - - - - - Set a minimum size for the window. - - The client can specify a minimum size so that the compositor does - not try to configure the window below this size. - - The width and height arguments are in window geometry coordinates. - See xdg_surface.set_window_geometry. - - Values set in this way are double-buffered. They will get applied - on the next commit. - - The compositor can use this information to allow or disallow - different states like maximize or fullscreen and draw accurate - animations. - - Similarly, a tiling window manager may use this information to - place and resize client windows in a more effective way. - - The client should not rely on the compositor to obey the minimum - size. The compositor may decide to ignore the values set by the - client and request a smaller size. - - If never set, or a value of zero in the request, means that the - client has no expected minimum size in the given dimension. - As a result, a client wishing to reset the minimum size - to an unspecified state can use zero for width and height in the - request. - - Requesting a minimum size to be larger than the maximum size of - a surface is illegal and will result in a protocol error. - - The width and height must be greater than or equal to zero. Using - strictly negative values for width and height will result in a - protocol error. - - - - - - - - Maximize the surface. - - After requesting that the surface should be maximized, the compositor - will respond by emitting a configure event with the "maximized" state - and the required window geometry. The client should then update its - content, drawing it in a maximized state, i.e. without shadow or other - decoration outside of the window geometry. The client must also - acknowledge the configure when committing the new content (see - ack_configure). - - It is up to the compositor to decide how and where to maximize the - surface, for example which output and what region of the screen should - be used. - - If the surface was already maximized, the compositor will still emit - a configure event with the "maximized" state. - - - - - - Unmaximize the surface. - - After requesting that the surface should be unmaximized, the compositor - will respond by emitting a configure event without the "maximized" - state. If available, the compositor will include the window geometry - dimensions the window had prior to being maximized in the configure - request. The client must then update its content, drawing it in a - regular state, i.e. potentially with shadow, etc. The client must also - acknowledge the configure when committing the new content (see - ack_configure). - - It is up to the compositor to position the surface after it was - unmaximized; usually the position the surface had before maximizing, if - applicable. - - If the surface was already not maximized, the compositor will still - emit a configure event without the "maximized" state. - - - - - - Make the surface fullscreen. - - You can specify an output that you would prefer to be fullscreen. - If this value is NULL, it's up to the compositor to choose which - display will be used to map this surface. - - If the surface doesn't cover the whole output, the compositor will - position the surface in the center of the output and compensate with - black borders filling the rest of the output. - - - - - - - - Request that the compositor minimize your surface. There is no - way to know if the surface is currently minimized, nor is there - any way to unset minimization on this surface. - - If you are looking to throttle redrawing when minimized, please - instead use the wl_surface.frame event for this, as this will - also work with live previews on windows in Alt-Tab, Expose or - similar compositor features. - - - - - - This configure event asks the client to resize its toplevel surface or - to change its state. The configured state should not be applied - immediately. See xdg_surface.configure for details. - - The width and height arguments specify a hint to the window - about how its surface should be resized in window geometry - coordinates. See set_window_geometry. - - If the width or height arguments are zero, it means the client - should decide its own window dimension. This may happen when the - compositor needs to configure the state of the surface but doesn't - have any information about any previous or expected dimension. - - The states listed in the event specify how the width/height - arguments should be interpreted, and possibly how it should be - drawn. - - Clients must send an ack_configure in response to this event. See - xdg_surface.configure and xdg_surface.ack_configure for details. - - - - - - - - - The close event is sent by the compositor when the user - wants the surface to be closed. This should be equivalent to - the user clicking the close button in client-side decorations, - if your application has any. - - This is only a request that the user intends to close the - window. The client may choose to ignore this request, or show - a dialog to ask the user to save their data, etc. - - - - - - - A popup surface is a short-lived, temporary surface. It can be used to - implement for example menus, popovers, tooltips and other similar user - interface concepts. - - A popup can be made to take an explicit grab. See xdg_popup.grab for - details. - - When the popup is dismissed, a popup_done event will be sent out, and at - the same time the surface will be unmapped. See the xdg_popup.popup_done - event for details. - - Explicitly destroying the xdg_popup object will also dismiss the popup and - unmap the surface. Clients that want to dismiss the popup when another - surface of their own is clicked should dismiss the popup using the destroy - request. - - The parent surface must have either the xdg_toplevel or xdg_popup surface - role. - - A newly created xdg_popup will be stacked on top of all previously created - xdg_popup surfaces associated with the same xdg_toplevel. - - The parent of an xdg_popup must be mapped (see the xdg_surface - description) before the xdg_popup itself. - - The x and y arguments passed when creating the popup object specify - where the top left of the popup should be placed, relative to the - local surface coordinates of the parent surface. See - xdg_surface.get_popup. An xdg_popup must intersect with or be at least - partially adjacent to its parent surface. - - The client must call wl_surface.commit on the corresponding wl_surface - for the xdg_popup state to take effect. - - - - - - - - - This destroys the popup. Explicitly destroying the xdg_popup - object will also dismiss the popup, and unmap the surface. - - If this xdg_popup is not the "topmost" popup, a protocol error - will be sent. - - - - - - This request makes the created popup take an explicit grab. An explicit - grab will be dismissed when the user dismisses the popup, or when the - client destroys the xdg_popup. This can be done by the user clicking - outside the surface, using the keyboard, or even locking the screen - through closing the lid or a timeout. - - If the compositor denies the grab, the popup will be immediately - dismissed. - - This request must be used in response to some sort of user action like a - button press, key press, or touch down event. The serial number of the - event should be passed as 'serial'. - - The parent of a grabbing popup must either be an xdg_toplevel surface or - another xdg_popup with an explicit grab. If the parent is another - xdg_popup it means that the popups are nested, with this popup now being - the topmost popup. - - Nested popups must be destroyed in the reverse order they were created - in, e.g. the only popup you are allowed to destroy at all times is the - topmost one. - - When compositors choose to dismiss a popup, they may dismiss every - nested grabbing popup as well. When a compositor dismisses popups, it - will follow the same dismissing order as required from the client. - - The parent of a grabbing popup must either be another xdg_popup with an - active explicit grab, or an xdg_popup or xdg_toplevel, if there are no - explicit grabs already taken. - - If the topmost grabbing popup is destroyed, the grab will be returned to - the parent of the popup, if that parent previously had an explicit grab. - - If the parent is a grabbing popup which has already been dismissed, this - popup will be immediately dismissed. If the parent is a popup that did - not take an explicit grab, an error will be raised. - - During a popup grab, the client owning the grab will receive pointer - and touch events for all their surfaces as normal (similar to an - "owner-events" grab in X11 parlance), while the top most grabbing popup - will always have keyboard focus. - - - - - - - - This event asks the popup surface to configure itself given the - configuration. The configured state should not be applied immediately. - See xdg_surface.configure for details. - - The x and y arguments represent the position the popup was placed at - given the xdg_positioner rule, relative to the upper left corner of the - window geometry of the parent surface. - - - - - - - - - - The popup_done event is sent out when a popup is dismissed by the - compositor. The client should destroy the xdg_popup object at this - point. - - - - -