Browse Source

Merge branch 'main' into em-webgl-selector-hint

Ryan C. Gordon 2 years ago
parent
commit
c2f26087c8
100 changed files with 2337 additions and 9231 deletions
  1. 1 1
      .editorconfig
  2. 10 8
      .github/workflows/android.yml
  3. 14 6
      .github/workflows/emscripten.yml
  4. 1 1
      .github/workflows/ios.yml
  5. 29 16
      .github/workflows/main.yml
  6. 7 8
      .github/workflows/msvc.yml
  7. 42 0
      .github/workflows/n3ds.yml
  8. 9 8
      .github/workflows/ps2.yaml
  9. 8 7
      .github/workflows/psp.yaml
  10. 5 4
      .github/workflows/riscos.yml
  11. 9 8
      .github/workflows/vita.yaml
  12. 1 2
      .github/workflows/vmactions.yml
  13. 0 35
      .github/workflows/watcom.yml
  14. 1 9
      .gitignore
  15. 3 2
      .wikiheaders-options
  16. 13 7
      Android.mk
  17. 224 181
      CMakeLists.txt
  18. 34 32
      Makefile.in
  19. 2 2
      Makefile.minimal
  20. 0 291
      Makefile.os2
  21. 0 64
      Makefile.pandora
  22. 0 273
      Makefile.w32
  23. 1 1
      README.md
  24. 0 65
      SDL2Config.cmake.in
  25. 3 3
      SDL3.spec.in
  26. 65 0
      SDL3Config.cmake.in
  27. 3 3
      VisualC-GDK/SDL.sln
  28. 3 5
      VisualC-GDK/SDL/SDL.vcxproj
  29. 6 15
      VisualC-GDK/SDL/SDL.vcxproj.filters
  30. 2 2
      VisualC-GDK/SDLmain/SDLmain.vcxproj
  31. 2 2
      VisualC-GDK/SDLtest/SDLtest.vcxproj
  32. 4 4
      VisualC-GDK/tests/testgamecontroller/wingdk/MicrosoftGame.config
  33. 4 10
      VisualC-GDK/tests/testgamecontroller/xboxone/MicrosoftGame.config
  34. 4 4
      VisualC-GDK/tests/testgamecontroller/xboxseries/MicrosoftGame.config
  35. 4 4
      VisualC-GDK/tests/testgdk/wingdk/MicrosoftGame.config
  36. 4 4
      VisualC-GDK/tests/testgdk/xboxone/MicrosoftGame.config
  37. 4 4
      VisualC-GDK/tests/testgdk/xboxseries/MicrosoftGame.config
  38. 4 4
      VisualC-GDK/tests/testsprite2/wingdk/MicrosoftGame.config
  39. 4 4
      VisualC-GDK/tests/testsprite2/xboxone/MicrosoftGame.config
  40. 4 4
      VisualC-GDK/tests/testsprite2/xboxseries/MicrosoftGame.config
  41. 0 34
      VisualC-WinRT/SDL-UWP.sln
  42. 0 606
      VisualC-WinRT/SDL-UWP.vcxproj
  43. 0 846
      VisualC-WinRT/SDL-UWP.vcxproj.filters
  44. 3 3
      VisualC/SDL.sln
  45. 3 5
      VisualC/SDL/SDL.vcxproj
  46. 8 18
      VisualC/SDL/SDL.vcxproj.filters
  47. 1 1
      VisualC/SDLmain/SDLmain.vcxproj
  48. 1 1
      VisualC/SDLtest/SDLtest.vcxproj
  49. 0 111
      VisualC/pkg-support/cmake/sdl2-config.cmake
  50. 3 3
      VisualC/pkg-support/cmake/sdl3-config-version.cmake
  51. 111 0
      VisualC/pkg-support/cmake/sdl3-config.cmake
  52. 0 217
      VisualC/visualtest/unittest/testquit/testquit_VS2012.vcxproj
  53. 0 308
      VisualC/visualtest/visualtest_VS2012.vcxproj
  54. 41 0
      WhatsNew.txt
  55. 78 430
      Xcode-iOS/Demos/Demos.xcodeproj/project.pbxproj
  56. 1 1
      Xcode-iOS/Demos/README
  57. 14 0
      Xcode-iOS/Demos/config.xcconfig
  58. 2 2
      Xcode-iOS/Demos/src/accelerometer.c
  59. 1 1
      Xcode-iOS/Demos/src/happy.c
  60. 1 1
      Xcode-iOS/Demos/src/keyboard.c
  61. 1 1
      Xcode-iOS/Demos/src/rectangles.c
  62. 1 1
      Xcode-iOS/Demos/src/touch.c
  63. 0 422
      Xcode-iOS/SDLtest/SDL2test.xcodeproj/project.pbxproj
  64. 0 34
      Xcode-iOS/Test/Info.plist
  65. 0 11
      Xcode-iOS/Test/README
  66. 0 3703
      Xcode-iOS/Test/TestiPhoneOS.xcodeproj/project.pbxproj
  67. 2 2
      Xcode/SDL/Info-Framework.plist
  68. 299 86
      Xcode/SDL/SDL.xcodeproj/project.pbxproj
  69. 67 0
      Xcode/SDL/SDL.xcodeproj/xcshareddata/xcschemes/Framework-iOS.xcscheme
  70. 67 0
      Xcode/SDL/SDL.xcodeproj/xcshareddata/xcschemes/xcFramework-iOS.xcscheme
  71. 7 21
      Xcode/SDL/SDL3/Info.plist
  72. 1 1
      Xcode/SDL/pkg-support/SDL.info
  73. 0 67
      Xcode/SDL/pkg-support/resources/CMake/sdl2-config.cmake
  74. 3 3
      Xcode/SDL/pkg-support/resources/CMake/sdl3-config-version.cmake
  75. 69 0
      Xcode/SDL/pkg-support/resources/CMake/sdl3-config.cmake
  76. 5 5
      Xcode/SDL/pkg-support/resources/ReadMe.txt
  77. BIN
      Xcode/SDL/pkg-support/resources/SDL_DS_Store
  78. 184 602
      Xcode/SDLTest/SDLTest.xcodeproj/project.pbxproj
  79. 14 0
      Xcode/SDLTest/config.xcconfig
  80. 0 172
      acinclude/esd.m4
  81. 1 1
      android-project-ant/jni/src/Android.mk
  82. 1 1
      android-project-ant/jni/src/Android_static.mk
  83. 1 1
      android-project/app/jni/src/Android.mk
  84. 2 2
      android-project/app/jni/src/CMakeLists.txt
  85. 170 85
      android-project/app/src/main/java/org/libsdl/app/SDLActivity.java
  86. 3 67
      android-project/app/src/main/java/org/libsdl/app/SDLSurface.java
  87. 351 0
      build-scripts/android-prefab.sh
  88. 1 1
      build-scripts/androidbuildlibs.sh
  89. 3 3
      build-scripts/emscripten-buildbot.sh
  90. 15 44
      build-scripts/fnsince.pl
  91. 0 61
      build-scripts/nacl-buildbot.sh
  92. 0 105
      build-scripts/naclbuild.sh
  93. 7 7
      build-scripts/raspberrypi-buildbot.sh
  94. 29 6
      build-scripts/showrev.sh
  95. 56 19
      build-scripts/test-versioning.sh
  96. 88 0
      build-scripts/update-version.sh
  97. 31 1
      build-scripts/updaterev.sh
  98. 3 3
      build-scripts/windows-buildbot-zipper.bat
  99. 40 0
      cmake/CheckCPUArchitecture.cmake
  100. 13 2
      cmake/macros.cmake

+ 1 - 1
.editorconfig

@@ -16,7 +16,7 @@ indent_style = space
 indent_size = 4
 indent_size = 4
 indent_style = space
 indent_style = space
 
 
-[{CMakeLists.txt,sdl2-config*.cmake.in,cmake/*.cmake}]
+[{CMakeLists.txt,sdl3-config*.cmake.in,cmake/*.cmake}]
 indent_size = 2
 indent_size = 2
 indent_style = space
 indent_style = space
 
 

+ 10 - 8
.github/workflows/android.yml

@@ -15,7 +15,7 @@ jobs:
           - { name: CMake, cmake: 1, android_abi: "arm64-v8a", android_platform: 23, arch: "aarch64" }
           - { name: CMake, cmake: 1, android_abi: "arm64-v8a", android_platform: 23, arch: "aarch64" }
 
 
     steps:
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
       - uses: nttld/setup-ndk@v1
       - uses: nttld/setup-ndk@v1
         id: setup_ndk
         id: setup_ndk
         with:
         with:
@@ -34,9 +34,11 @@ jobs:
         run: |
         run: |
           cmake -B build \
           cmake -B build \
             -DCMAKE_TOOLCHAIN_FILE=${{ steps.setup_ndk.outputs.ndk-path }}/build/cmake/android.toolchain.cmake \
             -DCMAKE_TOOLCHAIN_FILE=${{ steps.setup_ndk.outputs.ndk-path }}/build/cmake/android.toolchain.cmake \
+            -DSDL_WERROR=ON \
             -DANDROID_PLATFORM=${{ matrix.platform.android_platform }} \
             -DANDROID_PLATFORM=${{ matrix.platform.android_platform }} \
             -DANDROID_ABI=${{ matrix.platform.android_abi }} \
             -DANDROID_ABI=${{ matrix.platform.android_abi }} \
             -DSDL_STATIC_PIC=ON \
             -DSDL_STATIC_PIC=ON \
+            -DSDL_VENDOR_INFO="Github Workflow" \
             -DCMAKE_INSTALL_PREFIX=prefix \
             -DCMAKE_INSTALL_PREFIX=prefix \
             -DCMAKE_BUILD_TYPE=Release \
             -DCMAKE_BUILD_TYPE=Release \
             -GNinja
             -GNinja
@@ -48,7 +50,7 @@ jobs:
         if: ${{ matrix.platform.name == 'CMake' }}
         if: ${{ matrix.platform.name == 'CMake' }}
         run: |
         run: |
           cmake --install build --config Release
           cmake --install build --config Release
-          echo "SDL2_DIR=$(pwd)/prefix" >> $GITHUB_ENV
+          echo "SDL3_DIR=$(pwd)/prefix" >> $GITHUB_ENV
           ( cd prefix; find ) | LC_ALL=C sort -u
           ( cd prefix; find ) | LC_ALL=C sort -u
       - name: Verify CMake configuration files
       - name: Verify CMake configuration files
         if: ${{ matrix.platform.name == 'CMake' }}
         if: ${{ matrix.platform.name == 'CMake' }}
@@ -58,22 +60,22 @@ jobs:
             -DANDROID_PLATFORM=${{ matrix.platform.android_platform }} \
             -DANDROID_PLATFORM=${{ matrix.platform.android_platform }} \
             -DANDROID_ABI=${{ matrix.platform.android_abi }} \
             -DANDROID_ABI=${{ matrix.platform.android_abi }} \
             -DCMAKE_BUILD_TYPE=Release \
             -DCMAKE_BUILD_TYPE=Release \
-            -DCMAKE_PREFIX_PATH=${{ env.SDL2_DIR }}
+            -DCMAKE_PREFIX_PATH=${{ env.SDL3_DIR }}
           cmake --build cmake_config_build --verbose
           cmake --build cmake_config_build --verbose
-      - name: Verify sdl2-config
+      - name: Verify sdl3-config
         if: ${{ matrix.platform.name == 'CMake' }}
         if: ${{ matrix.platform.name == 'CMake' }}
         run: |
         run: |
           export CC="${{ steps.setup_ndk.outputs.ndk-path }}/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=${{ matrix.platform.arch }}-none-linux-androideabi${{ matrix.platform.android_platform }}"
           export CC="${{ steps.setup_ndk.outputs.ndk-path }}/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=${{ matrix.platform.arch }}-none-linux-androideabi${{ matrix.platform.android_platform }}"
-          export PATH=${{ env.SDL2_DIR }}/bin:$PATH
+          export PATH=${{ env.SDL3_DIR }}/bin:$PATH
           cmake/test/test_sdlconfig.sh
           cmake/test/test_sdlconfig.sh
-      - name: Verify sdl2.pc
+      - name: Verify sdl3.pc
         if: ${{ matrix.platform.name == 'CMake' }}
         if: ${{ matrix.platform.name == 'CMake' }}
         run: |
         run: |
           export CC="${{ steps.setup_ndk.outputs.ndk-path }}/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=${{ matrix.platform.arch }}-none-linux-androideabi${{ matrix.platform.android_platform }}"
           export CC="${{ steps.setup_ndk.outputs.ndk-path }}/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=${{ matrix.platform.arch }}-none-linux-androideabi${{ matrix.platform.android_platform }}"
-          export PKG_CONFIG_PATH=${{ env.SDL2_DIR }}/lib/pkgconfig
+          export PKG_CONFIG_PATH=${{ env.SDL3_DIR }}/lib/pkgconfig
           cmake/test/test_pkgconfig.sh
           cmake/test/test_pkgconfig.sh
       - name: Verify Android.mk
       - name: Verify Android.mk
         if: ${{ matrix.platform.name == 'CMake' }}
         if: ${{ matrix.platform.name == 'CMake' }}
         run: |
         run: |
-          export NDK_MODULE_PATH=${{ env.SDL2_DIR }}/share/ndk-modules
+          export NDK_MODULE_PATH=${{ env.SDL3_DIR }}/share/ndk-modules
           ndk-build -C ${{ github.workspace }}/cmake/test APP_PLATFORM=android-${{ matrix.platform.android_platform }} APP_ABI=${{ matrix.platform.android_abi }} NDK_OUT=$PWD NDK_LIBS_OUT=$PWD V=1
           ndk-build -C ${{ github.workspace }}/cmake/test APP_PLATFORM=android-${{ matrix.platform.android_platform }} APP_ABI=${{ matrix.platform.android_abi }} NDK_OUT=$PWD NDK_LIBS_OUT=$PWD V=1

+ 14 - 6
.github/workflows/emscripten.yml

@@ -6,32 +6,40 @@ jobs:
   emscripten:
   emscripten:
     runs-on: ubuntu-latest
     runs-on: ubuntu-latest
     steps:
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
       - uses: mymindstorm/setup-emsdk@v10
       - uses: mymindstorm/setup-emsdk@v10
         with:
         with:
-          version: 2.0.27
+          version: 2.0.32
+      - name: Install ninja
+        run: |
+          sudo apt-get -y update
+          sudo apt-get install -y ninja-build
       - name: Configure CMake
       - name: Configure CMake
         run: |
         run: |
           emcmake cmake -S . -B build \
           emcmake cmake -S . -B build \
+            -DSDL_WERROR=ON \
             -DSDL_TESTS=ON \
             -DSDL_TESTS=ON \
             -DSDL_INSTALL_TESTS=ON \
             -DSDL_INSTALL_TESTS=ON \
             -DCMAKE_BUILD_TYPE=Release \
             -DCMAKE_BUILD_TYPE=Release \
-            -DCMAKE_INSTALL_PREFIX=prefix
+            -DCMAKE_INSTALL_PREFIX=prefix \
+            -GNinja
       - name: Build
       - name: Build
         run: cmake --build build/ --verbose
         run: cmake --build build/ --verbose
       - name: Run build-time tests
       - name: Run build-time tests
         run: |
         run: |
           set -eu
           set -eu
           export SDL_TESTS_QUICK=1
           export SDL_TESTS_QUICK=1
-          ctest -VV --test-dir build/
+          # FIXME: enable Emscripten build time tests
+          # ctest -VV --test-dir build/
       - name: Install
       - name: Install
         run: |
         run: |
-          echo "SDL2_DIR=$(pwd)/prefix" >> $GITHUB_ENV
+          echo "SDL3_DIR=$(pwd)/prefix" >> $GITHUB_ENV
           cmake --install build/
           cmake --install build/
       - name: Verify CMake configuration files
       - name: Verify CMake configuration files
         run: |
         run: |
           emcmake cmake -S cmake/test -B cmake_config_build \
           emcmake cmake -S cmake/test -B cmake_config_build \
             -DCMAKE_BUILD_TYPE=Release \
             -DCMAKE_BUILD_TYPE=Release \
+            -DSDL_VENDOR_INFO="Github Workflow" \
             -DTEST_SHARED=FALSE \
             -DTEST_SHARED=FALSE \
-            -DCMAKE_PREFIX_PATH=${{ env.SDL2_DIR }}
+            -DCMAKE_PREFIX_PATH=${{ env.SDL3_DIR }}
           cmake --build cmake_config_build --verbose
           cmake --build cmake_config_build --verbose

+ 1 - 1
.github/workflows/ios.yml

@@ -15,6 +15,6 @@ jobs:
         - { name: tvOS, target: Static Library-tvOS, sdk: appletvos }
         - { name: tvOS, target: Static Library-tvOS, sdk: appletvos }
 
 
     steps:
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
       - name: Build
       - name: Build
         run: xcodebuild -project Xcode/SDL/SDL.xcodeproj -target '${{ matrix.platform.target }}' -configuration Release -sdk ${{ matrix.platform.sdk }} clean build
         run: xcodebuild -project Xcode/SDL/SDL.xcodeproj -target '${{ matrix.platform.target }}' -configuration Release -sdk ${{ matrix.platform.sdk }} clean build

+ 29 - 16
.github/workflows/main.yml

@@ -60,17 +60,19 @@ jobs:
       run: |
       run: |
         brew install \
         brew install \
           ninja
           ninja
-    - uses: actions/checkout@v2
+    - uses: actions/checkout@v3
     - name: Check that versioning is consistent
     - name: Check that versioning is consistent
       # We only need to run this once: arbitrarily use the Linux/CMake build
       # We only need to run this once: arbitrarily use the Linux/CMake build
       if: "runner.os == 'Linux' && ! matrix.platform.autotools"
       if: "runner.os == 'Linux' && ! matrix.platform.autotools"
-      run: ./test/versioning.sh
+      run: ./build-scripts/test-versioning.sh
     - name: Configure (CMake)
     - name: Configure (CMake)
       if: "! matrix.platform.autotools"
       if: "! matrix.platform.autotools"
       run: |
       run: |
         cmake -S . -B build -G Ninja \
         cmake -S . -B build -G Ninja \
         -DSDL_TESTS=ON \
         -DSDL_TESTS=ON \
+        -DSDL_WERROR=ON \
         -DSDL_INSTALL_TESTS=ON \
         -DSDL_INSTALL_TESTS=ON \
+        -DSDL_VENDOR_INFO="Github Workflow" \
         -DCMAKE_INSTALL_PREFIX=cmake_prefix \
         -DCMAKE_INSTALL_PREFIX=cmake_prefix \
         -DCMAKE_BUILD_TYPE=Release \
         -DCMAKE_BUILD_TYPE=Release \
         ${{ matrix.platform.cmake }}
         ${{ matrix.platform.cmake }}
@@ -84,13 +86,17 @@ jobs:
         set -eu
         set -eu
         export SDL_TESTS_QUICK=1
         export SDL_TESTS_QUICK=1
         ctest -VV --test-dir build/
         ctest -VV --test-dir build/
+        if test "${{ runner.os }}" = "Linux"; then
+          # This should show us the SDL_REVISION
+          strings build/libSDL3-3.0.so.0 | grep SDL-
+        fi
     - name: Install (CMake)
     - name: Install (CMake)
       if: "! matrix.platform.autotools"
       if: "! matrix.platform.autotools"
       run: |
       run: |
         set -eu
         set -eu
         cmake --install build/ --config Release
         cmake --install build/ --config Release
-        echo "SDL2_DIR=$(pwd)/cmake_prefix" >> $GITHUB_ENV
-        ( cd cmake_prefix; find ) | LC_ALL=C sort -u
+        echo "SDL3_DIR=$(pwd)/cmake_prefix" >> $GITHUB_ENV
+        ( cd cmake_prefix; find . ) | LC_ALL=C sort -u
     - name: Configure (Autotools)
     - name: Configure (Autotools)
       if: matrix.platform.autotools
       if: matrix.platform.autotools
       run: |
       run: |
@@ -101,6 +107,8 @@ jobs:
         (
         (
           cd build-autotools
           cd build-autotools
           ${{ github.workspace }}/configure \
           ${{ github.workspace }}/configure \
+            --enable-vendor-info="Github Workflow" \
+            --enable-werror \
             --prefix=${{ github.workspace }}/autotools_prefix \
             --prefix=${{ github.workspace }}/autotools_prefix \
         )
         )
         if test "${{ runner.os }}" != "macOS" ; then
         if test "${{ runner.os }}" != "macOS" ; then
@@ -110,12 +118,13 @@ jobs:
             mkdir -p build-autotools/test
             mkdir -p build-autotools/test
             cd build-autotools/test
             cd build-autotools/test
             ${{ github.workspace }}/test/configure \
             ${{ github.workspace }}/test/configure \
+              --enable-werror \
               --x-includes=/usr/include \
               --x-includes=/usr/include \
               --x-libraries="/usr/lib/${multiarch}" \
               --x-libraries="/usr/lib/${multiarch}" \
               --prefix=${{ github.workspace }}/autotools_prefix \
               --prefix=${{ github.workspace }}/autotools_prefix \
               SDL_CFLAGS="-I${curdir}/include" \
               SDL_CFLAGS="-I${curdir}/include" \
-              SDL_LIBS="-L${curdir}/build-autotools/build/.libs -lSDL2" \
-              ac_cv_lib_SDL2_ttf_TTF_Init=no \
+              SDL_LIBS="-L${curdir}/build-autotools/build/.libs -lSDL3" \
+              ac_cv_lib_SDL3_ttf_TTF_Init=no \
               ${NULL+}
               ${NULL+}
           )
           )
         fi
         fi
@@ -136,6 +145,10 @@ jobs:
         parallel="$(getconf _NPROCESSORS_ONLN)"
         parallel="$(getconf _NPROCESSORS_ONLN)"
         export SDL_TESTS_QUICK=1
         export SDL_TESTS_QUICK=1
         make -j"${parallel}" -C build-autotools/test check LD_LIBRARY_PATH="${curdir}/build-autotools/build/.libs"
         make -j"${parallel}" -C build-autotools/test check LD_LIBRARY_PATH="${curdir}/build-autotools/build/.libs"
+        if test "${{ runner.os }}" = "Linux"; then
+          # This should show us the SDL_REVISION
+          strings "${curdir}/build-autotools/build/.libs/libSDL3-3.0.so.0" | grep SDL-
+        fi
     - name: Install (Autotools)
     - name: Install (Autotools)
       if: matrix.platform.autotools
       if: matrix.platform.autotools
       run: |
       run: |
@@ -147,20 +160,20 @@ jobs:
           make -j"${parallel}" -C build-autotools/test install V=1
           make -j"${parallel}" -C build-autotools/test install V=1
         fi
         fi
         ( cd autotools_prefix; find . ) | LC_ALL=C sort -u
         ( cd autotools_prefix; find . ) | LC_ALL=C sort -u
-        echo "SDL2_DIR=$(pwd)/autotools_prefix" >> $GITHUB_ENV
+        echo "SDL3_DIR=$(pwd)/autotools_prefix" >> $GITHUB_ENV
     - name: Verify CMake configuration files
     - name: Verify CMake configuration files
       run: |
       run: |
         cmake -S cmake/test -B cmake_config_build -G Ninja \
         cmake -S cmake/test -B cmake_config_build -G Ninja \
           -DCMAKE_BUILD_TYPE=Release \
           -DCMAKE_BUILD_TYPE=Release \
-          -DCMAKE_PREFIX_PATH=${{ env.SDL2_DIR }}
+          -DCMAKE_PREFIX_PATH=${{ env.SDL3_DIR }}
         cmake --build cmake_config_build --verbose
         cmake --build cmake_config_build --verbose
-    - name: Verify sdl2-config
+    - name: Verify sdl3-config
       run: |
       run: |
-        export PATH=${{ env.SDL2_DIR }}/bin:$PATH
+        export PATH=${{ env.SDL3_DIR }}/bin:$PATH
         cmake/test/test_sdlconfig.sh
         cmake/test/test_sdlconfig.sh
-    - name: Verify sdl2.pc
+    - name: Verify sdl3.pc
       run: |
       run: |
-        export PKG_CONFIG_PATH=${{ env.SDL2_DIR }}/lib/pkgconfig
+        export PKG_CONFIG_PATH=${{ env.SDL3_DIR }}/lib/pkgconfig
         cmake/test/test_pkgconfig.sh
         cmake/test/test_pkgconfig.sh
     - name: Distcheck (Autotools)
     - name: Distcheck (Autotools)
       if: matrix.platform.autotools
       if: matrix.platform.autotools
@@ -171,9 +184,9 @@ jobs:
         # Similar to Automake `make distcheck`: check that the tarball
         # Similar to Automake `make distcheck`: check that the tarball
         # release is sufficient to do a new build
         # release is sufficient to do a new build
         mkdir distcheck
         mkdir distcheck
-        tar -C distcheck -zxf build-autotools/SDL2-*.tar.gz
-        ( cd distcheck/SDL2-* && ./configure )
-        make -j"${parallel}" -C distcheck/SDL2-*
+        tar -C distcheck -zxf build-autotools/SDL3-*.tar.gz
+        ( cd distcheck/SDL3-* && ./configure )
+        make -j"${parallel}" -C distcheck/SDL3-*
     - name: Run installed-tests (Autotools)
     - name: Run installed-tests (Autotools)
       if: "runner.os == 'Linux' && matrix.platform.autotools"
       if: "runner.os == 'Linux' && matrix.platform.autotools"
       run: |
       run: |
@@ -190,4 +203,4 @@ jobs:
             LD_LIBRARY_PATH=/usr/local/lib \
             LD_LIBRARY_PATH=/usr/local/lib \
             SDL_AUDIODRIVER=dummy \
             SDL_AUDIODRIVER=dummy \
             SDL_VIDEODRIVER=dummy \
             SDL_VIDEODRIVER=dummy \
-            ginsttest-runner --tap SDL2
+            ginsttest-runner --tap SDL3

+ 7 - 8
.github/workflows/msvc.yml

@@ -19,11 +19,9 @@ jobs:
         - { name: Windows (clang-cl x86), flags: -T ClangCL -A Win32 }
         - { name: Windows (clang-cl x86), flags: -T ClangCL -A Win32 }
         - { name: Windows (ARM),          flags: -A ARM }
         - { name: Windows (ARM),          flags: -A ARM }
         - { name: Windows (ARM64),        flags: -A ARM64 }
         - { name: Windows (ARM64),        flags: -A ARM64 }
-        - { name: UWP (x64),              flags: -A x64 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION="10.0" -DSDL_TESTS=OFF,
-            project: VisualC-WinRT/SDL-UWP.sln, projectflags: '/p:Platform=x64 /p:WindowsTargetPlatformVersion=10.0.17763.0' }
 
 
     steps:
     steps:
-    - uses: actions/checkout@v2
+    - uses: actions/checkout@v3
     - name: Create CMake project using SDL as a subproject
     - name: Create CMake project using SDL as a subproject
       shell: python
       shell: python
       run: |
       run: |
@@ -40,9 +38,11 @@ jobs:
           """))
           """))
     - name: Configure (CMake)
     - name: Configure (CMake)
       run: cmake -S build -B build `
       run: cmake -S build -B build `
+        -DSDL_WERROR=${{ !matrix.platform.nowerror }} `
         -DSDL_TESTS=ON `
         -DSDL_TESTS=ON `
         -DSDL_INSTALL_TESTS=ON `
         -DSDL_INSTALL_TESTS=ON `
-        -DSDL2_DISABLE_INSTALL=OFF `
+        -DSDL_VENDOR_INFO="Github Workflow" `
+        -DSDL3_DISABLE_INSTALL=OFF `
         ${{ matrix.platform.flags }} `
         ${{ matrix.platform.flags }} `
         -DCMAKE_INSTALL_PREFIX=prefix
         -DCMAKE_INSTALL_PREFIX=prefix
     - name: Build (CMake)
     - name: Build (CMake)
@@ -54,19 +54,18 @@ jobs:
         ctest -VV --test-dir build/ -C Release
         ctest -VV --test-dir build/ -C Release
     - name: Install (CMake)
     - name: Install (CMake)
       run: |
       run: |
-        echo "SDL2_DIR=$Env:GITHUB_WORKSPACE/prefix" >> $Env:GITHUB_ENV
+        echo "SDL3_DIR=$Env:GITHUB_WORKSPACE/prefix" >> $Env:GITHUB_ENV
         cmake --install build/
         cmake --install build/
     - name: Verify CMake configuration files
     - name: Verify CMake configuration files
-      if: ${{ !contains(matrix.platform.name, 'UWP') }}  # FIXME: cmake/test/CMakeLists.txt should support UWP
       run: |
       run: |
         cmake -S cmake/test -B cmake_config_build `
         cmake -S cmake/test -B cmake_config_build `
-          -DCMAKE_PREFIX_PATH=${{ env.SDL2_DIR }} `
+          -DCMAKE_PREFIX_PATH=${{ env.SDL3_DIR }} `
           ${{ matrix.platform.flags }}
           ${{ matrix.platform.flags }}
         cmake --build cmake_config_build --config Release
         cmake --build cmake_config_build --config Release
 
 
     - name: Add msbuild to PATH
     - name: Add msbuild to PATH
       if: ${{ matrix.platform.project != '' }}
       if: ${{ matrix.platform.project != '' }}
-      uses: microsoft/setup-msbuild@v1.0.2
+      uses: microsoft/setup-msbuild@v1.1.3
     - name: Build msbuild
     - name: Build msbuild
       if: ${{ matrix.platform.project != '' }}
       if: ${{ matrix.platform.project != '' }}
       run: msbuild ${{ matrix.platform.project }} /m /p:BuildInParallel=true /p:Configuration=Release ${{ matrix.platform.projectflags }}
       run: msbuild ${{ matrix.platform.project }} /m /p:BuildInParallel=true /p:Configuration=Release ${{ matrix.platform.projectflags }}

+ 42 - 0
.github/workflows/n3ds.yml

@@ -0,0 +1,42 @@
+name: Build (Nintendo 3DS)
+
+on: [push, pull_request]
+
+jobs:
+  n3ds:
+    runs-on: ubuntu-latest
+    container:
+      image: devkitpro/devkitarm:latest
+    steps:
+      - uses: actions/checkout@v3
+      - name: Install build requirements
+        run: |
+          apt update
+          apt install ninja-build
+      - name: Configure CMake
+        run: |
+          cmake -S . -B build -G Ninja \
+            -DCMAKE_TOOLCHAIN_FILE=${DEVKITPRO}/cmake/3DS.cmake \
+            -DSDL_WERROR=ON \
+            -DSDL_TESTS=ON \
+            -DSDL_INSTALL_TESTS=ON \
+            -DSDL_VENDOR_INFO="Github Workflow" \
+            -DCMAKE_BUILD_TYPE=Release \
+            -DCMAKE_INSTALL_PREFIX=prefix
+      - name: Build
+        run: cmake --build build --verbose
+      - name: Install CMake
+        run: |
+          echo "SDL3_DIR=$(pwd)/prefix" >> $GITHUB_ENV
+          cmake --install build/
+          ( cd prefix; find ) | LC_ALL=C sort -u
+      - name: Verify CMake configuration files
+        run: |
+          cmake -S cmake/test -B cmake_config_build -G Ninja \
+            -DCMAKE_TOOLCHAIN_FILE=${DEVKITPRO}/cmake/3DS.cmake \
+            -DTEST_SHARED=FALSE \
+            -DCMAKE_PREFIX_PATH=${{ env.SDL3_DIR }} \
+            -DCMAKE_BUILD_TYPE=Release
+          cmake --build cmake_config_build --verbose
+      # Not running test_pkgconfig.sh and test_sdlconfig.sh
+      # as invoking the compiler manually is not supported

+ 9 - 8
.github/workflows/ps2.yaml

@@ -7,7 +7,7 @@ jobs:
     runs-on: ubuntu-latest
     runs-on: ubuntu-latest
     container: ps2dev/ps2dev:latest
     container: ps2dev/ps2dev:latest
     steps:
     steps:
-    - uses: actions/checkout@v2
+    - uses: actions/checkout@v3
     - name: Setup dependencies
     - name: Setup dependencies
       run: |
       run: |
         apk update 
         apk update 
@@ -24,8 +24,9 @@ jobs:
 
 
     - name: Configure (CMake)
     - name: Configure (CMake)
       run: |
       run: |
-        cmake -S . -B build -G Ninja\
+        cmake -S . -B build -G Ninja \
           -DCMAKE_TOOLCHAIN_FILE=$PS2DEV/ps2sdk/ps2dev.cmake \
           -DCMAKE_TOOLCHAIN_FILE=$PS2DEV/ps2sdk/ps2dev.cmake \
+          -DSDL_WERROR=ON \
           -DSDL_TESTS=ON \
           -DSDL_TESTS=ON \
           -DCMAKE_INSTALL_PREFIX=cmake_prefix \
           -DCMAKE_INSTALL_PREFIX=cmake_prefix \
           -DCMAKE_BUILD_TYPE=Release
           -DCMAKE_BUILD_TYPE=Release
@@ -35,7 +36,7 @@ jobs:
       run: |
       run: |
         set -eu
         set -eu
         cmake --install build/ --config Release
         cmake --install build/ --config Release
-        echo "SDL2_DIR=$(pwd)/cmake_prefix" >> $GITHUB_ENV
+        echo "SDL3_DIR=$(pwd)/cmake_prefix" >> $GITHUB_ENV
         ( cd cmake_prefix; find ) | LC_ALL=C sort -u
         ( cd cmake_prefix; find ) | LC_ALL=C sort -u
 
 
     - name: Verify CMake configuration files
     - name: Verify CMake configuration files
@@ -43,20 +44,20 @@ jobs:
         cmake -S cmake/test -B cmake_config_build -G Ninja \
         cmake -S cmake/test -B cmake_config_build -G Ninja \
           -DCMAKE_TOOLCHAIN_FILE=$PS2DEV/ps2sdk/ps2dev.cmake \
           -DCMAKE_TOOLCHAIN_FILE=$PS2DEV/ps2sdk/ps2dev.cmake \
           -DTEST_SHARED=FALSE \
           -DTEST_SHARED=FALSE \
-          -DCMAKE_PREFIX_PATH=${{ env.SDL2_DIR }} \
+          -DCMAKE_PREFIX_PATH=${{ env.SDL3_DIR }} \
           -DCMAKE_BUILD_TYPE=Release
           -DCMAKE_BUILD_TYPE=Release
         cmake --build cmake_config_build --verbose
         cmake --build cmake_config_build --verbose
-    - name: Verify sdl2-config
+    - name: Verify sdl3-config
       run: |
       run: |
         export CC=mips64r5900el-ps2-elf-gcc
         export CC=mips64r5900el-ps2-elf-gcc
-        export PATH=${{ env.SDL2_DIR }}/bin:$PATH
+        export PATH=${{ env.SDL3_DIR }}/bin:$PATH
         export EXTRA_LDFLAGS="-L$PS2DEV/ps2sdk/ee/lib -L$PS2DEV/gsKit/lib -L$PS2DEV/ps2sdk/ports/lib"
         export EXTRA_LDFLAGS="-L$PS2DEV/ps2sdk/ee/lib -L$PS2DEV/gsKit/lib -L$PS2DEV/ps2sdk/ports/lib"
         cmake/test/test_sdlconfig.sh
         cmake/test/test_sdlconfig.sh
-    - name: Verify sdl2.pc
+    - name: Verify sdl3.pc
       run: |
       run: |
         export CC=mips64r5900el-ps2-elf-gcc
         export CC=mips64r5900el-ps2-elf-gcc
         export EXTRA_LDFLAGS="-L$PS2DEV/ps2sdk/ee/lib -L$PS2DEV/gsKit/lib -L$PS2DEV/ps2sdk/ports/lib"
         export EXTRA_LDFLAGS="-L$PS2DEV/ps2sdk/ee/lib -L$PS2DEV/gsKit/lib -L$PS2DEV/ps2sdk/ports/lib"
-        export PKG_CONFIG_PATH=${{ env.SDL2_DIR }}/lib/pkgconfig
+        export PKG_CONFIG_PATH=${{ env.SDL3_DIR }}/lib/pkgconfig
         cmake/test/test_pkgconfig.sh
         cmake/test/test_pkgconfig.sh
     
     
     - name: Get short SHA
     - name: Get short SHA

+ 8 - 7
.github/workflows/psp.yaml

@@ -7,7 +7,7 @@ jobs:
     runs-on: ubuntu-latest
     runs-on: ubuntu-latest
     container: pspdev/pspdev:latest
     container: pspdev/pspdev:latest
     steps:
     steps:
-    - uses: actions/checkout@v2
+    - uses: actions/checkout@v3
     - name: Setup dependencies
     - name: Setup dependencies
       run: |
       run: |
         apk update 
         apk update 
@@ -16,6 +16,7 @@ jobs:
       run: |
       run: |
         cmake -S . -B build \
         cmake -S . -B build \
           -DCMAKE_TOOLCHAIN_FILE=$PSPDEV/psp/share/pspdev.cmake \
           -DCMAKE_TOOLCHAIN_FILE=$PSPDEV/psp/share/pspdev.cmake \
+          -DSDL_WERROR=ON \
           -DSDL_TESTS=ON \
           -DSDL_TESTS=ON \
           -DSDL_INSTALL_TESTS=ON \
           -DSDL_INSTALL_TESTS=ON \
           -DCMAKE_BUILD_TYPE=Release \
           -DCMAKE_BUILD_TYPE=Release \
@@ -24,26 +25,26 @@ jobs:
       run: cmake --build build --config Release
       run: cmake --build build --config Release
     - name: Install
     - name: Install
       run: |
       run: |
-        echo "SDL2_DIR=$(pwd)/prefix" >> $GITHUB_ENV
+        echo "SDL3_DIR=$(pwd)/prefix" >> $GITHUB_ENV
         cmake --install build --config Release
         cmake --install build --config Release
         ( cd prefix; find ) | LC_ALL=C sort -u
         ( cd prefix; find ) | LC_ALL=C sort -u
     - name: Verify CMake configuration files
     - name: Verify CMake configuration files
       run: |
       run: |
         cmake -S cmake/test -B cmake_config_build \
         cmake -S cmake/test -B cmake_config_build \
           -DCMAKE_TOOLCHAIN_FILE=$PSPDEV/psp/share/pspdev.cmake \
           -DCMAKE_TOOLCHAIN_FILE=$PSPDEV/psp/share/pspdev.cmake \
-          -DCMAKE_PREFIX_PATH=${{ env.SDL2_DIR }} \
+          -DCMAKE_PREFIX_PATH=${{ env.SDL3_DIR }} \
           -DTEST_SHARED=FALSE \
           -DTEST_SHARED=FALSE \
           -DCMAKE_BUILD_TYPE=Release
           -DCMAKE_BUILD_TYPE=Release
         cmake --build cmake_config_build --verbose
         cmake --build cmake_config_build --verbose
-    - name: Verify sdl2-config
+    - name: Verify sdl3-config
       run: |
       run: |
         export CC=psp-gcc
         export CC=psp-gcc
-        export PATH=${{ env.SDL2_DIR }}/bin:$PATH
+        export PATH=${{ env.SDL3_DIR }}/bin:$PATH
         export EXTRA_LDFLAGS="-L$PSPDEV/lib -L$PSPDEV/psp/lib -L$PSPDEV/psp/sdk/lib"
         export EXTRA_LDFLAGS="-L$PSPDEV/lib -L$PSPDEV/psp/lib -L$PSPDEV/psp/sdk/lib"
         cmake/test/test_sdlconfig.sh
         cmake/test/test_sdlconfig.sh
-    - name: Verify sdl2.pc
+    - name: Verify sdl3.pc
       run: |
       run: |
         export CC=psp-gcc
         export CC=psp-gcc
-        export PKG_CONFIG_PATH=${{ env.SDL2_DIR }}/lib/pkgconfig
+        export PKG_CONFIG_PATH=${{ env.SDL3_DIR }}/lib/pkgconfig
         export EXTRA_LDFLAGS="-L$PSPDEV/lib -L$PSPDEV/psp/lib -L$PSPDEV/psp/sdk/lib"
         export EXTRA_LDFLAGS="-L$PSPDEV/lib -L$PSPDEV/psp/lib -L$PSPDEV/psp/sdk/lib"
         cmake/test/test_pkgconfig.sh
         cmake/test/test_pkgconfig.sh

+ 5 - 4
.github/workflows/riscos.yml

@@ -18,7 +18,7 @@ jobs:
     steps:
     steps:
     - name: Setup dependencies
     - name: Setup dependencies
       run: apt-get update && apt-get install -y cmake ninja-build
       run: apt-get update && apt-get install -y cmake ninja-build
-    - uses: actions/checkout@v2
+    - uses: actions/checkout@v3
     - name: Configure (autotools)
     - name: Configure (autotools)
       if: ${{ contains(matrix.platform.name, 'autotools') }}
       if: ${{ contains(matrix.platform.name, 'autotools') }}
       run: |
       run: |
@@ -34,7 +34,7 @@ jobs:
     - name: Install (autotools)
     - name: Install (autotools)
       if: ${{ contains(matrix.platform.name, 'autotools') }}
       if: ${{ contains(matrix.platform.name, 'autotools') }}
       run: |
       run: |
-        echo "SDL2_DIR=${{ github.workspace }}/prefix_autotools" >> $GITHUB_ENV
+        echo "SDL3_DIR=${{ github.workspace }}/prefix_autotools" >> $GITHUB_ENV
         make -C build_autotools install
         make -C build_autotools install
         ( cd ${{ github.workspace }}/prefix_autotools; find ) | LC_ALL=C sort -u
         ( cd ${{ github.workspace }}/prefix_autotools; find ) | LC_ALL=C sort -u
     - name: Configure (CMake)
     - name: Configure (CMake)
@@ -46,6 +46,7 @@ jobs:
           -DSDL_GCC_ATOMICS=OFF \
           -DSDL_GCC_ATOMICS=OFF \
           -DSDL_TESTS=ON \
           -DSDL_TESTS=ON \
           -DSDL_INSTALL_TESTS=ON \
           -DSDL_INSTALL_TESTS=ON \
+          -DSDL_VENDOR_INFO="Github Workflow" \
           -DCMAKE_BUILD_TYPE=Release \
           -DCMAKE_BUILD_TYPE=Release \
           -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/prefix_cmake
           -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/prefix_cmake
     - name: Build (CMake)
     - name: Build (CMake)
@@ -54,14 +55,14 @@ jobs:
     - name: Install (CMake)
     - name: Install (CMake)
       if: ${{ contains(matrix.platform.name, 'CMake') }}
       if: ${{ contains(matrix.platform.name, 'CMake') }}
       run: |
       run: |
-        echo "SDL2_DIR=${{ github.workspace }}/prefix_cmake" >> $GITHUB_ENV
+        echo "SDL3_DIR=${{ github.workspace }}/prefix_cmake" >> $GITHUB_ENV
         cmake --install build/
         cmake --install build/
         ( cd ${{ github.workspace }}/prefix_cmake; find ) | LC_ALL=C sort -u
         ( cd ${{ github.workspace }}/prefix_cmake; find ) | LC_ALL=C sort -u
     - name: Verify CMake configuration files
     - name: Verify CMake configuration files
       run: |
       run: |
         cmake -S cmake/test -B cmake_config_build -G Ninja \
         cmake -S cmake/test -B cmake_config_build -G Ninja \
           -DCMAKE_TOOLCHAIN_FILE=/home/riscos/env/toolchain-riscos.cmake \
           -DCMAKE_TOOLCHAIN_FILE=/home/riscos/env/toolchain-riscos.cmake \
-          -DCMAKE_PREFIX_PATH=${{ env.SDL2_DIR }} \
+          -DCMAKE_PREFIX_PATH=${{ env.SDL3_DIR }} \
           -DCMAKE_BUILD_TYPE=Release \
           -DCMAKE_BUILD_TYPE=Release \
           ${{ matrix.platform.test_args }}
           ${{ matrix.platform.test_args }}
         cmake --build cmake_config_build --verbose
         cmake --build cmake_config_build --verbose

+ 9 - 8
.github/workflows/vita.yaml

@@ -12,15 +12,16 @@ jobs:
     container: 
     container: 
       image: vitasdk/vitasdk:latest
       image: vitasdk/vitasdk:latest
     steps:
     steps:
-    - uses: actions/checkout@v2
+    - uses: actions/checkout@v3
     - name: Install build requirements
     - name: Install build requirements
       run: |
       run: |
         apk update 
         apk update 
-        apk add cmake ninja pkgconf
+        apk add cmake ninja pkgconf bash
     - name: Configure CMake
     - name: Configure CMake
       run: |
       run: |
         cmake -S . -B build -G Ninja \
         cmake -S . -B build -G Ninja \
           -DCMAKE_TOOLCHAIN_FILE=${VITASDK}/share/vita.toolchain.cmake \
           -DCMAKE_TOOLCHAIN_FILE=${VITASDK}/share/vita.toolchain.cmake \
+          -DSDL_WERROR=ON \
           -DSDL_TESTS=ON \
           -DSDL_TESTS=ON \
           -DSDL_INSTALL_TESTS=ON \
           -DSDL_INSTALL_TESTS=ON \
           -DCMAKE_BUILD_TYPE=Release \
           -DCMAKE_BUILD_TYPE=Release \
@@ -29,7 +30,7 @@ jobs:
       run: cmake --build build --verbose
       run: cmake --build build --verbose
     - name: Install CMake
     - name: Install CMake
       run: |
       run: |
-        echo "SDL2_DIR=$(pwd)/prefix" >> $GITHUB_ENV
+        echo "SDL3_DIR=$(pwd)/prefix" >> $GITHUB_ENV
         cmake --install build/
         cmake --install build/
         ( cd prefix; find ) | LC_ALL=C sort -u
         ( cd prefix; find ) | LC_ALL=C sort -u
     - name: Verify CMake configuration files
     - name: Verify CMake configuration files
@@ -37,16 +38,16 @@ jobs:
         cmake -S cmake/test -B cmake_config_build -G Ninja \
         cmake -S cmake/test -B cmake_config_build -G Ninja \
           -DCMAKE_TOOLCHAIN_FILE=${VITASDK}/share/vita.toolchain.cmake \
           -DCMAKE_TOOLCHAIN_FILE=${VITASDK}/share/vita.toolchain.cmake \
           -DTEST_SHARED=FALSE \
           -DTEST_SHARED=FALSE \
-          -DCMAKE_PREFIX_PATH=${{ env.SDL2_DIR }} \
+          -DCMAKE_PREFIX_PATH=${{ env.SDL3_DIR }} \
           -DCMAKE_BUILD_TYPE=Release
           -DCMAKE_BUILD_TYPE=Release
         cmake --build cmake_config_build --verbose
         cmake --build cmake_config_build --verbose
-    - name: Verify sdl2-config
+    - name: Verify sdl3-config
       run: |
       run: |
         export CC=arm-vita-eabi-gcc
         export CC=arm-vita-eabi-gcc
-        export PATH=${{ env.SDL2_DIR }}/bin:$PATH
+        export PATH=${{ env.SDL3_DIR }}/bin:$PATH
         cmake/test/test_sdlconfig.sh
         cmake/test/test_sdlconfig.sh
-    - name: Verify sdl2.pc
+    - name: Verify sdl3.pc
       run: |
       run: |
         export CC=arm-vita-eabi-gcc
         export CC=arm-vita-eabi-gcc
-        export PKG_CONFIG_PATH=${{ env.SDL2_DIR }}/lib/pkgconfig
+        export PKG_CONFIG_PATH=${{ env.SDL3_DIR }}/lib/pkgconfig
         cmake/test/test_pkgconfig.sh
         cmake/test/test_pkgconfig.sh

+ 1 - 2
.github/workflows/vmactions.yml

@@ -7,7 +7,7 @@ jobs:
     runs-on: macos-12
     runs-on: macos-12
     name: FreeBSD
     name: FreeBSD
     steps:
     steps:
-    - uses: actions/checkout@v2
+    - uses: actions/checkout@v3
     - name: Build
     - name: Build
       uses: vmactions/freebsd-vm@v0
       uses: vmactions/freebsd-vm@v0
       with:
       with:
@@ -33,7 +33,6 @@ jobs:
               libinotify \
               libinotify \
               alsa-lib \
               alsa-lib \
               jackit \
               jackit \
-              nas \
               pipewire \
               pipewire \
               pulseaudio \
               pulseaudio \
               sndio \
               sndio \

+ 0 - 35
.github/workflows/watcom.yml

@@ -1,35 +0,0 @@
-name: Build (OpenWatcom)
-
-on: [push, pull_request]
-
-jobs:
-  os2:
-    name: ${{ matrix.platform.name }}
-    runs-on: windows-latest
-
-    strategy:
-      matrix:
-        platform:
-        - { name: Windows, makefile: Makefile.w32 }
-        - { name: OS/2,    makefile: Makefile.os2 }
-
-    steps:
-      - uses: actions/checkout@v2
-      - uses: open-watcom/setup-watcom@v0
-      - name: Build SDL2
-        run: |
-          wmake -f ${{ matrix.platform.makefile }}
-      - name: Build tests
-        run: |
-          cd test && wmake -f ${{ matrix.platform.makefile }}
-          cd ..
-      - name: Run tests
-        if: "matrix.platform.makefile == 'Makefile.w32'"
-        run: |
-          cd test && wmake -f ${{ matrix.platform.makefile }} check-quick
-          cd ..
-      - name: distclean
-        run: |
-          wmake -f ${{ matrix.platform.makefile }} distclean
-          cd test && wmake -f ${{ matrix.platform.makefile }} distclean
-          cd ..

+ 1 - 9
.gitignore

@@ -15,6 +15,7 @@ build
 gen
 gen
 Build
 Build
 buildbot
 buildbot
+/VERSION.txt
 
 
 *.so
 *.so
 *.so.*
 *.so.*
@@ -87,15 +88,6 @@ VisualC/tests/testscale/icon.bmp
 VisualC/tests/testscale/sample.bmp
 VisualC/tests/testscale/sample.bmp
 VisualC/tests/testsprite2/icon.bmp
 VisualC/tests/testsprite2/icon.bmp
 VisualC/tests/testyuv/testyuv.bmp
 VisualC/tests/testyuv/testyuv.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
 VisualC-GDK/**/Layout
 VisualC-GDK/**/Layout
 
 
 # for Android
 # for Android

+ 3 - 2
.wikiheaders-options

@@ -1,5 +1,5 @@
-projectfullname = SDL_mixer
-projectshortname = SDL_mixer
+projectfullname = SDL
+projectshortname = SDL
 incsubdir = include
 incsubdir = include
 wikisubdir =
 wikisubdir =
 apiprefixregex = (SDL_|SDLK_|KMOD_|AUDIO_)
 apiprefixregex = (SDL_|SDLK_|KMOD_|AUDIO_)
@@ -13,3 +13,4 @@ projecturl = https://libsdl.org/
 wikiurl = https://wiki.libsdl.org
 wikiurl = https://wiki.libsdl.org
 bugreporturl = https://github.com/libsdl-org/sdlwiki/issues/new
 bugreporturl = https://github.com/libsdl-org/sdlwiki/issues/new
 warn_about_missing = 0
 warn_about_missing = 0
+wikipreamble = (This is the documentation for SDL3, which is under heavy development and the API is changing! SDL2 is the current stable version!)

+ 13 - 7
Android.mk

@@ -8,7 +8,7 @@ LOCAL_PATH := $(call my-dir)
 
 
 include $(CLEAR_VARS)
 include $(CLEAR_VARS)
 
 
-LOCAL_MODULE := SDL2
+LOCAL_MODULE := SDL3
 
 
 LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
 LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
 
 
@@ -75,12 +75,13 @@ LOCAL_CFLAGS += \
 	-Wstrict-prototypes \
 	-Wstrict-prototypes \
 	-Wkeyword-macro \
 	-Wkeyword-macro \
 
 
-
 # Warnings we haven't fixed (yet)
 # Warnings we haven't fixed (yet)
 LOCAL_CFLAGS += -Wno-unused-parameter -Wno-sign-compare
 LOCAL_CFLAGS += -Wno-unused-parameter -Wno-sign-compare
 
 
 LOCAL_LDLIBS := -ldl -lGLESv1_CM -lGLESv2 -lOpenSLES -llog -landroid
 LOCAL_LDLIBS := -ldl -lGLESv1_CM -lGLESv2 -lOpenSLES -llog -landroid
 
 
+LOCAL_LDFLAGS := -Wl,--no-undefined
+
 ifeq ($(NDK_DEBUG),1)
 ifeq ($(NDK_DEBUG),1)
     cmd-strip :=
     cmd-strip :=
 endif
 endif
@@ -89,21 +90,26 @@ LOCAL_STATIC_LIBRARIES := cpufeatures
 
 
 include $(BUILD_SHARED_LIBRARY)
 include $(BUILD_SHARED_LIBRARY)
 
 
+
 ###########################
 ###########################
 #
 #
 # SDL static library
 # SDL static library
 #
 #
 ###########################
 ###########################
 
 
-LOCAL_MODULE := SDL2_static
+LOCAL_MODULE := SDL3_static
 
 
-LOCAL_MODULE_FILENAME := libSDL2
+LOCAL_MODULE_FILENAME := libSDL3
+
+LOCAL_LDLIBS :=
+
+LOCAL_LDFLAGS :=
 
 
-LOCAL_LDLIBS := 
 LOCAL_EXPORT_LDLIBS := -ldl -lGLESv1_CM -lGLESv2 -llog -landroid
 LOCAL_EXPORT_LDLIBS := -ldl -lGLESv1_CM -lGLESv2 -llog -landroid
 
 
 include $(BUILD_STATIC_LIBRARY)
 include $(BUILD_STATIC_LIBRARY)
 
 
+
 ###########################
 ###########################
 #
 #
 # SDL main static library
 # SDL main static library
@@ -114,9 +120,9 @@ include $(CLEAR_VARS)
 
 
 LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
 LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
 
 
-LOCAL_MODULE := SDL2_main
+LOCAL_MODULE := SDL3_main
 
 
-LOCAL_MODULE_FILENAME := libSDL2main
+LOCAL_MODULE_FILENAME := libSDL3main
 
 
 include $(BUILD_STATIC_LIBRARY)
 include $(BUILD_STATIC_LIBRARY)
 
 

File diff suppressed because it is too large
+ 224 - 181
CMakeLists.txt


+ 34 - 32
Makefile.in

@@ -13,7 +13,7 @@ datarootdir = @datarootdir@
 datadir	= @datadir@
 datadir	= @datadir@
 auxdir	= @ac_aux_dir@
 auxdir	= @ac_aux_dir@
 distpath = $(srcdir)/..
 distpath = $(srcdir)/..
-distdir = SDL2-@SDL_VERSION@
+distdir = SDL3-@SDL_VERSION@
 distfile = $(distdir).tar.gz
 distfile = $(distdir).tar.gz
 
 
 @SET_MAKE@
 @SET_MAKE@
@@ -32,26 +32,27 @@ RANLIB	= @RANLIB@
 RC	= @RC@
 RC	= @RC@
 LINKER = @LINKER@
 LINKER = @LINKER@
 LIBTOOLLINKERTAG = @LIBTOOLLINKERTAG@
 LIBTOOLLINKERTAG = @LIBTOOLLINKERTAG@
+SDL_VENDOR_INFO = @SDL_VENDOR_INFO@
 
 
-TARGET  = libSDL2.la
+TARGET  = libSDL3.la
 OBJECTS = @OBJECTS@
 OBJECTS = @OBJECTS@
 GEN_HEADERS = @GEN_HEADERS@
 GEN_HEADERS = @GEN_HEADERS@
 GEN_OBJECTS = @GEN_OBJECTS@
 GEN_OBJECTS = @GEN_OBJECTS@
 VERSION_OBJECTS = @VERSION_OBJECTS@
 VERSION_OBJECTS = @VERSION_OBJECTS@
 
 
-SDLMAIN_TARGET = libSDL2main.la
+SDLMAIN_TARGET = libSDL3main.la
 SDLMAIN_OBJECTS = @SDLMAIN_OBJECTS@
 SDLMAIN_OBJECTS = @SDLMAIN_OBJECTS@
 
 
-SDLTEST_TARGET = libSDL2_test.la
+SDLTEST_TARGET = libSDL3_test.la
 SDLTEST_OBJECTS = @SDLTEST_OBJECTS@
 SDLTEST_OBJECTS = @SDLTEST_OBJECTS@
 
 
 WAYLAND_SCANNER = @WAYLAND_SCANNER@
 WAYLAND_SCANNER = @WAYLAND_SCANNER@
 WAYLAND_SCANNER_CODE_MODE = @WAYLAND_SCANNER_CODE_MODE@
 WAYLAND_SCANNER_CODE_MODE = @WAYLAND_SCANNER_CODE_MODE@
 
 
-INSTALL_SDL2_CONFIG = @INSTALL_SDL2_CONFIG@
+INSTALL_SDL3_CONFIG = @INSTALL_SDL3_CONFIG@
 
 
-SRC_DIST = *.md *.txt acinclude Android.mk autogen.sh android-project build-scripts cmake cmake_uninstall.cmake.in configure configure.ac docs include Makefile.* mingw sdl2-config.cmake.in sdl2-config-version.cmake.in sdl2-config.in sdl2.m4 sdl2.pc.in SDL2.spec.in SDL2Config.cmake.in src test VisualC VisualC-WinRT Xcode Xcode-iOS wayland-protocols
-GEN_DIST = SDL2.spec
+SRC_DIST = *.md *.txt acinclude Android.mk autogen.sh android-project build-scripts cmake cmake_uninstall.cmake.in configure configure.ac docs include Makefile.* mingw sdl3-config.cmake.in sdl3-config-version.cmake.in sdl3-config.in sdl3.m4 sdl3.pc.in SDL3.spec.in SDL3Config.cmake.in src test VisualC Xcode Xcode-iOS wayland-protocols
+GEN_DIST = SDL3.spec
 
 
 ifneq ($V,1)
 ifneq ($V,1)
 RUN_CMD_AR     = @echo "  AR    " $@;
 RUN_CMD_AR     = @echo "  AR    " $@;
@@ -152,7 +153,7 @@ $(objects)/.created:
 	touch $@
 	touch $@
 
 
 update-revision:
 update-revision:
-	$(SHELL) $(auxdir)/updaterev.sh
+	$(SHELL) $(auxdir)/updaterev.sh --vendor "$(SDL_VENDOR_INFO)"
 
 
 .PHONY: all update-revision install install-bin install-hdrs install-lib install-data uninstall uninstall-bin uninstall-hdrs uninstall-lib uninstall-data clean distclean dist $(OBJECTS:.lo=.d)
 .PHONY: all update-revision install install-bin install-hdrs install-lib install-data uninstall uninstall-bin uninstall-hdrs uninstall-lib uninstall-data clean distclean dist $(OBJECTS:.lo=.d)
 
 
@@ -167,21 +168,21 @@ $(objects)/$(SDLTEST_TARGET): $(SDLTEST_OBJECTS)
 
 
 install: all install-bin install-hdrs install-lib install-data
 install: all install-bin install-hdrs install-lib install-data
 install-bin:
 install-bin:
-ifeq ($(INSTALL_SDL2_CONFIG),TRUE)
+ifeq ($(INSTALL_SDL3_CONFIG),TRUE)
 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(bindir)
 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(bindir)
-	$(INSTALL) -m 755 sdl2-config $(DESTDIR)$(bindir)/sdl2-config
+	$(INSTALL) -m 755 sdl3-config $(DESTDIR)$(bindir)/sdl3-config
 endif
 endif
 
 
 install-hdrs: update-revision
 install-hdrs: update-revision
-	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(includedir)/SDL2
+	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(includedir)/SDL3
 	for file in $(HDRS) $(SDLTEST_HDRS); do \
 	for file in $(HDRS) $(SDLTEST_HDRS); do \
-	    $(INSTALL) -m 644 $(srcdir)/include/$$file $(DESTDIR)$(includedir)/SDL2/$$file; \
+	    $(INSTALL) -m 644 $(srcdir)/include/$$file $(DESTDIR)$(includedir)/SDL3/$$file; \
 	done
 	done
-	$(INSTALL) -m 644 include/SDL_config.h $(DESTDIR)$(includedir)/SDL2/SDL_config.h
+	$(INSTALL) -m 644 include/SDL_config.h $(DESTDIR)$(includedir)/SDL3/SDL_config.h
 	if test -f include/SDL_revision.h; then \
 	if test -f include/SDL_revision.h; then \
-	    $(INSTALL) -m 644 include/SDL_revision.h $(DESTDIR)$(includedir)/SDL2/SDL_revision.h; \
+	    $(INSTALL) -m 644 include/SDL_revision.h $(DESTDIR)$(includedir)/SDL3/SDL_revision.h; \
 	else \
 	else \
-	    $(INSTALL) -m 644 $(srcdir)/include/SDL_revision.h $(DESTDIR)$(includedir)/SDL2/SDL_revision.h; \
+	    $(INSTALL) -m 644 $(srcdir)/include/SDL_revision.h $(DESTDIR)$(includedir)/SDL3/SDL_revision.h; \
 	fi
 	fi
 
 
 install-lib: $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET) $(objects)/$(SDLTEST_TARGET)
 install-lib: $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET) $(objects)/$(SDLTEST_TARGET)
@@ -191,34 +192,34 @@ install-lib: $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET) $(objects)/$(SDLT
 	$(LIBTOOL) --mode=install $(INSTALL) $(objects)/$(SDLTEST_TARGET) $(DESTDIR)$(libdir)/$(SDLTEST_TARGET)
 	$(LIBTOOL) --mode=install $(INSTALL) $(objects)/$(SDLTEST_TARGET) $(DESTDIR)$(libdir)/$(SDLTEST_TARGET)
 install-data:
 install-data:
 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(datadir)/aclocal
 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(datadir)/aclocal
-	$(INSTALL) -m 644 $(srcdir)/sdl2.m4 $(DESTDIR)$(datadir)/aclocal/sdl2.m4
+	$(INSTALL) -m 644 $(srcdir)/sdl3.m4 $(DESTDIR)$(datadir)/aclocal/sdl3.m4
 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(libdir)/pkgconfig
 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(libdir)/pkgconfig
-	$(INSTALL) -m 644 sdl2.pc $(DESTDIR)$(libdir)/pkgconfig
-ifeq ($(INSTALL_SDL2_CONFIG),TRUE)
-	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(libdir)/cmake/SDL2
-	$(INSTALL) -m 644 sdl2-config.cmake $(DESTDIR)$(libdir)/cmake/SDL2
-	$(INSTALL) -m 644 sdl2-config-version.cmake $(DESTDIR)$(libdir)/cmake/SDL2
+	$(INSTALL) -m 644 sdl3.pc $(DESTDIR)$(libdir)/pkgconfig
+ifeq ($(INSTALL_SDL3_CONFIG),TRUE)
+	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(libdir)/cmake/SDL3
+	$(INSTALL) -m 644 sdl3-config.cmake $(DESTDIR)$(libdir)/cmake/SDL3
+	$(INSTALL) -m 644 sdl3-config-version.cmake $(DESTDIR)$(libdir)/cmake/SDL3
 endif
 endif
 
 
 uninstall: uninstall-bin uninstall-hdrs uninstall-lib uninstall-data
 uninstall: uninstall-bin uninstall-hdrs uninstall-lib uninstall-data
 uninstall-bin:
 uninstall-bin:
-	rm -f $(DESTDIR)$(bindir)/sdl2-config
+	rm -f $(DESTDIR)$(bindir)/sdl3-config
 uninstall-hdrs:
 uninstall-hdrs:
 	for file in $(HDRS) $(SDLTEST_HDRS); do \
 	for file in $(HDRS) $(SDLTEST_HDRS); do \
-	    rm -f $(DESTDIR)$(includedir)/SDL2/$$file; \
+	    rm -f $(DESTDIR)$(includedir)/SDL3/$$file; \
 	done
 	done
-	rm -f $(DESTDIR)$(includedir)/SDL2/SDL_config.h
-	rm -f $(DESTDIR)$(includedir)/SDL2/SDL_revision.h
-	-rmdir $(DESTDIR)$(includedir)/SDL2
+	rm -f $(DESTDIR)$(includedir)/SDL3/SDL_config.h
+	rm -f $(DESTDIR)$(includedir)/SDL3/SDL_revision.h
+	-rmdir $(DESTDIR)$(includedir)/SDL3
 uninstall-lib:
 uninstall-lib:
 	$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$(TARGET)
 	$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$(TARGET)
 	rm -f $(DESTDIR)$(libdir)/$(SDLMAIN_TARGET)
 	rm -f $(DESTDIR)$(libdir)/$(SDLMAIN_TARGET)
 	rm -f $(DESTDIR)$(libdir)/$(SDLTEST_TARGET)
 	rm -f $(DESTDIR)$(libdir)/$(SDLTEST_TARGET)
 uninstall-data:
 uninstall-data:
-	rm -f $(DESTDIR)$(datadir)/aclocal/sdl2.m4
-	rm -f $(DESTDIR)$(libdir)/pkgconfig/sdl2.pc
-	rm -f $(DESTDIR)$(libdir)/cmake/SDL2/sdl2-config.cmake
-	rm -f $(DESTDIR)$(libdir)/cmake/SDL2/sdl2-config-version.cmake
+	rm -f $(DESTDIR)$(datadir)/aclocal/sdl3.m4
+	rm -f $(DESTDIR)$(libdir)/pkgconfig/sdl3.pc
+	rm -f $(DESTDIR)$(libdir)/cmake/SDL3/sdl3-config.cmake
+	rm -f $(DESTDIR)$(libdir)/cmake/SDL3/sdl3-config-version.cmake
 
 
 clean:
 clean:
 	rm -rf $(objects)
 	rm -rf $(objects)
@@ -226,7 +227,7 @@ clean:
 	if test -f test/Makefile; then (cd test; $(MAKE) $@); fi
 	if test -f test/Makefile; then (cd test; $(MAKE) $@); fi
 
 
 distclean: clean
 distclean: clean
-	rm -f Makefile Makefile.rules sdl2-config
+	rm -f Makefile Makefile.rules sdl3-config
 	rm -f config.status config.cache config.log libtool
 	rm -f config.status config.cache config.log libtool
 	rm -rf $(srcdir)/autom4te*
 	rm -rf $(srcdir)/autom4te*
 	find $(srcdir) \( \
 	find $(srcdir) \( \
@@ -252,7 +253,8 @@ dist $(distfile):
 	    -name '.#*' \) \
 	    -name '.#*' \) \
 	    -exec rm -f {} \;
 	    -exec rm -f {} \;
 	if test -f $(distdir)/test/Makefile; then (cd $(distdir)/test && make distclean); fi
 	if test -f $(distdir)/test/Makefile; then (cd $(distdir)/test && make distclean); fi
-	(cd $(distdir); build-scripts/updaterev.sh)
+	# Intentionally no vendor suffix: that's a property of the build, not the source
+	(cd $(distdir); $(srcdir)/build-scripts/updaterev.sh --dist)
 	tar cvf - $(distdir) | gzip --best >$(distfile)
 	tar cvf - $(distdir) | gzip --best >$(distfile)
 	rm -rf $(distdir)
 	rm -rf $(distdir)
 
 

+ 2 - 2
Makefile.minimal

@@ -5,8 +5,8 @@ CFLAGS  = -g -O2 $(INCLUDE)
 AR	= ar
 AR	= ar
 RANLIB	= ranlib
 RANLIB	= ranlib
 
 
-TARGET  = libSDL2.a
-TESTTARGET = libSDL2_test.a
+TARGET  = libSDL3.a
+TESTTARGET = libSDL3_test.a
 
 
 SOURCES = \
 SOURCES = \
 	src/*.c \
 	src/*.c \

+ 0 - 291
Makefile.os2

@@ -1,291 +0,0 @@
-# Open Watcom makefile to build SDL2.dll for OS/2
-# wmake -f Makefile.os2
-#
-# If you have GNU libiconv installed (iconv2.dll), you
-# can compile against it by specifying LIBICONV=1, e.g.:
-# wmake -f Makefile.os2 LIBICONV=1
-#
-# If you have libusb-1.0 installed (usb100.dll, libusb.h), you
-# can compile hidapi joystick support against it (experimental)
-# by specifying HIDAPI=1, e.g.:
-# wmake -f Makefile.os2 HIDAPI=1
-
-LIBNAME = SDL2
-MAJOR_VERSION = 2
-MINOR_VERSION = 25
-MICRO_VERSION = 0
-VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION)
-DESCRIPTION = Simple DirectMedia Layer 2
-
-LIBICONV=0
-ICONVLIB=$(LIBICONV_LIB)
-
-LIBHOME = .
-DLLFILE = $(LIBHOME)/$(LIBNAME).dll
-LIBFILE = $(LIBHOME)/$(LIBNAME).lib
-LNKFILE = $(LIBNAME).lnk
-
-INCPATH = -I"$(%WATCOM)/h/os2" -I"$(%WATCOM)/h"
-INCPATH+= -Iinclude
-
-LIBM = SDL2libm.lib
-TLIB = SDL2test.lib
-LIBS = mmpm2.lib $(LIBM)
-CFLAGS = -bt=os2 -d0 -q -bm -5s -fp5 -fpi87 -sg -oeatxhn -ei
-# Debug options:
-# - debug messages from OS/2 related code to stdout:
-#CFLAGS+= -DOS2DEBUG
-# - debug messages from OS/2 code via SDL_LogDebug():
-#CFLAGS+= -DOS2DEBUG=2
-
-# max warnings:
-CFLAGS+= -wx
-# newer OpenWatcom versions enable W303 by default
-CFLAGS+= -wcd=303
-# the include paths :
-CFLAGS+= $(INCPATH)
-CFLAGS_STATIC=$(CFLAGS)
-# building dll:
-CFLAGS_DLL =$(CFLAGS)
-CFLAGS_DLL+= -bd
-# iconv:
-LIBICONV_LIB=iconv2.lib
-!ifeq LIBICONV 1
-CFLAGS_DLL+= -DHAVE_ICONV=1 -DHAVE_ICONV_H=1
-LIBS+= $(ICONVLIB)
-!else
-LIBS+= libuls.lib libconv.lib
-!endif
-# hidapi (libusb):
-!ifeq HIDAPI 1
-CFLAGS_DLL+= -DHAVE_LIBUSB_H=1
-!endif
-# building SDL itself (for DECLSPEC):
-CFLAGS_DLL+= -DBUILD_SDL
-
-CFLAGS_DLL+= -DSDL_BUILD_MAJOR_VERSION=$(MAJOR_VERSION)
-CFLAGS_DLL+= -DSDL_BUILD_MINOR_VERSION=$(MINOR_VERSION)
-CFLAGS_DLL+= -DSDL_BUILD_MICRO_VERSION=$(MICRO_VERSION)
-
-SRCS = SDL.c SDL_assert.c SDL_error.c SDL_guid.c SDL_log.c SDL_dataqueue.c SDL_hints.c SDL_list.c SDL_utils.c
-SRCS+= SDL_getenv.c SDL_iconv.c SDL_malloc.c SDL_qsort.c SDL_stdlib.c SDL_string.c SDL_strtokr.c SDL_crc16.c SDL_crc32.c
-SRCS+= SDL_cpuinfo.c SDL_atomic.c SDL_spinlock.c SDL_thread.c SDL_timer.c
-SRCS+= SDL_rwops.c SDL_power.c
-SRCS+= SDL_audio.c SDL_audiocvt.c SDL_audiodev.c SDL_audiotypecvt.c SDL_mixer.c SDL_wave.c
-SRCS+= SDL_events.c SDL_quit.c SDL_keyboard.c SDL_mouse.c SDL_windowevents.c &
-       SDL_clipboardevents.c SDL_dropevents.c SDL_displayevents.c SDL_gesture.c &
-       SDL_sensor.c SDL_touch.c
-SRCS+= SDL_haptic.c SDL_hidapi.c SDL_gamecontroller.c SDL_joystick.c controller_type.c
-SRCS+= SDL_render.c yuv_rgb.c SDL_yuv.c SDL_yuv_sw.c SDL_blendfillrect.c &
-       SDL_blendline.c SDL_blendpoint.c SDL_drawline.c SDL_drawpoint.c &
-       SDL_render_sw.c SDL_rotate.c SDL_triangle.c
-SRCS+= SDL_blit.c SDL_blit_0.c SDL_blit_1.c SDL_blit_A.c SDL_blit_auto.c &
-       SDL_blit_copy.c SDL_blit_N.c SDL_blit_slow.c SDL_fillrect.c SDL_bmp.c &
-       SDL_pixels.c SDL_rect.c SDL_RLEaccel.c SDL_shape.c SDL_stretch.c &
-       SDL_surface.c SDL_video.c SDL_clipboard.c SDL_vulkan_utils.c SDL_egl.c
-
-SRCS+= SDL_syscond.c SDL_sysmutex.c SDL_syssem.c SDL_systhread.c SDL_systls.c
-SRCS+= SDL_systimer.c
-SRCS+= SDL_sysloadso.c
-SRCS+= SDL_sysfilesystem.c
-SRCS+= SDL_os2joystick.c SDL_syshaptic.c SDL_sysjoystick.c SDL_virtualjoystick.c
-SRCS+= SDL_hidapijoystick.c SDL_hidapi_rumble.c SDL_hidapi_combined.c SDL_hidapi_gamecube.c SDL_hidapi_luna.c SDL_hidapi_ps3.c SDL_hidapi_ps4.c SDL_hidapi_ps5.c SDL_hidapi_shield.c SDL_hidapi_stadia.c SDL_hidapi_switch.c SDL_hidapi_xbox360.c SDL_hidapi_xbox360w.c SDL_hidapi_xboxone.c SDL_hidapi_steam.c
-SRCS+= SDL_dummyaudio.c SDL_diskaudio.c
-SRCS+= SDL_nullvideo.c SDL_nullframebuffer.c SDL_nullevents.c
-SRCS+= SDL_dummysensor.c
-SRCS+= SDL_locale.c SDL_syslocale.c
-SRCS+= SDL_url.c SDL_sysurl.c
-
-SRCS+= SDL_os2.c
-!ifeq LIBICONV 0
-SRCS+= geniconv.c os2cp.c os2iconv.c sys2utf8.c
-!endif
-SRCS+= SDL_os2audio.c
-SRCS+= SDL_os2video.c SDL_os2util.c SDL_os2dive.c SDL_os2vman.c &
-       SDL_os2mouse.c SDL_os2messagebox.c
-
-SRCS+= SDL_dynapi.c
-
-OBJS = $(SRCS:.c=.obj)
-
-.extensions:
-.extensions: .lib .dll .obj .c .asm
-
-.c: ./src;./src/dynapi;./src/audio;./src/cpuinfo;./src/events;./src/file;./src/haptic;./src/joystick;./src/power;./src/render;./src/render/software;./src/sensor;./src/stdlib;./src/thread;./src/timer;./src/video;./src/video/yuv2rgb;./src/atomic;./src/audio/disk;
-.c: ./src/haptic/dummy;./src/joystick/dummy;./src/joystick/virtual;./src/audio/dummy;./src/video/dummy;./src/sensor/dummy;
-.c: ./src/core/os2;./src/audio/os2;./src/loadso/os2;./src/filesystem/os2;./src/joystick/os2;./src/thread/os2;./src/timer/os2;./src/video/os2;
-.c: ./src/core/os2/geniconv;
-.c: ./src/locale/;./src/locale/unix;./src/misc;./src/misc/dummy;./src/joystick/hidapi;./src/hidapi
-
-all: $(DLLFILE) $(LIBFILE) $(TLIB) .symbolic
-
-build_dll: .symbolic
-    @echo * Compiling dll objects
-
-$(DLLFILE): build_dll $(OBJS) $(LIBM) $(LIBICONV_LIB) $(LNKFILE)
-    @echo * Linking: $@
-    wlink @$(LNKFILE)
-
-$(LIBFILE): $(DLLFILE)
-    @echo * Creating LIB file: $@
-    wlib -q -b -n -c -pa -s -t -zld -ii -io $* $(DLLFILE)
-
-.c.obj:
-    wcc386 $(CFLAGS_DLL) -fo=$^@ $<
-
-SDL_syscond.obj: "src/thread/generic/SDL_syscond.c"
-    wcc386 $(CFLAGS_DLL) -fo=$^@ $<
-SDL_cpuinfo.obj: SDL_cpuinfo.c
-    wcc386 $(CFLAGS_DLL) -wcd=200 -fo=$^@ $<
-SDL_wave.obj: SDL_wave.c
-    wcc386 $(CFLAGS_DLL) -wcd=124 -fo=$^@ $<
-SDL_blendfillrect.obj: SDL_blendfillrect.c
-    wcc386 $(CFLAGS_DLL) -wcd=200 -fo=$^@ $<
-SDL_blendline.obj: SDL_blendline.c
-    wcc386 $(CFLAGS_DLL) -wcd=200 -fo=$^@ $<
-SDL_blendpoint.obj: SDL_blendpoint.c
-    wcc386 $(CFLAGS_DLL) -wcd=200 -fo=$^@ $<
-SDL_RLEaccel.obj: SDL_RLEaccel.c
-    wcc386 $(CFLAGS_DLL) -wcd=201 -fo=$^@ $<
-!ifeq HIDAPI 1
-# c99 mode needed because of structs with flexible array members in libusb.h
-SDL_hidapi.obj: SDL_hidapi.c
-    wcc386 $(CFLAGS_DLL) -za99 -fo=$^@ $<
-!endif
-
-$(LIBICONV_LIB):  "src/core/os2/iconv2.lbc"
-    @echo * Creating: $@
-    wlib -q -b -n -c -pa -s -t -zld -ii -io $@ @$<
-
-# SDL2libm
-MSRCS= e_atan2.c e_exp.c e_fmod.c e_log10.c e_log.c e_pow.c e_rem_pio2.c e_sqrt.c &
-       k_cos.c k_rem_pio2.c k_sin.c k_tan.c &
-       s_atan.c s_copysign.c s_cos.c s_fabs.c s_floor.c s_scalbn.c s_sin.c s_tan.c
-MOBJS= $(MSRCS:.c=.obj)
-
-.c: ./src/libm;
-e_atan2.obj: e_atan2.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-e_exp.obj: e_exp.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-e_fmod.obj: e_fmod.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-e_log10.obj: e_log10.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-e_log.obj: e_log.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-e_pow.obj: e_pow.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-e_rem_pio2.obj: e_rem_pio2.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-e_sqrt.obj: e_sqrt.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-k_cos.obj: k_cos.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-k_rem_pio2.obj: k_rem_pio2.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-k_sin.obj: k_sin.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-k_tan.obj: k_tan.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-s_atan.obj: s_atan.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-s_copysign.obj: s_copysign.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-s_cos.obj: s_cos.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-s_fabs.obj: s_fabs.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-s_floor.obj: s_floor.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-s_scalbn.obj: s_scalbn.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-s_sin.obj: s_sin.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-s_tan.obj: s_tan.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-
-build_libm: .symbolic
-    @echo * Compiling libm objects
-$(LIBM): build_libm $(MOBJS)
-    @echo * Creating: $@
-    wlib -q -b -n -c -pa -s -t -zld -ii -io $@ $(MOBJS)
-
-# SDL2test
-TSRCS = SDL_test_assert.c SDL_test_common.c SDL_test_compare.c &
-        SDL_test_crc32.c SDL_test_font.c SDL_test_fuzzer.c SDL_test_harness.c &
-        SDL_test_imageBlit.c SDL_test_imageBlitBlend.c SDL_test_imageFace.c &
-        SDL_test_imagePrimitives.c SDL_test_imagePrimitivesBlend.c &
-        SDL_test_log.c SDL_test_md5.c SDL_test_random.c SDL_test_memory.c
-TOBJS= $(TSRCS:.c=.obj)
-
-.c: ./src/test;
-SDL_test_assert.obj: SDL_test_assert.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_common.obj: SDL_test_common.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_compare.obj: SDL_test_compare.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_crc32.obj: SDL_test_crc32.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_font.obj: SDL_test_font.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_fuzzer.obj: SDL_test_fuzzer.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_harness.obj: SDL_test_harness.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_imageBlit.obj: SDL_test_imageBlit.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_imageBlitBlend.obj: SDL_test_imageBlitBlend.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_imageFace.obj: SDL_test_imageFace.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_imagePrimitives.obj: SDL_test_imagePrimitives.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_imagePrimitivesBlend.obj: SDL_test_imagePrimitivesBlend.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_log.obj: SDL_test_log.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_md5.obj: SDL_test_md5.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_random.obj: SDL_test_random.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_memory.obj: SDL_test_memory.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-
-build_tlib: .symbolic
-    @echo * Compiling testlib objects
-$(TLIB): build_tlib $(TOBJS)
-    @echo * Creating: $@
-    wlib -q -b -n -c -pa -s -t -zld -ii -io $@ $(TOBJS)
-
-$(LNKFILE):
-    @echo * Creating linker file: $@
-    @%create $@
-    @%append $@ SYSTEM os2v2_dll INITINSTANCE TERMINSTANCE
-    @%append $@ NAME $(DLLFILE)
-    @for %i in ($(OBJS)) do @%append $@ FILE %i
-    @for %i in ($(LIBS)) do @%append $@ LIB %i
-    @%append $@ OPTION QUIET
-    @%append $@ OPTION IMPF=$(LIBHOME)/$^&.exp
-    @%append $@ OPTION MAP=$(LIBHOME)/$^&.map
-    @%append $@ OPTION DESCRIPTION '@$#libsdl org:$(VERSION)$#@$(DESCRIPTION)'
-    @%append $@ OPTION ELIMINATE
-    @%append $@ OPTION MANYAUTODATA
-    @%append $@ OPTION OSNAME='OS/2 and eComStation'
-    @%append $@ OPTION SHOWDEAD
-
-clean: .SYMBOLIC
-    @echo * Clean: $(LIBNAME)
-    @if exist *.obj rm *.obj
-    @if exist *.err rm *.err
-    @if exist $(LNKFILE) rm $(LNKFILE)
-    @if exist $(LIBM) rm $(LIBM)
-    @if exist $(LIBICONV_LIB) rm $(LIBICONV_LIB)
-
-distclean: .SYMBOLIC clean
-    @if exist $(LIBHOME)/*.exp rm $(LIBHOME)/*.exp
-    @if exist $(LIBHOME)/*.map rm $(LIBHOME)/*.map
-    @if exist $(LIBFILE) rm $(LIBFILE)
-    @if exist $(DLLFILE) rm $(DLLFILE)
-    @if exist $(TLIB) rm $(TLIB)

+ 0 - 64
Makefile.pandora

@@ -1,64 +0,0 @@
-# Makefile to build the pandora SDL library
-
-AR	= arm-none-linux-gnueabi-ar
-RANLIB	= arm-none-linux-gnueabi-ranlib
-CC = arm-none-linux-gnueabi-gcc
-CXX = arm-none-linux-gnueabi-g++
-STRIP = arm-none-linux-gnueabi-strip
-
-CFLAGS  = -O3 -march=armv7-a -mcpu=cortex-a8 -mtune=cortex-a8 -mfloat-abi=softfp \
-	-mfpu=neon -ftree-vectorize -ffast-math -fomit-frame-pointer -fno-strict-aliasing -fsingle-precision-constant \
-	-I./include -I$(PNDSDK)/usr/include
-
-TARGET  = libSDL2.a
-
-SOURCES = 
-	./src/*.c \
-	./src/atomic/*.c \
-	./src/audio/*.c \
-	./src/audio/disk/*.c \
-	./src/audio/dsp/*.c \
-	./src/audio/dummy/*.c \
-	./src/cpuinfo/*.c \
-	./src/events/*.c \
-	./src/file/*.c \
-	./src/filesystem/unix/*.c \
-	./src/haptic/*.c \
-	./src/haptic/linux/*.c \
-	./src/hidapi/*.c \
-	./src/joystick/*.c \
-	./src/joystick/linux/*.c \
-	./src/loadso/dlopen/*.c \
-	./src/locale/*.c \
-	./src/locale/unix/*.c \
-	./src/misc/*.c \
-	./src/misc/unix/*.c \
-	./src/power/*.c \
-	./src/sensor/*.c \
-	./src/sensor/dummy/*.c \
-	./src/stdlib/*.c \
-	./src/thread/*.c \
-	./src/thread/pthread/SDL_syscond.c \
-	./src/thread/pthread/SDL_sysmutex.c \
-	./src/thread/pthread/SDL_syssem.c \
-	./src/thread/pthread/SDL_systhread.c \
-	./src/timer/*.c \
-	./src/timer/unix/*.c \
-	./src/video/*.c \
-	./src/video/yuv2rgb/*.c \
-	./src/video/dummy/*.c \
-	./src/video/x11/*.c \
-	./src/video/pandora/*.c
-
-OBJECTS = $(shell echo $(SOURCES) | sed -e 's,\.c,\.o,g')
-
-CONFIG_H = $(shell cp include/SDL_config_pandora.h include/SDL_config.h)
-
-all: $(TARGET)
-
-$(TARGET): $(CONFIG_H) $(OBJECTS)
-	$(AR) crv $@ $^
-	$(RANLIB) $@
-
-clean:
-	rm -f $(TARGET) $(OBJECTS)

+ 0 - 273
Makefile.w32

@@ -1,273 +0,0 @@
-# Open Watcom makefile to build SDL2.dll for Win32
-# wmake -f Makefile.w32
-
-LIBNAME = SDL2
-MAJOR_VERSION = 2
-MINOR_VERSION = 25
-MICRO_VERSION = 0
-VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION)
-DESCRIPTION = Simple DirectMedia Layer 2
-
-LIBHOME = .
-DLLFILE = $(LIBHOME)/$(LIBNAME).dll
-LIBFILE = $(LIBHOME)/$(LIBNAME).lib
-EXPFILE = $(LIBHOME)/$(LIBNAME).exp
-LNKFILE = $(LIBNAME).lnk
-
-INCPATH = -I"$(%WATCOM)/h/nt" -I"$(%WATCOM)/h/nt/directx" -I"$(%WATCOM)/h"
-INCPATH+= -Iinclude
-INCPATH+= -I"src/video/khronos"
-
-LIBM = SDL2libm.lib
-TLIB = SDL2test.lib
-LIBS = user32.lib gdi32.lib winmm.lib imm32.lib ole32.lib oleaut32.lib shell32.lib setupapi.lib version.lib uuid.lib dxguid.lib $(LIBM)
-
-CFLAGS = -bt=nt -d0 -q -bm -5s -fp5 -fpi87 -sg -oeatxhn -ei
-# max warnings:
-CFLAGS+= -wx
-# newer OpenWatcom versions enable W303 by default
-CFLAGS+= -wcd=303
-# the include paths :
-CFLAGS+= $(INCPATH)
-CFLAGS_STATIC=$(CFLAGS)
-# building dll:
-CFLAGS_DLL =$(CFLAGS)
-CFLAGS_DLL+= -bd
-# we override the DECLSPEC define in begin_code.h, because we are using
-# an exports file to remove the _cdecl '_' prefix from the symbol names
-CFLAGS_DLL+= -DDECLSPEC=
-
-CFLAGS_DLL+= -DSDL_BUILD_MAJOR_VERSION=$(MAJOR_VERSION)
-CFLAGS_DLL+= -DSDL_BUILD_MINOR_VERSION=$(MINOR_VERSION)
-CFLAGS_DLL+= -DSDL_BUILD_MICRO_VERSION=$(MICRO_VERSION)
-
-RCFLAGS = -q -r -bt=nt $(INCPATH)
-
-SRCS = SDL.c SDL_assert.c SDL_error.c SDL_guid.c SDL_log.c SDL_dataqueue.c SDL_hints.c SDL_list.c SDL_utils.c
-SRCS+= SDL_getenv.c SDL_iconv.c SDL_malloc.c SDL_qsort.c SDL_stdlib.c SDL_string.c SDL_strtokr.c SDL_crc16.c SDL_crc32.c
-SRCS+= SDL_cpuinfo.c SDL_atomic.c SDL_spinlock.c SDL_thread.c SDL_timer.c
-SRCS+= SDL_rwops.c SDL_power.c
-SRCS+= SDL_audio.c SDL_audiocvt.c SDL_audiodev.c SDL_audiotypecvt.c SDL_mixer.c SDL_wave.c
-SRCS+= SDL_events.c SDL_quit.c SDL_keyboard.c SDL_mouse.c SDL_windowevents.c &
-       SDL_clipboardevents.c SDL_dropevents.c SDL_displayevents.c SDL_gesture.c &
-       SDL_sensor.c SDL_touch.c
-SRCS+= SDL_haptic.c SDL_hidapi.c SDL_gamecontroller.c SDL_joystick.c controller_type.c
-SRCS+= SDL_render.c yuv_rgb.c SDL_yuv.c SDL_yuv_sw.c SDL_blendfillrect.c &
-       SDL_blendline.c SDL_blendpoint.c SDL_drawline.c SDL_drawpoint.c &
-       SDL_render_sw.c SDL_rotate.c SDL_triangle.c
-SRCS+= SDL_blit.c SDL_blit_0.c SDL_blit_1.c SDL_blit_A.c SDL_blit_auto.c &
-       SDL_blit_copy.c SDL_blit_N.c SDL_blit_slow.c SDL_fillrect.c SDL_bmp.c &
-       SDL_pixels.c SDL_rect.c SDL_RLEaccel.c SDL_shape.c SDL_stretch.c &
-       SDL_surface.c SDL_video.c SDL_clipboard.c SDL_vulkan_utils.c SDL_egl.c
-
-SRCS+= SDL_syscond.c SDL_sysmutex.c SDL_syssem.c SDL_systhread.c SDL_systls.c
-SRCS+= SDL_systimer.c
-SRCS+= SDL_sysloadso.c
-SRCS+= SDL_sysfilesystem.c
-SRCS+= SDL_syshaptic.c SDL_sysjoystick.c SDL_virtualjoystick.c
-SRCS+= SDL_hidapijoystick.c SDL_hidapi_rumble.c SDL_hidapi_combined.c SDL_hidapi_gamecube.c SDL_hidapi_luna.c SDL_hidapi_ps3.c SDL_hidapi_ps4.c SDL_hidapi_ps5.c SDL_hidapi_shield.c SDL_hidapi_stadia.c SDL_hidapi_switch.c SDL_hidapi_xbox360.c SDL_hidapi_xbox360w.c SDL_hidapi_xboxone.c SDL_hidapi_steam.c
-SRCS+= SDL_dummyaudio.c SDL_diskaudio.c
-SRCS+= SDL_nullvideo.c SDL_nullframebuffer.c SDL_nullevents.c
-SRCS+= SDL_dummysensor.c
-SRCS+= SDL_locale.c SDL_syslocale.c
-SRCS+= SDL_url.c SDL_sysurl.c
-
-SRCS+= SDL_winmm.c SDL_directsound.c SDL_wasapi.c SDL_wasapi_win32.c
-SRCS+= SDL_hid.c SDL_immdevice.c SDL_windows.c SDL_xinput.c
-SRCS+= SDL_dinputhaptic.c SDL_windowshaptic.c SDL_xinputhaptic.c
-SRCS+= SDL_dinputjoystick.c SDL_rawinputjoystick.c SDL_windowsjoystick.c SDL_windows_gaming_input.c SDL_xinputjoystick.c
-SRCS+= SDL_syspower.c
-SRCS+= SDL_d3dmath.c
-SRCS+= SDL_render_d3d.c SDL_shaders_d3d.c
-SRCS+= SDL_render_d3d11.c SDL_shaders_d3d11.c
-SRCS+= SDL_render_d3d12.c SDL_shaders_d3d12.c
-SRCS+= SDL_render_gl.c SDL_shaders_gl.c
-SRCS+= SDL_render_gles2.c SDL_shaders_gles2.c
-SRCS+= SDL_windowssensor.c
-SRCS+= SDL_syscond_cv.c
-SRCS+= SDL_windowsclipboard.c SDL_windowsevents.c SDL_windowsframebuffer.c SDL_windowskeyboard.c SDL_windowsmessagebox.c SDL_windowsmodes.c SDL_windowsmouse.c SDL_windowsopengl.c SDL_windowsopengles.c SDL_windowsshape.c SDL_windowsvideo.c SDL_windowsvulkan.c SDL_windowswindow.c
-
-SRCS+= SDL_dynapi.c
-
-RCSRCS = version.rc
-
-OBJS = $(SRCS:.c=.obj)
-RCOBJS= $(RCSRCS:.rc=.res)
-
-.extensions:
-.extensions: .lib .dll .obj .res .c .rc .asm
-
-.c: ./src;./src/dynapi;./src/audio;./src/cpuinfo;./src/events;./src/file;./src/haptic;./src/joystick;./src/power;./src/render;./src/render/software;./src/sensor;./src/stdlib;./src/thread;./src/timer;./src/video;./src/video/yuv2rgb;./src/atomic;./src/audio/disk;
-.c: ./src/haptic/dummy;./src/joystick/dummy;./src/joystick/virtual;./src/audio/dummy;./src/video/dummy;./src/sensor/dummy;
-.c: ./src/core/windows;./src/audio/winmm;./src/audio/directsound;./src/audio/wasapi;./src/loadso/windows;./src/filesystem/windows;./src/haptic/windows;./src/joystick/windows;./src/sensor/windows;./src/thread/windows;./src/timer/windows;./src/video/windows;
-.c: ./src/locale/;./src/locale/windows;./src/misc;./src/misc/windows;./src/power/windows;./src/joystick/hidapi;./src/hidapi;./src/render/direct3d;./src/render/direct3d11;./src/render/direct3d12;./src/render/opengl;./src/render/opengles2
-.rc: ./src/main/windows
-
-all: $(DLLFILE) $(LIBFILE) $(TLIB) .symbolic
-
-build_dll: .symbolic
-    @echo * Compiling dll objects
-
-$(DLLFILE): build_dll $(OBJS) $(LIBM) $(RCOBJS) $(LNKFILE)
-    @echo * Linking: $@
-    wlink @$(LNKFILE)
-
-$(LIBFILE): $(DLLFILE)
-    @echo * Creating LIB file: $@
-    wlib -q -b -n -c -pa -s -t -zld -ii -io $* @$(EXPFILE)
-
-.c.obj:
-    wcc386 $(CFLAGS_DLL) -fo=$^@ $<
-
-.rc.res:
-    wrc $(RCFLAGS) -fo=$^@ $<
-
-SDL_syscond.obj: "src/thread/generic/SDL_syscond.c"
-    wcc386 $(CFLAGS_DLL) -fo=$^@ $<
-SDL_cpuinfo.obj: SDL_cpuinfo.c
-    wcc386 $(CFLAGS_DLL) -wcd=200 -fo=$^@ $<
-SDL_wave.obj: SDL_wave.c
-    wcc386 $(CFLAGS_DLL) -wcd=124 -fo=$^@ $<
-SDL_blendfillrect.obj: SDL_blendfillrect.c
-    wcc386 $(CFLAGS_DLL) -wcd=200 -fo=$^@ $<
-SDL_blendline.obj: SDL_blendline.c
-    wcc386 $(CFLAGS_DLL) -wcd=200 -fo=$^@ $<
-SDL_blendpoint.obj: SDL_blendpoint.c
-    wcc386 $(CFLAGS_DLL) -wcd=200 -fo=$^@ $<
-SDL_RLEaccel.obj: SDL_RLEaccel.c
-    wcc386 $(CFLAGS_DLL) -wcd=201 -fo=$^@ $<
-SDL_malloc.obj: SDL_malloc.c
-    wcc386 $(CFLAGS_DLL) -wcd=201 -fo=$^@ $<
-
-# SDL2libm
-MSRCS= e_atan2.c e_exp.c e_fmod.c e_log10.c e_log.c e_pow.c e_rem_pio2.c e_sqrt.c &
-       k_cos.c k_rem_pio2.c k_sin.c k_tan.c &
-       s_atan.c s_copysign.c s_cos.c s_fabs.c s_floor.c s_scalbn.c s_sin.c s_tan.c
-MOBJS= $(MSRCS:.c=.obj)
-
-.c: ./src/libm;
-e_atan2.obj: e_atan2.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-e_exp.obj: e_exp.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-e_fmod.obj: e_fmod.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-e_log10.obj: e_log10.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-e_log.obj: e_log.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-e_pow.obj: e_pow.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-e_rem_pio2.obj: e_rem_pio2.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-e_sqrt.obj: e_sqrt.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-k_cos.obj: k_cos.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-k_rem_pio2.obj: k_rem_pio2.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-k_sin.obj: k_sin.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-k_tan.obj: k_tan.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-s_atan.obj: s_atan.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-s_copysign.obj: s_copysign.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-s_cos.obj: s_cos.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-s_fabs.obj: s_fabs.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-s_floor.obj: s_floor.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-s_scalbn.obj: s_scalbn.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-s_sin.obj: s_sin.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-s_tan.obj: s_tan.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-
-build_libm: .symbolic
-    @echo * Compiling libm objects
-$(LIBM): build_libm $(MOBJS)
-    @echo * Creating: $@
-    wlib -q -b -n -c -pa -s -t -zld -ii -io $@ $(MOBJS)
-
-# SDL2test
-TSRCS = SDL_test_assert.c SDL_test_common.c SDL_test_compare.c &
-        SDL_test_crc32.c SDL_test_font.c SDL_test_fuzzer.c SDL_test_harness.c &
-        SDL_test_imageBlit.c SDL_test_imageBlitBlend.c SDL_test_imageFace.c &
-        SDL_test_imagePrimitives.c SDL_test_imagePrimitivesBlend.c &
-        SDL_test_log.c SDL_test_md5.c SDL_test_random.c SDL_test_memory.c
-TOBJS= $(TSRCS:.c=.obj)
-
-.c: ./src/test;
-SDL_test_assert.obj: SDL_test_assert.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_common.obj: SDL_test_common.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_compare.obj: SDL_test_compare.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_crc32.obj: SDL_test_crc32.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_font.obj: SDL_test_font.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_fuzzer.obj: SDL_test_fuzzer.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_harness.obj: SDL_test_harness.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_imageBlit.obj: SDL_test_imageBlit.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_imageBlitBlend.obj: SDL_test_imageBlitBlend.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_imageFace.obj: SDL_test_imageFace.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_imagePrimitives.obj: SDL_test_imagePrimitives.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_imagePrimitivesBlend.obj: SDL_test_imagePrimitivesBlend.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_log.obj: SDL_test_log.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_md5.obj: SDL_test_md5.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_random.obj: SDL_test_random.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-SDL_test_memory.obj: SDL_test_memory.c
-    wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
-
-build_tlib: .symbolic
-    @echo * Compiling testlib objects
-$(TLIB): build_tlib $(TOBJS)
-    @echo * Creating: $@
-    wlib -q -b -n -c -pa -s -t -zld -ii -io $@ $(TOBJS)
-
-$(LNKFILE): Makefile.w32
-    @echo * Creating linker file: $@
-    @%create $@
-    @%append $@ SYSTEM nt_dll INITINSTANCE TERMINSTANCE
-    @%append $@ NAME $(DLLFILE)
-    @for %i in ($(OBJS)) do @%append $@ FILE %i
-    @for %i in ($(LIBS)) do @%append $@ LIB %i
-    @%append $@ OPTION RESOURCE=$(RCOBJS)
-    @%append $@ EXPORT=src/dynapi/SDL2.exports
-    @%append $@ OPTION QUIET
-    @%append $@ OPTION IMPF=$(EXPFILE)
-    @%append $@ OPTION MAP=$(LIBHOME)/$^&.map
-    @%append $@ OPTION DESCRIPTION '@$#libsdl org:$(VERSION)$#@$(DESCRIPTION)'
-    @%append $@ OPTION ELIMINATE
-    @%append $@ OPTION SHOWDEAD
-
-clean: .SYMBOLIC
-    @echo * Clean: $(LIBNAME)
-    @if exist *.obj rm *.obj
-    @if exist *.res rm *.res
-    @if exist *.err rm *.err
-    @if exist $(LNKFILE) rm $(LNKFILE)
-    @if exist $(LIBM) rm $(LIBM)
-
-distclean: .SYMBOLIC clean
-    @if exist $(LIBHOME)/*.exp rm $(LIBHOME)/*.exp
-    @if exist $(LIBHOME)/*.map rm $(LIBHOME)/*.map
-    @if exist $(LIBFILE) rm $(LIBFILE)
-    @if exist $(DLLFILE) rm $(DLLFILE)
-    @if exist $(TLIB) rm $(TLIB)

+ 1 - 1
README.md

@@ -1,5 +1,5 @@
 
 
-# Simple DirectMedia Layer (SDL) Version 2.0
+# Simple DirectMedia Layer (SDL) Version 3.0
 
 
 https://www.libsdl.org/
 https://www.libsdl.org/
 
 

+ 0 - 65
SDL2Config.cmake.in

@@ -1,65 +0,0 @@
-# sdl2 cmake project-config input for CMakeLists.txt script
-
-include(FeatureSummary)
-set_package_properties(SDL2 PROPERTIES
-  URL "https://www.libsdl.org/"
-  DESCRIPTION "low level access to audio, keyboard, mouse, joystick, and graphics hardware"
-)
-
-@PACKAGE_INIT@
-
-set(SDL2_FOUND TRUE)
-
-if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL2Targets.cmake")
-  include("${CMAKE_CURRENT_LIST_DIR}/SDL2Targets.cmake")
-  set(SDL2_SDL2_FOUND TRUE)
-endif()
-if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL2staticTargets.cmake")
-  if(ANDROID)
-    enable_language(CXX)
-  endif()
-  include("${CMAKE_CURRENT_LIST_DIR}/SDL2staticTargets.cmake")
-  set(SDL2_SDL2-static_FOUND TRUE)
-endif()
-if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL2mainTargets.cmake")
-  include("${CMAKE_CURRENT_LIST_DIR}/SDL2mainTargets.cmake")
-  set(SDL2_SDL2main_FOUND TRUE)
-endif()
-if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL2testTargets.cmake")
-  include("${CMAKE_CURRENT_LIST_DIR}/SDL2testTargets.cmake")
-  set(SDL2_SDL2test_FOUND TRUE)
-endif()
-
-check_required_components(SDL2)
-
-# Create SDL2::SDL2 alias for static-only builds
-if(TARGET SDL2::SDL2-static AND NOT TARGET SDL2::SDL2)
-  if(CMAKE_VERSION VERSION_LESS "3.18")
-    # FIXME: Aliasing local targets is not supported on CMake < 3.18, so make it global.
-    add_library(SDL2::SDL2 INTERFACE IMPORTED)
-    set_target_properties(SDL2::SDL2 PROPERTIES INTERFACE_LINK_LIBRARIES "SDL2::SDL2-static")
-  else()
-    add_library(SDL2::SDL2 ALIAS SDL2::SDL2-static)
-  endif()
-endif()
-
-# For compatibility with autotools sdl2-config.cmake, provide SDL2_* variables.
-
-set(SDL2_PREFIX "@PACKAGE_CMAKE_INSTALL_PREFIX@")
-set(SDL2_EXEC_PREFIX "@PACKAGE_CMAKE_INSTALL_PREFIX@")
-set(SDL2_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_FULL_INCLUDEDIR@/SDL2")
-set(SDL2_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_FULL_INCLUDEDIR@;@PACKAGE_CMAKE_INSTALL_FULL_INCLUDEDIR@/SDL2")
-set(SDL2_BINDIR "@PACKAGE_CMAKE_INSTALL_FULL_BINDIR@")
-set(SDL2_LIBDIR "@PACKAGE_CMAKE_INSTALL_FULL_LIBDIR@")
-set(SDL2_LIBRARIES SDL2::SDL2)
-set(SDL2_STATIC_LIBRARIES SDL2::SDL2-static)
-set(SDL2_STATIC_PRIVATE_LIBS)
-
-set(SDL2MAIN_LIBRARY)
-if(TARGET SDL2::SDL2main)
-  set(SDL2MAIN_LIBRARY SDL2::SDL2main)
-  list(INSERT SDL2_LIBRARIES 0 SDL2::SDL2main)
-  list(INSERT SDL2_STATIC_LIBRARIES 0 SDL2::SDL2main)
-endif()
-
-set(SDL2TEST_LIBRARY SDL2::SDL2test)

+ 3 - 3
SDL2.spec.in → SDL3.spec.in

@@ -1,5 +1,5 @@
 Summary: Simple DirectMedia Layer
 Summary: Simple DirectMedia Layer
-Name: SDL2
+Name: SDL3
 Version: @SDL_VERSION@
 Version: @SDL_VERSION@
 Release: 2
 Release: 2
 Source: http://www.libsdl.org/release/%{name}-%{version}.tar.gz
 Source: http://www.libsdl.org/release/%{name}-%{version}.tar.gz
@@ -9,7 +9,7 @@ Group: System Environment/Libraries
 BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
 BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
 Prefix: %{_prefix}
 Prefix: %{_prefix}
 %ifos linux
 %ifos linux
-Provides: libSDL2-2.0.so.0
+Provides: libSDL3-3.0.so.0
 %endif
 %endif
 
 
 %define __defattr %defattr(-,root,root)
 %define __defattr %defattr(-,root,root)
@@ -75,7 +75,7 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/lib*.%{__soext}
 %{_libdir}/lib*.%{__soext}
 %{_includedir}/*/*.h
 %{_includedir}/*/*.h
 %{_libdir}/cmake/*
 %{_libdir}/cmake/*
-%{_libdir}/pkgconfig/SDL2/*
+%{_libdir}/pkgconfig/SDL3/*
 %{_datadir}/aclocal/*
 %{_datadir}/aclocal/*
 
 
 %changelog
 %changelog

+ 65 - 0
SDL3Config.cmake.in

@@ -0,0 +1,65 @@
+# SDL cmake project-config input for CMakeLists.txt script
+
+include(FeatureSummary)
+set_package_properties(SDL3 PROPERTIES
+  URL "https://www.libsdl.org/"
+  DESCRIPTION "low level access to audio, keyboard, mouse, joystick, and graphics hardware"
+)
+
+@PACKAGE_INIT@
+
+set(SDL3_FOUND TRUE)
+
+if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL3Targets.cmake")
+  include("${CMAKE_CURRENT_LIST_DIR}/SDL3Targets.cmake")
+  set(SDL3_SDL3_FOUND TRUE)
+endif()
+if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL3staticTargets.cmake")
+  if(ANDROID)
+    enable_language(CXX)
+  endif()
+  include("${CMAKE_CURRENT_LIST_DIR}/SDL3staticTargets.cmake")
+  set(SDL3_SDL3-static_FOUND TRUE)
+endif()
+if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL3mainTargets.cmake")
+  include("${CMAKE_CURRENT_LIST_DIR}/SDL3mainTargets.cmake")
+  set(SDL3_SDL3main_FOUND TRUE)
+endif()
+if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL3testTargets.cmake")
+  include("${CMAKE_CURRENT_LIST_DIR}/SDL3testTargets.cmake")
+  set(SDL3_SDL3test_FOUND TRUE)
+endif()
+
+check_required_components(SDL3)
+
+# Create SDL3::SDL3 alias for static-only builds
+if(TARGET SDL3::SDL3-static AND NOT TARGET SDL3::SDL3)
+  if(CMAKE_VERSION VERSION_LESS "3.18")
+    # FIXME: Aliasing local targets is not supported on CMake < 3.18, so make it global.
+    add_library(SDL3::SDL3 INTERFACE IMPORTED)
+    set_target_properties(SDL3::SDL3 PROPERTIES INTERFACE_LINK_LIBRARIES "SDL3::SDL3-static")
+  else()
+    add_library(SDL3::SDL3 ALIAS SDL3::SDL3-static)
+  endif()
+endif()
+
+# For compatibility with autotools sdl3-config.cmake, provide SDL3_* variables.
+
+set(SDL3_PREFIX "@PACKAGE_CMAKE_INSTALL_PREFIX@")
+set(SDL3_EXEC_PREFIX "@PACKAGE_CMAKE_INSTALL_PREFIX@")
+set(SDL3_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_FULL_INCLUDEDIR@/SDL3")
+set(SDL3_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_FULL_INCLUDEDIR@;@PACKAGE_CMAKE_INSTALL_FULL_INCLUDEDIR@/SDL3")
+set(SDL3_BINDIR "@PACKAGE_CMAKE_INSTALL_FULL_BINDIR@")
+set(SDL3_LIBDIR "@PACKAGE_CMAKE_INSTALL_FULL_LIBDIR@")
+set(SDL3_LIBRARIES SDL3::SDL3)
+set(SDL3_STATIC_LIBRARIES SDL3::SDL3-static)
+set(SDL3_STATIC_PRIVATE_LIBS)
+
+set(SDL3MAIN_LIBRARY)
+if(TARGET SDL3::SDL3main)
+  set(SDL3MAIN_LIBRARY SDL3::SDL3main)
+  list(INSERT SDL3_LIBRARIES 0 SDL3::SDL3main)
+  list(INSERT SDL3_STATIC_LIBRARIES 0 SDL3::SDL3main)
+endif()
+
+set(SDL3TEST_LIBRARY SDL3::SDL3test)

+ 3 - 3
VisualC-GDK/SDL.sln

@@ -4,13 +4,13 @@ VisualStudioVersion = 17.1.32414.318
 MinimumVisualStudioVersion = 10.0.40219.1
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{D69D5741-611F-4E14-8541-1FEE94F50B5A}"
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{D69D5741-611F-4E14-8541-1FEE94F50B5A}"
 EndProject
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "SDL\SDL.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL3", "SDL\SDL.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}"
 EndProject
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2main", "SDLmain\SDLmain.vcxproj", "{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL3main", "SDLmain\SDLmain.vcxproj", "{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}"
 EndProject
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsprite2", "tests\testsprite2\testsprite2.vcxproj", "{40FB7794-D3C3-4CFE-BCF4-A80C96635682}"
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsprite2", "tests\testsprite2\testsprite2.vcxproj", "{40FB7794-D3C3-4CFE-BCF4-A80C96635682}"
 EndProject
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2test", "SDLtest\SDLtest.vcxproj", "{DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL3test", "SDLtest\SDLtest.vcxproj", "{DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}"
 EndProject
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgamecontroller", "tests\testgamecontroller\testgamecontroller.vcxproj", "{55812185-D13C-4022-9C81-32E0F4A08305}"
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgamecontroller", "tests\testgamecontroller\testgamecontroller.vcxproj", "{55812185-D13C-4022-9C81-32E0F4A08305}"
 EndProject
 EndProject

+ 3 - 5
VisualC-GDK/SDL/SDL.vcxproj

@@ -27,7 +27,7 @@
     </ProjectConfiguration>
     </ProjectConfiguration>
   </ItemGroup>
   </ItemGroup>
   <PropertyGroup Label="Globals">
   <PropertyGroup Label="Globals">
-    <ProjectName>SDL2</ProjectName>
+    <ProjectName>SDL3</ProjectName>
     <ProjectGuid>{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}</ProjectGuid>
     <ProjectGuid>{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}</ProjectGuid>
     <RootNamespace>SDL</RootNamespace>
     <RootNamespace>SDL</RootNamespace>
     <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
     <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
@@ -378,7 +378,6 @@
     <ClInclude Include="..\..\src\audio\SDL_sysaudio.h" />
     <ClInclude Include="..\..\src\audio\SDL_sysaudio.h" />
     <ClInclude Include="..\..\src\audio\SDL_wave.h" />
     <ClInclude Include="..\..\src\audio\SDL_wave.h" />
     <ClInclude Include="..\..\src\audio\wasapi\SDL_wasapi.h" />
     <ClInclude Include="..\..\src\audio\wasapi\SDL_wasapi.h" />
-    <ClInclude Include="..\..\src\audio\winmm\SDL_winmm.h" />
     <ClInclude Include="..\..\src\core\gdk\SDL_gdk.h" />
     <ClInclude Include="..\..\src\core\gdk\SDL_gdk.h" />
     <ClInclude Include="..\..\src\core\windows\SDL_directx.h" />
     <ClInclude Include="..\..\src\core\windows\SDL_directx.h" />
     <ClInclude Include="..\..\src\core\windows\SDL_hid.h" />
     <ClInclude Include="..\..\src\core\windows\SDL_hid.h" />
@@ -514,7 +513,6 @@
     <ClInclude Include="..\..\src\video\windows\SDL_windowsopengl.h" />
     <ClInclude Include="..\..\src\video\windows\SDL_windowsopengl.h" />
     <ClInclude Include="..\..\src\video\windows\SDL_windowsopengles.h" />
     <ClInclude Include="..\..\src\video\windows\SDL_windowsopengles.h" />
     <ClInclude Include="..\..\src\video\windows\SDL_windowsshape.h" />
     <ClInclude Include="..\..\src\video\windows\SDL_windowsshape.h" />
-    <ClInclude Include="..\..\src\video\windows\SDL_windowstaskdialog.h" />
     <ClInclude Include="..\..\src\video\windows\SDL_windowsvideo.h" />
     <ClInclude Include="..\..\src\video\windows\SDL_windowsvideo.h" />
     <ClInclude Include="..\..\src\video\windows\SDL_windowsvulkan.h" />
     <ClInclude Include="..\..\src\video\windows\SDL_windowsvulkan.h" />
     <ClInclude Include="..\..\src\video\windows\SDL_windowswindow.h" />
     <ClInclude Include="..\..\src\video\windows\SDL_windowswindow.h" />
@@ -535,9 +533,7 @@
     <ClCompile Include="..\..\src\audio\SDL_audiotypecvt.c" />
     <ClCompile Include="..\..\src\audio\SDL_audiotypecvt.c" />
     <ClCompile Include="..\..\src\audio\SDL_mixer.c" />
     <ClCompile Include="..\..\src\audio\SDL_mixer.c" />
     <ClCompile Include="..\..\src\audio\SDL_wave.c" />
     <ClCompile Include="..\..\src\audio\SDL_wave.c" />
-    <ClCompile Include="..\..\src\audio\winmm\SDL_winmm.c" />
     <ClCompile Include="..\..\src\audio\wasapi\SDL_wasapi.c" />
     <ClCompile Include="..\..\src\audio\wasapi\SDL_wasapi.c" />
-    <ClCompile Include="..\..\src\audio\wasapi\SDL_wasapi_win32.c" />
     <ClCompile Include="..\..\src\core\windows\SDL_hid.c" />
     <ClCompile Include="..\..\src\core\windows\SDL_hid.c" />
     <ClCompile Include="..\..\src\core\windows\SDL_immdevice.c" />
     <ClCompile Include="..\..\src\core\windows\SDL_immdevice.c" />
     <ClCompile Include="..\..\src\core\windows\SDL_windows.c" />
     <ClCompile Include="..\..\src\core\windows\SDL_windows.c" />
@@ -601,7 +597,9 @@
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_rumble.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_rumble.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_shield.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_shield.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_stadia.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_stadia.c" />
+    <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_steam.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_switch.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_switch.c" />
+    <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_wii.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_xbox360.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_xbox360.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_xbox360w.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_xbox360w.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_xboxone.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_xboxone.c" />

+ 6 - 15
VisualC-GDK/SDL/SDL.vcxproj.filters

@@ -76,9 +76,6 @@
     <Filter Include="audio\dummy">
     <Filter Include="audio\dummy">
       <UniqueIdentifier>{4c8ad943-c2fb-4014-9ca3-041e0ad08426}</UniqueIdentifier>
       <UniqueIdentifier>{4c8ad943-c2fb-4014-9ca3-041e0ad08426}</UniqueIdentifier>
     </Filter>
     </Filter>
-    <Filter Include="audio\winmm">
-      <UniqueIdentifier>{e90fa293-2828-4927-8113-35bf561024a9}</UniqueIdentifier>
-    </Filter>
     <Filter Include="audio\wasapi">
     <Filter Include="audio\wasapi">
       <UniqueIdentifier>{3d68ae70-a9ff-46cf-be69-069f0b02aca0}</UniqueIdentifier>
       <UniqueIdentifier>{3d68ae70-a9ff-46cf-be69-069f0b02aca0}</UniqueIdentifier>
     </Filter>
     </Filter>
@@ -534,9 +531,6 @@
     <ClInclude Include="..\..\src\audio\dummy\SDL_dummyaudio.h">
     <ClInclude Include="..\..\src\audio\dummy\SDL_dummyaudio.h">
       <Filter>audio\dummy</Filter>
       <Filter>audio\dummy</Filter>
     </ClInclude>
     </ClInclude>
-    <ClInclude Include="..\..\src\audio\winmm\SDL_winmm.h">
-      <Filter>audio\winmm</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\src\audio\wasapi\SDL_wasapi.h">
     <ClInclude Include="..\..\src\audio\wasapi\SDL_wasapi.h">
       <Filter>audio\wasapi</Filter>
       <Filter>audio\wasapi</Filter>
     </ClInclude>
     </ClInclude>
@@ -672,9 +666,6 @@
     <ClInclude Include="..\..\src\video\windows\SDL_windowsopengles.h">
     <ClInclude Include="..\..\src\video\windows\SDL_windowsopengles.h">
       <Filter>video\windows</Filter>
       <Filter>video\windows</Filter>
     </ClInclude>
     </ClInclude>
-    <ClInclude Include="..\..\src\video\windows\SDL_windowstaskdialog.h">
-      <Filter>video\windows</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\src\timer\SDL_timer_c.h">
     <ClInclude Include="..\..\src\timer\SDL_timer_c.h">
       <Filter>timer</Filter>
       <Filter>timer</Filter>
     </ClInclude>
     </ClInclude>
@@ -1030,12 +1021,6 @@
     <ClCompile Include="..\..\src\audio\dummy\SDL_dummyaudio.c">
     <ClCompile Include="..\..\src\audio\dummy\SDL_dummyaudio.c">
       <Filter>audio\dummy</Filter>
       <Filter>audio\dummy</Filter>
     </ClCompile>
     </ClCompile>
-    <ClCompile Include="..\..\src\audio\winmm\SDL_winmm.c">
-      <Filter>audio\winmm</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\audio\wasapi\SDL_wasapi_win32.c">
-      <Filter>audio\wasapi</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\src\audio\wasapi\SDL_wasapi.c">
     <ClCompile Include="..\..\src\audio\wasapi\SDL_wasapi.c">
       <Filter>audio\wasapi</Filter>
       <Filter>audio\wasapi</Filter>
     </ClCompile>
     </ClCompile>
@@ -1081,9 +1066,15 @@
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_stadia.c">
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_stadia.c">
       <Filter>joystick\hidapi</Filter>
       <Filter>joystick\hidapi</Filter>
     </ClCompile>
     </ClCompile>
+    <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_steam.c">
+      <Filter>joystick\hidapi</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_switch.c">
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_switch.c">
       <Filter>joystick\hidapi</Filter>
       <Filter>joystick\hidapi</Filter>
     </ClCompile>
     </ClCompile>
+    <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_wii.c">
+      <Filter>joystick\hidapi</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_xbox360.c">
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_xbox360.c">
       <Filter>joystick\hidapi</Filter>
       <Filter>joystick\hidapi</Filter>
     </ClCompile>
     </ClCompile>

+ 2 - 2
VisualC-GDK/SDLmain/SDLmain.vcxproj

@@ -30,7 +30,7 @@
     <ClCompile Include="..\..\src\main\gdk\SDL_gdk_main.c" />
     <ClCompile Include="..\..\src\main\gdk\SDL_gdk_main.c" />
   </ItemGroup>
   </ItemGroup>
   <PropertyGroup Label="Globals">
   <PropertyGroup Label="Globals">
-    <ProjectName>SDL2main</ProjectName>
+    <ProjectName>SDL3main</ProjectName>
     <ProjectGuid>{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}</ProjectGuid>
     <ProjectGuid>{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}</ProjectGuid>
     <RootNamespace>SDLmain</RootNamespace>
     <RootNamespace>SDLmain</RootNamespace>
     <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
     <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
@@ -208,4 +208,4 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
   </ImportGroup>
-</Project>
+</Project>

+ 2 - 2
VisualC-GDK/SDLtest/SDLtest.vcxproj

@@ -27,7 +27,7 @@
     </ProjectConfiguration>
     </ProjectConfiguration>
   </ItemGroup>
   </ItemGroup>
   <PropertyGroup Label="Globals">
   <PropertyGroup Label="Globals">
-    <ProjectName>SDL2test</ProjectName>
+    <ProjectName>SDL3test</ProjectName>
     <ProjectGuid>{DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}</ProjectGuid>
     <ProjectGuid>{DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}</ProjectGuid>
     <RootNamespace>SDLtest</RootNamespace>
     <RootNamespace>SDLtest</RootNamespace>
     <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
     <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
@@ -223,4 +223,4 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
   </ImportGroup>
-</Project>
+</Project>

+ 4 - 4
VisualC-GDK/tests/testgamecontroller/wingdk/MicrosoftGame.config

@@ -2,9 +2,9 @@
 <Game configVersion="1">
 <Game configVersion="1">
 
 
 	<!-- Set these to the correct identifiers from Partner Center -->
 	<!-- Set these to the correct identifiers from Partner Center -->
-	<Identity Name="41336MicrosoftATG.ATGSimpleLiveSample"
+	<Identity Name="SDL"
 		Version="1.0.0.0"
 		Version="1.0.0.0"
-		Publisher="CN=A4954634-DF4B-47C7-AB70-D3215D246AF1"/>
+		Publisher="CN=Publisher"/>
 
 
 	<ExecutableList>
 	<ExecutableList>
 		<Executable Name="testgamecontroller.exe"
 		<Executable Name="testgamecontroller.exe"
@@ -19,8 +19,8 @@
 	</DesktopRegistration>
 	</DesktopRegistration>
 
 
 	<!-- Set these to the correct values from Partner Center -->
 	<!-- Set these to the correct values from Partner Center -->
-	<TitleId>7325F784</TitleId>
-	<MSAAppId>0000000000000000</MSAAppId>
+	<MSAAppId>PleaseChangeMe</MSAAppId>
+	<TitleId>FFFFFFFF</TitleId>
 
 
 	<ShellVisuals DefaultDisplayName="testgamecontroller"
 	<ShellVisuals DefaultDisplayName="testgamecontroller"
 					PublisherDisplayName="SDL"
 					PublisherDisplayName="SDL"

+ 4 - 10
VisualC-GDK/tests/testgamecontroller/xboxone/MicrosoftGame.config

@@ -2,9 +2,9 @@
 <Game configVersion="1">
 <Game configVersion="1">
 
 
 	<!-- Set these to the correct identifiers from Partner Center -->
 	<!-- Set these to the correct identifiers from Partner Center -->
-	<Identity Name="41336MicrosoftATG.ATGSimpleLiveSample"
+	<Identity Name="SDL"
 		Version="1.0.0.0"
 		Version="1.0.0.0"
-		Publisher="CN=A4954634-DF4B-47C7-AB70-D3215D246AF1"/>
+		Publisher="CN=Publisher"/>
 
 
 	<ExecutableList>
 	<ExecutableList>
 		<Executable Name="testgamecontroller.exe"
 		<Executable Name="testgamecontroller.exe"
@@ -12,15 +12,9 @@
 					Id="Game" />
 					Id="Game" />
 	</ExecutableList>
 	</ExecutableList>
 
 
-	<DesktopRegistration>
-		<DependencyList>
-			<KnownDependency Name="VC14"/>
-		</DependencyList>
-	</DesktopRegistration>
-
 	<!-- Set these to the correct values from Partner Center -->
 	<!-- Set these to the correct values from Partner Center -->
-	<TitleId>7325F784</TitleId>
-	<MSAAppId>0000000000000000</MSAAppId>
+	<MSAAppId>PleaseChangeMe</MSAAppId>
+	<TitleId>FFFFFFFF</TitleId>
 
 
 	<ShellVisuals DefaultDisplayName="testgamecontroller"
 	<ShellVisuals DefaultDisplayName="testgamecontroller"
 					PublisherDisplayName="SDL"
 					PublisherDisplayName="SDL"

+ 4 - 4
VisualC-GDK/tests/testgamecontroller/xboxseries/MicrosoftGame.config

@@ -2,9 +2,9 @@
 <Game configVersion="1">
 <Game configVersion="1">
 
 
 	<!-- Set these to the correct identifiers from Partner Center -->
 	<!-- Set these to the correct identifiers from Partner Center -->
-	<Identity Name="41336MicrosoftATG.ATGSimpleLiveSample"
+	<Identity Name="SDL"
 		Version="1.0.0.0"
 		Version="1.0.0.0"
-		Publisher="CN=A4954634-DF4B-47C7-AB70-D3215D246AF1"/>
+		Publisher="CN=Publisher"/>
 
 
 	<ExecutableList>
 	<ExecutableList>
 		<Executable Name="testgamecontroller.exe"
 		<Executable Name="testgamecontroller.exe"
@@ -13,8 +13,8 @@
 	</ExecutableList>
 	</ExecutableList>
 
 
 	<!-- Set these to the correct values from Partner Center -->
 	<!-- Set these to the correct values from Partner Center -->
-	<TitleId>7325F784</TitleId>
-	<MSAAppId>0000000000000000</MSAAppId>
+	<MSAAppId>PleaseChangeMe</MSAAppId>
+	<TitleId>FFFFFFFF</TitleId>
 
 
 	<ShellVisuals DefaultDisplayName="testgamecontroller"
 	<ShellVisuals DefaultDisplayName="testgamecontroller"
 					PublisherDisplayName="SDL"
 					PublisherDisplayName="SDL"

+ 4 - 4
VisualC-GDK/tests/testgdk/wingdk/MicrosoftGame.config

@@ -2,9 +2,9 @@
 <Game configVersion="1">
 <Game configVersion="1">
 
 
 	<!-- Set these to the correct identifiers from Partner Center -->
 	<!-- Set these to the correct identifiers from Partner Center -->
-	<Identity Name="41336MicrosoftATG.ATGSimpleLiveSample"
+	<Identity Name="SDL"
 		Version="1.0.0.0"
 		Version="1.0.0.0"
-		Publisher="CN=A4954634-DF4B-47C7-AB70-D3215D246AF1"/>
+		Publisher="CN=Publisher"/>
 
 
 	<ExecutableList>
 	<ExecutableList>
 		<Executable Name="testgdk.exe"
 		<Executable Name="testgdk.exe"
@@ -19,8 +19,8 @@
 	</DesktopRegistration>
 	</DesktopRegistration>
 
 
 	<!-- Set these to the correct values from Partner Center -->
 	<!-- Set these to the correct values from Partner Center -->
-	<TitleId>7325F784</TitleId>
-	<MSAAppId>0000000000000000</MSAAppId>
+	<MSAAppId>PleaseChangeMe</MSAAppId>
+	<TitleId>FFFFFFFF</TitleId>
 
 
 	<ShellVisuals DefaultDisplayName="testgdk"
 	<ShellVisuals DefaultDisplayName="testgdk"
 					PublisherDisplayName="SDL"
 					PublisherDisplayName="SDL"

+ 4 - 4
VisualC-GDK/tests/testgdk/xboxone/MicrosoftGame.config

@@ -2,9 +2,9 @@
 <Game configVersion="1">
 <Game configVersion="1">
 
 
 	<!-- Set these to the correct identifiers from Partner Center -->
 	<!-- Set these to the correct identifiers from Partner Center -->
-	<Identity Name="41336MicrosoftATG.ATGSimpleLiveSample"
+	<Identity Name="SDL"
 		Version="1.0.0.0"
 		Version="1.0.0.0"
-		Publisher="CN=A4954634-DF4B-47C7-AB70-D3215D246AF1"/>
+		Publisher="CN=Publisher"/>
 
 
 	<ExecutableList>
 	<ExecutableList>
 		<Executable Name="testgdk.exe"
 		<Executable Name="testgdk.exe"
@@ -13,8 +13,8 @@
 	</ExecutableList>
 	</ExecutableList>
 
 
 	<!-- Set these to the correct values from Partner Center -->
 	<!-- Set these to the correct values from Partner Center -->
-	<TitleId>7325F784</TitleId>
-	<MSAAppId>0000000000000000</MSAAppId>
+	<MSAAppId>PleaseChangeMe</MSAAppId>
+	<TitleId>FFFFFFFF</TitleId>
 
 
 	<ShellVisuals DefaultDisplayName="testgdk"
 	<ShellVisuals DefaultDisplayName="testgdk"
 					PublisherDisplayName="SDL"
 					PublisherDisplayName="SDL"

+ 4 - 4
VisualC-GDK/tests/testgdk/xboxseries/MicrosoftGame.config

@@ -2,9 +2,9 @@
 <Game configVersion="1">
 <Game configVersion="1">
 
 
 	<!-- Set these to the correct identifiers from Partner Center -->
 	<!-- Set these to the correct identifiers from Partner Center -->
-	<Identity Name="41336MicrosoftATG.ATGSimpleLiveSample"
+	<Identity Name="SDL"
 		Version="1.0.0.0"
 		Version="1.0.0.0"
-		Publisher="CN=A4954634-DF4B-47C7-AB70-D3215D246AF1"/>
+		Publisher="CN=Publisher"/>
 
 
 	<ExecutableList>
 	<ExecutableList>
 		<Executable Name="testgdk.exe"
 		<Executable Name="testgdk.exe"
@@ -13,8 +13,8 @@
 	</ExecutableList>
 	</ExecutableList>
 
 
 	<!-- Set these to the correct values from Partner Center -->
 	<!-- Set these to the correct values from Partner Center -->
-	<TitleId>7325F784</TitleId>
-	<MSAAppId>0000000000000000</MSAAppId>
+	<MSAAppId>PleaseChangeMe</MSAAppId>
+	<TitleId>FFFFFFFF</TitleId>
 
 
 	<ShellVisuals DefaultDisplayName="testgdk"
 	<ShellVisuals DefaultDisplayName="testgdk"
 					PublisherDisplayName="SDL"
 					PublisherDisplayName="SDL"

+ 4 - 4
VisualC-GDK/tests/testsprite2/wingdk/MicrosoftGame.config

@@ -2,9 +2,9 @@
 <Game configVersion="1">
 <Game configVersion="1">
 
 
 	<!-- Set these to the correct identifiers from Partner Center -->
 	<!-- Set these to the correct identifiers from Partner Center -->
-	<Identity Name="41336MicrosoftATG.ATGSimpleLiveSample"
+	<Identity Name="SDL"
 		Version="1.0.0.0"
 		Version="1.0.0.0"
-		Publisher="CN=A4954634-DF4B-47C7-AB70-D3215D246AF1"/>
+		Publisher="CN=Publisher"/>
 
 
 	<ExecutableList>
 	<ExecutableList>
 		<Executable Name="testsprite2.exe"
 		<Executable Name="testsprite2.exe"
@@ -19,8 +19,8 @@
 	</DesktopRegistration>
 	</DesktopRegistration>
 
 
 	<!-- Set these to the correct values from Partner Center -->
 	<!-- Set these to the correct values from Partner Center -->
-	<TitleId>7325F784</TitleId>
-	<MSAAppId>0000000000000000</MSAAppId>
+	<MSAAppId>PleaseChangeMe</MSAAppId>
+	<TitleId>FFFFFFFF</TitleId>
 
 
 	<ShellVisuals DefaultDisplayName="testsprite2"
 	<ShellVisuals DefaultDisplayName="testsprite2"
 					PublisherDisplayName="SDL"
 					PublisherDisplayName="SDL"

+ 4 - 4
VisualC-GDK/tests/testsprite2/xboxone/MicrosoftGame.config

@@ -2,9 +2,9 @@
 <Game configVersion="1">
 <Game configVersion="1">
 
 
 	<!-- Set these to the correct identifiers from Partner Center -->
 	<!-- Set these to the correct identifiers from Partner Center -->
-	<Identity Name="41336MicrosoftATG.ATGSimpleLiveSample"
+	<Identity Name="SDL"
 		Version="1.0.0.0"
 		Version="1.0.0.0"
-		Publisher="CN=A4954634-DF4B-47C7-AB70-D3215D246AF1"/>
+		Publisher="CN=Publisher"/>
 
 
 	<ExecutableList>
 	<ExecutableList>
 		<Executable Name="testsprite2.exe"
 		<Executable Name="testsprite2.exe"
@@ -13,8 +13,8 @@
 	</ExecutableList>
 	</ExecutableList>
 
 
 	<!-- Set these to the correct values from Partner Center -->
 	<!-- Set these to the correct values from Partner Center -->
-	<TitleId>7325F784</TitleId>
-	<MSAAppId>0000000000000000</MSAAppId>
+	<MSAAppId>PleaseChangeMe</MSAAppId>
+	<TitleId>FFFFFFFF</TitleId>
 
 
 	<ShellVisuals DefaultDisplayName="testsprite2"
 	<ShellVisuals DefaultDisplayName="testsprite2"
 					PublisherDisplayName="SDL"
 					PublisherDisplayName="SDL"

+ 4 - 4
VisualC-GDK/tests/testsprite2/xboxseries/MicrosoftGame.config

@@ -2,9 +2,9 @@
 <Game configVersion="1">
 <Game configVersion="1">
 
 
 	<!-- Set these to the correct identifiers from Partner Center -->
 	<!-- Set these to the correct identifiers from Partner Center -->
-	<Identity Name="41336MicrosoftATG.ATGSimpleLiveSample"
+	<Identity Name="SDL"
 		Version="1.0.0.0"
 		Version="1.0.0.0"
-		Publisher="CN=A4954634-DF4B-47C7-AB70-D3215D246AF1"/>
+		Publisher="CN=Publisher"/>
 
 
 	<ExecutableList>
 	<ExecutableList>
 		<Executable Name="testsprite2.exe"
 		<Executable Name="testsprite2.exe"
@@ -13,8 +13,8 @@
 	</ExecutableList>
 	</ExecutableList>
 
 
 	<!-- Set these to the correct values from Partner Center -->
 	<!-- Set these to the correct values from Partner Center -->
-	<TitleId>7325F784</TitleId>
-	<MSAAppId>0000000000000000</MSAAppId>
+	<MSAAppId>PleaseChangeMe</MSAAppId>
+	<TitleId>FFFFFFFF</TitleId>
 
 
 	<ShellVisuals DefaultDisplayName="testsprite2"
 	<ShellVisuals DefaultDisplayName="testsprite2"
 					PublisherDisplayName="SDL"
 					PublisherDisplayName="SDL"

+ 0 - 34
VisualC-WinRT/SDL-UWP.sln

@@ -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

+ 0 - 606
VisualC-WinRT/SDL-UWP.vcxproj

@@ -1,606 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|ARM">
-      <Configuration>Debug</Configuration>
-      <Platform>ARM</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|x64">
-      <Configuration>Debug</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|ARM">
-      <Configuration>Release</Configuration>
-      <Platform>ARM</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
-      <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\include\begin_code.h" />
-    <ClInclude Include="..\include\close_code.h" />
-    <ClInclude Include="..\include\SDL.h" />
-    <ClInclude Include="..\include\SDL_assert.h" />
-    <ClInclude Include="..\include\SDL_atomic.h" />
-    <ClInclude Include="..\include\SDL_audio.h" />
-    <ClInclude Include="..\include\SDL_blendmode.h" />
-    <ClInclude Include="..\include\SDL_clipboard.h" />
-    <ClInclude Include="..\include\SDL_config.h" />
-    <ClInclude Include="..\include\SDL_config_minimal.h" />
-    <ClInclude Include="..\include\SDL_config_winrt.h" />
-    <ClInclude Include="..\include\SDL_copying.h" />
-    <ClInclude Include="..\include\SDL_cpuinfo.h" />
-    <ClInclude Include="..\include\SDL_egl.h" />
-    <ClInclude Include="..\include\SDL_endian.h" />
-    <ClInclude Include="..\include\SDL_error.h" />
-    <ClInclude Include="..\include\SDL_events.h" />
-    <ClInclude Include="..\include\SDL_filesystem.h" />
-    <ClInclude Include="..\include\SDL_guid.h" />
-    <ClInclude Include="..\include\SDL_haptic.h" />
-    <ClInclude Include="..\include\SDL_hints.h" />
-    <ClInclude Include="..\include\SDL_hidapi.h" />
-    <ClInclude Include="..\include\SDL_input.h" />
-    <ClInclude Include="..\include\SDL_joystick.h" />
-    <ClInclude Include="..\include\SDL_keyboard.h" />
-    <ClInclude Include="..\include\SDL_keycode.h" />
-    <ClInclude Include="..\include\SDL_loadso.h" />
-    <ClInclude Include="..\include\SDL_locale.h" />
-    <ClInclude Include="..\include\SDL_log.h" />
-    <ClInclude Include="..\include\SDL_main.h" />
-    <ClInclude Include="..\include\SDL_misc.h" />
-    <ClInclude Include="..\include\SDL_mouse.h" />
-    <ClInclude Include="..\include\SDL_mutex.h" />
-    <ClInclude Include="..\include\SDL_name.h" />
-    <ClInclude Include="..\include\SDL_opengles2.h" />
-    <ClInclude Include="..\include\SDL_pixels.h" />
-    <ClInclude Include="..\include\SDL_platform.h" />
-    <ClInclude Include="..\include\SDL_power.h" />
-    <ClInclude Include="..\include\SDL_quit.h" />
-    <ClInclude Include="..\include\SDL_rect.h" />
-    <ClInclude Include="..\include\SDL_render.h" />
-    <ClInclude Include="..\include\SDL_revision.h" />
-    <ClInclude Include="..\include\SDL_rwops.h" />
-    <ClInclude Include="..\include\SDL_scancode.h" />
-    <ClInclude Include="..\include\SDL_sensor.h" />
-    <ClInclude Include="..\include\SDL_shape.h" />
-    <ClInclude Include="..\include\SDL_stdinc.h" />
-    <ClInclude Include="..\include\SDL_surface.h" />
-    <ClInclude Include="..\include\SDL_system.h" />
-    <ClInclude Include="..\include\SDL_syswm.h" />
-    <ClInclude Include="..\include\SDL_thread.h" />
-    <ClInclude Include="..\include\SDL_timer.h" />
-    <ClInclude Include="..\include\SDL_touch.h" />
-    <ClInclude Include="..\include\SDL_types.h" />
-    <ClInclude Include="..\include\SDL_version.h" />
-    <ClInclude Include="..\include\SDL_video.h" />
-    <ClInclude Include="..\src\audio\disk\SDL_diskaudio.h" />
-    <ClInclude Include="..\src\audio\dummy\SDL_dummyaudio.h" />
-    <ClInclude Include="..\src\audio\SDL_audiodev_c.h" />
-    <ClInclude Include="..\src\audio\SDL_audio_c.h" />
-    <ClInclude Include="..\src\audio\SDL_sysaudio.h" />
-    <ClInclude Include="..\src\audio\SDL_wave.h" />
-    <ClInclude Include="..\src\audio\wasapi\SDL_wasapi.h" />
-    <ClInclude Include="..\src\core\windows\SDL_directx.h" />
-    <ClInclude Include="..\src\core\windows\SDL_windows.h" />
-    <ClInclude Include="..\src\core\windows\SDL_xinput.h" />
-    <ClInclude Include="..\src\core\winrt\SDL_winrtapp_common.h" />
-    <ClInclude Include="..\src\core\winrt\SDL_winrtapp_direct3d.h" />
-    <ClInclude Include="..\src\core\winrt\SDL_winrtapp_xaml.h" />
-    <ClInclude Include="..\src\dynapi\SDL_dynapi.h" />
-    <ClInclude Include="..\src\dynapi\SDL_dynapi_overrides.h" />
-    <ClInclude Include="..\src\dynapi\SDL_dynapi_procs.h" />
-    <ClInclude Include="..\src\events\blank_cursor.h" />
-    <ClInclude Include="..\src\events\default_cursor.h" />
-    <ClInclude Include="..\src\events\SDL_clipboardevents_c.h" />
-    <ClInclude Include="..\src\events\SDL_displayevents_c.h" />
-    <ClInclude Include="..\src\events\SDL_dropevents_c.h" />
-    <ClInclude Include="..\src\events\SDL_events_c.h" />
-    <ClInclude Include="..\src\events\SDL_keyboard_c.h" />
-    <ClInclude Include="..\src\events\SDL_mouse_c.h" />
-    <ClInclude Include="..\src\events\SDL_touch_c.h" />
-    <ClInclude Include="..\src\events\SDL_windowevents_c.h" />
-    <ClInclude Include="..\src\haptic\SDL_haptic_c.h" />
-    <ClInclude Include="..\src\haptic\SDL_syshaptic.h" />
-    <ClInclude Include="..\src\haptic\windows\SDL_dinputhaptic_c.h" />
-    <ClInclude Include="..\src\haptic\windows\SDL_windowshaptic_c.h" />
-    <ClInclude Include="..\src\haptic\windows\SDL_xinputhaptic_c.h" />
-    <ClInclude Include="..\src\joystick\controller_type.h" />
-    <ClInclude Include="..\src\joystick\SDL_gamecontrollerdb.h" />
-    <ClInclude Include="..\src\joystick\SDL_joystick_c.h" />
-    <ClInclude Include="..\src\joystick\SDL_sysjoystick.h" />
-    <ClInclude Include="..\src\joystick\virtual\SDL_virtualjoystick_c.h" />
-    <ClInclude Include="..\src\joystick\windows\SDL_dinputjoystick_c.h" />
-    <ClInclude Include="..\src\joystick\windows\SDL_windowsjoystick_c.h" />
-    <ClInclude Include="..\src\joystick\windows\SDL_xinputjoystick_c.h" />
-    <ClInclude Include="..\src\locale\SDL_syslocale.h" />
-    <ClInclude Include="..\src\render\direct3d11\SDL_render_winrt.h" />
-    <ClInclude Include="..\src\render\direct3d11\SDL_shaders_d3d11.h" />
-    <ClInclude Include="..\src\render\opengles2\SDL_gles2funcs.h" />
-    <ClInclude Include="..\src\render\opengles2\SDL_shaders_gles2.h" />
-    <ClInclude Include="..\src\render\SDL_d3dmath.h" />
-    <ClInclude Include="..\src\render\SDL_sysrender.h" />
-    <ClInclude Include="..\src\render\SDL_yuv_sw_c.h" />
-    <ClInclude Include="..\src\render\software\SDL_blendfillrect.h" />
-    <ClInclude Include="..\src\render\software\SDL_blendline.h" />
-    <ClInclude Include="..\src\render\software\SDL_blendpoint.h" />
-    <ClInclude Include="..\src\render\software\SDL_draw.h" />
-    <ClInclude Include="..\src\render\software\SDL_drawline.h" />
-    <ClInclude Include="..\src\render\software\SDL_drawpoint.h" />
-    <ClInclude Include="..\src\render\software\SDL_render_sw_c.h" />
-    <ClInclude Include="..\src\render\software\SDL_rotate.h" />
-    <ClInclude Include="..\src\render\software\SDL_triangle.h" />
-    <ClInclude Include="..\src\SDL_assert_c.h" />
-    <ClInclude Include="..\src\SDL_dataqueue.h" />
-    <ClInclude Include="..\src\SDL_error_c.h" />
-    <ClInclude Include="..\src\SDL_fatal.h" />
-    <ClInclude Include="..\src\SDL_hints_c.h" />
-    <ClInclude Include="..\src\SDL_internal.h" />
-    <ClInclude Include="..\src\SDL_list.h" />
-    <ClInclude Include="..\src\SDL_log_c.h" />
-    <ClInclude Include="..\src\sensor\dummy\SDL_dummysensor.h" />
-    <ClInclude Include="..\src\sensor\SDL_sensor_c.h" />
-    <ClInclude Include="..\src\sensor\SDL_syssensor.h" />
-    <ClInclude Include="..\src\thread\SDL_systhread.h" />
-    <ClInclude Include="..\src\thread\SDL_thread_c.h" />
-    <ClInclude Include="..\src\thread\stdcpp\SDL_sysmutex_c.h" />
-    <ClInclude Include="..\src\thread\stdcpp\SDL_systhread_c.h" />
-    <ClInclude Include="..\src\timer\SDL_timer_c.h" />
-    <ClInclude Include="..\src\video\dummy\SDL_nullevents_c.h" />
-    <ClInclude Include="..\src\video\dummy\SDL_nullframebuffer_c.h" />
-    <ClInclude Include="..\src\video\dummy\SDL_nullvideo.h" />
-    <ClInclude Include="..\src\video\SDL_blit.h" />
-    <ClInclude Include="..\src\video\SDL_blit_auto.h" />
-    <ClInclude Include="..\src\video\SDL_blit_copy.h" />
-    <ClInclude Include="..\src\video\SDL_blit_slow.h" />
-    <ClInclude Include="..\src\video\SDL_egl_c.h" />
-    <ClInclude Include="..\src\video\SDL_pixels_c.h" />
-    <ClInclude Include="..\src\video\SDL_rect_c.h" />
-    <ClInclude Include="..\src\video\SDL_RLEaccel_c.h" />
-    <ClInclude Include="..\src\video\SDL_shape_internals.h" />
-    <ClInclude Include="..\src\video\SDL_sysvideo.h" />
-    <ClInclude Include="..\src\video\SDL_yuv_c.h" />
-    <ClInclude Include="..\src\video\winrt\SDL_winrtevents_c.h" />
-    <ClInclude Include="..\src\video\winrt\SDL_winrtgamebar_cpp.h" />
-    <ClInclude Include="..\src\video\winrt\SDL_winrtmessagebox.h" />
-    <ClInclude Include="..\src\video\winrt\SDL_winrtmouse_c.h" />
-    <ClInclude Include="..\src\video\winrt\SDL_winrtopengles.h" />
-    <ClInclude Include="..\src\video\winrt\SDL_winrtvideo_cpp.h" />
-    <ClInclude Include="..\src\video\yuv2rgb\yuv_rgb.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\src\atomic\SDL_atomic.c" />
-    <ClCompile Include="..\src\atomic\SDL_spinlock.c" />
-    <ClCompile Include="..\src\audio\disk\SDL_diskaudio.c" />
-    <ClCompile Include="..\src\audio\dummy\SDL_dummyaudio.c" />
-    <ClCompile Include="..\src\audio\SDL_audio.c" />
-    <ClCompile Include="..\src\audio\SDL_audiocvt.c" />
-    <ClCompile Include="..\src\audio\SDL_audiodev.c" />
-    <ClCompile Include="..\src\audio\SDL_audiotypecvt.c" />
-    <ClCompile Include="..\src\audio\SDL_mixer.c" />
-    <ClCompile Include="..\src\audio\SDL_wave.c" />
-    <ClCompile Include="..\src\audio\wasapi\SDL_wasapi.c" />
-    <ClCompile Include="..\src\audio\wasapi\SDL_wasapi_winrt.cpp">
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
-    </ClCompile>
-    <ClCompile Include="..\src\core\windows\SDL_windows.c" />
-    <ClCompile Include="..\src\core\windows\SDL_xinput.c" />
-    <ClCompile Include="..\src\core\winrt\SDL_winrtapp_common.cpp">
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
-    </ClCompile>
-    <ClCompile Include="..\src\core\winrt\SDL_winrtapp_direct3d.cpp">
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
-    </ClCompile>
-    <ClCompile Include="..\src\core\winrt\SDL_winrtapp_xaml.cpp">
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
-    </ClCompile>
-    <ClCompile Include="..\src\cpuinfo\SDL_cpuinfo.c" />
-    <ClCompile Include="..\src\dynapi\SDL_dynapi.c" />
-    <ClCompile Include="..\src\events\SDL_clipboardevents.c" />
-    <ClCompile Include="..\src\events\SDL_displayevents.c" />
-    <ClCompile Include="..\src\events\SDL_dropevents.c" />
-    <ClCompile Include="..\src\events\SDL_events.c" />
-    <ClCompile Include="..\src\events\SDL_gesture.c" />
-    <ClCompile Include="..\src\events\SDL_keyboard.c" />
-    <ClCompile Include="..\src\events\SDL_mouse.c" />
-    <ClCompile Include="..\src\events\SDL_quit.c" />
-    <ClCompile Include="..\src\events\SDL_touch.c" />
-    <ClCompile Include="..\src\events\SDL_windowevents.c" />
-    <ClCompile Include="..\src\filesystem\winrt\SDL_sysfilesystem.cpp">
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
-    </ClCompile>
-    <ClCompile Include="..\src\file\SDL_rwops.c" />
-    <ClCompile Include="..\src\haptic\dummy\SDL_syshaptic.c" />
-    <ClCompile Include="..\src\haptic\SDL_haptic.c" />
-    <ClCompile Include="..\src\haptic\windows\SDL_dinputhaptic.c" />
-    <ClCompile Include="..\src\haptic\windows\SDL_windowshaptic.c" />
-    <ClCompile Include="..\src\haptic\windows\SDL_xinputhaptic.c" />
-    <ClCompile Include="..\src\hidapi\SDL_hidapi.c" />
-    <ClCompile Include="..\src\joystick\dummy\SDL_sysjoystick.c" />
-    <ClCompile Include="..\src\joystick\controller_type.c" />
-    <ClCompile Include="..\src\joystick\SDL_gamecontroller.c" />
-    <ClCompile Include="..\src\joystick\SDL_joystick.c" />
-    <ClCompile Include="..\src\joystick\virtual\SDL_virtualjoystick.c" />
-    <ClCompile Include="..\src\joystick\windows\SDL_dinputjoystick.c" />
-    <ClCompile Include="..\src\joystick\windows\SDL_windowsjoystick.c" />
-    <ClCompile Include="..\src\joystick\windows\SDL_windows_gaming_input.c" />
-    <ClCompile Include="..\src\joystick\windows\SDL_xinputjoystick.c" />
-    <ClCompile Include="..\src\loadso\windows\SDL_sysloadso.c" />
-    <ClCompile Include="..\src\locale\SDL_locale.c" />
-    <ClCompile Include="..\src\locale\winrt\SDL_syslocale.c" />
-    <ClCompile Include="..\src\misc\SDL_url.c" />
-    <ClCompile Include="..\src\misc\winrt\SDL_sysurl.cpp">
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
-    </ClCompile>
-    <ClCompile Include="..\src\power\SDL_power.c" />
-    <ClCompile Include="..\src\power\winrt\SDL_syspower.cpp" />
-    <ClCompile Include="..\src\render\direct3d11\SDL_render_d3d11.c" />
-    <ClCompile Include="..\src\render\direct3d11\SDL_render_winrt.cpp">
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
-    </ClCompile>
-    <ClCompile Include="..\src\render\direct3d11\SDL_shaders_d3d11.c" />
-    <ClCompile Include="..\src\render\opengles2\SDL_render_gles2.c" />
-    <ClCompile Include="..\src\render\opengles2\SDL_shaders_gles2.c" />
-    <ClCompile Include="..\src\render\SDL_d3dmath.c" />
-    <ClCompile Include="..\src\render\SDL_render.c" />
-    <ClCompile Include="..\src\render\SDL_yuv_sw.c" />
-    <ClCompile Include="..\src\render\software\SDL_blendfillrect.c" />
-    <ClCompile Include="..\src\render\software\SDL_blendline.c" />
-    <ClCompile Include="..\src\render\software\SDL_blendpoint.c" />
-    <ClCompile Include="..\src\render\software\SDL_drawline.c" />
-    <ClCompile Include="..\src\render\software\SDL_drawpoint.c" />
-    <ClCompile Include="..\src\render\software\SDL_render_sw.c" />
-    <ClCompile Include="..\src\render\software\SDL_rotate.c" />
-    <ClCompile Include="..\src\render\software\SDL_triangle.c" />
-    <ClCompile Include="..\src\SDL.c" />
-    <ClCompile Include="..\src\SDL_assert.c" />
-    <ClCompile Include="..\src\SDL_dataqueue.c" />
-    <ClCompile Include="..\src\SDL_list.c" />
-    <ClCompile Include="..\src\SDL_error.c" />
-    <ClCompile Include="..\src\SDL_guid.c" />
-    <ClCompile Include="..\src\SDL_hints.c" />
-    <ClCompile Include="..\src\SDL_log.c" />
-    <ClCompile Include="..\src\SDL_utils.c" />
-    <ClCompile Include="..\src\sensor\dummy\SDL_dummysensor.c" />
-    <ClCompile Include="..\src\sensor\SDL_sensor.c" />
-    <ClCompile Include="..\src\stdlib\SDL_crc16.c" />
-    <ClCompile Include="..\src\stdlib\SDL_crc32.c" />
-    <ClCompile Include="..\src\stdlib\SDL_getenv.c" />
-    <ClCompile Include="..\src\stdlib\SDL_iconv.c" />
-    <ClCompile Include="..\src\stdlib\SDL_malloc.c" />
-    <ClCompile Include="..\src\stdlib\SDL_mslibc.c" />
-    <ClCompile Include="..\src\stdlib\SDL_qsort.c" />
-    <ClCompile Include="..\src\stdlib\SDL_stdlib.c" />
-    <ClCompile Include="..\src\stdlib\SDL_string.c" />
-    <ClCompile Include="..\src\stdlib\SDL_strtokr.c" />
-    <ClCompile Include="..\src\thread\generic\SDL_syssem.c" />
-    <ClCompile Include="..\src\thread\SDL_thread.c" />
-    <ClCompile Include="..\src\thread\stdcpp\SDL_syscond.cpp" />
-    <ClCompile Include="..\src\thread\stdcpp\SDL_sysmutex.cpp" />
-    <ClCompile Include="..\src\thread\stdcpp\SDL_systhread.cpp" />
-    <ClCompile Include="..\src\timer\SDL_timer.c" />
-    <ClCompile Include="..\src\timer\windows\SDL_systimer.c" />
-    <ClCompile Include="..\src\video\dummy\SDL_nullevents.c" />
-    <ClCompile Include="..\src\video\dummy\SDL_nullframebuffer.c" />
-    <ClCompile Include="..\src\video\dummy\SDL_nullvideo.c" />
-    <ClCompile Include="..\src\video\SDL_blit.c" />
-    <ClCompile Include="..\src\video\SDL_blit_0.c" />
-    <ClCompile Include="..\src\video\SDL_blit_1.c" />
-    <ClCompile Include="..\src\video\SDL_blit_A.c" />
-    <ClCompile Include="..\src\video\SDL_blit_auto.c" />
-    <ClCompile Include="..\src\video\SDL_blit_copy.c" />
-    <ClCompile Include="..\src\video\SDL_blit_N.c" />
-    <ClCompile Include="..\src\video\SDL_blit_slow.c" />
-    <ClCompile Include="..\src\video\SDL_bmp.c" />
-    <ClCompile Include="..\src\video\SDL_clipboard.c" />
-    <ClCompile Include="..\src\video\SDL_egl.c" />
-    <ClCompile Include="..\src\video\SDL_fillrect.c" />
-    <ClCompile Include="..\src\video\SDL_pixels.c" />
-    <ClCompile Include="..\src\video\SDL_rect.c" />
-    <ClCompile Include="..\src\video\SDL_RLEaccel.c" />
-    <ClCompile Include="..\src\video\SDL_shape.c" />
-    <ClCompile Include="..\src\video\SDL_stretch.c" />
-    <ClCompile Include="..\src\video\SDL_surface.c" />
-    <ClCompile Include="..\src\video\SDL_video.c" />
-    <ClCompile Include="..\src\video\SDL_yuv.c" />
-    <ClCompile Include="..\src\video\winrt\SDL_winrtevents.cpp">
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
-    </ClCompile>
-    <ClCompile Include="..\src\video\winrt\SDL_winrtgamebar.cpp">
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
-    </ClCompile>
-    <ClCompile Include="..\src\video\winrt\SDL_winrtkeyboard.cpp">
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
-    </ClCompile>
-    <ClCompile Include="..\src\video\winrt\SDL_winrtmessagebox.cpp">
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
-    </ClCompile>
-    <ClCompile Include="..\src\video\winrt\SDL_winrtmouse.cpp">
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
-    </ClCompile>
-    <ClCompile Include="..\src\video\winrt\SDL_winrtopengles.cpp">
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
-    </ClCompile>
-    <ClCompile Include="..\src\video\winrt\SDL_winrtpointerinput.cpp">
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
-    </ClCompile>
-    <ClCompile Include="..\src\video\winrt\SDL_winrtvideo.cpp">
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
-      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
-    </ClCompile>
-    <ClCompile Include="..\src\video\yuv2rgb\yuv_rgb.c" />
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{89e9b32e-a86a-47c3-a948-d2b1622925ce}</ProjectGuid>
-    <Keyword>DynamicLibrary</Keyword>
-    <ProjectName>SDL2-UWP</ProjectName>
-    <RootNamespace>SDL2</RootNamespace>
-    <DefaultLanguage>en-US</DefaultLanguage>
-    <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
-    <AppContainerApplication>true</AppContainerApplication>
-    <ApplicationType>Windows Store</ApplicationType>
-    <ApplicationTypeRevision>8.2</ApplicationTypeRevision>
-    <TargetPlatformVersion>10.0.16299.0</TargetPlatformVersion>
-    <TargetPlatformMinVersion>10.0.16299.0</TargetPlatformMinVersion>
-    <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <PlatformToolset>v142</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <PlatformToolset>v142</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <PlatformToolset>v142</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <PlatformToolset>v142</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <PlatformToolset>v142</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <PlatformToolset>v142</PlatformToolset>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Label="Shared">
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <GenerateManifest>false</GenerateManifest>
-    <IgnoreImportLibrary>false</IgnoreImportLibrary>
-    <TargetName>SDL2</TargetName>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <GenerateManifest>false</GenerateManifest>
-    <IgnoreImportLibrary>false</IgnoreImportLibrary>
-    <TargetName>SDL2</TargetName>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
-    <GenerateManifest>false</GenerateManifest>
-    <IgnoreImportLibrary>false</IgnoreImportLibrary>
-    <TargetName>SDL2</TargetName>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
-    <GenerateManifest>false</GenerateManifest>
-    <IgnoreImportLibrary>false</IgnoreImportLibrary>
-    <TargetName>SDL2</TargetName>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <GenerateManifest>false</GenerateManifest>
-    <IgnoreImportLibrary>false</IgnoreImportLibrary>
-    <TargetName>SDL2</TargetName>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <GenerateManifest>false</GenerateManifest>
-    <IgnoreImportLibrary>false</IgnoreImportLibrary>
-    <TargetName>SDL2</TargetName>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <CompileAsWinRT>false</CompileAsWinRT>
-      <AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
-      <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
-      <AdditionalOptions>/nodefaultlib:vccorlibd /nodefaultlib:msvcrtd vccorlibd.lib msvcrtd.lib %(AdditionalOptions)</AdditionalOptions>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <CompileAsWinRT>false</CompileAsWinRT>
-      <AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
-      <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
-      <AdditionalOptions>/nodefaultlib:vccorlib /nodefaultlib:msvcrt vccorlib.lib msvcrt.lib %(AdditionalOptions)</AdditionalOptions>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|arm'">
-    <ClCompile>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <CompileAsWinRT>false</CompileAsWinRT>
-      <AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
-      <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
-      <AdditionalOptions>/nodefaultlib:vccorlibd /nodefaultlib:msvcrtd vccorlibd.lib msvcrtd.lib %(AdditionalOptions)</AdditionalOptions>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|arm'">
-    <ClCompile>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <CompileAsWinRT>false</CompileAsWinRT>
-      <AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
-      <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
-      <AdditionalOptions>/nodefaultlib:vccorlib /nodefaultlib:msvcrt vccorlib.lib msvcrt.lib %(AdditionalOptions)</AdditionalOptions>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <ClCompile>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <CompileAsWinRT>false</CompileAsWinRT>
-      <AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
-      <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
-      <AdditionalOptions>/nodefaultlib:vccorlibd /nodefaultlib:msvcrtd vccorlibd.lib msvcrtd.lib %(AdditionalOptions)</AdditionalOptions>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <ClCompile>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <CompileAsWinRT>false</CompileAsWinRT>
-      <AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
-      <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
-      <AdditionalOptions>/nodefaultlib:vccorlib /nodefaultlib:msvcrt vccorlib.lib msvcrt.lib %(AdditionalOptions)</AdditionalOptions>
-    </Link>
-  </ItemDefinitionGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>

+ 0 - 846
VisualC-WinRT/SDL-UWP.vcxproj.filters

@@ -1,846 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="Header Files">
-      <UniqueIdentifier>{fa0ff2df-c3d6-498a-96f1-1f88e7ce0da3}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>{68e1b30b-19ed-4612-93e4-6260c5a979e5}</UniqueIdentifier>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\include\begin_code.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\close_code.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_assert.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_atomic.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_audio.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_blendmode.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_clipboard.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_config.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_config_minimal.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_config_winrt.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_copying.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_cpuinfo.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_egl.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_endian.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_error.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_events.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_filesystem.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_guid.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_haptic.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_hints.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_hidapi.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_input.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_joystick.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_keyboard.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_keycode.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_loadso.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_locale.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_log.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_main.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_mouse.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_mutex.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_name.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_opengles2.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_pixels.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_platform.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_power.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_quit.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_rect.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_render.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_revision.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_rwops.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_scancode.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_shape.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_stdinc.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_surface.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_system.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_syswm.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_thread.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_timer.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_touch.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_types.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_version.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_video.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\joystick\SDL_gamecontrollerdb.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\audio\disk\SDL_diskaudio.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\audio\dummy\SDL_dummyaudio.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\audio\SDL_audiodev_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\audio\SDL_audio_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\audio\SDL_sysaudio.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\audio\SDL_wave.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\core\windows\SDL_directx.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\core\windows\SDL_windows.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\core\windows\SDL_xinput.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\core\winrt\SDL_winrtapp_common.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\core\winrt\SDL_winrtapp_direct3d.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\core\winrt\SDL_winrtapp_xaml.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\dynapi\SDL_dynapi.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\dynapi\SDL_dynapi_overrides.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\dynapi\SDL_dynapi_procs.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\events\blank_cursor.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\events\default_cursor.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\events\SDL_clipboardevents_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\events\SDL_dropevents_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\events\SDL_events_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\events\SDL_keyboard_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\events\SDL_mouse_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\events\SDL_touch_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\events\SDL_windowevents_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\haptic\SDL_haptic_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\haptic\SDL_syshaptic.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\joystick\SDL_joystick_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\joystick\SDL_sysjoystick.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\joystick\virtual\SDL_virtualjoystick_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\joystick\windows\SDL_dinputjoystick_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\joystick\windows\SDL_windowsjoystick_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\joystick\windows\SDL_xinputjoystick_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\render\direct3d11\SDL_render_winrt.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\render\opengles2\SDL_gles2funcs.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\render\opengles2\SDL_shaders_gles2.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\render\SDL_d3dmath.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\render\SDL_sysrender.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\render\SDL_yuv_sw_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\render\software\SDL_blendfillrect.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\render\software\SDL_blendline.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\render\software\SDL_blendpoint.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\render\software\SDL_draw.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\render\software\SDL_drawline.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\render\software\SDL_drawpoint.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\render\software\SDL_render_sw_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\render\software\SDL_rotate.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\render\software\SDL_triangle.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\SDL_assert_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\SDL_error_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\SDL_fatal.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\SDL_hints_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\SDL_internal.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\SDL_log_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\locale\SDL_syslocale.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\thread\SDL_systhread.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\thread\SDL_thread_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\thread\stdcpp\SDL_sysmutex_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\thread\stdcpp\SDL_systhread_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\timer\SDL_timer_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\video\dummy\SDL_nullevents_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\video\dummy\SDL_nullframebuffer_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\video\dummy\SDL_nullvideo.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\video\SDL_blit.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\video\SDL_blit_auto.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\video\SDL_blit_copy.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\video\SDL_blit_slow.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\video\SDL_egl_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\video\SDL_pixels_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\video\SDL_rect_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\video\SDL_RLEaccel_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\video\SDL_shape_internals.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\video\SDL_sysvideo.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\video\winrt\SDL_winrtevents_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\video\winrt\SDL_winrtmessagebox.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\video\winrt\SDL_winrtmouse_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\video\winrt\SDL_winrtopengles.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\video\winrt\SDL_winrtvideo_cpp.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\audio\wasapi\SDL_wasapi.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\video\winrt\SDL_winrtgamebar_cpp.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\SDL_dataqueue.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\SDL_list.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\haptic\windows\SDL_xinputhaptic_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\haptic\windows\SDL_dinputhaptic_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\haptic\windows\SDL_windowshaptic_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\video\SDL_yuv_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\video\yuv2rgb\yuv_rgb.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\render\direct3d11\SDL_shaders_d3d11.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_sensor.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\sensor\SDL_sensor_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\sensor\SDL_syssensor.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\sensor\dummy\SDL_dummysensor.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\src\events\SDL_displayevents_c.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\include\SDL_misc.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClCompile Include="..\src\atomic\SDL_atomic.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\atomic\SDL_spinlock.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\audio\disk\SDL_diskaudio.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\audio\dummy\SDL_dummyaudio.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\audio\SDL_audio.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\audio\SDL_audiocvt.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\audio\SDL_audiodev.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\audio\SDL_audiotypecvt.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\audio\SDL_mixer.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\audio\SDL_wave.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\audio\wasapi\SDL_wasapi_winrt.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\core\windows\SDL_windows.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\core\windows\SDL_xinput.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\core\winrt\SDL_winrtapp_common.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\core\winrt\SDL_winrtapp_direct3d.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\core\winrt\SDL_winrtapp_xaml.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\cpuinfo\SDL_cpuinfo.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\dynapi\SDL_dynapi.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\events\SDL_clipboardevents.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\events\SDL_dropevents.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\events\SDL_events.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\events\SDL_gesture.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\events\SDL_keyboard.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\events\SDL_mouse.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\events\SDL_quit.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\events\SDL_touch.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\events\SDL_windowevents.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\filesystem\winrt\SDL_sysfilesystem.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\file\SDL_rwops.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\haptic\dummy\SDL_syshaptic.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\haptic\SDL_haptic.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\hidapi\SDL_hidapi.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\joystick\dummy\SDL_sysjoystick.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\joystick\SDL_gamecontroller.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\joystick\SDL_joystick.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\joystick\virtual\SDL_virtualjoystick.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\joystick\windows\SDL_dinputjoystick.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\joystick\windows\SDL_windowsjoystick.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\joystick\windows\SDL_xinputjoystick.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\loadso\windows\SDL_sysloadso.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\power\SDL_power.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\power\winrt\SDL_syspower.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\render\direct3d11\SDL_render_d3d11.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\render\direct3d11\SDL_render_winrt.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\render\opengles2\SDL_render_gles2.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\render\opengles2\SDL_shaders_gles2.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\render\SDL_d3dmath.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\render\SDL_render.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\render\SDL_yuv_sw.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\render\software\SDL_blendfillrect.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\render\software\SDL_blendline.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\render\software\SDL_blendpoint.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\render\software\SDL_drawline.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\render\software\SDL_drawpoint.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\render\software\SDL_render_sw.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\render\software\SDL_rotate.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\render\software\SDL_triangle.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\SDL.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\SDL_assert.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\SDL_error.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\SDL_guid.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\SDL_hints.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\SDL_log.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\locale\SDL_locale.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\locale\winrt\SDL_syslocale.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\stdlib\SDL_crc16.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\stdlib\SDL_crc32.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\stdlib\SDL_getenv.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\stdlib\SDL_iconv.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\stdlib\SDL_malloc.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\stdlib\SDL_qsort.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\stdlib\SDL_stdlib.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\stdlib\SDL_string.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\stdlib\SDL_strtokr.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\thread\generic\SDL_syssem.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\thread\SDL_thread.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\thread\stdcpp\SDL_syscond.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\thread\stdcpp\SDL_sysmutex.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\thread\stdcpp\SDL_systhread.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\timer\SDL_timer.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\timer\windows\SDL_systimer.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\dummy\SDL_nullevents.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\dummy\SDL_nullframebuffer.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\dummy\SDL_nullvideo.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\SDL_blit.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\SDL_blit_0.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\SDL_blit_1.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\SDL_blit_A.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\SDL_blit_auto.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\SDL_blit_copy.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\SDL_blit_N.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\SDL_blit_slow.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\SDL_bmp.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\SDL_clipboard.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\SDL_egl.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\SDL_fillrect.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\SDL_pixels.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\SDL_rect.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\SDL_RLEaccel.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\SDL_shape.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\SDL_stretch.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\SDL_surface.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\SDL_video.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\winrt\SDL_winrtevents.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\winrt\SDL_winrtkeyboard.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\winrt\SDL_winrtmessagebox.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\winrt\SDL_winrtmouse.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\winrt\SDL_winrtopengles.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\winrt\SDL_winrtpointerinput.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\winrt\SDL_winrtvideo.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\audio\wasapi\SDL_wasapi.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\winrt\SDL_winrtgamebar.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\SDL_dataqueue.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\SDL_list.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\SDL_utils.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\haptic\windows\SDL_dinputhaptic.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\haptic\windows\SDL_windowshaptic.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\haptic\windows\SDL_xinputhaptic.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\SDL_yuv.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\video\yuv2rgb\yuv_rgb.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\render\direct3d11\SDL_shaders_d3d11.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\sensor\SDL_sensor.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\sensor\dummy\SDL_dummysensor.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\events\SDL_displayevents.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\misc\winrt\SDL_sysurl.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\misc\SDL_url.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClInclude Include="..\src\joystick\controller_type.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\src\joystick\windows\SDL_windows_gaming_input.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\src\joystick\controller_type.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-  </ItemGroup>
-</Project>

+ 3 - 3
VisualC/SDL.sln

@@ -2,9 +2,9 @@ Microsoft Visual Studio Solution File, Format Version 11.00
 # Visual Studio 2010
 # Visual Studio 2010
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{D69D5741-611F-4E14-8541-1FEE94F50B5A}"
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{D69D5741-611F-4E14-8541-1FEE94F50B5A}"
 EndProject
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "SDL\SDL.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL3", "SDL\SDL.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}"
 EndProject
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2main", "SDLmain\SDLmain.vcxproj", "{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL3main", "SDLmain\SDLmain.vcxproj", "{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}"
 EndProject
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "checkkeys", "tests\checkkeys\checkkeys.vcxproj", "{26828762-C95D-4637-9CB1-7F0979523813}"
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "checkkeys", "tests\checkkeys\checkkeys.vcxproj", "{26828762-C95D-4637-9CB1-7F0979523813}"
 EndProject
 EndProject
@@ -40,7 +40,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testshape", "tests\testshap
 EndProject
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsprite2", "tests\testsprite2\testsprite2.vcxproj", "{40FB7794-D3C3-4CFE-BCF4-A80C96635682}"
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsprite2", "tests\testsprite2\testsprite2.vcxproj", "{40FB7794-D3C3-4CFE-BCF4-A80C96635682}"
 EndProject
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2test", "SDLtest\SDLtest.vcxproj", "{DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL3test", "SDLtest\SDLtest.vcxproj", "{DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}"
 EndProject
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgamecontroller", "tests\testgamecontroller\testgamecontroller.vcxproj", "{55812185-D13C-4022-9C81-32E0F4A08305}"
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgamecontroller", "tests\testgamecontroller\testgamecontroller.vcxproj", "{55812185-D13C-4022-9C81-32E0F4A08305}"
 EndProject
 EndProject

+ 3 - 5
VisualC/SDL/SDL.vcxproj

@@ -19,7 +19,7 @@
     </ProjectConfiguration>
     </ProjectConfiguration>
   </ItemGroup>
   </ItemGroup>
   <PropertyGroup Label="Globals">
   <PropertyGroup Label="Globals">
-    <ProjectName>SDL2</ProjectName>
+    <ProjectName>SDL3</ProjectName>
     <ProjectGuid>{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}</ProjectGuid>
     <ProjectGuid>{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}</ProjectGuid>
     <RootNamespace>SDL</RootNamespace>
     <RootNamespace>SDL</RootNamespace>
     <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
     <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
@@ -302,7 +302,6 @@
     <ClInclude Include="..\..\src\audio\SDL_sysaudio.h" />
     <ClInclude Include="..\..\src\audio\SDL_sysaudio.h" />
     <ClInclude Include="..\..\src\audio\SDL_wave.h" />
     <ClInclude Include="..\..\src\audio\SDL_wave.h" />
     <ClInclude Include="..\..\src\audio\wasapi\SDL_wasapi.h" />
     <ClInclude Include="..\..\src\audio\wasapi\SDL_wasapi.h" />
-    <ClInclude Include="..\..\src\audio\winmm\SDL_winmm.h" />
     <ClInclude Include="..\..\src\core\windows\SDL_directx.h" />
     <ClInclude Include="..\..\src\core\windows\SDL_directx.h" />
     <ClInclude Include="..\..\src\core\windows\SDL_hid.h" />
     <ClInclude Include="..\..\src\core\windows\SDL_hid.h" />
     <ClInclude Include="..\..\src\core\windows\SDL_immdevice.h" />
     <ClInclude Include="..\..\src\core\windows\SDL_immdevice.h" />
@@ -432,7 +431,6 @@
     <ClInclude Include="..\..\src\video\windows\SDL_windowsopengl.h" />
     <ClInclude Include="..\..\src\video\windows\SDL_windowsopengl.h" />
     <ClInclude Include="..\..\src\video\windows\SDL_windowsopengles.h" />
     <ClInclude Include="..\..\src\video\windows\SDL_windowsopengles.h" />
     <ClInclude Include="..\..\src\video\windows\SDL_windowsshape.h" />
     <ClInclude Include="..\..\src\video\windows\SDL_windowsshape.h" />
-    <ClInclude Include="..\..\src\video\windows\SDL_windowstaskdialog.h" />
     <ClInclude Include="..\..\src\video\windows\SDL_windowsvideo.h" />
     <ClInclude Include="..\..\src\video\windows\SDL_windowsvideo.h" />
     <ClInclude Include="..\..\src\video\windows\SDL_windowsvulkan.h" />
     <ClInclude Include="..\..\src\video\windows\SDL_windowsvulkan.h" />
     <ClInclude Include="..\..\src\video\windows\SDL_windowswindow.h" />
     <ClInclude Include="..\..\src\video\windows\SDL_windowswindow.h" />
@@ -453,9 +451,7 @@
     <ClCompile Include="..\..\src\audio\SDL_audiotypecvt.c" />
     <ClCompile Include="..\..\src\audio\SDL_audiotypecvt.c" />
     <ClCompile Include="..\..\src\audio\SDL_mixer.c" />
     <ClCompile Include="..\..\src\audio\SDL_mixer.c" />
     <ClCompile Include="..\..\src\audio\SDL_wave.c" />
     <ClCompile Include="..\..\src\audio\SDL_wave.c" />
-    <ClCompile Include="..\..\src\audio\winmm\SDL_winmm.c" />
     <ClCompile Include="..\..\src\audio\wasapi\SDL_wasapi.c" />
     <ClCompile Include="..\..\src\audio\wasapi\SDL_wasapi.c" />
-    <ClCompile Include="..\..\src\audio\wasapi\SDL_wasapi_win32.c" />
     <ClCompile Include="..\..\src\core\windows\SDL_hid.c" />
     <ClCompile Include="..\..\src\core\windows\SDL_hid.c" />
     <ClCompile Include="..\..\src\core\windows\SDL_immdevice.c" />
     <ClCompile Include="..\..\src\core\windows\SDL_immdevice.c" />
     <ClCompile Include="..\..\src\core\windows\SDL_windows.c" />
     <ClCompile Include="..\..\src\core\windows\SDL_windows.c" />
@@ -492,7 +488,9 @@
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_rumble.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_rumble.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_shield.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_shield.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_stadia.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_stadia.c" />
+    <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_steam.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_switch.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_switch.c" />
+    <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_wii.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_xbox360.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_xbox360.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_xbox360w.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_xbox360w.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_xboxone.c" />
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_xboxone.c" />

+ 8 - 18
VisualC/SDL/SDL.vcxproj.filters

@@ -76,9 +76,6 @@
     <Filter Include="audio\dummy">
     <Filter Include="audio\dummy">
       <UniqueIdentifier>{4c8ad943-c2fb-4014-9ca3-041e0ad08426}</UniqueIdentifier>
       <UniqueIdentifier>{4c8ad943-c2fb-4014-9ca3-041e0ad08426}</UniqueIdentifier>
     </Filter>
     </Filter>
-    <Filter Include="audio\winmm">
-      <UniqueIdentifier>{e90fa293-2828-4927-8113-35bf561024a9}</UniqueIdentifier>
-    </Filter>
     <Filter Include="audio\wasapi">
     <Filter Include="audio\wasapi">
       <UniqueIdentifier>{3d68ae70-a9ff-46cf-be69-069f0b02aca0}</UniqueIdentifier>
       <UniqueIdentifier>{3d68ae70-a9ff-46cf-be69-069f0b02aca0}</UniqueIdentifier>
     </Filter>
     </Filter>
@@ -495,9 +492,6 @@
     <ClInclude Include="..\..\src\haptic\SDL_haptic_c.h">
     <ClInclude Include="..\..\src\haptic\SDL_haptic_c.h">
       <Filter>haptic</Filter>
       <Filter>haptic</Filter>
     </ClInclude>
     </ClInclude>
-    <ClInclude Include="..\..\src\hidapi\SDL_hidapi.h">
-      <Filter>hidapi</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\src\joystick\SDL_gamecontrollerdb.h">
     <ClInclude Include="..\..\src\joystick\SDL_gamecontrollerdb.h">
       <Filter>joystick</Filter>
       <Filter>joystick</Filter>
     </ClInclude>
     </ClInclude>
@@ -537,9 +531,6 @@
     <ClInclude Include="..\..\src\audio\dummy\SDL_dummyaudio.h">
     <ClInclude Include="..\..\src\audio\dummy\SDL_dummyaudio.h">
       <Filter>audio\dummy</Filter>
       <Filter>audio\dummy</Filter>
     </ClInclude>
     </ClInclude>
-    <ClInclude Include="..\..\src\audio\winmm\SDL_winmm.h">
-      <Filter>audio\winmm</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\src\audio\wasapi\SDL_wasapi.h">
     <ClInclude Include="..\..\src\audio\wasapi\SDL_wasapi.h">
       <Filter>audio\wasapi</Filter>
       <Filter>audio\wasapi</Filter>
     </ClInclude>
     </ClInclude>
@@ -675,9 +666,6 @@
     <ClInclude Include="..\..\src\video\windows\SDL_windowsopengles.h">
     <ClInclude Include="..\..\src\video\windows\SDL_windowsopengles.h">
       <Filter>video\windows</Filter>
       <Filter>video\windows</Filter>
     </ClInclude>
     </ClInclude>
-    <ClInclude Include="..\..\src\video\windows\SDL_windowstaskdialog.h">
-      <Filter>video\windows</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\src\timer\SDL_timer_c.h">
     <ClInclude Include="..\..\src\timer\SDL_timer_c.h">
       <Filter>timer</Filter>
       <Filter>timer</Filter>
     </ClInclude>
     </ClInclude>
@@ -835,6 +823,7 @@
     <ClInclude Include="..\..\src\render\direct3d12\SDL_shaders_d3d12.h">
     <ClInclude Include="..\..\src\render\direct3d12\SDL_shaders_d3d12.h">
       <Filter>render\direct3d12</Filter>
       <Filter>render\direct3d12</Filter>
     </ClInclude>
     </ClInclude>
+    <ClInclude Include="..\..\src\hidapi\SDL_hidapi_c.h" />
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\src\audio\wasapi\SDL_wasapi.c" />
     <ClCompile Include="..\..\src\audio\wasapi\SDL_wasapi.c" />
@@ -1023,12 +1012,6 @@
     <ClCompile Include="..\..\src\audio\dummy\SDL_dummyaudio.c">
     <ClCompile Include="..\..\src\audio\dummy\SDL_dummyaudio.c">
       <Filter>audio\dummy</Filter>
       <Filter>audio\dummy</Filter>
     </ClCompile>
     </ClCompile>
-    <ClCompile Include="..\..\src\audio\winmm\SDL_winmm.c">
-      <Filter>audio\winmm</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\audio\wasapi\SDL_wasapi_win32.c">
-      <Filter>audio\wasapi</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\src\audio\wasapi\SDL_wasapi.c">
     <ClCompile Include="..\..\src\audio\wasapi\SDL_wasapi.c">
       <Filter>audio\wasapi</Filter>
       <Filter>audio\wasapi</Filter>
     </ClCompile>
     </ClCompile>
@@ -1074,9 +1057,15 @@
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_stadia.c">
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_stadia.c">
       <Filter>joystick\hidapi</Filter>
       <Filter>joystick\hidapi</Filter>
     </ClCompile>
     </ClCompile>
+    <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_steam.c">
+      <Filter>joystick\hidapi</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_switch.c">
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_switch.c">
       <Filter>joystick\hidapi</Filter>
       <Filter>joystick\hidapi</Filter>
     </ClCompile>
     </ClCompile>
+    <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_wii.c">
+      <Filter>joystick\hidapi</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_xbox360.c">
     <ClCompile Include="..\..\src\joystick\hidapi\SDL_hidapi_xbox360.c">
       <Filter>joystick\hidapi</Filter>
       <Filter>joystick\hidapi</Filter>
     </ClCompile>
     </ClCompile>
@@ -1354,6 +1343,7 @@
     <ClCompile Include="..\..\src\render\direct3d12\SDL_shaders_d3d12.c">
     <ClCompile Include="..\..\src\render\direct3d12\SDL_shaders_d3d12.c">
       <Filter>render\direct3d12</Filter>
       <Filter>render\direct3d12</Filter>
     </ClCompile>
     </ClCompile>
+    <ClCompile Include="..\..\src\stdlib\SDL_mslibc.c" />
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="..\..\src\main\windows\version.rc" />
     <ResourceCompile Include="..\..\src\main\windows\version.rc" />

+ 1 - 1
VisualC/SDLmain/SDLmain.vcxproj

@@ -19,7 +19,7 @@
     </ProjectConfiguration>
     </ProjectConfiguration>
   </ItemGroup>
   </ItemGroup>
   <PropertyGroup Label="Globals">
   <PropertyGroup Label="Globals">
-    <ProjectName>SDL2main</ProjectName>
+    <ProjectName>SDL3main</ProjectName>
     <ProjectGuid>{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}</ProjectGuid>
     <ProjectGuid>{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}</ProjectGuid>
     <RootNamespace>SDLmain</RootNamespace>
     <RootNamespace>SDLmain</RootNamespace>
     <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
     <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>

+ 1 - 1
VisualC/SDLtest/SDLtest.vcxproj

@@ -19,7 +19,7 @@
     </ProjectConfiguration>
     </ProjectConfiguration>
   </ItemGroup>
   </ItemGroup>
   <PropertyGroup Label="Globals">
   <PropertyGroup Label="Globals">
-    <ProjectName>SDL2test</ProjectName>
+    <ProjectName>SDL3test</ProjectName>
     <ProjectGuid>{DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}</ProjectGuid>
     <ProjectGuid>{DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}</ProjectGuid>
     <RootNamespace>SDLtest</RootNamespace>
     <RootNamespace>SDLtest</RootNamespace>
     <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
     <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>

+ 0 - 111
VisualC/pkg-support/cmake/sdl2-config.cmake

@@ -1,111 +0,0 @@
-# SDL2 CMake configuration file:
-# This file is meant to be placed in a cmake subfolder of SDL2-devel-2.x.y-VC
-
-cmake_minimum_required(VERSION 3.0)
-
-include(FeatureSummary)
-set_package_properties(SDL2 PROPERTIES
-    URL "https://www.libsdl.org/"
-    DESCRIPTION "low level access to audio, keyboard, mouse, joystick, and graphics hardware"
-)
-
-# Copied from `configure_package_config_file`
-macro(set_and_check _var _file)
-    set(${_var} "${_file}")
-    if(NOT EXISTS "${_file}")
-        message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !")
-    endif()
-endmacro()
-
-# Copied from `configure_package_config_file`
-macro(check_required_components _NAME)
-    foreach(comp ${${_NAME}_FIND_COMPONENTS})
-        if(NOT ${_NAME}_${comp}_FOUND)
-            if(${_NAME}_FIND_REQUIRED_${comp})
-                set(${_NAME}_FOUND FALSE)
-            endif()
-        endif()
-    endforeach()
-endmacro()
-
-set(SDL2_FOUND TRUE)
-
-if(CMAKE_SIZEOF_VOID_P STREQUAL "4")
-    set(_sdl_arch_subdir "x86")
-elseif(CMAKE_SIZEOF_VOID_P STREQUAL "8")
-    set(_sdl_arch_subdir "x64")
-else()
-    set(SDL2_FOUND FALSE)
-    return()
-endif()
-
-# For compatibility with autotools sdl2-config.cmake, provide SDL2_* variables.
-
-set_and_check(SDL2_PREFIX       "${CMAKE_CURRENT_LIST_DIR}/..")
-set_and_check(SDL2_EXEC_PREFIX  "${CMAKE_CURRENT_LIST_DIR}/..")
-set_and_check(SDL2_INCLUDE_DIR  "${SDL2_PREFIX}/include")
-set(SDL2_INCLUDE_DIRS           "${SDL2_INCLUDE_DIR}")
-set_and_check(SDL2_BINDIR       "${SDL2_PREFIX}/lib/${_sdl_arch_subdir}")
-set_and_check(SDL2_LIBDIR       "${SDL2_PREFIX}/lib/${_sdl_arch_subdir}")
-
-set(SDL2_LIBRARIES      SDL2::SDL2main SDL2::SDL2)
-set(SDL2MAIN_LIBRARY    SDL2::SDL2main)
-set(SDL2TEST_LIBRARY    SDL2::SDL2test)
-
-
-# All targets are created, even when some might not be requested though COMPONENTS.
-# This is done for compatibility with CMake generated SDL2-target.cmake files.
-
-set(_sdl2_library     "${SDL2_LIBDIR}/SDL2.lib")
-set(_sdl2_dll_library "${SDL2_BINDIR}/SDL2.dll")
-if(EXISTS "${_sdl2_library}" AND EXISTS "${_sdl2_dll_library}")
-    if(NOT TARGET SDL2::SDL2)
-        add_library(SDL2::SDL2 SHARED IMPORTED)
-        set_target_properties(SDL2::SDL2
-            PROPERTIES
-                INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIRS}"
-                IMPORTED_IMPLIB "${_sdl2_library}"
-                IMPORTED_LOCATION "${_sdl2_dll_library}"
-                COMPATIBLE_INTERFACE_BOOL "SDL2_SHARED"
-                INTERFACE_SDL2_SHARED "ON"
-        )
-    endif()
-    set(SDL2_SDL2_FOUND TRUE)
-else()
-    set(SDL2_SDL2_FOUND FALSE)
-endif()
-unset(_sdl2_library)
-unset(_sdl2_dll_library)
-
-set(_sdl2main_library "${SDL2_LIBDIR}/SDL2main.lib")
-if(EXISTS "${_sdl2main_library}")
-    if(NOT TARGET SDL2::SDL2main)
-        add_library(SDL2::SDL2main STATIC IMPORTED)
-        set_target_properties(SDL2::SDL2main
-        PROPERTIES
-            IMPORTED_LOCATION "${_sdl2main_library}"
-        )
-    endif()
-    set(SDL2_SDL2main_FOUND TRUE)
-else()
-    set(SDL2_SDL2_FOUND FALSE)
-endif()
-unset(_sdl2main_library)
-
-set(_sdl2test_library "${SDL2_LIBDIR}/SDL2test.lib")
-if(EXISTS "${_sdl2test_library}")
-    if(NOT TARGET SDL2::SDL2test)
-        add_library(SDL2::SDL2test STATIC IMPORTED)
-        set_target_properties(SDL2::SDL2test
-            PROPERTIES
-                INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIRS}"
-                IMPORTED_LOCATION "${_sdl2test_library}"
-        )
-    endif()
-    set(SDL2_SDL2test_FOUND TRUE)
-else()
-    set(SDL2_SDL2_FOUND FALSE)
-endif()
-unset(_sdl2test_library)
-
-check_required_components(SDL2)

+ 3 - 3
VisualC/pkg-support/cmake/sdl2-config-version.cmake → VisualC/pkg-support/cmake/sdl3-config-version.cmake

@@ -1,10 +1,10 @@
 # based on the files generated by CMake's write_basic_package_version_file
 # based on the files generated by CMake's write_basic_package_version_file
 
 
-# SDL2 CMake version configuration file:
-# This file is meant to be placed in a cmake subfolder of SDL2-devel-2.x.y-VC
+# SDL CMake version configuration file:
+# This file is meant to be placed in a cmake subfolder of SDL3-devel-3.x.y-VC
 
 
 if(NOT EXISTS "${CMAKE_CURRENT_LIST_DIR}/../include/SDL_version.h")
 if(NOT EXISTS "${CMAKE_CURRENT_LIST_DIR}/../include/SDL_version.h")
-    message(AUTHOR_WARNING "Could not find SDL_version.h. This script is meant to be placed in the root of SDL2-devel-2.x.y-VC")
+    message(AUTHOR_WARNING "Could not find SDL_version.h. This script is meant to be placed in the root of SDL3-devel-3.x.y-VC")
     return()
     return()
 endif()
 endif()
 
 

+ 111 - 0
VisualC/pkg-support/cmake/sdl3-config.cmake

@@ -0,0 +1,111 @@
+# SDL CMake configuration file:
+# This file is meant to be placed in a cmake subfolder of SDL3-devel-3.x.y-VC
+
+cmake_minimum_required(VERSION 3.0)
+
+include(FeatureSummary)
+set_package_properties(SDL3 PROPERTIES
+    URL "https://www.libsdl.org/"
+    DESCRIPTION "low level access to audio, keyboard, mouse, joystick, and graphics hardware"
+)
+
+# Copied from `configure_package_config_file`
+macro(set_and_check _var _file)
+    set(${_var} "${_file}")
+    if(NOT EXISTS "${_file}")
+        message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !")
+    endif()
+endmacro()
+
+# Copied from `configure_package_config_file`
+macro(check_required_components _NAME)
+    foreach(comp ${${_NAME}_FIND_COMPONENTS})
+        if(NOT ${_NAME}_${comp}_FOUND)
+            if(${_NAME}_FIND_REQUIRED_${comp})
+                set(${_NAME}_FOUND FALSE)
+            endif()
+        endif()
+    endforeach()
+endmacro()
+
+set(SDL3_FOUND TRUE)
+
+if(CMAKE_SIZEOF_VOID_P STREQUAL "4")
+    set(_sdl_arch_subdir "x86")
+elseif(CMAKE_SIZEOF_VOID_P STREQUAL "8")
+    set(_sdl_arch_subdir "x64")
+else()
+    set(SDL3_FOUND FALSE)
+    return()
+endif()
+
+# For compatibility with autotools sdl3-config.cmake, provide SDL3_* variables.
+
+set_and_check(SDL3_PREFIX       "${CMAKE_CURRENT_LIST_DIR}/..")
+set_and_check(SDL3_EXEC_PREFIX  "${CMAKE_CURRENT_LIST_DIR}/..")
+set_and_check(SDL3_INCLUDE_DIR  "${SDL3_PREFIX}/include")
+set(SDL3_INCLUDE_DIRS           "${SDL3_INCLUDE_DIR}")
+set_and_check(SDL3_BINDIR       "${SDL3_PREFIX}/lib/${_sdl_arch_subdir}")
+set_and_check(SDL3_LIBDIR       "${SDL3_PREFIX}/lib/${_sdl_arch_subdir}")
+
+set(SDL3_LIBRARIES      SDL3::SDL3main SDL3::SDL3)
+set(SDL3MAIN_LIBRARY    SDL3::SDL3main)
+set(SDL3TEST_LIBRARY    SDL3::SDL3test)
+
+
+# All targets are created, even when some might not be requested though COMPONENTS.
+# This is done for compatibility with CMake generated SDL3-target.cmake files.
+
+set(_sdl3_library     "${SDL3_LIBDIR}/SDL3.lib")
+set(_sdl3_dll_library "${SDL3_BINDIR}/SDL3.dll")
+if(EXISTS "${_sdl3_library}" AND EXISTS "${_sdl3_dll_library}")
+    if(NOT TARGET SDL3::SDL3)
+        add_library(SDL3::SDL3 SHARED IMPORTED)
+        set_target_properties(SDL3::SDL3
+            PROPERTIES
+                INTERFACE_INCLUDE_DIRECTORIES "${SDL3_INCLUDE_DIRS}"
+                IMPORTED_IMPLIB "${_sdl3_library}"
+                IMPORTED_LOCATION "${_sdl3_dll_library}"
+                COMPATIBLE_INTERFACE_BOOL "SDL3_SHARED"
+                INTERFACE_SDL3_SHARED "ON"
+        )
+    endif()
+    set(SDL3_SDL3_FOUND TRUE)
+else()
+    set(SDL3_SDL3_FOUND FALSE)
+endif()
+unset(_sdl3_library)
+unset(_sdl3_dll_library)
+
+set(_sdl3main_library "${SDL3_LIBDIR}/SDL3main.lib")
+if(EXISTS "${_sdl3main_library}")
+    if(NOT TARGET SDL3::SDL3main)
+        add_library(SDL3::SDL3main STATIC IMPORTED)
+        set_target_properties(SDL3::SDL3main
+        PROPERTIES
+            IMPORTED_LOCATION "${_sdl3main_library}"
+        )
+    endif()
+    set(SDL3_SDL3main_FOUND TRUE)
+else()
+    set(SDL3_SDL3_FOUND FALSE)
+endif()
+unset(_sdl3main_library)
+
+set(_sdl3test_library "${SDL3_LIBDIR}/SDL3test.lib")
+if(EXISTS "${_sdl3test_library}")
+    if(NOT TARGET SDL3::SDL3test)
+        add_library(SDL3::SDL3test STATIC IMPORTED)
+        set_target_properties(SDL3::SDL3test
+            PROPERTIES
+                INTERFACE_INCLUDE_DIRECTORIES "${SDL3_INCLUDE_DIRS}"
+                IMPORTED_LOCATION "${_sdl3test_library}"
+        )
+    endif()
+    set(SDL3_SDL3test_FOUND TRUE)
+else()
+    set(SDL3_SDL3_FOUND FALSE)
+endif()
+unset(_sdl3test_library)
+
+check_required_components(SDL3)

+ 0 - 217
VisualC/visualtest/unittest/testquit/testquit_VS2012.vcxproj

@@ -1,217 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|x64">
-      <Configuration>Debug</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
-      <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectName>testquit</ProjectName>
-    <RootNamespace>testquit</RootNamespace>
-    <ProjectGuid>{1D12C737-7C71-45CE-AE2C-AAB47B690BC8}</ProjectGuid>
-    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseOfMfc>false</UseOfMfc>
-    <PlatformToolset Condition="'$(VisualStudioVersion)' != '10.0'">$(DefaultPlatformToolset)</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseOfMfc>false</UseOfMfc>
-    <CharacterSet>MultiByte</CharacterSet>
-    <PlatformToolset Condition="'$(VisualStudioVersion)' != '10.0'">$(DefaultPlatformToolset)</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseOfMfc>false</UseOfMfc>
-    <PlatformToolset Condition="'$(VisualStudioVersion)' != '10.0'">$(DefaultPlatformToolset)</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseOfMfc>false</UseOfMfc>
-    <PlatformToolset Condition="'$(VisualStudioVersion)' != '10.0'">$(DefaultPlatformToolset)</PlatformToolset>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup>
-    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)\$(Platform)\$(Configuration)\</OutDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)\$(Platform)\$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</IntDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)\$(Platform)\$(Configuration)\</OutDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)\$(Platform)\$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\</IntDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <Midl>
-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <MkTypLibCompatible>true</MkTypLibCompatible>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-      <TargetEnvironment>Win32</TargetEnvironment>
-    </Midl>
-    <ClCompile>
-      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
-      <AdditionalIncludeDirectories>..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <StringPooling>true</StringPooling>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-      <CompileAs>Default</CompileAs>
-    </ClCompile>
-    <ResourceCompile>
-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <Culture>0x0409</Culture>
-    </ResourceCompile>
-    <Link>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-      <SubSystem>Windows</SubSystem>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <Midl>
-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <MkTypLibCompatible>true</MkTypLibCompatible>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-    </Midl>
-    <ClCompile>
-      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
-      <AdditionalIncludeDirectories>..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <StringPooling>true</StringPooling>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-      <CompileAs>Default</CompileAs>
-    </ClCompile>
-    <ResourceCompile>
-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <Culture>0x0409</Culture>
-    </ResourceCompile>
-    <Link>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-      <SubSystem>Windows</SubSystem>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <Midl>
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <MkTypLibCompatible>true</MkTypLibCompatible>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-      <TargetEnvironment>Win32</TargetEnvironment>
-    </Midl>
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
-      <CompileAs>Default</CompileAs>
-    </ClCompile>
-    <ResourceCompile>
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <Culture>0x0409</Culture>
-    </ResourceCompile>
-    <Link>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <SubSystem>Windows</SubSystem>
-      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <Midl>
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <MkTypLibCompatible>true</MkTypLibCompatible>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-    </Midl>
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-      <CompileAs>Default</CompileAs>
-    </ClCompile>
-    <ResourceCompile>
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <Culture>0x0409</Culture>
-    </ResourceCompile>
-    <Link>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <SubSystem>Windows</SubSystem>
-      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\..\..\visualtest\unittest\testquit.c" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\..\SDLmain\SDLmain.vcxproj">
-      <Project>{da956fd3-e142-46f2-9dd5-c78bebb56b7a}</Project>
-    </ProjectReference>
-    <ProjectReference Include="..\..\..\SDLtest\SDLtest.vcxproj">
-      <Project>{da956fd3-e143-46f2-9fe5-c77bebc56b1a}</Project>
-    </ProjectReference>
-    <ProjectReference Include="..\..\..\SDL\SDL.vcxproj">
-      <Project>{81ce8daf-ebb2-4761-8e45-b71abcca8c68}</Project>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>

+ 0 - 308
VisualC/visualtest/visualtest_VS2012.vcxproj

@@ -1,308 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|x64">
-      <Configuration>Debug</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
-      <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectName>visualtest</ProjectName>
-    <RootNamespace>visualtest</RootNamespace>
-    <ProjectGuid>{13DDF23A-4A8F-4AF9-9734-CC09D9157924}</ProjectGuid>
-    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseOfMfc>false</UseOfMfc>
-    <PlatformToolset Condition="'$(VisualStudioVersion)' != '10.0'">$(DefaultPlatformToolset)</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseOfMfc>false</UseOfMfc>
-    <CharacterSet>MultiByte</CharacterSet>
-    <PlatformToolset Condition="'$(VisualStudioVersion)' != '10.0'">$(DefaultPlatformToolset)</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseOfMfc>false</UseOfMfc>
-    <PlatformToolset Condition="'$(VisualStudioVersion)' != '10.0'">$(DefaultPlatformToolset)</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseOfMfc>false</UseOfMfc>
-    <PlatformToolset Condition="'$(VisualStudioVersion)' != '10.0'">$(DefaultPlatformToolset)</PlatformToolset>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup>
-    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)\$(Platform)\$(Configuration)\</OutDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)\$(Platform)\$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</IntDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)\$(Platform)\$(Configuration)\</OutDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)\$(Platform)\$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\</IntDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <TargetName>testharness</TargetName>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <Midl>
-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <MkTypLibCompatible>true</MkTypLibCompatible>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-      <TargetEnvironment>Win32</TargetEnvironment>
-    </Midl>
-    <ClCompile>
-      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
-      <AdditionalIncludeDirectories>..\..\include;..\..\visualtest\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <StringPooling>true</StringPooling>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-      <CompileAs>Default</CompileAs>
-    </ClCompile>
-    <ResourceCompile>
-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <Culture>0x0409</Culture>
-    </ResourceCompile>
-    <Link>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-      <SubSystem>Windows</SubSystem>
-      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
-    <PostBuildEvent>
-      <Command>copy "$(SolutionDir)..\test\icon.bmp" "$(ProjectDir)icon.bmp"
-copy "$(SolutionDir)\$(Platform)\$(Configuration)\testsprite2.exe" "$(ProjectDir)"
-copy "$(SolutionDir)\$(Platform)\$(Configuration)\testquit.exe" "$(ProjectDir)"
-copy /y "$(SolutionDir)..\visualtest\*.config" "$(ProjectDir)"
-copy /y "$(SolutionDir)..\visualtest\*.parameters" "$(ProjectDir)"
-copy /y "$(SolutionDir)..\visualtest\*.actions" "$(ProjectDir)"
-copy /y "$(SolutionDir)..\visualtest\unittest\*.config" "$(ProjectDir)"
-copy /y "$(SolutionDir)..\visualtest\unittest\*.parameters" "$(ProjectDir)"
-copy /y "$(SolutionDir)..\visualtest\unittest\*.actions" "$(ProjectDir)"</Command>
-    </PostBuildEvent>
-    <PostBuildEvent>
-      <Message>Copy data files</Message>
-    </PostBuildEvent>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <Midl>
-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <MkTypLibCompatible>true</MkTypLibCompatible>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-    </Midl>
-    <ClCompile>
-      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
-      <AdditionalIncludeDirectories>..\..\include;..\..\visualtest\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <StringPooling>true</StringPooling>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-      <CompileAs>Default</CompileAs>
-    </ClCompile>
-    <ResourceCompile>
-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <Culture>0x0409</Culture>
-    </ResourceCompile>
-    <Link>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-      <SubSystem>Windows</SubSystem>
-      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
-    <PostBuildEvent>
-      <Command>copy "$(SolutionDir)..\test\icon.bmp" "$(ProjectDir)icon.bmp"
-copy "$(SolutionDir)\$(Platform)\$(Configuration)\testsprite2.exe" "$(ProjectDir)"
-copy "$(SolutionDir)\$(Platform)\$(Configuration)\testquit.exe" "$(ProjectDir)"
-copy /y "$(SolutionDir)..\visualtest\*.config" "$(ProjectDir)"
-copy /y "$(SolutionDir)..\visualtest\*.parameters" "$(ProjectDir)"
-copy /y "$(SolutionDir)..\visualtest\*.actions" "$(ProjectDir)"
-copy /y "$(SolutionDir)..\visualtest\unittest\*.config" "$(ProjectDir)"
-copy /y "$(SolutionDir)..\visualtest\unittest\*.parameters" "$(ProjectDir)"
-copy /y "$(SolutionDir)..\visualtest\unittest\*.actions" "$(ProjectDir)"</Command>
-    </PostBuildEvent>
-    <PostBuildEvent>
-      <Message>Copy data files</Message>
-    </PostBuildEvent>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <Midl>
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <MkTypLibCompatible>true</MkTypLibCompatible>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-      <TargetEnvironment>Win32</TargetEnvironment>
-    </Midl>
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\..\include;..\..\visualtest\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
-      <CompileAs>Default</CompileAs>
-      <DisableLanguageExtensions>false</DisableLanguageExtensions>
-    </ClCompile>
-    <ResourceCompile>
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <Culture>0x0409</Culture>
-    </ResourceCompile>
-    <Link>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <SubSystem>Windows</SubSystem>
-      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
-    </Link>
-    <PostBuildEvent>
-      <Command>copy "$(SolutionDir)..\test\icon.bmp" "$(ProjectDir)icon.bmp"
-copy "$(SolutionDir)\$(Platform)\$(Configuration)\testsprite2.exe" "$(ProjectDir)"
-copy "$(SolutionDir)\$(Platform)\$(Configuration)\testquit.exe" "$(ProjectDir)"
-copy /y "$(SolutionDir)..\visualtest\*.config" "$(ProjectDir)"
-copy /y "$(SolutionDir)..\visualtest\*.parameters" "$(ProjectDir)"
-copy /y "$(SolutionDir)..\visualtest\*.actions" "$(ProjectDir)"
-copy /y "$(SolutionDir)..\visualtest\unittest\*.config" "$(ProjectDir)"
-copy /y "$(SolutionDir)..\visualtest\unittest\*.parameters" "$(ProjectDir)"
-copy /y "$(SolutionDir)..\visualtest\unittest\*.actions" "$(ProjectDir)"</Command>
-    </PostBuildEvent>
-    <PostBuildEvent>
-      <Message>Copy data files</Message>
-    </PostBuildEvent>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <Midl>
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <MkTypLibCompatible>true</MkTypLibCompatible>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-    </Midl>
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\..\include;..\..\visualtest\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-      <CompileAs>Default</CompileAs>
-    </ClCompile>
-    <ResourceCompile>
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <Culture>0x0409</Culture>
-    </ResourceCompile>
-    <Link>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <SubSystem>Windows</SubSystem>
-      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
-      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
-    <PostBuildEvent>
-      <Command>copy "$(SolutionDir)..\test\icon.bmp" "$(ProjectDir)icon.bmp"
-copy "$(SolutionDir)\$(Platform)\$(Configuration)\testsprite2.exe" "$(ProjectDir)"
-copy "$(SolutionDir)\$(Platform)\$(Configuration)\testquit.exe" "$(ProjectDir)"
-copy /y "$(SolutionDir)..\visualtest\*.config" "$(ProjectDir)"
-copy /y "$(SolutionDir)..\visualtest\*.parameters" "$(ProjectDir)"
-copy /y "$(SolutionDir)..\visualtest\*.actions" "$(ProjectDir)"
-copy /y "$(SolutionDir)..\visualtest\unittest\*.config" "$(ProjectDir)"
-copy /y "$(SolutionDir)..\visualtest\unittest\*.parameters" "$(ProjectDir)"
-copy /y "$(SolutionDir)..\visualtest\unittest\*.actions" "$(ProjectDir)"</Command>
-    </PostBuildEvent>
-    <PostBuildEvent>
-      <Message>Copy data files</Message>
-    </PostBuildEvent>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\visualtest\include\SDL_visualtest_action_configparser.h" />
-    <ClInclude Include="..\..\visualtest\include\SDL_visualtest_exhaustive_variator.h" />
-    <ClInclude Include="..\..\visualtest\include\SDL_visualtest_harness_argparser.h" />
-    <ClInclude Include="..\..\visualtest\include\SDL_visualtest_mischelper.h" />
-    <ClInclude Include="..\..\visualtest\include\SDL_visualtest_parsehelper.h" />
-    <ClInclude Include="..\..\visualtest\include\SDL_visualtest_process.h" />
-    <ClInclude Include="..\..\visualtest\include\SDL_visualtest_random_variator.h" />
-    <ClInclude Include="..\..\visualtest\include\SDL_visualtest_rwhelper.h" />
-    <ClInclude Include="..\..\visualtest\include\SDL_visualtest_screenshot.h" />
-    <ClInclude Include="..\..\visualtest\include\SDL_visualtest_sut_configparser.h" />
-    <ClInclude Include="..\..\visualtest\include\SDL_visualtest_variators.h" />
-    <ClInclude Include="..\..\visualtest\include\SDL_visualtest_variator_common.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\visualtest\src\action_configparser.c" />
-    <ClCompile Include="..\..\visualtest\src\harness_argparser.c" />
-    <ClCompile Include="..\..\visualtest\src\mischelper.c" />
-    <ClCompile Include="..\..\visualtest\src\parsehelper.c" />
-    <ClCompile Include="..\..\visualtest\src\rwhelper.c" />
-    <ClCompile Include="..\..\visualtest\src\screenshot.c" />
-    <ClCompile Include="..\..\visualtest\src\sut_configparser.c" />
-    <ClCompile Include="..\..\visualtest\src\testharness.c" />
-    <ClCompile Include="..\..\visualtest\src\variators.c" />
-    <ClCompile Include="..\..\visualtest\src\variator_exhaustive.c" />
-    <ClCompile Include="..\..\visualtest\src\variator_common.c" />
-    <ClCompile Include="..\..\visualtest\src\variator_random.c" />
-    <ClCompile Include="..\..\visualtest\src\windows\windows_process.c" />
-    <ClCompile Include="..\..\visualtest\src\windows\windows_screenshot.c" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\SDLmain\SDLmain.vcxproj">
-      <Project>{da956fd3-e142-46f2-9dd5-c78bebb56b7a}</Project>
-    </ProjectReference>
-    <ProjectReference Include="..\SDLtest\SDLtest.vcxproj">
-      <Project>{da956fd3-e143-46f2-9fe5-c77bebc56b1a}</Project>
-    </ProjectReference>
-    <ProjectReference Include="..\SDL\SDL.vcxproj">
-      <Project>{81ce8daf-ebb2-4761-8e45-b71abcca8c68}</Project>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>

+ 41 - 0
WhatsNew.txt

@@ -1,6 +1,47 @@
 
 
 This is a list of major changes in SDL's version history.
 This is a list of major changes in SDL's version history.
 
 
+---------------------------------------------------------------------------
+2.26.0:
+---------------------------------------------------------------------------
+
+General:
+* Updated OpenGL headers to the latest API from The Khronos Group Inc.
+* Added SDL_GetWindowSizeInPixels() to get the window size in pixels, which may differ from the window coordinate size for windows with high-DPI support
+* Added simulated vsync synchronization for the software renderer
+* Added the mouse position to SDL_MouseWheelEvent
+* Added SDL_ResetHints() to reset all hints to their default values
+* Added SDL_GetJoystickGUIDInfo() to get device information encoded in a joystick GUID
+* Added the hint SDL_HINT_JOYSTICK_HIDAPI_XBOX_360 to control whether the HIDAPI driver for XBox 360 controllers should be used
+* Added the hint SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED to control whether the player LEDs should be lit to indicate which player is associated with an Xbox 360 controller
+* Added the hint SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_WIRELESS to control whether the HIDAPI driver for XBox 360 wireless controllers should be used
+* Added the hint SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE to control whether the HIDAPI driver for XBox One controllers should be used
+* Added the hint SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED to control the brightness of the XBox One guide button LED
+* Added support for PS3 controllers to the HIDAPI driver, enabled by default on macOS, controlled by the SDL_HINT_JOYSTICK_HIDAPI_PS3 hint
+* Added support for Nintendo Wii controllers to the HIDAPI driver, not enabled by default, controlled by the SDL_HINT_JOYSTICK_HIDAPI_WII hint
+* Added the hint SDL_HINT_JOYSTICK_HIDAPI_WII_PLAYER_LED to control whether the player LED should be lit on the Nintendo Wii controllers
+* Added the hint SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS to control whether Nintendo Switch Joy-Con controllers will be in vertical mode when using the HIDAPI driver
+* Added access to the individual left and right gyro sensors of the combined Joy-Cons controller
+* Added a microsecond timestamp to SDL_SensorEvent and SDL_ControllerSensorEvent, when the hardware provides that information
+* Added SDL_SensorGetDataWithTimestamp() and SDL_GameControllerGetSensorDataWithTimestamp() to retrieve the last sensor data with the associated microsecond timestamp
+* Added the hint SDL_HINT_HIDAPI_IGNORE_DEVICES to have the SDL HID API ignore specific devices 
+* SDL_GetRevision() now includes more information about the SDL build, including the git commit hash if available
+
+Windows:
+* Added the hint SDL_HINT_MOUSE_RELATIVE_SYSTEM_SCALE to control whether the system mouse acceleration curve is used for relative mouse motion
+
+macOS:
+* Implemented vsync synchronization on macOS 12
+
+Linux:
+* Added SDL_SetPrimarySelectionText(), SDL_GetPrimarySelectionText(), and SDL_HasPrimarySelectionText() to interact with the X11 primary selection clipboard
+* Added the hint SDL_HINT_VIDEO_WAYLAND_EMULATE_MOUSE_WARP to control whether mouse pointer warp emulation is enabled under Wayland
+
+Android:
+* Enabled IME soft keyboard input
+* Added version checking to make sure the SDL Java and C code are compatible
+
+
 ---------------------------------------------------------------------------
 ---------------------------------------------------------------------------
 2.24.0:
 2.24.0:
 ---------------------------------------------------------------------------
 ---------------------------------------------------------------------------

+ 78 - 430
Xcode-iOS/Demos/Demos.xcodeproj/project.pbxproj

@@ -7,47 +7,19 @@
 	objects = {
 	objects = {
 
 
 /* Begin PBXBuildFile section */
 /* Begin PBXBuildFile section */
-		1D3623EC0D0F72F000981E51 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D3623EB0D0F72F000981E51 /* CoreGraphics.framework */; };
-		1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
-		1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
-		F3A497102555EE4800E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A495992555ED0500E92A8B /* libSDL2.a */; };
-		F3A4972F2555EE8A00E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A495992555ED0500E92A8B /* libSDL2.a */; };
-		F3A497392555EEA900E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A497382555EEA900E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A497422555EEBE00E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A495992555ED0500E92A8B /* libSDL2.a */; };
-		F3A497432555EEC400E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A497382555EEA900E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A497442555EECD00E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A495992555ED0500E92A8B /* libSDL2.a */; };
-		F3A497452555EED500E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A497382555EEA900E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A497462555EEDF00E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A4959B2555ED0500E92A8B /* libSDL2.a */; };
-		F3A497482555EEEE00E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A497472555EEEE00E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A497492555EF0B00E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A495992555ED0500E92A8B /* libSDL2.a */; };
-		F3A4974A2555EF1200E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A497382555EEA900E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A4974B2555EF1B00E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A495992555ED0500E92A8B /* libSDL2.a */; };
-		F3A4974C2555EF2000E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A497382555EEA900E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A4974D2555EF9500E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A497382555EEA900E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A4974E2555EF9F00E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A495992555ED0500E92A8B /* libSDL2.a */; };
-		F3A4974F2555EFA400E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A497382555EEA900E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A497592555EFC300E92A8B /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A497582555EFC300E92A8B /* AVFoundation.framework */; };
-		F3A497632555EFCF00E92A8B /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A497622555EFCF00E92A8B /* Metal.framework */; };
-		F3F7590022AC5EC7001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3F758FF22AC5EC7001D97F2 /* Metal.framework */; };
-		F3F7590122AC5F00001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3F758FF22AC5EC7001D97F2 /* Metal.framework */; };
-		F3F7590222AC5F3D001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3F758FF22AC5EC7001D97F2 /* Metal.framework */; };
-		F3F7590322AC5F71001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3F758FF22AC5EC7001D97F2 /* Metal.framework */; };
-		F3F7590422AC5F8D001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3F758FF22AC5EC7001D97F2 /* Metal.framework */; };
-		F3F7590522AC5FB3001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3F758FF22AC5EC7001D97F2 /* Metal.framework */; };
-		F3F7590622AC5FD1001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3F758FF22AC5EC7001D97F2 /* Metal.framework */; };
+		F3A497102555EE4800E92A8B /* libSDL3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A495992555ED0500E92A8B /* libSDL3.a */; };
+		F3A4972F2555EE8A00E92A8B /* libSDL3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A495992555ED0500E92A8B /* libSDL3.a */; };
+		F3A497422555EEBE00E92A8B /* libSDL3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A495992555ED0500E92A8B /* libSDL3.a */; };
+		F3A497442555EECD00E92A8B /* libSDL3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A495992555ED0500E92A8B /* libSDL3.a */; };
+		F3A497462555EEDF00E92A8B /* libSDL3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A4959B2555ED0500E92A8B /* libSDL3.a */; };
+		F3A497492555EF0B00E92A8B /* libSDL3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A495992555ED0500E92A8B /* libSDL3.a */; };
+		F3A4974B2555EF1B00E92A8B /* libSDL3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A495992555ED0500E92A8B /* libSDL3.a */; };
+		F3A4974E2555EF9F00E92A8B /* libSDL3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A495992555ED0500E92A8B /* libSDL3.a */; };
 		FA30DEB01BBF5A8F009C397F /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = FD77A0060E26BC0500F39101 /* common.c */; };
 		FA30DEB01BBF5A8F009C397F /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = FD77A0060E26BC0500F39101 /* common.c */; };
 		FA30DEB11BBF5A93009C397F /* happy.c in Sources */ = {isa = PBXBuildFile; fileRef = FD77A0080E26BC0500F39101 /* happy.c */; };
 		FA30DEB11BBF5A93009C397F /* happy.c in Sources */ = {isa = PBXBuildFile; fileRef = FD77A0080E26BC0500F39101 /* happy.c */; };
 		FA30DEB31BBF5AD7009C397F /* icon.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FDB651CC0E43D19800F688B5 /* icon.bmp */; };
 		FA30DEB31BBF5AD7009C397F /* icon.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FDB651CC0E43D19800F688B5 /* icon.bmp */; };
 		FA30DEB41BBF5ADD009C397F /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = FD925B180E0F276600E92347 /* Icon.png */; };
 		FA30DEB41BBF5ADD009C397F /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = FD925B180E0F276600E92347 /* Icon.png */; };
 		FA30DEB61BBF5AE6009C397F /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = FD787AA00E22A5CC003E8E36 /* Default.png */; };
 		FA30DEB61BBF5AE6009C397F /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = FD787AA00E22A5CC003E8E36 /* Default.png */; };
-		FA30DEC81BBF5C14009C397F /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FAE0E9691BAF96A00098DFA4 /* GameController.framework */; };
-		FA30DEC91BBF5C14009C397F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDF0D7220E12D31800247964 /* AudioToolbox.framework */; };
-		FA30DECA1BBF5C14009C397F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDB96EDF0DEFC9DC00FAF19F /* QuartzCore.framework */; };
-		FA30DECB1BBF5C14009C397F /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDB96ED30DEFC9C700FAF19F /* OpenGLES.framework */; };
-		FA30DECC1BBF5C14009C397F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D3623EB0D0F72F000981E51 /* CoreGraphics.framework */; };
-		FA30DECD1BBF5C14009C397F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
-		FA30DECE1BBF5C14009C397F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
-		FA30DECF1BBF5C14009C397F /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDF0D71D0E12D2AB00247964 /* CoreAudio.framework */; };
 		FA86C0371D9765BB009CB637 /* iOS Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FA86C0361D9765BA009CB637 /* iOS Launch Screen.storyboard */; };
 		FA86C0371D9765BB009CB637 /* iOS Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FA86C0361D9765BA009CB637 /* iOS Launch Screen.storyboard */; };
 		FA86C0381D9765BB009CB637 /* iOS Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FA86C0361D9765BA009CB637 /* iOS Launch Screen.storyboard */; };
 		FA86C0381D9765BB009CB637 /* iOS Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FA86C0361D9765BA009CB637 /* iOS Launch Screen.storyboard */; };
 		FA86C0391D9765BB009CB637 /* iOS Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FA86C0361D9765BA009CB637 /* iOS Launch Screen.storyboard */; };
 		FA86C0391D9765BB009CB637 /* iOS Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FA86C0361D9765BA009CB637 /* iOS Launch Screen.storyboard */; };
@@ -55,37 +27,6 @@
 		FA86C03B1D9765BB009CB637 /* iOS Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FA86C0361D9765BA009CB637 /* iOS Launch Screen.storyboard */; };
 		FA86C03B1D9765BB009CB637 /* iOS Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FA86C0361D9765BA009CB637 /* iOS Launch Screen.storyboard */; };
 		FA86C03C1D9765BB009CB637 /* iOS Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FA86C0361D9765BA009CB637 /* iOS Launch Screen.storyboard */; };
 		FA86C03C1D9765BB009CB637 /* iOS Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FA86C0361D9765BA009CB637 /* iOS Launch Screen.storyboard */; };
 		FA86C03D1D9765BB009CB637 /* iOS Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FA86C0361D9765BA009CB637 /* iOS Launch Screen.storyboard */; };
 		FA86C03D1D9765BB009CB637 /* iOS Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FA86C0361D9765BA009CB637 /* iOS Launch Screen.storyboard */; };
-		FA8B4BA31967070A00F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BA21967070A00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BA41967071300F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BA21967070A00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BA51967071A00F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BA21967070A00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BA61967072100F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BA21967070A00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BA71967072800F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BA21967070A00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BA81967073400F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BA21967070A00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BA91967073D00F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BA21967070A00F8EB7C /* CoreMotion.framework */; };
-		FABA34D41D8B5E5600915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34D31D8B5E5600915323 /* AVFoundation.framework */; };
-		FABA34D61D8B5E5A00915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34D31D8B5E5600915323 /* AVFoundation.framework */; };
-		FABA34D91D8B5E7B00915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34D31D8B5E5600915323 /* AVFoundation.framework */; };
-		FABA34DA1D8B5E7F00915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34D31D8B5E5600915323 /* AVFoundation.framework */; };
-		FABA34DB1D8B5E8500915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34D31D8B5E5600915323 /* AVFoundation.framework */; };
-		FABA34DC1D8B5E8900915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34D31D8B5E5600915323 /* AVFoundation.framework */; };
-		FABA34DD1D8B5E8D00915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34D31D8B5E5600915323 /* AVFoundation.framework */; };
-		FAE0E96A1BAF96A00098DFA4 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FAE0E9691BAF96A00098DFA4 /* GameController.framework */; };
-		FAE0E96C1BAF96A90098DFA4 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FAE0E9691BAF96A00098DFA4 /* GameController.framework */; };
-		FAE0E96D1BAF96AF0098DFA4 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FAE0E9691BAF96A00098DFA4 /* GameController.framework */; };
-		FAE0E96E1BAF96B10098DFA4 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FAE0E9691BAF96A00098DFA4 /* GameController.framework */; };
-		FAE0E96F1BAF96B50098DFA4 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FAE0E9691BAF96A00098DFA4 /* GameController.framework */; };
-		FAE0E9701BAF96B80098DFA4 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FAE0E9691BAF96A00098DFA4 /* GameController.framework */; };
-		FAE0E9711BAF96BB0098DFA4 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FAE0E9691BAF96A00098DFA4 /* GameController.framework */; };
-		FD15FD690E086911003BDF25 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
-		FD15FD6A0E086911003BDF25 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
-		FD15FD6B0E086911003BDF25 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D3623EB0D0F72F000981E51 /* CoreGraphics.framework */; };
-		FD15FD6C0E086911003BDF25 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDB96ED30DEFC9C700FAF19F /* OpenGLES.framework */; };
-		FD15FD6D0E086911003BDF25 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDB96EDF0DEFC9DC00FAF19F /* QuartzCore.framework */; };
-		FD5F9CE80E0E0741008E885B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
-		FD5F9CE90E0E0741008E885B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
-		FD5F9CEA0E0E0741008E885B /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D3623EB0D0F72F000981E51 /* CoreGraphics.framework */; };
-		FD5F9CEB0E0E0741008E885B /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDB96ED30DEFC9C700FAF19F /* OpenGLES.framework */; };
-		FD5F9CEC0E0E0741008E885B /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDB96EDF0DEFC9DC00FAF19F /* QuartzCore.framework */; };
 		FD77A00E0E26BC0500F39101 /* happy.c in Sources */ = {isa = PBXBuildFile; fileRef = FD77A0080E26BC0500F39101 /* happy.c */; };
 		FD77A00E0E26BC0500F39101 /* happy.c in Sources */ = {isa = PBXBuildFile; fileRef = FD77A0080E26BC0500F39101 /* happy.c */; };
 		FD77A0130E26BC0500F39101 /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = FD77A0060E26BC0500F39101 /* common.c */; };
 		FD77A0130E26BC0500F39101 /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = FD77A0060E26BC0500F39101 /* common.c */; };
 		FD77A0160E26BC0500F39101 /* rectangles.c in Sources */ = {isa = PBXBuildFile; fileRef = FD77A00A0E26BC0500F39101 /* rectangles.c */; };
 		FD77A0160E26BC0500F39101 /* rectangles.c in Sources */ = {isa = PBXBuildFile; fileRef = FD77A00A0E26BC0500F39101 /* rectangles.c */; };
@@ -116,51 +57,15 @@
 		FDB651FA0E43D1F300F688B5 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = FD925B180E0F276600E92347 /* Icon.png */; };
 		FDB651FA0E43D1F300F688B5 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = FD925B180E0F276600E92347 /* Icon.png */; };
 		FDB651FB0E43D1F300F688B5 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = FD787AA00E22A5CC003E8E36 /* Default.png */; };
 		FDB651FB0E43D1F300F688B5 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = FD787AA00E22A5CC003E8E36 /* Default.png */; };
 		FDB651FD0E43D1F300F688B5 /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = FD77A0060E26BC0500F39101 /* common.c */; };
 		FDB651FD0E43D1F300F688B5 /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = FD77A0060E26BC0500F39101 /* common.c */; };
-		FDB652020E43D1F300F688B5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
-		FDB652030E43D1F300F688B5 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
-		FDB652040E43D1F300F688B5 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D3623EB0D0F72F000981E51 /* CoreGraphics.framework */; };
-		FDB652050E43D1F300F688B5 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDB96ED30DEFC9C700FAF19F /* OpenGLES.framework */; };
-		FDB652060E43D1F300F688B5 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDB96EDF0DEFC9DC00FAF19F /* QuartzCore.framework */; };
-		FDB652070E43D1F300F688B5 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDF0D71D0E12D2AB00247964 /* CoreAudio.framework */; };
-		FDB652080E43D1F300F688B5 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDF0D7220E12D31800247964 /* AudioToolbox.framework */; };
 		FDB652120E43D21A00F688B5 /* keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = FDB652110E43D21A00F688B5 /* keyboard.c */; };
 		FDB652120E43D21A00F688B5 /* keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = FDB652110E43D21A00F688B5 /* keyboard.c */; };
 		FDB652C70E43E25900F688B5 /* kromasky_16x16.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FDB652C60E43E25900F688B5 /* kromasky_16x16.bmp */; };
 		FDB652C70E43E25900F688B5 /* kromasky_16x16.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FDB652C60E43E25900F688B5 /* kromasky_16x16.bmp */; };
-		FDB96ED40DEFC9C700FAF19F /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDB96ED30DEFC9C700FAF19F /* OpenGLES.framework */; };
-		FDB96EE00DEFC9DC00FAF19F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDB96EDF0DEFC9DC00FAF19F /* QuartzCore.framework */; };
 		FDC202E10E107B1200ABAC90 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = FD925B180E0F276600E92347 /* Icon.png */; };
 		FDC202E10E107B1200ABAC90 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = FD925B180E0F276600E92347 /* Icon.png */; };
-		FDC202E60E107B1200ABAC90 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
-		FDC202E70E107B1200ABAC90 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
-		FDC202E80E107B1200ABAC90 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D3623EB0D0F72F000981E51 /* CoreGraphics.framework */; };
-		FDC202E90E107B1200ABAC90 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDB96ED30DEFC9C700FAF19F /* OpenGLES.framework */; };
-		FDC202EA0E107B1200ABAC90 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDB96EDF0DEFC9DC00FAF19F /* QuartzCore.framework */; };
 		FDC214870E26D78A00DDED23 /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = FD77A0060E26BC0500F39101 /* common.c */; };
 		FDC214870E26D78A00DDED23 /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = FD77A0060E26BC0500F39101 /* common.c */; };
 		FDC52EC80E2843D6008D768C /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = FD925B180E0F276600E92347 /* Icon.png */; };
 		FDC52EC80E2843D6008D768C /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = FD925B180E0F276600E92347 /* Icon.png */; };
 		FDC52EC90E2843D6008D768C /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = FD787AA00E22A5CC003E8E36 /* Default.png */; };
 		FDC52EC90E2843D6008D768C /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = FD787AA00E22A5CC003E8E36 /* Default.png */; };
 		FDC52ECF0E2843D6008D768C /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = FD77A0060E26BC0500F39101 /* common.c */; };
 		FDC52ECF0E2843D6008D768C /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = FD77A0060E26BC0500F39101 /* common.c */; };
-		FDC52ED40E2843D6008D768C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
-		FDC52ED50E2843D6008D768C /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
-		FDC52ED60E2843D6008D768C /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D3623EB0D0F72F000981E51 /* CoreGraphics.framework */; };
-		FDC52ED70E2843D6008D768C /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDB96ED30DEFC9C700FAF19F /* OpenGLES.framework */; };
-		FDC52ED80E2843D6008D768C /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDB96EDF0DEFC9DC00FAF19F /* QuartzCore.framework */; };
-		FDC52ED90E2843D6008D768C /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDF0D71D0E12D2AB00247964 /* CoreAudio.framework */; };
-		FDC52EDA0E2843D6008D768C /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDF0D7220E12D31800247964 /* AudioToolbox.framework */; };
 		FDC52EE50E284410008D768C /* fireworks.c in Sources */ = {isa = PBXBuildFile; fileRef = FDC52EE40E284410008D768C /* fireworks.c */; };
 		FDC52EE50E284410008D768C /* fireworks.c in Sources */ = {isa = PBXBuildFile; fileRef = FDC52EE40E284410008D768C /* fireworks.c */; };
 		FDF0D6960E12D05400247964 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = FD925B180E0F276600E92347 /* Icon.png */; };
 		FDF0D6960E12D05400247964 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = FD925B180E0F276600E92347 /* Icon.png */; };
-		FDF0D69C0E12D05400247964 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
-		FDF0D69D0E12D05400247964 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
-		FDF0D69E0E12D05400247964 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D3623EB0D0F72F000981E51 /* CoreGraphics.framework */; };
-		FDF0D69F0E12D05400247964 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDB96ED30DEFC9C700FAF19F /* OpenGLES.framework */; };
-		FDF0D6A00E12D05400247964 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDB96EDF0DEFC9DC00FAF19F /* QuartzCore.framework */; };
-		FDF0D71E0E12D2AB00247964 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDF0D71D0E12D2AB00247964 /* CoreAudio.framework */; };
-		FDF0D7230E12D31800247964 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDF0D7220E12D31800247964 /* AudioToolbox.framework */; };
-		FDF0D7950E12D52900247964 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDF0D71D0E12D2AB00247964 /* CoreAudio.framework */; };
-		FDF0D7960E12D52900247964 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDF0D7220E12D31800247964 /* AudioToolbox.framework */; };
-		FDF0D7A70E12D53200247964 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDF0D71D0E12D2AB00247964 /* CoreAudio.framework */; };
-		FDF0D7A80E12D53200247964 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDF0D7220E12D31800247964 /* AudioToolbox.framework */; };
-		FDF0D7A90E12D53500247964 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDF0D71D0E12D2AB00247964 /* CoreAudio.framework */; };
-		FDF0D7AA0E12D53500247964 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDF0D7220E12D31800247964 /* AudioToolbox.framework */; };
-		FDF0D7AB0E12D53800247964 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDF0D71D0E12D2AB00247964 /* CoreAudio.framework */; };
-		FDF0D7AC0E12D53800247964 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDF0D7220E12D31800247964 /* AudioToolbox.framework */; };
 /* End PBXBuildFile section */
 /* End PBXBuildFile section */
 
 
 /* Begin PBXContainerItemProxy section */
 /* Begin PBXContainerItemProxy section */
@@ -234,47 +139,21 @@
 			remoteGlobalIDString = BECDF6BE0761BA81005FE872;
 			remoteGlobalIDString = BECDF6BE0761BA81005FE872;
 			remoteInfo = "Standard DMG";
 			remoteInfo = "Standard DMG";
 		};
 		};
-		F3A495A42555ED0500E92A8B /* PBXContainerItemProxy */ = {
+		F3C17D9128E4355900E1A26D /* PBXContainerItemProxy */ = {
 			isa = PBXContainerItemProxy;
 			isa = PBXContainerItemProxy;
 			containerPortal = F3A495802555ED0400E92A8B /* SDL.xcodeproj */;
 			containerPortal = F3A495802555ED0400E92A8B /* SDL.xcodeproj */;
 			proxyType = 2;
 			proxyType = 2;
-			remoteGlobalIDString = A75FDB8C23E4C74400529352;
-			remoteInfo = hidapi;
-		};
-		F3A495A62555ED0500E92A8B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F3A495802555ED0400E92A8B /* SDL.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = A75FDB4923E399AC00529352;
-			remoteInfo = "hidapi-iOS";
-		};
-		F3A495A82555ED0500E92A8B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F3A495802555ED0400E92A8B /* SDL.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = A75FDB6E23E3A2C900529352;
-			remoteInfo = "hidapi-tvOS";
+			remoteGlobalIDString = E2D187CF28A5673500D2B4F1;
+			remoteInfo = "xcFramework-iOS";
 		};
 		};
 /* End PBXContainerItemProxy section */
 /* End PBXContainerItemProxy section */
 
 
 /* Begin PBXFileReference section */
 /* Begin PBXFileReference section */
-		1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
-		1D3623EB0D0F72F000981E51 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
 		1D6058910D05DD3D006BFB54 /* Rectangles.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Rectangles.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		1D6058910D05DD3D006BFB54 /* Rectangles.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Rectangles.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
-		8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
 		F3A495802555ED0400E92A8B /* SDL.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDL.xcodeproj; path = ../../Xcode/SDL/SDL.xcodeproj; sourceTree = "<group>"; };
 		F3A495802555ED0400E92A8B /* SDL.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDL.xcodeproj; path = ../../Xcode/SDL/SDL.xcodeproj; sourceTree = "<group>"; };
-		F3A497382555EEA900E92A8B /* CoreHaptics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreHaptics.framework; path = System/Library/Frameworks/CoreHaptics.framework; sourceTree = SDKROOT; };
-		F3A497472555EEEE00E92A8B /* CoreHaptics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreHaptics.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/CoreHaptics.framework; sourceTree = DEVELOPER_DIR; };
-		F3A497582555EFC300E92A8B /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/AVFoundation.framework; sourceTree = DEVELOPER_DIR; };
-		F3A497622555EFCF00E92A8B /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/Metal.framework; sourceTree = DEVELOPER_DIR; };
-		F3F758FF22AC5EC7001D97F2 /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; };
+		F3C17D9F28E437C300E1A26D /* config.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = config.xcconfig; sourceTree = "<group>"; };
 		FA30DE961BBF59D9009C397F /* Happy-TV.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Happy-TV.app"; sourceTree = BUILT_PRODUCTS_DIR; };
 		FA30DE961BBF59D9009C397F /* Happy-TV.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Happy-TV.app"; sourceTree = BUILT_PRODUCTS_DIR; };
 		FA86C0361D9765BA009CB637 /* iOS Launch Screen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = "iOS Launch Screen.storyboard"; sourceTree = "<group>"; };
 		FA86C0361D9765BA009CB637 /* iOS Launch Screen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = "iOS Launch Screen.storyboard"; sourceTree = "<group>"; };
-		FA8B4BA21967070A00F8EB7C /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; };
-		FABA34D31D8B5E5600915323 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
-		FABA34D71D8B5E7700915323 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS10.0.sdk/System/Library/Frameworks/AVFoundation.framework; sourceTree = DEVELOPER_DIR; };
-		FAE0E9691BAF96A00098DFA4 /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; };
 		FD15FCB20E086866003BDF25 /* Happy.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Happy.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		FD15FCB20E086866003BDF25 /* Happy.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Happy.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		FD5F9BE40E0DEBEA008E885B /* Accel.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Accel.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		FD5F9BE40E0DEBEA008E885B /* Accel.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Accel.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		FD77A0050E26BC0500F39101 /* accelerometer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = accelerometer.c; sourceTree = "<group>"; };
 		FD77A0050E26BC0500F39101 /* accelerometer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = accelerometer.c; sourceTree = "<group>"; };
@@ -298,14 +177,10 @@
 		FDB6520C0E43D1F300F688B5 /* Keyboard.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Keyboard.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		FDB6520C0E43D1F300F688B5 /* Keyboard.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Keyboard.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		FDB652110E43D21A00F688B5 /* keyboard.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = keyboard.c; sourceTree = "<group>"; };
 		FDB652110E43D21A00F688B5 /* keyboard.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = keyboard.c; sourceTree = "<group>"; };
 		FDB652C60E43E25900F688B5 /* kromasky_16x16.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = kromasky_16x16.bmp; sourceTree = "<group>"; };
 		FDB652C60E43E25900F688B5 /* kromasky_16x16.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = kromasky_16x16.bmp; sourceTree = "<group>"; };
-		FDB96ED30DEFC9C700FAF19F /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
-		FDB96EDF0DEFC9DC00FAF19F /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
 		FDC202EE0E107B1200ABAC90 /* Touch.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Touch.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		FDC202EE0E107B1200ABAC90 /* Touch.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Touch.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		FDC52EDE0E2843D6008D768C /* Fireworks.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Fireworks.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		FDC52EDE0E2843D6008D768C /* Fireworks.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Fireworks.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		FDC52EE40E284410008D768C /* fireworks.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = fireworks.c; sourceTree = "<group>"; };
 		FDC52EE40E284410008D768C /* fireworks.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = fireworks.c; sourceTree = "<group>"; };
 		FDF0D6A40E12D05400247964 /* Mixer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Mixer.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		FDF0D6A40E12D05400247964 /* Mixer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Mixer.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		FDF0D71D0E12D2AB00247964 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
-		FDF0D7220E12D31800247964 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
 /* End PBXFileReference section */
 /* End PBXFileReference section */
 
 
 /* Begin PBXFrameworksBuildPhase section */
 /* Begin PBXFrameworksBuildPhase section */
@@ -313,19 +188,7 @@
 			isa = PBXFrameworksBuildPhase;
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			buildActionMask = 2147483647;
 			files = (
 			files = (
-				F3A497102555EE4800E92A8B /* libSDL2.a in Frameworks */,
-				FDF0D7AC0E12D53800247964 /* AudioToolbox.framework in Frameworks */,
-				FABA34D41D8B5E5600915323 /* AVFoundation.framework in Frameworks */,
-				FDF0D7AB0E12D53800247964 /* CoreAudio.framework in Frameworks */,
-				1D3623EC0D0F72F000981E51 /* CoreGraphics.framework in Frameworks */,
-				F3A4974D2555EF9500E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BA31967070A00F8EB7C /* CoreMotion.framework in Frameworks */,
-				1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */,
-				FAE0E96A1BAF96A00098DFA4 /* GameController.framework in Frameworks */,
-				F3F7590022AC5EC7001D97F2 /* Metal.framework in Frameworks */,
-				FDB96ED40DEFC9C700FAF19F /* OpenGLES.framework in Frameworks */,
-				FDB96EE00DEFC9DC00FAF19F /* QuartzCore.framework in Frameworks */,
-				1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */,
+				F3A497102555EE4800E92A8B /* libSDL3.a in Frameworks */,
 			);
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 		};
@@ -333,18 +196,7 @@
 			isa = PBXFrameworksBuildPhase;
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			buildActionMask = 2147483647;
 			files = (
 			files = (
-				F3A497462555EEDF00E92A8B /* libSDL2.a in Frameworks */,
-				FA30DEC91BBF5C14009C397F /* AudioToolbox.framework in Frameworks */,
-				F3A497592555EFC300E92A8B /* AVFoundation.framework in Frameworks */,
-				FA30DECF1BBF5C14009C397F /* CoreAudio.framework in Frameworks */,
-				FA30DECC1BBF5C14009C397F /* CoreGraphics.framework in Frameworks */,
-				F3A497482555EEEE00E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA30DECE1BBF5C14009C397F /* Foundation.framework in Frameworks */,
-				FA30DEC81BBF5C14009C397F /* GameController.framework in Frameworks */,
-				F3A497632555EFCF00E92A8B /* Metal.framework in Frameworks */,
-				FA30DECA1BBF5C14009C397F /* QuartzCore.framework in Frameworks */,
-				FA30DECB1BBF5C14009C397F /* OpenGLES.framework in Frameworks */,
-				FA30DECD1BBF5C14009C397F /* UIKit.framework in Frameworks */,
+				F3A497462555EEDF00E92A8B /* libSDL3.a in Frameworks */,
 			);
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 		};
@@ -352,19 +204,7 @@
 			isa = PBXFrameworksBuildPhase;
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			buildActionMask = 2147483647;
 			files = (
 			files = (
-				F3A497442555EECD00E92A8B /* libSDL2.a in Frameworks */,
-				FDF0D7AA0E12D53500247964 /* AudioToolbox.framework in Frameworks */,
-				FABA34D61D8B5E5A00915323 /* AVFoundation.framework in Frameworks */,
-				FDF0D7A90E12D53500247964 /* CoreAudio.framework in Frameworks */,
-				FD15FD6B0E086911003BDF25 /* CoreGraphics.framework in Frameworks */,
-				F3A497452555EED500E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BA41967071300F8EB7C /* CoreMotion.framework in Frameworks */,
-				FD15FD690E086911003BDF25 /* Foundation.framework in Frameworks */,
-				FAE0E96C1BAF96A90098DFA4 /* GameController.framework in Frameworks */,
-				F3F7590122AC5F00001D97F2 /* Metal.framework in Frameworks */,
-				FD15FD6C0E086911003BDF25 /* OpenGLES.framework in Frameworks */,
-				FD15FD6D0E086911003BDF25 /* QuartzCore.framework in Frameworks */,
-				FD15FD6A0E086911003BDF25 /* UIKit.framework in Frameworks */,
+				F3A497442555EECD00E92A8B /* libSDL3.a in Frameworks */,
 			);
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 		};
@@ -372,19 +212,7 @@
 			isa = PBXFrameworksBuildPhase;
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			buildActionMask = 2147483647;
 			files = (
 			files = (
-				F3A4972F2555EE8A00E92A8B /* libSDL2.a in Frameworks */,
-				FDF0D7A80E12D53200247964 /* AudioToolbox.framework in Frameworks */,
-				FABA34D91D8B5E7B00915323 /* AVFoundation.framework in Frameworks */,
-				FDF0D7A70E12D53200247964 /* CoreAudio.framework in Frameworks */,
-				FD5F9CEA0E0E0741008E885B /* CoreGraphics.framework in Frameworks */,
-				F3A497392555EEA900E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BA51967071A00F8EB7C /* CoreMotion.framework in Frameworks */,
-				FD5F9CE80E0E0741008E885B /* Foundation.framework in Frameworks */,
-				FAE0E96D1BAF96AF0098DFA4 /* GameController.framework in Frameworks */,
-				F3F7590222AC5F3D001D97F2 /* Metal.framework in Frameworks */,
-				FD5F9CEB0E0E0741008E885B /* OpenGLES.framework in Frameworks */,
-				FD5F9CEC0E0E0741008E885B /* QuartzCore.framework in Frameworks */,
-				FD5F9CE90E0E0741008E885B /* UIKit.framework in Frameworks */,
+				F3A4972F2555EE8A00E92A8B /* libSDL3.a in Frameworks */,
 			);
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 		};
@@ -392,19 +220,7 @@
 			isa = PBXFrameworksBuildPhase;
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			buildActionMask = 2147483647;
 			files = (
 			files = (
-				F3A497492555EF0B00E92A8B /* libSDL2.a in Frameworks */,
-				FDB652080E43D1F300F688B5 /* AudioToolbox.framework in Frameworks */,
-				FABA34DD1D8B5E8D00915323 /* AVFoundation.framework in Frameworks */,
-				FDB652070E43D1F300F688B5 /* CoreAudio.framework in Frameworks */,
-				FDB652040E43D1F300F688B5 /* CoreGraphics.framework in Frameworks */,
-				F3A4974A2555EF1200E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BA91967073D00F8EB7C /* CoreMotion.framework in Frameworks */,
-				FDB652020E43D1F300F688B5 /* Foundation.framework in Frameworks */,
-				FAE0E9711BAF96BB0098DFA4 /* GameController.framework in Frameworks */,
-				F3F7590622AC5FD1001D97F2 /* Metal.framework in Frameworks */,
-				FDB652050E43D1F300F688B5 /* OpenGLES.framework in Frameworks */,
-				FDB652060E43D1F300F688B5 /* QuartzCore.framework in Frameworks */,
-				FDB652030E43D1F300F688B5 /* UIKit.framework in Frameworks */,
+				F3A497492555EF0B00E92A8B /* libSDL3.a in Frameworks */,
 			);
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 		};
@@ -412,19 +228,7 @@
 			isa = PBXFrameworksBuildPhase;
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			buildActionMask = 2147483647;
 			files = (
 			files = (
-				F3A4974E2555EF9F00E92A8B /* libSDL2.a in Frameworks */,
-				FDF0D7960E12D52900247964 /* AudioToolbox.framework in Frameworks */,
-				FABA34DA1D8B5E7F00915323 /* AVFoundation.framework in Frameworks */,
-				FDF0D7950E12D52900247964 /* CoreAudio.framework in Frameworks */,
-				FDC202E80E107B1200ABAC90 /* CoreGraphics.framework in Frameworks */,
-				F3A4974F2555EFA400E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BA61967072100F8EB7C /* CoreMotion.framework in Frameworks */,
-				FDC202E60E107B1200ABAC90 /* Foundation.framework in Frameworks */,
-				FAE0E96E1BAF96B10098DFA4 /* GameController.framework in Frameworks */,
-				F3F7590322AC5F71001D97F2 /* Metal.framework in Frameworks */,
-				FDC202E90E107B1200ABAC90 /* OpenGLES.framework in Frameworks */,
-				FDC202EA0E107B1200ABAC90 /* QuartzCore.framework in Frameworks */,
-				FDC202E70E107B1200ABAC90 /* UIKit.framework in Frameworks */,
+				F3A4974E2555EF9F00E92A8B /* libSDL3.a in Frameworks */,
 			);
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 		};
@@ -432,19 +236,7 @@
 			isa = PBXFrameworksBuildPhase;
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			buildActionMask = 2147483647;
 			files = (
 			files = (
-				F3A497422555EEBE00E92A8B /* libSDL2.a in Frameworks */,
-				FDC52EDA0E2843D6008D768C /* AudioToolbox.framework in Frameworks */,
-				FABA34DC1D8B5E8900915323 /* AVFoundation.framework in Frameworks */,
-				FDC52ED90E2843D6008D768C /* CoreAudio.framework in Frameworks */,
-				FDC52ED60E2843D6008D768C /* CoreGraphics.framework in Frameworks */,
-				F3A497432555EEC400E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BA81967073400F8EB7C /* CoreMotion.framework in Frameworks */,
-				FDC52ED40E2843D6008D768C /* Foundation.framework in Frameworks */,
-				FAE0E9701BAF96B80098DFA4 /* GameController.framework in Frameworks */,
-				F3F7590522AC5FB3001D97F2 /* Metal.framework in Frameworks */,
-				FDC52ED70E2843D6008D768C /* OpenGLES.framework in Frameworks */,
-				FDC52ED80E2843D6008D768C /* QuartzCore.framework in Frameworks */,
-				FDC52ED50E2843D6008D768C /* UIKit.framework in Frameworks */,
+				F3A497422555EEBE00E92A8B /* libSDL3.a in Frameworks */,
 			);
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 		};
@@ -452,19 +244,7 @@
 			isa = PBXFrameworksBuildPhase;
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			buildActionMask = 2147483647;
 			files = (
 			files = (
-				F3A4974B2555EF1B00E92A8B /* libSDL2.a in Frameworks */,
-				FDF0D7230E12D31800247964 /* AudioToolbox.framework in Frameworks */,
-				FABA34DB1D8B5E8500915323 /* AVFoundation.framework in Frameworks */,
-				FDF0D71E0E12D2AB00247964 /* CoreAudio.framework in Frameworks */,
-				FDF0D69E0E12D05400247964 /* CoreGraphics.framework in Frameworks */,
-				F3A4974C2555EF2000E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BA71967072800F8EB7C /* CoreMotion.framework in Frameworks */,
-				FDF0D69C0E12D05400247964 /* Foundation.framework in Frameworks */,
-				FAE0E96F1BAF96B50098DFA4 /* GameController.framework in Frameworks */,
-				F3F7590422AC5F8D001D97F2 /* Metal.framework in Frameworks */,
-				FDF0D69F0E12D05400247964 /* OpenGLES.framework in Frameworks */,
-				FDF0D6A00E12D05400247964 /* QuartzCore.framework in Frameworks */,
-				FDF0D69D0E12D05400247964 /* UIKit.framework in Frameworks */,
+				F3A4974B2555EF1B00E92A8B /* libSDL3.a in Frameworks */,
 			);
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 		};
@@ -489,11 +269,11 @@
 		29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
 		29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
+				F3C17D9F28E437C300E1A26D /* config.xcconfig */,
 				F3A495802555ED0400E92A8B /* SDL.xcodeproj */,
 				F3A495802555ED0400E92A8B /* SDL.xcodeproj */,
 				FA86C0361D9765BA009CB637 /* iOS Launch Screen.storyboard */,
 				FA86C0361D9765BA009CB637 /* iOS Launch Screen.storyboard */,
 				FD77A0040E26BC0500F39101 /* src */,
 				FD77A0040E26BC0500F39101 /* src */,
 				29B97317FDCFA39411CA2CEA /* Resources */,
 				29B97317FDCFA39411CA2CEA /* Resources */,
-				29B97323FDCFA39411CA2CEA /* Frameworks */,
 				19C28FACFE9D520D11CA2CBB /* Products */,
 				19C28FACFE9D520D11CA2CBB /* Products */,
 			);
 			);
 			name = CustomTemplate;
 			name = CustomTemplate;
@@ -505,50 +285,24 @@
 				FDB651C30E43D19800F688B5 /* data */,
 				FDB651C30E43D19800F688B5 /* data */,
 				FD787AA00E22A5CC003E8E36 /* Default.png */,
 				FD787AA00E22A5CC003E8E36 /* Default.png */,
 				FD925B180E0F276600E92347 /* Icon.png */,
 				FD925B180E0F276600E92347 /* Icon.png */,
-				8D1107310486CEB800E47090 /* Info.plist */,
 			);
 			);
 			name = Resources;
 			name = Resources;
 			sourceTree = "<group>";
 			sourceTree = "<group>";
 		};
 		};
-		29B97323FDCFA39411CA2CEA /* Frameworks */ = {
-			isa = PBXGroup;
-			children = (
-				F3A497622555EFCF00E92A8B /* Metal.framework */,
-				F3A497582555EFC300E92A8B /* AVFoundation.framework */,
-				F3A497382555EEA900E92A8B /* CoreHaptics.framework */,
-				F3A497472555EEEE00E92A8B /* CoreHaptics.framework */,
-				F3F758FF22AC5EC7001D97F2 /* Metal.framework */,
-				FABA34D71D8B5E7700915323 /* AVFoundation.framework */,
-				FABA34D31D8B5E5600915323 /* AVFoundation.framework */,
-				FAE0E9691BAF96A00098DFA4 /* GameController.framework */,
-				FA8B4BA21967070A00F8EB7C /* CoreMotion.framework */,
-				FDF0D7220E12D31800247964 /* AudioToolbox.framework */,
-				FDB96EDF0DEFC9DC00FAF19F /* QuartzCore.framework */,
-				FDB96ED30DEFC9C700FAF19F /* OpenGLES.framework */,
-				1D3623EB0D0F72F000981E51 /* CoreGraphics.framework */,
-				1DF5F4DF0D08C38300B7A737 /* UIKit.framework */,
-				1D30AB110D05D00D00671497 /* Foundation.framework */,
-				FDF0D71D0E12D2AB00247964 /* CoreAudio.framework */,
-			);
-			name = Frameworks;
-			sourceTree = "<group>";
-		};
 		F3A495812555ED0400E92A8B /* Products */ = {
 		F3A495812555ED0400E92A8B /* Products */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
-				F3A495912555ED0500E92A8B /* SDL2.framework */,
-				F3A495932555ED0500E92A8B /* SDL2.framework */,
-				F3A495952555ED0500E92A8B /* SDL2.framework */,
-				F3A495972555ED0500E92A8B /* libSDL2.a */,
-				F3A495992555ED0500E92A8B /* libSDL2.a */,
-				F3A4959B2555ED0500E92A8B /* libSDL2.a */,
-				F3A4959D2555ED0500E92A8B /* libSDL2.dylib */,
-				F3A4959F2555ED0500E92A8B /* libSDL2.dylib */,
-				F3A495A12555ED0500E92A8B /* libSDL2.dylib */,
-				F3A495A32555ED0500E92A8B /* SDL2 */,
-				F3A495A52555ED0500E92A8B /* hidapi.framework */,
-				F3A495A72555ED0500E92A8B /* hidapi.framework */,
-				F3A495A92555ED0500E92A8B /* hidapi.framework */,
+				F3A495912555ED0500E92A8B /* SDL3.framework */,
+				F3A495932555ED0500E92A8B /* SDL3.framework */,
+				F3A495952555ED0500E92A8B /* SDL3.framework */,
+				F3C17D9228E4355900E1A26D /* SDL3.framework */,
+				F3A495972555ED0500E92A8B /* libSDL3.a */,
+				F3A495992555ED0500E92A8B /* libSDL3.a */,
+				F3A4959B2555ED0500E92A8B /* libSDL3.a */,
+				F3A4959D2555ED0500E92A8B /* libSDL3.dylib */,
+				F3A4959F2555ED0500E92A8B /* libSDL3.dylib */,
+				F3A495A12555ED0500E92A8B /* libSDL3.dylib */,
+				F3A495A32555ED0500E92A8B /* SDL3 */,
 			);
 			);
 			name = Products;
 			name = Products;
 			sourceTree = "<group>";
 			sourceTree = "<group>";
@@ -811,95 +565,81 @@
 /* End PBXProject section */
 /* End PBXProject section */
 
 
 /* Begin PBXReferenceProxy section */
 /* Begin PBXReferenceProxy section */
-		F3A495912555ED0500E92A8B /* SDL2.framework */ = {
+		F3A495912555ED0500E92A8B /* SDL3.framework */ = {
 			isa = PBXReferenceProxy;
 			isa = PBXReferenceProxy;
 			fileType = wrapper.framework;
 			fileType = wrapper.framework;
-			path = SDL2.framework;
+			path = SDL3.framework;
 			remoteRef = F3A495902555ED0500E92A8B /* PBXContainerItemProxy */;
 			remoteRef = F3A495902555ED0500E92A8B /* PBXContainerItemProxy */;
 			sourceTree = BUILT_PRODUCTS_DIR;
 			sourceTree = BUILT_PRODUCTS_DIR;
 		};
 		};
-		F3A495932555ED0500E92A8B /* SDL2.framework */ = {
+		F3A495932555ED0500E92A8B /* SDL3.framework */ = {
 			isa = PBXReferenceProxy;
 			isa = PBXReferenceProxy;
 			fileType = wrapper.framework;
 			fileType = wrapper.framework;
-			path = SDL2.framework;
+			path = SDL3.framework;
 			remoteRef = F3A495922555ED0500E92A8B /* PBXContainerItemProxy */;
 			remoteRef = F3A495922555ED0500E92A8B /* PBXContainerItemProxy */;
 			sourceTree = BUILT_PRODUCTS_DIR;
 			sourceTree = BUILT_PRODUCTS_DIR;
 		};
 		};
-		F3A495952555ED0500E92A8B /* SDL2.framework */ = {
+		F3A495952555ED0500E92A8B /* SDL3.framework */ = {
 			isa = PBXReferenceProxy;
 			isa = PBXReferenceProxy;
 			fileType = wrapper.framework;
 			fileType = wrapper.framework;
-			path = SDL2.framework;
+			path = SDL3.framework;
 			remoteRef = F3A495942555ED0500E92A8B /* PBXContainerItemProxy */;
 			remoteRef = F3A495942555ED0500E92A8B /* PBXContainerItemProxy */;
 			sourceTree = BUILT_PRODUCTS_DIR;
 			sourceTree = BUILT_PRODUCTS_DIR;
 		};
 		};
-		F3A495972555ED0500E92A8B /* libSDL2.a */ = {
+		F3A495972555ED0500E92A8B /* libSDL3.a */ = {
 			isa = PBXReferenceProxy;
 			isa = PBXReferenceProxy;
 			fileType = archive.ar;
 			fileType = archive.ar;
-			path = libSDL2.a;
+			path = libSDL3.a;
 			remoteRef = F3A495962555ED0500E92A8B /* PBXContainerItemProxy */;
 			remoteRef = F3A495962555ED0500E92A8B /* PBXContainerItemProxy */;
 			sourceTree = BUILT_PRODUCTS_DIR;
 			sourceTree = BUILT_PRODUCTS_DIR;
 		};
 		};
-		F3A495992555ED0500E92A8B /* libSDL2.a */ = {
+		F3A495992555ED0500E92A8B /* libSDL3.a */ = {
 			isa = PBXReferenceProxy;
 			isa = PBXReferenceProxy;
 			fileType = archive.ar;
 			fileType = archive.ar;
-			path = libSDL2.a;
+			path = libSDL3.a;
 			remoteRef = F3A495982555ED0500E92A8B /* PBXContainerItemProxy */;
 			remoteRef = F3A495982555ED0500E92A8B /* PBXContainerItemProxy */;
 			sourceTree = BUILT_PRODUCTS_DIR;
 			sourceTree = BUILT_PRODUCTS_DIR;
 		};
 		};
-		F3A4959B2555ED0500E92A8B /* libSDL2.a */ = {
+		F3A4959B2555ED0500E92A8B /* libSDL3.a */ = {
 			isa = PBXReferenceProxy;
 			isa = PBXReferenceProxy;
 			fileType = archive.ar;
 			fileType = archive.ar;
-			path = libSDL2.a;
+			path = libSDL3.a;
 			remoteRef = F3A4959A2555ED0500E92A8B /* PBXContainerItemProxy */;
 			remoteRef = F3A4959A2555ED0500E92A8B /* PBXContainerItemProxy */;
 			sourceTree = BUILT_PRODUCTS_DIR;
 			sourceTree = BUILT_PRODUCTS_DIR;
 		};
 		};
-		F3A4959D2555ED0500E92A8B /* libSDL2.dylib */ = {
+		F3A4959D2555ED0500E92A8B /* libSDL3.dylib */ = {
 			isa = PBXReferenceProxy;
 			isa = PBXReferenceProxy;
 			fileType = "compiled.mach-o.dylib";
 			fileType = "compiled.mach-o.dylib";
-			path = libSDL2.dylib;
+			path = libSDL3.dylib;
 			remoteRef = F3A4959C2555ED0500E92A8B /* PBXContainerItemProxy */;
 			remoteRef = F3A4959C2555ED0500E92A8B /* PBXContainerItemProxy */;
 			sourceTree = BUILT_PRODUCTS_DIR;
 			sourceTree = BUILT_PRODUCTS_DIR;
 		};
 		};
-		F3A4959F2555ED0500E92A8B /* libSDL2.dylib */ = {
+		F3A4959F2555ED0500E92A8B /* libSDL3.dylib */ = {
 			isa = PBXReferenceProxy;
 			isa = PBXReferenceProxy;
 			fileType = "compiled.mach-o.dylib";
 			fileType = "compiled.mach-o.dylib";
-			path = libSDL2.dylib;
+			path = libSDL3.dylib;
 			remoteRef = F3A4959E2555ED0500E92A8B /* PBXContainerItemProxy */;
 			remoteRef = F3A4959E2555ED0500E92A8B /* PBXContainerItemProxy */;
 			sourceTree = BUILT_PRODUCTS_DIR;
 			sourceTree = BUILT_PRODUCTS_DIR;
 		};
 		};
-		F3A495A12555ED0500E92A8B /* libSDL2.dylib */ = {
+		F3A495A12555ED0500E92A8B /* libSDL3.dylib */ = {
 			isa = PBXReferenceProxy;
 			isa = PBXReferenceProxy;
 			fileType = "compiled.mach-o.dylib";
 			fileType = "compiled.mach-o.dylib";
-			path = libSDL2.dylib;
+			path = libSDL3.dylib;
 			remoteRef = F3A495A02555ED0500E92A8B /* PBXContainerItemProxy */;
 			remoteRef = F3A495A02555ED0500E92A8B /* PBXContainerItemProxy */;
 			sourceTree = BUILT_PRODUCTS_DIR;
 			sourceTree = BUILT_PRODUCTS_DIR;
 		};
 		};
-		F3A495A32555ED0500E92A8B /* SDL2 */ = {
+		F3A495A32555ED0500E92A8B /* SDL3 */ = {
 			isa = PBXReferenceProxy;
 			isa = PBXReferenceProxy;
 			fileType = "compiled.mach-o.executable";
 			fileType = "compiled.mach-o.executable";
-			path = SDL2;
+			path = SDL3;
 			remoteRef = F3A495A22555ED0500E92A8B /* PBXContainerItemProxy */;
 			remoteRef = F3A495A22555ED0500E92A8B /* PBXContainerItemProxy */;
 			sourceTree = BUILT_PRODUCTS_DIR;
 			sourceTree = BUILT_PRODUCTS_DIR;
 		};
 		};
-		F3A495A52555ED0500E92A8B /* hidapi.framework */ = {
-			isa = PBXReferenceProxy;
-			fileType = wrapper.framework;
-			path = hidapi.framework;
-			remoteRef = F3A495A42555ED0500E92A8B /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		F3A495A72555ED0500E92A8B /* hidapi.framework */ = {
-			isa = PBXReferenceProxy;
-			fileType = wrapper.framework;
-			path = hidapi.framework;
-			remoteRef = F3A495A62555ED0500E92A8B /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		F3A495A92555ED0500E92A8B /* hidapi.framework */ = {
+		F3C17D9228E4355900E1A26D /* SDL3.framework */ = {
 			isa = PBXReferenceProxy;
 			isa = PBXReferenceProxy;
 			fileType = wrapper.framework;
 			fileType = wrapper.framework;
-			path = hidapi.framework;
-			remoteRef = F3A495A82555ED0500E92A8B /* PBXContainerItemProxy */;
+			path = SDL3.framework;
+			remoteRef = F3C17D9128E4355900E1A26D /* PBXContainerItemProxy */;
 			sourceTree = BUILT_PRODUCTS_DIR;
 			sourceTree = BUILT_PRODUCTS_DIR;
 		};
 		};
 /* End PBXReferenceProxy section */
 /* End PBXReferenceProxy section */
@@ -1077,8 +817,6 @@
 		1D6058940D05DD3E006BFB54 /* Debug */ = {
 		1D6058940D05DD3E006BFB54 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.Rectangles;
 				PRODUCT_NAME = Rectangles;
 				PRODUCT_NAME = Rectangles;
 			};
 			};
 			name = Debug;
 			name = Debug;
@@ -1086,76 +824,56 @@
 		1D6058950D05DD3E006BFB54 /* Release */ = {
 		1D6058950D05DD3E006BFB54 /* Release */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.Rectangles;
 				PRODUCT_NAME = Rectangles;
 				PRODUCT_NAME = Rectangles;
 			};
 			};
 			name = Release;
 			name = Release;
 		};
 		};
 		C01FCF4F08A954540054247B /* Debug */ = {
 		C01FCF4F08A954540054247B /* Debug */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
+			baseConfigurationReference = F3C17D9F28E437C300E1A26D /* config.xcconfig */;
 			buildSettings = {
 			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				CURRENT_PROJECT_VERSION = 1;
+				DEBUG_INFORMATION_FORMAT = dwarf;
 				GCC_OPTIMIZATION_LEVEL = 0;
 				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_SYMBOLS_PRIVATE_EXTERN = YES;
+				GENERATE_INFOPLIST_FILE = YES;
 				HEADER_SEARCH_PATHS = ../../include;
 				HEADER_SEARCH_PATHS = ../../include;
+				INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+				LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
+				MARKETING_VERSION = 1.0;
 				ONLY_ACTIVE_ARCH = YES;
 				ONLY_ACTIVE_ARCH = YES;
-				PRELINK_LIBS = "";
+				OTHER_LDFLAGS = "$(CONFIG_FRAMEWORK_LDFLAGS)";
+				PRODUCT_BUNDLE_IDENTIFIER = "org.libsdl.$(PRODUCT_NAME)";
 				SDKROOT = iphoneos;
 				SDKROOT = iphoneos;
-				TARGETED_DEVICE_FAMILY = "1,2";
+				TVOS_DEPLOYMENT_TARGET = 9.0;
 			};
 			};
 			name = Debug;
 			name = Debug;
 		};
 		};
 		C01FCF5008A954540054247B /* Release */ = {
 		C01FCF5008A954540054247B /* Release */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
+			baseConfigurationReference = F3C17D9F28E437C300E1A26D /* config.xcconfig */;
 			buildSettings = {
 			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				CURRENT_PROJECT_VERSION = 1;
+				GCC_SYMBOLS_PRIVATE_EXTERN = YES;
+				GENERATE_INFOPLIST_FILE = YES;
 				HEADER_SEARCH_PATHS = ../../include;
 				HEADER_SEARCH_PATHS = ../../include;
-				PRELINK_LIBS = "";
+				INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+				LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
+				MARKETING_VERSION = 1.0;
+				OTHER_LDFLAGS = "$(CONFIG_FRAMEWORK_LDFLAGS)";
+				PRODUCT_BUNDLE_IDENTIFIER = "org.libsdl.$(PRODUCT_NAME)";
 				SDKROOT = iphoneos;
 				SDKROOT = iphoneos;
-				TARGETED_DEVICE_FAMILY = "1,2";
+				TVOS_DEPLOYMENT_TARGET = 9.0;
 			};
 			};
 			name = Release;
 			name = Release;
 		};
 		};
 		FA30DEA71BBF59D9009C397F /* Debug */ = {
 		FA30DEA71BBF59D9009C397F /* Debug */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			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_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;
-				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;
-				INFOPLIST_FILE = Info.plist;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
-				MTL_ENABLE_DEBUG_INFO = YES;
-				PRODUCT_BUNDLE_IDENTIFIER = "com.yourcompany.Happy-TV";
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SDKROOT = appletvos;
 				SDKROOT = appletvos;
 				TARGETED_DEVICE_FAMILY = 3;
 				TARGETED_DEVICE_FAMILY = 3;
@@ -1166,164 +884,94 @@
 		FA30DEA81BBF59D9009C397F /* Release */ = {
 		FA30DEA81BBF59D9009C397F /* Release */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			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_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_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;
-				INFOPLIST_FILE = Info.plist;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
-				MTL_ENABLE_DEBUG_INFO = NO;
-				PRODUCT_BUNDLE_IDENTIFIER = "com.yourcompany.Happy-TV";
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SDKROOT = appletvos;
 				SDKROOT = appletvos;
 				TARGETED_DEVICE_FAMILY = 3;
 				TARGETED_DEVICE_FAMILY = 3;
 				TVOS_DEPLOYMENT_TARGET = 9.0;
 				TVOS_DEPLOYMENT_TARGET = 9.0;
-				VALIDATE_PRODUCT = YES;
 			};
 			};
 			name = Release;
 			name = Release;
 		};
 		};
 		FD15FCB50E086866003BDF25 /* Debug */ = {
 		FD15FCB50E086866003BDF25 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				GCC_DYNAMIC_NO_PIC = NO;
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.Happy;
 				PRODUCT_NAME = Happy;
 				PRODUCT_NAME = Happy;
-				SDKROOT = iphoneos;
 			};
 			};
 			name = Debug;
 			name = Debug;
 		};
 		};
 		FD15FCB60E086866003BDF25 /* Release */ = {
 		FD15FCB60E086866003BDF25 /* Release */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.Happy;
 				PRODUCT_NAME = Happy;
 				PRODUCT_NAME = Happy;
-				SDKROOT = iphoneos;
 			};
 			};
 			name = Release;
 			name = Release;
 		};
 		};
 		FD5F9BE70E0DEBEB008E885B /* Debug */ = {
 		FD5F9BE70E0DEBEB008E885B /* Debug */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.Accel;
 				PRODUCT_NAME = Accel;
 				PRODUCT_NAME = Accel;
-				SDKROOT = iphoneos;
 			};
 			};
 			name = Debug;
 			name = Debug;
 		};
 		};
 		FD5F9BE80E0DEBEB008E885B /* Release */ = {
 		FD5F9BE80E0DEBEB008E885B /* Release */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.Accel;
 				PRODUCT_NAME = Accel;
 				PRODUCT_NAME = Accel;
-				SDKROOT = iphoneos;
 			};
 			};
 			name = Release;
 			name = Release;
 		};
 		};
 		FDB6520A0E43D1F300F688B5 /* Debug */ = {
 		FDB6520A0E43D1F300F688B5 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.Keyboard;
 				PRODUCT_NAME = Keyboard;
 				PRODUCT_NAME = Keyboard;
-				SDKROOT = iphoneos;
 			};
 			};
 			name = Debug;
 			name = Debug;
 		};
 		};
 		FDB6520B0E43D1F300F688B5 /* Release */ = {
 		FDB6520B0E43D1F300F688B5 /* Release */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.Keyboard;
 				PRODUCT_NAME = Keyboard;
 				PRODUCT_NAME = Keyboard;
-				SDKROOT = iphoneos;
 			};
 			};
 			name = Release;
 			name = Release;
 		};
 		};
 		FDC202EC0E107B1200ABAC90 /* Debug */ = {
 		FDC202EC0E107B1200ABAC90 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.Touch;
 				PRODUCT_NAME = Touch;
 				PRODUCT_NAME = Touch;
-				SDKROOT = iphoneos;
 			};
 			};
 			name = Debug;
 			name = Debug;
 		};
 		};
 		FDC202ED0E107B1200ABAC90 /* Release */ = {
 		FDC202ED0E107B1200ABAC90 /* Release */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.Touch;
 				PRODUCT_NAME = Touch;
 				PRODUCT_NAME = Touch;
-				SDKROOT = iphoneos;
 			};
 			};
 			name = Release;
 			name = Release;
 		};
 		};
 		FDC52EDC0E2843D6008D768C /* Debug */ = {
 		FDC52EDC0E2843D6008D768C /* Debug */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.Fireworks;
 				PRODUCT_NAME = Fireworks;
 				PRODUCT_NAME = Fireworks;
-				SDKROOT = iphoneos;
 			};
 			};
 			name = Debug;
 			name = Debug;
 		};
 		};
 		FDC52EDD0E2843D6008D768C /* Release */ = {
 		FDC52EDD0E2843D6008D768C /* Release */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.Fireworks;
 				PRODUCT_NAME = Fireworks;
 				PRODUCT_NAME = Fireworks;
-				SDKROOT = iphoneos;
 			};
 			};
 			name = Release;
 			name = Release;
 		};
 		};
 		FDF0D6A20E12D05400247964 /* Debug */ = {
 		FDF0D6A20E12D05400247964 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.Mixer;
 				PRODUCT_NAME = Mixer;
 				PRODUCT_NAME = Mixer;
-				SDKROOT = iphoneos;
 			};
 			};
 			name = Debug;
 			name = Debug;
 		};
 		};
 		FDF0D6A30E12D05400247964 /* Release */ = {
 		FDF0D6A30E12D05400247964 /* Release */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.Mixer;
 				PRODUCT_NAME = Mixer;
 				PRODUCT_NAME = Mixer;
-				SDKROOT = iphoneos;
 			};
 			};
 			name = Release;
 			name = Release;
 		};
 		};

+ 1 - 1
Xcode-iOS/Demos/README

@@ -2,7 +2,7 @@
 About the iPhone OS Demo Applications
 About the iPhone OS Demo Applications
 ==============================================================================
 ==============================================================================
 
 
-Demos.xcodeproj contains several targets for iPhone oriented SDL demos.  These demos are written strictly using SDL 2.0 calls.  All the demos except for Fireworks (which requires OpenGL ES) should work on platforms other than iPhone OS, though you'll need to write your own compile script.
+Demos.xcodeproj contains several targets for iPhone oriented SDL demos.  These demos are written strictly using SDL 3.0 calls.  All the demos except for Fireworks (which requires OpenGL ES) should work on platforms other than iPhone OS, though you'll need to write your own compile script.
 
 
 Common files:
 Common files:
 
 

+ 14 - 0
Xcode-iOS/Demos/config.xcconfig

@@ -0,0 +1,14 @@
+//
+//  config.xcconfig
+//  SDL tests
+//
+
+// Configuration settings file format documentation can be found at:
+// https://help.apple.com/xcode/#/dev745c5c974
+
+// Include any optional config for this build
+#include? "build.xcconfig"
+
+CONFIG_FRAMEWORK_LDFLAGS[sdk=macos*] = $(inherited) -framework SDL3 -framework AudioToolbox -framework Carbon -framework Cocoa -framework CoreAudio -framework CoreHaptics -framework CoreVideo -framework ForceFeedback -framework GameController -framework IOKit -framework Metal
+CONFIG_FRAMEWORK_LDFLAGS[sdk=iphone*] = $(inherited) -framework AVFoundation -framework AudioToolbox -framework CoreGraphics -framework CoreHaptics -framework CoreMotion -framework Foundation -framework GameController -framework Metal -framework OpenGLES -framework QuartzCore -framework UIKit
+CONFIG_FRAMEWORK_LDFLAGS[sdk=appletv*] = $(inherited) -framework AVFoundation -framework AudioToolbox -framework CoreGraphics -framework CoreHaptics -framework Foundation -framework GameController -framework Metal -framework OpenGLES -framework QuartzCore -framework UIKit

+ 2 - 2
Xcode-iOS/Demos/src/accelerometer.c

@@ -127,7 +127,7 @@ initializeTextures(SDL_Renderer *renderer)
 
 
     /* create ship texture from surface */
     /* create ship texture from surface */
     ship = SDL_CreateTextureFromSurface(renderer, bmp_surface);
     ship = SDL_CreateTextureFromSurface(renderer, bmp_surface);
-    if (ship == 0) {
+    if (!ship) {
         fatalError("could not create ship texture");
         fatalError("could not create ship texture");
     }
     }
     SDL_SetTextureBlendMode(ship, SDL_BLENDMODE_BLEND);
     SDL_SetTextureBlendMode(ship, SDL_BLENDMODE_BLEND);
@@ -145,7 +145,7 @@ initializeTextures(SDL_Renderer *renderer)
     }
     }
     /* create space texture from surface */
     /* create space texture from surface */
     space = SDL_CreateTextureFromSurface(renderer, bmp_surface);
     space = SDL_CreateTextureFromSurface(renderer, bmp_surface);
-    if (space == 0) {
+    if (!space) {
         fatalError("could not create space texture");
         fatalError("could not create space texture");
     }
     }
     SDL_FreeSurface(bmp_surface);
     SDL_FreeSurface(bmp_surface);

+ 1 - 1
Xcode-iOS/Demos/src/happy.c

@@ -117,7 +117,7 @@ initializeTexture(SDL_Renderer *renderer)
 
 
     /* convert RGBA surface to texture */
     /* convert RGBA surface to texture */
     texture = SDL_CreateTextureFromSurface(renderer, bmp_surface);
     texture = SDL_CreateTextureFromSurface(renderer, bmp_surface);
-    if (texture == 0) {
+    if (!texture) {
         fatalError("could not create texture");
         fatalError("could not create texture");
     }
     }
     SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND);
     SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND);

+ 1 - 1
Xcode-iOS/Demos/src/keyboard.c

@@ -183,7 +183,7 @@ loadFont(void)
         SDL_BlitSurface(surface, NULL, converted, NULL);
         SDL_BlitSurface(surface, NULL, converted, NULL);
         /* create our texture */
         /* create our texture */
         texture = SDL_CreateTextureFromSurface(renderer, converted);
         texture = SDL_CreateTextureFromSurface(renderer, converted);
-        if (texture == 0) {
+        if (!texture) {
             printf("texture creation failed: %s\n", SDL_GetError());
             printf("texture creation failed: %s\n", SDL_GetError());
         } else {
         } else {
             /* set blend mode for our texture */
             /* set blend mode for our texture */

+ 1 - 1
Xcode-iOS/Demos/src/rectangles.c

@@ -58,7 +58,7 @@ main(int argc, char *argv[])
 
 
     /* create window and renderer */
     /* create window and renderer */
     window = SDL_CreateWindow(NULL, 0, 0, 320, 480, SDL_WINDOW_ALLOW_HIGHDPI);
     window = SDL_CreateWindow(NULL, 0, 0, 320, 480, SDL_WINDOW_ALLOW_HIGHDPI);
-    if (window == 0) {
+    if (!window) {
         fatalError("Could not initialize Window");
         fatalError("Could not initialize Window");
     }
     }
     renderer = SDL_CreateRenderer(window, -1, 0);
     renderer = SDL_CreateRenderer(window, -1, 0);

+ 1 - 1
Xcode-iOS/Demos/src/touch.c

@@ -63,7 +63,7 @@ initializeTexture(SDL_Renderer *renderer)
     brush =
     brush =
         SDL_CreateTextureFromSurface(renderer, bmp_surface);
         SDL_CreateTextureFromSurface(renderer, bmp_surface);
     SDL_FreeSurface(bmp_surface);
     SDL_FreeSurface(bmp_surface);
-    if (brush == 0) {
+    if (!brush) {
         fatalError("could not create brush texture");
         fatalError("could not create brush texture");
     }
     }
     /* additive blending -- laying strokes on top of eachother makes them brighter */
     /* additive blending -- laying strokes on top of eachother makes them brighter */

+ 0 - 422
Xcode-iOS/SDLtest/SDL2test.xcodeproj/project.pbxproj

@@ -1,422 +0,0 @@
-// !$*UTF8*$!
-{
-	archiveVersion = 1;
-	classes = {
-	};
-	objectVersion = 46;
-	objects = {
-
-/* Begin PBXBuildFile section */
-		AA1EE462176059AB0029C7A5 /* SDL_test_common.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE454176059AB0029C7A5 /* SDL_test_common.c */; };
-		AA1EE463176059AB0029C7A5 /* SDL_test_compare.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE455176059AB0029C7A5 /* SDL_test_compare.c */; };
-		AA1EE464176059AB0029C7A5 /* SDL_test_crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE456176059AB0029C7A5 /* SDL_test_crc32.c */; };
-		AA1EE465176059AB0029C7A5 /* SDL_test_font.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE457176059AB0029C7A5 /* SDL_test_font.c */; };
-		AA1EE466176059AB0029C7A5 /* SDL_test_fuzzer.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE458176059AB0029C7A5 /* SDL_test_fuzzer.c */; };
-		AA1EE467176059AB0029C7A5 /* SDL_test_harness.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE459176059AB0029C7A5 /* SDL_test_harness.c */; };
-		AA1EE468176059AB0029C7A5 /* SDL_test_imageBlit.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE45A176059AB0029C7A5 /* SDL_test_imageBlit.c */; };
-		AA1EE469176059AB0029C7A5 /* SDL_test_imageBlitBlend.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE45B176059AB0029C7A5 /* SDL_test_imageBlitBlend.c */; };
-		AA1EE46A176059AB0029C7A5 /* SDL_test_imageFace.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE45C176059AB0029C7A5 /* SDL_test_imageFace.c */; };
-		AA1EE46B176059AB0029C7A5 /* SDL_test_imagePrimitives.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE45D176059AB0029C7A5 /* SDL_test_imagePrimitives.c */; };
-		AA1EE46C176059AB0029C7A5 /* SDL_test_imagePrimitivesBlend.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE45E176059AB0029C7A5 /* SDL_test_imagePrimitivesBlend.c */; };
-		AA1EE46D176059AB0029C7A5 /* SDL_test_log.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE45F176059AB0029C7A5 /* SDL_test_log.c */; };
-		AA1EE46E176059AB0029C7A5 /* SDL_test_md5.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE460176059AB0029C7A5 /* SDL_test_md5.c */; };
-		AA1EE46F176059AB0029C7A5 /* SDL_test_random.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE461176059AB0029C7A5 /* SDL_test_random.c */; };
-		AAF030011F9009B100B9A9FB /* SDL_test_memory.c in Sources */ = {isa = PBXBuildFile; fileRef = AAF02FFF1F9009B100B9A9FB /* SDL_test_memory.c */; };
-		AAF030021F9009B100B9A9FB /* SDL_test_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = AAF030001F9009B100B9A9FB /* SDL_test_assert.c */; };
-		FA3D99011BC4E5BC002C96C8 /* SDL_test_common.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE454176059AB0029C7A5 /* SDL_test_common.c */; };
-		FA3D99021BC4E5BC002C96C8 /* SDL_test_compare.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE455176059AB0029C7A5 /* SDL_test_compare.c */; };
-		FA3D99031BC4E5BC002C96C8 /* SDL_test_crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE456176059AB0029C7A5 /* SDL_test_crc32.c */; };
-		FA3D99041BC4E5BC002C96C8 /* SDL_test_font.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE457176059AB0029C7A5 /* SDL_test_font.c */; };
-		FA3D99051BC4E5BC002C96C8 /* SDL_test_fuzzer.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE458176059AB0029C7A5 /* SDL_test_fuzzer.c */; };
-		FA3D99061BC4E5BC002C96C8 /* SDL_test_harness.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE459176059AB0029C7A5 /* SDL_test_harness.c */; };
-		FA3D99071BC4E5BC002C96C8 /* SDL_test_imageBlit.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE45A176059AB0029C7A5 /* SDL_test_imageBlit.c */; };
-		FA3D99081BC4E5BC002C96C8 /* SDL_test_imageBlitBlend.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE45B176059AB0029C7A5 /* SDL_test_imageBlitBlend.c */; };
-		FA3D99091BC4E5BC002C96C8 /* SDL_test_imageFace.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE45C176059AB0029C7A5 /* SDL_test_imageFace.c */; };
-		FA3D990A1BC4E5BC002C96C8 /* SDL_test_imagePrimitives.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE45D176059AB0029C7A5 /* SDL_test_imagePrimitives.c */; };
-		FA3D990B1BC4E5BC002C96C8 /* SDL_test_imagePrimitivesBlend.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE45E176059AB0029C7A5 /* SDL_test_imagePrimitivesBlend.c */; };
-		FA3D990C1BC4E5BC002C96C8 /* SDL_test_log.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE45F176059AB0029C7A5 /* SDL_test_log.c */; };
-		FA3D990D1BC4E5BC002C96C8 /* SDL_test_md5.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE460176059AB0029C7A5 /* SDL_test_md5.c */; };
-		FA3D990E1BC4E5BC002C96C8 /* SDL_test_random.c in Sources */ = {isa = PBXBuildFile; fileRef = AA1EE461176059AB0029C7A5 /* SDL_test_random.c */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXCopyFilesBuildPhase section */
-		FA3D98F61BC4E5A2002C96C8 /* CopyFiles */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 2147483647;
-			dstPath = "include/$(PRODUCT_NAME)";
-			dstSubfolderSpec = 16;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXCopyFilesBuildPhase section */
-
-/* Begin PBXFileReference section */
-		AA1EE4461760589B0029C7A5 /* libSDL2test.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSDL2test.a; sourceTree = BUILT_PRODUCTS_DIR; };
-		AA1EE454176059AB0029C7A5 /* SDL_test_common.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_common.c; sourceTree = "<group>"; };
-		AA1EE455176059AB0029C7A5 /* SDL_test_compare.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_compare.c; sourceTree = "<group>"; };
-		AA1EE456176059AB0029C7A5 /* SDL_test_crc32.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_crc32.c; sourceTree = "<group>"; };
-		AA1EE457176059AB0029C7A5 /* SDL_test_font.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_font.c; sourceTree = "<group>"; };
-		AA1EE458176059AB0029C7A5 /* SDL_test_fuzzer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_fuzzer.c; sourceTree = "<group>"; };
-		AA1EE459176059AB0029C7A5 /* SDL_test_harness.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_harness.c; sourceTree = "<group>"; };
-		AA1EE45A176059AB0029C7A5 /* SDL_test_imageBlit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_imageBlit.c; sourceTree = "<group>"; };
-		AA1EE45B176059AB0029C7A5 /* SDL_test_imageBlitBlend.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_imageBlitBlend.c; sourceTree = "<group>"; };
-		AA1EE45C176059AB0029C7A5 /* SDL_test_imageFace.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_imageFace.c; sourceTree = "<group>"; };
-		AA1EE45D176059AB0029C7A5 /* SDL_test_imagePrimitives.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_imagePrimitives.c; sourceTree = "<group>"; };
-		AA1EE45E176059AB0029C7A5 /* SDL_test_imagePrimitivesBlend.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_imagePrimitivesBlend.c; sourceTree = "<group>"; };
-		AA1EE45F176059AB0029C7A5 /* SDL_test_log.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_log.c; sourceTree = "<group>"; };
-		AA1EE460176059AB0029C7A5 /* SDL_test_md5.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_md5.c; sourceTree = "<group>"; };
-		AA1EE461176059AB0029C7A5 /* SDL_test_random.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_random.c; sourceTree = "<group>"; };
-		AAF02FFF1F9009B100B9A9FB /* SDL_test_memory.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_memory.c; sourceTree = "<group>"; };
-		AAF030001F9009B100B9A9FB /* SDL_test_assert.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_assert.c; sourceTree = "<group>"; };
-		FA3D98F81BC4E5A2002C96C8 /* libSDL2test-TV.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libSDL2test-TV.a"; sourceTree = BUILT_PRODUCTS_DIR; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
-		AA1EE4431760589B0029C7A5 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FA3D98F51BC4E5A2002C96C8 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
-		AA1EE43D1760589B0029C7A5 = {
-			isa = PBXGroup;
-			children = (
-				AA1EE453176059770029C7A5 /* Library Source */,
-				AA1EE4471760589B0029C7A5 /* Products */,
-			);
-			sourceTree = "<group>";
-		};
-		AA1EE4471760589B0029C7A5 /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				AA1EE4461760589B0029C7A5 /* libSDL2test.a */,
-				FA3D98F81BC4E5A2002C96C8 /* libSDL2test-TV.a */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-		AA1EE453176059770029C7A5 /* Library Source */ = {
-			isa = PBXGroup;
-			children = (
-				AAF030001F9009B100B9A9FB /* SDL_test_assert.c */,
-				AA1EE454176059AB0029C7A5 /* SDL_test_common.c */,
-				AA1EE455176059AB0029C7A5 /* SDL_test_compare.c */,
-				AA1EE456176059AB0029C7A5 /* SDL_test_crc32.c */,
-				AA1EE457176059AB0029C7A5 /* SDL_test_font.c */,
-				AA1EE458176059AB0029C7A5 /* SDL_test_fuzzer.c */,
-				AA1EE459176059AB0029C7A5 /* SDL_test_harness.c */,
-				AA1EE45A176059AB0029C7A5 /* SDL_test_imageBlit.c */,
-				AA1EE45B176059AB0029C7A5 /* SDL_test_imageBlitBlend.c */,
-				AA1EE45C176059AB0029C7A5 /* SDL_test_imageFace.c */,
-				AA1EE45D176059AB0029C7A5 /* SDL_test_imagePrimitives.c */,
-				AA1EE45E176059AB0029C7A5 /* SDL_test_imagePrimitivesBlend.c */,
-				AA1EE45F176059AB0029C7A5 /* SDL_test_log.c */,
-				AA1EE460176059AB0029C7A5 /* SDL_test_md5.c */,
-				AAF02FFF1F9009B100B9A9FB /* SDL_test_memory.c */,
-				AA1EE461176059AB0029C7A5 /* SDL_test_random.c */,
-			);
-			name = "Library Source";
-			path = ../../src/test;
-			sourceTree = "<group>";
-		};
-/* End PBXGroup section */
-
-/* Begin PBXHeadersBuildPhase section */
-		AA1EE4441760589B0029C7A5 /* Headers */ = {
-			isa = PBXHeadersBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXHeadersBuildPhase section */
-
-/* Begin PBXNativeTarget section */
-		AA1EE4451760589B0029C7A5 /* SDL2test */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = AA1EE44A1760589B0029C7A5 /* Build configuration list for PBXNativeTarget "SDL2test" */;
-			buildPhases = (
-				AA1EE4421760589B0029C7A5 /* Sources */,
-				AA1EE4431760589B0029C7A5 /* Frameworks */,
-				AA1EE4441760589B0029C7A5 /* Headers */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = SDL2test;
-			productName = SDL2test;
-			productReference = AA1EE4461760589B0029C7A5 /* libSDL2test.a */;
-			productType = "com.apple.product-type.library.static";
-		};
-		FA3D98F71BC4E5A2002C96C8 /* SDL2test-TV */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = FA3D99001BC4E5A3002C96C8 /* Build configuration list for PBXNativeTarget "SDL2test-TV" */;
-			buildPhases = (
-				FA3D98F41BC4E5A2002C96C8 /* Sources */,
-				FA3D98F51BC4E5A2002C96C8 /* Frameworks */,
-				FA3D98F61BC4E5A2002C96C8 /* CopyFiles */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = "SDL2test-TV";
-			productName = "SDL2test-TV";
-			productReference = FA3D98F81BC4E5A2002C96C8 /* libSDL2test-TV.a */;
-			productType = "com.apple.product-type.library.static";
-		};
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
-		AA1EE43E1760589B0029C7A5 /* Project object */ = {
-			isa = PBXProject;
-			attributes = {
-				LastUpgradeCheck = 0460;
-				ORGANIZATIONNAME = "Sam Lantinga";
-				TargetAttributes = {
-					FA3D98F71BC4E5A2002C96C8 = {
-						CreatedOnToolsVersion = 7.1;
-					};
-				};
-			};
-			buildConfigurationList = AA1EE4411760589B0029C7A5 /* Build configuration list for PBXProject "SDL2test" */;
-			compatibilityVersion = "Xcode 3.2";
-			developmentRegion = English;
-			hasScannedForEncodings = 0;
-			knownRegions = (
-				en,
-			);
-			mainGroup = AA1EE43D1760589B0029C7A5;
-			productRefGroup = AA1EE4471760589B0029C7A5 /* Products */;
-			projectDirPath = "";
-			projectRoot = "";
-			targets = (
-				AA1EE4451760589B0029C7A5 /* SDL2test */,
-				FA3D98F71BC4E5A2002C96C8 /* SDL2test-TV */,
-			);
-		};
-/* End PBXProject section */
-
-/* Begin PBXSourcesBuildPhase section */
-		AA1EE4421760589B0029C7A5 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				AA1EE462176059AB0029C7A5 /* SDL_test_common.c in Sources */,
-				AA1EE463176059AB0029C7A5 /* SDL_test_compare.c in Sources */,
-				AA1EE464176059AB0029C7A5 /* SDL_test_crc32.c in Sources */,
-				AA1EE465176059AB0029C7A5 /* SDL_test_font.c in Sources */,
-				AA1EE466176059AB0029C7A5 /* SDL_test_fuzzer.c in Sources */,
-				AAF030021F9009B100B9A9FB /* SDL_test_assert.c in Sources */,
-				AA1EE467176059AB0029C7A5 /* SDL_test_harness.c in Sources */,
-				AA1EE468176059AB0029C7A5 /* SDL_test_imageBlit.c in Sources */,
-				AA1EE469176059AB0029C7A5 /* SDL_test_imageBlitBlend.c in Sources */,
-				AA1EE46A176059AB0029C7A5 /* SDL_test_imageFace.c in Sources */,
-				AA1EE46B176059AB0029C7A5 /* SDL_test_imagePrimitives.c in Sources */,
-				AA1EE46C176059AB0029C7A5 /* SDL_test_imagePrimitivesBlend.c in Sources */,
-				AAF030011F9009B100B9A9FB /* SDL_test_memory.c in Sources */,
-				AA1EE46D176059AB0029C7A5 /* SDL_test_log.c in Sources */,
-				AA1EE46E176059AB0029C7A5 /* SDL_test_md5.c in Sources */,
-				AA1EE46F176059AB0029C7A5 /* SDL_test_random.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FA3D98F41BC4E5A2002C96C8 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FA3D99011BC4E5BC002C96C8 /* SDL_test_common.c in Sources */,
-				FA3D99021BC4E5BC002C96C8 /* SDL_test_compare.c in Sources */,
-				FA3D99031BC4E5BC002C96C8 /* SDL_test_crc32.c in Sources */,
-				FA3D99041BC4E5BC002C96C8 /* SDL_test_font.c in Sources */,
-				FA3D99051BC4E5BC002C96C8 /* SDL_test_fuzzer.c in Sources */,
-				FA3D99061BC4E5BC002C96C8 /* SDL_test_harness.c in Sources */,
-				FA3D99071BC4E5BC002C96C8 /* SDL_test_imageBlit.c in Sources */,
-				FA3D99081BC4E5BC002C96C8 /* SDL_test_imageBlitBlend.c in Sources */,
-				FA3D99091BC4E5BC002C96C8 /* SDL_test_imageFace.c in Sources */,
-				FA3D990A1BC4E5BC002C96C8 /* SDL_test_imagePrimitives.c in Sources */,
-				FA3D990B1BC4E5BC002C96C8 /* SDL_test_imagePrimitivesBlend.c in Sources */,
-				FA3D990C1BC4E5BC002C96C8 /* SDL_test_log.c in Sources */,
-				FA3D990D1BC4E5BC002C96C8 /* SDL_test_md5.c in Sources */,
-				FA3D990E1BC4E5BC002C96C8 /* SDL_test_random.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXSourcesBuildPhase section */
-
-/* Begin XCBuildConfiguration section */
-		AA1EE4481760589B0029C7A5 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
-				CLANG_CXX_LIBRARY = "libc++";
-				CLANG_WARN_CONSTANT_CONVERSION = YES;
-				CLANG_WARN_EMPTY_BODY = YES;
-				CLANG_WARN_ENUM_CONVERSION = YES;
-				CLANG_WARN_INT_CONVERSION = YES;
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				COPY_PHASE_STRIP = NO;
-				GCC_C_LANGUAGE_STANDARD = gnu99;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				GCC_PREPROCESSOR_DEFINITIONS = (
-					"DEBUG=1",
-					"$(inherited)",
-				);
-				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				HEADER_SEARCH_PATHS = ../../include;
-				MACOSX_DEPLOYMENT_TARGET = 10.8;
-				ONLY_ACTIVE_ARCH = YES;
-				SDKROOT = iphoneos;
-			};
-			name = Debug;
-		};
-		AA1EE4491760589B0029C7A5 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
-				CLANG_CXX_LIBRARY = "libc++";
-				CLANG_WARN_CONSTANT_CONVERSION = YES;
-				CLANG_WARN_EMPTY_BODY = YES;
-				CLANG_WARN_ENUM_CONVERSION = YES;
-				CLANG_WARN_INT_CONVERSION = YES;
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				COPY_PHASE_STRIP = YES;
-				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
-				GCC_C_LANGUAGE_STANDARD = gnu99;
-				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				HEADER_SEARCH_PATHS = ../../include;
-				MACOSX_DEPLOYMENT_TARGET = 10.8;
-				SDKROOT = iphoneos;
-			};
-			name = Release;
-		};
-		AA1EE44B1760589B0029C7A5 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				EXECUTABLE_PREFIX = lib;
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
-				PRODUCT_NAME = "$(TARGET_NAME)";
-			};
-			name = Debug;
-		};
-		AA1EE44C1760589B0029C7A5 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				EXECUTABLE_PREFIX = lib;
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
-				PRODUCT_NAME = "$(TARGET_NAME)";
-			};
-			name = Release;
-		};
-		FA3D98FE1BC4E5A3002C96C8 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				CLANG_ENABLE_MODULES = YES;
-				CLANG_ENABLE_OBJC_ARC = YES;
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
-				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				DEBUG_INFORMATION_FORMAT = dwarf;
-				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				ENABLE_TESTABILITY = YES;
-				GCC_NO_COMMON_BLOCKS = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				MTL_ENABLE_DEBUG_INFO = YES;
-				OTHER_LDFLAGS = "-ObjC";
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				SDKROOT = appletvos;
-				SKIP_INSTALL = YES;
-				TVOS_DEPLOYMENT_TARGET = 9.0;
-			};
-			name = Debug;
-		};
-		FA3D98FF1BC4E5A3002C96C8 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				CLANG_ENABLE_MODULES = YES;
-				CLANG_ENABLE_OBJC_ARC = YES;
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
-				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				COPY_PHASE_STRIP = NO;
-				ENABLE_NS_ASSERTIONS = NO;
-				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				GCC_NO_COMMON_BLOCKS = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				MTL_ENABLE_DEBUG_INFO = NO;
-				OTHER_LDFLAGS = "-ObjC";
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				SDKROOT = appletvos;
-				SKIP_INSTALL = YES;
-				TVOS_DEPLOYMENT_TARGET = 9.0;
-				VALIDATE_PRODUCT = YES;
-			};
-			name = Release;
-		};
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
-		AA1EE4411760589B0029C7A5 /* Build configuration list for PBXProject "SDL2test" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				AA1EE4481760589B0029C7A5 /* Debug */,
-				AA1EE4491760589B0029C7A5 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		AA1EE44A1760589B0029C7A5 /* Build configuration list for PBXNativeTarget "SDL2test" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				AA1EE44B1760589B0029C7A5 /* Debug */,
-				AA1EE44C1760589B0029C7A5 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		FA3D99001BC4E5A3002C96C8 /* Build configuration list for PBXNativeTarget "SDL2test-TV" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				FA3D98FE1BC4E5A3002C96C8 /* Debug */,
-				FA3D98FF1BC4E5A3002C96C8 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-/* End XCConfigurationList section */
-	};
-	rootObject = AA1EE43E1760589B0029C7A5 /* Project object */;
-}

+ 0 - 34
Xcode-iOS/Test/Info.plist

@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>en</string>
-	<key>CFBundleDisplayName</key>
-	<string>${PRODUCT_NAME}</string>
-	<key>CFBundleExecutable</key>
-	<string>${EXECUTABLE_NAME}</string>
-	<key>CFBundleIconFile</key>
-	<string></string>
-	<key>CFBundleIdentifier</key>
-	<string>com.yourcompany.${PRODUCT_NAME}</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleName</key>
-	<string>${PRODUCT_NAME}</string>
-	<key>CFBundlePackageType</key>
-	<string>APPL</string>
-	<key>CFBundleShortVersionString</key>
-	<string>1.0</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>1.0</string>
-	<key>UIApplicationSupportsIndirectInputEvents</key>
-	<true/>
-	<key>NSBluetoothAlwaysUsageDescription</key>
-	<string>Steam Link would like to use Bluetooth controllers for input.</string>
-	<key>NSBluetoothPeripheralUsageDescription</key>
-	<string>Steam Link would like to use Bluetooth controllers for input.</string>
-</dict>
-</plist>

+ 0 - 11
Xcode-iOS/Test/README

@@ -1,11 +0,0 @@
-TestiPhoneOS.xcodeproj contains targets to compile many of the SDL test programs for iPhone OS.  Most of these test programs work fine, with the following exceptions:
-
-testthread:
-	SIGTERM kills the process immediately without executing the 'kill' function.  The posix standard says this shouldn't happen.  Apple seems intent on having iPhone apps exit promptly when the user requests it, so maybe that's why(?)
-
-testlock:
-	Locks appear to work, but there doesn't appear to be a simple way to send the process SIGINT.
-
-testsprite2: 
-	SDL_CreateTextureFromSurface requests an ARGB pixel format, but iPhone's SDL video driver only supports ABGR.
-

+ 0 - 3703
Xcode-iOS/Test/TestiPhoneOS.xcodeproj/project.pbxproj

@@ -1,3703 +0,0 @@
-// !$*UTF8*$!
-{
-	archiveVersion = 1;
-	classes = {
-	};
-	objectVersion = 46;
-	objects = {
-
-/* Begin PBXBuildFile section */
-		046CEF7713254F23007AD51D /* icon.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FDA8AAD90E2D33B000EA573E /* icon.bmp */; };
-		046CEF7C13254F23007AD51D /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		046CEF7D13254F23007AD51D /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		046CEF7E13254F23007AD51D /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		046CEF7F13254F23007AD51D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		046CEF8013254F23007AD51D /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		046CEF8113254F23007AD51D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		046CEF8213254F23007AD51D /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		046CEF8A13254F63007AD51D /* testgesture.c in Sources */ = {isa = PBXBuildFile; fileRef = 046CEF8913254F63007AD51D /* testgesture.c */; };
-		047A63E313285C3200CD7973 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		047A63E413285C3200CD7973 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		047A63E513285C3200CD7973 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		047A63E613285C3200CD7973 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		047A63E713285C3200CD7973 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		047A63E813285C3200CD7973 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		047A63E913285C3200CD7973 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		047A63F113285CD100CD7973 /* checkkeys.c in Sources */ = {isa = PBXBuildFile; fileRef = 047A63F013285CD100CD7973 /* checkkeys.c */; };
-		56ED04FE118A8FE400A56AA6 /* icon.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FDA8AAD90E2D33B000EA573E /* icon.bmp */; };
-		56ED0503118A8FE400A56AA6 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		56ED0504118A8FE400A56AA6 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		56ED0505118A8FE400A56AA6 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		56ED0506118A8FE400A56AA6 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		56ED0507118A8FE400A56AA6 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		56ED0508118A8FE400A56AA6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		56ED0509118A8FE400A56AA6 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		56ED0511118A904200A56AA6 /* testpower.c in Sources */ = {isa = PBXBuildFile; fileRef = 56ED0510118A904200A56AA6 /* testpower.c */; };
-		AA13B3171FB8AEBC00D9FEE6 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		AA13B3181FB8AEBC00D9FEE6 /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AA1EE452176059230029C7A5 /* libSDL2test.a */; };
-		AA13B31A1FB8AEBC00D9FEE6 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		AA13B31B1FB8AEBC00D9FEE6 /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		AA13B31C1FB8AEBC00D9FEE6 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		AA13B31D1FB8AEBC00D9FEE6 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		AA13B31E1FB8AEBC00D9FEE6 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		AA13B31F1FB8AEBC00D9FEE6 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		AA13B3201FB8AEBC00D9FEE6 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		AA13B3211FB8AEBC00D9FEE6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		AA13B3221FB8AEBC00D9FEE6 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		AA13B32F1FB8AF0C00D9FEE6 /* testyuv.bmp in Resources */ = {isa = PBXBuildFile; fileRef = AA13B32E1FB8AF0C00D9FEE6 /* testyuv.bmp */; };
-		AA13B3301FB8AF2300D9FEE6 /* testyuv.bmp in Resources */ = {isa = PBXBuildFile; fileRef = AA13B32E1FB8AF0C00D9FEE6 /* testyuv.bmp */; };
-		AA13B35D1FB8B4E200D9FEE6 /* testyuv.c in Sources */ = {isa = PBXBuildFile; fileRef = AA13B35B1FB8B4D600D9FEE6 /* testyuv.c */; };
-		AA13B3611FB8B52500D9FEE6 /* testyuv_cvt.c in Sources */ = {isa = PBXBuildFile; fileRef = AA13B35E1FB8B50D00D9FEE6 /* testyuv_cvt.c */; };
-		AA1EE470176059D00029C7A5 /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AA1EE452176059230029C7A5 /* libSDL2test.a */; };
-		AA1EE47117605A7F0029C7A5 /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AA1EE452176059230029C7A5 /* libSDL2test.a */; };
-		AA1EE47417605B5C0029C7A5 /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AA1EE452176059230029C7A5 /* libSDL2test.a */; };
-		AA1EE47517605B930029C7A5 /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AA1EE452176059230029C7A5 /* libSDL2test.a */; };
-		AA1EE47617605B9E0029C7A5 /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AA1EE452176059230029C7A5 /* libSDL2test.a */; };
-		AA1EE47717605BAB0029C7A5 /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AA1EE452176059230029C7A5 /* libSDL2test.a */; };
-		AA1EE47817605BF60029C7A5 /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AA1EE452176059230029C7A5 /* libSDL2test.a */; };
-		AA2F57AA1FDB544800832AD7 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		AA2F57AB1FDB5A0900832AD7 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		AA2F57AC1FDB5AB600832AD7 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		AAE7DEDC14CBB1E100DF1A0E /* icon.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FDA8AAD90E2D33B000EA573E /* icon.bmp */; };
-		AAE7DEE214CBB1E100DF1A0E /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		AAE7DEE314CBB1E100DF1A0E /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		AAE7DEE414CBB1E100DF1A0E /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		AAE7DEE514CBB1E100DF1A0E /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		AAE7DEE614CBB1E100DF1A0E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		AAE7DEE714CBB1E100DF1A0E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		AAE7DEE814CBB1E100DF1A0E /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		AAE7DF4614CBB43900DF1A0E /* testscale.c in Sources */ = {isa = PBXBuildFile; fileRef = AAE7DF4514CBB43900DF1A0E /* testscale.c */; };
-		AAE7DF4714CBB45000DF1A0E /* sample.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FDA8AADE0E2D33C100EA573E /* sample.bmp */; };
-		AAE7DFA014CBB54E00DF1A0E /* icon.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FDA8AAD90E2D33B000EA573E /* icon.bmp */; };
-		AAE7DFA114CBB54E00DF1A0E /* sample.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FDA8AADE0E2D33C100EA573E /* sample.bmp */; };
-		AAE7DFA714CBB54E00DF1A0E /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		AAE7DFA814CBB54E00DF1A0E /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		AAE7DFA914CBB54E00DF1A0E /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		AAE7DFAA14CBB54E00DF1A0E /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		AAE7DFAB14CBB54E00DF1A0E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		AAE7DFAC14CBB54E00DF1A0E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		AAE7DFAD14CBB54E00DF1A0E /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		AAE7DFB514CBB5F700DF1A0E /* testrendertarget.c in Sources */ = {isa = PBXBuildFile; fileRef = AAE7DFB414CBB5F700DF1A0E /* testrendertarget.c */; };
-		F395BF862564186400942BFF /* icon.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FDA8AAD90E2D33B000EA573E /* icon.bmp */; };
-		F395BF8A2564186400942BFF /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F395BF8B2564186400942BFF /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		F395BF8C2564186400942BFF /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		F395BF8D2564186400942BFF /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		F395BF8E2564186400942BFF /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		F395BF8F2564186400942BFF /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395BF902564186400942BFF /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		F395BF912564186400942BFF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		F395BF922564186400942BFF /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		F395BF932564186400942BFF /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		F395BF942564186400942BFF /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		F395BF952564186400942BFF /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		F395BF962564186400942BFF /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		F395BFE2256418A700942BFF /* testsensor.c in Sources */ = {isa = PBXBuildFile; fileRef = F395BFE1256418A600942BFF /* testsensor.c */; };
-		F395C04F256419A500942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C0C825644AFE00942BFF /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F395C0C925644B0400942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C0E525644B3900942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C0E625644B5200942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F52555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C0E725644B6200942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C0E825644B6D00942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C0E925644B7700942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C0EA25644B8100942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; };
-		F395C10625644BDC00942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C10725644BE900942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C10825644BF600942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C10925644BFF00942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C10A25644C0A00942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C10B25644C1700942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C10C25644C2100942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C10D25644C2900942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C10E25644C3200942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C10F25644C3C00942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C11025644C4500942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C11125644C4E00942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C11225644C5900942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C11325644C6300942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C11425644C6D00942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C11525644C7600942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C11625644C7E00942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C11725644C8800942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F395C11825644C9100942BFF /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A4938E2555E2D500E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A493AC2555E30000E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A494022555E37A00E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A4941F2555E39600E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A494202555E39E00E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A494212555E3AE00E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A494222555E3B700E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A494232555E3C900E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E72555E1F100E92A8B /* libSDL2.a */; };
-		F3A494252555E3D100E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A494242555E3D100E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A494692555E42B00E92A8B /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A494682555E42B00E92A8B /* Metal.framework */; };
-		F3A494D12555E75200E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A494D22555E75B00E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A494D32555E76E00E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A494D42555E77400E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A494F12555E7B300E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A494F22555E7B900E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A494F32555E7D000E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A494F42555E7D800E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A494F52555E7F800E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E72555E1F100E92A8B /* libSDL2.a */; };
-		F3A494F62555E7FE00E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A494242555E3D100E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A494F72555E80E00E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A494FD2555E89700E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A494FE2555E8AA00E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A494FF2555E8B300E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A495002555E8C000E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A495012555E8D200E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A495022555E9BF00E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A495032555E9C600E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A495042555E9D900E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A495052555E9E000E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A495062555E9F100E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A495072555E9F700E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A495082555EA0300E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A495092555EA1200E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A4950A2555EA1D00E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A4950B2555EA2300E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A4950C2555EA3700E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A4950D2555EA3D00E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A4950E2555EA5E00E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A4950F2555EA6400E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A495102555EA7600E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A495112555EA7B00E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A495122555EA8700E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A495132555EA8C00E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A495142555EA9B00E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A495152555EAA100E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A495162555EAB000E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A495172555EABB00E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A495182555EAC500E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A495192555EACB00E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A4951A2555EADC00E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A4951B2555EAE200E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A4951C2555EB0E00E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A4951D2555EB1300E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A4951E2555EB2600E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A4951F2555EB2D00E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A4953D2555EB8100E92A8B /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A4953C2555EB8100E92A8B /* AVFoundation.framework */; };
-		F3A4955A2555EB9500E92A8B /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A494682555E42B00E92A8B /* Metal.framework */; };
-		F3A498732556005300E92A8B /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A498742556005300E92A8B /* hidapi.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
-		F3A498762556005D00E92A8B /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F52555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A498772556005D00E92A8B /* hidapi.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F52555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
-		F3A499B9255618AF00E92A8B /* controllermap.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FA0EF22A1BAF4487000E07A6 /* controllermap.bmp */; };
-		F3A499BA255618AF00E92A8B /* icon.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FDA8AAD90E2D33B000EA573E /* icon.bmp */; };
-		F3A499BB255618AF00E92A8B /* axis.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FA0EF2281BAF4487000E07A6 /* axis.bmp */; };
-		F3A499BC255618AF00E92A8B /* button.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FA0EF2291BAF4487000E07A6 /* button.bmp */; };
-		F3A499C0255618AF00E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492E52555E1F100E92A8B /* libSDL2.a */; };
-		F3A499C1255618AF00E92A8B /* hidapi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A499C2255618AF00E92A8B /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		F3A499C3255618AF00E92A8B /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		F3A499C4255618AF00E92A8B /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		F3A499C5255618AF00E92A8B /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		F3A499C6255618AF00E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A493AB2555E30000E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		F3A499C7255618AF00E92A8B /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		F3A499C8255618AF00E92A8B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		F3A499C9255618AF00E92A8B /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		F3A499CA255618AF00E92A8B /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		F3A499CB255618AF00E92A8B /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		F3A499CC255618AF00E92A8B /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		F3A499CD255618AF00E92A8B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		F3A499CF255618AF00E92A8B /* hidapi.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = F3A492F32555E1F100E92A8B /* hidapi.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
-		F3A49A822556190000E92A8B /* controllermap.c in Sources */ = {isa = PBXBuildFile; fileRef = F3A49A4C255618DD00E92A8B /* controllermap.c */; };
-		F3A49AFE2556A47500E92A8B /* controllermap_back.bmp in Resources */ = {isa = PBXBuildFile; fileRef = F3A49AFD2556A47500E92A8B /* controllermap_back.bmp */; };
-		F3A49AFF2556A47500E92A8B /* controllermap_back.bmp in Resources */ = {isa = PBXBuildFile; fileRef = F3A49AFD2556A47500E92A8B /* controllermap_back.bmp */; };
-		F3A49B002556A47500E92A8B /* controllermap_back.bmp in Resources */ = {isa = PBXBuildFile; fileRef = F3A49AFD2556A47500E92A8B /* controllermap_back.bmp */; };
-		F3F758D322AC561A001D97F2 /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AA1EE452176059230029C7A5 /* libSDL2test.a */; };
-		F3F758D422AC575F001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		F3F758D522AC57D8001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		F3F758D622AC5811001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		F3F758DA22AC59A5001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		F3F758DB22AC5A1B001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		F3F758DC22AC5A46001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		F3F758DD22AC5A6C001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		F3F758DE22AC5ABB001D97F2 /* testgamecontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = FA0EF2221BAF43DE000E07A6 /* testgamecontroller.c */; };
-		F3F758DF22AC5B94001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		F3F758E022AC5BB6001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		F3F758E122AC5BE9001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		F3F758E222AC5C12001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		F3F758E322AC5C34001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		F3F758E422AC5C83001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		F3F758E522AC5CA5001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		F3F758E622AC5CC5001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		F3F758E722AC5CFE001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		F3F758E822AC5D1B001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		F3F758E922AC5D51001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		F3F758EA22AC5D6B001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		F3F758EB22AC5D8B001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		F3F758EC22AC5DA6001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		F3F758ED22AC5DC5001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		F3F758EE22AC5DE1001D97F2 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2F57A91FDB544800832AD7 /* Metal.framework */; };
-		FA0EF22E1BAF4654000E07A6 /* testjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA8A74E0E2D0F1600EA573E /* testjoystick.c */; };
-		FA3D99481BC4E6AD002C96C8 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FA3D994A1BC4E6AD002C96C8 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		FA3D994B1BC4E6AD002C96C8 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		FA3D994C1BC4E6AD002C96C8 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		FA3D994D1BC4E6AD002C96C8 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		FA3D994E1BC4E6AD002C96C8 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		FA3D994F1BC4E6AD002C96C8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		FA3D99501BC4E6AD002C96C8 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		FA3D99521BC4E70C002C96C8 /* controllermap.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FA0EF22A1BAF4487000E07A6 /* controllermap.bmp */; };
-		FA3D99531BC4E70E002C96C8 /* axis.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FA0EF2281BAF4487000E07A6 /* axis.bmp */; };
-		FA3D99541BC4E70F002C96C8 /* button.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FA0EF2291BAF4487000E07A6 /* button.bmp */; };
-		FA3D99551BC4E712002C96C8 /* icon.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FDA8AAD90E2D33B000EA573E /* icon.bmp */; };
-		FA684F7B1BAF1A4400DCFD1A /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FA684F7F1BAF1A4D00DCFD1A /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FA684F801BAF1A5000DCFD1A /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FA684F811BAF1A5300DCFD1A /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FA684F821BAF1A5700DCFD1A /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FA684F831BAF1A5A00DCFD1A /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FA684F841BAF1A5C00DCFD1A /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FA684F851BAF1A6000DCFD1A /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FA684F861BAF1A6200DCFD1A /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FA684F871BAF1A6500DCFD1A /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FA684F881BAF1A6800DCFD1A /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FA684F891BAF1A6A00DCFD1A /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FA684F8A1BAF1A6D00DCFD1A /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FA684F8B1BAF1A7100DCFD1A /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FA684F8C1BAF1A7400DCFD1A /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FA684F8D1BAF1A7800DCFD1A /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FA684F8E1BAF1A7B00DCFD1A /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FA684F8F1BAF1A7E00DCFD1A /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FA684F901BAF1A8100DCFD1A /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FA684F911BAF1A8400DCFD1A /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FA684F921BAF1A8700DCFD1A /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FA684F931BAF1A8A00DCFD1A /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FA684F941BAF1A9400DCFD1A /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FA8B4BAD1967076F00F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BC9196766BC00F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BCD196766BF00F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BCE196766C100F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BCF196766C400F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BD0196766C600F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BD1196766C900F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BD2196766CB00F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BD3196766CE00F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BD4196766D100F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BD5196766D400F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BD6196766D700F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BD7196766DA00F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BD8196766DD00F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BD9196766E000F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BDA196766E200F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BDB196766E500F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BDC196766E800F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BDD196766EB00F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BDE196766EE00F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BDF196766F100F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BE0196766F400F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FA8B4BE1196766F600F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FABA34771D8B4EAD00915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA34831D8B575200915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA34851D8B575200915323 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FABA34861D8B575200915323 /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FABA34871D8B575200915323 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		FABA34881D8B575200915323 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		FABA34891D8B575200915323 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		FABA348A1D8B575200915323 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		FABA348B1D8B575200915323 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		FABA348C1D8B575200915323 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		FABA348D1D8B575200915323 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		FABA34951D8B578600915323 /* testaudiocapture.c in Sources */ = {isa = PBXBuildFile; fileRef = FABA34931D8B578200915323 /* testaudiocapture.c */; };
-		FABA34981D8B582100915323 /* sample.wav in Resources */ = {isa = PBXBuildFile; fileRef = FDA8AAE20E2D33C600EA573E /* sample.wav */; };
-		FABA349A1D8B582100915323 /* loopwave.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA8A78B0E2D0F3D00EA573E /* loopwave.c */; };
-		FABA349C1D8B582100915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA349E1D8B582100915323 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FABA34A01D8B582100915323 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		FABA34A11D8B582100915323 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		FABA34A21D8B582100915323 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		FABA34A31D8B582100915323 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		FABA34A41D8B582100915323 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		FABA34A51D8B582100915323 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		FABA34A61D8B582100915323 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		FABA34AE1D8B58B200915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA34B01D8B5B6400915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA34B11D8B5B6C00915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA34B21D8B5B7300915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA34B31D8B5B7800915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA34B41D8B5B7C00915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA34B51D8B5B8400915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA34B61D8B5B8900915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA34B71D8B5B8D00915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA34B81D8B5B9200915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA34B91D8B5B9600915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA34BA1D8B5B9B00915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA34BB1D8B5BA100915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA34BC1D8B5BA600915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA34BD1D8B5BAB00915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA34BE1D8B5BB000915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA34BF1D8B5BB500915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA34C01D8B5BBA00915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA34C11D8B5BBE00915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA34C21D8B5BC200915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA34C31D8B5BC600915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA34C41D8B5BCB00915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FABA34C51D8B5BD000915323 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FABA34761D8B4EAD00915323 /* AVFoundation.framework */; };
-		FAE0E9821BAF9B230098DFA4 /* icon.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FDA8AAD90E2D33B000EA573E /* icon.bmp */; };
-		FAE0E9871BAF9B230098DFA4 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA684F7A1BAF1A4400DCFD1A /* GameController.framework */; };
-		FAE0E9881BAF9B230098DFA4 /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */; };
-		FAE0E9891BAF9B230098DFA4 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		FAE0E98A1BAF9B230098DFA4 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		FAE0E98B1BAF9B230098DFA4 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		FAE0E98C1BAF9B230098DFA4 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		FAE0E98D1BAF9B230098DFA4 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		FAE0E98E1BAF9B230098DFA4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		FAE0E98F1BAF9B230098DFA4 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		FAE0E9951BAF9B510098DFA4 /* testgamecontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = FA0EF2221BAF43DE000E07A6 /* testgamecontroller.c */; };
-		FAE0E9961BAF9B650098DFA4 /* controllermap.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FA0EF22A1BAF4487000E07A6 /* controllermap.bmp */; };
-		FAE0E9971BAF9B6A0098DFA4 /* button.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FA0EF2291BAF4487000E07A6 /* button.bmp */; };
-		FAE0E9981BAF9B6E0098DFA4 /* axis.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FA0EF2281BAF4487000E07A6 /* axis.bmp */; };
-		FDA8A79C0E2D0F9300EA573E /* testwm2.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA8A75F0E2D0F1600EA573E /* testwm2.c */; };
-		FDA8A89F0E2D111A00EA573E /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		FDA8A8A00E2D111A00EA573E /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		FDA8A8A10E2D111A00EA573E /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		FDA8A8A20E2D111A00EA573E /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		FDA8A8A30E2D111A00EA573E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		FDA8A8A40E2D111A00EA573E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		FDA8A8A50E2D111A00EA573E /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		FDA8AAB10E2D330F00EA573E /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		FDA8AAB20E2D330F00EA573E /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		FDA8AAB30E2D330F00EA573E /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		FDA8AAB40E2D330F00EA573E /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		FDA8AAB50E2D330F00EA573E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		FDA8AAB60E2D330F00EA573E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		FDA8AAB70E2D330F00EA573E /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		FDA8AABE0E2D335C00EA573E /* loopwave.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA8A78B0E2D0F3D00EA573E /* loopwave.c */; };
-		FDA8AAE30E2D33C600EA573E /* sample.wav in Resources */ = {isa = PBXBuildFile; fileRef = FDA8AAE20E2D33C600EA573E /* sample.wav */; };
-		FDAAC3C30E2D47E6001DB1D8 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		FDAAC3C40E2D47E6001DB1D8 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		FDAAC3C50E2D47E6001DB1D8 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		FDAAC3C60E2D47E6001DB1D8 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		FDAAC3C70E2D47E6001DB1D8 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		FDAAC3C80E2D47E6001DB1D8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		FDAAC3C90E2D47E6001DB1D8 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		FDAAC3D30E2D4800001DB1D8 /* testaudioinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA8A7410E2D0F1600EA573E /* testaudioinfo.c */; };
-		FDAAC5910E2D5429001DB1D8 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		FDAAC5920E2D5429001DB1D8 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		FDAAC5930E2D5429001DB1D8 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		FDAAC5940E2D5429001DB1D8 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		FDAAC5950E2D5429001DB1D8 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		FDAAC5960E2D5429001DB1D8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		FDAAC5970E2D5429001DB1D8 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		FDAAC59F0E2D54B8001DB1D8 /* testerror.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA8A7470E2D0F1600EA573E /* testerror.c */; };
-		FDAAC5BF0E2D55B5001DB1D8 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		FDAAC5C00E2D55B5001DB1D8 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		FDAAC5C10E2D55B5001DB1D8 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		FDAAC5C20E2D55B5001DB1D8 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		FDAAC5C30E2D55B5001DB1D8 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		FDAAC5C40E2D55B5001DB1D8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		FDAAC5C50E2D55B5001DB1D8 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		FDAAC5CC0E2D55CA001DB1D8 /* testfile.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA8A7480E2D0F1600EA573E /* testfile.c */; };
-		FDAAC61C0E2D5914001DB1D8 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		FDAAC61D0E2D5914001DB1D8 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		FDAAC61E0E2D5914001DB1D8 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		FDAAC61F0E2D5914001DB1D8 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		FDAAC6200E2D5914001DB1D8 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		FDAAC6210E2D5914001DB1D8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		FDAAC6220E2D5914001DB1D8 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		FDAAC62A0E2D5960001DB1D8 /* testgles.c in Sources */ = {isa = PBXBuildFile; fileRef = FDAAC6290E2D5960001DB1D8 /* testgles.c */; };
-		FDAAC6390E2D59BE001DB1D8 /* icon.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FDA8AAD90E2D33B000EA573E /* icon.bmp */; };
-		FDC42FF60F0D866D009C87E1 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		FDC42FF70F0D866D009C87E1 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		FDC42FF80F0D866D009C87E1 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		FDC42FF90F0D866D009C87E1 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		FDC42FFA0F0D866D009C87E1 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		FDC42FFB0F0D866D009C87E1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		FDC42FFC0F0D866D009C87E1 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		FDC4300A0F0D86BF009C87E1 /* testdraw2.c in Sources */ = {isa = PBXBuildFile; fileRef = FDC430090F0D86BF009C87E1 /* testdraw2.c */; };
-		FDD2C1000E2E4F4B00B7A85F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		FDD2C1010E2E4F4B00B7A85F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		FDD2C1020E2E4F4B00B7A85F /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		FDD2C1030E2E4F4B00B7A85F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		FDD2C1040E2E4F4B00B7A85F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		FDD2C1050E2E4F4B00B7A85F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		FDD2C1060E2E4F4B00B7A85F /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		FDD2C10D0E2E4F6900B7A85F /* testthread.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA8A74C0E2D0F1600EA573E /* testthread.c */; };
-		FDD2C1770E2E52C000B7A85F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		FDD2C1780E2E52C000B7A85F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		FDD2C1790E2E52C000B7A85F /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		FDD2C17A0E2E52C000B7A85F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		FDD2C17B0E2E52C000B7A85F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		FDD2C17C0E2E52C000B7A85F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		FDD2C17D0E2E52C000B7A85F /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		FDD2C1840E2E52D900B7A85F /* testiconv.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA8A74D0E2D0F1600EA573E /* testiconv.c */; };
-		FDD2C18B0E2E52FE00B7A85F /* utf8.txt in Resources */ = {isa = PBXBuildFile; fileRef = FDD2C18A0E2E52FE00B7A85F /* utf8.txt */; };
-		FDD2C19B0E2E534F00B7A85F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		FDD2C19C0E2E534F00B7A85F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		FDD2C19D0E2E534F00B7A85F /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		FDD2C19E0E2E534F00B7A85F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		FDD2C19F0E2E534F00B7A85F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		FDD2C1A00E2E534F00B7A85F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		FDD2C1A10E2E534F00B7A85F /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		FDD2C4540E2E773800B7A85F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		FDD2C4550E2E773800B7A85F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		FDD2C4560E2E773800B7A85F /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		FDD2C4570E2E773800B7A85F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		FDD2C4580E2E773800B7A85F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		FDD2C4590E2E773800B7A85F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		FDD2C45A0E2E773800B7A85F /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		FDD2C4610E2E777500B7A85F /* testkeys.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA8A74F0E2D0F1600EA573E /* testkeys.c */; };
-		FDD2C4720E2E77D700B7A85F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		FDD2C4730E2E77D700B7A85F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		FDD2C4740E2E77D700B7A85F /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		FDD2C4750E2E77D700B7A85F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		FDD2C4760E2E77D700B7A85F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		FDD2C4770E2E77D700B7A85F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		FDD2C4780E2E77D700B7A85F /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		FDD2C47F0E2E77E300B7A85F /* testlock.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA8A7510E2D0F1600EA573E /* testlock.c */; };
-		FDD2C5010E2E7F4800B7A85F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		FDD2C5020E2E7F4800B7A85F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		FDD2C5030E2E7F4800B7A85F /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		FDD2C5040E2E7F4800B7A85F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		FDD2C5050E2E7F4800B7A85F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		FDD2C5060E2E7F4800B7A85F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		FDD2C5070E2E7F4800B7A85F /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		FDD2C50E0E2E7F5800B7A85F /* testplatform.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA8A7560E2D0F1600EA573E /* testplatform.c */; };
-		FDD2C51F0E2E807600B7A85F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		FDD2C5200E2E807600B7A85F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		FDD2C5210E2E807600B7A85F /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		FDD2C5220E2E807600B7A85F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		FDD2C5230E2E807600B7A85F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		FDD2C5240E2E807600B7A85F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		FDD2C5250E2E807600B7A85F /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		FDD2C52C0E2E808700B7A85F /* testsem.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA8A7570E2D0F1600EA573E /* testsem.c */; };
-		FDD2C5440E2E80E400B7A85F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		FDD2C5450E2E80E400B7A85F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		FDD2C5460E2E80E400B7A85F /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		FDD2C5470E2E80E400B7A85F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		FDD2C5480E2E80E400B7A85F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		FDD2C5490E2E80E400B7A85F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		FDD2C54A0E2E80E400B7A85F /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		FDD2C5510E2E80F400B7A85F /* testsprite2.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA8A7590E2D0F1600EA573E /* testsprite2.c */; };
-		FDD2C5520E2E812C00B7A85F /* icon.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FDA8AAD90E2D33B000EA573E /* icon.bmp */; };
-		FDD2C5760E2E8C7400B7A85F /* icon.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FDA8AAD90E2D33B000EA573E /* icon.bmp */; };
-		FDD2C57D0E2E8C7400B7A85F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		FDD2C57E0E2E8C7400B7A85F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		FDD2C57F0E2E8C7400B7A85F /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		FDD2C5800E2E8C7400B7A85F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		FDD2C5810E2E8C7400B7A85F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		FDD2C5820E2E8C7400B7A85F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		FDD2C5830E2E8C7400B7A85F /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		FDD2C58A0E2E8CB500B7A85F /* testtimer.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA8A75A0E2D0F1600EA573E /* testtimer.c */; };
-		FDD2C5B50E2E8CFC00B7A85F /* icon.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FDA8AAD90E2D33B000EA573E /* icon.bmp */; };
-		FDD2C5BB0E2E8CFC00B7A85F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		FDD2C5BC0E2E8CFC00B7A85F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		FDD2C5BD0E2E8CFC00B7A85F /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		FDD2C5BE0E2E8CFC00B7A85F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		FDD2C5BF0E2E8CFC00B7A85F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		FDD2C5C00E2E8CFC00B7A85F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		FDD2C5C10E2E8CFC00B7A85F /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		FDD2C5C80E2E8D1200B7A85F /* testver.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA8A75B0E2D0F1600EA573E /* testver.c */; };
-		FDD2C6EA0E2E959E00B7A85F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
-		FDD2C6EB0E2E959E00B7A85F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8990E2D111A00EA573E /* QuartzCore.framework */; };
-		FDD2C6EC0E2E959E00B7A85F /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */; };
-		FDD2C6ED0E2E959E00B7A85F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */; };
-		FDD2C6EE0E2E959E00B7A85F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89C0E2D111A00EA573E /* UIKit.framework */; };
-		FDD2C6EF0E2E959E00B7A85F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
-		FDD2C6F00E2E959E00B7A85F /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
-		FDD2C6F70E2E95B100B7A85F /* torturethread.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA8A7610E2D0F1600EA573E /* torturethread.c */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
-		AA1EE451176059230029C7A5 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = AA1EE44D176059220029C7A5 /* SDL2test.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = AA1EE4461760589B0029C7A5;
-			remoteInfo = SDL2test;
-		};
-		F3A492DC2555E1F100E92A8B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F3A492CC2555E1F100E92A8B /* SDL.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = BECDF66C0761BA81005FE872;
-			remoteInfo = Framework;
-		};
-		F3A492DE2555E1F100E92A8B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F3A492CC2555E1F100E92A8B /* SDL.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = A7D88B5423E2437C00DCD162;
-			remoteInfo = "Framework-iOS";
-		};
-		F3A492E02555E1F100E92A8B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F3A492CC2555E1F100E92A8B /* SDL.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = A7D88D1523E24BED00DCD162;
-			remoteInfo = "Framework-tvOS";
-		};
-		F3A492E22555E1F100E92A8B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F3A492CC2555E1F100E92A8B /* SDL.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = BECDF6B30761BA81005FE872;
-			remoteInfo = "Static Library";
-		};
-		F3A492E42555E1F100E92A8B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F3A492CC2555E1F100E92A8B /* SDL.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = A7D88E5423E24D3B00DCD162;
-			remoteInfo = "Static Library-iOS";
-		};
-		F3A492E62555E1F100E92A8B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F3A492CC2555E1F100E92A8B /* SDL.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = A769B23D23E259AE00872273;
-			remoteInfo = "Static Library-tvOS";
-		};
-		F3A492E82555E1F100E92A8B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F3A492CC2555E1F100E92A8B /* SDL.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = DB31407717554B71006C0E22;
-			remoteInfo = "Shared Library";
-		};
-		F3A492EA2555E1F100E92A8B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F3A492CC2555E1F100E92A8B /* SDL.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = A75FCEB323E25AB700529352;
-			remoteInfo = "Shared Library-iOS";
-		};
-		F3A492EC2555E1F100E92A8B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F3A492CC2555E1F100E92A8B /* SDL.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = A75FD06C23E25AC700529352;
-			remoteInfo = "Shared Library-tvOS";
-		};
-		F3A492EE2555E1F100E92A8B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F3A492CC2555E1F100E92A8B /* SDL.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = BECDF6BE0761BA81005FE872;
-			remoteInfo = "Standard DMG";
-		};
-		F3A492F02555E1F100E92A8B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F3A492CC2555E1F100E92A8B /* SDL.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = A75FDB8C23E4C74400529352;
-			remoteInfo = hidapi;
-		};
-		F3A492F22555E1F100E92A8B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F3A492CC2555E1F100E92A8B /* SDL.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = A75FDB4923E399AC00529352;
-			remoteInfo = "hidapi-iOS";
-		};
-		F3A492F42555E1F100E92A8B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F3A492CC2555E1F100E92A8B /* SDL.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = A75FDB6E23E3A2C900529352;
-			remoteInfo = "hidapi-tvOS";
-		};
-		FA3D992E1BC4E619002C96C8 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = AA1EE44D176059220029C7A5 /* SDL2test.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = FA3D98F81BC4E5A2002C96C8;
-			remoteInfo = "SDL2test-TV";
-		};
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXCopyFilesBuildPhase section */
-		F3A498752556005300E92A8B /* Embed Frameworks */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 2147483647;
-			dstPath = "";
-			dstSubfolderSpec = 10;
-			files = (
-				F3A498742556005300E92A8B /* hidapi.framework in Embed Frameworks */,
-			);
-			name = "Embed Frameworks";
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F3A498782556005D00E92A8B /* Embed Frameworks */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 2147483647;
-			dstPath = "";
-			dstSubfolderSpec = 10;
-			files = (
-				F3A498772556005D00E92A8B /* hidapi.framework in Embed Frameworks */,
-			);
-			name = "Embed Frameworks";
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F3A499CE255618AF00E92A8B /* Embed Frameworks */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 2147483647;
-			dstPath = "";
-			dstSubfolderSpec = 10;
-			files = (
-				F3A499CF255618AF00E92A8B /* hidapi.framework in Embed Frameworks */,
-			);
-			name = "Embed Frameworks";
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXCopyFilesBuildPhase section */
-
-/* Begin PBXFileReference section */
-		046CEF8613254F23007AD51D /* testgesture.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testgesture.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		046CEF8913254F63007AD51D /* testgesture.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testgesture.c; sourceTree = "<group>"; };
-		047A63ED13285C3200CD7973 /* checkkeys.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = checkkeys.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		047A63F013285CD100CD7973 /* checkkeys.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = checkkeys.c; sourceTree = "<group>"; };
-		1D6058910D05DD3D006BFB54 /* testwm2.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testwm2.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		56ED050D118A8FE400A56AA6 /* testpower.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testpower.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		56ED0510118A904200A56AA6 /* testpower.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testpower.c; sourceTree = "<group>"; };
-		75E09187241EACB9004729E1 /* CoreBluetooth.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreBluetooth.framework; path = System/Library/Frameworks/CoreBluetooth.framework; sourceTree = SDKROOT; };
-		AA13B3261FB8AEBC00D9FEE6 /* testyuv.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testyuv.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		AA13B32E1FB8AF0C00D9FEE6 /* testyuv.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = testyuv.bmp; sourceTree = "<group>"; };
-		AA13B35B1FB8B4D600D9FEE6 /* testyuv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testyuv.c; sourceTree = "<group>"; };
-		AA13B35E1FB8B50D00D9FEE6 /* testyuv_cvt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testyuv_cvt.c; sourceTree = "<group>"; };
-		AA1EE44D176059220029C7A5 /* SDL2test.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDL2test.xcodeproj; path = ../SDLtest/SDL2test.xcodeproj; sourceTree = "<group>"; };
-		AA2F57A91FDB544800832AD7 /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; };
-		AAE7DEEC14CBB1E100DF1A0E /* testscale.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testscale.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		AAE7DF4514CBB43900DF1A0E /* testscale.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testscale.c; sourceTree = "<group>"; };
-		AAE7DFB114CBB54E00DF1A0E /* testrendertarget.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testrendertarget.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		AAE7DFB414CBB5F700DF1A0E /* testrendertarget.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testrendertarget.c; sourceTree = "<group>"; };
-		F395BF9A2564186400942BFF /* testsensor.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testsensor.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		F395BF9B2564186400942BFF /* testpower copy-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "testpower copy-Info.plist"; path = "/Users/valve/projects/SDL/Xcode-iOS/Test/testpower copy-Info.plist"; sourceTree = "<absolute>"; };
-		F395BFE1256418A600942BFF /* testsensor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testsensor.c; sourceTree = "<group>"; };
-		F3A492CC2555E1F100E92A8B /* SDL.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDL.xcodeproj; path = ../../Xcode/SDL/SDL.xcodeproj; sourceTree = "<group>"; };
-		F3A493AB2555E30000E92A8B /* CoreHaptics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreHaptics.framework; path = System/Library/Frameworks/CoreHaptics.framework; sourceTree = SDKROOT; };
-		F3A494242555E3D100E92A8B /* CoreHaptics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreHaptics.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/CoreHaptics.framework; sourceTree = DEVELOPER_DIR; };
-		F3A494682555E42B00E92A8B /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/Metal.framework; sourceTree = DEVELOPER_DIR; };
-		F3A494F82555E83D00E92A8B /* CoreBluetooth.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreBluetooth.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/CoreBluetooth.framework; sourceTree = DEVELOPER_DIR; };
-		F3A4953C2555EB8100E92A8B /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/AVFoundation.framework; sourceTree = DEVELOPER_DIR; };
-		F3A499D3255618AF00E92A8B /* controllermap.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = controllermap.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		F3A499D4255618AF00E92A8B /* testgamecontroller copy-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "testgamecontroller copy-Info.plist"; path = "/Users/valve/projects/SDL/Xcode-iOS/Test/testgamecontroller copy-Info.plist"; sourceTree = "<absolute>"; };
-		F3A49A4C255618DD00E92A8B /* controllermap.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = controllermap.c; sourceTree = "<group>"; };
-		F3A49AFD2556A47500E92A8B /* controllermap_back.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = controllermap_back.bmp; sourceTree = "<group>"; };
-		FA0EF2221BAF43DE000E07A6 /* testgamecontroller.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testgamecontroller.c; sourceTree = "<group>"; };
-		FA0EF2281BAF4487000E07A6 /* axis.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = axis.bmp; sourceTree = "<group>"; };
-		FA0EF2291BAF4487000E07A6 /* button.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = button.bmp; sourceTree = "<group>"; };
-		FA0EF22A1BAF4487000E07A6 /* controllermap.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = controllermap.bmp; sourceTree = "<group>"; };
-		FA3D99341BC4E644002C96C8 /* testgamecontroller-TV.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "testgamecontroller-TV.app"; sourceTree = BUILT_PRODUCTS_DIR; };
-		FA684F7A1BAF1A4400DCFD1A /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; };
-		FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; };
-		FABA34761D8B4EAD00915323 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
-		FABA34911D8B575200915323 /* testaudiocapture.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testaudiocapture.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		FABA34931D8B578200915323 /* testaudiocapture.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testaudiocapture.c; sourceTree = "<group>"; };
-		FABA34AA1D8B582100915323 /* loopwav-TV.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "loopwav-TV.app"; sourceTree = BUILT_PRODUCTS_DIR; };
-		FAE0E9931BAF9B230098DFA4 /* testgamecontroller.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testgamecontroller.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		FDA8A7410E2D0F1600EA573E /* testaudioinfo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testaudioinfo.c; sourceTree = "<group>"; };
-		FDA8A7470E2D0F1600EA573E /* testerror.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testerror.c; sourceTree = "<group>"; };
-		FDA8A7480E2D0F1600EA573E /* testfile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testfile.c; sourceTree = "<group>"; };
-		FDA8A74C0E2D0F1600EA573E /* testthread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testthread.c; sourceTree = "<group>"; };
-		FDA8A74D0E2D0F1600EA573E /* testiconv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testiconv.c; sourceTree = "<group>"; };
-		FDA8A74E0E2D0F1600EA573E /* testjoystick.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testjoystick.c; sourceTree = "<group>"; };
-		FDA8A74F0E2D0F1600EA573E /* testkeys.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testkeys.c; sourceTree = "<group>"; };
-		FDA8A7510E2D0F1600EA573E /* testlock.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testlock.c; sourceTree = "<group>"; };
-		FDA8A7540E2D0F1600EA573E /* testoverlay2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testoverlay2.c; sourceTree = "<group>"; };
-		FDA8A7560E2D0F1600EA573E /* testplatform.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testplatform.c; sourceTree = "<group>"; };
-		FDA8A7570E2D0F1600EA573E /* testsem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testsem.c; sourceTree = "<group>"; };
-		FDA8A7590E2D0F1600EA573E /* testsprite2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testsprite2.c; sourceTree = "<group>"; };
-		FDA8A75A0E2D0F1600EA573E /* testtimer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testtimer.c; sourceTree = "<group>"; };
-		FDA8A75B0E2D0F1600EA573E /* testver.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testver.c; sourceTree = "<group>"; };
-		FDA8A75F0E2D0F1600EA573E /* testwm2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testwm2.c; sourceTree = "<group>"; };
-		FDA8A7610E2D0F1600EA573E /* torturethread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = torturethread.c; sourceTree = "<group>"; };
-		FDA8A78B0E2D0F3D00EA573E /* loopwave.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = loopwave.c; sourceTree = "<group>"; };
-		FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
-		FDA8A8990E2D111A00EA573E /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
-		FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
-		FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
-		FDA8A89C0E2D111A00EA573E /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
-		FDA8A89D0E2D111A00EA573E /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
-		FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
-		FDA8AABB0E2D330F00EA573E /* loopwav.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = loopwav.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		FDA8AAD90E2D33B000EA573E /* icon.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = icon.bmp; sourceTree = "<group>"; };
-		FDA8AADA0E2D33BA00EA573E /* moose.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = moose.dat; sourceTree = "<group>"; };
-		FDA8AADB0E2D33BA00EA573E /* picture.xbm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = picture.xbm; sourceTree = "<group>"; };
-		FDA8AADE0E2D33C100EA573E /* sample.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = sample.bmp; sourceTree = "<group>"; };
-		FDA8AAE20E2D33C600EA573E /* sample.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = sample.wav; sourceTree = "<group>"; };
-		FDAAC3CD0E2D47E6001DB1D8 /* testaudioinfo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testaudioinfo.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		FDAAC59B0E2D5429001DB1D8 /* testerror.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testerror.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		FDAAC5C90E2D55B5001DB1D8 /* testfile.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testfile.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		FDAAC6260E2D5914001DB1D8 /* testgles.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testgles.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		FDAAC6290E2D5960001DB1D8 /* testgles.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testgles.c; sourceTree = "<group>"; };
-		FDC430000F0D866D009C87E1 /* torturethread.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = torturethread.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		FDC430090F0D86BF009C87E1 /* testdraw2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testdraw2.c; sourceTree = "<group>"; };
-		FDD2C10A0E2E4F4B00B7A85F /* testthread.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testthread.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		FDD2C1810E2E52C000B7A85F /* testiconv.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testiconv.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		FDD2C18A0E2E52FE00B7A85F /* utf8.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = utf8.txt; sourceTree = "<group>"; };
-		FDD2C1A50E2E534F00B7A85F /* testjoystick.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testjoystick.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		FDD2C45E0E2E773800B7A85F /* testkeys.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testkeys.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		FDD2C47C0E2E77D700B7A85F /* testlock.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testlock.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		FDD2C50B0E2E7F4800B7A85F /* testplatform.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testplatform.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		FDD2C5290E2E807600B7A85F /* testsem.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testsem.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		FDD2C54E0E2E80E400B7A85F /* testsprite2.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testsprite2.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		FDD2C5870E2E8C7400B7A85F /* testtimer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testtimer.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		FDD2C5C50E2E8CFC00B7A85F /* testver.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testver.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		FDD2C6F40E2E959E00B7A85F /* torturethread.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = torturethread.app; sourceTree = BUILT_PRODUCTS_DIR; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
-		046CEF7A13254F23007AD51D /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A494F72555E80E00E92A8B /* libSDL2.a in Frameworks */,
-				F3F758D322AC561A001D97F2 /* libSDL2test.a in Frameworks */,
-				F395C10725644BE900942BFF /* hidapi.framework in Frameworks */,
-				046CEF7C13254F23007AD51D /* AudioToolbox.framework in Frameworks */,
-				FABA34B51D8B5B8400915323 /* AVFoundation.framework in Frameworks */,
-				046CEF8213254F23007AD51D /* CoreAudio.framework in Frameworks */,
-				046CEF7F13254F23007AD51D /* CoreGraphics.framework in Frameworks */,
-				F3A494FD2555E89700E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BD1196766C900F8EB7C /* CoreMotion.framework in Frameworks */,
-				046CEF8113254F23007AD51D /* Foundation.framework in Frameworks */,
-				FA684F841BAF1A5C00DCFD1A /* GameController.framework in Frameworks */,
-				F3F758DF22AC5B94001D97F2 /* Metal.framework in Frameworks */,
-				046CEF7E13254F23007AD51D /* OpenGLES.framework in Frameworks */,
-				046CEF7D13254F23007AD51D /* QuartzCore.framework in Frameworks */,
-				046CEF8013254F23007AD51D /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		047A63E113285C3200CD7973 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F395C0C825644AFE00942BFF /* libSDL2.a in Frameworks */,
-				AA1EE470176059D00029C7A5 /* libSDL2test.a in Frameworks */,
-				F395C0C925644B0400942BFF /* hidapi.framework in Frameworks */,
-				047A63E313285C3200CD7973 /* AudioToolbox.framework in Frameworks */,
-				FABA34B01D8B5B6400915323 /* AVFoundation.framework in Frameworks */,
-				047A63E913285C3200CD7973 /* CoreAudio.framework in Frameworks */,
-				047A63E613285C3200CD7973 /* CoreGraphics.framework in Frameworks */,
-				F3A494022555E37A00E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BAD1967076F00F8EB7C /* CoreMotion.framework in Frameworks */,
-				047A63E813285C3200CD7973 /* Foundation.framework in Frameworks */,
-				FA684F7B1BAF1A4400DCFD1A /* GameController.framework in Frameworks */,
-				F3F758D422AC575F001D97F2 /* Metal.framework in Frameworks */,
-				047A63E513285C3200CD7973 /* OpenGLES.framework in Frameworks */,
-				047A63E413285C3200CD7973 /* QuartzCore.framework in Frameworks */,
-				047A63E713285C3200CD7973 /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		1D60588F0D05DD3D006BFB54 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A4951A2555EADC00E92A8B /* libSDL2.a in Frameworks */,
-				AA1EE47817605BF60029C7A5 /* libSDL2test.a in Frameworks */,
-				F395C11625644C7E00942BFF /* hidapi.framework in Frameworks */,
-				FDA8A89F0E2D111A00EA573E /* AudioToolbox.framework in Frameworks */,
-				FABA34C41D8B5BCB00915323 /* AVFoundation.framework in Frameworks */,
-				FDA8A8A50E2D111A00EA573E /* CoreAudio.framework in Frameworks */,
-				FDA8A8A20E2D111A00EA573E /* CoreGraphics.framework in Frameworks */,
-				F3A4951B2555EAE200E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BE0196766F400F8EB7C /* CoreMotion.framework in Frameworks */,
-				FDA8A8A40E2D111A00EA573E /* Foundation.framework in Frameworks */,
-				FA684F931BAF1A8A00DCFD1A /* GameController.framework in Frameworks */,
-				F3F758EC22AC5DA6001D97F2 /* Metal.framework in Frameworks */,
-				FDA8A8A10E2D111A00EA573E /* OpenGLES.framework in Frameworks */,
-				FDA8A8A00E2D111A00EA573E /* QuartzCore.framework in Frameworks */,
-				FDA8A8A30E2D111A00EA573E /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		56ED0501118A8FE400A56AA6 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A4950A2555EA1D00E92A8B /* libSDL2.a in Frameworks */,
-				F395C10E25644C3200942BFF /* hidapi.framework in Frameworks */,
-				56ED0503118A8FE400A56AA6 /* AudioToolbox.framework in Frameworks */,
-				FABA34BC1D8B5BA600915323 /* AVFoundation.framework in Frameworks */,
-				56ED0509118A8FE400A56AA6 /* CoreAudio.framework in Frameworks */,
-				56ED0506118A8FE400A56AA6 /* CoreGraphics.framework in Frameworks */,
-				F3A4950B2555EA2300E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BD8196766DD00F8EB7C /* CoreMotion.framework in Frameworks */,
-				56ED0508118A8FE400A56AA6 /* Foundation.framework in Frameworks */,
-				FA684F8B1BAF1A7100DCFD1A /* GameController.framework in Frameworks */,
-				F3F758E622AC5CC5001D97F2 /* Metal.framework in Frameworks */,
-				56ED0505118A8FE400A56AA6 /* OpenGLES.framework in Frameworks */,
-				56ED0504118A8FE400A56AA6 /* QuartzCore.framework in Frameworks */,
-				56ED0507118A8FE400A56AA6 /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		AA13B3161FB8AEBC00D9FEE6 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A4951C2555EB0E00E92A8B /* libSDL2.a in Frameworks */,
-				AA13B3181FB8AEBC00D9FEE6 /* libSDL2test.a in Frameworks */,
-				F395C11725644C8800942BFF /* hidapi.framework in Frameworks */,
-				AA13B31C1FB8AEBC00D9FEE6 /* AudioToolbox.framework in Frameworks */,
-				AA13B3171FB8AEBC00D9FEE6 /* AVFoundation.framework in Frameworks */,
-				AA13B3221FB8AEBC00D9FEE6 /* CoreAudio.framework in Frameworks */,
-				AA13B31F1FB8AEBC00D9FEE6 /* CoreGraphics.framework in Frameworks */,
-				F3A4951D2555EB1300E92A8B /* CoreHaptics.framework in Frameworks */,
-				AA13B31B1FB8AEBC00D9FEE6 /* CoreMotion.framework in Frameworks */,
-				AA13B3211FB8AEBC00D9FEE6 /* Foundation.framework in Frameworks */,
-				AA13B31A1FB8AEBC00D9FEE6 /* GameController.framework in Frameworks */,
-				F3F758ED22AC5DC5001D97F2 /* Metal.framework in Frameworks */,
-				AA13B31E1FB8AEBC00D9FEE6 /* OpenGLES.framework in Frameworks */,
-				AA13B31D1FB8AEBC00D9FEE6 /* QuartzCore.framework in Frameworks */,
-				AA13B3201FB8AEBC00D9FEE6 /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		AAE7DEE014CBB1E100DF1A0E /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A4950E2555EA5E00E92A8B /* libSDL2.a in Frameworks */,
-				AA1EE47617605B9E0029C7A5 /* libSDL2test.a in Frameworks */,
-				F395C11025644C4500942BFF /* hidapi.framework in Frameworks */,
-				AAE7DEE214CBB1E100DF1A0E /* AudioToolbox.framework in Frameworks */,
-				FABA34BE1D8B5BB000915323 /* AVFoundation.framework in Frameworks */,
-				AAE7DEE814CBB1E100DF1A0E /* CoreAudio.framework in Frameworks */,
-				AAE7DEE514CBB1E100DF1A0E /* CoreGraphics.framework in Frameworks */,
-				F3A4950F2555EA6400E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BDA196766E200F8EB7C /* CoreMotion.framework in Frameworks */,
-				AAE7DEE714CBB1E100DF1A0E /* Foundation.framework in Frameworks */,
-				FA684F8D1BAF1A7800DCFD1A /* GameController.framework in Frameworks */,
-				F3F758E722AC5CFE001D97F2 /* Metal.framework in Frameworks */,
-				AAE7DEE414CBB1E100DF1A0E /* OpenGLES.framework in Frameworks */,
-				AAE7DEE314CBB1E100DF1A0E /* QuartzCore.framework in Frameworks */,
-				AAE7DEE614CBB1E100DF1A0E /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		AAE7DFA514CBB54E00DF1A0E /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A4950C2555EA3700E92A8B /* libSDL2.a in Frameworks */,
-				AA1EE47517605B930029C7A5 /* libSDL2test.a in Frameworks */,
-				F395C10F25644C3C00942BFF /* hidapi.framework in Frameworks */,
-				AAE7DFA714CBB54E00DF1A0E /* AudioToolbox.framework in Frameworks */,
-				FABA34BD1D8B5BAB00915323 /* AVFoundation.framework in Frameworks */,
-				AAE7DFAD14CBB54E00DF1A0E /* CoreAudio.framework in Frameworks */,
-				AAE7DFAA14CBB54E00DF1A0E /* CoreGraphics.framework in Frameworks */,
-				F3A4950D2555EA3D00E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BD9196766E000F8EB7C /* CoreMotion.framework in Frameworks */,
-				AAE7DFAC14CBB54E00DF1A0E /* Foundation.framework in Frameworks */,
-				FA684F8C1BAF1A7400DCFD1A /* GameController.framework in Frameworks */,
-				AA2F57AA1FDB544800832AD7 /* Metal.framework in Frameworks */,
-				AAE7DFA914CBB54E00DF1A0E /* OpenGLES.framework in Frameworks */,
-				AAE7DFA814CBB54E00DF1A0E /* QuartzCore.framework in Frameworks */,
-				AAE7DFAB14CBB54E00DF1A0E /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F395BF892564186400942BFF /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F395BF8A2564186400942BFF /* libSDL2.a in Frameworks */,
-				F395C04F256419A500942BFF /* hidapi.framework in Frameworks */,
-				F395BF8B2564186400942BFF /* AudioToolbox.framework in Frameworks */,
-				F395BF8C2564186400942BFF /* AVFoundation.framework in Frameworks */,
-				F395BF8D2564186400942BFF /* CoreAudio.framework in Frameworks */,
-				F395BF8E2564186400942BFF /* CoreGraphics.framework in Frameworks */,
-				F395BF8F2564186400942BFF /* CoreHaptics.framework in Frameworks */,
-				F395BF902564186400942BFF /* CoreMotion.framework in Frameworks */,
-				F395BF912564186400942BFF /* Foundation.framework in Frameworks */,
-				F395BF922564186400942BFF /* GameController.framework in Frameworks */,
-				F395BF932564186400942BFF /* Metal.framework in Frameworks */,
-				F395BF942564186400942BFF /* OpenGLES.framework in Frameworks */,
-				F395BF952564186400942BFF /* QuartzCore.framework in Frameworks */,
-				F395BF962564186400942BFF /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F3A499BF255618AF00E92A8B /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A499C0255618AF00E92A8B /* libSDL2.a in Frameworks */,
-				F3A499C1255618AF00E92A8B /* hidapi.framework in Frameworks */,
-				F3A499C2255618AF00E92A8B /* AudioToolbox.framework in Frameworks */,
-				F3A499C3255618AF00E92A8B /* AVFoundation.framework in Frameworks */,
-				F3A499C4255618AF00E92A8B /* CoreAudio.framework in Frameworks */,
-				F3A499C5255618AF00E92A8B /* CoreGraphics.framework in Frameworks */,
-				F3A499C6255618AF00E92A8B /* CoreHaptics.framework in Frameworks */,
-				F3A499C7255618AF00E92A8B /* CoreMotion.framework in Frameworks */,
-				F3A499C8255618AF00E92A8B /* Foundation.framework in Frameworks */,
-				F3A499C9255618AF00E92A8B /* GameController.framework in Frameworks */,
-				F3A499CA255618AF00E92A8B /* Metal.framework in Frameworks */,
-				F3A499CB255618AF00E92A8B /* OpenGLES.framework in Frameworks */,
-				F3A499CC255618AF00E92A8B /* QuartzCore.framework in Frameworks */,
-				F3A499CD255618AF00E92A8B /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FA3D99311BC4E644002C96C8 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A494F52555E7F800E92A8B /* libSDL2.a in Frameworks */,
-				F3A498762556005D00E92A8B /* hidapi.framework in Frameworks */,
-				FA3D994A1BC4E6AD002C96C8 /* AudioToolbox.framework in Frameworks */,
-				F3A4953D2555EB8100E92A8B /* AVFoundation.framework in Frameworks */,
-				FA3D99501BC4E6AD002C96C8 /* CoreAudio.framework in Frameworks */,
-				FA3D994D1BC4E6AD002C96C8 /* CoreGraphics.framework in Frameworks */,
-				F3A494F62555E7FE00E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA3D994F1BC4E6AD002C96C8 /* Foundation.framework in Frameworks */,
-				FA3D99481BC4E6AD002C96C8 /* GameController.framework in Frameworks */,
-				F3A4955A2555EB9500E92A8B /* Metal.framework in Frameworks */,
-				FA3D994C1BC4E6AD002C96C8 /* OpenGLES.framework in Frameworks */,
-				FA3D994B1BC4E6AD002C96C8 /* QuartzCore.framework in Frameworks */,
-				FA3D994E1BC4E6AD002C96C8 /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FABA34821D8B575200915323 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A4941F2555E39600E92A8B /* libSDL2.a in Frameworks */,
-				F395C0E725644B6200942BFF /* hidapi.framework in Frameworks */,
-				FABA34871D8B575200915323 /* AudioToolbox.framework in Frameworks */,
-				FABA34831D8B575200915323 /* AVFoundation.framework in Frameworks */,
-				FABA348D1D8B575200915323 /* CoreAudio.framework in Frameworks */,
-				FABA348A1D8B575200915323 /* CoreGraphics.framework in Frameworks */,
-				F3A494202555E39E00E92A8B /* CoreHaptics.framework in Frameworks */,
-				FABA34861D8B575200915323 /* CoreMotion.framework in Frameworks */,
-				FABA348C1D8B575200915323 /* Foundation.framework in Frameworks */,
-				FABA34851D8B575200915323 /* GameController.framework in Frameworks */,
-				F3F758D522AC57D8001D97F2 /* Metal.framework in Frameworks */,
-				FABA34891D8B575200915323 /* OpenGLES.framework in Frameworks */,
-				FABA34881D8B575200915323 /* QuartzCore.framework in Frameworks */,
-				FABA348B1D8B575200915323 /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FABA349B1D8B582100915323 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A494232555E3C900E92A8B /* libSDL2.a in Frameworks */,
-				F395C0E625644B5200942BFF /* hidapi.framework in Frameworks */,
-				FABA34A01D8B582100915323 /* AudioToolbox.framework in Frameworks */,
-				FABA349C1D8B582100915323 /* AVFoundation.framework in Frameworks */,
-				FABA34A61D8B582100915323 /* CoreAudio.framework in Frameworks */,
-				FABA34A31D8B582100915323 /* CoreGraphics.framework in Frameworks */,
-				F3A494252555E3D100E92A8B /* CoreHaptics.framework in Frameworks */,
-				FABA34A51D8B582100915323 /* Foundation.framework in Frameworks */,
-				FABA349E1D8B582100915323 /* GameController.framework in Frameworks */,
-				F3A494692555E42B00E92A8B /* Metal.framework in Frameworks */,
-				FABA34A21D8B582100915323 /* OpenGLES.framework in Frameworks */,
-				FABA34A11D8B582100915323 /* QuartzCore.framework in Frameworks */,
-				FABA34A41D8B582100915323 /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FAE0E9851BAF9B230098DFA4 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A4938E2555E2D500E92A8B /* libSDL2.a in Frameworks */,
-				F3A498732556005300E92A8B /* hidapi.framework in Frameworks */,
-				FAE0E9891BAF9B230098DFA4 /* AudioToolbox.framework in Frameworks */,
-				FABA34AE1D8B58B200915323 /* AVFoundation.framework in Frameworks */,
-				FAE0E98F1BAF9B230098DFA4 /* CoreAudio.framework in Frameworks */,
-				FAE0E98C1BAF9B230098DFA4 /* CoreGraphics.framework in Frameworks */,
-				F3A493AC2555E30000E92A8B /* CoreHaptics.framework in Frameworks */,
-				FAE0E9881BAF9B230098DFA4 /* CoreMotion.framework in Frameworks */,
-				FAE0E98E1BAF9B230098DFA4 /* Foundation.framework in Frameworks */,
-				FAE0E9871BAF9B230098DFA4 /* GameController.framework in Frameworks */,
-				F3F758DD22AC5A6C001D97F2 /* Metal.framework in Frameworks */,
-				FAE0E98B1BAF9B230098DFA4 /* OpenGLES.framework in Frameworks */,
-				FAE0E98A1BAF9B230098DFA4 /* QuartzCore.framework in Frameworks */,
-				FAE0E98D1BAF9B230098DFA4 /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDA8AAAE0E2D330F00EA573E /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A494212555E3AE00E92A8B /* libSDL2.a in Frameworks */,
-				F395C0E525644B3900942BFF /* hidapi.framework in Frameworks */,
-				FDA8AAB10E2D330F00EA573E /* AudioToolbox.framework in Frameworks */,
-				FABA34771D8B4EAD00915323 /* AVFoundation.framework in Frameworks */,
-				FDA8AAB70E2D330F00EA573E /* CoreAudio.framework in Frameworks */,
-				FDA8AAB40E2D330F00EA573E /* CoreGraphics.framework in Frameworks */,
-				F3A494222555E3B700E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BC9196766BC00F8EB7C /* CoreMotion.framework in Frameworks */,
-				FDA8AAB60E2D330F00EA573E /* Foundation.framework in Frameworks */,
-				FA684F7F1BAF1A4D00DCFD1A /* GameController.framework in Frameworks */,
-				F3F758D622AC5811001D97F2 /* Metal.framework in Frameworks */,
-				FDA8AAB30E2D330F00EA573E /* OpenGLES.framework in Frameworks */,
-				FDA8AAB20E2D330F00EA573E /* QuartzCore.framework in Frameworks */,
-				FDA8AAB50E2D330F00EA573E /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDAAC3C00E2D47E6001DB1D8 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A494D12555E75200E92A8B /* libSDL2.a in Frameworks */,
-				F395C0E825644B6D00942BFF /* hidapi.framework in Frameworks */,
-				FDAAC3C30E2D47E6001DB1D8 /* AudioToolbox.framework in Frameworks */,
-				FABA34B11D8B5B6C00915323 /* AVFoundation.framework in Frameworks */,
-				FDAAC3C90E2D47E6001DB1D8 /* CoreAudio.framework in Frameworks */,
-				FDAAC3C60E2D47E6001DB1D8 /* CoreGraphics.framework in Frameworks */,
-				F3A494D22555E75B00E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BCD196766BF00F8EB7C /* CoreMotion.framework in Frameworks */,
-				FDAAC3C80E2D47E6001DB1D8 /* Foundation.framework in Frameworks */,
-				FA684F801BAF1A5000DCFD1A /* GameController.framework in Frameworks */,
-				F3F758DA22AC59A5001D97F2 /* Metal.framework in Frameworks */,
-				FDAAC3C50E2D47E6001DB1D8 /* OpenGLES.framework in Frameworks */,
-				FDAAC3C40E2D47E6001DB1D8 /* QuartzCore.framework in Frameworks */,
-				FDAAC3C70E2D47E6001DB1D8 /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDAAC58E0E2D5429001DB1D8 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A494F12555E7B300E92A8B /* libSDL2.a in Frameworks */,
-				F395C0EA25644B8100942BFF /* hidapi.framework in Frameworks */,
-				FDAAC5910E2D5429001DB1D8 /* AudioToolbox.framework in Frameworks */,
-				FABA34B31D8B5B7800915323 /* AVFoundation.framework in Frameworks */,
-				FDAAC5970E2D5429001DB1D8 /* CoreAudio.framework in Frameworks */,
-				FDAAC5940E2D5429001DB1D8 /* CoreGraphics.framework in Frameworks */,
-				F3A494F22555E7B900E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BCF196766C400F8EB7C /* CoreMotion.framework in Frameworks */,
-				FDAAC5960E2D5429001DB1D8 /* Foundation.framework in Frameworks */,
-				FA684F821BAF1A5700DCFD1A /* GameController.framework in Frameworks */,
-				F3F758DB22AC5A1B001D97F2 /* Metal.framework in Frameworks */,
-				FDAAC5930E2D5429001DB1D8 /* OpenGLES.framework in Frameworks */,
-				FDAAC5920E2D5429001DB1D8 /* QuartzCore.framework in Frameworks */,
-				FDAAC5950E2D5429001DB1D8 /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDAAC5BC0E2D55B5001DB1D8 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A494F32555E7D000E92A8B /* libSDL2.a in Frameworks */,
-				F395C10625644BDC00942BFF /* hidapi.framework in Frameworks */,
-				FDAAC5BF0E2D55B5001DB1D8 /* AudioToolbox.framework in Frameworks */,
-				FABA34B41D8B5B7C00915323 /* AVFoundation.framework in Frameworks */,
-				FDAAC5C50E2D55B5001DB1D8 /* CoreAudio.framework in Frameworks */,
-				FDAAC5C20E2D55B5001DB1D8 /* CoreGraphics.framework in Frameworks */,
-				F3A494F42555E7D800E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BD0196766C600F8EB7C /* CoreMotion.framework in Frameworks */,
-				FDAAC5C40E2D55B5001DB1D8 /* Foundation.framework in Frameworks */,
-				FA684F831BAF1A5A00DCFD1A /* GameController.framework in Frameworks */,
-				F3F758DC22AC5A46001D97F2 /* Metal.framework in Frameworks */,
-				FDAAC5C10E2D55B5001DB1D8 /* OpenGLES.framework in Frameworks */,
-				FDAAC5C00E2D55B5001DB1D8 /* QuartzCore.framework in Frameworks */,
-				FDAAC5C30E2D55B5001DB1D8 /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDAAC6190E2D5914001DB1D8 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A494FE2555E8AA00E92A8B /* libSDL2.a in Frameworks */,
-				AA1EE47417605B5C0029C7A5 /* libSDL2test.a in Frameworks */,
-				F395C10825644BF600942BFF /* hidapi.framework in Frameworks */,
-				FDAAC61C0E2D5914001DB1D8 /* AudioToolbox.framework in Frameworks */,
-				FABA34B61D8B5B8900915323 /* AVFoundation.framework in Frameworks */,
-				FDAAC6220E2D5914001DB1D8 /* CoreAudio.framework in Frameworks */,
-				F3A494FF2555E8B300E92A8B /* CoreHaptics.framework in Frameworks */,
-				FDAAC61F0E2D5914001DB1D8 /* CoreGraphics.framework in Frameworks */,
-				FA8B4BD2196766CB00F8EB7C /* CoreMotion.framework in Frameworks */,
-				FDAAC6210E2D5914001DB1D8 /* Foundation.framework in Frameworks */,
-				FA684F851BAF1A6000DCFD1A /* GameController.framework in Frameworks */,
-				F3F758E022AC5BB6001D97F2 /* Metal.framework in Frameworks */,
-				FDAAC61E0E2D5914001DB1D8 /* OpenGLES.framework in Frameworks */,
-				FDAAC61D0E2D5914001DB1D8 /* QuartzCore.framework in Frameworks */,
-				FDAAC6200E2D5914001DB1D8 /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDC42FF30F0D866D009C87E1 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A494D32555E76E00E92A8B /* libSDL2.a in Frameworks */,
-				AA1EE47117605A7F0029C7A5 /* libSDL2test.a in Frameworks */,
-				F395C0E925644B7700942BFF /* hidapi.framework in Frameworks */,
-				FDC42FF60F0D866D009C87E1 /* AudioToolbox.framework in Frameworks */,
-				FABA34B21D8B5B7300915323 /* AVFoundation.framework in Frameworks */,
-				FDC42FFC0F0D866D009C87E1 /* CoreAudio.framework in Frameworks */,
-				FDC42FF90F0D866D009C87E1 /* CoreGraphics.framework in Frameworks */,
-				F3A494D42555E77400E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BCE196766C100F8EB7C /* CoreMotion.framework in Frameworks */,
-				FDC42FFB0F0D866D009C87E1 /* Foundation.framework in Frameworks */,
-				FA684F811BAF1A5300DCFD1A /* GameController.framework in Frameworks */,
-				AA2F57AB1FDB5A0900832AD7 /* Metal.framework in Frameworks */,
-				FDC42FF80F0D866D009C87E1 /* OpenGLES.framework in Frameworks */,
-				FDC42FF70F0D866D009C87E1 /* QuartzCore.framework in Frameworks */,
-				FDC42FFA0F0D866D009C87E1 /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C0FD0E2E4F4B00B7A85F /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A495142555EA9B00E92A8B /* libSDL2.a in Frameworks */,
-				F395C11325644C6300942BFF /* hidapi.framework in Frameworks */,
-				FDD2C1000E2E4F4B00B7A85F /* AudioToolbox.framework in Frameworks */,
-				FABA34C11D8B5BBE00915323 /* AVFoundation.framework in Frameworks */,
-				FDD2C1060E2E4F4B00B7A85F /* CoreAudio.framework in Frameworks */,
-				FDD2C1030E2E4F4B00B7A85F /* CoreGraphics.framework in Frameworks */,
-				F3A495152555EAA100E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BDD196766EB00F8EB7C /* CoreMotion.framework in Frameworks */,
-				FDD2C1050E2E4F4B00B7A85F /* Foundation.framework in Frameworks */,
-				FA684F901BAF1A8100DCFD1A /* GameController.framework in Frameworks */,
-				F3F758E922AC5D51001D97F2 /* Metal.framework in Frameworks */,
-				FDD2C1020E2E4F4B00B7A85F /* OpenGLES.framework in Frameworks */,
-				FDD2C1010E2E4F4B00B7A85F /* QuartzCore.framework in Frameworks */,
-				FDD2C1040E2E4F4B00B7A85F /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C1740E2E52C000B7A85F /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A495002555E8C000E92A8B /* libSDL2.a in Frameworks */,
-				F395C10925644BFF00942BFF /* hidapi.framework in Frameworks */,
-				FDD2C1770E2E52C000B7A85F /* AudioToolbox.framework in Frameworks */,
-				FABA34B71D8B5B8D00915323 /* AVFoundation.framework in Frameworks */,
-				FDD2C17D0E2E52C000B7A85F /* CoreAudio.framework in Frameworks */,
-				FDD2C17A0E2E52C000B7A85F /* CoreGraphics.framework in Frameworks */,
-				F3A495012555E8D200E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BD3196766CE00F8EB7C /* CoreMotion.framework in Frameworks */,
-				FDD2C17C0E2E52C000B7A85F /* Foundation.framework in Frameworks */,
-				FA684F861BAF1A6200DCFD1A /* GameController.framework in Frameworks */,
-				F3F758E122AC5BE9001D97F2 /* Metal.framework in Frameworks */,
-				FDD2C1790E2E52C000B7A85F /* OpenGLES.framework in Frameworks */,
-				FDD2C1780E2E52C000B7A85F /* QuartzCore.framework in Frameworks */,
-				FDD2C17B0E2E52C000B7A85F /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C1980E2E534F00B7A85F /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A495022555E9BF00E92A8B /* libSDL2.a in Frameworks */,
-				F395C10A25644C0A00942BFF /* hidapi.framework in Frameworks */,
-				FDD2C19B0E2E534F00B7A85F /* AudioToolbox.framework in Frameworks */,
-				FABA34B81D8B5B9200915323 /* AVFoundation.framework in Frameworks */,
-				FDD2C1A10E2E534F00B7A85F /* CoreAudio.framework in Frameworks */,
-				FDD2C19E0E2E534F00B7A85F /* CoreGraphics.framework in Frameworks */,
-				F3A495032555E9C600E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BD4196766D100F8EB7C /* CoreMotion.framework in Frameworks */,
-				FDD2C1A00E2E534F00B7A85F /* Foundation.framework in Frameworks */,
-				FA684F871BAF1A6500DCFD1A /* GameController.framework in Frameworks */,
-				F3F758E222AC5C12001D97F2 /* Metal.framework in Frameworks */,
-				FDD2C19D0E2E534F00B7A85F /* OpenGLES.framework in Frameworks */,
-				FDD2C19C0E2E534F00B7A85F /* QuartzCore.framework in Frameworks */,
-				FDD2C19F0E2E534F00B7A85F /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C4510E2E773800B7A85F /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A495042555E9D900E92A8B /* libSDL2.a in Frameworks */,
-				F395C10B25644C1700942BFF /* hidapi.framework in Frameworks */,
-				FDD2C4540E2E773800B7A85F /* AudioToolbox.framework in Frameworks */,
-				FABA34B91D8B5B9600915323 /* AVFoundation.framework in Frameworks */,
-				FDD2C45A0E2E773800B7A85F /* CoreAudio.framework in Frameworks */,
-				FDD2C4570E2E773800B7A85F /* CoreGraphics.framework in Frameworks */,
-				F3A495052555E9E000E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BD5196766D400F8EB7C /* CoreMotion.framework in Frameworks */,
-				FDD2C4590E2E773800B7A85F /* Foundation.framework in Frameworks */,
-				FA684F881BAF1A6800DCFD1A /* GameController.framework in Frameworks */,
-				F3F758E322AC5C34001D97F2 /* Metal.framework in Frameworks */,
-				FDD2C4560E2E773800B7A85F /* OpenGLES.framework in Frameworks */,
-				FDD2C4550E2E773800B7A85F /* QuartzCore.framework in Frameworks */,
-				FDD2C4580E2E773800B7A85F /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C46F0E2E77D700B7A85F /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A495062555E9F100E92A8B /* libSDL2.a in Frameworks */,
-				F395C10C25644C2100942BFF /* hidapi.framework in Frameworks */,
-				FDD2C4720E2E77D700B7A85F /* AudioToolbox.framework in Frameworks */,
-				FABA34BA1D8B5B9B00915323 /* AVFoundation.framework in Frameworks */,
-				FDD2C4780E2E77D700B7A85F /* CoreAudio.framework in Frameworks */,
-				FDD2C4750E2E77D700B7A85F /* CoreGraphics.framework in Frameworks */,
-				F3A495072555E9F700E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BD6196766D700F8EB7C /* CoreMotion.framework in Frameworks */,
-				FDD2C4770E2E77D700B7A85F /* Foundation.framework in Frameworks */,
-				FA684F891BAF1A6A00DCFD1A /* GameController.framework in Frameworks */,
-				F3F758E422AC5C83001D97F2 /* Metal.framework in Frameworks */,
-				FDD2C4740E2E77D700B7A85F /* OpenGLES.framework in Frameworks */,
-				FDD2C4730E2E77D700B7A85F /* QuartzCore.framework in Frameworks */,
-				FDD2C4760E2E77D700B7A85F /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C4FE0E2E7F4800B7A85F /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A495082555EA0300E92A8B /* libSDL2.a in Frameworks */,
-				F395C10D25644C2900942BFF /* hidapi.framework in Frameworks */,
-				FDD2C5010E2E7F4800B7A85F /* AudioToolbox.framework in Frameworks */,
-				FABA34BB1D8B5BA100915323 /* AVFoundation.framework in Frameworks */,
-				FDD2C5070E2E7F4800B7A85F /* CoreAudio.framework in Frameworks */,
-				FDD2C5040E2E7F4800B7A85F /* CoreGraphics.framework in Frameworks */,
-				F3A495092555EA1200E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BD7196766DA00F8EB7C /* CoreMotion.framework in Frameworks */,
-				FDD2C5060E2E7F4800B7A85F /* Foundation.framework in Frameworks */,
-				FA684F8A1BAF1A6D00DCFD1A /* GameController.framework in Frameworks */,
-				F3F758E522AC5CA5001D97F2 /* Metal.framework in Frameworks */,
-				FDD2C5030E2E7F4800B7A85F /* OpenGLES.framework in Frameworks */,
-				FDD2C5020E2E7F4800B7A85F /* QuartzCore.framework in Frameworks */,
-				FDD2C5050E2E7F4800B7A85F /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C51C0E2E807600B7A85F /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A495102555EA7600E92A8B /* libSDL2.a in Frameworks */,
-				F395C11125644C4E00942BFF /* hidapi.framework in Frameworks */,
-				FDD2C51F0E2E807600B7A85F /* AudioToolbox.framework in Frameworks */,
-				FABA34BF1D8B5BB500915323 /* AVFoundation.framework in Frameworks */,
-				FDD2C5250E2E807600B7A85F /* CoreAudio.framework in Frameworks */,
-				FDD2C5220E2E807600B7A85F /* CoreGraphics.framework in Frameworks */,
-				F3A495112555EA7B00E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BDB196766E500F8EB7C /* CoreMotion.framework in Frameworks */,
-				FDD2C5240E2E807600B7A85F /* Foundation.framework in Frameworks */,
-				FA684F8E1BAF1A7B00DCFD1A /* GameController.framework in Frameworks */,
-				F3F758E822AC5D1B001D97F2 /* Metal.framework in Frameworks */,
-				FDD2C5210E2E807600B7A85F /* OpenGLES.framework in Frameworks */,
-				FDD2C5200E2E807600B7A85F /* QuartzCore.framework in Frameworks */,
-				FDD2C5230E2E807600B7A85F /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C5410E2E80E400B7A85F /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A495122555EA8700E92A8B /* libSDL2.a in Frameworks */,
-				AA1EE47717605BAB0029C7A5 /* libSDL2test.a in Frameworks */,
-				F395C11225644C5900942BFF /* hidapi.framework in Frameworks */,
-				FDD2C5440E2E80E400B7A85F /* AudioToolbox.framework in Frameworks */,
-				FABA34C01D8B5BBA00915323 /* AVFoundation.framework in Frameworks */,
-				FDD2C54A0E2E80E400B7A85F /* CoreAudio.framework in Frameworks */,
-				FDD2C5470E2E80E400B7A85F /* CoreGraphics.framework in Frameworks */,
-				F3A495132555EA8C00E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BDC196766E800F8EB7C /* CoreMotion.framework in Frameworks */,
-				FDD2C5490E2E80E400B7A85F /* Foundation.framework in Frameworks */,
-				FA684F8F1BAF1A7E00DCFD1A /* GameController.framework in Frameworks */,
-				AA2F57AC1FDB5AB600832AD7 /* Metal.framework in Frameworks */,
-				FDD2C5460E2E80E400B7A85F /* OpenGLES.framework in Frameworks */,
-				FDD2C5450E2E80E400B7A85F /* QuartzCore.framework in Frameworks */,
-				FDD2C5480E2E80E400B7A85F /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C57A0E2E8C7400B7A85F /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A495162555EAB000E92A8B /* libSDL2.a in Frameworks */,
-				F395C11425644C6D00942BFF /* hidapi.framework in Frameworks */,
-				FDD2C57D0E2E8C7400B7A85F /* AudioToolbox.framework in Frameworks */,
-				FABA34C21D8B5BC200915323 /* AVFoundation.framework in Frameworks */,
-				FDD2C5830E2E8C7400B7A85F /* CoreAudio.framework in Frameworks */,
-				FDD2C5800E2E8C7400B7A85F /* CoreGraphics.framework in Frameworks */,
-				F3A495172555EABB00E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BDE196766EE00F8EB7C /* CoreMotion.framework in Frameworks */,
-				FDD2C5820E2E8C7400B7A85F /* Foundation.framework in Frameworks */,
-				FA684F911BAF1A8400DCFD1A /* GameController.framework in Frameworks */,
-				F3F758EA22AC5D6B001D97F2 /* Metal.framework in Frameworks */,
-				FDD2C57F0E2E8C7400B7A85F /* OpenGLES.framework in Frameworks */,
-				FDD2C57E0E2E8C7400B7A85F /* QuartzCore.framework in Frameworks */,
-				FDD2C5810E2E8C7400B7A85F /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C5B80E2E8CFC00B7A85F /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A495182555EAC500E92A8B /* libSDL2.a in Frameworks */,
-				F395C11525644C7600942BFF /* hidapi.framework in Frameworks */,
-				FDD2C5BB0E2E8CFC00B7A85F /* AudioToolbox.framework in Frameworks */,
-				FABA34C31D8B5BC600915323 /* AVFoundation.framework in Frameworks */,
-				FDD2C5C10E2E8CFC00B7A85F /* CoreAudio.framework in Frameworks */,
-				FDD2C5BE0E2E8CFC00B7A85F /* CoreGraphics.framework in Frameworks */,
-				F3A495192555EACB00E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BDF196766F100F8EB7C /* CoreMotion.framework in Frameworks */,
-				FDD2C5C00E2E8CFC00B7A85F /* Foundation.framework in Frameworks */,
-				FA684F921BAF1A8700DCFD1A /* GameController.framework in Frameworks */,
-				F3F758EB22AC5D8B001D97F2 /* Metal.framework in Frameworks */,
-				FDD2C5BD0E2E8CFC00B7A85F /* OpenGLES.framework in Frameworks */,
-				FDD2C5BC0E2E8CFC00B7A85F /* QuartzCore.framework in Frameworks */,
-				FDD2C5BF0E2E8CFC00B7A85F /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C6E70E2E959E00B7A85F /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A4951E2555EB2600E92A8B /* libSDL2.a in Frameworks */,
-				F395C11825644C9100942BFF /* hidapi.framework in Frameworks */,
-				FDD2C6EA0E2E959E00B7A85F /* AudioToolbox.framework in Frameworks */,
-				FABA34C51D8B5BD000915323 /* AVFoundation.framework in Frameworks */,
-				FDD2C6F00E2E959E00B7A85F /* CoreAudio.framework in Frameworks */,
-				FDD2C6ED0E2E959E00B7A85F /* CoreGraphics.framework in Frameworks */,
-				F3A4951F2555EB2D00E92A8B /* CoreHaptics.framework in Frameworks */,
-				FA8B4BE1196766F600F8EB7C /* CoreMotion.framework in Frameworks */,
-				FDD2C6EF0E2E959E00B7A85F /* Foundation.framework in Frameworks */,
-				FA684F941BAF1A9400DCFD1A /* GameController.framework in Frameworks */,
-				F3F758EE22AC5DE1001D97F2 /* Metal.framework in Frameworks */,
-				FDD2C6EC0E2E959E00B7A85F /* OpenGLES.framework in Frameworks */,
-				FDD2C6EB0E2E959E00B7A85F /* QuartzCore.framework in Frameworks */,
-				FDD2C6EE0E2E959E00B7A85F /* UIKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
-		19C28FACFE9D520D11CA2CBB /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				1D6058910D05DD3D006BFB54 /* testwm2.app */,
-				FDA8AABB0E2D330F00EA573E /* loopwav.app */,
-				FDAAC3CD0E2D47E6001DB1D8 /* testaudioinfo.app */,
-				FDAAC59B0E2D5429001DB1D8 /* testerror.app */,
-				FDAAC5C90E2D55B5001DB1D8 /* testfile.app */,
-				FDAAC6260E2D5914001DB1D8 /* testgles.app */,
-				FDD2C10A0E2E4F4B00B7A85F /* testthread.app */,
-				FDD2C1810E2E52C000B7A85F /* testiconv.app */,
-				FDD2C1A50E2E534F00B7A85F /* testjoystick.app */,
-				FDD2C45E0E2E773800B7A85F /* testkeys.app */,
-				FDD2C47C0E2E77D700B7A85F /* testlock.app */,
-				FDD2C50B0E2E7F4800B7A85F /* testplatform.app */,
-				FDD2C5290E2E807600B7A85F /* testsem.app */,
-				FDD2C54E0E2E80E400B7A85F /* testsprite2.app */,
-				FDD2C5870E2E8C7400B7A85F /* testtimer.app */,
-				FDD2C5C50E2E8CFC00B7A85F /* testver.app */,
-				FDD2C6F40E2E959E00B7A85F /* torturethread.app */,
-				FDC430000F0D866D009C87E1 /* torturethread.app */,
-				56ED050D118A8FE400A56AA6 /* testpower.app */,
-				046CEF8613254F23007AD51D /* testgesture.app */,
-				047A63ED13285C3200CD7973 /* checkkeys.app */,
-				AAE7DEEC14CBB1E100DF1A0E /* testscale.app */,
-				AAE7DFB114CBB54E00DF1A0E /* testrendertarget.app */,
-				FAE0E9931BAF9B230098DFA4 /* testgamecontroller.app */,
-				FA3D99341BC4E644002C96C8 /* testgamecontroller-TV.app */,
-				FABA34911D8B575200915323 /* testaudiocapture.app */,
-				FABA34AA1D8B582100915323 /* loopwav-TV.app */,
-				AA13B3261FB8AEBC00D9FEE6 /* testyuv.app */,
-				F3A499D3255618AF00E92A8B /* controllermap.app */,
-				F395BF9A2564186400942BFF /* testsensor.app */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-		29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
-			isa = PBXGroup;
-			children = (
-				F3A492CC2555E1F100E92A8B /* SDL.xcodeproj */,
-				AA1EE44D176059220029C7A5 /* SDL2test.xcodeproj */,
-				FDA8AAD60E2D339A00EA573E /* Resources */,
-				FDA8A7C30E2D10FA00EA573E /* Frameworks */,
-				FDA8A73B0E2D0F0400EA573E /* src */,
-				19C28FACFE9D520D11CA2CBB /* Products */,
-				FABA34751D8B4EAC00915323 /* Frameworks */,
-				F3A499D4255618AF00E92A8B /* testgamecontroller copy-Info.plist */,
-				F395BF9B2564186400942BFF /* testpower copy-Info.plist */,
-			);
-			name = CustomTemplate;
-			sourceTree = "<group>";
-		};
-		AA1EE44E176059220029C7A5 /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				AA1EE452176059230029C7A5 /* libSDL2test.a */,
-				FA3D992F1BC4E619002C96C8 /* libSDL2test-TV.a */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-		F3A492CD2555E1F100E92A8B /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				F3A492DD2555E1F100E92A8B /* SDL2.framework */,
-				F3A492DF2555E1F100E92A8B /* SDL2.framework */,
-				F3A492E12555E1F100E92A8B /* SDL2.framework */,
-				F3A492E32555E1F100E92A8B /* libSDL2.a */,
-				F3A492E52555E1F100E92A8B /* libSDL2.a */,
-				F3A492E72555E1F100E92A8B /* libSDL2.a */,
-				F3A492E92555E1F100E92A8B /* libSDL2.dylib */,
-				F3A492EB2555E1F100E92A8B /* libSDL2.dylib */,
-				F3A492ED2555E1F100E92A8B /* libSDL2.dylib */,
-				F3A492EF2555E1F100E92A8B /* SDL2 */,
-				F3A492F12555E1F100E92A8B /* hidapi.framework */,
-				F3A492F32555E1F100E92A8B /* hidapi.framework */,
-				F3A492F52555E1F100E92A8B /* hidapi.framework */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-		FABA34751D8B4EAC00915323 /* Frameworks */ = {
-			isa = PBXGroup;
-			children = (
-				AA2F57A91FDB544800832AD7 /* Metal.framework */,
-				FABA34761D8B4EAD00915323 /* AVFoundation.framework */,
-			);
-			name = Frameworks;
-			sourceTree = "<group>";
-		};
-		FDA8A73B0E2D0F0400EA573E /* src */ = {
-			isa = PBXGroup;
-			children = (
-				047A63F013285CD100CD7973 /* checkkeys.c */,
-				F3A49A4C255618DD00E92A8B /* controllermap.c */,
-				FDA8A78B0E2D0F3D00EA573E /* loopwave.c */,
-				FABA34931D8B578200915323 /* testaudiocapture.c */,
-				FDA8A7410E2D0F1600EA573E /* testaudioinfo.c */,
-				FDC430090F0D86BF009C87E1 /* testdraw2.c */,
-				FDA8A7470E2D0F1600EA573E /* testerror.c */,
-				FDA8A7480E2D0F1600EA573E /* testfile.c */,
-				FA0EF2221BAF43DE000E07A6 /* testgamecontroller.c */,
-				046CEF8913254F63007AD51D /* testgesture.c */,
-				FDAAC6290E2D5960001DB1D8 /* testgles.c */,
-				FDA8A74D0E2D0F1600EA573E /* testiconv.c */,
-				FDA8A74E0E2D0F1600EA573E /* testjoystick.c */,
-				FDA8A74F0E2D0F1600EA573E /* testkeys.c */,
-				FDA8A7510E2D0F1600EA573E /* testlock.c */,
-				FDA8A7540E2D0F1600EA573E /* testoverlay2.c */,
-				FDA8A7560E2D0F1600EA573E /* testplatform.c */,
-				56ED0510118A904200A56AA6 /* testpower.c */,
-				AAE7DFB414CBB5F700DF1A0E /* testrendertarget.c */,
-				AAE7DF4514CBB43900DF1A0E /* testscale.c */,
-				FDA8A7570E2D0F1600EA573E /* testsem.c */,
-				F395BFE1256418A600942BFF /* testsensor.c */,
-				FDA8A7590E2D0F1600EA573E /* testsprite2.c */,
-				FDA8A74C0E2D0F1600EA573E /* testthread.c */,
-				FDA8A75A0E2D0F1600EA573E /* testtimer.c */,
-				FDA8A75B0E2D0F1600EA573E /* testver.c */,
-				FDA8A75F0E2D0F1600EA573E /* testwm2.c */,
-				AA13B35E1FB8B50D00D9FEE6 /* testyuv_cvt.c */,
-				AA13B35B1FB8B4D600D9FEE6 /* testyuv.c */,
-				FDA8A7610E2D0F1600EA573E /* torturethread.c */,
-			);
-			name = src;
-			path = ../../test;
-			sourceTree = "<group>";
-		};
-		FDA8A7C30E2D10FA00EA573E /* Frameworks */ = {
-			isa = PBXGroup;
-			children = (
-				F3A4953C2555EB8100E92A8B /* AVFoundation.framework */,
-				F3A494F82555E83D00E92A8B /* CoreBluetooth.framework */,
-				F3A494682555E42B00E92A8B /* Metal.framework */,
-				F3A493AB2555E30000E92A8B /* CoreHaptics.framework */,
-				F3A494242555E3D100E92A8B /* CoreHaptics.framework */,
-				75E09187241EACB9004729E1 /* CoreBluetooth.framework */,
-				FA684F7A1BAF1A4400DCFD1A /* GameController.framework */,
-				FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */,
-				FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */,
-				FDA8A8990E2D111A00EA573E /* QuartzCore.framework */,
-				FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */,
-				FDA8A89B0E2D111A00EA573E /* CoreGraphics.framework */,
-				FDA8A89C0E2D111A00EA573E /* UIKit.framework */,
-				FDA8A89D0E2D111A00EA573E /* Foundation.framework */,
-				FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */,
-			);
-			name = Frameworks;
-			sourceTree = "<group>";
-		};
-		FDA8AAD60E2D339A00EA573E /* Resources */ = {
-			isa = PBXGroup;
-			children = (
-				FA0EF2281BAF4487000E07A6 /* axis.bmp */,
-				FA0EF2291BAF4487000E07A6 /* button.bmp */,
-				FA0EF22A1BAF4487000E07A6 /* controllermap.bmp */,
-				F3A49AFD2556A47500E92A8B /* controllermap_back.bmp */,
-				FDA8AAD90E2D33B000EA573E /* icon.bmp */,
-				FDA8AADA0E2D33BA00EA573E /* moose.dat */,
-				FDA8AADB0E2D33BA00EA573E /* picture.xbm */,
-				FDA8AADE0E2D33C100EA573E /* sample.bmp */,
-				FDA8AAE20E2D33C600EA573E /* sample.wav */,
-				AA13B32E1FB8AF0C00D9FEE6 /* testyuv.bmp */,
-				FDD2C18A0E2E52FE00B7A85F /* utf8.txt */,
-			);
-			name = Resources;
-			path = ../../test;
-			sourceTree = "<group>";
-		};
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
-		046CEF7513254F23007AD51D /* testgesture */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 046CEF8313254F23007AD51D /* Build configuration list for PBXNativeTarget "testgesture" */;
-			buildPhases = (
-				046CEF7613254F23007AD51D /* Resources */,
-				046CEF7813254F23007AD51D /* Sources */,
-				046CEF7A13254F23007AD51D /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = testgesture;
-			productName = Test;
-			productReference = 046CEF8613254F23007AD51D /* testgesture.app */;
-			productType = "com.apple.product-type.application";
-		};
-		047A63DD13285C3200CD7973 /* checkkeys */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 047A63EA13285C3200CD7973 /* Build configuration list for PBXNativeTarget "checkkeys" */;
-			buildPhases = (
-				047A63DE13285C3200CD7973 /* Resources */,
-				047A63DF13285C3200CD7973 /* Sources */,
-				047A63E113285C3200CD7973 /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = checkkeys;
-			productName = Test;
-			productReference = 047A63ED13285C3200CD7973 /* checkkeys.app */;
-			productType = "com.apple.product-type.application";
-		};
-		1D6058900D05DD3D006BFB54 /* testwm2 */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "testwm2" */;
-			buildPhases = (
-				1D60588D0D05DD3D006BFB54 /* Resources */,
-				1D60588E0D05DD3D006BFB54 /* Sources */,
-				1D60588F0D05DD3D006BFB54 /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = testwm2;
-			productName = Test;
-			productReference = 1D6058910D05DD3D006BFB54 /* testwm2.app */;
-			productType = "com.apple.product-type.application";
-		};
-		56ED04FC118A8FE400A56AA6 /* testpower */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 56ED050A118A8FE400A56AA6 /* Build configuration list for PBXNativeTarget "testpower" */;
-			buildPhases = (
-				56ED04FD118A8FE400A56AA6 /* Resources */,
-				56ED04FF118A8FE400A56AA6 /* Sources */,
-				56ED0501118A8FE400A56AA6 /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = testpower;
-			productName = Test;
-			productReference = 56ED050D118A8FE400A56AA6 /* testpower.app */;
-			productType = "com.apple.product-type.application";
-		};
-		AA13B3111FB8AEBC00D9FEE6 /* testyuv */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = AA13B3231FB8AEBC00D9FEE6 /* Build configuration list for PBXNativeTarget "testyuv" */;
-			buildPhases = (
-				AA13B3121FB8AEBC00D9FEE6 /* Resources */,
-				AA13B3141FB8AEBC00D9FEE6 /* Sources */,
-				AA13B3161FB8AEBC00D9FEE6 /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = testyuv;
-			productName = Test;
-			productReference = AA13B3261FB8AEBC00D9FEE6 /* testyuv.app */;
-			productType = "com.apple.product-type.application";
-		};
-		AAE7DEDA14CBB1E100DF1A0E /* testscale */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = AAE7DEE914CBB1E100DF1A0E /* Build configuration list for PBXNativeTarget "testscale" */;
-			buildPhases = (
-				AAE7DEDB14CBB1E100DF1A0E /* Resources */,
-				AAE7DEDD14CBB1E100DF1A0E /* Sources */,
-				AAE7DEE014CBB1E100DF1A0E /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = testscale;
-			productName = Test;
-			productReference = AAE7DEEC14CBB1E100DF1A0E /* testscale.app */;
-			productType = "com.apple.product-type.application";
-		};
-		AAE7DF9E14CBB54E00DF1A0E /* testrendertarget */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = AAE7DFAE14CBB54E00DF1A0E /* Build configuration list for PBXNativeTarget "testrendertarget" */;
-			buildPhases = (
-				AAE7DF9F14CBB54E00DF1A0E /* Resources */,
-				AAE7DFA214CBB54E00DF1A0E /* Sources */,
-				AAE7DFA514CBB54E00DF1A0E /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = testrendertarget;
-			productName = Test;
-			productReference = AAE7DFB114CBB54E00DF1A0E /* testrendertarget.app */;
-			productType = "com.apple.product-type.application";
-		};
-		F395BF842564186400942BFF /* testsensor */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = F395BF972564186400942BFF /* Build configuration list for PBXNativeTarget "testsensor" */;
-			buildPhases = (
-				F395BF852564186400942BFF /* Resources */,
-				F395BF872564186400942BFF /* Sources */,
-				F395BF892564186400942BFF /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = testsensor;
-			productName = Test;
-			productReference = F395BF9A2564186400942BFF /* testsensor.app */;
-			productType = "com.apple.product-type.application";
-		};
-		F3A499B7255618AF00E92A8B /* controllermap */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = F3A499D0255618AF00E92A8B /* Build configuration list for PBXNativeTarget "controllermap" */;
-			buildPhases = (
-				F3A499B8255618AF00E92A8B /* Resources */,
-				F3A499BD255618AF00E92A8B /* Sources */,
-				F3A499BF255618AF00E92A8B /* Frameworks */,
-				F3A499CE255618AF00E92A8B /* Embed Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = controllermap;
-			productName = Test;
-			productReference = F3A499D3255618AF00E92A8B /* controllermap.app */;
-			productType = "com.apple.product-type.application";
-		};
-		FA3D99331BC4E644002C96C8 /* testgamecontroller-TV */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = FA3D99451BC4E645002C96C8 /* Build configuration list for PBXNativeTarget "testgamecontroller-TV" */;
-			buildPhases = (
-				FA3D99301BC4E644002C96C8 /* Sources */,
-				FA3D99311BC4E644002C96C8 /* Frameworks */,
-				FA3D99321BC4E644002C96C8 /* Resources */,
-				F3A498782556005D00E92A8B /* Embed Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = "testgamecontroller-TV";
-			productName = "testgamecontroller-TV";
-			productReference = FA3D99341BC4E644002C96C8 /* testgamecontroller-TV.app */;
-			productType = "com.apple.product-type.application";
-		};
-		FABA347D1D8B575200915323 /* testaudiocapture */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = FABA348E1D8B575200915323 /* Build configuration list for PBXNativeTarget "testaudiocapture" */;
-			buildPhases = (
-				FABA347E1D8B575200915323 /* Resources */,
-				FABA34801D8B575200915323 /* Sources */,
-				FABA34821D8B575200915323 /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = testaudiocapture;
-			productName = Test;
-			productReference = FABA34911D8B575200915323 /* testaudiocapture.app */;
-			productType = "com.apple.product-type.application";
-		};
-		FABA34961D8B582100915323 /* loopwav-TV */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = FABA34A71D8B582100915323 /* Build configuration list for PBXNativeTarget "loopwav-TV" */;
-			buildPhases = (
-				FABA34971D8B582100915323 /* Resources */,
-				FABA34991D8B582100915323 /* Sources */,
-				FABA349B1D8B582100915323 /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = "loopwav-TV";
-			productName = Test;
-			productReference = FABA34AA1D8B582100915323 /* loopwav-TV.app */;
-			productType = "com.apple.product-type.application";
-		};
-		FAE0E9801BAF9B230098DFA4 /* testgamecontroller */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = FAE0E9901BAF9B230098DFA4 /* Build configuration list for PBXNativeTarget "testgamecontroller" */;
-			buildPhases = (
-				FAE0E9811BAF9B230098DFA4 /* Resources */,
-				FAE0E9831BAF9B230098DFA4 /* Sources */,
-				FAE0E9851BAF9B230098DFA4 /* Frameworks */,
-				F3A498752556005300E92A8B /* Embed Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = testgamecontroller;
-			productName = Test;
-			productReference = FAE0E9931BAF9B230098DFA4 /* testgamecontroller.app */;
-			productType = "com.apple.product-type.application";
-		};
-		FDA8AAAA0E2D330F00EA573E /* loopwav */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = FDA8AAB80E2D330F00EA573E /* Build configuration list for PBXNativeTarget "loopwav" */;
-			buildPhases = (
-				FDA8AAAB0E2D330F00EA573E /* Resources */,
-				FDA8AAAC0E2D330F00EA573E /* Sources */,
-				FDA8AAAE0E2D330F00EA573E /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = loopwav;
-			productName = Test;
-			productReference = FDA8AABB0E2D330F00EA573E /* loopwav.app */;
-			productType = "com.apple.product-type.application";
-		};
-		FDAAC3BB0E2D47E6001DB1D8 /* testaudioinfo */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = FDAAC3CA0E2D47E6001DB1D8 /* Build configuration list for PBXNativeTarget "testaudioinfo" */;
-			buildPhases = (
-				FDAAC3BC0E2D47E6001DB1D8 /* Resources */,
-				FDAAC3BE0E2D47E6001DB1D8 /* Sources */,
-				FDAAC3C00E2D47E6001DB1D8 /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = testaudioinfo;
-			productName = Test;
-			productReference = FDAAC3CD0E2D47E6001DB1D8 /* testaudioinfo.app */;
-			productType = "com.apple.product-type.application";
-		};
-		FDAAC58A0E2D5429001DB1D8 /* testerror */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = FDAAC5980E2D5429001DB1D8 /* Build configuration list for PBXNativeTarget "testerror" */;
-			buildPhases = (
-				FDAAC58B0E2D5429001DB1D8 /* Resources */,
-				FDAAC58C0E2D5429001DB1D8 /* Sources */,
-				FDAAC58E0E2D5429001DB1D8 /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = testerror;
-			productName = Test;
-			productReference = FDAAC59B0E2D5429001DB1D8 /* testerror.app */;
-			productType = "com.apple.product-type.application";
-		};
-		FDAAC5B80E2D55B5001DB1D8 /* testfile */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = FDAAC5C60E2D55B5001DB1D8 /* Build configuration list for PBXNativeTarget "testfile" */;
-			buildPhases = (
-				FDAAC5B90E2D55B5001DB1D8 /* Resources */,
-				FDAAC5BA0E2D55B5001DB1D8 /* Sources */,
-				FDAAC5BC0E2D55B5001DB1D8 /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = testfile;
-			productName = Test;
-			productReference = FDAAC5C90E2D55B5001DB1D8 /* testfile.app */;
-			productType = "com.apple.product-type.application";
-		};
-		FDAAC6150E2D5914001DB1D8 /* testgles */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = FDAAC6230E2D5914001DB1D8 /* Build configuration list for PBXNativeTarget "testgles" */;
-			buildPhases = (
-				FDAAC6160E2D5914001DB1D8 /* Resources */,
-				FDAAC6170E2D5914001DB1D8 /* Sources */,
-				FDAAC6190E2D5914001DB1D8 /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = testgles;
-			productName = Test;
-			productReference = FDAAC6260E2D5914001DB1D8 /* testgles.app */;
-			productType = "com.apple.product-type.application";
-		};
-		FDC42FEF0F0D866D009C87E1 /* testdraw2 */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = FDC42FFD0F0D866D009C87E1 /* Build configuration list for PBXNativeTarget "testdraw2" */;
-			buildPhases = (
-				FDC42FF00F0D866D009C87E1 /* Resources */,
-				FDC42FF10F0D866D009C87E1 /* Sources */,
-				FDC42FF30F0D866D009C87E1 /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = testdraw2;
-			productName = Test;
-			productReference = FDC430000F0D866D009C87E1 /* torturethread.app */;
-			productType = "com.apple.product-type.application";
-		};
-		FDD2C0F90E2E4F4B00B7A85F /* testthread */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = FDD2C1070E2E4F4B00B7A85F /* Build configuration list for PBXNativeTarget "testthread" */;
-			buildPhases = (
-				FDD2C0FA0E2E4F4B00B7A85F /* Resources */,
-				FDD2C0FB0E2E4F4B00B7A85F /* Sources */,
-				FDD2C0FD0E2E4F4B00B7A85F /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = testthread;
-			productName = Test;
-			productReference = FDD2C10A0E2E4F4B00B7A85F /* testthread.app */;
-			productType = "com.apple.product-type.application";
-		};
-		FDD2C1700E2E52C000B7A85F /* testiconv */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = FDD2C17E0E2E52C000B7A85F /* Build configuration list for PBXNativeTarget "testiconv" */;
-			buildPhases = (
-				FDD2C1710E2E52C000B7A85F /* Resources */,
-				FDD2C1720E2E52C000B7A85F /* Sources */,
-				FDD2C1740E2E52C000B7A85F /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = testiconv;
-			productName = Test;
-			productReference = FDD2C1810E2E52C000B7A85F /* testiconv.app */;
-			productType = "com.apple.product-type.application";
-		};
-		FDD2C1930E2E534F00B7A85F /* testjoystick */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = FDD2C1A20E2E534F00B7A85F /* Build configuration list for PBXNativeTarget "testjoystick" */;
-			buildPhases = (
-				FDD2C1940E2E534F00B7A85F /* Resources */,
-				FDD2C1960E2E534F00B7A85F /* Sources */,
-				FDD2C1980E2E534F00B7A85F /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = testjoystick;
-			productName = Test;
-			productReference = FDD2C1A50E2E534F00B7A85F /* testjoystick.app */;
-			productType = "com.apple.product-type.application";
-		};
-		FDD2C44D0E2E773800B7A85F /* testkeys */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = FDD2C45B0E2E773800B7A85F /* Build configuration list for PBXNativeTarget "testkeys" */;
-			buildPhases = (
-				FDD2C44E0E2E773800B7A85F /* Resources */,
-				FDD2C44F0E2E773800B7A85F /* Sources */,
-				FDD2C4510E2E773800B7A85F /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = testkeys;
-			productName = Test;
-			productReference = FDD2C45E0E2E773800B7A85F /* testkeys.app */;
-			productType = "com.apple.product-type.application";
-		};
-		FDD2C46B0E2E77D700B7A85F /* testlock */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = FDD2C4790E2E77D700B7A85F /* Build configuration list for PBXNativeTarget "testlock" */;
-			buildPhases = (
-				FDD2C46C0E2E77D700B7A85F /* Resources */,
-				FDD2C46D0E2E77D700B7A85F /* Sources */,
-				FDD2C46F0E2E77D700B7A85F /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = testlock;
-			productName = Test;
-			productReference = FDD2C47C0E2E77D700B7A85F /* testlock.app */;
-			productType = "com.apple.product-type.application";
-		};
-		FDD2C4F90E2E7F4800B7A85F /* testplatform */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = FDD2C5080E2E7F4800B7A85F /* Build configuration list for PBXNativeTarget "testplatform" */;
-			buildPhases = (
-				FDD2C4FA0E2E7F4800B7A85F /* Resources */,
-				FDD2C4FC0E2E7F4800B7A85F /* Sources */,
-				FDD2C4FE0E2E7F4800B7A85F /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = testplatform;
-			productName = Test;
-			productReference = FDD2C50B0E2E7F4800B7A85F /* testplatform.app */;
-			productType = "com.apple.product-type.application";
-		};
-		FDD2C5170E2E807600B7A85F /* testsem */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = FDD2C5260E2E807600B7A85F /* Build configuration list for PBXNativeTarget "testsem" */;
-			buildPhases = (
-				FDD2C5180E2E807600B7A85F /* Resources */,
-				FDD2C51A0E2E807600B7A85F /* Sources */,
-				FDD2C51C0E2E807600B7A85F /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = testsem;
-			productName = Test;
-			productReference = FDD2C5290E2E807600B7A85F /* testsem.app */;
-			productType = "com.apple.product-type.application";
-		};
-		FDD2C53D0E2E80E400B7A85F /* testsprite2 */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = FDD2C54B0E2E80E400B7A85F /* Build configuration list for PBXNativeTarget "testsprite2" */;
-			buildPhases = (
-				FDD2C53E0E2E80E400B7A85F /* Resources */,
-				FDD2C53F0E2E80E400B7A85F /* Sources */,
-				FDD2C5410E2E80E400B7A85F /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = testsprite2;
-			productName = Test;
-			productReference = FDD2C54E0E2E80E400B7A85F /* testsprite2.app */;
-			productType = "com.apple.product-type.application";
-		};
-		FDD2C5740E2E8C7400B7A85F /* testtimer */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = FDD2C5840E2E8C7400B7A85F /* Build configuration list for PBXNativeTarget "testtimer" */;
-			buildPhases = (
-				FDD2C5750E2E8C7400B7A85F /* Resources */,
-				FDD2C5770E2E8C7400B7A85F /* Sources */,
-				FDD2C57A0E2E8C7400B7A85F /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = testtimer;
-			productName = Test;
-			productReference = FDD2C5870E2E8C7400B7A85F /* testtimer.app */;
-			productType = "com.apple.product-type.application";
-		};
-		FDD2C5B30E2E8CFC00B7A85F /* testver */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = FDD2C5C20E2E8CFC00B7A85F /* Build configuration list for PBXNativeTarget "testver" */;
-			buildPhases = (
-				FDD2C5B40E2E8CFC00B7A85F /* Resources */,
-				FDD2C5B60E2E8CFC00B7A85F /* Sources */,
-				FDD2C5B80E2E8CFC00B7A85F /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = testver;
-			productName = Test;
-			productReference = FDD2C5C50E2E8CFC00B7A85F /* testver.app */;
-			productType = "com.apple.product-type.application";
-		};
-		FDD2C6E20E2E959E00B7A85F /* torturethread */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = FDD2C6F10E2E959E00B7A85F /* Build configuration list for PBXNativeTarget "torturethread" */;
-			buildPhases = (
-				FDD2C6E30E2E959E00B7A85F /* Resources */,
-				FDD2C6E50E2E959E00B7A85F /* Sources */,
-				FDD2C6E70E2E959E00B7A85F /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = torturethread;
-			productName = Test;
-			productReference = FDD2C6F40E2E959E00B7A85F /* torturethread.app */;
-			productType = "com.apple.product-type.application";
-		};
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
-		29B97313FDCFA39411CA2CEA /* Project object */ = {
-			isa = PBXProject;
-			attributes = {
-				LastUpgradeCheck = 0630;
-				TargetAttributes = {
-					046CEF7513254F23007AD51D = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					047A63DD13285C3200CD7973 = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					1D6058900D05DD3D006BFB54 = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					56ED04FC118A8FE400A56AA6 = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					AA13B3111FB8AEBC00D9FEE6 = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					AAE7DEDA14CBB1E100DF1A0E = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					AAE7DF9E14CBB54E00DF1A0E = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					F395BF842564186400942BFF = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					F3A499B7255618AF00E92A8B = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					FA3D99331BC4E644002C96C8 = {
-						CreatedOnToolsVersion = 7.1;
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					FABA347D1D8B575200915323 = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					FABA34961D8B582100915323 = {
-						DevelopmentTeam = MXGJJ98X76;
-						ProvisioningStyle = Automatic;
-					};
-					FAE0E9801BAF9B230098DFA4 = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					FDA8AAAA0E2D330F00EA573E = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					FDAAC3BB0E2D47E6001DB1D8 = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					FDAAC58A0E2D5429001DB1D8 = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					FDAAC5B80E2D55B5001DB1D8 = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					FDAAC6150E2D5914001DB1D8 = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					FDC42FEF0F0D866D009C87E1 = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					FDD2C0F90E2E4F4B00B7A85F = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					FDD2C1700E2E52C000B7A85F = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					FDD2C1930E2E534F00B7A85F = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					FDD2C44D0E2E773800B7A85F = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					FDD2C46B0E2E77D700B7A85F = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					FDD2C4F90E2E7F4800B7A85F = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					FDD2C5170E2E807600B7A85F = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					FDD2C53D0E2E80E400B7A85F = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					FDD2C5740E2E8C7400B7A85F = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					FDD2C5B30E2E8CFC00B7A85F = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-					FDD2C6E20E2E959E00B7A85F = {
-						DevelopmentTeam = MXGJJ98X76;
-					};
-				};
-			};
-			buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "TestiPhoneOS" */;
-			compatibilityVersion = "Xcode 3.2";
-			developmentRegion = English;
-			hasScannedForEncodings = 1;
-			knownRegions = (
-				English,
-				Japanese,
-				French,
-				German,
-				Base,
-			);
-			mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
-			projectDirPath = "";
-			projectReferences = (
-				{
-					ProductGroup = F3A492CD2555E1F100E92A8B /* Products */;
-					ProjectRef = F3A492CC2555E1F100E92A8B /* SDL.xcodeproj */;
-				},
-				{
-					ProductGroup = AA1EE44E176059220029C7A5 /* Products */;
-					ProjectRef = AA1EE44D176059220029C7A5 /* SDL2test.xcodeproj */;
-				},
-			);
-			projectRoot = "";
-			targets = (
-				047A63DD13285C3200CD7973 /* checkkeys */,
-				F3A499B7255618AF00E92A8B /* controllermap */,
-				FDA8AAAA0E2D330F00EA573E /* loopwav */,
-				FABA34961D8B582100915323 /* loopwav-TV */,
-				FABA347D1D8B575200915323 /* testaudiocapture */,
-				FDAAC3BB0E2D47E6001DB1D8 /* testaudioinfo */,
-				FDC42FEF0F0D866D009C87E1 /* testdraw2 */,
-				FDAAC58A0E2D5429001DB1D8 /* testerror */,
-				FDAAC5B80E2D55B5001DB1D8 /* testfile */,
-				FAE0E9801BAF9B230098DFA4 /* testgamecontroller */,
-				FA3D99331BC4E644002C96C8 /* testgamecontroller-TV */,
-				046CEF7513254F23007AD51D /* testgesture */,
-				FDAAC6150E2D5914001DB1D8 /* testgles */,
-				FDD2C1700E2E52C000B7A85F /* testiconv */,
-				FDD2C1930E2E534F00B7A85F /* testjoystick */,
-				FDD2C44D0E2E773800B7A85F /* testkeys */,
-				FDD2C46B0E2E77D700B7A85F /* testlock */,
-				FDD2C4F90E2E7F4800B7A85F /* testplatform */,
-				56ED04FC118A8FE400A56AA6 /* testpower */,
-				AAE7DF9E14CBB54E00DF1A0E /* testrendertarget */,
-				AAE7DEDA14CBB1E100DF1A0E /* testscale */,
-				FDD2C5170E2E807600B7A85F /* testsem */,
-				F395BF842564186400942BFF /* testsensor */,
-				FDD2C53D0E2E80E400B7A85F /* testsprite2 */,
-				FDD2C0F90E2E4F4B00B7A85F /* testthread */,
-				FDD2C5740E2E8C7400B7A85F /* testtimer */,
-				FDD2C5B30E2E8CFC00B7A85F /* testver */,
-				1D6058900D05DD3D006BFB54 /* testwm2 */,
-				AA13B3111FB8AEBC00D9FEE6 /* testyuv */,
-				FDD2C6E20E2E959E00B7A85F /* torturethread */,
-			);
-		};
-/* End PBXProject section */
-
-/* Begin PBXReferenceProxy section */
-		AA1EE452176059230029C7A5 /* libSDL2test.a */ = {
-			isa = PBXReferenceProxy;
-			fileType = archive.ar;
-			path = libSDL2test.a;
-			remoteRef = AA1EE451176059230029C7A5 /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		F3A492DD2555E1F100E92A8B /* SDL2.framework */ = {
-			isa = PBXReferenceProxy;
-			fileType = wrapper.framework;
-			path = SDL2.framework;
-			remoteRef = F3A492DC2555E1F100E92A8B /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		F3A492DF2555E1F100E92A8B /* SDL2.framework */ = {
-			isa = PBXReferenceProxy;
-			fileType = wrapper.framework;
-			path = SDL2.framework;
-			remoteRef = F3A492DE2555E1F100E92A8B /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		F3A492E12555E1F100E92A8B /* SDL2.framework */ = {
-			isa = PBXReferenceProxy;
-			fileType = wrapper.framework;
-			path = SDL2.framework;
-			remoteRef = F3A492E02555E1F100E92A8B /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		F3A492E32555E1F100E92A8B /* libSDL2.a */ = {
-			isa = PBXReferenceProxy;
-			fileType = archive.ar;
-			path = libSDL2.a;
-			remoteRef = F3A492E22555E1F100E92A8B /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		F3A492E52555E1F100E92A8B /* libSDL2.a */ = {
-			isa = PBXReferenceProxy;
-			fileType = archive.ar;
-			path = libSDL2.a;
-			remoteRef = F3A492E42555E1F100E92A8B /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		F3A492E72555E1F100E92A8B /* libSDL2.a */ = {
-			isa = PBXReferenceProxy;
-			fileType = archive.ar;
-			path = libSDL2.a;
-			remoteRef = F3A492E62555E1F100E92A8B /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		F3A492E92555E1F100E92A8B /* libSDL2.dylib */ = {
-			isa = PBXReferenceProxy;
-			fileType = "compiled.mach-o.dylib";
-			path = libSDL2.dylib;
-			remoteRef = F3A492E82555E1F100E92A8B /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		F3A492EB2555E1F100E92A8B /* libSDL2.dylib */ = {
-			isa = PBXReferenceProxy;
-			fileType = "compiled.mach-o.dylib";
-			path = libSDL2.dylib;
-			remoteRef = F3A492EA2555E1F100E92A8B /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		F3A492ED2555E1F100E92A8B /* libSDL2.dylib */ = {
-			isa = PBXReferenceProxy;
-			fileType = "compiled.mach-o.dylib";
-			path = libSDL2.dylib;
-			remoteRef = F3A492EC2555E1F100E92A8B /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		F3A492EF2555E1F100E92A8B /* SDL2 */ = {
-			isa = PBXReferenceProxy;
-			fileType = "compiled.mach-o.executable";
-			path = SDL2;
-			remoteRef = F3A492EE2555E1F100E92A8B /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		F3A492F12555E1F100E92A8B /* hidapi.framework */ = {
-			isa = PBXReferenceProxy;
-			fileType = wrapper.framework;
-			path = hidapi.framework;
-			remoteRef = F3A492F02555E1F100E92A8B /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		F3A492F32555E1F100E92A8B /* hidapi.framework */ = {
-			isa = PBXReferenceProxy;
-			fileType = wrapper.framework;
-			path = hidapi.framework;
-			remoteRef = F3A492F22555E1F100E92A8B /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		F3A492F52555E1F100E92A8B /* hidapi.framework */ = {
-			isa = PBXReferenceProxy;
-			fileType = wrapper.framework;
-			path = hidapi.framework;
-			remoteRef = F3A492F42555E1F100E92A8B /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		FA3D992F1BC4E619002C96C8 /* libSDL2test-TV.a */ = {
-			isa = PBXReferenceProxy;
-			fileType = archive.ar;
-			path = "libSDL2test-TV.a";
-			remoteRef = FA3D992E1BC4E619002C96C8 /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-/* End PBXReferenceProxy section */
-
-/* Begin PBXResourcesBuildPhase section */
-		046CEF7613254F23007AD51D /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				046CEF7713254F23007AD51D /* icon.bmp in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		047A63DE13285C3200CD7973 /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				AA13B32F1FB8AF0C00D9FEE6 /* testyuv.bmp in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		1D60588D0D05DD3D006BFB54 /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		56ED04FD118A8FE400A56AA6 /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				56ED04FE118A8FE400A56AA6 /* icon.bmp in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		AA13B3121FB8AEBC00D9FEE6 /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				AA13B3301FB8AF2300D9FEE6 /* testyuv.bmp in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		AAE7DEDB14CBB1E100DF1A0E /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				AAE7DEDC14CBB1E100DF1A0E /* icon.bmp in Resources */,
-				AAE7DF4714CBB45000DF1A0E /* sample.bmp in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		AAE7DF9F14CBB54E00DF1A0E /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				AAE7DFA014CBB54E00DF1A0E /* icon.bmp in Resources */,
-				AAE7DFA114CBB54E00DF1A0E /* sample.bmp in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F395BF852564186400942BFF /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F395BF862564186400942BFF /* icon.bmp in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F3A499B8255618AF00E92A8B /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A499B9255618AF00E92A8B /* controllermap.bmp in Resources */,
-				F3A49AFE2556A47500E92A8B /* controllermap_back.bmp in Resources */,
-				F3A499BA255618AF00E92A8B /* icon.bmp in Resources */,
-				F3A499BB255618AF00E92A8B /* axis.bmp in Resources */,
-				F3A499BC255618AF00E92A8B /* button.bmp in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FA3D99321BC4E644002C96C8 /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FA3D99521BC4E70C002C96C8 /* controllermap.bmp in Resources */,
-				F3A49B002556A47500E92A8B /* controllermap_back.bmp in Resources */,
-				FA3D99541BC4E70F002C96C8 /* button.bmp in Resources */,
-				FA3D99531BC4E70E002C96C8 /* axis.bmp in Resources */,
-				FA3D99551BC4E712002C96C8 /* icon.bmp in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FABA347E1D8B575200915323 /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FABA34971D8B582100915323 /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FABA34981D8B582100915323 /* sample.wav in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FAE0E9811BAF9B230098DFA4 /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FAE0E9961BAF9B650098DFA4 /* controllermap.bmp in Resources */,
-				F3A49AFF2556A47500E92A8B /* controllermap_back.bmp in Resources */,
-				FAE0E9821BAF9B230098DFA4 /* icon.bmp in Resources */,
-				FAE0E9981BAF9B6E0098DFA4 /* axis.bmp in Resources */,
-				FAE0E9971BAF9B6A0098DFA4 /* button.bmp in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDA8AAAB0E2D330F00EA573E /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FDA8AAE30E2D33C600EA573E /* sample.wav in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDAAC3BC0E2D47E6001DB1D8 /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDAAC58B0E2D5429001DB1D8 /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDAAC5B90E2D55B5001DB1D8 /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDAAC6160E2D5914001DB1D8 /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FDAAC6390E2D59BE001DB1D8 /* icon.bmp in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDC42FF00F0D866D009C87E1 /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C0FA0E2E4F4B00B7A85F /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C1710E2E52C000B7A85F /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FDD2C18B0E2E52FE00B7A85F /* utf8.txt in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C1940E2E534F00B7A85F /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C44E0E2E773800B7A85F /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C46C0E2E77D700B7A85F /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C4FA0E2E7F4800B7A85F /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C5180E2E807600B7A85F /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C53E0E2E80E400B7A85F /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FDD2C5520E2E812C00B7A85F /* icon.bmp in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C5750E2E8C7400B7A85F /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FDD2C5760E2E8C7400B7A85F /* icon.bmp in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C5B40E2E8CFC00B7A85F /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FDD2C5B50E2E8CFC00B7A85F /* icon.bmp in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C6E30E2E959E00B7A85F /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
-		046CEF7813254F23007AD51D /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				046CEF8A13254F63007AD51D /* testgesture.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		047A63DF13285C3200CD7973 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				047A63F113285CD100CD7973 /* checkkeys.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		1D60588E0D05DD3D006BFB54 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FDA8A79C0E2D0F9300EA573E /* testwm2.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		56ED04FF118A8FE400A56AA6 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				56ED0511118A904200A56AA6 /* testpower.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		AA13B3141FB8AEBC00D9FEE6 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				AA13B3611FB8B52500D9FEE6 /* testyuv_cvt.c in Sources */,
-				AA13B35D1FB8B4E200D9FEE6 /* testyuv.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		AAE7DEDD14CBB1E100DF1A0E /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				AAE7DF4614CBB43900DF1A0E /* testscale.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		AAE7DFA214CBB54E00DF1A0E /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				AAE7DFB514CBB5F700DF1A0E /* testrendertarget.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F395BF872564186400942BFF /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F395BFE2256418A700942BFF /* testsensor.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F3A499BD255618AF00E92A8B /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3A49A822556190000E92A8B /* controllermap.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FA3D99301BC4E644002C96C8 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3F758DE22AC5ABB001D97F2 /* testgamecontroller.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FABA34801D8B575200915323 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FABA34951D8B578600915323 /* testaudiocapture.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FABA34991D8B582100915323 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FABA349A1D8B582100915323 /* loopwave.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FAE0E9831BAF9B230098DFA4 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FAE0E9951BAF9B510098DFA4 /* testgamecontroller.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDA8AAAC0E2D330F00EA573E /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FDA8AABE0E2D335C00EA573E /* loopwave.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDAAC3BE0E2D47E6001DB1D8 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FDAAC3D30E2D4800001DB1D8 /* testaudioinfo.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDAAC58C0E2D5429001DB1D8 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FDAAC59F0E2D54B8001DB1D8 /* testerror.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDAAC5BA0E2D55B5001DB1D8 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FDAAC5CC0E2D55CA001DB1D8 /* testfile.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDAAC6170E2D5914001DB1D8 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FDAAC62A0E2D5960001DB1D8 /* testgles.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDC42FF10F0D866D009C87E1 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FDC4300A0F0D86BF009C87E1 /* testdraw2.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C0FB0E2E4F4B00B7A85F /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FDD2C10D0E2E4F6900B7A85F /* testthread.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C1720E2E52C000B7A85F /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FDD2C1840E2E52D900B7A85F /* testiconv.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C1960E2E534F00B7A85F /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FA0EF22E1BAF4654000E07A6 /* testjoystick.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C44F0E2E773800B7A85F /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FDD2C4610E2E777500B7A85F /* testkeys.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C46D0E2E77D700B7A85F /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FDD2C47F0E2E77E300B7A85F /* testlock.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C4FC0E2E7F4800B7A85F /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FDD2C50E0E2E7F5800B7A85F /* testplatform.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C51A0E2E807600B7A85F /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FDD2C52C0E2E808700B7A85F /* testsem.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C53F0E2E80E400B7A85F /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FDD2C5510E2E80F400B7A85F /* testsprite2.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C5770E2E8C7400B7A85F /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FDD2C58A0E2E8CB500B7A85F /* testtimer.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C5B60E2E8CFC00B7A85F /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FDD2C5C80E2E8D1200B7A85F /* testver.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		FDD2C6E50E2E959E00B7A85F /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				FDD2C6F70E2E95B100B7A85F /* torturethread.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXSourcesBuildPhase section */
-
-/* Begin XCBuildConfiguration section */
-		046CEF8413254F23007AD51D /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testgesture;
-			};
-			name = Debug;
-		};
-		046CEF8513254F23007AD51D /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testgesture;
-			};
-			name = Release;
-		};
-		047A63EB13285C3200CD7973 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = checkkeys;
-			};
-			name = Debug;
-		};
-		047A63EC13285C3200CD7973 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = checkkeys;
-			};
-			name = Release;
-		};
-		1D6058940D05DD3E006BFB54 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testwm2;
-			};
-			name = Debug;
-		};
-		1D6058950D05DD3E006BFB54 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testwm2;
-			};
-			name = Release;
-		};
-		56ED050B118A8FE400A56AA6 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testpower;
-			};
-			name = Debug;
-		};
-		56ED050C118A8FE400A56AA6 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testpower;
-			};
-			name = Release;
-		};
-		AA13B3241FB8AEBC00D9FEE6 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = "$(TARGET_NAME)";
-			};
-			name = Debug;
-		};
-		AA13B3251FB8AEBC00D9FEE6 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = "$(TARGET_NAME)";
-			};
-			name = Release;
-		};
-		AAE7DEEA14CBB1E100DF1A0E /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testscale;
-			};
-			name = Debug;
-		};
-		AAE7DEEB14CBB1E100DF1A0E /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testscale;
-			};
-			name = Release;
-		};
-		AAE7DFAF14CBB54E00DF1A0E /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testrendertarget;
-			};
-			name = Debug;
-		};
-		AAE7DFB014CBB54E00DF1A0E /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testrendertarget;
-			};
-			name = Release;
-		};
-		C01FCF4F08A954540054247B /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
-				ENABLE_BITCODE = NO;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				HEADER_SEARCH_PATHS = ../../include;
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
-				ONLY_ACTIVE_ARCH = YES;
-				OTHER_LDFLAGS = "-ObjC";
-				"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
-				SDKROOT = iphoneos;
-				TARGETED_DEVICE_FAMILY = "1,2";
-			};
-			name = Debug;
-		};
-		C01FCF5008A954540054247B /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
-				ENABLE_BITCODE = NO;
-				HEADER_SEARCH_PATHS = ../../include;
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
-				OTHER_LDFLAGS = "-ObjC";
-				"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
-				SDKROOT = iphoneos;
-				TARGETED_DEVICE_FAMILY = "1,2";
-			};
-			name = Release;
-		};
-		F395BF982564186400942BFF /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = "testpower copy-Info.plist";
-				PRODUCT_NAME = "$(TARGET_NAME)";
-			};
-			name = Debug;
-		};
-		F395BF992564186400942BFF /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = "testpower copy-Info.plist";
-				PRODUCT_NAME = "$(TARGET_NAME)";
-			};
-			name = Release;
-		};
-		F3A499D1255618AF00E92A8B /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = "testgamecontroller copy-Info.plist";
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
-				PRODUCT_NAME = "$(TARGET_NAME)";
-			};
-			name = Debug;
-		};
-		F3A499D2255618AF00E92A8B /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = "testgamecontroller copy-Info.plist";
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
-				PRODUCT_NAME = "$(TARGET_NAME)";
-			};
-			name = Release;
-		};
-		FA3D99461BC4E645002C96C8 /* 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_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;
-				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;
-				INFOPLIST_FILE = Info.plist;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
-				MTL_ENABLE_DEBUG_INFO = YES;
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				SDKROOT = appletvos;
-				TARGETED_DEVICE_FAMILY = 3;
-				TVOS_DEPLOYMENT_TARGET = 9.0;
-			};
-			name = Debug;
-		};
-		FA3D99471BC4E645002C96C8 /* 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_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_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;
-				INFOPLIST_FILE = Info.plist;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
-				MTL_ENABLE_DEBUG_INFO = NO;
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				SDKROOT = appletvos;
-				TARGETED_DEVICE_FAMILY = 3;
-				TVOS_DEPLOYMENT_TARGET = 9.0;
-				VALIDATE_PRODUCT = YES;
-			};
-			name = Release;
-		};
-		FABA348F1D8B575200915323 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = "$(TARGET_NAME)";
-			};
-			name = Debug;
-		};
-		FABA34901D8B575200915323 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = "$(TARGET_NAME)";
-			};
-			name = Release;
-		};
-		FABA34A81D8B582100915323 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				SDKROOT = appletvos;
-				SUPPORTED_PLATFORMS = "appletvsimulator appletvos";
-				TVOS_DEPLOYMENT_TARGET = 9.0;
-			};
-			name = Debug;
-		};
-		FABA34A91D8B582100915323 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				SDKROOT = appletvos;
-				SUPPORTED_PLATFORMS = "appletvsimulator appletvos";
-				TVOS_DEPLOYMENT_TARGET = 9.0;
-			};
-			name = Release;
-		};
-		FAE0E9911BAF9B230098DFA4 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
-				PRODUCT_NAME = "$(TARGET_NAME)";
-			};
-			name = Debug;
-		};
-		FAE0E9921BAF9B230098DFA4 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
-				PRODUCT_NAME = "$(TARGET_NAME)";
-			};
-			name = Release;
-		};
-		FDA8AAB90E2D330F00EA573E /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = loopwav;
-			};
-			name = Debug;
-		};
-		FDA8AABA0E2D330F00EA573E /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = loopwav;
-			};
-			name = Release;
-		};
-		FDAAC3CB0E2D47E6001DB1D8 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testaudioinfo;
-			};
-			name = Debug;
-		};
-		FDAAC3CC0E2D47E6001DB1D8 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testaudioinfo;
-			};
-			name = Release;
-		};
-		FDAAC5990E2D5429001DB1D8 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testerror;
-			};
-			name = Debug;
-		};
-		FDAAC59A0E2D5429001DB1D8 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testerror;
-			};
-			name = Release;
-		};
-		FDAAC5C70E2D55B5001DB1D8 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testfile;
-			};
-			name = Debug;
-		};
-		FDAAC5C80E2D55B5001DB1D8 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testfile;
-			};
-			name = Release;
-		};
-		FDAAC6240E2D5914001DB1D8 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testgles;
-			};
-			name = Debug;
-		};
-		FDAAC6250E2D5914001DB1D8 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testgles;
-			};
-			name = Release;
-		};
-		FDC42FFE0F0D866D009C87E1 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = torturethread;
-			};
-			name = Debug;
-		};
-		FDC42FFF0F0D866D009C87E1 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = torturethread;
-			};
-			name = Release;
-		};
-		FDD2C1080E2E4F4B00B7A85F /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testthread;
-			};
-			name = Debug;
-		};
-		FDD2C1090E2E4F4B00B7A85F /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testthread;
-			};
-			name = Release;
-		};
-		FDD2C17F0E2E52C000B7A85F /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testiconv;
-			};
-			name = Debug;
-		};
-		FDD2C1800E2E52C000B7A85F /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testiconv;
-			};
-			name = Release;
-		};
-		FDD2C1A30E2E534F00B7A85F /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testjoystick;
-			};
-			name = Debug;
-		};
-		FDD2C1A40E2E534F00B7A85F /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testjoystick;
-			};
-			name = Release;
-		};
-		FDD2C45C0E2E773800B7A85F /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testkeys;
-			};
-			name = Debug;
-		};
-		FDD2C45D0E2E773800B7A85F /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testkeys;
-			};
-			name = Release;
-		};
-		FDD2C47A0E2E77D700B7A85F /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testlock;
-			};
-			name = Debug;
-		};
-		FDD2C47B0E2E77D700B7A85F /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testlock;
-			};
-			name = Release;
-		};
-		FDD2C5090E2E7F4800B7A85F /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testplatform;
-			};
-			name = Debug;
-		};
-		FDD2C50A0E2E7F4800B7A85F /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testplatform;
-			};
-			name = Release;
-		};
-		FDD2C5270E2E807600B7A85F /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testsem;
-			};
-			name = Debug;
-		};
-		FDD2C5280E2E807600B7A85F /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testsem;
-			};
-			name = Release;
-		};
-		FDD2C54C0E2E80E400B7A85F /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testsprite2;
-			};
-			name = Debug;
-		};
-		FDD2C54D0E2E80E400B7A85F /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testsprite2;
-			};
-			name = Release;
-		};
-		FDD2C5850E2E8C7400B7A85F /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testtimer;
-			};
-			name = Debug;
-		};
-		FDD2C5860E2E8C7400B7A85F /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testtimer;
-			};
-			name = Release;
-		};
-		FDD2C5C30E2E8CFC00B7A85F /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testver;
-			};
-			name = Debug;
-		};
-		FDD2C5C40E2E8CFC00B7A85F /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = testver;
-			};
-			name = Release;
-		};
-		FDD2C6F20E2E959E00B7A85F /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = torturethread;
-			};
-			name = Debug;
-		};
-		FDD2C6F30E2E959E00B7A85F /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				INFOPLIST_FILE = Info.plist;
-				PRODUCT_NAME = torturethread;
-			};
-			name = Release;
-		};
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
-		046CEF8313254F23007AD51D /* Build configuration list for PBXNativeTarget "testgesture" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				046CEF8413254F23007AD51D /* Debug */,
-				046CEF8513254F23007AD51D /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		047A63EA13285C3200CD7973 /* Build configuration list for PBXNativeTarget "checkkeys" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				047A63EB13285C3200CD7973 /* Debug */,
-				047A63EC13285C3200CD7973 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "testwm2" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				1D6058940D05DD3E006BFB54 /* Debug */,
-				1D6058950D05DD3E006BFB54 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		56ED050A118A8FE400A56AA6 /* Build configuration list for PBXNativeTarget "testpower" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				56ED050B118A8FE400A56AA6 /* Debug */,
-				56ED050C118A8FE400A56AA6 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		AA13B3231FB8AEBC00D9FEE6 /* Build configuration list for PBXNativeTarget "testyuv" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				AA13B3241FB8AEBC00D9FEE6 /* Debug */,
-				AA13B3251FB8AEBC00D9FEE6 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		AAE7DEE914CBB1E100DF1A0E /* Build configuration list for PBXNativeTarget "testscale" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				AAE7DEEA14CBB1E100DF1A0E /* Debug */,
-				AAE7DEEB14CBB1E100DF1A0E /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		AAE7DFAE14CBB54E00DF1A0E /* Build configuration list for PBXNativeTarget "testrendertarget" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				AAE7DFAF14CBB54E00DF1A0E /* Debug */,
-				AAE7DFB014CBB54E00DF1A0E /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		C01FCF4E08A954540054247B /* Build configuration list for PBXProject "TestiPhoneOS" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				C01FCF4F08A954540054247B /* Debug */,
-				C01FCF5008A954540054247B /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		F395BF972564186400942BFF /* Build configuration list for PBXNativeTarget "testsensor" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				F395BF982564186400942BFF /* Debug */,
-				F395BF992564186400942BFF /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		F3A499D0255618AF00E92A8B /* Build configuration list for PBXNativeTarget "controllermap" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				F3A499D1255618AF00E92A8B /* Debug */,
-				F3A499D2255618AF00E92A8B /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		FA3D99451BC4E645002C96C8 /* Build configuration list for PBXNativeTarget "testgamecontroller-TV" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				FA3D99461BC4E645002C96C8 /* Debug */,
-				FA3D99471BC4E645002C96C8 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		FABA348E1D8B575200915323 /* Build configuration list for PBXNativeTarget "testaudiocapture" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				FABA348F1D8B575200915323 /* Debug */,
-				FABA34901D8B575200915323 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		FABA34A71D8B582100915323 /* Build configuration list for PBXNativeTarget "loopwav-TV" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				FABA34A81D8B582100915323 /* Debug */,
-				FABA34A91D8B582100915323 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		FAE0E9901BAF9B230098DFA4 /* Build configuration list for PBXNativeTarget "testgamecontroller" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				FAE0E9911BAF9B230098DFA4 /* Debug */,
-				FAE0E9921BAF9B230098DFA4 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		FDA8AAB80E2D330F00EA573E /* Build configuration list for PBXNativeTarget "loopwav" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				FDA8AAB90E2D330F00EA573E /* Debug */,
-				FDA8AABA0E2D330F00EA573E /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		FDAAC3CA0E2D47E6001DB1D8 /* Build configuration list for PBXNativeTarget "testaudioinfo" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				FDAAC3CB0E2D47E6001DB1D8 /* Debug */,
-				FDAAC3CC0E2D47E6001DB1D8 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		FDAAC5980E2D5429001DB1D8 /* Build configuration list for PBXNativeTarget "testerror" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				FDAAC5990E2D5429001DB1D8 /* Debug */,
-				FDAAC59A0E2D5429001DB1D8 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		FDAAC5C60E2D55B5001DB1D8 /* Build configuration list for PBXNativeTarget "testfile" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				FDAAC5C70E2D55B5001DB1D8 /* Debug */,
-				FDAAC5C80E2D55B5001DB1D8 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		FDAAC6230E2D5914001DB1D8 /* Build configuration list for PBXNativeTarget "testgles" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				FDAAC6240E2D5914001DB1D8 /* Debug */,
-				FDAAC6250E2D5914001DB1D8 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		FDC42FFD0F0D866D009C87E1 /* Build configuration list for PBXNativeTarget "testdraw2" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				FDC42FFE0F0D866D009C87E1 /* Debug */,
-				FDC42FFF0F0D866D009C87E1 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		FDD2C1070E2E4F4B00B7A85F /* Build configuration list for PBXNativeTarget "testthread" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				FDD2C1080E2E4F4B00B7A85F /* Debug */,
-				FDD2C1090E2E4F4B00B7A85F /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		FDD2C17E0E2E52C000B7A85F /* Build configuration list for PBXNativeTarget "testiconv" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				FDD2C17F0E2E52C000B7A85F /* Debug */,
-				FDD2C1800E2E52C000B7A85F /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		FDD2C1A20E2E534F00B7A85F /* Build configuration list for PBXNativeTarget "testjoystick" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				FDD2C1A30E2E534F00B7A85F /* Debug */,
-				FDD2C1A40E2E534F00B7A85F /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		FDD2C45B0E2E773800B7A85F /* Build configuration list for PBXNativeTarget "testkeys" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				FDD2C45C0E2E773800B7A85F /* Debug */,
-				FDD2C45D0E2E773800B7A85F /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		FDD2C4790E2E77D700B7A85F /* Build configuration list for PBXNativeTarget "testlock" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				FDD2C47A0E2E77D700B7A85F /* Debug */,
-				FDD2C47B0E2E77D700B7A85F /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		FDD2C5080E2E7F4800B7A85F /* Build configuration list for PBXNativeTarget "testplatform" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				FDD2C5090E2E7F4800B7A85F /* Debug */,
-				FDD2C50A0E2E7F4800B7A85F /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		FDD2C5260E2E807600B7A85F /* Build configuration list for PBXNativeTarget "testsem" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				FDD2C5270E2E807600B7A85F /* Debug */,
-				FDD2C5280E2E807600B7A85F /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		FDD2C54B0E2E80E400B7A85F /* Build configuration list for PBXNativeTarget "testsprite2" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				FDD2C54C0E2E80E400B7A85F /* Debug */,
-				FDD2C54D0E2E80E400B7A85F /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		FDD2C5840E2E8C7400B7A85F /* Build configuration list for PBXNativeTarget "testtimer" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				FDD2C5850E2E8C7400B7A85F /* Debug */,
-				FDD2C5860E2E8C7400B7A85F /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		FDD2C5C20E2E8CFC00B7A85F /* Build configuration list for PBXNativeTarget "testver" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				FDD2C5C30E2E8CFC00B7A85F /* Debug */,
-				FDD2C5C40E2E8CFC00B7A85F /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		FDD2C6F10E2E959E00B7A85F /* Build configuration list for PBXNativeTarget "torturethread" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				FDD2C6F20E2E959E00B7A85F /* Debug */,
-				FDD2C6F30E2E959E00B7A85F /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-/* End XCConfigurationList section */
-	};
-	rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
-}

+ 2 - 2
Xcode/SDL/Info-Framework.plist

@@ -19,10 +19,10 @@
 	<key>CFBundlePackageType</key>
 	<key>CFBundlePackageType</key>
 	<string>FMWK</string>
 	<string>FMWK</string>
 	<key>CFBundleShortVersionString</key>
 	<key>CFBundleShortVersionString</key>
-	<string>2.25.0</string>
+	<string>3.0.0</string>
 	<key>CFBundleSignature</key>
 	<key>CFBundleSignature</key>
 	<string>SDLX</string>
 	<string>SDLX</string>
 	<key>CFBundleVersion</key>
 	<key>CFBundleVersion</key>
-	<string>2.25.0</string>
+	<string>3.0.0</string>
 </dict>
 </dict>
 </plist>
 </plist>

File diff suppressed because it is too large
+ 299 - 86
Xcode/SDL/SDL.xcodeproj/project.pbxproj


+ 67 - 0
Xcode/SDL/SDL.xcodeproj/xcshareddata/xcschemes/Framework-iOS.xcscheme

@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1240"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "A7D88A1423E2437C00DCD162"
+               BuildableName = "SDL3.framework"
+               BlueprintName = "Framework-iOS"
+               ReferencedContainer = "container:SDL.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "A7D88A1423E2437C00DCD162"
+            BuildableName = "SDL3.framework"
+            BlueprintName = "Framework-iOS"
+            ReferencedContainer = "container:SDL.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 67 - 0
Xcode/SDL/SDL.xcodeproj/xcshareddata/xcschemes/xcFramework-iOS.xcscheme

@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1240"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "E2D187CE28A5673500D2B4F1"
+               BuildableName = "SDL3.framework"
+               BlueprintName = "xcFramework-iOS"
+               ReferencedContainer = "container:SDL.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "E2D187CE28A5673500D2B4F1"
+            BuildableName = "SDL3.framework"
+            BlueprintName = "xcFramework-iOS"
+            ReferencedContainer = "container:SDL.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 7 - 21
Xcode-iOS/Demos/Info.plist → Xcode/SDL/SDL3/Info.plist

@@ -3,34 +3,20 @@
 <plist version="1.0">
 <plist version="1.0">
 <dict>
 <dict>
 	<key>CFBundleDevelopmentRegion</key>
 	<key>CFBundleDevelopmentRegion</key>
-	<string>en</string>
-	<key>CFBundleDisplayName</key>
-	<string>${PRODUCT_NAME}</string>
+	<string>$(DEVELOPMENT_LANGUAGE)</string>
 	<key>CFBundleExecutable</key>
 	<key>CFBundleExecutable</key>
-	<string>${EXECUTABLE_NAME}</string>
-	<key>CFBundleIconFile</key>
-	<string></string>
+	<string>$(EXECUTABLE_NAME)</string>
 	<key>CFBundleIdentifier</key>
 	<key>CFBundleIdentifier</key>
 	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
 	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
 	<key>CFBundleInfoDictionaryVersion</key>
 	<key>CFBundleInfoDictionaryVersion</key>
 	<string>6.0</string>
 	<string>6.0</string>
 	<key>CFBundleName</key>
 	<key>CFBundleName</key>
-	<string>${PRODUCT_NAME}</string>
-	<key>CFBundleShortVersionString</key>
-	<string>1.0.0</string>
+	<string>$(PRODUCT_NAME)</string>
 	<key>CFBundlePackageType</key>
 	<key>CFBundlePackageType</key>
-	<string>APPL</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
+	<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
+	<key>CFBundleShortVersionString</key>
 	<string>1.0</string>
 	<string>1.0</string>
-	<key>NSMainNibFile</key>
-	<string></string>
-	<key>UILaunchStoryboardName</key>
-	<string>iOS Launch Screen</string>
-	<key>UISupportedInterfaceOrientations</key>
-	<array/>
-	<key>UIApplicationSupportsIndirectInputEvents</key>
-	<true/>
+	<key>CFBundleVersion</key>
+	<string>$(CURRENT_PROJECT_VERSION)</string>
 </dict>
 </dict>
 </plist>
 </plist>

+ 1 - 1
Xcode/SDL/pkg-support/SDL.info

@@ -1,4 +1,4 @@
-Title SDL 2.0.0
+Title SDL 3.0.0
 Version 1
 Version 1
 Description SDL Library for Mac OS X (http://www.libsdl.org)
 Description SDL Library for Mac OS X (http://www.libsdl.org)
 DefaultLocation /Library/Frameworks
 DefaultLocation /Library/Frameworks

+ 0 - 67
Xcode/SDL/pkg-support/resources/CMake/sdl2-config.cmake

@@ -1,67 +0,0 @@
-# SDL2 CMake configuration file:
-# This file is meant to be placed in Resources/CMake of a SDL2 framework
-
-# INTERFACE_LINK_OPTIONS needs CMake 3.12
-cmake_minimum_required(VERSION 3.12)
-
-include(FeatureSummary)
-set_package_properties(SDL2 PROPERTIES
-    URL "https://www.libsdl.org/"
-    DESCRIPTION "low level access to audio, keyboard, mouse, joystick, and graphics hardware"
-)
-
-# Copied from `configure_package_config_file`
-macro(set_and_check _var _file)
-    set(${_var} "${_file}")
-    if(NOT EXISTS "${_file}")
-        message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !")
-    endif()
-endmacro()
-
-# Copied from `configure_package_config_file`
-macro(check_required_components _NAME)
-    foreach(comp ${${_NAME}_FIND_COMPONENTS})
-        if(NOT ${_NAME}_${comp}_FOUND)
-            if(${_NAME}_FIND_REQUIRED_${comp})
-                set(${_NAME}_FOUND FALSE)
-            endif()
-        endif()
-    endforeach()
-endmacro()
-
-set(SDL2_FOUND TRUE)
-
-string(REGEX REPLACE "SDL2\\.framework.*" "SDL2.framework" SDL2_FRAMEWORK_PATH "${CMAKE_CURRENT_LIST_DIR}")
-string(REGEX REPLACE "SDL2\\.framework.*" "" SDL2_FRAMEWORK_PARENT_PATH "${CMAKE_CURRENT_LIST_DIR}")
-
-# For compatibility with autotools sdl2-config.cmake, provide SDL2_* variables.
-
-set_and_check(SDL2_PREFIX       "${SDL2_FRAMEWORK_PATH}")
-set_and_check(SDL2_EXEC_PREFIX  "${SDL2_FRAMEWORK_PATH}")
-set_and_check(SDL2_INCLUDE_DIR  "${SDL2_FRAMEWORK_PATH}/Headers")
-set(SDL2_INCLUDE_DIRS           "${SDL2_INCLUDE_DIR}")
-set_and_check(SDL2_BINDIR       "${SDL2_FRAMEWORK_PATH}")
-set_and_check(SDL2_LIBDIR       "${SDL2_FRAMEWORK_PATH}")
-
-set(SDL2_LIBRARIES "SDL2::SDL2")
-
-# All targets are created, even when some might not be requested though COMPONENTS.
-# This is done for compatibility with CMake generated SDL2-target.cmake files.
-
-if(NOT TARGET SDL2::SDL2)
-    add_library(SDL2::SDL2 INTERFACE IMPORTED)
-    set_target_properties(SDL2::SDL2
-        PROPERTIES
-            INTERFACE_COMPILE_OPTIONS "SHELL:-F \"${SDL2_FRAMEWORK_PARENT_PATH}\""
-            INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}"
-            INTERFACE_LINK_OPTIONS "SHELL:-F \"${SDL2_FRAMEWORK_PARENT_PATH}\";SHELL:-framework SDL2"
-            COMPATIBLE_INTERFACE_BOOL "SDL2_SHARED"
-            INTERFACE_SDL2_SHARED "ON"
-    )
-    set(SDL2_SDL2_FOUND TRUE)
-endif()
-
-add_library(SDL2::SDL2main INTERFACE IMPORTED)
-set(SDL2_SDL2main_FOUND TRUE)
-
-check_required_components(SDL2)

+ 3 - 3
Xcode/SDL/pkg-support/resources/CMake/sdl2-config-version.cmake → Xcode/SDL/pkg-support/resources/CMake/sdl3-config-version.cmake

@@ -1,10 +1,10 @@
 # based on the files generated by CMake's write_basic_package_version_file
 # based on the files generated by CMake's write_basic_package_version_file
 
 
-# SDL2 CMake version configuration file:
-# This file is meant to be placed in Resources/CMake of a SDL2 framework
+# SDL CMake version configuration file:
+# This file is meant to be placed in Resources/CMake of a SDL3 framework
 
 
 if(NOT EXISTS "${CMAKE_CURRENT_LIST_DIR}/../../Headers/SDL_version.h")
 if(NOT EXISTS "${CMAKE_CURRENT_LIST_DIR}/../../Headers/SDL_version.h")
-    message(AUTHOR_WARNING "Could not find SDL_version.h. This script is meant to be placed in the Resources/CMake directory of SDL2.framework")
+    message(AUTHOR_WARNING "Could not find SDL_version.h. This script is meant to be placed in the Resources/CMake directory of SDL3.framework")
     return()
     return()
 endif()
 endif()
 
 

+ 69 - 0
Xcode/SDL/pkg-support/resources/CMake/sdl3-config.cmake

@@ -0,0 +1,69 @@
+# SDL CMake configuration file:
+# This file is meant to be placed in Resources/CMake of a SDL3 framework
+
+# INTERFACE_LINK_OPTIONS needs CMake 3.12
+cmake_minimum_required(VERSION 3.12)
+
+include(FeatureSummary)
+set_package_properties(SDL3 PROPERTIES
+    URL "https://www.libsdl.org/"
+    DESCRIPTION "low level access to audio, keyboard, mouse, joystick, and graphics hardware"
+)
+
+# Copied from `configure_package_config_file`
+macro(set_and_check _var _file)
+    set(${_var} "${_file}")
+    if(NOT EXISTS "${_file}")
+        message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !")
+    endif()
+endmacro()
+
+# Copied from `configure_package_config_file`
+macro(check_required_components _NAME)
+    foreach(comp ${${_NAME}_FIND_COMPONENTS})
+        if(NOT ${_NAME}_${comp}_FOUND)
+            if(${_NAME}_FIND_REQUIRED_${comp})
+                set(${_NAME}_FOUND FALSE)
+            endif()
+        endif()
+    endforeach()
+endmacro()
+
+set(SDL3_FOUND TRUE)
+
+string(REGEX REPLACE "SDL3\\.framework.*" "SDL3.framework" SDL3_FRAMEWORK_PATH "${CMAKE_CURRENT_LIST_DIR}")
+string(REGEX REPLACE "SDL3\\.framework.*" "" SDL3_FRAMEWORK_PARENT_PATH "${CMAKE_CURRENT_LIST_DIR}")
+
+# For compatibility with autotools sdl3-config.cmake, provide SDL3_* variables.
+
+set_and_check(SDL3_PREFIX       "${SDL3_FRAMEWORK_PATH}")
+set_and_check(SDL3_EXEC_PREFIX  "${SDL3_FRAMEWORK_PATH}")
+set_and_check(SDL3_INCLUDE_DIR  "${SDL3_FRAMEWORK_PATH}/Headers")
+set(SDL3_INCLUDE_DIRS           "${SDL3_INCLUDE_DIR};${SDL3_FRAMEWORK_PATH}")
+set_and_check(SDL3_BINDIR       "${SDL3_FRAMEWORK_PATH}")
+set_and_check(SDL3_LIBDIR       "${SDL3_FRAMEWORK_PATH}")
+
+set(SDL3_LIBRARIES "SDL3::SDL3")
+
+# All targets are created, even when some might not be requested though COMPONENTS.
+# This is done for compatibility with CMake generated SDL3-target.cmake files.
+
+if(NOT TARGET SDL3::SDL3)
+    add_library(SDL3::SDL3 INTERFACE IMPORTED)
+    set_target_properties(SDL3::SDL3
+        PROPERTIES
+            INTERFACE_COMPILE_OPTIONS "SHELL:-F \"${SDL3_FRAMEWORK_PARENT_PATH}\""
+            INTERFACE_INCLUDE_DIRECTORIES "${SDL3_INCLUDE_DIRS}"
+            INTERFACE_LINK_OPTIONS "SHELL:-F \"${SDL3_FRAMEWORK_PARENT_PATH}\";SHELL:-framework SDL3"
+            COMPATIBLE_INTERFACE_BOOL "SDL3_SHARED"
+            INTERFACE_SDL3_SHARED "ON"
+    )
+endif()
+set(SDL3_SDL3_FOUND TRUE)
+
+if(NOT TARGET SDL3::SDL3main)
+    add_library(SDL3::SDL3main INTERFACE IMPORTED)
+endif()
+set(SDL3_SDL3main_FOUND TRUE)
+
+check_required_components(SDL3)

+ 5 - 5
Xcode/SDL/pkg-support/resources/ReadMe.txt

@@ -15,20 +15,20 @@ contains both the SDL runtime component and development header files.
 
 
 
 
 To Install:
 To Install:
-Copy the SDL2.framework to /Library/Frameworks
+Copy the SDL3.framework to /Library/Frameworks
 
 
 You may alternatively install it in <Your home directory>/Library/Frameworks 
 You may alternatively install it in <Your home directory>/Library/Frameworks 
 if your access privileges are not high enough.
 if your access privileges are not high enough.
 
 
 
 
 Use in CMake projects:
 Use in CMake projects:
-SDL2.framework can be used in CMake projects using the following pattern:
+SDL3.framework can be used in CMake projects using the following pattern:
 ```
 ```
-find_package(SDL2 REQUIRED COMPONENTS SDL2)
+find_package(SDL3 REQUIRED COMPONENTS SDL3)
 add_executable(my_game ${MY_SOURCES})
 add_executable(my_game ${MY_SOURCES})
-target_link_libraries(my_game PRIVATE SDL2::SDL2)
+target_link_libraries(my_game PRIVATE SDL3::SDL3)
 ```
 ```
-If SDL2.framework is installed in a non-standard location,
+If SDL3.framework is installed in a non-standard location,
 please refer to the following link for ways to configure CMake:
 please refer to the following link for ways to configure CMake:
 https://cmake.org/cmake/help/latest/command/find_package.html#config-mode-search-procedure
 https://cmake.org/cmake/help/latest/command/find_package.html#config-mode-search-procedure
 
 

BIN
Xcode/SDL/pkg-support/resources/SDL_DS_Store


File diff suppressed because it is too large
+ 184 - 602
Xcode/SDLTest/SDLTest.xcodeproj/project.pbxproj


+ 14 - 0
Xcode/SDLTest/config.xcconfig

@@ -0,0 +1,14 @@
+//
+//  config.xcconfig
+//  SDL tests
+//
+
+// Configuration settings file format documentation can be found at:
+// https://help.apple.com/xcode/#/dev745c5c974
+
+// Include any optional config for this build
+#include? "build.xcconfig"
+
+CONFIG_FRAMEWORK_LDFLAGS[sdk=macos*] = $(inherited) -framework SDL3 -framework AudioToolbox -framework Carbon -framework Cocoa -framework CoreAudio -framework CoreHaptics -framework CoreVideo -framework ForceFeedback -framework GameController -framework IOKit -framework Metal
+CONFIG_FRAMEWORK_LDFLAGS[sdk=iphone*] = $(inherited) -framework SDL3 -framework AVFoundation -framework AudioToolbox -framework CoreGraphics -framework CoreHaptics -framework CoreMotion -framework Foundation -framework GameController -framework Metal -framework OpenGLES -framework QuartzCore -framework UIKit
+CONFIG_FRAMEWORK_LDFLAGS[sdk=appletv*] = $(inherited) -framework SDL3 -framework AVFoundation -framework AudioToolbox -framework CoreGraphics -framework CoreHaptics -framework Foundation -framework GameController -framework Metal -framework OpenGLES -framework QuartzCore -framework UIKit

+ 0 - 172
acinclude/esd.m4

@@ -1,172 +0,0 @@
-# Configure paths for ESD
-# Manish Singh    98-9-30
-# stolen back from Frank Belew
-# stolen from Manish Singh
-# Shamelessly stolen from Owen Taylor
-
-dnl AM_PATH_ESD([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
-dnl Test for ESD, and define ESD_CFLAGS and ESD_LIBS
-dnl
-AC_DEFUN([AM_PATH_ESD],
-[dnl
-dnl Get the cflags and libraries from the esd-config script
-dnl
-AC_ARG_WITH(esd-prefix,[  --with-esd-prefix=PFX   Prefix where ESD is installed (optional)],
-            esd_prefix="$withval", esd_prefix="")
-AC_ARG_WITH(esd-exec-prefix,[  --with-esd-exec-prefix=PFX Exec prefix where ESD is installed (optional)],
-            esd_exec_prefix="$withval", esd_exec_prefix="")
-AC_ARG_ENABLE(esdtest, [  --disable-esdtest       Do not try to compile and run a test ESD program],
-		    , enable_esdtest=yes)
-
-  if test x$esd_exec_prefix != x ; then
-     esd_args="$esd_args --exec-prefix=$esd_exec_prefix"
-     if test x${ESD_CONFIG+set} != xset ; then
-        ESD_CONFIG=$esd_exec_prefix/bin/esd-config
-     fi
-  fi
-  if test x$esd_prefix != x ; then
-     esd_args="$esd_args --prefix=$esd_prefix"
-     if test x${ESD_CONFIG+set} != xset ; then
-        ESD_CONFIG=$esd_prefix/bin/esd-config
-     fi
-  fi
-
-  AC_PATH_PROG(ESD_CONFIG, esd-config, no)
-  min_esd_version=ifelse([$1], ,0.2.7,$1)
-  AC_MSG_CHECKING(for ESD - version >= $min_esd_version)
-  no_esd=""
-  if test "$ESD_CONFIG" = "no" ; then
-    no_esd=yes
-  else
-    ESD_CFLAGS=`$ESD_CONFIG $esdconf_args --cflags`
-    ESD_LIBS=`$ESD_CONFIG $esdconf_args --libs`
-
-    esd_major_version=`$ESD_CONFIG $esd_args --version | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
-    esd_minor_version=`$ESD_CONFIG $esd_args --version | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
-    esd_micro_version=`$ESD_CONFIG $esd_config_args --version | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
-    if test "x$enable_esdtest" = "xyes" ; then
-      AC_LANG_PUSH([C])
-      ac_save_CFLAGS="$CFLAGS"
-      ac_save_LIBS="$LIBS"
-      CFLAGS="$CFLAGS $ESD_CFLAGS"
-      LIBS="$LIBS $ESD_LIBS"
-dnl
-dnl Now check if the installed ESD is sufficiently new. (Also sanity
-dnl checks the results of esd-config to some extent
-dnl
-      rm -f conf.esdtest
-      AC_RUN_IFELSE([AC_LANG_SOURCE([[
-#include <stdio.h>
-#include <stdlib.h>
-#include <esd.h>
-
-int main (void)
-{
-  int major, minor, micro;
-  FILE *fp = fopen("conf.esdtest", "w");
-
-  if (fp) fclose(fp);
-
-  if (sscanf("$min_esd_version", "%d.%d.%d", &major, &minor, &micro) != 3) {
-     printf("%s, bad version string\n", "$min_esd_version");
-     exit(1);
-   }
-
-   if (($esd_major_version > major) ||
-      (($esd_major_version == major) && ($esd_minor_version > minor)) ||
-      (($esd_major_version == major) && ($esd_minor_version == minor) && ($esd_micro_version >= micro)))
-    {
-      return 0;
-    }
-  else
-    {
-      printf("\n*** 'esd-config --version' returned %d.%d.%d, but the minimum version\n", $esd_major_version, $esd_minor_version, $esd_micro_version);
-      printf("*** of ESD required is %d.%d.%d. If esd-config is correct, then it is\n", major, minor, micro);
-      printf("*** best to upgrade to the required version.\n");
-      printf("*** If esd-config was wrong, set the environment variable ESD_CONFIG\n");
-      printf("*** to point to the correct copy of esd-config, and remove the file\n");
-      printf("*** config.cache before re-running configure\n");
-      return 1;
-    }
-}
-]])], [], [no_esd=yes], [echo $ac_n "cross compiling; assumed OK... $ac_c"])
-       CFLAGS="$ac_save_CFLAGS"
-       LIBS="$ac_save_LIBS"
-       AC_LANG_POP([C])
-     fi
-  fi
-  if test "x$no_esd" = x ; then
-     AC_MSG_RESULT(yes)
-     ifelse([$2], , :, [$2])
-  else
-     AC_MSG_RESULT(no)
-     if test "$ESD_CONFIG" = "no" ; then
-       echo "*** The esd-config script installed by ESD could not be found"
-       echo "*** If ESD was installed in PREFIX, make sure PREFIX/bin is in"
-       echo "*** your path, or set the ESD_CONFIG environment variable to the"
-       echo "*** full path to esd-config."
-     else
-       if test -f conf.esdtest ; then
-        :
-       else
-          echo "*** Could not run ESD test program, checking why..."
-          CFLAGS="$CFLAGS $ESD_CFLAGS"
-          LIBS="$LIBS $ESD_LIBS"
-          AC_LANG_PUSH([C])
-          AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#include <stdio.h>
-#include <esd.h>
-]], [[ return 0; ]])],
-        [ echo "*** The test program compiled, but did not run. This usually means"
-          echo "*** that the run-time linker is not finding ESD or finding the wrong"
-          echo "*** version of ESD. If it is not finding ESD, you'll need to set your"
-          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
-          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
-          echo "*** is required on your system"
-	  echo "***"
-          echo "*** If you have an old version installed, it is best to remove it, although"
-          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
-        [ echo "*** The test program failed to compile or link. See the file config.log for the"
-          echo "*** exact error that occured. This usually means ESD was incorrectly installed"
-          echo "*** or that you have moved ESD since it was installed. In the latter case, you"
-          echo "*** may want to edit the esd-config script: $ESD_CONFIG" ])
-          CFLAGS="$ac_save_CFLAGS"
-          LIBS="$ac_save_LIBS"
-          AC_LANG_POP([C])
-       fi
-     fi
-     ESD_CFLAGS=""
-     ESD_LIBS=""
-     ifelse([$3], , :, [$3])
-  fi
-  AC_SUBST(ESD_CFLAGS)
-  AC_SUBST(ESD_LIBS)
-  rm -f conf.esdtest
-])
-
-dnl AM_ESD_SUPPORTS_MULTIPLE_RECORD([ACTION-IF-SUPPORTS [, ACTION-IF-NOT-SUPPORTS]])
-dnl Test, whether esd supports multiple recording clients (version >=0.2.21)
-dnl
-AC_DEFUN([AM_ESD_SUPPORTS_MULTIPLE_RECORD],
-[dnl
-  AC_MSG_NOTICE([whether installed esd version supports multiple recording clients])
-  ac_save_ESD_CFLAGS="$ESD_CFLAGS"
-  ac_save_ESD_LIBS="$ESD_LIBS"
-  AM_PATH_ESD(0.2.21,
-    ifelse([$1], , [
-      AM_CONDITIONAL(ESD_SUPPORTS_MULTIPLE_RECORD, true)
-      AC_DEFINE(ESD_SUPPORTS_MULTIPLE_RECORD, 1,
-	[Define if you have esound with support of multiple recording clients.])],
-    [$1]),
-    ifelse([$2], , [AM_CONDITIONAL(ESD_SUPPORTS_MULTIPLE_RECORD, false)], [$2])
-    if test "x$ac_save_ESD_CFLAGS" != x ; then
-       ESD_CFLAGS="$ac_save_ESD_CFLAGS"
-    fi
-    if test "x$ac_save_ESD_LIBS" != x ; then
-       ESD_LIBS="$ac_save_ESD_LIBS"
-    fi
-  )
-])

+ 1 - 1
android-project-ant/jni/src/Android.mk

@@ -11,7 +11,7 @@ LOCAL_C_INCLUDES := $(LOCAL_PATH)/$(SDL_PATH)/include
 # Add your application source files here...
 # Add your application source files here...
 LOCAL_SRC_FILES := YourSourceHere.c
 LOCAL_SRC_FILES := YourSourceHere.c
 
 
-LOCAL_SHARED_LIBRARIES := SDL2
+LOCAL_SHARED_LIBRARIES := SDL3
 
 
 LOCAL_LDLIBS := -lGLESv1_CM -lGLESv2 -llog
 LOCAL_LDLIBS := -lGLESv1_CM -lGLESv2 -llog
 
 

+ 1 - 1
android-project-ant/jni/src/Android_static.mk

@@ -6,7 +6,7 @@ LOCAL_MODULE := main
 
 
 LOCAL_SRC_FILES := YourSourceHere.c
 LOCAL_SRC_FILES := YourSourceHere.c
 
 
-LOCAL_STATIC_LIBRARIES := SDL2_static
+LOCAL_STATIC_LIBRARIES := SDL3_static
 
 
 include $(BUILD_SHARED_LIBRARY)
 include $(BUILD_SHARED_LIBRARY)
 $(call import-module,SDL)LOCAL_PATH := $(call my-dir)
 $(call import-module,SDL)LOCAL_PATH := $(call my-dir)

+ 1 - 1
android-project/app/jni/src/Android.mk

@@ -11,7 +11,7 @@ LOCAL_C_INCLUDES := $(LOCAL_PATH)/$(SDL_PATH)/include
 # Add your application source files here...
 # Add your application source files here...
 LOCAL_SRC_FILES := YourSourceHere.c
 LOCAL_SRC_FILES := YourSourceHere.c
 
 
-LOCAL_SHARED_LIBRARIES := SDL2
+LOCAL_SHARED_LIBRARIES := SDL3
 
 
 LOCAL_LDLIBS := -lGLESv1_CM -lGLESv2 -lOpenSLES -llog -landroid
 LOCAL_LDLIBS := -lGLESv1_CM -lGLESv2 -lOpenSLES -llog -landroid
 
 

+ 2 - 2
android-project/app/jni/src/CMakeLists.txt

@@ -2,12 +2,12 @@ cmake_minimum_required(VERSION 3.6)
 
 
 project(MY_APP)
 project(MY_APP)
 
 
-find_library(SDL2 SDL2)
+find_library(SDL3 SDL3)
 
 
 add_library(main SHARED)
 add_library(main SHARED)
 
 
 target_sources(main PRIVATE YourSourceHere.c)
 target_sources(main PRIVATE YourSourceHere.c)
 
 
-target_link_libraries(main SDL2)
+target_link_libraries(main SDL3)
 
 
 
 

+ 170 - 85
android-project/app/src/main/java/org/libsdl/app/SDLActivity.java

@@ -44,6 +44,7 @@ import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputConnection;
 import android.view.inputmethod.InputConnection;
 import android.view.inputmethod.InputMethodManager;
 import android.view.inputmethod.InputMethodManager;
 import android.widget.Button;
 import android.widget.Button;
+import android.widget.EditText;
 import android.widget.LinearLayout;
 import android.widget.LinearLayout;
 import android.widget.RelativeLayout;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 import android.widget.TextView;
@@ -58,6 +59,9 @@ import java.util.Locale;
 */
 */
 public class SDLActivity extends Activity implements View.OnSystemUiVisibilityChangeListener {
 public class SDLActivity extends Activity implements View.OnSystemUiVisibilityChangeListener {
     private static final String TAG = "SDL";
     private static final String TAG = "SDL";
+    private static final int SDL_MAJOR_VERSION = 3;
+    private static final int SDL_MINOR_VERSION = 0;
+    private static final int SDL_MICRO_VERSION = 0;
 /*
 /*
     // Display InputType.SOURCE/CLASS of events and devices
     // Display InputType.SOURCE/CLASS of events and devices
     //
     //
@@ -206,7 +210,7 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
     // Main components
     // Main components
     protected static SDLActivity mSingleton;
     protected static SDLActivity mSingleton;
     protected static SDLSurface mSurface;
     protected static SDLSurface mSurface;
-    protected static View mTextEdit;
+    protected static DummyEdit mTextEdit;
     protected static boolean mScreenKeyboardShown;
     protected static boolean mScreenKeyboardShown;
     protected static ViewGroup mLayout;
     protected static ViewGroup mLayout;
     protected static SDLClipboardHandler mClipboardHandler;
     protected static SDLClipboardHandler mClipboardHandler;
@@ -259,17 +263,17 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
      * This method is called by SDL before loading the native shared libraries.
      * This method is called by SDL before loading the native shared libraries.
      * It can be overridden to provide names of shared libraries to be loaded.
      * It can be overridden to provide names of shared libraries to be loaded.
      * The default implementation returns the defaults. It never returns null.
      * The default implementation returns the defaults. It never returns null.
-     * An array returned by a new implementation must at least contain "SDL2".
+     * An array returned by a new implementation must at least contain "SDL3".
      * Also keep in mind that the order the libraries are loaded may matter.
      * Also keep in mind that the order the libraries are loaded may matter.
-     * @return names of shared libraries to be loaded (e.g. "SDL2", "main").
+     * @return names of shared libraries to be loaded (e.g. "SDL3", "main").
      */
      */
     protected String[] getLibraries() {
     protected String[] getLibraries() {
         return new String[] {
         return new String[] {
-            "SDL2",
-            // "SDL2_image",
-            // "SDL2_mixer",
-            // "SDL2_net",
-            // "SDL2_ttf",
+            "SDL3",
+            // "SDL3_image",
+            // "SDL3_mixer",
+            // "SDL3_net",
+            // "SDL3_ttf",
             "main"
             "main"
         };
         };
     }
     }
@@ -341,8 +345,18 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
             errorMsgBrokenLib = e.getMessage();
             errorMsgBrokenLib = e.getMessage();
         }
         }
 
 
-        if (mBrokenLibraries)
-        {
+        if (!mBrokenLibraries) {
+            String expected_version = String.valueOf(SDL_MAJOR_VERSION) + "." +
+                                      String.valueOf(SDL_MINOR_VERSION) + "." +
+                                      String.valueOf(SDL_MICRO_VERSION);
+            String version = nativeGetVersion();
+            if (!version.equals(expected_version)) {
+                mBrokenLibraries = true;
+                errorMsgBrokenLib = "SDL C/Java version mismatch (expected " + expected_version + ", got " + version + ")";
+            }
+        }
+
+        if (mBrokenLibraries) {
             mSingleton = this;
             mSingleton = this;
             AlertDialog.Builder dlgAlert  = new AlertDialog.Builder(this);
             AlertDialog.Builder dlgAlert  = new AlertDialog.Builder(this);
             dlgAlert.setMessage("An error occurred while trying to start the application. Please try again and/or reinstall."
             dlgAlert.setMessage("An error occurred while trying to start the application. Please try again and/or reinstall."
@@ -883,6 +897,7 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
     }
     }
 
 
     // C functions we call
     // C functions we call
+    public static native String nativeGetVersion();
     public static native int nativeSetupJNI();
     public static native int nativeSetupJNI();
     public static native int nativeRunMain(String library, String function, Object arguments);
     public static native int nativeRunMain(String library, String function, Object arguments);
     public static native void nativeLowMemory();
     public static native void nativeLowMemory();
@@ -1217,8 +1232,7 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
     }
     }
 
 
     // This method is called by SDLControllerManager's API 26 Generic Motion Handler.
     // This method is called by SDLControllerManager's API 26 Generic Motion Handler.
-    public static View getContentView()
-    {
+    public static View getContentView() {
         return mLayout;
         return mLayout;
     }
     }
 
 
@@ -1289,6 +1303,77 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
         return event.isPrintingKey() || event.getKeyCode() == KeyEvent.KEYCODE_SPACE;
         return event.isPrintingKey() || event.getKeyCode() == KeyEvent.KEYCODE_SPACE;
     }
     }
 
 
+    public static boolean handleKeyEvent(View v, int keyCode, KeyEvent event, InputConnection ic) {
+        int deviceId = event.getDeviceId();
+        int source = event.getSource();
+
+        if (source == InputDevice.SOURCE_UNKNOWN) {
+            InputDevice device = InputDevice.getDevice(deviceId);
+            if (device != null) {
+                source = device.getSources();
+            }
+        }
+
+//        if (event.getAction() == KeyEvent.ACTION_DOWN) {
+//            Log.v("SDL", "key down: " + keyCode + ", deviceId = " + deviceId + ", source = " + source);
+//        } else if (event.getAction() == KeyEvent.ACTION_UP) {
+//            Log.v("SDL", "key up: " + keyCode + ", deviceId = " + deviceId + ", source = " + source);
+//        }
+
+        // Dispatch the different events depending on where they come from
+        // Some SOURCE_JOYSTICK, SOURCE_DPAD or SOURCE_GAMEPAD are also SOURCE_KEYBOARD
+        // So, we try to process them as JOYSTICK/DPAD/GAMEPAD events first, if that fails we try them as KEYBOARD
+        //
+        // Furthermore, it's possible a game controller has SOURCE_KEYBOARD and
+        // SOURCE_JOYSTICK, while its key events arrive from the keyboard source
+        // So, retrieve the device itself and check all of its sources
+        if (SDLControllerManager.isDeviceSDLJoystick(deviceId)) {
+            // Note that we process events with specific key codes here
+            if (event.getAction() == KeyEvent.ACTION_DOWN) {
+                if (SDLControllerManager.onNativePadDown(deviceId, keyCode) == 0) {
+                    return true;
+                }
+            } else if (event.getAction() == KeyEvent.ACTION_UP) {
+                if (SDLControllerManager.onNativePadUp(deviceId, keyCode) == 0) {
+                    return true;
+                }
+            }
+        }
+
+        if ((source & InputDevice.SOURCE_KEYBOARD) == InputDevice.SOURCE_KEYBOARD) {
+            if (event.getAction() == KeyEvent.ACTION_DOWN) {
+                if (isTextInputEvent(event)) {
+                    if (ic != null) {
+                        ic.commitText(String.valueOf((char) event.getUnicodeChar()), 1);
+                    } else {
+                        SDLInputConnection.nativeCommitText(String.valueOf((char) event.getUnicodeChar()), 1);
+                    }
+                }
+                onNativeKeyDown(keyCode);
+                return true;
+            } else if (event.getAction() == KeyEvent.ACTION_UP) {
+                onNativeKeyUp(keyCode);
+                return true;
+            }
+        }
+
+        if ((source & InputDevice.SOURCE_MOUSE) == InputDevice.SOURCE_MOUSE) {
+            // on some devices key events are sent for mouse BUTTON_BACK/FORWARD presses
+            // they are ignored here because sending them as mouse input to SDL is messy
+            if ((keyCode == KeyEvent.KEYCODE_BACK) || (keyCode == KeyEvent.KEYCODE_FORWARD)) {
+                switch (event.getAction()) {
+                case KeyEvent.ACTION_DOWN:
+                case KeyEvent.ACTION_UP:
+                    // mark the event as handled or it will be handled by system
+                    // handling KEYCODE_BACK by system will call onBackPressed()
+                    return true;
+                }
+            }
+        }
+
+        return false;
+    }
+
     /**
     /**
      * This method is called by SDL using JNI.
      * This method is called by SDL using JNI.
      */
      */
@@ -1826,21 +1911,7 @@ class DummyEdit extends View implements View.OnKeyListener {
 
 
     @Override
     @Override
     public boolean onKey(View v, int keyCode, KeyEvent event) {
     public boolean onKey(View v, int keyCode, KeyEvent event) {
-        /*
-         * This handles the hardware keyboard input
-         */
-        if (event.getAction() == KeyEvent.ACTION_DOWN) {
-            if (SDLActivity.isTextInputEvent(event)) {
-                ic.commitText(String.valueOf((char) event.getUnicodeChar()), 1);
-                return true;
-            }
-            SDLActivity.onNativeKeyDown(keyCode);
-            return true;
-        } else if (event.getAction() == KeyEvent.ACTION_UP) {
-            SDLActivity.onNativeKeyUp(keyCode);
-            return true;
-        }
-        return false;
+        return SDLActivity.handleKeyEvent(v, keyCode, event, ic);
     }
     }
 
 
     //
     //
@@ -1864,9 +1935,10 @@ class DummyEdit extends View implements View.OnKeyListener {
     public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
     public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
         ic = new SDLInputConnection(this, true);
         ic = new SDLInputConnection(this, true);
 
 
-        outAttrs.inputType = InputType.TYPE_CLASS_TEXT;
-        outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_EXTRACT_UI
-                | EditorInfo.IME_FLAG_NO_FULLSCREEN /* API 11 */;
+        outAttrs.inputType = InputType.TYPE_CLASS_TEXT |
+                             InputType.TYPE_TEXT_FLAG_MULTI_LINE;
+        outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_EXTRACT_UI |
+                              EditorInfo.IME_FLAG_NO_FULLSCREEN /* API 11 */;
 
 
         return ic;
         return ic;
     }
     }
@@ -1874,9 +1946,17 @@ class DummyEdit extends View implements View.OnKeyListener {
 
 
 class SDLInputConnection extends BaseInputConnection {
 class SDLInputConnection extends BaseInputConnection {
 
 
+    protected EditText mEditText;
+    protected String mCommittedText = "";
+
     public SDLInputConnection(View targetView, boolean fullEditor) {
     public SDLInputConnection(View targetView, boolean fullEditor) {
         super(targetView, fullEditor);
         super(targetView, fullEditor);
+        mEditText = new EditText(SDL.getContext());
+    }
 
 
+    @Override
+    public Editable getEditable() {
+        return mEditText.getEditableText();
     }
     }
 
 
     @Override
     @Override
@@ -1899,79 +1979,84 @@ class SDLInputConnection extends BaseInputConnection {
             }
             }
         }
         }
 
 
-
         return super.sendKeyEvent(event);
         return super.sendKeyEvent(event);
     }
     }
 
 
     @Override
     @Override
     public boolean commitText(CharSequence text, int newCursorPosition) {
     public boolean commitText(CharSequence text, int newCursorPosition) {
-
-        /* Generate backspaces for the text we're going to replace */
-        final Editable content = getEditable();
-        if (content != null) {
-            int a = getComposingSpanStart(content);
-            int b = getComposingSpanEnd(content);
-            if (a == -1 || b == -1) {
-                a = Selection.getSelectionStart(content);
-                b = Selection.getSelectionEnd(content);
-            }
-            if (a < 0) a = 0;
-            if (b < 0) b = 0;
-            if (b < a) {
-                int tmp = a;
-                a = b;
-                b = tmp;
-            }
-            int backspaces = (b - a);
-
-            for (int i = 0; i < backspaces; i++) {
-                nativeGenerateScancodeForUnichar('\b');
-            }
-        }
-
-        for (int i = 0; i < text.length(); i++) {
-            char c = text.charAt(i);
-            if (c == '\n') {
-                if (SDLActivity.onNativeSoftReturnKey()) {
-                    return true;
-                }
-            }
-            nativeGenerateScancodeForUnichar(c);
+        if (!super.commitText(text, newCursorPosition)) {
+            return false;
         }
         }
-
-        SDLInputConnection.nativeCommitText(text.toString(), newCursorPosition);
-
-        return super.commitText(text, newCursorPosition);
+        updateText();
+        return true;
     }
     }
 
 
     @Override
     @Override
     public boolean setComposingText(CharSequence text, int newCursorPosition) {
     public boolean setComposingText(CharSequence text, int newCursorPosition) {
-
-        nativeSetComposingText(text.toString(), newCursorPosition);
-
-        return super.setComposingText(text, newCursorPosition);
+        if (!super.setComposingText(text, newCursorPosition)) {
+            return false;
+        }
+        updateText();
+        return true;
     }
     }
 
 
-    public static native void nativeCommitText(String text, int newCursorPosition);
+    @Override
+    public boolean deleteSurroundingText(int beforeLength, int afterLength) {
+        if (!super.deleteSurroundingText(beforeLength, afterLength)) {
+            return false;
+        }
+        updateText();
+        return true;
+    }
 
 
-    public native void nativeGenerateScancodeForUnichar(char c);
+    protected void updateText() {
+        final Editable content = getEditable();
+        if (content == null) {
+            return;
+        }
 
 
-    public native void nativeSetComposingText(String text, int newCursorPosition);
+        String text = content.toString();
+        int compareLength = Math.min(text.length(), mCommittedText.length());
+        int matchLength, offset;
 
 
-    @Override
-    public boolean deleteSurroundingText(int beforeLength, int afterLength) {
-        // Workaround to capture backspace key. Ref: http://stackoverflow.com/questions/14560344/android-backspace-in-webview-baseinputconnection
-        // and https://bugzilla.libsdl.org/show_bug.cgi?id=2265
-        if (beforeLength > 0 && afterLength == 0) {
-            // backspace(s)
-            while (beforeLength-- > 0) {
-                nativeGenerateScancodeForUnichar('\b');
+        /* Backspace over characters that are no longer in the string */
+        for (matchLength = 0; matchLength < compareLength; ) {
+            int codePoint = mCommittedText.codePointAt(matchLength);
+            if (codePoint != text.codePointAt(matchLength)) {
+                break;
             }
             }
-            return true;
+            matchLength += Character.charCount(codePoint);
+        }
+        /* FIXME: This doesn't handle graphemes, like '🌬️' */
+        for (offset = matchLength; offset < mCommittedText.length(); ) {
+            int codePoint = mCommittedText.codePointAt(offset);
+            nativeGenerateScancodeForUnichar('\b');
+            offset += Character.charCount(codePoint);
+        }
+
+        if (matchLength < text.length()) {
+            String pendingText = text.subSequence(matchLength, text.length()).toString();
+            for (offset = 0; offset < pendingText.length(); ) {
+                int codePoint = pendingText.codePointAt(offset);
+                if (codePoint == '\n') {
+                    if (SDLActivity.onNativeSoftReturnKey()) {
+                        return;
+                    }
+                }
+                /* Higher code points don't generate simulated scancodes */
+                if (codePoint < 128) {
+                    nativeGenerateScancodeForUnichar((char)codePoint);
+                }
+                offset += Character.charCount(codePoint);
+            }
+            SDLInputConnection.nativeCommitText(pendingText, 0);
         }
         }
-
-        return super.deleteSurroundingText(beforeLength, afterLength);
+        mCommittedText = text;
     }
     }
+
+    public static native void nativeCommitText(String text, int newCursorPosition);
+
+    public static native void nativeGenerateScancodeForUnichar(char c);
 }
 }
 
 
 class SDLClipboardHandler implements
 class SDLClipboardHandler implements

+ 3 - 67
android-project/app/src/main/java/org/libsdl/app/SDLSurface.java

@@ -189,72 +189,8 @@ public class SDLSurface extends SurfaceView implements SurfaceHolder.Callback,
 
 
     // Key events
     // Key events
     @Override
     @Override
-    public boolean onKey(View  v, int keyCode, KeyEvent event) {
-
-        int deviceId = event.getDeviceId();
-        int source = event.getSource();
-
-        if (source == InputDevice.SOURCE_UNKNOWN) {
-            InputDevice device = InputDevice.getDevice(deviceId);
-            if (device != null) {
-                source = device.getSources();
-            }
-        }
-
-//        if (event.getAction() == KeyEvent.ACTION_DOWN) {
-//            Log.v("SDL", "key down: " + keyCode + ", deviceId = " + deviceId + ", source = " + source);
-//        } else if (event.getAction() == KeyEvent.ACTION_UP) {
-//            Log.v("SDL", "key up: " + keyCode + ", deviceId = " + deviceId + ", source = " + source);
-//        }
-
-        // Dispatch the different events depending on where they come from
-        // Some SOURCE_JOYSTICK, SOURCE_DPAD or SOURCE_GAMEPAD are also SOURCE_KEYBOARD
-        // So, we try to process them as JOYSTICK/DPAD/GAMEPAD events first, if that fails we try them as KEYBOARD
-        //
-        // Furthermore, it's possible a game controller has SOURCE_KEYBOARD and
-        // SOURCE_JOYSTICK, while its key events arrive from the keyboard source
-        // So, retrieve the device itself and check all of its sources
-        if (SDLControllerManager.isDeviceSDLJoystick(deviceId)) {
-            // Note that we process events with specific key codes here
-            if (event.getAction() == KeyEvent.ACTION_DOWN) {
-                if (SDLControllerManager.onNativePadDown(deviceId, keyCode) == 0) {
-                    return true;
-                }
-            } else if (event.getAction() == KeyEvent.ACTION_UP) {
-                if (SDLControllerManager.onNativePadUp(deviceId, keyCode) == 0) {
-                    return true;
-                }
-            }
-        }
-
-        if ((source & InputDevice.SOURCE_KEYBOARD) == InputDevice.SOURCE_KEYBOARD) {
-            if (event.getAction() == KeyEvent.ACTION_DOWN) {
-                if (SDLActivity.isTextInputEvent(event)) {
-                    SDLInputConnection.nativeCommitText(String.valueOf((char) event.getUnicodeChar()), 1);
-                }
-                SDLActivity.onNativeKeyDown(keyCode);
-                return true;
-            } else if (event.getAction() == KeyEvent.ACTION_UP) {
-                SDLActivity.onNativeKeyUp(keyCode);
-                return true;
-            }
-        }
-
-        if ((source & InputDevice.SOURCE_MOUSE) == InputDevice.SOURCE_MOUSE) {
-            // on some devices key events are sent for mouse BUTTON_BACK/FORWARD presses
-            // they are ignored here because sending them as mouse input to SDL is messy
-            if ((keyCode == KeyEvent.KEYCODE_BACK) || (keyCode == KeyEvent.KEYCODE_FORWARD)) {
-                switch (event.getAction()) {
-                case KeyEvent.ACTION_DOWN:
-                case KeyEvent.ACTION_UP:
-                    // mark the event as handled or it will be handled by system
-                    // handling KEYCODE_BACK by system will call onBackPressed()
-                    return true;
-                }
-            }
-        }
-
-        return false;
+    public boolean onKey(View v, int keyCode, KeyEvent event) {
+        return SDLActivity.handleKeyEvent(v, keyCode, event, null);
     }
     }
 
 
     // Touch events
     // Touch events
@@ -466,4 +402,4 @@ public class SDLSurface extends SurfaceView implements SurfaceHolder.Callback,
 
 
         return false;
         return false;
     }
     }
-}
+}

+ 351 - 0
build-scripts/android-prefab.sh

@@ -0,0 +1,351 @@
+#!/bin/bash
+
+set -e
+
+if ! [ "x$ANDROID_NDK_HOME" != "x" -a -d "$ANDROID_NDK_HOME" ]; then
+    echo "ANDROID_NDK_HOME environment variable is not set"
+    exit 1
+fi
+
+if ! [ "x$ANDROID_HOME" != "x" -a -d "$ANDROID_HOME" ]; then
+    echo "ANDROID_HOME environment variable is not set"
+    exit 1
+fi
+
+if [ "x$ANDROID_API" = "x" ]; then
+    ANDROID_API="$(ls "$ANDROID_HOME/platforms" | grep -E "^android-[0-9]+$" | sed 's/android-//' | sort -n -r | head -1)"
+    if [ "x$ANDROID_API" = "x" ]; then
+        echo "No Android platform found in $ANDROID_HOME/platforms"
+        exit 1
+    fi
+else
+    if ! [ -d "$ANDROID_HOME/platforms/android-$ANDROID_API" ]; then
+        echo "Android api version $ANDROID_API is not available ($ANDROID_HOME/platforms/android-$ANDROID_API does not exist)" >2
+        exit 1
+    fi
+fi
+
+android_platformdir="$ANDROID_HOME/platforms/android-$ANDROID_API"
+
+echo "Building for android api version $ANDROID_API"
+echo "android_platformdir=$android_platformdir"
+
+scriptdir=$(cd -P -- "$(dirname -- "$0")" && printf '%s\n' "$(pwd -P)")
+sdl_root=$(cd -P -- "$(dirname -- "$0")/.." && printf '%s\n' "$(pwd -P)")
+
+build_root="${sdl_root}/build-android-prefab"
+
+android_abis="armeabi-v7a arm64-v8a x86 x86_64"
+android_api=19
+android_ndk=21
+android_stl="c++_shared"
+
+sdl_major=$(sed -ne 's/^#define SDL_MAJOR_VERSION  *//p' "${sdl_root}/include/SDL_version.h")
+sdl_minor=$(sed -ne 's/^#define SDL_MINOR_VERSION  *//p' "${sdl_root}/include/SDL_version.h")
+sdl_patch=$(sed -ne 's/^#define SDL_PATCHLEVEL  *//p' "${sdl_root}/include/SDL_version.h")
+sdl_version="${sdl_major}.${sdl_minor}.${sdl_patch}"
+echo "Building Android prefab package for SDL version $sdl_version"
+
+prefabhome="${build_root}/prefab-${sdl_version}"
+rm -rf "$prefabhome"
+mkdir -p "${prefabhome}"
+
+build_cmake_projects() {
+    for android_abi in $android_abis; do
+        echo "Configuring CMake project for $android_abi"
+        cmake -S "$sdl_root" -B "${build_root}/build_${android_abi}" \
+            -DCMAKE_TOOLCHAIN_FILE="$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake" \
+            -DANDROID_PLATFORM=${android_platform} \
+            -DANDROID_ABI=${android_abi} \
+            -DSDL_SHARED=ON \
+            -DSDL_STATIC=ON \
+            -DSDL_STATIC_PIC=ON \
+            -DSDL_TEST=ON \
+            -DSDL3_DISABLE_SDL3MAIN=OFF \
+            -DSDL3_DISABLE_INSTALL=OFF \
+            -DCMAKE_INSTALL_PREFIX="${build_root}/build_${android_abi}/prefix" \
+            -DCMAKE_INSTALL_INCLUDEDIR=include \
+            -DCMAKE_INSTALL_LIBDIR=lib \
+            -DCMAKE_BUILD_TYPE=Release \
+            -GNinja
+
+        rm -rf "${build_root}/build_${android_abi}/prefix"
+
+        echo "Building CMake project for $android_abi"
+        cmake --build "${build_root}/build_${android_abi}"
+
+        echo "Installing CMake project for $android_abi"
+        cmake --install "${build_root}/build_${android_abi}"
+    done
+}
+
+classes_sources_jar_path="${prefabhome}/classes-sources.jar"
+classes_jar_path="${prefabhome}/classes.jar"
+compile_java() {
+    classes_sources_root="${prefabhome}/classes-sources"
+
+    rm -rf "${classes_sources_root}"
+    mkdir -p "${classes_sources_root}/META-INF"
+
+    echo "Copying LICENSE.txt to java build folder"
+    cp "$sdl_root/LICENSE.txt" "${classes_sources_root}/META-INF"
+
+    echo "Copy JAVA sources to java build folder"
+    cp -r "$sdl_root/android-project/app/src/main/java/org" "${classes_sources_root}"
+
+    java_sourceslist_path="${prefabhome}/java_sources.txt"
+    pushd "${classes_sources_root}"
+        echo "Collecting sources for classes-sources.jar"
+        find "." -name "*.java" >"${java_sourceslist_path}"
+        find "META-INF" -name "*" >>"${java_sourceslist_path}"
+
+        echo "Creating classes-sources.jar"
+        jar -cf "${classes_sources_jar_path}" "@${java_sourceslist_path}"
+    popd
+
+    classes_root="${prefabhome}/classes"
+    mkdir -p "${classes_root}/META-INF"
+    cp "$sdl_root/LICENSE.txt" "${classes_root}/META-INF"
+    java_sourceslist_path="${prefabhome}/java_sources.txt"
+
+    echo "Collecting sources for classes.jar"
+    find "$sdl_root/android-project/app/src/main/java" -name "*.java" >"${java_sourceslist_path}"
+
+    echo "Compiling classes"
+    javac -encoding utf-8 -classpath "$android_platformdir/android.jar" -d "${classes_root}" "@${java_sourceslist_path}"
+
+    java_classeslist_path="${prefabhome}/java_classes.txt"
+    pushd "${classes_root}"
+        find "." -name "*.class" >"${java_classeslist_path}"
+        find "META-INF" -name "*" >>"${java_classeslist_path}"
+        echo "Creating classes.jar"
+        jar -cf "${classes_jar_path}" "@${java_classeslist_path}"
+    popd
+}
+
+pom_filename="SDL${sdl_major}-${sdl_version}.pom"
+pom_filepath="${prefabhome}/${pom_filename}"
+create_pom_xml() {
+    echo "Creating ${pom_filename}"
+    cat >"${pom_filepath}" <<EOF
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.libsdl.android</groupId>
+  <artifactId>SDL${sdl_major}</artifactId>
+  <version>${sdl_version}</version>
+  <packaging>aar</packaging>
+  <name>SDL${sdl_major}</name>
+  <description>The AAR for SDL${sdl_major}</description>
+  <url>https://libsdl.org/</url>
+  <licenses>
+    <license>
+      <name>zlib License</name>
+      <url>https://github.com/libsdl-org/SDL/blob/main/LICENSE.txt</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+  <scm>
+    <connection>scm:git:https://github.com/libsdl-org/SDL</connection>
+    <url>https://github.com/libsdl-org/SDL</url>
+  </scm>
+</project>
+EOF
+}
+
+create_aar_androidmanifest() {
+    echo "Creating AndroidManifest.xml"
+    cat >"${aar_root}/AndroidManifest.xml" <<EOF
+<manifest
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    package="org.libsdl.android" android:versionCode="1"
+    android:versionName="1.0">
+	<uses-sdk android:minSdkVersion="16"
+              android:targetSdkVersion="29"/>
+</manifest>
+EOF
+}
+
+echo "Creating AAR root directory"
+aar_root="${prefabhome}/SDL${sdl_major}-${sdl_version}"
+mkdir -p "${aar_root}"
+
+aar_metainfdir_path=${aar_root}/META-INF
+mkdir -p "${aar_metainfdir_path}"
+cp "${sdl_root}/LICENSE.txt" "${aar_metainfdir_path}"
+
+prefabworkdir="${aar_root}/prefab"
+mkdir -p "${prefabworkdir}"
+
+cat >"${prefabworkdir}/prefab.json" <<EOF
+{
+  "schema_version": 2,
+  "name": "SDL$sdl_major",
+  "version": "$sdl_version",
+  "dependencies": []
+}
+EOF
+
+modulesworkdir="${prefabworkdir}/modules"
+mkdir -p "${modulesworkdir}"
+
+create_shared_sdl_module() {
+    echo "Creating SDL${sdl_major} prefab module"
+    for android_abi in $android_abis; do
+        sdl_moduleworkdir="${modulesworkdir}/SDL${sdl_major}"
+        mkdir -p "${sdl_moduleworkdir}"
+
+        abi_build_prefix="${build_root}/build_${android_abi}/prefix"
+
+        cat >"${sdl_moduleworkdir}/module.json" <<EOF
+{
+  "export_libraries": [],
+  "library_name": "libSDL${sdl_major}"
+}
+EOF
+        mkdir -p "${sdl_moduleworkdir}/include"
+        cp -r "${abi_build_prefix}/include/SDL${sdl_major}/"* "${sdl_moduleworkdir}/include/"
+        rm "${sdl_moduleworkdir}/include/SDL_config.h"
+        cp "$sdl_root/include/SDL_config.h" "$sdl_root/include/SDL_config_android.h" "${sdl_moduleworkdir}/include/"
+
+        abi_sdllibdir="${sdl_moduleworkdir}/libs/android.${android_abi}"
+        mkdir -p "${abi_sdllibdir}"
+        cat >"${abi_sdllibdir}/abi.json" <<EOF
+{
+  "abi": "${android_abi}",
+  "api": ${android_api},
+  "ndk": ${android_ndk},
+  "stl": "${android_stl}",
+  "static": false
+}
+EOF
+        cp "${abi_build_prefix}/lib/libSDL${sdl_major}.so" "${abi_sdllibdir}"
+    done
+}
+
+create_static_sdl_module() {
+    echo "Creating SDL${sdl_major}-static prefab module"
+    for android_abi in $android_abis; do
+        sdl_moduleworkdir="${modulesworkdir}/SDL${sdl_major}-static"
+        mkdir -p "${sdl_moduleworkdir}"
+
+        abi_build_prefix="${build_root}/build_${android_abi}/prefix"
+
+        cat >"${sdl_moduleworkdir}/module.json" <<EOF
+{
+  "export_libraries": ["-ldl", "-lGLESv1_CM", "-lGLESv2", "-llog", "-landroid", "-lOpenSLES"]
+  "library_name": "libSDL${sdl_major}"
+}
+EOF
+        mkdir -p "${sdl_moduleworkdir}/include"
+        cp -r "${abi_build_prefix}/include/SDL${sdl_major}/"* "${sdl_moduleworkdir}/include"
+        rm "${sdl_moduleworkdir}/include/SDL_config.h"
+        cp "$sdl_root/include/SDL_config.h" "$sdl_root/include/SDL_config_android.h" "${sdl_moduleworkdir}/include/"
+
+        abi_sdllibdir="${sdl_moduleworkdir}/libs/android.${android_abi}"
+        mkdir -p "${abi_sdllibdir}"
+        cat >"${abi_sdllibdir}/abi.json" <<EOF
+{
+  "abi": "${android_abi}",
+  "api": ${android_api},
+  "ndk": ${android_ndk},
+  "stl": "${android_stl}",
+  "static": true
+}
+EOF
+        cp "${abi_build_prefix}/lib/libSDL${sdl_major}.a" "${abi_sdllibdir}"
+    done
+}
+
+create_sdlmain_module() {
+    echo "Creating SDL${sdl_major}main prefab module"
+    for android_abi in $android_abis; do
+        sdl_moduleworkdir="${modulesworkdir}/SDL${sdl_major}main"
+        mkdir -p "${sdl_moduleworkdir}"
+
+        abi_build_prefix="${build_root}/build_${android_abi}/prefix"
+
+        cat >"${sdl_moduleworkdir}/module.json" <<EOF
+{
+  "export_libraries": [],
+  "library_name": "libSDL${sdl_major}main"
+}
+EOF
+        abi_sdllibdir="${sdl_moduleworkdir}/libs/android.${android_abi}"
+        mkdir -p "${abi_sdllibdir}"
+        cat >"${abi_sdllibdir}/abi.json" <<EOF
+{
+  "abi": "${android_abi}",
+  "api": ${android_api},
+  "ndk": ${android_ndk},
+  "stl": "${android_stl}",
+  "static": true
+}
+EOF
+        cp "${abi_build_prefix}/lib/libSDL${sdl_major}main.a" "${abi_sdllibdir}"
+    done
+}
+
+create_sdltest_module() {
+    echo "Creating SDL${sdl_major}test prefab module"
+    for android_abi in $android_abis; do
+        sdl_moduleworkdir="${modulesworkdir}/SDL${sdl_major}test"
+        mkdir -p "${sdl_moduleworkdir}"
+
+        abi_build_prefix="${build_root}/build_${android_abi}/prefix"
+
+        cat >"${sdl_moduleworkdir}/module.json" <<EOF
+{
+  "export_libraries": [],
+  "library_name": "libSDL${sdl_major}_test"
+}
+EOF
+        abi_sdllibdir="${sdl_moduleworkdir}/libs/android.${android_abi}"
+        mkdir -p "${abi_sdllibdir}"
+        cat >"${abi_sdllibdir}/abi.json" <<EOF
+{
+  "abi": "${android_abi}",
+  "api": ${android_api},
+  "ndk": ${android_ndk},
+  "stl": "${android_stl}",
+  "static": true
+}
+EOF
+        cp "${abi_build_prefix}/lib/libSDL${sdl_major}_test.a" "${abi_sdllibdir}"
+    done
+}
+
+build_cmake_projects
+
+compile_java
+
+create_pom_xml
+
+create_aar_androidmanifest
+
+create_shared_sdl_module
+
+create_static_sdl_module
+
+create_sdlmain_module
+
+create_sdltest_module
+
+pushd "${aar_root}"
+    aar_filename="SDL${sdl_major}-${sdl_version}.aar"
+    cp "${classes_jar_path}" ./classes.jar
+    cp "${classes_sources_jar_path}" ./classes-sources.jar
+    zip -r "${aar_filename}" AndroidManifest.xml classes.jar classes-sources.jar prefab META-INF
+    zip -Tv "${aar_filename}" 2>/dev/null ;
+    mv "${aar_filename}" "${prefabhome}"
+popd
+
+maven_filename="SDL${sdl_major}-${sdl_version}.zip"
+
+pushd "${prefabhome}"
+    zip_filename="SDL${sdl_major}-${sdl_version}.zip"
+    zip "${maven_filename}" "${aar_filename}" "${pom_filename}" 2>/dev/null;
+    zip -Tv "${zip_filename}" 2>/dev/null;
+popd
+
+echo "Prefab zip is ready at ${prefabhome}/${aar_filename}"
+echo "Maven archive is ready at ${prefabhome}/${zip_filename}"

+ 1 - 1
build-scripts/androidbuildlibs.sh

@@ -69,5 +69,5 @@ ndk-build \
     APP_BUILD_SCRIPT=Android.mk \
     APP_BUILD_SCRIPT=Android.mk \
     APP_ABI="armeabi-v7a arm64-v8a x86 x86_64" \
     APP_ABI="armeabi-v7a arm64-v8a x86 x86_64" \
     APP_PLATFORM=android-16 \
     APP_PLATFORM=android-16 \
-    APP_MODULES="SDL2 SDL2_main" \
+    APP_MODULES="SDL3 SDL3_main" \
     $ndk_args
     $ndk_args

+ 3 - 3
build-scripts/emscripten-buildbot.sh

@@ -55,7 +55,7 @@ mkdir buildbot
 pushd buildbot
 pushd buildbot
 
 
 echo "Configuring..."
 echo "Configuring..."
-emconfigure ../configure --host=wasm32-unknown-emscripten --disable-assembly --disable-threads --disable-cpuinfo CFLAGS="-s USE_SDL=0 -O2 -Wno-warn-absolute-paths -Wdeclaration-after-statement -Werror=declaration-after-statement" --prefix="$PWD/emscripten-sdl2-installed" || exit $?
+emconfigure ../configure --host=wasm32-unknown-emscripten --disable-assembly --disable-threads --disable-cpuinfo CFLAGS="-s USE_SDL=0 -O2 -Wno-warn-absolute-paths -Wdeclaration-after-statement -Werror=declaration-after-statement" --prefix="$PWD/emscripten-sdl3-installed" || exit $?
 
 
 echo "Building..."
 echo "Building..."
 emmake $MAKE || exit $?
 emmake $MAKE || exit $?
@@ -64,9 +64,9 @@ echo "Moving things around..."
 emmake $MAKE install || exit $?
 emmake $MAKE install || exit $?
 
 
 # Fix up a few things to a real install path
 # Fix up a few things to a real install path
-perl -w -pi -e "s#$PWD/emscripten-sdl2-installed#/usr/local#g;" ./emscripten-sdl2-installed/lib/libSDL2.la ./emscripten-sdl2-installed/lib/pkgconfig/sdl2.pc ./emscripten-sdl2-installed/bin/sdl2-config
+perl -w -pi -e "s#$PWD/emscripten-sdl3-installed#/usr/local#g;" ./emscripten-sdl3-installed/lib/libSDL3.la ./emscripten-sdl3-installed/lib/pkgconfig/sdl3.pc ./emscripten-sdl3-installed/bin/sdl3-config
 mkdir -p ./usr
 mkdir -p ./usr
-mv ./emscripten-sdl2-installed ./usr/local
+mv ./emscripten-sdl3-installed ./usr/local
 tar -cJvvf $TARBALL usr
 tar -cJvvf $TARBALL usr
 popd
 popd
 
 

+ 15 - 44
build-scripts/fnsince.pl

@@ -19,7 +19,15 @@ open(PIPEFH, '-|', 'git tag -l') or die "Failed to read git release tags: $!\n";
 while (<PIPEFH>) {
 while (<PIPEFH>) {
     chomp;
     chomp;
     if (/\Arelease\-(.*?)\Z/) {
     if (/\Arelease\-(.*?)\Z/) {
-        push @unsorted_releases, $1;
+        # Ignore anything that isn't a x.y.0 release.
+        # Make sure new APIs are assigned to the next minor version and ignore the patch versions.
+        my $ver = $1;
+        my @versplit = split /\./, $ver;
+        next if (scalar(@versplit) < 1) || ($versplit[0] != 3);  # Ignore anything that isn't an SDL3 release.
+        next if (scalar(@versplit) < 3) || ($versplit[2] != 0);
+
+        # Consider this release version.
+        push @unsorted_releases, $ver;
     }
     }
 
 
 }
 }
@@ -44,13 +52,12 @@ my @releases = sort {
     return 0;  # still here? They matched completely?!
     return 0;  # still here? They matched completely?!
 } @unsorted_releases;
 } @unsorted_releases;
 
 
-# this happens to work for how SDL versions things at the moment.
-my $current_release = $releases[-1];
-my $next_release;
+my $current_release = 'in-development';
+my $next_release = '3.0.0';  # valid until we actually ship something.  :)
+if (scalar(@releases) > 0) {
+    # this happens to work for how SDL versions things at the moment.
+    $current_release = $releases[-1];
 
 
-if ($current_release eq '2.0.22') {  # Hack for our jump from 2.0.22 to 2.24.0...
-    $next_release = '2.24.0';
-} else {
     my @current_release_segments = split /\./, $current_release;
     my @current_release_segments = split /\./, $current_release;
     @current_release_segments[1] = '' . ($current_release_segments[1] + 2);
     @current_release_segments[1] = '' . ($current_release_segments[1] + 2);
     $next_release = join('.', @current_release_segments);
     $next_release = join('.', @current_release_segments);
@@ -68,8 +75,6 @@ push @releases, 'HEAD';
 my %funcs = ();
 my %funcs = ();
 foreach my $release (@releases) {
 foreach my $release (@releases) {
     #print("Checking $release...\n");
     #print("Checking $release...\n");
-    next if ($release eq '2.0.0') || ($release eq '2.0.1');  # no dynapi before 2.0.2
-    my $assigned_release = ($release eq '2.0.2') ? '2.0.0' : $release;  # assume everything in 2.0.2--first with dynapi--was there since 2.0.0. We'll fix it up later.
     my $tag = ($release eq 'HEAD') ? $release : "release-$release";
     my $tag = ($release eq 'HEAD') ? $release : "release-$release";
     my $blobname = "$tag:src/dynapi/SDL_dynapi_overrides.h";
     my $blobname = "$tag:src/dynapi/SDL_dynapi_overrides.h";
     open(PIPEFH, '-|', "git show '$blobname'") or die "Failed to read git blob '$blobname': $!\n";
     open(PIPEFH, '-|', "git show '$blobname'") or die "Failed to read git blob '$blobname': $!\n";
@@ -77,46 +82,12 @@ foreach my $release (@releases) {
         chomp;
         chomp;
         if (/\A\#define\s+(SDL_.*?)\s+SDL_.*?_REAL\Z/) {
         if (/\A\#define\s+(SDL_.*?)\s+SDL_.*?_REAL\Z/) {
             my $fn = $1;
             my $fn = $1;
-            $funcs{$fn} = $assigned_release if not defined $funcs{$fn};
+            $funcs{$fn} = $release if not defined $funcs{$fn};
         }
         }
     }
     }
     close(PIPEFH);
     close(PIPEFH);
 }
 }
 
 
-# Fixup the handful of functions that were added in 2.0.1 and 2.0.2 that we
-#  didn't have dynapi revision data about...
-$funcs{'SDL_GetSystemRAM'} = '2.0.1';
-$funcs{'SDL_GetBasePath'} = '2.0.1';
-$funcs{'SDL_GetPrefPath'} = '2.0.1';
-$funcs{'SDL_UpdateYUVTexture'} = '2.0.1';
-$funcs{'SDL_GL_GetDrawableSize'} = '2.0.1';
-$funcs{'SDL_Direct3D9GetAdapterIndex'} = '2.0.1';
-$funcs{'SDL_RenderGetD3D9Device'} = '2.0.1';
-
-$funcs{'SDL_RegisterApp'} = '2.0.2';
-$funcs{'SDL_UnregisterApp'} = '2.0.2';
-$funcs{'SDL_GetAssertionHandler'} = '2.0.2';
-$funcs{'SDL_GetDefaultAssertionHandler'} = '2.0.2';
-$funcs{'SDL_AtomicAdd'} = '2.0.2';
-$funcs{'SDL_AtomicGet'} = '2.0.2';
-$funcs{'SDL_AtomicGetPtr'} = '2.0.2';
-$funcs{'SDL_AtomicSet'} = '2.0.2';
-$funcs{'SDL_AtomicSetPtr'} = '2.0.2';
-$funcs{'SDL_HasAVX'} = '2.0.2';
-$funcs{'SDL_GameControllerAddMappingsFromRW'} = '2.0.2';
-$funcs{'SDL_acos'} = '2.0.2';
-$funcs{'SDL_asin'} = '2.0.2';
-$funcs{'SDL_vsscanf'} = '2.0.2';
-$funcs{'SDL_DetachThread'} = '2.0.2';
-$funcs{'SDL_GL_ResetAttributes'} = '2.0.2';
-$funcs{'SDL_DXGIGetOutputInfo'} = '2.0.2';
-
-# these are incorrect in the dynapi header, because we forgot to add them
-#  until a later release, but are available in the older release.
-$funcs{'SDL_WinRTGetFSPathUNICODE'} = '2.0.3';
-$funcs{'SDL_WinRTGetFSPathUTF8'} = '2.0.3';
-$funcs{'SDL_WinRTRunApp'} = '2.0.3';
-
 if (not defined $wikipath) {
 if (not defined $wikipath) {
     foreach my $release (@releases) {
     foreach my $release (@releases) {
         foreach my $fn (sort keys %funcs) {
         foreach my $fn (sort keys %funcs) {

+ 0 - 61
build-scripts/nacl-buildbot.sh

@@ -1,61 +0,0 @@
-#!/bin/bash
-
-# This is the script buildbot.libsdl.org uses to cross-compile SDL2 from
-#  amd64 Linux to NaCl.
-
-# PLEASE NOTE that we have reports that SDL built with pepper_49 (current
-#  stable release as of November 10th, 2016) is broken. Please retest
-#  when something newer becomes stable and then decide if this was SDL's
-#  bug or NaCl's bug.  --ryan.
-export NACL_SDK_ROOT="/nacl_sdk/pepper_47"
-
-TARBALL="$1"
-if [ -z $1 ]; then
-    TARBALL=sdl-nacl.tar.xz
-fi
-
-OSTYPE=`uname -s`
-if [ "$OSTYPE" != "Linux" ]; then
-    # !!! FIXME
-    echo "This only works on x86 or x64-64 Linux at the moment." 1>&2
-    exit 1
-fi
-
-if [ "x$MAKE" == "x" ]; then
-    NCPU=`cat /proc/cpuinfo |grep vendor_id |wc -l`
-    let NCPU=$NCPU+1
-    MAKE="make -j$NCPU"
-fi
-
-BUILDBOTDIR="nacl-buildbot"
-PARENTDIR="$PWD"
-
-set -e
-set -x
-rm -f $TARBALL
-rm -rf $BUILDBOTDIR
-mkdir -p $BUILDBOTDIR
-pushd $BUILDBOTDIR
-
-# !!! FIXME: ccache?
-export CC="$NACL_SDK_ROOT/toolchain/linux_pnacl/bin/pnacl-clang"
-export CFLAGS="$CFLAGS -I$NACL_SDK_ROOT/include -I$NACL_SDK_ROOT/include/pnacl"
-export AR="$NACL_SDK_ROOT/toolchain/linux_pnacl/bin/pnacl-ar"
-export LD="$NACL_SDK_ROOT/toolchain/linux_pnacl/bin/pnacl-ar"
-export RANLIB="$NACL_SDK_ROOT/toolchain/linux_pnacl/bin/pnacl-ranlib"
-
-../configure --host=pnacl --prefix=$PWD/nacl-sdl2-installed
-$MAKE
-$MAKE install
-# Fix up a few things to a real install path
-perl -w -pi -e "s#$PWD/nacl-sdl2-installed#/usr/local#g;" ./nacl-sdl2-installed/lib/libSDL2.la ./nacl-sdl2-installed/lib/pkgconfig/sdl2.pc ./nacl-sdl2-installed/bin/sdl2-config
-mkdir -p ./usr
-mv ./nacl-sdl2-installed ./usr/local
-
-popd
-tar -cJvvf $TARBALL -C $BUILDBOTDIR usr
-rm -rf $BUILDBOTDIR
-
-set +x
-echo "All done. Final installable is in $TARBALL ...";
-

+ 0 - 105
build-scripts/naclbuild.sh

@@ -1,105 +0,0 @@
-#!/bin/bash
-if [ -z "$1" ] && [ -z "$NACL_SDK_ROOT" ]; then
-    echo "Usage: ./naclbuild ~/nacl/pepper_35"
-    echo "This will build SDL for Native Client, and testgles2.c as a demo"
-    echo "You can set env vars CC, AR, LD and RANLIB to override the default PNaCl toolchain used"
-    echo "You can set env var SOURCES to select a different source file than testgles2.c"
-    exit 1
-fi
-
-if [ -n "$1" ]; then
-    NACL_SDK_ROOT="$1"
-fi
-
-CC=""
-
-if [ -n "$2" ]; then
-    CC="$2"
-fi
-
-echo "Using SDK at $NACL_SDK_ROOT"
-
-export NACL_SDK_ROOT="$NACL_SDK_ROOT"
-export CFLAGS="$CFLAGS -I$NACL_SDK_ROOT/include -I$NACL_SDK_ROOT/include/pnacl"
-
-NCPUS="1"
-case "$OSTYPE" in
-    darwin*)
-        NCPU=`sysctl -n hw.ncpu`
-        ;; 
-    linux*)
-        if [ -n `which nproc` ]; then
-            NCPUS=`nproc`
-        fi  
-        ;;
-  *);;
-esac
-
-CURDIR=`pwd -P`
-SDLPATH="$( cd "$(dirname "$0")/.." ; pwd -P )"
-BUILDPATH="$SDLPATH/build/nacl"
-TESTBUILDPATH="$BUILDPATH/test"
-SDL2_STATIC="$BUILDPATH/build/.libs/libSDL2.a"
-mkdir -p $BUILDPATH
-mkdir -p $TESTBUILDPATH
-
-if [ -z "$CC" ]; then
-    export CC="$NACL_SDK_ROOT/toolchain/linux_pnacl/bin/pnacl-clang"
-fi
-if [ -z "$AR" ]; then
-    export AR="$NACL_SDK_ROOT/toolchain/linux_pnacl/bin/pnacl-ar"
-fi
-if [ -z "$LD" ]; then
-    export LD="$NACL_SDK_ROOT/toolchain/linux_pnacl/bin/pnacl-ar"
-fi
-if [ -z "$RANLIB" ]; then
-    export RANLIB="$NACL_SDK_ROOT/toolchain/linux_pnacl/bin/pnacl-ranlib"
-fi
-
-if [ -z "$SOURCES" ]; then
-    export SOURCES="$SDLPATH/test/testgles2.c"
-fi
-
-if [ ! -f "$CC" ]; then
-    echo "Could not find compiler at $CC"
-    exit 1
-fi
-
-
-
-
-cd $BUILDPATH
-$SDLPATH/configure --host=pnacl --prefix $TESTBUILDPATH
-make -j$NCPUS CFLAGS="$CFLAGS -I./include"
-make install
-
-if [ ! -f "$SDL2_STATIC" ]; then
-    echo "Build failed! $SDL2_STATIC"
-    exit 1
-fi
-
-echo "Building test"
-cp -f $SDLPATH/test/nacl/* $TESTBUILDPATH
-# Some tests need these resource files
-cp -f $SDLPATH/test/*.bmp $TESTBUILDPATH
-cp -f $SDLPATH/test/*.wav $TESTBUILDPATH
-cp -f $SDL2_STATIC $TESTBUILDPATH
-
-# Copy user sources
-_SOURCES=($SOURCES)
-for src in "${_SOURCES[@]}"
-do
-    cp $src $TESTBUILDPATH
-done
-export SOURCES="$SOURCES"
-
-cd $TESTBUILDPATH
-make -j$NCPUS CONFIG="Release" CFLAGS="$CFLAGS -I$TESTBUILDPATH/include/SDL2 -I$SDLPATH/include"
-make -j$NCPUS CONFIG="Debug" CFLAGS="$CFLAGS -I$TESTBUILDPATH/include/SDL2 -I$SDLPATH/include"
-
-echo
-echo "Run the test with: "
-echo "cd $TESTBUILDPATH;python -m SimpleHTTPServer"
-echo "Then visit http://localhost:8000 with Chrome"
-
-cd $CURDIR

+ 7 - 7
build-scripts/raspberrypi-buildbot.sh

@@ -1,13 +1,13 @@
 #!/bin/bash
 #!/bin/bash
 
 
-# This is the script buildbot.libsdl.org uses to cross-compile SDL2 from
+# This is the script buildbot.libsdl.org uses to cross-compile SDL3 from
 #  x86 Linux to Raspberry Pi.
 #  x86 Linux to Raspberry Pi.
 
 
 # The final tarball can be unpacked in the root directory of a RPi,
 # The final tarball can be unpacked in the root directory of a RPi,
-#  so the SDL2 install lands in /usr/local. Run ldconfig, and then
-#  you should be able to build and run SDL2-based software on your
+#  so the SDL3 install lands in /usr/local. Run ldconfig, and then
+#  you should be able to build and run SDL3-based software on your
 #  Pi. Standard configure scripts should be able to find SDL and
 #  Pi. Standard configure scripts should be able to find SDL and
-#  build against it, and sdl2-config should work correctly on the
+#  build against it, and sdl3-config should work correctly on the
 #  actual device.
 #  actual device.
 
 
 TARBALL="$1"
 TARBALL="$1"
@@ -42,13 +42,13 @@ SYSROOT="/opt/rpi-sysroot"
 export CC="ccache /opt/rpi-tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc --sysroot=$SYSROOT -I$SYSROOT/opt/vc/include -I$SYSROOT/usr/include -I$SYSROOT/opt/vc/include/interface/vcos/pthreads -I$SYSROOT/opt/vc/include/interface/vmcs_host/linux -L$SYSROOT/opt/vc/lib"
 export CC="ccache /opt/rpi-tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc --sysroot=$SYSROOT -I$SYSROOT/opt/vc/include -I$SYSROOT/usr/include -I$SYSROOT/opt/vc/include/interface/vcos/pthreads -I$SYSROOT/opt/vc/include/interface/vmcs_host/linux -L$SYSROOT/opt/vc/lib"
 # -L$SYSROOT/usr/lib/arm-linux-gnueabihf"
 # -L$SYSROOT/usr/lib/arm-linux-gnueabihf"
 # !!! FIXME: shouldn't have to --disable-* things here.
 # !!! FIXME: shouldn't have to --disable-* things here.
-../configure --with-sysroot=$SYSROOT --host=arm-raspberry-linux-gnueabihf --prefix=$PWD/rpi-sdl2-installed --disable-pulseaudio --disable-esd --disable-video-wayland
+../configure --with-sysroot=$SYSROOT --host=arm-raspberry-linux-gnueabihf --prefix=$PWD/rpi-sdl3-installed --disable-pulseaudio --disable-esd --disable-video-wayland
 $MAKE
 $MAKE
 $MAKE install
 $MAKE install
 # Fix up a few things to a real install path on a real Raspberry Pi...
 # Fix up a few things to a real install path on a real Raspberry Pi...
-perl -w -pi -e "s#$PWD/rpi-sdl2-installed#/usr/local#g;" ./rpi-sdl2-installed/lib/libSDL2.la ./rpi-sdl2-installed/lib/pkgconfig/sdl2.pc ./rpi-sdl2-installed/bin/sdl2-config
+perl -w -pi -e "s#$PWD/rpi-sdl3-installed#/usr/local#g;" ./rpi-sdl3-installed/lib/libSDL3.la ./rpi-sdl3-installed/lib/pkgconfig/sdl3.pc ./rpi-sdl3-installed/bin/sdl3-config
 mkdir -p ./usr
 mkdir -p ./usr
-mv ./rpi-sdl2-installed ./usr/local
+mv ./rpi-sdl3-installed ./usr/local
 tar -cJvvf $TARBALL usr
 tar -cJvvf $TARBALL usr
 popd
 popd
 
 

+ 29 - 6
build-scripts/showrev.sh

@@ -5,10 +5,31 @@
 SDL_ROOT=$(dirname $0)/..
 SDL_ROOT=$(dirname $0)/..
 cd $SDL_ROOT
 cd $SDL_ROOT
 
 
+if [ -e ./VERSION.txt ]; then
+    cat ./VERSION.txt
+    exit 0
+fi
+
+major=$(sed -ne 's/^#define SDL_MAJOR_VERSION  *//p' include/SDL_version.h)
+minor=$(sed -ne 's/^#define SDL_MINOR_VERSION  *//p' include/SDL_version.h)
+micro=$(sed -ne 's/^#define SDL_PATCHLEVEL  *//p' include/SDL_version.h)
+version="${major}.${minor}.${micro}"
+
 if [ -x "$(command -v git)" ]; then
 if [ -x "$(command -v git)" ]; then
-    rev=$(echo "$(git remote get-url origin 2>/dev/null)@$(git rev-list HEAD~.. 2>/dev/null)")
-    if [ "$rev" != "@" ]; then
-        echo $rev
+    rev="$(git describe --tags --long 2>/dev/null)"
+    if [ -n "$rev" ]; then
+        # e.g. release-2.24.0-542-g96361fc47
+        # or release-2.24.1-5-g36b987dab
+        # or prerelease-2.23.2-0-gcb46e1b3f
+        echo "$rev"
+        exit 0
+    fi
+
+    rev="$(git describe --always --tags --long 2>/dev/null)"
+    if [ -n "$rev" ]; then
+        # Just a truncated sha1, e.g. 96361fc47.
+        # Turn it into e.g. 2.25.0-g96361fc47
+        echo "${version}-g${rev}"
         exit 0
         exit 0
     fi
     fi
 fi
 fi
@@ -16,10 +37,12 @@ fi
 if [ -x "$(command -v p4)" ]; then
 if [ -x "$(command -v p4)" ]; then
     rev="$(p4 changes -m1 ./...\#have 2>/dev/null| awk '{print $2}')"
     rev="$(p4 changes -m1 ./...\#have 2>/dev/null| awk '{print $2}')"
     if [ $? = 0 ]; then
     if [ $? = 0 ]; then
-        echo $rev
+        # e.g. 2.25.0-p7511446
+        echo "${version}-p${rev}"
         exit 0
         exit 0
     fi
     fi
 fi
 fi
 
 
-echo ""
-exit 1
+# best we can do
+echo "${version}-no-vcs"
+exit 0

+ 56 - 19
test/versioning.sh → build-scripts/test-versioning.sh

@@ -4,6 +4,8 @@
 
 
 set -eu
 set -eu
 
 
+cd `dirname $0`/..
+
 ref_major=$(sed -ne 's/^#define SDL_MAJOR_VERSION  *//p' include/SDL_version.h)
 ref_major=$(sed -ne 's/^#define SDL_MAJOR_VERSION  *//p' include/SDL_version.h)
 ref_minor=$(sed -ne 's/^#define SDL_MINOR_VERSION  *//p' include/SDL_version.h)
 ref_minor=$(sed -ne 's/^#define SDL_MINOR_VERSION  *//p' include/SDL_version.h)
 ref_micro=$(sed -ne 's/^#define SDL_PATCHLEVEL  *//p' include/SDL_version.h)
 ref_micro=$(sed -ne 's/^#define SDL_PATCHLEVEL  *//p' include/SDL_version.h)
@@ -34,37 +36,37 @@ else
     not_ok "configure.ac $version disagrees with SDL_version.h $ref_version"
     not_ok "configure.ac $version disagrees with SDL_version.h $ref_version"
 fi
 fi
 
 
-major=$(sed -ne 's/^set(SDL_MAJOR_VERSION \([0-9]*\))$/\1/p' CMakeLists.txt)
-minor=$(sed -ne 's/^set(SDL_MINOR_VERSION \([0-9]*\))$/\1/p' CMakeLists.txt)
-micro=$(sed -ne 's/^set(SDL_MICRO_VERSION \([0-9]*\))$/\1/p' CMakeLists.txt)
+major=$(sed -ne 's/^SDL_MAJOR_VERSION=//p' configure)
+minor=$(sed -ne 's/^SDL_MINOR_VERSION=//p' configure)
+micro=$(sed -ne 's/^SDL_MICRO_VERSION=//p' configure)
 version="${major}.${minor}.${micro}"
 version="${major}.${minor}.${micro}"
 
 
 if [ "$ref_version" = "$version" ]; then
 if [ "$ref_version" = "$version" ]; then
-    ok "CMakeLists.txt $version"
+    ok "configure $version"
 else
 else
-    not_ok "CMakeLists.txt $version disagrees with SDL_version.h $ref_version"
+    not_ok "configure $version disagrees with SDL_version.h $ref_version"
 fi
 fi
 
 
-major=$(sed -ne 's/^MAJOR_VERSION *= *//p' Makefile.os2)
-minor=$(sed -ne 's/^MINOR_VERSION *= *//p' Makefile.os2)
-micro=$(sed -ne 's/^MICRO_VERSION *= *//p' Makefile.os2)
+major=$(sed -ne 's/^set(SDL_MAJOR_VERSION \([0-9]*\))$/\1/p' CMakeLists.txt)
+minor=$(sed -ne 's/^set(SDL_MINOR_VERSION \([0-9]*\))$/\1/p' CMakeLists.txt)
+micro=$(sed -ne 's/^set(SDL_MICRO_VERSION \([0-9]*\))$/\1/p' CMakeLists.txt)
 version="${major}.${minor}.${micro}"
 version="${major}.${minor}.${micro}"
 
 
 if [ "$ref_version" = "$version" ]; then
 if [ "$ref_version" = "$version" ]; then
-    ok "Makefile.os2 $version"
+    ok "CMakeLists.txt $version"
 else
 else
-    not_ok "Makefile.os2 $version disagrees with SDL_version.h $ref_version"
+    not_ok "CMakeLists.txt $version disagrees with SDL_version.h $ref_version"
 fi
 fi
 
 
-major=$(sed -ne 's/^MAJOR_VERSION *= *//p' Makefile.w32)
-minor=$(sed -ne 's/^MINOR_VERSION *= *//p' Makefile.w32)
-micro=$(sed -ne 's/^MICRO_VERSION *= *//p' Makefile.w32)
+major=$(sed -ne 's/.*SDL_MAJOR_VERSION = \([0-9]*\);/\1/p' android-project/app/src/main/java/org/libsdl/app/SDLActivity.java)
+minor=$(sed -ne 's/.*SDL_MINOR_VERSION = \([0-9]*\);/\1/p' android-project/app/src/main/java/org/libsdl/app/SDLActivity.java)
+micro=$(sed -ne 's/.*SDL_MICRO_VERSION = \([0-9]*\);/\1/p' android-project/app/src/main/java/org/libsdl/app/SDLActivity.java)
 version="${major}.${minor}.${micro}"
 version="${major}.${minor}.${micro}"
 
 
 if [ "$ref_version" = "$version" ]; then
 if [ "$ref_version" = "$version" ]; then
-    ok "Makefile.w32 $version"
+    ok "SDLActivity.java $version"
 else
 else
-    not_ok "Makefile.w32 $version disagrees with SDL_version.h $ref_version"
+    not_ok "android-project/app/src/main/java/org/libsdl/app/SDLActivity.java $version disagrees with SDL_version.h $ref_version"
 fi
 fi
 
 
 tuple=$(sed -ne 's/^ *FILEVERSION *//p' src/main/windows/version.rc | tr -d '\r')
 tuple=$(sed -ne 's/^ *FILEVERSION *//p' src/main/windows/version.rc | tr -d '\r')
@@ -117,15 +119,48 @@ else
     not_ok "Info-Framework.plist CFBundleVersion $version disagrees with SDL_version.h $ref_version"
     not_ok "Info-Framework.plist CFBundleVersion $version disagrees with SDL_version.h $ref_version"
 fi
 fi
 
 
+version=$(sed -Ene 's/Title SDL (.*)/\1/p' Xcode/SDL/pkg-support/SDL.info)
+
+if [ "$ref_version" = "$version" ]; then
+    ok "SDL.info Title $version"
+else
+    not_ok "SDL.info Title $version disagrees with SDL_version.h $ref_version"
+fi
+
+marketing=$(sed -Ene 's/.*MARKETING_VERSION = (.*);/\1/p' Xcode/SDL/SDL.xcodeproj/project.pbxproj)
+
+ref="$ref_version
+$ref_version"
+
+if [ "$ref" = "$marketing" ]; then
+    ok "project.pbxproj MARKETING_VERSION is consistent"
+else
+    not_ok "project.pbxproj MARKETING_VERSION is inconsistent, expected $ref, got $marketing"
+fi
+
 # For simplicity this assumes we'll never break ABI before SDL 3.
 # For simplicity this assumes we'll never break ABI before SDL 3.
 dylib_compat=$(sed -Ene 's/.*DYLIB_COMPATIBILITY_VERSION = (.*);$/\1/p' Xcode/SDL/SDL.xcodeproj/project.pbxproj)
 dylib_compat=$(sed -Ene 's/.*DYLIB_COMPATIBILITY_VERSION = (.*);$/\1/p' Xcode/SDL/SDL.xcodeproj/project.pbxproj)
-ref='1.0.0
-1.0.0'
+
+case "$ref_minor" in
+    (*[02468])
+        major="$(( ref_minor * 100 + 1 ))"
+        minor="0"
+        ;;
+    (*)
+        major="$(( ref_minor * 100 + ref_micro + 1 ))"
+        minor="0"
+        ;;
+esac
+
+ref="${major}.${minor}.0
+${major}.${minor}.0
+${major}.${minor}.0
+${major}.${minor}.0"
 
 
 if [ "$ref" = "$dylib_compat" ]; then
 if [ "$ref" = "$dylib_compat" ]; then
     ok "project.pbxproj DYLIB_COMPATIBILITY_VERSION is consistent"
     ok "project.pbxproj DYLIB_COMPATIBILITY_VERSION is consistent"
 else
 else
-    not_ok "project.pbxproj DYLIB_COMPATIBILITY_VERSION is inconsistent"
+    not_ok "project.pbxproj DYLIB_COMPATIBILITY_VERSION is inconsistent, expected $ref, got $dylib_compat"
 fi
 fi
 
 
 dylib_cur=$(sed -Ene 's/.*DYLIB_CURRENT_VERSION = (.*);$/\1/p' Xcode/SDL/SDL.xcodeproj/project.pbxproj)
 dylib_cur=$(sed -Ene 's/.*DYLIB_CURRENT_VERSION = (.*);$/\1/p' Xcode/SDL/SDL.xcodeproj/project.pbxproj)
@@ -142,12 +177,14 @@ case "$ref_minor" in
 esac
 esac
 
 
 ref="${major}.${minor}.0
 ref="${major}.${minor}.0
+${major}.${minor}.0
+${major}.${minor}.0
 ${major}.${minor}.0"
 ${major}.${minor}.0"
 
 
 if [ "$ref" = "$dylib_cur" ]; then
 if [ "$ref" = "$dylib_cur" ]; then
     ok "project.pbxproj DYLIB_CURRENT_VERSION is consistent"
     ok "project.pbxproj DYLIB_CURRENT_VERSION is consistent"
 else
 else
-    not_ok "project.pbxproj DYLIB_CURRENT_VERSION is inconsistent"
+    not_ok "project.pbxproj DYLIB_CURRENT_VERSION is inconsistent, expected $ref, got $dylib_cur"
 fi
 fi
 
 
 echo "1..$tests"
 echo "1..$tests"

+ 88 - 0
build-scripts/update-version.sh

@@ -0,0 +1,88 @@
+#!/bin/sh
+
+#set -x
+
+cd `dirname $0`/..
+
+ARGSOKAY=1
+if [ -z $1 ]; then
+    ARGSOKAY=0
+fi
+if [ -z $2 ]; then
+    ARGSOKAY=0
+fi
+if [ -z $3 ]; then
+    ARGSOKAY=0
+fi
+
+if [ "x$ARGSOKAY" = "x0" ]; then
+    echo "USAGE: $0 <major> <minor> <patch>" 1>&2
+    exit 1
+fi
+
+MAJOR="$1"
+MINOR="$2"
+PATCH="$3"
+NEWVERSION="$MAJOR.$MINOR.$PATCH"
+
+echo "Updating version to '$NEWVERSION' ..."
+
+# !!! FIXME: This first one is a kinda scary search/replace that might fail later if another X.Y.Z version is added to the file.
+perl -w -pi -e 's/(\<string\>)\d+\.\d+\.\d+/${1}'$NEWVERSION'/;' Xcode/SDL/Info-Framework.plist
+
+perl -w -pi -e 's/(Title SDL )\d+\.\d+\.\d+/${1}'$NEWVERSION'/;' Xcode/SDL/pkg-support/SDL.info
+
+perl -w -pi -e 's/(MARKETING_VERSION\s*=\s*)\d+\.\d+\.\d+/${1}'$NEWVERSION'/;' Xcode/SDL/SDL.xcodeproj/project.pbxproj
+
+DYVER=`expr $MINOR \* 100 + 1`
+perl -w -pi -e 's/(DYLIB_CURRENT_VERSION\s*=\s*)\d+\.\d+\.\d+/${1}'$DYVER'.0.0/;' Xcode/SDL/SDL.xcodeproj/project.pbxproj
+
+# Set compat to major.minor.0 by default.
+perl -w -pi -e 's/(DYLIB_COMPATIBILITY_VERSION\s*=\s*)\d+\.\d+\.\d+/${1}'$DYVER'.0.0/;' Xcode/SDL/SDL.xcodeproj/project.pbxproj
+
+# non-zero patch?
+if [ "x$PATCH" != "x0" ]; then
+    if [ `expr $MINOR % 2` = "0" ]; then
+        # If patch is not zero, but minor is even, it's a bugfix release.
+        perl -w -pi -e 's/(DYLIB_CURRENT_VERSION\s*=\s*)\d+\.\d+\.\d+/${1}'$DYVER'.'$PATCH'.0/;' Xcode/SDL/SDL.xcodeproj/project.pbxproj
+
+    else
+        # If patch is not zero, but minor is odd, it's a development prerelease.
+        DYVER=`expr $MINOR \* 100 + $PATCH + 1`
+        perl -w -pi -e 's/(DYLIB_CURRENT_VERSION\s*=\s*)\d+\.\d+\.\d+/${1}'$DYVER'.0.0/;' Xcode/SDL/SDL.xcodeproj/project.pbxproj
+        perl -w -pi -e 's/(DYLIB_COMPATIBILITY_VERSION\s*=\s*)\d+\.\d+\.\d+/${1}'$DYVER'.0.0/;' Xcode/SDL/SDL.xcodeproj/project.pbxproj
+    fi
+fi
+
+perl -w -pi -e 's/\A(SDL_MAJOR_VERSION=)\d+/${1}'$MAJOR'/;' configure.ac
+perl -w -pi -e 's/\A(SDL_MINOR_VERSION=)\d+/${1}'$MINOR'/;' configure.ac
+perl -w -pi -e 's/\A(SDL_MICRO_VERSION=)\d+/${1}'$PATCH'/;' configure.ac
+
+perl -w -pi -e 's/\A(set\(SDL_MAJOR_VERSION\s+)\d+/${1}'$MAJOR'/;' CMakeLists.txt
+perl -w -pi -e 's/\A(set\(SDL_MINOR_VERSION\s+)\d+/${1}'$MINOR'/;' CMakeLists.txt
+perl -w -pi -e 's/\A(set\(SDL_MICRO_VERSION\s+)\d+/${1}'$PATCH'/;' CMakeLists.txt
+
+perl -w -pi -e 's/\A(.* SDL_MAJOR_VERSION = )\d+/${1}'$MAJOR'/;' android-project/app/src/main/java/org/libsdl/app/SDLActivity.java
+perl -w -pi -e 's/\A(.* SDL_MINOR_VERSION = )\d+/${1}'$MINOR'/;' android-project/app/src/main/java/org/libsdl/app/SDLActivity.java
+perl -w -pi -e 's/\A(.* SDL_MICRO_VERSION = )\d+/${1}'$PATCH'/;' android-project/app/src/main/java/org/libsdl/app/SDLActivity.java
+
+perl -w -pi -e 's/(\#define SDL_MAJOR_VERSION\s+)\d+/${1}'$MAJOR'/;' include/SDL_version.h
+perl -w -pi -e 's/(\#define SDL_MINOR_VERSION\s+)\d+/${1}'$MINOR'/;' include/SDL_version.h
+perl -w -pi -e 's/(\#define SDL_PATCHLEVEL\s+)\d+/${1}'$PATCH'/;' include/SDL_version.h
+
+perl -w -pi -e 's/(FILEVERSION\s+)\d+,\d+,\d+/${1}'$MAJOR','$MINOR','$PATCH'/;' src/main/windows/version.rc
+perl -w -pi -e 's/(PRODUCTVERSION\s+)\d+,\d+,\d+/${1}'$MAJOR','$MINOR','$PATCH'/;' src/main/windows/version.rc
+perl -w -pi -e 's/(VALUE "FileVersion", ")\d+, \d+, \d+/${1}'$MAJOR', '$MINOR', '$PATCH'/;' src/main/windows/version.rc
+perl -w -pi -e 's/(VALUE "ProductVersion", ")\d+, \d+, \d+/${1}'$MAJOR', '$MINOR', '$PATCH'/;' src/main/windows/version.rc
+
+echo "Regenerating configure script with new version..."
+./autogen.sh |grep -v 'Now you are ready to run ./configure'
+
+echo "Running build-scripts/test-versioning.sh to verify changes..."
+./build-scripts/test-versioning.sh
+
+echo "All done."
+echo "Run 'git diff' and make sure this looks correct, before 'git commit'."
+
+exit 0
+

+ 31 - 1
build-scripts/updaterev.sh

@@ -6,10 +6,40 @@ outdir=`pwd`
 cd `dirname $0`
 cd `dirname $0`
 srcdir=..
 srcdir=..
 header=$outdir/include/SDL_revision.h
 header=$outdir/include/SDL_revision.h
+dist=
+vendor=
+
+while [ "$#" -gt 0 ]; do
+    case "$1" in
+        (--dist)
+            dist=yes
+            shift
+            ;;
+        (--vendor)
+            vendor="$2"
+            shift 2
+            ;;
+        (*)
+            echo "$0: Unknown option: $1" >&2
+            exit 2
+            ;;
+    esac
+done
 
 
 rev=`sh showrev.sh 2>/dev/null`
 rev=`sh showrev.sh 2>/dev/null`
 if [ "$rev" != "" ]; then
 if [ "$rev" != "" ]; then
-    echo "#define SDL_REVISION \"$rev\"" >"$header.new"
+    if [ -n "$dist" ]; then
+        echo "$rev" > "$outdir/VERSION.txt"
+    fi
+    echo "/* Generated by updaterev.sh, do not edit */" >"$header.new"
+    if [ -n "$vendor" ]; then
+        echo "#define SDL_VENDOR_INFO \"$vendor\"" >>"$header.new"
+    fi
+    echo "#ifdef SDL_VENDOR_INFO" >>"$header.new"
+    echo "#define SDL_REVISION \"SDL-$rev (\" SDL_VENDOR_INFO \")\"" >>"$header.new"
+    echo "#else" >>"$header.new"
+    echo "#define SDL_REVISION \"SDL-$rev\"" >>"$header.new"
+    echo "#endif" >>"$header.new"
     echo "#define SDL_REVISION_NUMBER 0" >>"$header.new"
     echo "#define SDL_REVISION_NUMBER 0" >>"$header.new"
     if diff $header $header.new >/dev/null 2>&1; then
     if diff $header $header.new >/dev/null 2>&1; then
         rm "$header.new"
         rm "$header.new"

+ 3 - 3
build-scripts/windows-buildbot-zipper.bat

@@ -16,9 +16,9 @@ mkdir zipper\SDL
 mkdir zipper\SDL\include
 mkdir zipper\SDL\include
 mkdir zipper\SDL\lib
 mkdir zipper\SDL\lib
 copy include\*.h include\
 copy include\*.h include\
-copy %2\%1\Release\SDL2.dll zipper\SDL\lib\
-copy %2\%1\Release\SDL2.lib zipper\SDL\lib\
-copy %2\%1\Release\SDL2main.lib zipper\SDL\lib\
+copy %2\%1\Release\SDL3.dll zipper\SDL\lib\
+copy %2\%1\Release\SDL3.lib zipper\SDL\lib\
+copy %2\%1\Release\SDL3main.lib zipper\SDL\lib\
 cd zipper
 cd zipper
 zip -9r ..\%3 SDL
 zip -9r ..\%3 SDL
 cd ..
 cd ..

+ 40 - 0
cmake/CheckCPUArchitecture.cmake

@@ -0,0 +1,40 @@
+include(CheckCSourceCompiles)
+include(CMakePushCheckState)
+
+function(_internal_check_cpu_architecture macro_check NAME VARIABLE)
+  cmake_push_check_state(RESET)
+  string(TOUPPER "${NAME}" UPPER_NAME)
+  set(CACHE_VARIABLE "CHECK_CPU_ARCHITECTURE_${UPPER_NAME}")
+  set(test_src "
+int main(int argc, char *argv[]) {
+#if ${macro_check}
+  return 0;
+#else
+  choke
+#endif
+}
+")
+  check_c_source_compiles("${test_src}" "${CACHE_VARIABLE}")
+  cmake_pop_check_state()
+  if(${CACHE_VARIABLE})
+    set(${VARIABLE} "TRUE" PARENT_SCOPE)
+  else()
+    set(${VARIABLE} "FALSE" PARENT_SCOPE)
+  endif()
+endfunction()
+
+function(check_cpu_architecture ARCH VARIABLE)
+  if(ARCH STREQUAL "x86")
+    _internal_check_cpu_architecture("defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__) ||defined( __i386) || defined(_M_IX86)" x86 ${VARIABLE})
+  elseif(ARCH STREQUAL "x64")
+    _internal_check_cpu_architecture("defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || defined(_M_X64) || defined(_M_AMD64)" x64 ${VARIABLE})
+  elseif(ARCH STREQUAL "arm32")
+    _internal_check_cpu_architecture("defined(__arm__) || defined(_M_ARM)" arm32 ${VARIABLE})
+  elseif(ARCH STREQUAL "arm64")
+    _internal_check_cpu_architecture("defined(__aarch64__) || defined(_M_ARM64)" arm64 ${VARIABLE})
+  else()
+    message(WARNING "Unknown CPU architectures (${ARCH}).")
+    set(${VARIABLE} FALSE)
+  endif()
+  set("${VARIABLE}" "${${VARIABLE}}" PARENT_SCOPE)
+endfunction()

+ 13 - 2
cmake/macros.cmake

@@ -92,11 +92,15 @@ macro(LISTTOSTRREV _LIST _OUTPUT)
   endforeach()
   endforeach()
 endmacro()
 endmacro()
 
 
-if(${CMAKE_VERSION} VERSION_LESS "3.16.0")
+if(CMAKE_VERSION VERSION_LESS 3.16.0 OR SDL3_SUBPROJECT)
+  # - CMake versions <3.16 do not support the OBJC language
+  # - When SDL is built as a subproject and when the main project does not enable OBJC,
+  #   CMake fails due to missing internal CMake variables (CMAKE_OBJC_COMPILE_OBJECT)
+  #   (reproduced with CMake 3.24.2)
   macro(CHECK_OBJC_SOURCE_COMPILES SOURCE VAR)
   macro(CHECK_OBJC_SOURCE_COMPILES SOURCE VAR)
     set(PREV_REQUIRED_DEFS "${CMAKE_REQUIRED_DEFINITIONS}")
     set(PREV_REQUIRED_DEFS "${CMAKE_REQUIRED_DEFINITIONS}")
     set(CMAKE_REQUIRED_DEFINITIONS "-x objective-c ${PREV_REQUIRED_DEFS}")
     set(CMAKE_REQUIRED_DEFINITIONS "-x objective-c ${PREV_REQUIRED_DEFS}")
-    CHECK_C_SOURCE_COMPILES(${SOURCE} ${VAR})
+    CHECK_C_SOURCE_COMPILES("${SOURCE}" ${VAR})
     set(CMAKE_REQUIRED_DEFINITIONS "${PREV_REQUIRED_DEFS}")
     set(CMAKE_REQUIRED_DEFINITIONS "${PREV_REQUIRED_DEFS}")
   endmacro()
   endmacro()
 else()
 else()
@@ -106,6 +110,13 @@ else()
   endif()
   endif()
 endif()
 endif()
 
 
+if(APPLE)
+  check_language(OBJC)
+  if(NOT CMAKE_OBJC_COMPILER)
+    message(WARNING "Cannot find working OBJC compiler.")
+  endif()
+endif()
+
 if(CMAKE_VERSION VERSION_LESS 3.13.0)
 if(CMAKE_VERSION VERSION_LESS 3.13.0)
   macro(target_link_directories _TARGET _SCOPE)
   macro(target_link_directories _TARGET _SCOPE)
     link_directories(${ARGN})
     link_directories(${ARGN})

Some files were not shown because too many files changed in this diff