The response has been limited to 50k tokens of the smallest files in the repo. You can remove this limitation by removing the max tokens filter.
├── .clang-format
├── .clang-tidy
├── .editorconfig
├── .github
    ├── PULL_REQUEST_TEMPLATE.md
    ├── actions
    │   ├── setup-gdk-desktop
    │   │   └── action.yml
    │   ├── setup-loongarch64-toolchain
    │   │   └── action.yml
    │   ├── setup-msvc-libusb
    │   │   └── action.yml
    │   ├── setup-ngage-sdk
    │   │   └── action.yml
    │   ├── setup-ninja
    │   │   └── action.yml
    │   └── setup-vita-gles
    │   │   └── action.yml
    ├── cmake
    │   └── CMakeLists.txt
    └── workflows
    │   ├── build.yml
    │   ├── create-test-plan.py
    │   ├── generic.yml
    │   └── release.yml
├── .gitignore
├── .wikiheaders-options
├── Android.mk
├── BUGS.txt
├── CMakeLists.txt
├── CREDITS.md
├── INSTALL.md
├── LICENSE.txt
├── README.md
├── VisualC-GDK
    ├── SDL.sln
    ├── SDL
    │   ├── SDL.vcxproj
    │   └── SDL.vcxproj.filters
    ├── SDL_test
    │   └── SDL_test.vcxproj
    ├── clean.sh
    ├── logos
    │   ├── Logo100x100.png
    │   ├── Logo150x150.png
    │   ├── Logo44x44.png
    │   ├── Logo480x480.png
    │   └── SplashScreenImage.png
    └── tests
    │   ├── testcontroller
    │       ├── PackageLayout.xml
    │       ├── testcontroller.vcxproj
    │       ├── testcontroller.vcxproj.filters
    │       ├── wingdk
    │       │   └── MicrosoftGame.config
    │       ├── xboxone
    │       │   └── MicrosoftGame.config
    │       └── xboxseries
    │       │   └── MicrosoftGame.config
    │   ├── testgdk
    │       ├── PackageLayout.xml
    │       ├── src
    │       │   └── testgdk.cpp
    │       ├── testgdk.vcxproj
    │       ├── testgdk.vcxproj.filters
    │       ├── wingdk
    │       │   └── MicrosoftGame.config
    │       ├── xboxone
    │       │   └── MicrosoftGame.config
    │       └── xboxseries
    │       │   └── MicrosoftGame.config
    │   └── testsprite
    │       ├── PackageLayout.xml
    │       ├── testsprite.vcxproj
    │       ├── testsprite.vcxproj.filters
    │       ├── wingdk
    │           └── MicrosoftGame.config
    │       ├── xboxone
    │           └── MicrosoftGame.config
    │       └── xboxseries
    │           └── MicrosoftGame.config
├── VisualC
    ├── SDL.sln
    ├── SDL
    │   ├── Directory.Build.props
    │   ├── SDL.vcxproj
    │   └── SDL.vcxproj.filters
    ├── SDL_test
    │   ├── Directory.Build.props
    │   └── SDL_test.vcxproj
    ├── VisualC
    │   └── examples
    │   │   ├── audio
    │   │       ├── 01-simple-playback
    │   │       │   └── 01-simple-playback.vcxproj
    │   │       ├── 02-simple-playback-callback
    │   │       │   └── 02-simple-playback-callback.vcxproj
    │   │       └── 03-load-wav
    │   │       │   └── 03-load-wav.vcxproj
    │   │   ├── camera
    │   │       └── 01-read-and-draw
    │   │       │   └── 01-read-and-draw.vcxproj
    │   │   ├── game
    │   │       └── 01-snake
    │   │       │   └── 01-snake.vcxproj
    │   │   ├── pen
    │   │       └── 01-drawing-lines
    │   │       │   └── 01-drawing-lines.vcxproj
    │   │   └── renderer
    │   │       ├── 01-clear
    │   │           └── 01-clear.vcxproj
    │   │       ├── 02-primitives
    │   │           └── 02-primitives.vcxproj
    │   │       ├── 03-lines
    │   │           └── 03-lines.vcxproj
    │   │       ├── 04-points
    │   │           └── 04-points.vcxproj
    │   │       ├── 05-rectangles
    │   │           └── 05-rectangles.vcxproj
    │   │       ├── 06-textures
    │   │           └── 06-textures.vcxproj
    │   │       ├── 07-streaming-textures
    │   │           └── 07-streaming-textures.vcxproj
    │   │       ├── 08-rotating-textures
    │   │           └── 08-rotating-textures.vcxproj
    │   │       ├── 09-scaling-textures
    │   │           └── 09-scaling-textures.vcxproj
    │   │       ├── 10-geometry
    │   │           └── 10-geometry.vcxproj
    │   │       ├── 11-color-mods
    │   │           └── 11-color-mods.vcxproj
    │   │       ├── 14-viewport
    │   │           └── 14-viewport.vcxproj
    │   │       ├── 15-cliprect
    │   │           └── 15-cliprect.vcxproj
    │   │       ├── 17-read-pixels
    │   │           └── 17-read-pixels.vcxproj
    │   │       └── 18-debug-text
    │   │           └── 18-debug-text.vcxproj
    ├── clean.sh
    ├── examples
    │   ├── Directory.Build.props
    │   ├── asyncio
    │   │   └── 01-load-bitmaps
    │   │   │   └── 01-load-bitmaps.vcxproj
    │   ├── audio
    │   │   ├── 01-simple-playback
    │   │   │   └── 01-simple-playback.vcxproj
    │   │   ├── 02-simple-playback-callback
    │   │   │   └── 02-simple-playback-callback.vcxproj
    │   │   ├── 03-load-wav
    │   │   │   └── 03-load-wav.vcxproj
    │   │   └── 04-multiple-streams
    │   │   │   └── 04-multiple-streams.vcxproj
    │   ├── camera
    │   │   └── 01-read-and-draw
    │   │   │   └── 01-read-and-draw.vcxproj
    │   ├── demo
    │   │   ├── 01-snake
    │   │   │   └── 01-snake.vcxproj
    │   │   ├── 02-woodeneye-008
    │   │   │   └── 02-woodeneye-008.vcxproj
    │   │   ├── 03-infinite-monkeys
    │   │   │   └── 03-infinite-monkeys.vcxproj
    │   │   └── 04-bytepusher
    │   │   │   └── 04-bytepusher.vcxproj
    │   ├── generate.py
    │   ├── input
    │   │   ├── 01-joystick-polling
    │   │   │   └── 01-joystick-polling.vcxproj
    │   │   └── 02-joystick-events
    │   │   │   └── 02-joystick-events.vcxproj
    │   ├── pen
    │   │   └── 01-drawing-lines
    │   │   │   └── 01-drawing-lines.vcxproj
    │   └── renderer
    │   │   ├── 01-clear
    │   │       └── 01-clear.vcxproj
    │   │   ├── 02-primitives
    │   │       └── 02-primitives.vcxproj
    │   │   ├── 03-lines
    │   │       └── 03-lines.vcxproj
    │   │   ├── 04-points
    │   │       └── 04-points.vcxproj
    │   │   ├── 05-rectangles
    │   │       └── 05-rectangles.vcxproj
    │   │   ├── 06-textures
    │   │       └── 06-textures.vcxproj
    │   │   ├── 07-streaming-textures
    │   │       └── 07-streaming-textures.vcxproj
    │   │   ├── 08-rotating-textures
    │   │       └── 08-rotating-textures.vcxproj
    │   │   ├── 09-scaling-textures
    │   │       └── 09-scaling-textures.vcxproj
    │   │   ├── 10-geometry
    │   │       └── 10-geometry.vcxproj
    │   │   ├── 11-color-mods
    │   │       └── 11-color-mods.vcxproj
    │   │   ├── 14-viewport
    │   │       └── 14-viewport.vcxproj
    │   │   ├── 15-cliprect
    │   │       └── 15-cliprect.vcxproj
    │   │   ├── 17-read-pixels
    │   │       └── 17-read-pixels.vcxproj
    │   │   ├── 18-debug-text
    │   │       └── 18-debug-text.vcxproj
    │   │   └── 19-affine-textures
    │   │       └── 19-affine-textures.vcxproj
    └── tests
    │   ├── checkkeys
    │       └── checkkeys.vcxproj
    │   ├── loopwave
    │       └── loopwave.vcxproj
    │   ├── testatomic
    │       └── testatomic.vcxproj
    │   ├── testautomation
    │       └── testautomation.vcxproj
    │   ├── testcontroller
    │       └── testcontroller.vcxproj
    │   ├── testdialog
    │       └── testdialog.vcxproj
    │   ├── testdraw
    │       └── testdraw.vcxproj
    │   ├── testfile
    │       └── testfile.vcxproj
    │   ├── testgl
    │       └── testgl.vcxproj
    │   ├── testgles2
    │       └── testgles2.vcxproj
    │   ├── testoverlay
    │       └── testoverlay.vcxproj
    │   ├── testpen
    │       └── testpen.vcxproj
    │   ├── testplatform
    │       └── testplatform.vcxproj
    │   ├── testpower
    │       └── testpower.vcxproj
    │   ├── testrendertarget
    │       └── testrendertarget.vcxproj
    │   ├── testrumble
    │       └── testrumble.vcxproj
    │   ├── testscale
    │       └── testscale.vcxproj
    │   ├── testsensor
    │       └── testsensor.vcxproj
    │   ├── testshape
    │       └── testshape.vcxproj
    │   ├── testsprite
    │       └── testsprite.vcxproj
    │   ├── testsurround
    │       └── testsurround.vcxproj
    │   ├── testvulkan
    │       └── testvulkan.vcxproj
    │   ├── testwm
    │       └── testwm.vcxproj
    │   └── testyuv
    │       └── testyuv.vcxproj
├── WhatsNew.txt
├── Xcode
    ├── SDL
    │   ├── Info-Framework.plist
    │   ├── SDL.xcodeproj
    │   │   └── project.pbxproj
    │   ├── SDL3
    │   │   └── Info.plist
    │   ├── config.xcconfig
    │   └── pkg-support
    │   │   ├── SDL.info
    │   │   ├── build.xcconfig
    │   │   ├── resources
    │   │       ├── CMake
    │   │       │   ├── SDL3Config.cmake
    │   │       │   └── SDL3ConfigVersion.cmake
    │   │       ├── INSTALL.md
    │   │       ├── SDL_DS_Store
    │   │       └── framework
    │   │       │   └── INSTALL.md
    │   │   ├── sdl_logo.pdf
    │   │   └── share
    │   │       └── cmake
    │   │           └── SDL3
    │   │               ├── SDL3Config.cmake
    │   │               └── SDL3ConfigVersion.cmake
    ├── SDLTest
    │   ├── SDLTest.xcodeproj
    │   │   └── project.pbxproj
    │   └── config.xcconfig
    └── XcodeDocSet
    │   └── Doxyfile
├── android-project
    ├── app
    │   ├── build.gradle
    │   ├── jni
    │   │   ├── Android.mk
    │   │   ├── Application.mk
    │   │   ├── CMakeLists.txt
    │   │   └── src
    │   │   │   ├── Android.mk
    │   │   │   ├── CMakeLists.txt
    │   │   │   └── YourSourceHere.c
    │   ├── proguard-rules.pro
    │   └── src
    │   │   └── main
    │   │       ├── AndroidManifest.xml
    │   │       ├── java
    │   │           └── org
    │   │           │   └── libsdl
    │   │           │       └── app
    │   │           │           ├── HIDDevice.java
    │   │           │           ├── HIDDeviceBLESteamController.java
    │   │           │           ├── HIDDeviceManager.java
    │   │           │           ├── HIDDeviceUSB.java
    │   │           │           ├── SDL.java
    │   │           │           ├── SDLActivity.java
    │   │           │           ├── SDLAudioManager.java
    │   │           │           ├── SDLControllerManager.java
    │   │           │           ├── SDLDummyEdit.java
    │   │           │           ├── SDLInputConnection.java
    │   │           │           └── SDLSurface.java
    │   │       └── res
    │   │           ├── mipmap-hdpi
    │   │               └── ic_launcher.png
    │   │           ├── mipmap-mdpi
    │   │               └── ic_launcher.png
    │   │           ├── mipmap-xhdpi
    │   │               └── ic_launcher.png
    │   │           ├── mipmap-xxhdpi
    │   │               └── ic_launcher.png
    │   │           ├── mipmap-xxxhdpi
    │   │               └── ic_launcher.png
    │   │           └── values
    │   │               ├── colors.xml
    │   │               ├── strings.xml
    │   │               └── styles.xml
    ├── build.gradle
    ├── gradle.properties
    ├── gradle
    │   └── wrapper
    │   │   ├── gradle-wrapper.jar
    │   │   └── gradle-wrapper.properties
    ├── gradlew
    ├── gradlew.bat
    └── settings.gradle
├── build-scripts
    ├── SDL_migration.cocci
    ├── add-source-to-projects.pl
    ├── androidbuildlibs.sh
    ├── build-release.py
    ├── build-web-examples.pl
    ├── casefolding.txt
    ├── check_android_jni.py
    ├── check_stdlib_usage.py
    ├── clang-format-src.sh
    ├── cmake-toolchain-mingw64-i686.cmake
    ├── cmake-toolchain-mingw64-x86_64.cmake
    ├── cmake-toolchain-qnx-aarch64le.cmake
    ├── cmake-toolchain-qnx-x86_64.cmake
    ├── codechecker-buildbot.sh
    ├── create-android-project.py
    ├── create-release.py
    ├── fnsince.pl
    ├── gen_audio_channel_conversion.c
    ├── git-pre-push-hook.pl
    ├── makecasefoldhashtable.pl
    ├── mkinstalldirs
    ├── pkg-support
    │   ├── android
    │   │   ├── INSTALL.md.in
    │   │   └── aar
    │   │   │   ├── __main__.py.in
    │   │   │   ├── cmake
    │   │   │       ├── SDL3Config.cmake
    │   │   │       └── SDL3ConfigVersion.cmake.in
    │   │   │   └── description.json.in
    │   ├── mingw
    │   │   ├── INSTALL.md.in
    │   │   ├── Makefile
    │   │   └── cmake
    │   │   │   ├── SDL3Config.cmake
    │   │   │   └── SDL3ConfigVersion.cmake
    │   ├── msvc
    │   │   ├── Directory.Build.props
    │   │   ├── INSTALL.md.in
    │   │   ├── arm64
    │   │   │   └── INSTALL.md.in
    │   │   ├── cmake
    │   │   │   ├── SDL3Config.cmake.in
    │   │   │   └── SDL3ConfigVersion.cmake.in
    │   │   ├── x64
    │   │   │   └── INSTALL.md.in
    │   │   └── x86
    │   │   │   └── INSTALL.md.in
    │   └── source
    │   │   ├── SDL_revision.h.cmake.in
    │   │   └── SDL_revision.h.in
    ├── release-info.json
    ├── rename_api.py
    ├── rename_headers.py
    ├── rename_macros.py
    ├── rename_symbols.py
    ├── rename_types.py
    ├── setup-gdk-desktop.py
    ├── showrev.sh
    ├── strip_fPIC.sh
    ├── test-versioning.sh
    ├── update-copyright.sh
    ├── update-version.sh
    ├── updaterev.sh
    └── wikiheaders.pl
├── cmake
    ├── 3rdparty.cmake
    ├── CPackProjectConfig.cmake.in
    ├── FindFFmpeg.cmake
    ├── FindLibUSB.cmake
    ├── GetGitRevisionDescription.cmake
    ├── GetGitRevisionDescription.cmake.in
    ├── PkgConfigHelper.cmake
    ├── PreseedEmscriptenCache.cmake
    ├── PreseedMSVCCache.cmake
    ├── PreseedNokiaNGageCache.cmake
    ├── SDL3Config.cmake.in
    ├── SDL3jarTargets.cmake.in
    ├── android
    │   ├── FindSdlAndroid.cmake
    │   ├── FindSdlAndroidBuildTools.cmake
    │   ├── FindSdlAndroidPlatform.cmake
    │   ├── SdlAndroidFunctions.cmake
    │   └── SdlAndroidScript.cmake
    ├── cmake_uninstall.cmake.in
    ├── macros.cmake
    ├── sdl3.pc.in
    ├── sdlchecks.cmake
    ├── sdlcommands.cmake
    ├── sdlcompilers.cmake
    ├── sdlcpu.cmake
    ├── sdlmanpages.cmake
    ├── sdlplatform.cmake
    ├── test
    │   ├── CMakeLists.txt
    │   ├── inc_sdl_slash.c
    │   ├── main.swift
    │   ├── main_cli.c
    │   ├── main_gui.c
    │   ├── main_lib.c
    │   ├── sdltest.c
    │   ├── swift
    │   │   ├── module.modulemap
    │   │   └── shim.h
    │   └── test_pkgconfig.sh
    └── xxd.py
├── docs
    ├── INTRO-androidstudio.md
    ├── INTRO-cmake.md
    ├── INTRO-emscripten.md
    ├── INTRO-mingw.md
    ├── INTRO-visualstudio.md
    ├── INTRO-xcode.md
    ├── README-android.md
    ├── README-bsd.md
    ├── README-cmake.md
    ├── README-contributing.md
    ├── README-documentation-rules.md
    ├── README-dynapi.md
    ├── README-emscripten.md
    ├── README-gdk.md
    ├── README-haiku.md
    ├── README-highdpi.md
    ├── README-ios.md
    ├── README-kmsbsd.md
    ├── README-linux.md
    ├── README-macos.md
    ├── README-main-functions.md
    ├── README-migration.md
    ├── README-n3ds.md
    ├── README-ngage.md
    ├── README-platforms.md
    ├── README-porting.md
    ├── README-ps2.md
    ├── README-ps4.md
    ├── README-ps5.md
    ├── README-psp.md
    ├── README-riscos.md
    ├── README-steamos.md
    ├── README-strings.md
    ├── README-switch.md
    ├── README-touch.md
    ├── README-versions.md
    ├── README-vita.md
    ├── README-wayland.md
    ├── README-windows.md
    ├── README.md
    ├── doxyfile
    ├── hello.c
    └── release_checklist.md
├── examples
    ├── CMakeLists.txt
    ├── README.md
    ├── asyncio
    │   ├── 01-load-bitmaps
    │   │   ├── README.txt
    │   │   ├── load-bitmaps.c
    │   │   └── thumbnail.png
    │   └── description.txt
    ├── audio
    │   ├── 01-simple-playback
    │   │   ├── README.txt
    │   │   └── simple-playback.c
    │   ├── 02-simple-playback-callback
    │   │   ├── README.txt
    │   │   └── simple-playback-callback.c
    │   ├── 03-load-wav
    │   │   ├── README.txt
    │   │   └── load-wav.c
    │   ├── 04-multiple-streams
    │   │   ├── README.txt
    │   │   └── multiple-streams.c
    │   ├── 05-planar-data
    │   │   ├── README.txt
    │   │   ├── onmouseover.webp
    │   │   ├── planar-data.c
    │   │   └── thumbnail.png
    │   ├── onmouseover.webp
    │   └── thumbnail.png
    ├── camera
    │   └── 01-read-and-draw
    │   │   ├── README.txt
    │   │   ├── onmouseover.webp
    │   │   ├── read-and-draw.c
    │   │   └── thumbnail.png
    ├── categories.txt
    ├── demo
    │   ├── 01-snake
    │   │   ├── README.txt
    │   │   ├── onmouseover.webp
    │   │   ├── snake.c
    │   │   └── thumbnail.png
    │   ├── 02-woodeneye-008
    │   │   ├── README.txt
    │   │   ├── onmouseover.webp
    │   │   ├── thumbnail.png
    │   │   └── woodeneye-008.c
    │   ├── 03-infinite-monkeys
    │   │   ├── README.txt
    │   │   ├── infinite-monkeys.c
    │   │   ├── onmouseover.webp
    │   │   └── thumbnail.png
    │   ├── 04-bytepusher
    │   │   ├── README.txt
    │   │   ├── bytepusher.c
    │   │   ├── onmouseover.webp
    │   │   └── thumbnail.png
    │   └── description.txt
    ├── highlight-plugin.lua
    ├── input
    │   ├── 01-joystick-polling
    │   │   ├── README.txt
    │   │   ├── joystick-polling.c
    │   │   ├── onmouseover.webp
    │   │   └── thumbnail.png
    │   └── 02-joystick-events
    │   │   ├── README.txt
    │   │   ├── joystick-events.c
    │   │   ├── onmouseover.webp
    │   │   └── thumbnail.png
    ├── pen
    │   └── 01-drawing-lines
    │   │   ├── README.txt
    │   │   ├── drawing-lines.c
    │   │   ├── onmouseover.webp
    │   │   └── thumbnail.png
    ├── renderer
    │   ├── 01-clear
    │   │   ├── README.txt
    │   │   ├── clear.c
    │   │   ├── onmouseover.webp
    │   │   └── thumbnail.png
    │   ├── 02-primitives
    │   │   ├── README.txt
    │   │   ├── primitives.c
    │   │   └── thumbnail.png
    │   ├── 03-lines
    │   │   ├── README.txt
    │   │   ├── lines.c
    │   │   ├── onmouseover.webp
    │   │   └── thumbnail.png
    │   ├── 04-points
    │   │   ├── README.txt
    │   │   ├── onmouseover.webp
    │   │   ├── points.c
    │   │   └── thumbnail.png
    │   ├── 05-rectangles
    │   │   ├── README.txt
    │   │   ├── onmouseover.webp
    │   │   ├── rectangles.c
    │   │   └── thumbnail.png
    │   ├── 06-textures
    │   │   ├── README.txt
    │   │   ├── onmouseover.webp
    │   │   ├── textures.c
    │   │   └── thumbnail.png
    │   ├── 07-streaming-textures
    │   │   ├── README.txt
    │   │   ├── onmouseover.webp
    │   │   ├── streaming-textures.c
    │   │   └── thumbnail.png
    │   ├── 08-rotating-textures
    │   │   ├── README.txt
    │   │   ├── onmouseover.webp
    │   │   ├── rotating-textures.c
    │   │   └── thumbnail.png
    │   ├── 09-scaling-textures
    │   │   ├── README.txt
    │   │   ├── onmouseover.webp
    │   │   ├── scaling-textures.c
    │   │   └── thumbnail.png
    │   ├── 10-geometry
    │   │   ├── README.txt
    │   │   ├── geometry.c
    │   │   ├── onmouseover.webp
    │   │   └── thumbnail.png
    │   ├── 11-color-mods
    │   │   ├── README.txt
    │   │   ├── color-mods.c
    │   │   ├── onmouseover.webp
    │   │   └── thumbnail.png
    │   ├── 14-viewport
    │   │   ├── README.txt
    │   │   ├── thumbnail.png
    │   │   └── viewport.c
    │   ├── 15-cliprect
    │   │   ├── README.txt
    │   │   ├── cliprect.c
    │   │   ├── onmouseover.webp
    │   │   └── thumbnail.png
    │   ├── 17-read-pixels
    │   │   ├── README.txt
    │   │   ├── onmouseover.webp
    │   │   ├── read-pixels.c
    │   │   └── thumbnail.png
    │   ├── 18-debug-text
    │   │   ├── README.txt
    │   │   ├── debug-text.c
    │   │   └── thumbnail.png
    │   └── 19-affine-textures
    │   │   ├── README.txt
    │   │   ├── affine-textures.c
    │   │   ├── onmouseover.webp
    │   │   └── thumbnail.png
    ├── template-category.html
    ├── template-homepage.html
    ├── template-placeholder.png
    ├── template.c
    ├── template.css
    └── template.html
├── include
    ├── SDL3
    │   ├── SDL.h
    │   ├── SDL_assert.h
    │   ├── SDL_asyncio.h
    │   ├── SDL_atomic.h
    │   ├── SDL_audio.h
    │   ├── SDL_begin_code.h
    │   ├── SDL_bits.h
    │   ├── SDL_blendmode.h
    │   ├── SDL_camera.h
    │   ├── SDL_clipboard.h
    │   ├── SDL_close_code.h
    │   ├── SDL_copying.h
    │   ├── SDL_cpuinfo.h
    │   ├── SDL_dialog.h
    │   ├── SDL_egl.h
    │   ├── SDL_endian.h
    │   ├── SDL_error.h
    │   ├── SDL_events.h
    │   ├── SDL_filesystem.h
    │   ├── SDL_gamepad.h
    │   ├── SDL_gpu.h
    │   ├── SDL_guid.h
    │   ├── SDL_haptic.h
    │   ├── SDL_hidapi.h
    │   ├── SDL_hints.h
    │   ├── SDL_init.h
    │   ├── SDL_intrin.h
    │   ├── SDL_iostream.h
    │   ├── SDL_joystick.h
    │   ├── SDL_keyboard.h
    │   ├── SDL_keycode.h
    │   ├── SDL_loadso.h
    │   ├── SDL_locale.h
    │   ├── SDL_log.h
    │   ├── SDL_main.h
    │   ├── SDL_main_impl.h
    │   ├── SDL_messagebox.h
    │   ├── SDL_metal.h
    │   ├── SDL_misc.h
    │   ├── SDL_mouse.h
    │   ├── SDL_mutex.h
    │   ├── SDL_oldnames.h
    │   ├── SDL_opengl.h
    │   ├── SDL_opengl_glext.h
    │   ├── SDL_opengles.h
    │   ├── SDL_opengles2.h
    │   ├── SDL_opengles2_gl2.h
    │   ├── SDL_opengles2_gl2ext.h
    │   ├── SDL_opengles2_gl2platform.h
    │   ├── SDL_opengles2_khrplatform.h
    │   ├── SDL_pen.h
    │   ├── SDL_pixels.h
    │   ├── SDL_platform.h
    │   ├── SDL_platform_defines.h
    │   ├── SDL_power.h
    │   ├── SDL_process.h
    │   ├── SDL_properties.h
    │   ├── SDL_rect.h
    │   ├── SDL_render.h
    │   ├── SDL_revision.h
    │   ├── SDL_scancode.h
    │   ├── SDL_sensor.h
    │   ├── SDL_stdinc.h
    │   ├── SDL_storage.h
    │   ├── SDL_surface.h
    │   ├── SDL_system.h
    │   ├── SDL_test.h
    │   ├── SDL_test_assert.h
    │   ├── SDL_test_common.h
    │   ├── SDL_test_compare.h
    │   ├── SDL_test_crc32.h
    │   ├── SDL_test_font.h
    │   ├── SDL_test_fuzzer.h
    │   ├── SDL_test_harness.h
    │   ├── SDL_test_log.h
    │   ├── SDL_test_md5.h
    │   ├── SDL_test_memory.h
    │   ├── SDL_thread.h
    │   ├── SDL_time.h
    │   ├── SDL_timer.h
    │   ├── SDL_touch.h
    │   ├── SDL_tray.h
    │   ├── SDL_version.h
    │   ├── SDL_video.h
    │   └── SDL_vulkan.h
    └── build_config
    │   ├── SDL_build_config.h
    │   ├── SDL_build_config.h.cmake
    │   ├── SDL_build_config_android.h
    │   ├── SDL_build_config_ios.h
    │   ├── SDL_build_config_macos.h
    │   ├── SDL_build_config_minimal.h
    │   ├── SDL_build_config_windows.h
    │   ├── SDL_build_config_wingdk.h
    │   ├── SDL_build_config_xbox.h
    │   └── SDL_revision.h.cmake
├── src
    ├── SDL.c
    ├── SDL_assert.c
    ├── SDL_assert_c.h
    ├── SDL_error.c
    ├── SDL_error_c.h
    ├── SDL_guid.c
    ├── SDL_hashtable.c
    ├── SDL_hashtable.h
    ├── SDL_hints.c
    ├── SDL_hints_c.h
    ├── SDL_internal.h
    ├── SDL_list.c
    ├── SDL_list.h
    ├── SDL_log.c
    ├── SDL_log_c.h
    ├── SDL_properties.c
    ├── SDL_properties_c.h
    ├── SDL_utils.c
    ├── SDL_utils_c.h
    ├── atomic
    │   ├── SDL_atomic.c
    │   └── SDL_spinlock.c
    ├── audio
    │   ├── SDL_audio.c
    │   ├── SDL_audio_c.h
    │   ├── SDL_audio_channel_converters.h
    │   ├── SDL_audiocvt.c
    │   ├── SDL_audiodev.c
    │   ├── SDL_audiodev_c.h
    │   ├── SDL_audioqueue.c
    │   ├── SDL_audioqueue.h
    │   ├── SDL_audioresample.c
    │   ├── SDL_audioresample.h
    │   ├── SDL_audiotypecvt.c
    │   ├── SDL_mixer.c
    │   ├── SDL_sysaudio.h
    │   ├── SDL_wave.c
    │   ├── SDL_wave.h
    │   ├── aaudio
    │   │   ├── SDL_aaudio.c
    │   │   ├── SDL_aaudio.h
    │   │   └── SDL_aaudiofuncs.h
    │   ├── alsa
    │   │   ├── SDL_alsa_audio.c
    │   │   └── SDL_alsa_audio.h
    │   ├── coreaudio
    │   │   ├── SDL_coreaudio.h
    │   │   └── SDL_coreaudio.m
    │   ├── directsound
    │   │   ├── SDL_directsound.c
    │   │   └── SDL_directsound.h
    │   ├── disk
    │   │   ├── SDL_diskaudio.c
    │   │   └── SDL_diskaudio.h
    │   ├── dsp
    │   │   ├── SDL_dspaudio.c
    │   │   └── SDL_dspaudio.h
    │   ├── dummy
    │   │   ├── SDL_dummyaudio.c
    │   │   └── SDL_dummyaudio.h
    │   ├── emscripten
    │   │   ├── SDL_emscriptenaudio.c
    │   │   └── SDL_emscriptenaudio.h
    │   ├── haiku
    │   │   ├── SDL_haikuaudio.cc
    │   │   └── SDL_haikuaudio.h
    │   ├── jack
    │   │   ├── SDL_jackaudio.c
    │   │   └── SDL_jackaudio.h
    │   ├── n3ds
    │   │   ├── SDL_n3dsaudio.c
    │   │   └── SDL_n3dsaudio.h
    │   ├── netbsd
    │   │   ├── SDL_netbsdaudio.c
    │   │   └── SDL_netbsdaudio.h
    │   ├── ngage
    │   │   ├── SDL_ngageaudio.c
    │   │   ├── SDL_ngageaudio.cpp
    │   │   ├── SDL_ngageaudio.h
    │   │   └── SDL_ngageaudio.hpp
    │   ├── openslES
    │   │   ├── SDL_openslES.c
    │   │   └── SDL_openslES.h
    │   ├── pipewire
    │   │   ├── SDL_pipewire.c
    │   │   └── SDL_pipewire.h
    │   ├── ps2
    │   │   ├── SDL_ps2audio.c
    │   │   └── SDL_ps2audio.h
    │   ├── psp
    │   │   ├── SDL_pspaudio.c
    │   │   └── SDL_pspaudio.h
    │   ├── pulseaudio
    │   │   ├── SDL_pulseaudio.c
    │   │   └── SDL_pulseaudio.h
    │   ├── qnx
    │   │   ├── SDL_qsa_audio.c
    │   │   └── SDL_qsa_audio.h
    │   ├── sndio
    │   │   ├── SDL_sndioaudio.c
    │   │   └── SDL_sndioaudio.h
    │   ├── vita
    │   │   ├── SDL_vitaaudio.c
    │   │   └── SDL_vitaaudio.h
    │   └── wasapi
    │   │   ├── SDL_wasapi.c
    │   │   └── SDL_wasapi.h
    ├── camera
    │   ├── SDL_camera.c
    │   ├── SDL_camera_c.h
    │   ├── SDL_syscamera.h
    │   ├── android
    │   │   └── SDL_camera_android.c
    │   ├── coremedia
    │   │   └── SDL_camera_coremedia.m
    │   ├── dummy
    │   │   └── SDL_camera_dummy.c
    │   ├── emscripten
    │   │   └── SDL_camera_emscripten.c
    │   ├── mediafoundation
    │   │   └── SDL_camera_mediafoundation.c
    │   ├── pipewire
    │   │   └── SDL_camera_pipewire.c
    │   ├── v4l2
    │   │   └── SDL_camera_v4l2.c
    │   └── vita
    │   │   └── SDL_camera_vita.c
    ├── core
    │   ├── SDL_core_unsupported.c
    │   ├── android
    │   │   ├── SDL_android.c
    │   │   └── SDL_android.h
    │   ├── freebsd
    │   │   ├── SDL_evdev_kbd_default_keyaccmap.h
    │   │   └── SDL_evdev_kbd_freebsd.c
    │   ├── gdk
    │   │   ├── SDL_gdk.cpp
    │   │   └── SDL_gdk.h
    │   ├── haiku
    │   │   ├── SDL_BApp.h
    │   │   ├── SDL_BeApp.cc
    │   │   └── SDL_BeApp.h
    │   ├── linux
    │   │   ├── SDL_dbus.c
    │   │   ├── SDL_dbus.h
    │   │   ├── SDL_evdev.c
    │   │   ├── SDL_evdev.h
    │   │   ├── SDL_evdev_capabilities.c
    │   │   ├── SDL_evdev_capabilities.h
    │   │   ├── SDL_evdev_kbd.c
    │   │   ├── SDL_evdev_kbd.h
    │   │   ├── SDL_evdev_kbd_default_accents.h
    │   │   ├── SDL_evdev_kbd_default_keymap.h
    │   │   ├── SDL_fcitx.c
    │   │   ├── SDL_fcitx.h
    │   │   ├── SDL_ibus.c
    │   │   ├── SDL_ibus.h
    │   │   ├── SDL_ime.c
    │   │   ├── SDL_ime.h
    │   │   ├── SDL_progressbar.c
    │   │   ├── SDL_progressbar.h
    │   │   ├── SDL_system_theme.c
    │   │   ├── SDL_system_theme.h
    │   │   ├── SDL_threadprio.c
    │   │   ├── SDL_udev.c
    │   │   └── SDL_udev.h
    │   ├── ngage
    │   │   ├── SDL_ngage.cpp
    │   │   └── SDL_ngage.h
    │   ├── openbsd
    │   │   ├── SDL_wscons.h
    │   │   ├── SDL_wscons_kbd.c
    │   │   └── SDL_wscons_mouse.c
    │   ├── unix
    │   │   ├── SDL_appid.c
    │   │   ├── SDL_appid.h
    │   │   ├── SDL_poll.c
    │   │   └── SDL_poll.h
    │   └── windows
    │   │   ├── SDL_directx.h
    │   │   ├── SDL_gameinput.cpp
    │   │   ├── SDL_gameinput.h
    │   │   ├── SDL_hid.c
    │   │   ├── SDL_hid.h
    │   │   ├── SDL_immdevice.c
    │   │   ├── SDL_immdevice.h
    │   │   ├── SDL_windows.c
    │   │   ├── SDL_windows.h
    │   │   ├── SDL_xinput.c
    │   │   ├── SDL_xinput.h
    │   │   ├── pch.c
    │   │   ├── pch_cpp.cpp
    │   │   └── version.rc
    ├── cpuinfo
    │   ├── SDL_cpuinfo.c
    │   └── SDL_cpuinfo_c.h
    ├── dialog
    │   ├── SDL_dialog.c
    │   ├── SDL_dialog.h
    │   ├── SDL_dialog_utils.c
    │   ├── SDL_dialog_utils.h
    │   ├── android
    │   │   └── SDL_androiddialog.c
    │   ├── cocoa
    │   │   └── SDL_cocoadialog.m
    │   ├── dummy
    │   │   └── SDL_dummydialog.c
    │   ├── haiku
    │   │   └── SDL_haikudialog.cc
    │   ├── unix
    │   │   ├── SDL_portaldialog.c
    │   │   ├── SDL_portaldialog.h
    │   │   ├── SDL_unixdialog.c
    │   │   ├── SDL_zenitydialog.c
    │   │   └── SDL_zenitydialog.h
    │   └── windows
    │   │   └── SDL_windowsdialog.c
    ├── dynapi
    │   ├── SDL_dynapi.c
    │   ├── SDL_dynapi.h
    │   ├── SDL_dynapi.sym
    │   ├── SDL_dynapi_overrides.h
    │   ├── SDL_dynapi_procs.h
    │   ├── SDL_dynapi_unsupported.h
    │   └── gendynapi.py
    ├── events
    │   ├── SDL_categories.c
    │   ├── SDL_categories_c.h
    │   ├── SDL_clipboardevents.c
    │   ├── SDL_clipboardevents_c.h
    │   ├── SDL_displayevents.c
    │   ├── SDL_displayevents_c.h
    │   ├── SDL_dropevents.c
    │   ├── SDL_dropevents_c.h
    │   ├── SDL_events.c
    │   ├── SDL_events_c.h
    │   ├── SDL_eventwatch.c
    │   ├── SDL_eventwatch_c.h
    │   ├── SDL_keyboard.c
    │   ├── SDL_keyboard_c.h
    │   ├── SDL_keymap.c
    │   ├── SDL_keymap_c.h
    │   ├── SDL_keysym_to_keycode.c
    │   ├── SDL_keysym_to_keycode_c.h
    │   ├── SDL_keysym_to_scancode.c
    │   ├── SDL_keysym_to_scancode_c.h
    │   ├── SDL_mouse.c
    │   ├── SDL_mouse_c.h
    │   ├── SDL_pen.c
    │   ├── SDL_pen_c.h
    │   ├── SDL_quit.c
    │   ├── SDL_scancode_tables.c
    │   ├── SDL_scancode_tables_c.h
    │   ├── SDL_touch.c
    │   ├── SDL_touch_c.h
    │   ├── SDL_windowevents.c
    │   ├── SDL_windowevents_c.h
    │   ├── blank_cursor.h
    │   ├── default_cursor.h
    │   ├── imKStoUCS.c
    │   ├── imKStoUCS.h
    │   ├── scancodes_darwin.h
    │   ├── scancodes_linux.h
    │   ├── scancodes_windows.h
    │   └── scancodes_xfree86.h
    ├── filesystem
    │   ├── SDL_filesystem.c
    │   ├── SDL_filesystem_c.h
    │   ├── SDL_sysfilesystem.h
    │   ├── android
    │   │   └── SDL_sysfilesystem.c
    │   ├── cocoa
    │   │   └── SDL_sysfilesystem.m
    │   ├── dummy
    │   │   ├── SDL_sysfilesystem.c
    │   │   └── SDL_sysfsops.c
    │   ├── emscripten
    │   │   └── SDL_sysfilesystem.c
    │   ├── gdk
    │   │   └── SDL_sysfilesystem.cpp
    │   ├── haiku
    │   │   └── SDL_sysfilesystem.cc
    │   ├── n3ds
    │   │   └── SDL_sysfilesystem.c
    │   ├── ngage
    │   │   ├── SDL_sysfilesystem.c
    │   │   └── SDL_sysfilesystem.cpp
    │   ├── posix
    │   │   └── SDL_sysfsops.c
    │   ├── ps2
    │   │   └── SDL_sysfilesystem.c
    │   ├── psp
    │   │   └── SDL_sysfilesystem.c
    │   ├── riscos
    │   │   └── SDL_sysfilesystem.c
    │   ├── unix
    │   │   └── SDL_sysfilesystem.c
    │   ├── vita
    │   │   └── SDL_sysfilesystem.c
    │   └── windows
    │   │   ├── SDL_sysfilesystem.c
    │   │   └── SDL_sysfsops.c
    ├── gpu
    │   ├── SDL_gpu.c
    │   ├── SDL_sysgpu.h
    │   ├── d3d12
    │   │   ├── D3D12_Blit.h
    │   │   ├── D3D_Blit.hlsl
    │   │   ├── SDL_gpu_d3d12.c
    │   │   ├── compile_shaders.bat
    │   │   └── compile_shaders_xbox.bat
    │   ├── metal
    │   │   ├── Metal_Blit.h
    │   │   ├── Metal_Blit.metal
    │   │   ├── SDL_gpu_metal.m
    │   │   └── compile_shaders.sh
    │   └── vulkan
    │   │   ├── SDL_gpu_vulkan.c
    │   │   └── SDL_gpu_vulkan_vkfuncs.h
    ├── haptic
    │   ├── SDL_haptic.c
    │   ├── SDL_haptic_c.h
    │   ├── SDL_syshaptic.h
    │   ├── android
    │   │   ├── SDL_syshaptic.c
    │   │   └── SDL_syshaptic_c.h
    │   ├── darwin
    │   │   ├── SDL_syshaptic.c
    │   │   └── SDL_syshaptic_c.h
    │   ├── dummy
    │   │   └── SDL_syshaptic.c
    │   ├── hidapi
    │   │   ├── SDL_hidapihaptic.c
    │   │   ├── SDL_hidapihaptic.h
    │   │   ├── SDL_hidapihaptic_c.h
    │   │   └── SDL_hidapihaptic_lg4ff.c
    │   ├── linux
    │   │   └── SDL_syshaptic.c
    │   └── windows
    │   │   ├── SDL_dinputhaptic.c
    │   │   ├── SDL_dinputhaptic_c.h
    │   │   ├── SDL_windowshaptic.c
    │   │   └── SDL_windowshaptic_c.h
    ├── hidapi
    │   ├── AUTHORS.txt
    │   ├── BUILD.autotools.md
    │   ├── BUILD.cmake.md
    │   ├── BUILD.md
    │   ├── CMakeLists.txt
    │   ├── HACKING.txt
    │   ├── LICENSE-bsd.txt
    │   ├── LICENSE-gpl3.txt
    │   ├── LICENSE-orig.txt
    │   ├── LICENSE.txt
    │   ├── Makefile.am
    │   ├── README.md
    │   ├── SDL_hidapi.c
    │   ├── SDL_hidapi_android.h
    │   ├── SDL_hidapi_c.h
    │   ├── SDL_hidapi_ios.h
    │   ├── SDL_hidapi_libusb.h
    │   ├── SDL_hidapi_linux.h
    │   ├── SDL_hidapi_mac.h
    │   ├── SDL_hidapi_netbsd.h
    │   ├── SDL_hidapi_steamxbox.h
    │   ├── SDL_hidapi_windows.h
    │   ├── VERSION
    │   ├── android
    │   │   ├── hid.cpp
    │   │   └── hid.h
    │   ├── bootstrap
    │   ├── configure.ac
    │   ├── dist
    │   │   └── hidapi.podspec
    │   ├── documentation
    │   │   ├── cmake-gui-drop-down.png
    │   │   └── cmake-gui-highlights.png
    │   ├── doxygen
    │   │   ├── Doxyfile
    │   │   └── main_page.md
    │   ├── hidapi
    │   │   └── hidapi.h
    │   ├── hidtest
    │   │   ├── CMakeLists.txt
    │   │   ├── Makefile.am
    │   │   └── test.c
    │   ├── ios
    │   │   └── hid.m
    │   ├── libusb
    │   │   ├── CMakeLists.txt
    │   │   ├── Makefile-manual
    │   │   ├── Makefile.am
    │   │   ├── Makefile.freebsd
    │   │   ├── Makefile.haiku
    │   │   ├── Makefile.linux
    │   │   ├── hid.c
    │   │   ├── hidapi_libusb.h
    │   │   ├── hidapi_thread_pthread.h
    │   │   └── hidapi_thread_sdl.h
    │   ├── linux
    │   │   ├── CMakeLists.txt
    │   │   ├── Makefile-manual
    │   │   ├── Makefile.am
    │   │   └── hid.c
    │   ├── m4
    │   │   ├── ax_pthread.m4
    │   │   └── pkg.m4
    │   ├── mac
    │   │   ├── CMakeLists.txt
    │   │   ├── Makefile-manual
    │   │   ├── Makefile.am
    │   │   ├── hid.c
    │   │   └── hidapi_darwin.h
    │   ├── meson.build
    │   ├── netbsd
    │   │   ├── CMakeLists.txt
    │   │   ├── README.md
    │   │   └── hid.c
    │   ├── pc
    │   │   ├── hidapi-hidraw.pc.in
    │   │   ├── hidapi-libusb.pc.in
    │   │   ├── hidapi-netbsd.pc.in
    │   │   └── hidapi.pc.in
    │   ├── src
    │   │   ├── CMakeLists.txt
    │   │   └── cmake
    │   │   │   └── hidapi-config.cmake.in
    │   ├── subprojects
    │   │   ├── README.md
    │   │   └── hidapi_build_cmake
    │   │   │   └── CMakeLists.txt
    │   ├── testgui
    │   │   ├── Makefile-manual
    │   │   ├── Makefile.am
    │   │   ├── Makefile.freebsd
    │   │   ├── Makefile.linux
    │   │   ├── Makefile.mac
    │   │   ├── Makefile.mingw
    │   │   ├── TestGUI.app.in
    │   │   │   └── Contents
    │   │   │   │   ├── Info.plist
    │   │   │   │   ├── PkgInfo
    │   │   │   │   └── Resources
    │   │   │   │       ├── English.lproj
    │   │   │   │           └── InfoPlist.strings
    │   │   │   │       └── Signal11.icns
    │   │   ├── copy_to_bundle.sh
    │   │   ├── mac_support.h
    │   │   ├── mac_support_cocoa.m
    │   │   ├── test.cpp
    │   │   ├── testgui.sln
    │   │   └── testgui.vcproj
    │   ├── udev
    │   │   └── 69-hid.rules
    │   └── windows
    │   │   ├── CMakeLists.txt
    │   │   ├── Makefile-manual
    │   │   ├── Makefile.am
    │   │   ├── Makefile.mingw
    │   │   ├── hid.c
    │   │   ├── hidapi.rc
    │   │   ├── hidapi.sln
    │   │   ├── hidapi.vcproj
    │   │   ├── hidapi.vcxproj
    │   │   ├── hidapi_cfgmgr32.h
    │   │   ├── hidapi_descriptor_reconstruct.c
    │   │   ├── hidapi_descriptor_reconstruct.h
    │   │   ├── hidapi_hidclass.h
    │   │   ├── hidapi_hidpi.h
    │   │   ├── hidapi_hidsdi.h
    │   │   ├── hidapi_winapi.h
    │   │   ├── hidtest.vcproj
    │   │   ├── hidtest.vcxproj
    │   │   ├── pp_data_dump
    │   │       ├── CMakeLists.txt
    │   │       ├── README.md
    │   │       └── pp_data_dump.c
    │   │   └── test
    │   │       ├── CMakeLists.txt
    │   │       ├── data
    │   │           ├── 045E_02FF_0005_0001.pp_data
    │   │           ├── 045E_02FF_0005_0001_expected.rpt_desc
    │   │           ├── 045E_02FF_0005_0001_real.rpt_desc
    │   │           ├── 046A_0011_0006_0001.pp_data
    │   │           ├── 046A_0011_0006_0001_expected.rpt_desc
    │   │           ├── 046A_0011_0006_0001_real.rpt_desc
    │   │           ├── 046D_0A37_0001_000C.pp_data
    │   │           ├── 046D_0A37_0001_000C_expected.rpt_desc
    │   │           ├── 046D_0A37_0001_000C_real.rpt_desc
    │   │           ├── 046D_B010_0001_000C.pp_data
    │   │           ├── 046D_B010_0001_000C_expected.rpt_desc
    │   │           ├── 046D_B010_0001_000C_real.rpt_desc
    │   │           ├── 046D_B010_0001_FF00.pp_data
    │   │           ├── 046D_B010_0001_FF00_expected.rpt_desc
    │   │           ├── 046D_B010_0001_FF00_real.rpt_desc
    │   │           ├── 046D_B010_0002_0001.pp_data
    │   │           ├── 046D_B010_0002_0001_expected.rpt_desc
    │   │           ├── 046D_B010_0002_0001_real.rpt_desc
    │   │           ├── 046D_B010_0002_FF00.pp_data
    │   │           ├── 046D_B010_0002_FF00_expected.rpt_desc
    │   │           ├── 046D_B010_0002_FF00_real.rpt_desc
    │   │           ├── 046D_B010_0006_0001.pp_data
    │   │           ├── 046D_B010_0006_0001_expected.rpt_desc
    │   │           ├── 046D_B010_0006_0001_real.rpt_desc
    │   │           ├── 046D_C077_0002_0001.pp_data
    │   │           ├── 046D_C077_0002_0001_expected.rpt_desc
    │   │           ├── 046D_C077_0002_0001_real.rpt_desc
    │   │           ├── 046D_C283_0004_0001.pp_data
    │   │           ├── 046D_C283_0004_0001_expected.rpt_desc
    │   │           ├── 046D_C283_0004_0001_real.rpt_desc
    │   │           ├── 046D_C52F_0001_000C.pp_data
    │   │           ├── 046D_C52F_0001_000C_expected.rpt_desc
    │   │           ├── 046D_C52F_0001_000C_real.rpt_desc
    │   │           ├── 046D_C52F_0001_FF00.pp_data
    │   │           ├── 046D_C52F_0001_FF00_expected.rpt_desc
    │   │           ├── 046D_C52F_0001_FF00_real.rpt_desc
    │   │           ├── 046D_C52F_0002_0001.pp_data
    │   │           ├── 046D_C52F_0002_0001_expected.rpt_desc
    │   │           ├── 046D_C52F_0002_0001_real.rpt_desc
    │   │           ├── 046D_C52F_0002_FF00.pp_data
    │   │           ├── 046D_C52F_0002_FF00_expected.rpt_desc
    │   │           ├── 046D_C52F_0002_FF00_real.rpt_desc
    │   │           ├── 046D_C534_0001_000C.pp_data
    │   │           ├── 046D_C534_0001_000C_expected.rpt_desc
    │   │           ├── 046D_C534_0001_000C_real.rpt_desc
    │   │           ├── 046D_C534_0001_FF00.pp_data
    │   │           ├── 046D_C534_0001_FF00_expected.rpt_desc
    │   │           ├── 046D_C534_0001_FF00_real.rpt_desc
    │   │           ├── 046D_C534_0002_0001.pp_data
    │   │           ├── 046D_C534_0002_0001_expected.rpt_desc
    │   │           ├── 046D_C534_0002_0001_real.rpt_desc
    │   │           ├── 046D_C534_0002_FF00.pp_data
    │   │           ├── 046D_C534_0002_FF00_expected.rpt_desc
    │   │           ├── 046D_C534_0002_FF00_real.rpt_desc
    │   │           ├── 046D_C534_0006_0001.pp_data
    │   │           ├── 046D_C534_0006_0001_expected.rpt_desc
    │   │           ├── 046D_C534_0006_0001_real.rpt_desc
    │   │           ├── 046D_C534_0080_0001.pp_data
    │   │           ├── 046D_C534_0080_0001_expected.rpt_desc
    │   │           ├── 046D_C534_0080_0001_real.rpt_desc
    │   │           ├── 047F_C056_0001_000C.pp_data
    │   │           ├── 047F_C056_0001_000C_expected.rpt_desc
    │   │           ├── 047F_C056_0001_000C_real.rpt_desc
    │   │           ├── 047F_C056_0003_FFA0.pp_data
    │   │           ├── 047F_C056_0003_FFA0_expected.rpt_desc
    │   │           ├── 047F_C056_0003_FFA0_real.rpt_desc
    │   │           ├── 047F_C056_0005_000B.pp_data
    │   │           ├── 047F_C056_0005_000B_expected.rpt_desc
    │   │           ├── 047F_C056_0005_000B_real.rpt_desc
    │   │           ├── 17CC_1130_0000_FF01.pp_data
    │   │           ├── 17CC_1130_0000_FF01_expected.rpt_desc
    │   │           └── 17CC_1130_0000_FF01_real.rpt_desc
    │   │       └── hid_report_reconstructor_test.c
    ├── io
    │   ├── SDL_asyncio.c
    │   ├── SDL_asyncio_c.h
    │   ├── SDL_iostream.c
    │   ├── SDL_iostream_c.h
    │   ├── SDL_sysasyncio.h
    │   ├── generic
    │   │   └── SDL_asyncio_generic.c
    │   ├── io_uring
    │   │   └── SDL_asyncio_liburing.c
    │   ├── n3ds
    │   │   ├── SDL_iostreamromfs.c
    │   │   └── SDL_iostreamromfs.h
    │   └── windows
    │   │   └── SDL_asyncio_windows_ioring.c
    ├── joystick
    │   ├── SDL_gamepad.c
    │   ├── SDL_gamepad_c.h
    │   ├── SDL_gamepad_db.h
    │   ├── SDL_joystick.c
    │   ├── SDL_joystick_c.h
    │   ├── SDL_steam_virtual_gamepad.c
    │   ├── SDL_steam_virtual_gamepad.h
    │   ├── SDL_sysjoystick.h
    │   ├── android
    │   │   ├── SDL_sysjoystick.c
    │   │   └── SDL_sysjoystick_c.h
    │   ├── apple
    │   │   ├── SDL_mfijoystick.m
    │   │   └── SDL_mfijoystick_c.h
    │   ├── bsd
    │   │   └── SDL_bsdjoystick.c
    │   ├── check_8bitdo.sh
    │   ├── controller_list.h
    │   ├── controller_type.c
    │   ├── controller_type.h
    │   ├── darwin
    │   │   ├── SDL_iokitjoystick.c
    │   │   └── SDL_iokitjoystick_c.h
    │   ├── dummy
    │   │   └── SDL_sysjoystick.c
    │   ├── emscripten
    │   │   ├── SDL_sysjoystick.c
    │   │   └── SDL_sysjoystick_c.h
    │   ├── gdk
    │   │   └── SDL_gameinputjoystick.cpp
    │   ├── haiku
    │   │   └── SDL_haikujoystick.cc
    │   ├── hidapi
    │   │   ├── SDL_hidapi_8bitdo.c
    │   │   ├── SDL_hidapi_combined.c
    │   │   ├── SDL_hidapi_flydigi.c
    │   │   ├── SDL_hidapi_gamecube.c
    │   │   ├── SDL_hidapi_gip.c
    │   │   ├── SDL_hidapi_lg4ff.c
    │   │   ├── SDL_hidapi_luna.c
    │   │   ├── SDL_hidapi_nintendo.h
    │   │   ├── SDL_hidapi_ps3.c
    │   │   ├── SDL_hidapi_ps4.c
    │   │   ├── SDL_hidapi_ps5.c
    │   │   ├── SDL_hidapi_rumble.c
    │   │   ├── SDL_hidapi_rumble.h
    │   │   ├── SDL_hidapi_shield.c
    │   │   ├── SDL_hidapi_stadia.c
    │   │   ├── SDL_hidapi_steam.c
    │   │   ├── SDL_hidapi_steam_hori.c
    │   │   ├── SDL_hidapi_steamdeck.c
    │   │   ├── SDL_hidapi_switch.c
    │   │   ├── SDL_hidapi_wii.c
    │   │   ├── SDL_hidapi_xbox360.c
    │   │   ├── SDL_hidapi_xbox360w.c
    │   │   ├── SDL_hidapi_xboxone.c
    │   │   ├── SDL_hidapijoystick.c
    │   │   ├── SDL_hidapijoystick_c.h
    │   │   └── steam
    │   │   │   ├── controller_constants.h
    │   │   │   └── controller_structs.h
    │   ├── linux
    │   │   ├── SDL_sysjoystick.c
    │   │   └── SDL_sysjoystick_c.h
    │   ├── n3ds
    │   │   └── SDL_sysjoystick.c
    │   ├── ps2
    │   │   └── SDL_sysjoystick.c
    │   ├── psp
    │   │   └── SDL_sysjoystick.c
    │   ├── sort_controllers.py
    │   ├── usb_ids.h
    │   ├── virtual
    │   │   ├── SDL_virtualjoystick.c
    │   │   └── SDL_virtualjoystick_c.h
    │   ├── vita
    │   │   └── SDL_sysjoystick.c
    │   └── windows
    │   │   ├── SDL_dinputjoystick.c
    │   │   ├── SDL_dinputjoystick_c.h
    │   │   ├── SDL_rawinputjoystick.c
    │   │   ├── SDL_rawinputjoystick_c.h
    │   │   ├── SDL_windows_gaming_input.c
    │   │   ├── SDL_windowsjoystick.c
    │   │   ├── SDL_windowsjoystick_c.h
    │   │   ├── SDL_xinputjoystick.c
    │   │   └── SDL_xinputjoystick_c.h
    ├── libm
    │   ├── e_atan2.c
    │   ├── e_exp.c
    │   ├── e_fmod.c
    │   ├── e_log.c
    │   ├── e_log10.c
    │   ├── e_pow.c
    │   ├── e_rem_pio2.c
    │   ├── e_sqrt.c
    │   ├── k_cos.c
    │   ├── k_rem_pio2.c
    │   ├── k_sin.c
    │   ├── k_tan.c
    │   ├── math_libm.h
    │   ├── math_private.h
    │   ├── s_atan.c
    │   ├── s_copysign.c
    │   ├── s_cos.c
    │   ├── s_fabs.c
    │   ├── s_floor.c
    │   ├── s_isinf.c
    │   ├── s_isinff.c
    │   ├── s_isnan.c
    │   ├── s_isnanf.c
    │   ├── s_modf.c
    │   ├── s_scalbn.c
    │   ├── s_sin.c
    │   └── s_tan.c
    ├── loadso
    │   ├── dlopen
    │   │   └── SDL_sysloadso.c
    │   ├── dummy
    │   │   └── SDL_sysloadso.c
    │   └── windows
    │   │   └── SDL_sysloadso.c
    ├── locale
    │   ├── SDL_locale.c
    │   ├── SDL_syslocale.h
    │   ├── android
    │   │   └── SDL_syslocale.c
    │   ├── dummy
    │   │   └── SDL_syslocale.c
    │   ├── emscripten
    │   │   └── SDL_syslocale.c
    │   ├── haiku
    │   │   └── SDL_syslocale.cc
    │   ├── macos
    │   │   └── SDL_syslocale.m
    │   ├── n3ds
    │   │   └── SDL_syslocale.c
    │   ├── ngage
    │   │   └── SDL_syslocale.cpp
    │   ├── psp
    │   │   └── SDL_syslocale.c
    │   ├── unix
    │   │   └── SDL_syslocale.c
    │   ├── vita
    │   │   └── SDL_syslocale.c
    │   └── windows
    │   │   └── SDL_syslocale.c
    ├── main
    │   ├── SDL_main_callbacks.c
    │   ├── SDL_main_callbacks.h
    │   ├── SDL_runapp.c
    │   ├── emscripten
    │   │   ├── SDL_sysmain_callbacks.c
    │   │   └── SDL_sysmain_runapp.c
    │   ├── gdk
    │   │   └── SDL_sysmain_runapp.cpp
    │   ├── generic
    │   │   └── SDL_sysmain_callbacks.c
    │   ├── ios
    │   │   └── SDL_sysmain_callbacks.m
    │   ├── n3ds
    │   │   └── SDL_sysmain_runapp.c
    │   ├── ngage
    │   │   ├── SDL_sysmain_callbacks.c
    │   │   ├── SDL_sysmain_main.cpp
    │   │   └── SDL_sysmain_main.hpp
    │   ├── ps2
    │   │   └── SDL_sysmain_runapp.c
    │   ├── psp
    │   │   └── SDL_sysmain_runapp.c
    │   └── windows
    │   │   └── SDL_sysmain_runapp.c
    ├── misc
    │   ├── SDL_sysurl.h
    │   ├── SDL_url.c
    │   ├── android
    │   │   └── SDL_sysurl.c
    │   ├── dummy
    │   │   └── SDL_sysurl.c
    │   ├── emscripten
    │   │   └── SDL_sysurl.c
    │   ├── haiku
    │   │   └── SDL_sysurl.cc
    │   ├── ios
    │   │   └── SDL_sysurl.m
    │   ├── macos
    │   │   └── SDL_sysurl.m
    │   ├── riscos
    │   │   └── SDL_sysurl.c
    │   ├── unix
    │   │   └── SDL_sysurl.c
    │   ├── vita
    │   │   └── SDL_sysurl.c
    │   └── windows
    │   │   └── SDL_sysurl.c
    ├── power
    │   ├── SDL_power.c
    │   ├── SDL_syspower.h
    │   ├── android
    │   │   └── SDL_syspower.c
    │   ├── emscripten
    │   │   └── SDL_syspower.c
    │   ├── haiku
    │   │   └── SDL_syspower.c
    │   ├── linux
    │   │   └── SDL_syspower.c
    │   ├── macos
    │   │   └── SDL_syspower.c
    │   ├── n3ds
    │   │   └── SDL_syspower.c
    │   ├── psp
    │   │   └── SDL_syspower.c
    │   ├── uikit
    │   │   ├── SDL_syspower.h
    │   │   └── SDL_syspower.m
    │   ├── vita
    │   │   └── SDL_syspower.c
    │   └── windows
    │   │   └── SDL_syspower.c
    ├── process
    │   ├── SDL_process.c
    │   ├── SDL_sysprocess.h
    │   ├── dummy
    │   │   └── SDL_dummyprocess.c
    │   ├── posix
    │   │   └── SDL_posixprocess.c
    │   └── windows
    │   │   └── SDL_windowsprocess.c
    ├── render
    │   ├── SDL_d3dmath.c
    │   ├── SDL_d3dmath.h
    │   ├── SDL_render.c
    │   ├── SDL_render_debug_font.h
    │   ├── SDL_render_unsupported.c
    │   ├── SDL_sysrender.h
    │   ├── SDL_yuv_sw.c
    │   ├── SDL_yuv_sw_c.h
    │   ├── direct3d
    │   │   ├── D3D9_PixelShader_YUV.h
    │   │   ├── D3D9_PixelShader_YUV.hlsl
    │   │   ├── SDL_render_d3d.c
    │   │   ├── SDL_shaders_d3d.c
    │   │   ├── SDL_shaders_d3d.h
    │   │   └── compile_shaders.bat
    │   ├── direct3d11
    │   │   ├── D3D11_PixelShader_Advanced.h
    │   │   ├── D3D11_PixelShader_Advanced.hlsl
    │   │   ├── D3D11_PixelShader_Colors.h
    │   │   ├── D3D11_PixelShader_Colors.hlsl
    │   │   ├── D3D11_PixelShader_Common.hlsli
    │   │   ├── D3D11_PixelShader_Textures.h
    │   │   ├── D3D11_PixelShader_Textures.hlsl
    │   │   ├── D3D11_VertexShader.h
    │   │   ├── D3D11_VertexShader.hlsl
    │   │   ├── SDL_render_d3d11.c
    │   │   ├── SDL_shaders_d3d11.c
    │   │   ├── SDL_shaders_d3d11.h
    │   │   └── compile_shaders.bat
    │   ├── direct3d12
    │   │   ├── D3D12_PixelShader_Advanced.h
    │   │   ├── D3D12_PixelShader_Advanced.hlsl
    │   │   ├── D3D12_PixelShader_Colors.h
    │   │   ├── D3D12_PixelShader_Colors.hlsl
    │   │   ├── D3D12_PixelShader_Common.hlsli
    │   │   ├── D3D12_PixelShader_Textures.h
    │   │   ├── D3D12_PixelShader_Textures.hlsl
    │   │   ├── D3D12_RootSig_Advanced.h
    │   │   ├── D3D12_RootSig_Color.h
    │   │   ├── D3D12_RootSig_Texture.h
    │   │   ├── D3D12_Shader_Common.hlsli
    │   │   ├── D3D12_VertexShader.hlsl
    │   │   ├── D3D12_VertexShader_Advanced.h
    │   │   ├── D3D12_VertexShader_Color.h
    │   │   ├── D3D12_VertexShader_Texture.h
    │   │   ├── SDL_render_d3d12.c
    │   │   ├── SDL_render_d3d12_xbox.cpp
    │   │   ├── SDL_render_d3d12_xbox.h
    │   │   ├── SDL_shaders_d3d12.c
    │   │   ├── SDL_shaders_d3d12.h
    │   │   ├── SDL_shaders_d3d12_xboxone.cpp
    │   │   ├── SDL_shaders_d3d12_xboxseries.cpp
    │   │   ├── compile_shaders.bat
    │   │   └── compile_shaders_xbox.bat
    │   ├── gpu
    │   │   ├── SDL_gpu_util.h
    │   │   ├── SDL_pipeline_gpu.c
    │   │   ├── SDL_pipeline_gpu.h
    │   │   ├── SDL_render_gpu.c
    │   │   ├── SDL_shaders_gpu.c
    │   │   ├── SDL_shaders_gpu.h
    │   │   └── shaders
    │   │   │   ├── .gitattributes
    │   │   │   ├── .gitignore
    │   │   │   ├── build-shaders.sh
    │   │   │   ├── color.frag.dxil.h
    │   │   │   ├── color.frag.hlsl
    │   │   │   ├── color.frag.msl.h
    │   │   │   ├── color.frag.spv.h
    │   │   │   ├── dxil.h
    │   │   │   ├── linepoint.vert.dxil.h
    │   │   │   ├── linepoint.vert.hlsl
    │   │   │   ├── linepoint.vert.msl.h
    │   │   │   ├── linepoint.vert.spv.h
    │   │   │   ├── msl.h
    │   │   │   ├── spir-v.h
    │   │   │   ├── texture_pixelart.frag.hlsli
    │   │   │   ├── texture_rgb.frag.dxil.h
    │   │   │   ├── texture_rgb.frag.hlsl
    │   │   │   ├── texture_rgb.frag.msl.h
    │   │   │   ├── texture_rgb.frag.spv.h
    │   │   │   ├── texture_rgb_pixelart.frag.dxil.h
    │   │   │   ├── texture_rgb_pixelart.frag.hlsl
    │   │   │   ├── texture_rgb_pixelart.frag.msl.h
    │   │   │   ├── texture_rgb_pixelart.frag.spv.h
    │   │   │   ├── texture_rgba.frag.dxil.h
    │   │   │   ├── texture_rgba.frag.hlsl
    │   │   │   ├── texture_rgba.frag.msl.h
    │   │   │   ├── texture_rgba.frag.spv.h
    │   │   │   ├── texture_rgba_pixelart.frag.dxil.h
    │   │   │   ├── texture_rgba_pixelart.frag.hlsl
    │   │   │   ├── texture_rgba_pixelart.frag.msl.h
    │   │   │   ├── texture_rgba_pixelart.frag.spv.h
    │   │   │   ├── tri_color.vert.dxil.h
    │   │   │   ├── tri_color.vert.hlsl
    │   │   │   ├── tri_color.vert.msl.h
    │   │   │   ├── tri_color.vert.spv.h
    │   │   │   ├── tri_texture.vert.dxil.h
    │   │   │   ├── tri_texture.vert.hlsl
    │   │   │   ├── tri_texture.vert.msl.h
    │   │   │   └── tri_texture.vert.spv.h
    │   ├── metal
    │   │   ├── SDL_render_metal.m
    │   │   ├── SDL_shaders_metal.metal
    │   │   ├── SDL_shaders_metal_ios.h
    │   │   ├── SDL_shaders_metal_iphonesimulator.h
    │   │   ├── SDL_shaders_metal_macos.h
    │   │   ├── SDL_shaders_metal_tvos.h
    │   │   ├── SDL_shaders_metal_tvsimulator.h
    │   │   └── build-metal-shaders.sh
    │   ├── ngage
    │   │   ├── SDL_render_ngage.c
    │   │   ├── SDL_render_ngage.cpp
    │   │   ├── SDL_render_ngage_c.h
    │   │   ├── SDL_render_ngage_c.hpp
    │   │   ├── SDL_render_ops.cpp
    │   │   └── SDL_render_ops.hpp
    │   ├── opengl
    │   │   ├── SDL_glfuncs.h
    │   │   ├── SDL_render_gl.c
    │   │   ├── SDL_shaders_gl.c
    │   │   └── SDL_shaders_gl.h
    │   ├── opengles2
    │   │   ├── SDL_gles2funcs.h
    │   │   ├── SDL_render_gles2.c
    │   │   ├── SDL_shaders_gles2.c
    │   │   └── SDL_shaders_gles2.h
    │   ├── ps2
    │   │   └── SDL_render_ps2.c
    │   ├── psp
    │   │   ├── SDL_render_psp.c
    │   │   └── SDL_render_psp_c.h
    │   ├── software
    │   │   ├── SDL_blendfillrect.c
    │   │   ├── SDL_blendfillrect.h
    │   │   ├── SDL_blendline.c
    │   │   ├── SDL_blendline.h
    │   │   ├── SDL_blendpoint.c
    │   │   ├── SDL_blendpoint.h
    │   │   ├── SDL_draw.h
    │   │   ├── SDL_drawline.c
    │   │   ├── SDL_drawline.h
    │   │   ├── SDL_drawpoint.c
    │   │   ├── SDL_drawpoint.h
    │   │   ├── SDL_render_sw.c
    │   │   ├── SDL_render_sw_c.h
    │   │   ├── SDL_rotate.c
    │   │   ├── SDL_rotate.h
    │   │   ├── SDL_triangle.c
    │   │   └── SDL_triangle.h
    │   ├── vitagxm
    │   │   ├── SDL_render_vita_gxm.c
    │   │   ├── SDL_render_vita_gxm_memory.c
    │   │   ├── SDL_render_vita_gxm_memory.h
    │   │   ├── SDL_render_vita_gxm_shaders.h
    │   │   ├── SDL_render_vita_gxm_tools.c
    │   │   ├── SDL_render_vita_gxm_tools.h
    │   │   ├── SDL_render_vita_gxm_types.h
    │   │   └── shader_src
    │   │   │   ├── clear_f.cg
    │   │   │   ├── clear_v.cg
    │   │   │   ├── color_f.cg
    │   │   │   ├── color_v.cg
    │   │   │   ├── texture_f.cg
    │   │   │   └── texture_v.cg
    │   └── vulkan
    │   │   ├── SDL_render_vulkan.c
    │   │   ├── SDL_shaders_vulkan.c
    │   │   ├── SDL_shaders_vulkan.h
    │   │   ├── VULKAN_PixelShader_Advanced.h
    │   │   ├── VULKAN_PixelShader_Advanced.hlsl
    │   │   ├── VULKAN_PixelShader_Colors.h
    │   │   ├── VULKAN_PixelShader_Colors.hlsl
    │   │   ├── VULKAN_PixelShader_Common.hlsli
    │   │   ├── VULKAN_PixelShader_Textures.h
    │   │   ├── VULKAN_PixelShader_Textures.hlsl
    │   │   ├── VULKAN_VertexShader.h
    │   │   ├── VULKAN_VertexShader.hlsl
    │   │   └── compile_shaders.bat
    ├── sensor
    │   ├── SDL_sensor.c
    │   ├── SDL_sensor_c.h
    │   ├── SDL_syssensor.h
    │   ├── android
    │   │   ├── SDL_androidsensor.c
    │   │   └── SDL_androidsensor.h
    │   ├── coremotion
    │   │   ├── SDL_coremotionsensor.h
    │   │   └── SDL_coremotionsensor.m
    │   ├── dummy
    │   │   ├── SDL_dummysensor.c
    │   │   └── SDL_dummysensor.h
    │   ├── n3ds
    │   │   └── SDL_n3dssensor.c
    │   ├── vita
    │   │   ├── SDL_vitasensor.c
    │   │   └── SDL_vitasensor.h
    │   └── windows
    │   │   ├── SDL_windowssensor.c
    │   │   └── SDL_windowssensor.h
    ├── stdlib
    │   ├── SDL_casefolding.h
    │   ├── SDL_crc16.c
    │   ├── SDL_crc32.c
    │   ├── SDL_getenv.c
    │   ├── SDL_getenv_c.h
    │   ├── SDL_iconv.c
    │   ├── SDL_malloc.c
    │   ├── SDL_memcpy.c
    │   ├── SDL_memmove.c
    │   ├── SDL_memset.c
    │   ├── SDL_mslibc.c
    │   ├── SDL_mslibc_arm64.masm
    │   ├── SDL_mslibc_x64.masm
    │   ├── SDL_murmur3.c
    │   ├── SDL_qsort.c
    │   ├── SDL_random.c
    │   ├── SDL_stdlib.c
    │   ├── SDL_string.c
    │   ├── SDL_strtokr.c
    │   ├── SDL_sysstdlib.h
    │   └── SDL_vacopy.h
    ├── storage
    │   ├── SDL_storage.c
    │   ├── SDL_sysstorage.h
    │   ├── generic
    │   │   └── SDL_genericstorage.c
    │   └── steam
    │   │   ├── SDL_steamstorage.c
    │   │   └── SDL_steamstorage_proc.h
    ├── test
    │   ├── 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_log.c
    │   ├── SDL_test_md5.c
    │   └── SDL_test_memory.c
    ├── thread
    │   ├── SDL_systhread.h
    │   ├── SDL_thread.c
    │   ├── SDL_thread_c.h
    │   ├── generic
    │   │   ├── SDL_syscond.c
    │   │   ├── SDL_syscond_c.h
    │   │   ├── SDL_sysmutex.c
    │   │   ├── SDL_sysmutex_c.h
    │   │   ├── SDL_sysrwlock.c
    │   │   ├── SDL_sysrwlock_c.h
    │   │   ├── SDL_syssem.c
    │   │   ├── SDL_systhread.c
    │   │   ├── SDL_systhread_c.h
    │   │   └── SDL_systls.c
    │   ├── n3ds
    │   │   ├── SDL_sysmutex.c
    │   │   ├── SDL_sysmutex_c.h
    │   │   ├── SDL_syssem.c
    │   │   ├── SDL_systhread.c
    │   │   └── SDL_systhread_c.h
    │   ├── ps2
    │   │   ├── SDL_syssem.c
    │   │   ├── SDL_systhread.c
    │   │   └── SDL_systhread_c.h
    │   ├── psp
    │   │   ├── SDL_sysmutex.c
    │   │   ├── SDL_sysmutex_c.h
    │   │   ├── SDL_syssem.c
    │   │   ├── SDL_systhread.c
    │   │   └── SDL_systhread_c.h
    │   ├── pthread
    │   │   ├── SDL_syscond.c
    │   │   ├── SDL_sysmutex.c
    │   │   ├── SDL_sysmutex_c.h
    │   │   ├── SDL_sysrwlock.c
    │   │   ├── SDL_syssem.c
    │   │   ├── SDL_systhread.c
    │   │   ├── SDL_systhread_c.h
    │   │   └── SDL_systls.c
    │   ├── vita
    │   │   ├── SDL_sysmutex.c
    │   │   ├── SDL_sysmutex_c.h
    │   │   ├── SDL_syssem.c
    │   │   ├── SDL_systhread.c
    │   │   └── SDL_systhread_c.h
    │   └── windows
    │   │   ├── SDL_syscond_cv.c
    │   │   ├── SDL_sysmutex.c
    │   │   ├── SDL_sysmutex_c.h
    │   │   ├── SDL_sysrwlock_srw.c
    │   │   ├── SDL_syssem.c
    │   │   ├── SDL_systhread.c
    │   │   ├── SDL_systhread_c.h
    │   │   └── SDL_systls.c
    ├── time
    │   ├── SDL_time.c
    │   ├── SDL_time_c.h
    │   ├── n3ds
    │   │   └── SDL_systime.c
    │   ├── ngage
    │   │   └── SDL_systime.cpp
    │   ├── ps2
    │   │   └── SDL_systime.c
    │   ├── psp
    │   │   └── SDL_systime.c
    │   ├── unix
    │   │   └── SDL_systime.c
    │   ├── vita
    │   │   └── SDL_systime.c
    │   └── windows
    │   │   └── SDL_systime.c
    ├── timer
    │   ├── SDL_timer.c
    │   ├── SDL_timer_c.h
    │   ├── haiku
    │   │   └── SDL_systimer.c
    │   ├── n3ds
    │   │   └── SDL_systimer.c
    │   ├── ngage
    │   │   └── SDL_systimer.cpp
    │   ├── ps2
    │   │   └── SDL_systimer.c
    │   ├── psp
    │   │   └── SDL_systimer.c
    │   ├── unix
    │   │   └── SDL_systimer.c
    │   ├── vita
    │   │   └── SDL_systimer.c
    │   └── windows
    │   │   └── SDL_systimer.c
    ├── tray
    │   ├── SDL_tray_utils.c
    │   ├── SDL_tray_utils.h
    │   ├── cocoa
    │   │   └── SDL_tray.m
    │   ├── dummy
    │   │   └── SDL_tray.c
    │   ├── unix
    │   │   └── SDL_tray.c
    │   └── windows
    │   │   └── SDL_tray.c
    └── video
    │   ├── SDL_RLEaccel.c
    │   ├── SDL_RLEaccel_c.h
    │   ├── SDL_blit.c
    │   ├── SDL_blit.h
    │   ├── SDL_blit_0.c
    │   ├── SDL_blit_1.c
    │   ├── SDL_blit_A.c
    │   ├── SDL_blit_N.c
    │   ├── SDL_blit_auto.c
    │   ├── SDL_blit_auto.h
    │   ├── SDL_blit_copy.c
    │   ├── SDL_blit_copy.h
    │   ├── SDL_blit_slow.c
    │   ├── SDL_blit_slow.h
    │   ├── SDL_bmp.c
    │   ├── SDL_clipboard.c
    │   ├── SDL_clipboard_c.h
    │   ├── SDL_egl.c
    │   ├── SDL_egl_c.h
    │   ├── SDL_fillrect.c
    │   ├── SDL_pixels.c
    │   ├── SDL_pixels_c.h
    │   ├── SDL_rect.c
    │   ├── SDL_rect_c.h
    │   ├── SDL_rect_impl.h
    │   ├── SDL_stb.c
    │   ├── SDL_stb_c.h
    │   ├── SDL_stretch.c
    │   ├── SDL_surface.c
    │   ├── SDL_surface_c.h
    │   ├── SDL_sysvideo.h
    │   ├── SDL_video.c
    │   ├── SDL_video_c.h
    │   ├── SDL_video_unsupported.c
    │   ├── SDL_vulkan_internal.h
    │   ├── SDL_vulkan_utils.c
    │   ├── SDL_yuv.c
    │   ├── SDL_yuv_c.h
    │   ├── android
    │       ├── SDL_androidclipboard.c
    │       ├── SDL_androidclipboard.h
    │       ├── SDL_androidevents.c
    │       ├── SDL_androidevents.h
    │       ├── SDL_androidgl.c
    │       ├── SDL_androidgl.h
    │       ├── SDL_androidkeyboard.c
    │       ├── SDL_androidkeyboard.h
    │       ├── SDL_androidmessagebox.c
    │       ├── SDL_androidmessagebox.h
    │       ├── SDL_androidmouse.c
    │       ├── SDL_androidmouse.h
    │       ├── SDL_androidpen.c
    │       ├── SDL_androidpen.h
    │       ├── SDL_androidtouch.c
    │       ├── SDL_androidtouch.h
    │       ├── SDL_androidvideo.c
    │       ├── SDL_androidvideo.h
    │       ├── SDL_androidvulkan.c
    │       ├── SDL_androidvulkan.h
    │       ├── SDL_androidwindow.c
    │       └── SDL_androidwindow.h
    │   ├── cocoa
    │       ├── SDL_cocoaclipboard.h
    │       ├── SDL_cocoaclipboard.m
    │       ├── SDL_cocoaevents.h
    │       ├── SDL_cocoaevents.m
    │       ├── SDL_cocoakeyboard.h
    │       ├── SDL_cocoakeyboard.m
    │       ├── SDL_cocoamessagebox.h
    │       ├── SDL_cocoamessagebox.m
    │       ├── SDL_cocoametalview.h
    │       ├── SDL_cocoametalview.m
    │       ├── SDL_cocoamodes.h
    │       ├── SDL_cocoamodes.m
    │       ├── SDL_cocoamouse.h
    │       ├── SDL_cocoamouse.m
    │       ├── SDL_cocoaopengl.h
    │       ├── SDL_cocoaopengl.m
    │       ├── SDL_cocoaopengles.h
    │       ├── SDL_cocoaopengles.m
    │       ├── SDL_cocoapen.h
    │       ├── SDL_cocoapen.m
    │       ├── SDL_cocoashape.h
    │       ├── SDL_cocoashape.m
    │       ├── SDL_cocoavideo.h
    │       ├── SDL_cocoavideo.m
    │       ├── SDL_cocoavulkan.h
    │       ├── SDL_cocoavulkan.m
    │       ├── SDL_cocoawindow.h
    │       └── SDL_cocoawindow.m
    │   ├── directx
    │       ├── SDL_d3d12.h
    │       ├── SDL_d3d12_xbox_cmacros.h
    │       ├── d3d12.h
    │       ├── d3d12sdklayers.h
    │       └── gen_xbox_cmacros.cs
    │   ├── dummy
    │       ├── SDL_nullevents.c
    │       ├── SDL_nullevents_c.h
    │       ├── SDL_nullframebuffer.c
    │       ├── SDL_nullframebuffer_c.h
    │       ├── SDL_nullvideo.c
    │       └── SDL_nullvideo.h
    │   ├── emscripten
    │       ├── SDL_emscriptenevents.c
    │       ├── SDL_emscriptenevents.h
    │       ├── SDL_emscriptenframebuffer.c
    │       ├── SDL_emscriptenframebuffer.h
    │       ├── SDL_emscriptenmouse.c
    │       ├── SDL_emscriptenmouse.h
    │       ├── SDL_emscriptenopengles.c
    │       ├── SDL_emscriptenopengles.h
    │       ├── SDL_emscriptenvideo.c
    │       └── SDL_emscriptenvideo.h
    │   ├── gdk
    │       ├── SDL_gdktextinput.cpp
    │       └── SDL_gdktextinput.h
    │   ├── haiku
    │       ├── SDL_BWin.h
    │       ├── SDL_bclipboard.cc
    │       ├── SDL_bclipboard.h
    │       ├── SDL_bevents.cc
    │       ├── SDL_bevents.h
    │       ├── SDL_bframebuffer.cc
    │       ├── SDL_bframebuffer.h
    │       ├── SDL_bkeyboard.cc
    │       ├── SDL_bkeyboard.h
    │       ├── SDL_bmessagebox.cc
    │       ├── SDL_bmessagebox.h
    │       ├── SDL_bmodes.cc
    │       ├── SDL_bmodes.h
    │       ├── SDL_bopengl.cc
    │       ├── SDL_bopengl.h
    │       ├── SDL_bvideo.cc
    │       ├── SDL_bvideo.h
    │       ├── SDL_bwindow.cc
    │       └── SDL_bwindow.h
    │   ├── khronos
    │       ├── EGL
    │       │   ├── egl.h
    │       │   ├── eglext.h
    │       │   └── eglplatform.h
    │       ├── GLES2
    │       │   ├── gl2.h
    │       │   ├── gl2ext.h
    │       │   └── gl2platform.h
    │       ├── GLES3
    │       │   ├── gl3.h
    │       │   ├── gl31.h
    │       │   ├── gl32.h
    │       │   └── gl3platform.h
    │       ├── KHR
    │       │   └── khrplatform.h
    │       ├── vk_video
    │       │   ├── vulkan_video_codec_av1std.h
    │       │   ├── vulkan_video_codec_av1std_decode.h
    │       │   ├── vulkan_video_codec_h264std.h
    │       │   ├── vulkan_video_codec_h264std_decode.h
    │       │   ├── vulkan_video_codec_h264std_encode.h
    │       │   ├── vulkan_video_codec_h265std.h
    │       │   ├── vulkan_video_codec_h265std_decode.h
    │       │   ├── vulkan_video_codec_h265std_encode.h
    │       │   └── vulkan_video_codecs_common.h
    │       └── vulkan
    │       │   ├── vk_icd.h
    │       │   ├── vk_layer.h
    │       │   ├── vk_platform.h
    │       │   ├── vulkan.h
    │       │   ├── vulkan_android.h
    │       │   ├── vulkan_beta.h
    │       │   ├── vulkan_core.h
    │       │   ├── vulkan_directfb.h
    │       │   ├── vulkan_fuchsia.h
    │       │   ├── vulkan_ggp.h
    │       │   ├── vulkan_ios.h
    │       │   ├── vulkan_macos.h
    │       │   ├── vulkan_metal.h
    │       │   ├── vulkan_screen.h
    │       │   ├── vulkan_vi.h
    │       │   ├── vulkan_wayland.h
    │       │   ├── vulkan_win32.h
    │       │   ├── vulkan_xcb.h
    │       │   ├── vulkan_xlib.h
    │       │   └── vulkan_xlib_xrandr.h
    │   ├── kmsdrm
    │       ├── SDL_kmsdrmdyn.c
    │       ├── SDL_kmsdrmdyn.h
    │       ├── SDL_kmsdrmevents.c
    │       ├── SDL_kmsdrmevents.h
    │       ├── SDL_kmsdrmmouse.c
    │       ├── SDL_kmsdrmmouse.h
    │       ├── SDL_kmsdrmopengles.c
    │       ├── SDL_kmsdrmopengles.h
    │       ├── SDL_kmsdrmsym.h
    │       ├── SDL_kmsdrmvideo.c
    │       ├── SDL_kmsdrmvideo.h
    │       ├── SDL_kmsdrmvulkan.c
    │       └── SDL_kmsdrmvulkan.h
    │   ├── n3ds
    │       ├── SDL_n3dsevents.c
    │       ├── SDL_n3dsevents_c.h
    │       ├── SDL_n3dsframebuffer.c
    │       ├── SDL_n3dsframebuffer_c.h
    │       ├── SDL_n3dsswkb.c
    │       ├── SDL_n3dsswkb.h
    │       ├── SDL_n3dstouch.c
    │       ├── SDL_n3dstouch.h
    │       ├── SDL_n3dsvideo.c
    │       └── SDL_n3dsvideo.h
    │   ├── ngage
    │       ├── SDL_ngagevideo.c
    │       └── SDL_ngagevideo.h
    │   ├── offscreen
    │       ├── SDL_offscreenevents.c
    │       ├── SDL_offscreenevents_c.h
    │       ├── SDL_offscreenframebuffer.c
    │       ├── SDL_offscreenframebuffer_c.h
    │       ├── SDL_offscreenopengles.c
    │       ├── SDL_offscreenopengles.h
    │       ├── SDL_offscreenvideo.c
    │       ├── SDL_offscreenvideo.h
    │       ├── SDL_offscreenvulkan.c
    │       ├── SDL_offscreenvulkan.h
    │       ├── SDL_offscreenwindow.c
    │       └── SDL_offscreenwindow.h
    │   ├── openvr
    │       ├── SDL_openvrvideo.c
    │       ├── SDL_openvrvideo.h
    │       └── openvr_capi.h
    │   ├── ps2
    │       ├── SDL_ps2video.c
    │       └── SDL_ps2video.h
    │   ├── psp
    │       ├── SDL_pspevents.c
    │       ├── SDL_pspevents_c.h
    │       ├── SDL_pspgl.c
    │       ├── SDL_pspgl_c.h
    │       ├── SDL_pspmouse.c
    │       ├── SDL_pspmouse_c.h
    │       ├── SDL_pspvideo.c
    │       └── SDL_pspvideo.h
    │   ├── qnx
    │       ├── SDL_qnx.h
    │       ├── SDL_qnxgl.c
    │       ├── SDL_qnxkeyboard.c
    │       └── SDL_qnxvideo.c
    │   ├── raspberry
    │       ├── SDL_rpievents.c
    │       ├── SDL_rpievents_c.h
    │       ├── SDL_rpimouse.c
    │       ├── SDL_rpimouse.h
    │       ├── SDL_rpiopengles.c
    │       ├── SDL_rpiopengles.h
    │       ├── SDL_rpivideo.c
    │       └── SDL_rpivideo.h
    │   ├── riscos
    │       ├── SDL_riscosdefs.h
    │       ├── SDL_riscosevents.c
    │       ├── SDL_riscosevents_c.h
    │       ├── SDL_riscosframebuffer.c
    │       ├── SDL_riscosframebuffer_c.h
    │       ├── SDL_riscosmessagebox.c
    │       ├── SDL_riscosmessagebox.h
    │       ├── SDL_riscosmodes.c
    │       ├── SDL_riscosmodes.h
    │       ├── SDL_riscosmouse.c
    │       ├── SDL_riscosmouse.h
    │       ├── SDL_riscosvideo.c
    │       ├── SDL_riscosvideo.h
    │       ├── SDL_riscoswindow.c
    │       ├── SDL_riscoswindow.h
    │       └── scancodes_riscos.h
    │   ├── sdlgenblit.pl
    │   ├── stb_image.h
    │   ├── uikit
    │       ├── SDL_uikitappdelegate.h
    │       ├── SDL_uikitappdelegate.m
    │       ├── SDL_uikitclipboard.h
    │       ├── SDL_uikitclipboard.m
    │       ├── SDL_uikitevents.h
    │       ├── SDL_uikitevents.m
    │       ├── SDL_uikitmessagebox.h
    │       ├── SDL_uikitmessagebox.m
    │       ├── SDL_uikitmetalview.h
    │       ├── SDL_uikitmetalview.m
    │       ├── SDL_uikitmodes.h
    │       ├── SDL_uikitmodes.m
    │       ├── SDL_uikitopengles.h
    │       ├── SDL_uikitopengles.m
    │       ├── SDL_uikitopenglview.h
    │       ├── SDL_uikitopenglview.m
    │       ├── SDL_uikitpen.h
    │       ├── SDL_uikitpen.m
    │       ├── SDL_uikitvideo.h
    │       ├── SDL_uikitvideo.m
    │       ├── SDL_uikitview.h
    │       ├── SDL_uikitview.m
    │       ├── SDL_uikitviewcontroller.h
    │       ├── SDL_uikitviewcontroller.m
    │       ├── SDL_uikitvulkan.h
    │       ├── SDL_uikitvulkan.m
    │       ├── SDL_uikitwindow.h
    │       └── SDL_uikitwindow.m
    │   ├── vita
    │       ├── SDL_vitaframebuffer.c
    │       ├── SDL_vitaframebuffer.h
    │       ├── SDL_vitagl_pvr.c
    │       ├── SDL_vitagles.c
    │       ├── SDL_vitagles_pvr.c
    │       ├── SDL_vitakeyboard.c
    │       ├── SDL_vitakeyboard.h
    │       ├── SDL_vitamessagebox.c
    │       ├── SDL_vitamessagebox.h
    │       ├── SDL_vitamouse.c
    │       ├── SDL_vitamouse_c.h
    │       ├── SDL_vitatouch.c
    │       ├── SDL_vitatouch.h
    │       ├── SDL_vitavideo.c
    │       └── SDL_vitavideo.h
    │   ├── vivante
    │       ├── SDL_vivanteopengles.c
    │       ├── SDL_vivanteopengles.h
    │       ├── SDL_vivanteplatform.c
    │       ├── SDL_vivanteplatform.h
    │       ├── SDL_vivantevideo.c
    │       ├── SDL_vivantevideo.h
    │       ├── SDL_vivantevulkan.c
    │       └── SDL_vivantevulkan.h
    │   ├── wayland
    │       ├── SDL_waylandclipboard.c
    │       ├── SDL_waylandclipboard.h
    │       ├── SDL_waylandcolor.c
    │       ├── SDL_waylandcolor.h
    │       ├── SDL_waylanddatamanager.c
    │       ├── SDL_waylanddatamanager.h
    │       ├── SDL_waylanddyn.c
    │       ├── SDL_waylanddyn.h
    │       ├── SDL_waylandevents.c
    │       ├── SDL_waylandevents_c.h
    │       ├── SDL_waylandkeyboard.c
    │       ├── SDL_waylandkeyboard.h
    │       ├── SDL_waylandmessagebox.c
    │       ├── SDL_waylandmessagebox.h
    │       ├── SDL_waylandmouse.c
    │       ├── SDL_waylandmouse.h
    │       ├── SDL_waylandopengles.c
    │       ├── SDL_waylandopengles.h
    │       ├── SDL_waylandshmbuffer.c
    │       ├── SDL_waylandshmbuffer.h
    │       ├── SDL_waylandsym.h
    │       ├── SDL_waylandvideo.c
    │       ├── SDL_waylandvideo.h
    │       ├── SDL_waylandvulkan.c
    │       ├── SDL_waylandvulkan.h
    │       ├── SDL_waylandwindow.c
    │       └── SDL_waylandwindow.h
    │   ├── windows
    │       ├── SDL_msctf.h
    │       ├── SDL_surface_utils.c
    │       ├── SDL_surface_utils.h
    │       ├── SDL_windowsclipboard.c
    │       ├── SDL_windowsclipboard.h
    │       ├── SDL_windowsevents.c
    │       ├── SDL_windowsevents.h
    │       ├── SDL_windowsframebuffer.c
    │       ├── SDL_windowsframebuffer.h
    │       ├── SDL_windowsgameinput.cpp
    │       ├── SDL_windowsgameinput.h
    │       ├── SDL_windowskeyboard.c
    │       ├── SDL_windowskeyboard.h
    │       ├── SDL_windowsmessagebox.c
    │       ├── SDL_windowsmessagebox.h
    │       ├── SDL_windowsmodes.c
    │       ├── SDL_windowsmodes.h
    │       ├── SDL_windowsmouse.c
    │       ├── SDL_windowsmouse.h
    │       ├── SDL_windowsopengl.c
    │       ├── SDL_windowsopengl.h
    │       ├── SDL_windowsopengles.c
    │       ├── SDL_windowsopengles.h
    │       ├── SDL_windowsrawinput.c
    │       ├── SDL_windowsrawinput.h
    │       ├── SDL_windowsshape.c
    │       ├── SDL_windowsshape.h
    │       ├── SDL_windowsvideo.c
    │       ├── SDL_windowsvideo.h
    │       ├── SDL_windowsvulkan.c
    │       ├── SDL_windowsvulkan.h
    │       ├── SDL_windowswindow.c
    │       ├── SDL_windowswindow.h
    │       └── wmmsg.h
    │   ├── x11
    │       ├── SDL_x11clipboard.c
    │       ├── SDL_x11clipboard.h
    │       ├── SDL_x11dyn.c
    │       ├── SDL_x11dyn.h
    │       ├── SDL_x11events.c
    │       ├── SDL_x11events.h
    │       ├── SDL_x11framebuffer.c
    │       ├── SDL_x11framebuffer.h
    │       ├── SDL_x11keyboard.c
    │       ├── SDL_x11keyboard.h
    │       ├── SDL_x11messagebox.c
    │       ├── SDL_x11messagebox.h
    │       ├── SDL_x11modes.c
    │       ├── SDL_x11modes.h
    │       ├── SDL_x11mouse.c
    │       ├── SDL_x11mouse.h
    │       ├── SDL_x11opengl.c
    │       ├── SDL_x11opengl.h
    │       ├── SDL_x11opengles.c
    │       ├── SDL_x11opengles.h
    │       ├── SDL_x11pen.c
    │       ├── SDL_x11pen.h
    │       ├── SDL_x11settings.c
    │       ├── SDL_x11settings.h
    │       ├── SDL_x11shape.c
    │       ├── SDL_x11shape.h
    │       ├── SDL_x11sym.h
    │       ├── SDL_x11touch.c
    │       ├── SDL_x11touch.h
    │       ├── SDL_x11video.c
    │       ├── SDL_x11video.h
    │       ├── SDL_x11vulkan.c
    │       ├── SDL_x11vulkan.h
    │       ├── SDL_x11window.c
    │       ├── SDL_x11window.h
    │       ├── SDL_x11xfixes.c
    │       ├── SDL_x11xfixes.h
    │       ├── SDL_x11xinput2.c
    │       ├── SDL_x11xinput2.h
    │       ├── SDL_x11xsync.c
    │       ├── SDL_x11xsync.h
    │       ├── SDL_x11xtest.c
    │       ├── SDL_x11xtest.h
    │       ├── edid-parse.c
    │       ├── edid.h
    │       ├── xsettings-client.c
    │       └── xsettings-client.h
    │   └── yuv2rgb
    │       ├── LICENSE
    │       ├── README.md
    │       ├── yuv_rgb.h
    │       ├── yuv_rgb_common.h
    │       ├── yuv_rgb_internal.h
    │       ├── yuv_rgb_lsx.c
    │       ├── yuv_rgb_lsx.h
    │       ├── yuv_rgb_lsx_func.h
    │       ├── yuv_rgb_sse.c
    │       ├── yuv_rgb_sse.h
    │       ├── yuv_rgb_sse_func.h
    │       ├── yuv_rgb_std.c
    │       ├── yuv_rgb_std.h
    │       └── yuv_rgb_std_func.h
├── test
    ├── CMakeLists.txt
    ├── COPYING
    ├── LICENSE.txt
    ├── android
    │   ├── cmake
    │   │   ├── AndroidManifest.xml.cmake
    │   │   ├── SDLEntryTestActivity.java.cmake
    │   │   ├── SDLTestActivity.java.cmake
    │   │   └── res
    │   │   │   ├── values
    │   │   │       └── strings.xml.cmake
    │   │   │   └── xml
    │   │   │       └── shortcuts.xml.cmake
    │   └── res
    │   │   ├── drawable
    │   │       └── sdl-test_foreground.xml
    │   │   ├── layout
    │   │       └── arguments_layout.xml
    │   │   ├── mipmap-anydpi-v26
    │   │       ├── sdl-test.xml
    │   │       └── sdl-test_round.xml
    │   │   ├── mipmap-hdpi
    │   │       ├── sdl-test.png
    │   │       └── sdl-test_round.png
    │   │   ├── mipmap-mdpi
    │   │       ├── sdl-test.png
    │   │       └── sdl-test_round.png
    │   │   ├── mipmap-xhdpi
    │   │       ├── sdl-test.png
    │   │       └── sdl-test_round.png
    │   │   ├── mipmap-xxhdpi
    │   │       ├── sdl-test.png
    │   │       └── sdl-test_round.png
    │   │   ├── mipmap-xxxhdpi
    │   │       ├── sdl-test.png
    │   │       └── sdl-test_round.png
    │   │   └── values
    │   │       ├── arg_strings.xml
    │   │       ├── sdl-test_background.xml
    │   │       └── styles.xml
    ├── audiofile.bmp
    ├── build-shaders.sh
    ├── checkkeys.c
    ├── childprocess.c
    ├── emscripten
    │   ├── driver.py
    │   ├── joystick-pre.js
    │   ├── pre.js
    │   └── server.py
    ├── gamepad_axis.bmp
    ├── gamepad_axis.h
    ├── gamepad_axis_arrow.bmp
    ├── gamepad_axis_arrow.h
    ├── gamepad_back.bmp
    ├── gamepad_back.h
    ├── gamepad_battery.bmp
    ├── gamepad_battery.h
    ├── gamepad_battery_unknown.bmp
    ├── gamepad_battery_unknown.h
    ├── gamepad_battery_wired.bmp
    ├── gamepad_battery_wired.h
    ├── gamepad_button.bmp
    ├── gamepad_button.h
    ├── gamepad_button_background.bmp
    ├── gamepad_button_background.h
    ├── gamepad_button_small.bmp
    ├── gamepad_button_small.h
    ├── gamepad_face_abxy.bmp
    ├── gamepad_face_abxy.h
    ├── gamepad_face_axby.bmp
    ├── gamepad_face_axby.h
    ├── gamepad_face_bayx.bmp
    ├── gamepad_face_bayx.h
    ├── gamepad_face_sony.bmp
    ├── gamepad_face_sony.h
    ├── gamepad_front.bmp
    ├── gamepad_front.h
    ├── gamepad_touchpad.bmp
    ├── gamepad_touchpad.h
    ├── gamepad_wired.bmp
    ├── gamepad_wired.h
    ├── gamepad_wireless.bmp
    ├── gamepad_wireless.h
    ├── gamepadutils.c
    ├── gamepadutils.h
    ├── glass.bmp
    ├── glass.h
    ├── icon.bmp
    ├── icon.h
    ├── icon2x.bmp
    ├── logaudiodev.bmp
    ├── loopwave.c
    ├── main.cpp
    ├── moose.dat
    ├── msdf_font.bmp
    ├── msdf_font.csv
    ├── n3ds
    │   └── logo48x48.png
    ├── physaudiodev.bmp
    ├── picture.xbm
    ├── pretest.c
    ├── relative_mode.markdown
    ├── sample.bmp
    ├── sample.wav
    ├── sdl-test_round.bmp
    ├── soundboard.bmp
    ├── soundboard_levels.bmp
    ├── speaker.bmp
    ├── sword.wav
    ├── template.test.in
    ├── testasyncio.c
    ├── testatomic.c
    ├── testaudio.c
    ├── testaudiohotplug.c
    ├── testaudioinfo.c
    ├── testaudiorecording.c
    ├── testaudiostreamdynamicresample.c
    ├── testautomation.c
    ├── testautomation_audio.c
    ├── testautomation_blit.c
    ├── testautomation_clipboard.c
    ├── testautomation_events.c
    ├── testautomation_guid.c
    ├── testautomation_hints.c
    ├── testautomation_images.c
    ├── testautomation_images.h
    ├── testautomation_intrinsics.c
    ├── testautomation_iostream.c
    ├── testautomation_joystick.c
    ├── testautomation_keyboard.c
    ├── testautomation_log.c
    ├── testautomation_main.c
    ├── testautomation_math.c
    ├── testautomation_mouse.c
    ├── testautomation_pixels.c
    ├── testautomation_platform.c
    ├── testautomation_properties.c
    ├── testautomation_rect.c
    ├── testautomation_render.c
    ├── testautomation_sdltest.c
    ├── testautomation_stdlib.c
    ├── testautomation_subsystems.c
    ├── testautomation_suites.h
    ├── testautomation_surface.c
    ├── testautomation_time.c
    ├── testautomation_timer.c
    ├── testautomation_video.c
    ├── testbounds.c
    ├── testcamera.c
    ├── testclipboard.c
    ├── testcolorspace.c
    ├── testcontroller.c
    ├── testcustomcursor.c
    ├── testdialog.c
    ├── testdisplayinfo.c
    ├── testdraw.c
    ├── testdrawchessboard.c
    ├── testdropfile.c
    ├── testerror.c
    ├── testevdev.c
    ├── testffmpeg.c
    ├── testffmpeg_vulkan.c
    ├── testffmpeg_vulkan.h
    ├── testfile.c
    ├── testfilesystem.c
    ├── testgeometry.c
    ├── testgl.c
    ├── testgles.c
    ├── testgles2.c
    ├── testgpu
    │   ├── build-shaders.sh
    │   ├── cube.glsl
    │   ├── cube.hlsl
    │   ├── cube.metal
    │   ├── testgpu_dxil.h
    │   ├── testgpu_metallib.h
    │   └── testgpu_spirv.h
    ├── testgpu_simple_clear.c
    ├── testgpu_spinning_cube.c
    ├── testgpurender_effects.c
    ├── testgpurender_effects_CRT.frag.dxil.h
    ├── testgpurender_effects_CRT.frag.hlsl
    ├── testgpurender_effects_CRT.frag.msl.h
    ├── testgpurender_effects_CRT.frag.spv.h
    ├── testgpurender_effects_grayscale.frag.dxil.h
    ├── testgpurender_effects_grayscale.frag.hlsl
    ├── testgpurender_effects_grayscale.frag.msl.h
    ├── testgpurender_effects_grayscale.frag.spv.h
    ├── testgpurender_msdf.c
    ├── testgpurender_msdf.frag.dxil.h
    ├── testgpurender_msdf.frag.hlsl
    ├── testgpurender_msdf.frag.msl.h
    ├── testgpurender_msdf.frag.spv.h
    ├── testhaptic.c
    ├── testhittesting.c
    ├── testhotplug.c
    ├── testiconv.c
    ├── testime.c
    ├── testintersections.c
    ├── testkeys.c
    ├── testloadso.c
    ├── testlocale.c
    ├── testlock.c
    ├── testmanymouse.c
    ├── testmessage.c
    ├── testmodal.c
    ├── testmouse.c
    ├── testmultiaudio.c
    ├── testnative.c
    ├── testnative.h
    ├── testnativecocoa.m
    ├── testnativew32.c
    ├── testnativewayland.c
    ├── testnativex11.c
    ├── testoffscreen.c
    ├── testoverlay.c
    ├── testpen.c
    ├── testplatform.c
    ├── testpopup.c
    ├── testpower.c
    ├── testprocess.c
    ├── testqsort.c
    ├── testrelative.c
    ├── testrendercopyex.c
    ├── testrendertarget.c
    ├── testresample.c
    ├── testrumble.c
    ├── testrwlock.c
    ├── testscale.c
    ├── testsem.c
    ├── testsensor.c
    ├── testshader.c
    ├── testshape.c
    ├── testsprite.c
    ├── testspriteminimal.c
    ├── testspritesurface.c
    ├── teststreaming.c
    ├── testsurround.c
    ├── testthread.c
    ├── testtime.c
    ├── testtimer.c
    ├── testtray.c
    ├── testurl.c
    ├── testutils.c
    ├── testutils.h
    ├── testver.c
    ├── testviewport.c
    ├── testvulkan.c
    ├── testwaylandcustom.c
    ├── testwm.c
    ├── testyuv.bmp
    ├── testyuv.c
    ├── testyuv_cvt.c
    ├── testyuv_cvt.h
    ├── torturethread.c
    ├── trashcan.bmp
    ├── unifont-15.1.05-license.txt
    ├── unifont-15.1.05.hex
    ├── utf8.txt
    └── win32
    │   └── sdlprocdump.c
└── wayland-protocols
    ├── alpha-modifier-v1.xml
    ├── color-management-v1.xml
    ├── cursor-shape-v1.xml
    ├── fractional-scale-v1.xml
    ├── frog-color-management-v1.xml
    ├── idle-inhibit-unstable-v1.xml
    ├── input-timestamps-unstable-v1.xml
    ├── keyboard-shortcuts-inhibit-unstable-v1.xml
    ├── pointer-constraints-unstable-v1.xml
    ├── pointer-warp-v1.xml
    ├── primary-selection-unstable-v1.xml
    ├── relative-pointer-unstable-v1.xml
    ├── tablet-v2.xml
    ├── text-input-unstable-v3.xml
    ├── viewporter.xml
    ├── wayland.xml
    ├── xdg-activation-v1.xml
    ├── xdg-decoration-unstable-v1.xml
    ├── xdg-dialog-v1.xml
    ├── xdg-foreign-unstable-v2.xml
    ├── xdg-output-unstable-v1.xml
    ├── xdg-shell.xml
    └── xdg-toplevel-icon-v1.xml


/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | <!--- Provide a general summary of your changes in the Title above -->
2 | 
3 | ## Description
4 | <!--- Describe your changes in detail -->
5 | 
6 | ## Existing Issue(s)
7 | <!--- If it fixes an open issue, please link to the issue here. -->
8 | 


--------------------------------------------------------------------------------
/.github/cmake/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | cmake_minimum_required(VERSION 3.0...3.5)
 2 | project(ci_utils C CXX)
 3 | 
 4 | set(txt "CC=${CMAKE_C_COMPILER}
 5 | CXX=${CMAKE_CXX_COMPILER}
 6 | CFLAGS=${CMAKE_C_FLAGS}
 7 | CXXFLAGS=${CMAKE_CXX_FLAGS}
 8 | LDFLAGS=${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_C_STANDARD_LIBRARIES}
 9 | ")
10 | 
11 | message("${txt}")
12 | 
13 | set(VAR_PATH "/tmp/env.txt" CACHE PATH "Where to write environment file")
14 | message(STATUS "Writing CC/CXX/CFLAGS/CXXFLAGS/LDFLAGS environment to ${VAR_PATH}")
15 | 
16 | file(WRITE "${VAR_PATH}" "${txt}")
17 | 


--------------------------------------------------------------------------------
/BUGS.txt:
--------------------------------------------------------------------------------
 1 | 
 2 | Bugs are now managed in the SDL issue tracker, here:
 3 | 
 4 |     https://github.com/libsdl-org/SDL/issues
 5 | 
 6 | You may report bugs there, and search to see if a given issue has already
 7 |  been reported, discussed, and maybe even fixed.
 8 | 
 9 | 
10 | You may also find help at the SDL forums/mailing list:
11 | 
12 |     https://discourse.libsdl.org/
13 | 
14 | or on Discord:
15 | 
16 |     https://discord.com/invite/BwpFGBWsv8
17 | 
18 | Bug reports are welcome here, but we really appreciate if you use the issue tracker, as bugs discussed on the mailing list or Discord may be forgotten or missed.
19 | 
20 | 


--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
 1 | Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
 2 |   
 3 | This software is provided 'as-is', without any express or implied
 4 | warranty.  In no event will the authors be held liable for any damages
 5 | arising from the use of this software.
 6 | 
 7 | Permission is granted to anyone to use this software for any purpose,
 8 | including commercial applications, and to alter it and redistribute it
 9 | freely, subject to the following restrictions:
10 |   
11 | 1. The origin of this software must not be misrepresented; you must not
12 |    claim that you wrote the original software. If you use this software
13 |    in a product, an acknowledgment in the product documentation would be
14 |    appreciated but is not required. 
15 | 2. Altered source versions must be plainly marked as such, and must not be
16 |    misrepresented as being the original software.
17 | 3. This notice may not be removed or altered from any source distribution.
18 | 
19 | 


--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
 1 | 
 2 | Simple DirectMedia Layer (SDL for short) is a cross-platform library
 3 | designed to make it easy to write multi-media software, such as games
 4 | and emulators.
 5 | 
 6 | You can find the latest release and additional information at:
 7 | https://www.libsdl.org/
 8 | 
 9 | Installation instructions and a quick introduction is available in
10 | [INSTALL.md](INSTALL.md)
11 | 
12 | This library is distributed under the terms of the zlib license,
13 | available in [LICENSE.txt](LICENSE.txt).
14 | 
15 | Enjoy!
16 | 
17 | Sam Lantinga (slouken@libsdl.org)
18 | 


--------------------------------------------------------------------------------
/VisualC-GDK/clean.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | find . -type f \( -name '*.user' -o -name '*.sdf' -o -name '*.ncb' -o -name '*.suo' \) -print -delete
3 | find . -type f \( -name '*.bmp' -o -name '*.wav' -o -name '*.dat' \) -print -delete
4 | find . -depth -type d \( -name Gaming.Desktop.x64 \) -exec rm -rv {} \;
5 | find . -depth -type d \( -name Gaming.Xbox.Scarlett.x64 \) -exec rm -rv {} \;
6 | find . -depth -type d \( -name Gaming.Xbox.XboxOne.x64 \) -exec rm -rv {} \;
7 | rm shaders/*.h
8 | 


--------------------------------------------------------------------------------
/VisualC-GDK/logos/Logo100x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/VisualC-GDK/logos/Logo100x100.png


--------------------------------------------------------------------------------
/VisualC-GDK/logos/Logo150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/VisualC-GDK/logos/Logo150x150.png


--------------------------------------------------------------------------------
/VisualC-GDK/logos/Logo44x44.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/VisualC-GDK/logos/Logo44x44.png


--------------------------------------------------------------------------------
/VisualC-GDK/logos/Logo480x480.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/VisualC-GDK/logos/Logo480x480.png


--------------------------------------------------------------------------------
/VisualC-GDK/logos/SplashScreenImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/VisualC-GDK/logos/SplashScreenImage.png


--------------------------------------------------------------------------------
/VisualC-GDK/tests/testcontroller/PackageLayout.xml:
--------------------------------------------------------------------------------
 1 | <Package>
 2 |   <Chunk Id="1000" Marker="Launch">
 3 |     <FileGroup DestinationPath="." SourcePath="." Include="testcontroller.exe" />
 4 |     <FileGroup DestinationPath="." SourcePath="." Include="MicrosoftGame.config" />
 5 |     <FileGroup DestinationPath="." SourcePath="." Include="*.bmp" />
 6 |     <FileGroup DestinationPath="." SourcePath="." Include="*.png" />
 7 |     <FileGroup DestinationPath="." SourcePath="." Include="*.dll" />
 8 |   </Chunk>
 9 | </Package>
10 | 


--------------------------------------------------------------------------------
/VisualC-GDK/tests/testcontroller/xboxone/MicrosoftGame.config:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Game configVersion="1">
 3 | 
 4 | 	<!-- Set these to the correct identifiers from Partner Center -->
 5 | 	<Identity Name="SDL"
 6 | 		Version="1.0.0.0"
 7 | 		Publisher="CN=Publisher"/>
 8 | 
 9 | 	<ExecutableList>
10 | 		<Executable Name="testcontroller.exe"
11 | 					TargetDeviceFamily="XboxOne"
12 | 					Id="Game" />
13 | 	</ExecutableList>
14 | 
15 | 	<!-- Set these to the correct values from Partner Center -->
16 | 	<MSAAppId>PleaseChangeMe</MSAAppId>
17 | 	<TitleId>FFFFFFFF</TitleId>
18 | 
19 | 	<ShellVisuals DefaultDisplayName="testcontroller"
20 | 					PublisherDisplayName="SDL"
21 | 					Square480x480Logo="Logo480x480.png"
22 | 					Square150x150Logo="Logo150x150.png"
23 | 					Square44x44Logo="Logo44x44.png"
24 | 					SplashScreenImage="SplashScreenImage.png"
25 | 					Description="testcontroller"
26 | 					ForegroundText="light"
27 | 					BackgroundColor="#000000"
28 | 					StoreLogo="Logo100x100.png"/>
29 | </Game>
30 | 


--------------------------------------------------------------------------------
/VisualC-GDK/tests/testcontroller/xboxseries/MicrosoftGame.config:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Game configVersion="1">
 3 | 
 4 | 	<!-- Set these to the correct identifiers from Partner Center -->
 5 | 	<Identity Name="SDL"
 6 | 		Version="1.0.0.0"
 7 | 		Publisher="CN=Publisher"/>
 8 | 
 9 | 	<ExecutableList>
10 | 		<Executable Name="testcontroller.exe"
11 | 					TargetDeviceFamily="Scarlett"
12 | 					Id="Game" />
13 | 	</ExecutableList>
14 | 
15 | 	<!-- Set these to the correct values from Partner Center -->
16 | 	<MSAAppId>PleaseChangeMe</MSAAppId>
17 | 	<TitleId>FFFFFFFF</TitleId>
18 | 
19 | 	<ShellVisuals DefaultDisplayName="testcontroller"
20 | 					PublisherDisplayName="SDL"
21 | 					Square480x480Logo="Logo480x480.png"
22 | 					Square150x150Logo="Logo150x150.png"
23 | 					Square44x44Logo="Logo44x44.png"
24 | 					SplashScreenImage="SplashScreenImage.png"
25 | 					Description="testcontroller"
26 | 					ForegroundText="light"
27 | 					BackgroundColor="#000000"
28 | 					StoreLogo="Logo100x100.png"/>
29 | </Game>
30 | 


--------------------------------------------------------------------------------
/VisualC-GDK/tests/testgdk/PackageLayout.xml:
--------------------------------------------------------------------------------
 1 | <Package>
 2 |   <Chunk Id="1000" Marker="Launch">
 3 |     <FileGroup DestinationPath="." SourcePath="." Include="testgdk.exe" />
 4 |     <FileGroup DestinationPath="." SourcePath="." Include="MicrosoftGame.config" />
 5 |     <FileGroup DestinationPath="." SourcePath="." Include="*.bmp" />
 6 |     <FileGroup DestinationPath="." SourcePath="." Include="*.wav" />
 7 |     <FileGroup DestinationPath="." SourcePath="." Include="*.png" />
 8 |     <FileGroup DestinationPath="." SourcePath="." Include="*.dll" />
 9 |   </Chunk>
10 | </Package>
11 | 


--------------------------------------------------------------------------------
/VisualC-GDK/tests/testgdk/xboxone/MicrosoftGame.config:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Game configVersion="1">
 3 | 
 4 | 	<!-- Set these to the correct identifiers from Partner Center -->
 5 | 	<Identity Name="SDL"
 6 | 		Version="1.0.0.0"
 7 | 		Publisher="CN=Publisher"/>
 8 | 
 9 | 	<ExecutableList>
10 | 		<Executable Name="testgdk.exe"
11 | 					TargetDeviceFamily="XboxOne"
12 | 					Id="Game" />
13 | 	</ExecutableList>
14 | 
15 | 	<!-- Set these to the correct values from Partner Center -->
16 | 	<MSAAppId>PleaseChangeMe</MSAAppId>
17 | 	<TitleId>FFFFFFFF</TitleId>
18 | 
19 | 	<ShellVisuals DefaultDisplayName="testgdk"
20 | 					PublisherDisplayName="SDL"
21 | 					Square480x480Logo="Logo480x480.png"
22 | 					Square150x150Logo="Logo150x150.png"
23 | 					Square44x44Logo="Logo44x44.png"
24 | 					SplashScreenImage="SplashScreenImage.png"
25 | 					Description="testgdk"
26 | 					ForegroundText="light"
27 | 					BackgroundColor="#000000"
28 | 					StoreLogo="Logo100x100.png"/>
29 | </Game>


--------------------------------------------------------------------------------
/VisualC-GDK/tests/testgdk/xboxseries/MicrosoftGame.config:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Game configVersion="1">
 3 | 
 4 | 	<!-- Set these to the correct identifiers from Partner Center -->
 5 | 	<Identity Name="SDL"
 6 | 		Version="1.0.0.0"
 7 | 		Publisher="CN=Publisher"/>
 8 | 
 9 | 	<ExecutableList>
10 | 		<Executable Name="testgdk.exe"
11 | 					TargetDeviceFamily="Scarlett"
12 | 					Id="Game" />
13 | 	</ExecutableList>
14 | 
15 | 	<!-- Set these to the correct values from Partner Center -->
16 | 	<MSAAppId>PleaseChangeMe</MSAAppId>
17 | 	<TitleId>FFFFFFFF</TitleId>
18 | 
19 | 	<ShellVisuals DefaultDisplayName="testgdk"
20 | 					PublisherDisplayName="SDL"
21 | 					Square480x480Logo="Logo480x480.png"
22 | 					Square150x150Logo="Logo150x150.png"
23 | 					Square44x44Logo="Logo44x44.png"
24 | 					SplashScreenImage="SplashScreenImage.png"
25 | 					Description="testgdk"
26 | 					ForegroundText="light"
27 | 					BackgroundColor="#000000"
28 | 					StoreLogo="Logo100x100.png"/>
29 | </Game>


--------------------------------------------------------------------------------
/VisualC-GDK/tests/testsprite/PackageLayout.xml:
--------------------------------------------------------------------------------
 1 | <Package>
 2 |   <Chunk Id="1000" Marker="Launch">
 3 |     <FileGroup DestinationPath="." SourcePath="." Include="testsprite.exe" />
 4 |     <FileGroup DestinationPath="." SourcePath="." Include="MicrosoftGame.config" />
 5 |     <FileGroup DestinationPath="." SourcePath="." Include="*.bmp" />
 6 |     <FileGroup DestinationPath="." SourcePath="." Include="*.png" />
 7 |     <FileGroup DestinationPath="." SourcePath="." Include="*.dll" />
 8 |   </Chunk>
 9 | </Package>
10 | 


--------------------------------------------------------------------------------
/VisualC-GDK/tests/testsprite/xboxone/MicrosoftGame.config:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Game configVersion="1">
 3 | 
 4 | 	<!-- Set these to the correct identifiers from Partner Center -->
 5 | 	<Identity Name="SDL"
 6 | 		Version="1.0.0.0"
 7 | 		Publisher="CN=Publisher"/>
 8 | 
 9 | 	<ExecutableList>
10 | 		<Executable Name="testsprite.exe"
11 | 					TargetDeviceFamily="XboxOne"
12 | 					Id="Game" />
13 | 	</ExecutableList>
14 | 
15 | 	<!-- Set these to the correct values from Partner Center -->
16 | 	<MSAAppId>PleaseChangeMe</MSAAppId>
17 | 	<TitleId>FFFFFFFF</TitleId>
18 | 
19 | 	<ShellVisuals DefaultDisplayName="testsprite"
20 | 					PublisherDisplayName="SDL"
21 | 					Square480x480Logo="Logo480x480.png"
22 | 					Square150x150Logo="Logo150x150.png"
23 | 					Square44x44Logo="Logo44x44.png"
24 | 					SplashScreenImage="SplashScreenImage.png"
25 | 					Description="testsprite"
26 | 					ForegroundText="light"
27 | 					BackgroundColor="#000000"
28 | 					StoreLogo="Logo100x100.png"/>
29 | </Game>


--------------------------------------------------------------------------------
/VisualC-GDK/tests/testsprite/xboxseries/MicrosoftGame.config:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Game configVersion="1">
 3 | 
 4 | 	<!-- Set these to the correct identifiers from Partner Center -->
 5 | 	<Identity Name="SDL"
 6 | 		Version="1.0.0.0"
 7 | 		Publisher="CN=Publisher"/>
 8 | 
 9 | 	<ExecutableList>
10 | 		<Executable Name="testsprite.exe"
11 | 					TargetDeviceFamily="Scarlett"
12 | 					Id="Game" />
13 | 	</ExecutableList>
14 | 
15 | 	<!-- Set these to the correct values from Partner Center -->
16 | 	<MSAAppId>PleaseChangeMe</MSAAppId>
17 | 	<TitleId>FFFFFFFF</TitleId>
18 | 
19 | 	<ShellVisuals DefaultDisplayName="testsprite"
20 | 					PublisherDisplayName="SDL"
21 | 					Square480x480Logo="Logo480x480.png"
22 | 					Square150x150Logo="Logo150x150.png"
23 | 					Square44x44Logo="Logo44x44.png"
24 | 					Description="testsprite"
25 | 					SplashScreenImage="SplashScreenImage.png"
26 | 					ForegroundText="light"
27 | 					BackgroundColor="#000000"
28 | 					StoreLogo="Logo100x100.png"/>
29 | </Game>


--------------------------------------------------------------------------------
/VisualC/SDL/Directory.Build.props:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3 |   <ItemDefinitionGroup>
4 |     <ClCompile>
5 |       <PreprocessorDefinitions>SDL_VENDOR_INFO="libsdl.org";%(PreprocessorDefinitions)</PreprocessorDefinitions>
6 |     </ClCompile>
7 |   </ItemDefinitionGroup>
8 | </Project>
9 | 


--------------------------------------------------------------------------------
/VisualC/SDL_test/Directory.Build.props:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3 |   <ItemDefinitionGroup>
4 |     <ClCompile>
5 |       <PreprocessorDefinitions>SDL_VENDOR_INFO="libsdl.org";%(PreprocessorDefinitions)</PreprocessorDefinitions>
6 |     </ClCompile>
7 |   </ItemDefinitionGroup>
8 | </Project>
9 | 


--------------------------------------------------------------------------------
/VisualC/VisualC/examples/audio/01-simple-playback/01-simple-playback.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{D68EA64A-14ED-4DBF-B86C-9EC2DDC476FB}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\audio\01-simple-playback\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\audio\01-simple-playback\*.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/VisualC/examples/audio/02-simple-playback-callback/02-simple-playback-callback.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{8C80733B-1F90-4682-A999-91699127F182}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\audio\02-simple-playback-callback\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\audio\02-simple-playback-callback\*.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/VisualC/examples/audio/03-load-wav/03-load-wav.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{E941FE4D-964C-43C6-A486-B0966633BED6}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\audio\03-load-wav\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\audio\03-load-wav\*.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/VisualC/examples/camera/01-read-and-draw/01-read-and-draw.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{20B1B6AE-B282-4E65-863A-28301B6C5E9F}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\camera\01-read-and-draw\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\camera\01-read-and-draw\*.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/VisualC/examples/game/01-snake/01-snake.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{7239E6E4-3C4E-45DE-81B4-3BC7635BE63F}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\demo\01-snake\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\demo\01-snake\*.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/VisualC/examples/pen/01-drawing-lines/01-drawing-lines.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{25BB7BA9-DCAB-4944-9F2A-E316D63AF356}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\pen\01-drawing-lines\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\pen\01-drawing-lines\*.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/VisualC/examples/renderer/01-clear/01-clear.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{541DB2BF-7BE8-402C-8D7C-4BCC5A16DCDF}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\01-clear\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\01-clear\*.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/VisualC/examples/renderer/02-primitives/02-primitives.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{1C512964-A1E4-4569-8EA4-1165D89A9FD9}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\02-primitives\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\02-primitives\*.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/VisualC/examples/renderer/03-lines/03-lines.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{156986DD-710A-4627-8159-19FD1CE0C243}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\03-lines\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\03-lines\*.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/VisualC/examples/renderer/04-points/04-points.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{3D355C93-8429-4226-82D5-F8A63BC02801}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\04-points\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\04-points\*.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/VisualC/examples/renderer/05-rectangles/05-rectangles.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{03CFCE68-B607-4781-8348-4F5F93A09A63}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\05-rectangles\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\05-rectangles\*.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/VisualC/examples/renderer/06-textures/06-textures.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{90118B89-7011-4BDA-AF6E-FAEF74BAD73C}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\06-textures\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\06-textures\*.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/VisualC/examples/renderer/07-streaming-textures/07-streaming-textures.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{2FE0342B-DB71-42D9-918D-C48099167DB9}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\07-streaming-textures\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\07-streaming-textures\*.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/VisualC/examples/renderer/08-rotating-textures/08-rotating-textures.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{E0D48833-9BD2-46EC-A1DA-BC06C521E3CB}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\08-rotating-textures\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\08-rotating-textures\*.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/VisualC/examples/renderer/09-scaling-textures/09-scaling-textures.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{76D6D01E-79C3-4599-8920-DADDD5D8F8D0}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\09-scaling-textures\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\09-scaling-textures\*.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/VisualC/examples/renderer/10-geometry/10-geometry.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{FA567681-211A-43AB-A9B2-6C1EC39CEBFF}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\10-geometry\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\10-geometry\*.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/VisualC/examples/renderer/11-color-mods/11-color-mods.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{6539C356-F420-4EBF-937A-E03C1EDEF8D5}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\11-color-mods\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\11-color-mods\*.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/VisualC/examples/renderer/14-viewport/14-viewport.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{42C0ABC6-6E99-4FE2-B4DB-8B1DFA9D2AEC}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\14-viewport\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\14-viewport\*.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/VisualC/examples/renderer/15-cliprect/15-cliprect.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{2ED69519-A202-4B6E-870E-71FD43A5B883}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\15-cliprect\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\15-cliprect\*.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/VisualC/examples/renderer/17-read-pixels/17-read-pixels.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{94DB4D43-D07D-4CD3-94FF-B6E96CC97C60}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\17-read-pixels\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\17-read-pixels\*.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/VisualC/examples/renderer/18-debug-text/18-debug-text.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{72F39D57-7D82-4040-AE2B-CA7C922506E3}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\18-debug-text\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\18-debug-text\*.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/clean.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | find . -type f \( -name '*.user' -o -name '*.sdf' -o -name '*.ncb' -o -name '*.suo' \) -print -delete
3 | find . -type f \( -name '*.bmp' -o -name '*.wav' -o -name '*.dat' \) -print -delete
4 | find . -depth -type d \( -name Win32 -o -name x64 \) -exec rm -rv {} \;
5 | 


--------------------------------------------------------------------------------
/VisualC/examples/asyncio/01-load-bitmaps/01-load-bitmaps.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{6A2BFA8B-C027-400D-A18B-3E9E1CC4DDD0}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\asyncio\01-load-bitmaps\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\asyncio\01-load-bitmaps\load-bitmaps.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/audio/01-simple-playback/01-simple-playback.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{EB448819-74BC-40C9-A61A-4D4ECD55F9D5}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\audio\01-simple-playback\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\audio\01-simple-playback\simple-playback.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/audio/02-simple-playback-callback/02-simple-playback-callback.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{6B710DFF-8A4A-40A2-BF2D-88D266F3D4F0}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\audio\02-simple-playback-callback\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\audio\02-simple-playback-callback\simple-playback-callback.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/audio/03-load-wav/03-load-wav.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{608C6C67-7766-471F-BBFF-8B00086039AF}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\audio\03-load-wav\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\audio\03-load-wav\load-wav.c" />
11 |     <Content Include="$(SolutionDir)\..\test\sample.wav" CopyToOutputDirectory="PreserveNewest" />
12 |   </ItemGroup>
13 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
14 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/audio/04-multiple-streams/04-multiple-streams.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{7117A55C-BE4E-41DB-A4FC-4070E35A8B28}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\audio\04-multiple-streams\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\audio\04-multiple-streams\multiple-streams.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/camera/01-read-and-draw/01-read-and-draw.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{510ACF0C-4012-4216-98EF-E4F155DE33CE}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\camera\01-read-and-draw\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\camera\01-read-and-draw\read-and-draw.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/demo/01-snake/01-snake.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{7820969A-5B7B-4046-BB0A-82905D457FC5}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\demo\01-snake\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\demo\01-snake\snake.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/demo/02-woodeneye-008/02-woodeneye-008.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{A3F601E0-B54C-4DD8-8A97-FDEF7624EE60}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\demo\02-woodeneye-008\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\demo\02-woodeneye-008\woodeneye-008.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/demo/03-infinite-monkeys/03-infinite-monkeys.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{75AEE75A-C016-4497-960B-D767B822237D}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\demo\03-infinite-monkeys\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\demo\03-infinite-monkeys\infinite-monkeys.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/demo/04-bytepusher/04-bytepusher.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{3DB9B219-769E-43AC-8B8B-319DB6045DCF}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\demo\04-bytepusher\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\demo\04-bytepusher\bytepusher.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/input/01-joystick-polling/01-joystick-polling.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{B3852DB7-E925-4026-8B9D-D2272EFEFF3C}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\input\01-joystick-polling\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\input\01-joystick-polling\joystick-polling.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/input/02-joystick-events/02-joystick-events.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{FCBDF2B2-1129-49AE-9406-3F219E65CA89}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\input\02-joystick-events\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\input\02-joystick-events\joystick-events.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/pen/01-drawing-lines/01-drawing-lines.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{5EDA1ED3-8213-4C12-B0DF-B631EB611804}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\pen\01-drawing-lines\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\pen\01-drawing-lines\drawing-lines.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/renderer/01-clear/01-clear.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{896557AC-7575-480C-8FFD-AB08B5DA305D}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\01-clear\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\01-clear\clear.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/renderer/02-primitives/02-primitives.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{504DC7EC-D82E-448E-9C7D-3BE7981592B3}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\02-primitives\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\02-primitives\primitives.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/renderer/03-lines/03-lines.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{BDE7DBC0-DCE7-432E-8750-C4AE55463699}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\03-lines\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\03-lines\lines.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/renderer/04-points/04-points.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{7B250AB1-92D3-4F1A-BEB4-19605A69CEDB}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\04-points\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\04-points\points.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/renderer/05-rectangles/05-rectangles.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{4C0E3A60-24F8-4D4C-81C0-C1777F5E7B17}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\05-rectangles\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\05-rectangles\rectangles.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/renderer/06-textures/06-textures.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{B3D61611-BFA3-4B66-ADC7-A3CE578A6D36}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\06-textures\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\06-textures\textures.c" />
11 |     <Content Include="$(SolutionDir)\..\test\sample.bmp" CopyToOutputDirectory="PreserveNewest" />
12 |   </ItemGroup>
13 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
14 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/renderer/07-streaming-textures/07-streaming-textures.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{540AE143-A58F-4D3B-B843-94EA8576522D}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\07-streaming-textures\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\07-streaming-textures\streaming-textures.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/renderer/08-rotating-textures/08-rotating-textures.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{7091C001-3D71-47D4-B27B-E99271E5B987}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\08-rotating-textures\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\08-rotating-textures\rotating-textures.c" />
11 |     <Content Include="$(SolutionDir)\..\test\sample.bmp" CopyToOutputDirectory="PreserveNewest" />
12 |   </ItemGroup>
13 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
14 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/renderer/09-scaling-textures/09-scaling-textures.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{AF8BC84E-0268-4D1F-9503-84D9EE84C65F}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\09-scaling-textures\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\09-scaling-textures\scaling-textures.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/renderer/10-geometry/10-geometry.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{8B9AB23E-3F40-4145-BA1C-B2CEACFBBD72}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\10-geometry\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\10-geometry\geometry.c" />
11 |     <Content Include="$(SolutionDir)\..\test\sample.bmp" CopyToOutputDirectory="PreserveNewest" />
12 |   </ItemGroup>
13 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
14 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/renderer/11-color-mods/11-color-mods.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{E9C6A7A6-22C0-42E6-AC9C-8580A396D077}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\11-color-mods\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\11-color-mods\color-mods.c" />
11 |     <Content Include="$(SolutionDir)\..\test\sample.bmp" CopyToOutputDirectory="PreserveNewest" />
12 |   </ItemGroup>
13 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
14 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/renderer/14-viewport/14-viewport.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{B85BC466-C7F0-4C6D-8ECF-ED57E775FC73}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\14-viewport\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\14-viewport\viewport.c" />
11 |     <Content Include="$(SolutionDir)\..\test\sample.bmp" CopyToOutputDirectory="PreserveNewest" />
12 |   </ItemGroup>
13 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
14 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/renderer/15-cliprect/15-cliprect.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{9DBD962F-EA4D-44E3-8E8E-31D7F060A2DC}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\15-cliprect\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\15-cliprect\cliprect.c" />
11 |     <Content Include="$(SolutionDir)\..\test\sample.bmp" CopyToOutputDirectory="PreserveNewest" />
12 |   </ItemGroup>
13 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
14 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/renderer/17-read-pixels/17-read-pixels.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{EEF00329-4598-4E34-B969-9DD4B0815E6C}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\17-read-pixels\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\17-read-pixels\read-pixels.c" />
11 |     <Content Include="$(SolutionDir)\..\test\sample.bmp" CopyToOutputDirectory="PreserveNewest" />
12 |   </ItemGroup>
13 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
14 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/renderer/18-debug-text/18-debug-text.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{CC0714AA-8A81-4E29-BEC5-2E4FBC50E7FE}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\18-debug-text\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\18-debug-text\debug-text.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/VisualC/examples/renderer/19-affine-textures/19-affine-textures.vcxproj:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3 |   <PropertyGroup Label="Globals">
 4 |     <ProjectGuid>{E21C50BF-54B4-434C-AA24-9A6469553987}</ProjectGuid>
 5 |   </PropertyGroup>
 6 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 7 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 8 |   <ItemGroup>
 9 |     <None Include="$(SolutionDir)\..\examples\renderer\19-affine-textures\README.txt" />
10 |     <ClCompile Include="$(SolutionDir)\..\examples\renderer\19-affine-textures\affine-textures.c" />
11 |   </ItemGroup>
12 |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
13 | </Project>


--------------------------------------------------------------------------------
/Xcode/SDL/Info-Framework.plist:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="UTF-8"?>
 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 3 | <plist version="1.0">
 4 | <dict>
 5 | 	<key>CFBundleDevelopmentRegion</key>
 6 | 	<string>English</string>
 7 | 	<key>CFBundleExecutable</key>
 8 | 	<string>${EXECUTABLE_NAME}</string>
 9 | 	<key>CFBundleGetInfoString</key>
10 | 	<string>http://www.libsdl.org</string>
11 | 	<key>CFBundleIconFile</key>
12 | 	<string></string>
13 | 	<key>CFBundleIdentifier</key>
14 | 	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
15 | 	<key>CFBundleInfoDictionaryVersion</key>
16 | 	<string>6.0</string>
17 | 	<key>CFBundleName</key>
18 | 	<string>Simple DirectMedia Layer</string>
19 | 	<key>CFBundlePackageType</key>
20 | 	<string>FMWK</string>
21 | 	<key>CFBundleShortVersionString</key>
22 | 	<string>3.3.0</string>
23 | 	<key>CFBundleSignature</key>
24 | 	<string>SDLX</string>
25 | 	<key>CFBundleVersion</key>
26 | 	<string>3.3.0</string>
27 | </dict>
28 | </plist>
29 | 


--------------------------------------------------------------------------------
/Xcode/SDL/SDL3/Info.plist:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="UTF-8"?>
 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 3 | <plist version="1.0">
 4 | <dict>
 5 | 	<key>CFBundleDevelopmentRegion</key>
 6 | 	<string>$(DEVELOPMENT_LANGUAGE)</string>
 7 | 	<key>CFBundleExecutable</key>
 8 | 	<string>$(EXECUTABLE_NAME)</string>
 9 | 	<key>CFBundleIdentifier</key>
10 | 	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
11 | 	<key>CFBundleInfoDictionaryVersion</key>
12 | 	<string>6.0</string>
13 | 	<key>CFBundleName</key>
14 | 	<string>$(PRODUCT_NAME)</string>
15 | 	<key>CFBundlePackageType</key>
16 | 	<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
17 | 	<key>CFBundleShortVersionString</key>
18 | 	<string>1.0</string>
19 | 	<key>CFBundleVersion</key>
20 | 	<string>$(CURRENT_PROJECT_VERSION)</string>
21 | </dict>
22 | </plist>
23 | 


--------------------------------------------------------------------------------
/Xcode/SDL/config.xcconfig:
--------------------------------------------------------------------------------
 1 | //
 2 | //  config.xcconfig
 3 | //
 4 | 
 5 | // Configuration settings file format documentation can be found at:
 6 | // https://help.apple.com/xcode/#/dev745c5c974
 7 | 
 8 | // Include any optional config for this build
 9 | #include? "build.xcconfig"
10 | 
11 | CONFIG_PREPROCESSOR_DEFINITIONS = $(inherited) $(SDL_PREPROCESSOR_DEFINITIONS)
12 | CONFIG_FRAMEWORK_LDFLAGS = $(inherited)
13 | 


--------------------------------------------------------------------------------
/Xcode/SDL/pkg-support/SDL.info:
--------------------------------------------------------------------------------
 1 | Title SDL 3.3.0
 2 | Version 1
 3 | Description SDL Library for macOS (http://www.libsdl.org)
 4 | DefaultLocation /Library/Frameworks
 5 | Diskname (null)
 6 | DeleteWarning 
 7 | NeedsAuthorization NO
 8 | DisableStop NO
 9 | UseUserMask NO
10 | Application NO
11 | Relocatable YES
12 | Required NO
13 | InstallOnly NO
14 | RequiresReboot NO
15 | InstallFat NO
16 | 


--------------------------------------------------------------------------------
/Xcode/SDL/pkg-support/build.xcconfig:
--------------------------------------------------------------------------------
1 | //
2 | //  build.xcconfig
3 | //
4 | 
5 | // Configuration settings file format documentation can be found at:
6 | // https://help.apple.com/xcode/#/dev745c5c974
7 | 
8 | SDL_PREPROCESSOR_DEFINITIONS = SDL_VENDOR_INFO=\"libsdl.org\"
9 | 


--------------------------------------------------------------------------------
/Xcode/SDL/pkg-support/resources/SDL_DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/Xcode/SDL/pkg-support/resources/SDL_DS_Store


--------------------------------------------------------------------------------
/Xcode/SDL/pkg-support/resources/framework/INSTALL.md:
--------------------------------------------------------------------------------
 1 | 
 2 | # Using this package
 3 | 
 4 | This package contains SDL built for Xcode.
 5 | 
 6 | To use this package in Xcode, drag `SDL3.framework` into your project.
 7 | 
 8 | # Documentation
 9 | 
10 | An API reference, tutorials, and additional documentation is available at:
11 | 
12 | https://wiki.libsdl.org/SDL3
13 | 
14 | # Example code
15 | 
16 | There are simple example programs available at:
17 | 
18 | https://examples.libsdl.org/SDL3
19 | 
20 | # Discussions
21 | 
22 | ## Discord
23 | 
24 | You can join the official Discord server at:
25 | 
26 | https://discord.com/invite/BwpFGBWsv8
27 | 
28 | ## Forums/mailing lists
29 | 
30 | You can join SDL development discussions at:
31 | 
32 | https://discourse.libsdl.org/
33 | 
34 | Once you sign up, you can use the forum through the website or as a mailing list from your email client.
35 | 
36 | ## Announcement list
37 | 
38 | You can sign up for the low traffic announcement list at:
39 | 
40 | https://www.libsdl.org/mailing-list.php
41 | 
42 | 


--------------------------------------------------------------------------------
/Xcode/SDL/pkg-support/sdl_logo.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/Xcode/SDL/pkg-support/sdl_logo.pdf


--------------------------------------------------------------------------------
/Xcode/SDLTest/config.xcconfig:
--------------------------------------------------------------------------------
 1 | //
 2 | //  config.xcconfig
 3 | //  SDL tests
 4 | //
 5 | 
 6 | // Configuration settings file format documentation can be found at:
 7 | // https://help.apple.com/xcode/#/dev745c5c974
 8 | 
 9 | // Include any optional config for this build
10 | // This allows you to set DEVELOPMENT_TEAM for all targets, for example.
11 | #include? "build.xcconfig"
12 | 
13 | CONFIG_FRAMEWORK_LDFLAGS = -lSDL3_test
14 | 
15 | 


--------------------------------------------------------------------------------
/android-project/app/jni/Android.mk:
--------------------------------------------------------------------------------
1 | include $(call all-subdir-makefiles)
2 | 


--------------------------------------------------------------------------------
/android-project/app/jni/Application.mk:
--------------------------------------------------------------------------------
 1 | 
 2 | # Uncomment this if you're using STL in your project
 3 | # You can find more information here:
 4 | # https://developer.android.com/ndk/guides/cpp-support
 5 | # APP_STL := c++_shared
 6 | 
 7 | APP_ABI := armeabi-v7a arm64-v8a x86 x86_64
 8 | 
 9 | # Min runtime API level
10 | APP_PLATFORM=android-16
11 | 


--------------------------------------------------------------------------------
/android-project/app/jni/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | cmake_minimum_required(VERSION 3.6)
 2 | 
 3 | project(GAME)
 4 | 
 5 | # SDL sources are in a subfolder named "SDL"
 6 | add_subdirectory(SDL)
 7 | 
 8 | # Compilation of companion libraries
 9 | #add_subdirectory(SDL_image)
10 | #add_subdirectory(SDL_mixer)
11 | #add_subdirectory(SDL_ttf)
12 | 
13 | # Your game and its CMakeLists.txt are in a subfolder named "src"
14 | add_subdirectory(src)
15 | 
16 | 


--------------------------------------------------------------------------------
/android-project/app/jni/src/Android.mk:
--------------------------------------------------------------------------------
 1 | LOCAL_PATH := $(call my-dir)
 2 | 
 3 | include $(CLEAR_VARS)
 4 | 
 5 | LOCAL_MODULE := main
 6 | 
 7 | # Add your application source files here...
 8 | LOCAL_SRC_FILES := \
 9 |     YourSourceHere.c
10 | 
11 | SDL_PATH := ../SDL  # SDL
12 | 
13 | LOCAL_C_INCLUDES := $(LOCAL_PATH)/$(SDL_PATH)/include  # SDL
14 | 
15 | LOCAL_SHARED_LIBRARIES := SDL3
16 | 
17 | LOCAL_LDLIBS := -lGLESv1_CM -lGLESv2 -lOpenSLES -llog -landroid  # SDL
18 | 
19 | include $(BUILD_SHARED_LIBRARY)
20 | 


--------------------------------------------------------------------------------
/android-project/app/jni/src/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | cmake_minimum_required(VERSION 3.6)
 2 | 
 3 | project(my_app)
 4 | 
 5 | if(NOT TARGET SDL3::SDL3)
 6 |     find_package(SDL3 CONFIG)
 7 | endif()
 8 | 
 9 | if(NOT TARGET SDL3::SDL3)
10 |     find_library(SDL3_LIBRARY NAMES "SDL3")
11 |     find_path(SDL3_INCLUDE_DIR NAMES "SDL3/SDL.h")
12 |     add_library(SDL3::SDL3 UNKNOWN IMPORTED)
13 |     set_property(TARGET SDL3::SDL3 PROPERTY IMPORTED_LOCATION "${SDL3_LIBRARY}")
14 |     set_property(TARGET SDL3::SDL3 PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${SDL3_INCLUDE_DIR}")
15 | endif()
16 | 
17 | if(NOT TARGET SDL3::SDL3)
18 |     message(FATAL_ERROR "Cannot find SDL3.
19 | 
20 | Possible ways to fix this:
21 | - Use a SDL3 Android aar archive, and configure gradle to use it: prefab is required.
22 | - Add add_subdirectory(path/to/SDL) to your CMake script, and make sure a vendored SDL is present there.
23 | ")
24 | endif()
25 | 
26 | add_library(main SHARED
27 |     YourSourceHere.c
28 | )
29 | target_link_libraries(main PRIVATE SDL3::SDL3)
30 | 


--------------------------------------------------------------------------------
/android-project/app/src/main/java/org/libsdl/app/HIDDevice.java:
--------------------------------------------------------------------------------
 1 | package org.libsdl.app;
 2 | 
 3 | import android.hardware.usb.UsbDevice;
 4 | 
 5 | interface HIDDevice
 6 | {
 7 |     public int getId();
 8 |     public int getVendorId();
 9 |     public int getProductId();
10 |     public String getSerialNumber();
11 |     public int getVersion();
12 |     public String getManufacturerName();
13 |     public String getProductName();
14 |     public UsbDevice getDevice();
15 |     public boolean open();
16 |     public int writeReport(byte[] report, boolean feature);
17 |     public boolean readReport(byte[] report, boolean feature);
18 |     public void setFrozen(boolean frozen);
19 |     public void close();
20 |     public void shutdown();
21 | }
22 | 


--------------------------------------------------------------------------------
/android-project/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/android-project/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/android-project/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/android-project/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/android-project/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/android-project/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/android-project/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/android-project/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/android-project/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/android-project/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/android-project/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/android-project/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">Game</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/android-project/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <!-- Base application theme. -->
4 |     <style name="AppTheme" parent="android:Theme.NoTitleBar.Fullscreen">
5 |         <!-- Customize your theme here. -->
6 |     </style>
7 | </resources>
8 | 


--------------------------------------------------------------------------------
/android-project/build.gradle:
--------------------------------------------------------------------------------
 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
 2 | 
 3 | buildscript {
 4 |     repositories {
 5 |         mavenCentral()
 6 |         google()
 7 |     }
 8 |     dependencies {
 9 |         classpath 'com.android.tools.build:gradle:8.7.3'
10 | 
11 |         // NOTE: Do not place your application dependencies here; they belong
12 |         // in the individual module build.gradle files
13 |     }
14 | }
15 | 
16 | allprojects {
17 |     repositories {
18 |         mavenCentral()
19 |         google()
20 |     }
21 | }
22 | 
23 | task clean(type: Delete) {
24 |     delete rootProject.buildDir
25 | }
26 | 


--------------------------------------------------------------------------------
/android-project/gradle.properties:
--------------------------------------------------------------------------------
 1 | # Project-wide Gradle settings.
 2 | 
 3 | # IDE (e.g. Android Studio) users:
 4 | # Gradle settings configured through the IDE *will override*
 5 | # any settings specified in this file.
 6 | 
 7 | # For more details on how to configure your build environment visit
 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
 9 | 
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | org.gradle.jvmargs=-Xmx1536m
13 | 
14 | # When configured, Gradle will run in incubating parallel mode.
15 | # This option should only be used with decoupled projects. More details, visit
16 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
17 | # org.gradle.parallel=true
18 | 


--------------------------------------------------------------------------------
/android-project/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/android-project/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/android-project/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Thu Nov 11 18:20:34 PST 2021
2 | distributionBase=GRADLE_USER_HOME
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
4 | distributionPath=wrapper/dists
5 | zipStorePath=wrapper/dists
6 | zipStoreBase=GRADLE_USER_HOME
7 | 


--------------------------------------------------------------------------------
/android-project/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/build-scripts/cmake-toolchain-mingw64-i686.cmake:
--------------------------------------------------------------------------------
 1 | set(CMAKE_SYSTEM_NAME Windows)
 2 | set(CMAKE_SYSTEM_PROCESSOR x86)
 3 | 
 4 | find_program(CMAKE_C_COMPILER NAMES i686-w64-mingw32-gcc)
 5 | find_program(CMAKE_CXX_COMPILER NAMES i686-w64-mingw32-g++)
 6 | find_program(CMAKE_RC_COMPILER NAMES i686-w64-mingw32-windres windres)
 7 | 
 8 | if(NOT CMAKE_C_COMPILER)
 9 | 	message(FATAL_ERROR "Failed to find CMAKE_C_COMPILER.")
10 | endif()
11 | 
12 | if(NOT CMAKE_CXX_COMPILER)
13 | 	message(FATAL_ERROR "Failed to find CMAKE_CXX_COMPILER.")
14 | endif()
15 | 
16 | if(NOT CMAKE_RC_COMPILER)
17 |         message(FATAL_ERROR "Failed to find CMAKE_RC_COMPILER.")
18 | endif()
19 | 


--------------------------------------------------------------------------------
/build-scripts/cmake-toolchain-mingw64-x86_64.cmake:
--------------------------------------------------------------------------------
 1 | set(CMAKE_SYSTEM_NAME Windows)
 2 | set(CMAKE_SYSTEM_PROCESSOR x86_64)
 3 | 
 4 | find_program(CMAKE_C_COMPILER NAMES x86_64-w64-mingw32-gcc)
 5 | find_program(CMAKE_CXX_COMPILER NAMES x86_64-w64-mingw32-g++)
 6 | find_program(CMAKE_RC_COMPILER NAMES x86_64-w64-mingw32-windres windres)
 7 | 
 8 | if(NOT CMAKE_C_COMPILER)
 9 | 	message(FATAL_ERROR "Failed to find CMAKE_C_COMPILER.")
10 | endif()
11 | 
12 | if(NOT CMAKE_CXX_COMPILER)
13 | 	message(FATAL_ERROR "Failed to find CMAKE_CXX_COMPILER.")
14 | endif()
15 | 
16 | if(NOT CMAKE_RC_COMPILER)
17 |         message(FATAL_ERROR "Failed to find CMAKE_RC_COMPILER.")
18 | endif()
19 | 


--------------------------------------------------------------------------------
/build-scripts/cmake-toolchain-qnx-aarch64le.cmake:
--------------------------------------------------------------------------------
 1 | set(CMAKE_SYSTEM_NAME QNX)
 2 | 
 3 | set(arch gcc_ntoaarch64le)
 4 | 
 5 | set(CMAKE_C_COMPILER qcc)
 6 | set(CMAKE_C_COMPILER_TARGET ${arch})
 7 | set(CMAKE_CXX_COMPILER q++)
 8 | set(CMAKE_CXX_COMPILER_TARGET ${arch})
 9 | 
10 | set(CMAKE_SYSROOT $ENV{QNX_TARGET})
11 | 
12 | set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
13 | set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
14 | set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
15 | 


--------------------------------------------------------------------------------
/build-scripts/cmake-toolchain-qnx-x86_64.cmake:
--------------------------------------------------------------------------------
 1 | set(CMAKE_SYSTEM_NAME QNX)
 2 | 
 3 | set(arch gcc_ntox86_64)
 4 | 
 5 | set(CMAKE_C_COMPILER qcc)
 6 | set(CMAKE_C_COMPILER_TARGET ${arch})
 7 | set(CMAKE_CXX_COMPILER q++)
 8 | set(CMAKE_CXX_COMPILER_TARGET ${arch})
 9 | 
10 | set(CMAKE_SYSROOT $ENV{QNX_TARGET})
11 | 
12 | set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
13 | set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
14 | set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
15 | 


--------------------------------------------------------------------------------
/build-scripts/pkg-support/android/aar/description.json.in:
--------------------------------------------------------------------------------
1 | {
2 |     "name": "@<@PROJECT_NAME@>@",
3 |     "version": "@<@PROJECT_VERSION@>@",
4 |     "git-hash": "@<@PROJECT_COMMIT@>@"
5 | }
6 | 


--------------------------------------------------------------------------------
/build-scripts/pkg-support/mingw/cmake/SDL3Config.cmake:
--------------------------------------------------------------------------------
 1 | # SDL3 CMake configuration file:
 2 | # This file is meant to be placed in a cmake subfolder of SDL3-devel-3.x.y-mingw
 3 | 
 4 | if(CMAKE_SIZEOF_VOID_P EQUAL 4)
 5 |     set(sdl3_config_path "${CMAKE_CURRENT_LIST_DIR}/../i686-w64-mingw32/lib/cmake/SDL3/SDL3Config.cmake")
 6 | elseif(CMAKE_SIZEOF_VOID_P EQUAL 8)
 7 |     set(sdl3_config_path "${CMAKE_CURRENT_LIST_DIR}/../x86_64-w64-mingw32/lib/cmake/SDL3/SDL3Config.cmake")
 8 | else()
 9 |     set(SDL3_FOUND FALSE)
10 |     return()
11 | endif()
12 | 
13 | if(NOT EXISTS "${sdl3_config_path}")
14 |     message(WARNING "${sdl3_config_path} does not exist: MinGW development package is corrupted")
15 |     set(SDL3_FOUND FALSE)
16 |     return()
17 | endif()
18 | 
19 | include("${sdl3_config_path}")
20 | 


--------------------------------------------------------------------------------
/build-scripts/pkg-support/mingw/cmake/SDL3ConfigVersion.cmake:
--------------------------------------------------------------------------------
 1 | # SDL3 CMake version configuration file:
 2 | # This file is meant to be placed in a cmake subfolder of SDL3-devel-3.x.y-mingw
 3 | 
 4 | if(CMAKE_SIZEOF_VOID_P EQUAL 4)
 5 |     set(sdl3_config_path "${CMAKE_CURRENT_LIST_DIR}/../i686-w64-mingw32/lib/cmake/SDL3/SDL3ConfigVersion.cmake")
 6 | elseif(CMAKE_SIZEOF_VOID_P EQUAL 8)
 7 |     set(sdl3_config_path "${CMAKE_CURRENT_LIST_DIR}/../x86_64-w64-mingw32/lib/cmake/SDL3/SDL3ConfigVersion.cmake")
 8 | else()
 9 |     set(PACKAGE_VERSION_UNSUITABLE TRUE)
10 |     return()
11 | endif()
12 | 
13 | if(NOT EXISTS "${sdl3_config_path}")
14 |     message(WARNING "${sdl3_config_path} does not exist: MinGW development package is corrupted")
15 |     set(PACKAGE_VERSION_UNSUITABLE TRUE)
16 |     return()
17 | endif()
18 | 
19 | include("${sdl3_config_path}")
20 | 


--------------------------------------------------------------------------------
/build-scripts/pkg-support/msvc/Directory.Build.props:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3 |   <ItemDefinitionGroup>
4 |     <ClCompile>
5 |       <PreprocessorDefinitions>SDL_VENDOR_INFO="libsdl.org";%(PreprocessorDefinitions)</PreprocessorDefinitions>
6 |     </ClCompile>
7 |   </ItemDefinitionGroup>
8 | </Project>
9 | 


--------------------------------------------------------------------------------
/build-scripts/pkg-support/msvc/arm64/INSTALL.md.in:
--------------------------------------------------------------------------------
 1 | 
 2 | # Using this package
 3 | 
 4 | This package contains @<@PROJECT_NAME@>@ built for arm64 Windows.
 5 | 
 6 | To use this package, simply replace an existing 64-bit ARM @<@PROJECT_NAME@>@.dll with the one included here.
 7 | 
 8 | # Development packages
 9 | 
10 | If you're looking for packages with headers and libraries, you can download one of these:
11 | -  @<@PROJECT_NAME@>@-devel-@<@PROJECT_VERSION@>@-VC.zip, for development using Visual Studio
12 | -  @<@PROJECT_NAME@>@-devel-@<@PROJECT_VERSION@>@-mingw.zip, for development using mingw-w64
13 | 
14 | 


--------------------------------------------------------------------------------
/build-scripts/pkg-support/msvc/x64/INSTALL.md.in:
--------------------------------------------------------------------------------
 1 | 
 2 | # Using this package
 3 | 
 4 | This package contains @<@PROJECT_NAME@>@ built for x64 Windows.
 5 | 
 6 | To use this package, simply replace an existing 64-bit @<@PROJECT_NAME@>@.dll with the one included here.
 7 | 
 8 | # Development packages
 9 | 
10 | If you're looking for packages with headers and libraries, you can download one of these:
11 | -  @<@PROJECT_NAME@>@-devel-@<@PROJECT_VERSION@>@-VC.zip, for development using Visual Studio
12 | -  @<@PROJECT_NAME@>@-devel-@<@PROJECT_VERSION@>@-mingw.zip, for development using mingw-w64
13 | 
14 | 


--------------------------------------------------------------------------------
/build-scripts/pkg-support/msvc/x86/INSTALL.md.in:
--------------------------------------------------------------------------------
 1 | 
 2 | # Using this package
 3 | 
 4 | This package contains @<@PROJECT_NAME@>@ built for x86 Windows.
 5 | 
 6 | To use this package, simply replace an existing 32-bit @<@PROJECT_NAME@>@.dll with the one included here.
 7 | 
 8 | # Development packages
 9 | 
10 | If you're looking for packages with headers and libraries, you can download one of these:
11 | -  @<@PROJECT_NAME@>@-devel-@<@PROJECT_VERSION@>@-VC.zip, for development using Visual Studio
12 | -  @<@PROJECT_NAME@>@-devel-@<@PROJECT_VERSION@>@-mingw.zip, for development using mingw-w64
13 | 
14 | 


--------------------------------------------------------------------------------
/build-scripts/strip_fPIC.sh:
--------------------------------------------------------------------------------
 1 | #!/bin/sh
 2 | #
 3 | # libtool assumes that the compiler can handle the -fPIC flag
 4 | # This isn't always true (for example, nasm can't handle it)
 5 | command=""
 6 | while [ $# -gt 0 ]; do
 7 |     case "$1" in
 8 |         -?PIC)
 9 |             # Ignore -fPIC and -DPIC options
10 |             ;;
11 |         -fno-common)
12 |             # Ignore -fPIC and -DPIC options
13 |             ;;
14 |         *)
15 |             command="$command $1"
16 |             ;;
17 |     esac
18 |     shift
19 | done
20 | echo $command
21 | exec $command
22 | 


--------------------------------------------------------------------------------
/build-scripts/update-copyright.sh:
--------------------------------------------------------------------------------
 1 | #!/bin/sh
 2 | 
 3 | if [ "$SED" = "" ]; then
 4 |     if type gsed >/dev/null; then
 5 |         SED=gsed
 6 |     else
 7 |         SED=sed
 8 |     fi
 9 | fi
10 | 
11 | find . -type f \
12 | | grep -v \.git                                 \
13 | | while read file; do                           \
14 |     LC_ALL=C $SED -b -i "s/\(.*Copyright.*\)[0-9]\{4\}\( *Sam Lantinga\)/\1`date +%Y`\2/" "$file"; \
15 | done
16 | 


--------------------------------------------------------------------------------
/cmake/SDL3jarTargets.cmake.in:
--------------------------------------------------------------------------------
 1 | @PACKAGE_INIT@
 2 | 
 3 | set_and_check(SDL3_JAR "@PACKAGE_SDL_INSTALL_JAVADIR@/SDL3/SDL3-@SDL3_VERSION@.jar")
 4 | 
 5 | if(NOT TARGET SDL3::Jar)
 6 |   add_library(SDL3::Jar INTERFACE IMPORTED)
 7 |   set_property(TARGET SDL3::Jar PROPERTY JAR_FILE "${SDL3_JAR}")
 8 | endif()
 9 | 
10 | unset(SDL3_JAR)
11 | 


--------------------------------------------------------------------------------
/cmake/cmake_uninstall.cmake.in:
--------------------------------------------------------------------------------
 1 | if (NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
 2 |     message(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_BINARY_DIR@/install_manifest.txt\"")
 3 | endif()
 4 | 
 5 | file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files)
 6 | string(REGEX REPLACE "\n" ";" files "${files}")
 7 | foreach(file ${files})
 8 |     message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
 9 |     execute_process(
10 |         COMMAND @CMAKE_COMMAND@ -E remove "$ENV{DESTDIR}${file}"
11 |         OUTPUT_VARIABLE rm_out
12 |         RESULT_VARIABLE rm_retval
13 |     )
14 |     if(NOT ${rm_retval} EQUAL 0)
15 |         message(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
16 |     endif (NOT ${rm_retval} EQUAL 0)
17 | endforeach()
18 | 


--------------------------------------------------------------------------------
/cmake/sdl3.pc.in:
--------------------------------------------------------------------------------
 1 | prefix=@SDL_PKGCONFIG_PREFIX@
 2 | exec_prefix=${prefix}
 3 | libdir=@LIBDIR_FOR_PKG_CONFIG@
 4 | includedir=@INCLUDEDIR_FOR_PKG_CONFIG@
 5 | 
 6 | Name: sdl3
 7 | Description: Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer.
 8 | URL: https://www.libsdl.org/
 9 | Version: @PROJECT_VERSION@
10 | Requires.private: @SDL_PC_PRIVATE_REQUIRES@
11 | Conflicts:
12 | Libs: -L${libdir} @SDL_RLD_FLAGS@ @SDL_PC_LIBS@ @SDL_PC_SECTION_LIBS_PRIVATE@ @SDL_PC_STATIC_LIBS@
13 | Cflags: -I${includedir} @SDL_PC_CFLAGS@
14 | 


--------------------------------------------------------------------------------
/cmake/test/inc_sdl_slash.c:
--------------------------------------------------------------------------------
1 | #include "SDL3/SDL.h"
2 | #include "SDL3/SDL_main.h"
3 | 
4 | void inc_sdl_slash(void) {
5 |     SDL_SetMainReady();
6 |     SDL_Init(0);
7 |     SDL_Quit();
8 | }
9 | 


--------------------------------------------------------------------------------
/cmake/test/main.swift:
--------------------------------------------------------------------------------
 1 | /* Contributed by Piotr Usewicz (https://github.com/pusewicz) */
 2 | 
 3 | import SDL3
 4 | 
 5 | guard SDL_Init(SDL_INIT_VIDEO) else {
 6 |   fatalError("SDL_Init error: \(String(cString: SDL_GetError()))")
 7 | }
 8 | 
 9 | var sdlVersion = SDL_GetVersion()
10 | 
11 | print("SDL version: \(sdlVersion)")
12 | 
13 | SDL_Quit()
14 | 


--------------------------------------------------------------------------------
/cmake/test/main_cli.c:
--------------------------------------------------------------------------------
 1 | #define SDL_MAIN_HANDLED
 2 | #include <SDL3/SDL.h>
 3 | #include <SDL3/SDL_main.h>
 4 | 
 5 | int main(int argc, char *argv[])
 6 | {
 7 |     SDL_SetMainReady();
 8 |     if (!SDL_Init(0)) {
 9 |         SDL_Log("Could not initialize SDL: %s", SDL_GetError());
10 |         return 1;
11 |     }
12 |     SDL_Delay(100);
13 |     SDL_Quit();
14 |     return 0;
15 | }
16 | 


--------------------------------------------------------------------------------
/cmake/test/main_lib.c:
--------------------------------------------------------------------------------
 1 | #include <SDL3/SDL.h>
 2 | #define SDL_MAIN_HANDLED /* don't drag in header-only SDL_main implementation */
 3 | #include <SDL3/SDL_main.h>
 4 | 
 5 | #include EXPORT_HEADER
 6 | 
 7 | #ifdef _WIN32
 8 | #include <windows.h>
 9 | BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) {
10 |     return TRUE;
11 | }
12 | #endif
13 | 
14 | int MYLIBRARY_EXPORT mylibrary_init(void);
15 | void MYLIBRARY_EXPORT mylibrary_quit(void);
16 | int MYLIBRARY_EXPORT mylibrary_work(void);
17 | 
18 | int mylibrary_init(void) {
19 |     SDL_SetMainReady();
20 |     if (!SDL_Init(0)) {
21 |         SDL_Log("Could not initialize SDL: %s", SDL_GetError());
22 |         return 1;
23 |     }
24 |     return 0;
25 | }
26 | 
27 | void mylibrary_quit(void) {
28 |     SDL_Quit();
29 | }
30 | 
31 | int mylibrary_work(void) {
32 |     SDL_Delay(100);
33 |     return 0;
34 | }
35 | 


--------------------------------------------------------------------------------
/cmake/test/sdltest.c:
--------------------------------------------------------------------------------
 1 | #define SDL_MAIN_USE_CALLBACKS
 2 | #include <SDL3/SDL.h>
 3 | #include <SDL3/SDL_main.h>
 4 | #include <SDL3/SDL_test.h>
 5 | 
 6 | SDL_AppResult SDL_AppEvent(void *appstate, SDL_Event *event)
 7 | {
 8 |     return SDL_APP_SUCCESS;
 9 | }
10 | 
11 | SDL_AppResult SDL_AppIterate(void *appstate)
12 | {
13 |     return SDL_APP_SUCCESS;
14 | }
15 | 
16 | SDL_AppResult SDL_AppInit(void **appstate, int argc, char *argv[])
17 | {
18 |     SDLTest_CommonState state;
19 |     SDLTest_CommonDefaultArgs(&state, argc, argv);
20 |     return SDL_APP_SUCCESS;
21 | }
22 | 
23 | void SDL_AppQuit(void *appstate, SDL_AppResult result) {
24 | }
25 | 


--------------------------------------------------------------------------------
/cmake/test/swift/module.modulemap:
--------------------------------------------------------------------------------
1 | module SDL3 [extern_c] {
2 |     header "shim.h"
3 |     export *
4 | }
5 | 


--------------------------------------------------------------------------------
/cmake/test/swift/shim.h:
--------------------------------------------------------------------------------
1 | /* Contributed by Piotr Usewicz (https://github.com/pusewicz) */
2 | 
3 | #include <SDL3/SDL.h>
4 | 


--------------------------------------------------------------------------------
/docs/INTRO-androidstudio.md:
--------------------------------------------------------------------------------
 1 | 
 2 | # Introduction to SDL with Android Studio
 3 | 
 4 | We'll start by creating a simple project to build and run [hello.c](hello.c)
 5 | 
 6 | - Use our handy script to create a template project:
 7 | ```sh
 8 | ./build-scripts/create-android-project.py org.libsdl.hello docs/hello.c
 9 | ```
10 | - Run Android Studio and open the newly created build/org.libsdl.hello directory
11 | - Build and run!
12 | 
13 | A more complete example is available at:
14 | 
15 | https://github.com/Ravbug/sdl3-sample
16 | 
17 | Additional information and troubleshooting is available in [README-android.md](README-android.md)
18 | 


--------------------------------------------------------------------------------
/docs/README-bsd.md:
--------------------------------------------------------------------------------
1 | # FreeBSD / OpenBSD / NetBSD
2 | 
3 | SDL is fully supported on BSD platforms, and is built using [CMake](README-cmake.md).
4 | 
5 | If you want to run on the console, you can take a look at [KMSDRM support on BSD](README-kmsbsd.md)
6 | 
7 | 


--------------------------------------------------------------------------------
/docs/README-haiku.md:
--------------------------------------------------------------------------------
1 | # Haiku OS
2 | 
3 | SDL is fully supported on Haiku OS, and is built using [CMake](README-cmake.md).
4 | 
5 | 


--------------------------------------------------------------------------------
/docs/README-ps4.md:
--------------------------------------------------------------------------------
1 | # Sony PlayStation 4
2 | 
3 | SDL3 runs on the PS4! There are commercial games shipping with this port. This port is kept in a separate repository, but is available for free, under the zlib license, to anyone that is under NDA for PlayStation development with Sony. Please contact Ryan (icculus at icculus dot org) for details.
4 | 


--------------------------------------------------------------------------------
/docs/README-ps5.md:
--------------------------------------------------------------------------------
1 | # Sony PlayStation 5
2 | 
3 | SDL3 runs on the PS5! There are commercial games shipping with this port. This port is kept in a separate repository, but is available for free, under the zlib license, to anyone that is under NDA for PlayStation development with Sony. Please contact Ryan (icculus at icculus dot org) for details.
4 | 


--------------------------------------------------------------------------------
/docs/README-psp.md:
--------------------------------------------------------------------------------
 1 | PSP
 2 | ======
 3 | SDL port for the Sony PSP contributed by:
 4 | - Captain Lex
 5 | - Francisco Javier Trujillo Mata
 6 | - Wouter Wijsman
 7 | 
 8 | 
 9 | Credit to
10 |    Marcus R.Brown, Jim Paris, Matthew H for the original SDL 1.2 for PSP
11 |    Geecko for his PSP GU lib "Glib2d"
12 | 
13 | ## Building
14 | To build SDL library for the PSP, make sure you have the latest PSPDev status and run:
15 | ```bash
16 | cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=$PSPDEV/psp/share/pspdev.cmake
17 | cmake --build build
18 | cmake --install build
19 | ```
20 | 
21 | 
22 | ## Getting PSP Dev
23 | [Installing PSP Dev](https://github.com/pspdev/pspdev)
24 | 
25 | ## Running on PPSSPP Emulator
26 | [PPSSPP](https://github.com/hrydgard/ppsspp)
27 | 
28 | [Build Instructions](https://github.com/hrydgard/ppsspp/wiki/Build-instructions)
29 | 
30 | 
31 | ## Compiling a HelloWorld
32 | [PSP Hello World](https://pspdev.github.io/basic_programs.html#hello-world)
33 | 
34 | ## To Do
35 | - PSP Screen Keyboard
36 | - Dialogs
37 | 


--------------------------------------------------------------------------------
/docs/README-strings.md:
--------------------------------------------------------------------------------
1 | # String policies in SDL3.
2 | 
3 | ## Encoding.
4 | 
5 | Unless otherwise specified, all strings in SDL, across all platforms, are
6 | UTF-8 encoded and can represent the full range of [Unicode](https://unicode.org).
7 | 
8 | 


--------------------------------------------------------------------------------
/docs/README-switch.md:
--------------------------------------------------------------------------------
1 | # Nintendo Switch
2 | 
3 | SDL3 runs on the Nintendo Switch! There are commercial games shipping with this port. This port is kept in a separate repository, but is available for free, under the zlib license, to anyone that is under NDA for Switch development with Nintendo. Please contact Ryan (icculus at icculus dot org) for details.
4 | 


--------------------------------------------------------------------------------
/examples/asyncio/01-load-bitmaps/README.txt:
--------------------------------------------------------------------------------
1 | This example code loads a few bitmap files from disk using the asynchronous
2 | i/o, and then draws it to the window. It uses a task group to watch multiple
3 | reads and deal with them in whatever order they finish.
4 | 
5 | Note that for a single tiny file like this, you'd probably not want to bother
6 | with async i/o in real life, but this is just an example of how to do it.
7 | 


--------------------------------------------------------------------------------
/examples/asyncio/01-load-bitmaps/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/asyncio/01-load-bitmaps/thumbnail.png


--------------------------------------------------------------------------------
/examples/asyncio/description.txt:
--------------------------------------------------------------------------------
1 | Asynchronous I/O


--------------------------------------------------------------------------------
/examples/audio/01-simple-playback/README.txt:
--------------------------------------------------------------------------------
1 | If you're running this in a web browser, you need to click the window before you'll hear anything!
2 | 
3 | This example code creates a simple audio stream for playing sound, and
4 | generates a sine wave sound effect for it to play as time goes on. This is the
5 | simplest way to get up and running with procedural sound.
6 | 


--------------------------------------------------------------------------------
/examples/audio/02-simple-playback-callback/README.txt:
--------------------------------------------------------------------------------
1 | If you're running this in a web browser, you need to click the window before you'll hear anything!
2 | 
3 | This example code creates a simple audio stream for playing sound, and
4 | generates a sine wave sound effect for it to play as time goes on. Unlike
5 | the previous example, this uses a callback to generate sound.
6 | 


--------------------------------------------------------------------------------
/examples/audio/03-load-wav/README.txt:
--------------------------------------------------------------------------------
1 | If you're running this in a web browser, you need to click the window before you'll hear anything!
2 | 
3 | This example code creates a simple audio stream for playing sound, and
4 | loads a .wav file that is pushed through the stream in a loop.
5 | 
6 | 


--------------------------------------------------------------------------------
/examples/audio/04-multiple-streams/README.txt:
--------------------------------------------------------------------------------
1 | If you're running this in a web browser, you need to click the window before you'll hear anything!
2 | 
3 | This example code loads two .wav files, puts them in audio streams and binds
4 | them for playback, repeating both sounds on loop. This shows several streams
5 | mixing into a single playback device.
6 | 


--------------------------------------------------------------------------------
/examples/audio/05-planar-data/README.txt:
--------------------------------------------------------------------------------
1 | This example code draws two clickable buttons. Each causes a sound to play,
2 | fed to either the left or right audio channel through separate (planar)
3 | arrays.
4 | 
5 | Planar audio can feed both channels at the same time from different arrays,
6 | as well, but this example only uses one channel at a time for clarity. A
7 | NULL array will supply silence for that channel.
8 | 


--------------------------------------------------------------------------------
/examples/audio/05-planar-data/onmouseover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/audio/05-planar-data/onmouseover.webp


--------------------------------------------------------------------------------
/examples/audio/05-planar-data/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/audio/05-planar-data/thumbnail.png


--------------------------------------------------------------------------------
/examples/audio/onmouseover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/audio/onmouseover.webp


--------------------------------------------------------------------------------
/examples/audio/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/audio/thumbnail.png


--------------------------------------------------------------------------------
/examples/camera/01-read-and-draw/README.txt:
--------------------------------------------------------------------------------
1 | This reads from a webcam and draws frames of video to the screen.
2 | 


--------------------------------------------------------------------------------
/examples/camera/01-read-and-draw/onmouseover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/camera/01-read-and-draw/onmouseover.webp


--------------------------------------------------------------------------------
/examples/camera/01-read-and-draw/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/camera/01-read-and-draw/thumbnail.png


--------------------------------------------------------------------------------
/examples/categories.txt:
--------------------------------------------------------------------------------
 1 | # Blank lines and lines that start with '#' in this file are ignored.
 2 | 
 3 | # Categories, by directory name, go in here, in the order they should be
 4 | # listed on the main page. If this file is missing, it'll assume any
 5 | # subdirectory is a category and sort them alphabetically.
 6 | 
 7 | renderer
 8 | input
 9 | audio
10 | camera
11 | asyncio
12 | pen
13 | demo
14 | 


--------------------------------------------------------------------------------
/examples/demo/01-snake/README.txt:
--------------------------------------------------------------------------------
1 | A complete game of Snake, written in SDL.
2 | 


--------------------------------------------------------------------------------
/examples/demo/01-snake/onmouseover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/demo/01-snake/onmouseover.webp


--------------------------------------------------------------------------------
/examples/demo/01-snake/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/demo/01-snake/thumbnail.png


--------------------------------------------------------------------------------
/examples/demo/02-woodeneye-008/README.txt:
--------------------------------------------------------------------------------
1 | Minimal splitscreen FPS with multiple mouse and keyboards, drawn with the 2D Render API.


--------------------------------------------------------------------------------
/examples/demo/02-woodeneye-008/onmouseover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/demo/02-woodeneye-008/onmouseover.webp


--------------------------------------------------------------------------------
/examples/demo/02-woodeneye-008/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/demo/02-woodeneye-008/thumbnail.png


--------------------------------------------------------------------------------
/examples/demo/03-infinite-monkeys/README.txt:
--------------------------------------------------------------------------------
1 | 
2 | How many monkeys does it take to write the complete works of Shakespeare?
3 | 
4 |     Now you can find out!
5 | 
6 | Cheer on your favorite monkey as they bash keyboards on their way through classic literature.
7 | 
8 | 


--------------------------------------------------------------------------------
/examples/demo/03-infinite-monkeys/onmouseover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/demo/03-infinite-monkeys/onmouseover.webp


--------------------------------------------------------------------------------
/examples/demo/03-infinite-monkeys/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/demo/03-infinite-monkeys/thumbnail.png


--------------------------------------------------------------------------------
/examples/demo/04-bytepusher/README.txt:
--------------------------------------------------------------------------------
1 | An implementation of the BytePusher VM
2 | 
3 | For example programs and more information about BytePusher, see
4 | https://esolangs.org/wiki/BytePusher
5 | 


--------------------------------------------------------------------------------
/examples/demo/04-bytepusher/onmouseover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/demo/04-bytepusher/onmouseover.webp


--------------------------------------------------------------------------------
/examples/demo/04-bytepusher/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/demo/04-bytepusher/thumbnail.png


--------------------------------------------------------------------------------
/examples/demo/description.txt:
--------------------------------------------------------------------------------
1 | Full game and app demos


--------------------------------------------------------------------------------
/examples/input/01-joystick-polling/README.txt:
--------------------------------------------------------------------------------
1 | This example code looks for the current joystick state once per frame,
2 | and draws a visual representation of it.
3 | 


--------------------------------------------------------------------------------
/examples/input/01-joystick-polling/onmouseover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/input/01-joystick-polling/onmouseover.webp


--------------------------------------------------------------------------------
/examples/input/01-joystick-polling/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/input/01-joystick-polling/thumbnail.png


--------------------------------------------------------------------------------
/examples/input/02-joystick-events/README.txt:
--------------------------------------------------------------------------------
1 | This example code looks for joystick input in the event handler, and
2 | reports any changes as a flood of info.
3 | 


--------------------------------------------------------------------------------
/examples/input/02-joystick-events/onmouseover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/input/02-joystick-events/onmouseover.webp


--------------------------------------------------------------------------------
/examples/input/02-joystick-events/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/input/02-joystick-events/thumbnail.png


--------------------------------------------------------------------------------
/examples/pen/01-drawing-lines/README.txt:
--------------------------------------------------------------------------------
1 | You need something with a pen/stylus for this to work.
2 | 
3 | This takes pen input and draws lines. Lines are darker when you press harder.
4 | 


--------------------------------------------------------------------------------
/examples/pen/01-drawing-lines/onmouseover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/pen/01-drawing-lines/onmouseover.webp


--------------------------------------------------------------------------------
/examples/pen/01-drawing-lines/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/pen/01-drawing-lines/thumbnail.png


--------------------------------------------------------------------------------
/examples/renderer/01-clear/README.txt:
--------------------------------------------------------------------------------
1 | This example code creates an SDL window and renderer, and then clears the
2 | window to a different color every frame, so you'll effectively get a window
3 | that's smoothly fading between colors.
4 | 


--------------------------------------------------------------------------------
/examples/renderer/01-clear/onmouseover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/01-clear/onmouseover.webp


--------------------------------------------------------------------------------
/examples/renderer/01-clear/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/01-clear/thumbnail.png


--------------------------------------------------------------------------------
/examples/renderer/02-primitives/README.txt:
--------------------------------------------------------------------------------
1 | This example creates an SDL window and renderer, and then draws some lines,
2 | rectangles and points to it every frame.
3 | 
4 | This is just a quick overview of simple drawing primitives; futher examples
5 | will explore them in more detail.
6 | 
7 | 
8 | 


--------------------------------------------------------------------------------
/examples/renderer/02-primitives/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/02-primitives/thumbnail.png


--------------------------------------------------------------------------------
/examples/renderer/03-lines/README.txt:
--------------------------------------------------------------------------------
1 | This example creates an SDL window and renderer, and then draws a something
2 | roughly like a Christmas tree with nothing but lines, every frame.
3 | 
4 | 


--------------------------------------------------------------------------------
/examples/renderer/03-lines/onmouseover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/03-lines/onmouseover.webp


--------------------------------------------------------------------------------
/examples/renderer/03-lines/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/03-lines/thumbnail.png


--------------------------------------------------------------------------------
/examples/renderer/04-points/README.txt:
--------------------------------------------------------------------------------
1 | This example creates an SDL window and renderer, and then draws a bunch of
2 | single points, moving across the screen.
3 | 
4 | 


--------------------------------------------------------------------------------
/examples/renderer/04-points/onmouseover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/04-points/onmouseover.webp


--------------------------------------------------------------------------------
/examples/renderer/04-points/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/04-points/thumbnail.png


--------------------------------------------------------------------------------
/examples/renderer/05-rectangles/README.txt:
--------------------------------------------------------------------------------
1 | This example creates an SDL window and renderer, and then draws a few
2 | rectangles that change size each frame.
3 | 
4 | 


--------------------------------------------------------------------------------
/examples/renderer/05-rectangles/onmouseover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/05-rectangles/onmouseover.webp


--------------------------------------------------------------------------------
/examples/renderer/05-rectangles/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/05-rectangles/thumbnail.png


--------------------------------------------------------------------------------
/examples/renderer/06-textures/README.txt:
--------------------------------------------------------------------------------
1 | This example creates an SDL window and renderer, loads a texture from a
2 | .bmp file, and then draws it a few times each frame.
3 | 
4 | 


--------------------------------------------------------------------------------
/examples/renderer/06-textures/onmouseover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/06-textures/onmouseover.webp


--------------------------------------------------------------------------------
/examples/renderer/06-textures/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/06-textures/thumbnail.png


--------------------------------------------------------------------------------
/examples/renderer/07-streaming-textures/README.txt:
--------------------------------------------------------------------------------
1 | This example creates an SDL window and renderer, then a streaming texture that
2 | it will update every frame before drawing it to the screen.
3 | 
4 | 


--------------------------------------------------------------------------------
/examples/renderer/07-streaming-textures/onmouseover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/07-streaming-textures/onmouseover.webp


--------------------------------------------------------------------------------
/examples/renderer/07-streaming-textures/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/07-streaming-textures/thumbnail.png


--------------------------------------------------------------------------------
/examples/renderer/08-rotating-textures/README.txt:
--------------------------------------------------------------------------------
1 | This example creates an SDL window and renderer, loads a texture from a .bmp
2 | file, and then draws it, rotating around the center of the screen.
3 | 
4 | 


--------------------------------------------------------------------------------
/examples/renderer/08-rotating-textures/onmouseover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/08-rotating-textures/onmouseover.webp


--------------------------------------------------------------------------------
/examples/renderer/08-rotating-textures/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/08-rotating-textures/thumbnail.png


--------------------------------------------------------------------------------
/examples/renderer/09-scaling-textures/README.txt:
--------------------------------------------------------------------------------
1 | This example creates an SDL window and renderer, loads a texture from a .bmp
2 | file, and then draws it, scaling it up and down.
3 | 
4 | 


--------------------------------------------------------------------------------
/examples/renderer/09-scaling-textures/onmouseover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/09-scaling-textures/onmouseover.webp


--------------------------------------------------------------------------------
/examples/renderer/09-scaling-textures/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/09-scaling-textures/thumbnail.png


--------------------------------------------------------------------------------
/examples/renderer/10-geometry/README.txt:
--------------------------------------------------------------------------------
1 | This example creates an SDL window and renderer, loads a texture from a .bmp
2 | file, and then draws geometry (arbitrary polygons) using it.
3 | 
4 | 


--------------------------------------------------------------------------------
/examples/renderer/10-geometry/onmouseover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/10-geometry/onmouseover.webp


--------------------------------------------------------------------------------
/examples/renderer/10-geometry/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/10-geometry/thumbnail.png


--------------------------------------------------------------------------------
/examples/renderer/11-color-mods/README.txt:
--------------------------------------------------------------------------------
1 | This example creates an SDL window and renderer, loads a texture from a
2 | .bmp file, and then draws it a few times each frame, adjusting the colors.
3 | 
4 | 


--------------------------------------------------------------------------------
/examples/renderer/11-color-mods/onmouseover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/11-color-mods/onmouseover.webp


--------------------------------------------------------------------------------
/examples/renderer/11-color-mods/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/11-color-mods/thumbnail.png


--------------------------------------------------------------------------------
/examples/renderer/14-viewport/README.txt:
--------------------------------------------------------------------------------
1 | This example creates an SDL window and renderer, loads a texture
2 | from a .bmp file, and then draws it a few times each frame, adjusting
3 | the viewport before each draw.
4 | 
5 | 


--------------------------------------------------------------------------------
/examples/renderer/14-viewport/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/14-viewport/thumbnail.png


--------------------------------------------------------------------------------
/examples/renderer/15-cliprect/README.txt:
--------------------------------------------------------------------------------
1 | This example creates an SDL window and renderer, loads a texture
2 | from a .bmp file, and stretches it across the window. Each frame, we move
3 | the clipping rectangle around, so only a small square of the texture is
4 | actually drawn.
5 | 
6 | 


--------------------------------------------------------------------------------
/examples/renderer/15-cliprect/onmouseover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/15-cliprect/onmouseover.webp


--------------------------------------------------------------------------------
/examples/renderer/15-cliprect/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/15-cliprect/thumbnail.png


--------------------------------------------------------------------------------
/examples/renderer/17-read-pixels/README.txt:
--------------------------------------------------------------------------------
 1 | This example creates an SDL window and renderer, and draws a
 2 | rotating texture to it, reads back the rendered pixels, converts them to
 3 | black and white, and then draws the converted image to a corner of the
 4 | screen.
 5 | 
 6 | This isn't necessarily an efficient thing to do--in real life one might
 7 | want to do this sort of thing with a render target--but it's just a visual
 8 | example of how to use SDL_RenderReadPixels().
 9 | 
10 | A better, but less visual, use of SDL_RenderReadPixels() is to make
11 | screenshots: you grab the current contents of the screen, and save the pixels
12 | as a bitmap file or whatever.
13 | 


--------------------------------------------------------------------------------
/examples/renderer/17-read-pixels/onmouseover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/17-read-pixels/onmouseover.webp


--------------------------------------------------------------------------------
/examples/renderer/17-read-pixels/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/17-read-pixels/thumbnail.png


--------------------------------------------------------------------------------
/examples/renderer/18-debug-text/README.txt:
--------------------------------------------------------------------------------
1 | This example creates an SDL window and renderer, and draws some text
2 | using SDL_RenderDebugText(). This is not quality text rendering, but it can
3 | be helpful for simple apps, debugging, or showing something in a pinch.
4 | 
5 | 


--------------------------------------------------------------------------------
/examples/renderer/18-debug-text/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/18-debug-text/thumbnail.png


--------------------------------------------------------------------------------
/examples/renderer/19-affine-textures/README.txt:
--------------------------------------------------------------------------------
1 | This example creates an SDL window and renderer, and uses
2 | SDL_RenderTextureAffine to draw a 3D cube using only 2D rendering operations.
3 | 
4 | 


--------------------------------------------------------------------------------
/examples/renderer/19-affine-textures/onmouseover.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/19-affine-textures/onmouseover.webp


--------------------------------------------------------------------------------
/examples/renderer/19-affine-textures/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/renderer/19-affine-textures/thumbnail.png


--------------------------------------------------------------------------------
/examples/template-placeholder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/examples/template-placeholder.png


--------------------------------------------------------------------------------
/include/SDL3/SDL_opengles2_gl2platform.h:
--------------------------------------------------------------------------------
 1 | #ifndef __gl2platform_h_
 2 | #define __gl2platform_h_
 3 | 
 4 | /*
 5 | ** Copyright 2017-2020 The Khronos Group Inc.
 6 | ** SPDX-License-Identifier: Apache-2.0
 7 | */
 8 | 
 9 | /* Platform-specific types and definitions for OpenGL ES 2.X  gl2.h
10 |  *
11 |  * Adopters may modify khrplatform.h and this file to suit their platform.
12 |  * Please contribute modifications back to Khronos as pull requests on the
13 |  * public github repository:
14 |  *      https://github.com/KhronosGroup/OpenGL-Registry
15 |  */
16 | 
17 | /*#include <KHR/khrplatform.h>*/
18 | 
19 | #ifndef GL_APICALL
20 | #define GL_APICALL  KHRONOS_APICALL
21 | #endif
22 | 
23 | #ifndef GL_APIENTRY
24 | #define GL_APIENTRY KHRONOS_APIENTRY
25 | #endif
26 | 
27 | #endif /* __gl2platform_h_ */
28 | 


--------------------------------------------------------------------------------
/src/core/windows/pch.c:
--------------------------------------------------------------------------------
 1 | /*
 2 |   Simple DirectMedia Layer
 3 |   Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
 4 | 
 5 |   This software is provided 'as-is', without any express or implied
 6 |   warranty.  In no event will the authors be held liable for any damages
 7 |   arising from the use of this software.
 8 | 
 9 |   Permission is granted to anyone to use this software for any purpose,
10 |   including commercial applications, and to alter it and redistribute it
11 |   freely, subject to the following restrictions:
12 | 
13 |   1. The origin of this software must not be misrepresented; you must not
14 |      claim that you wrote the original software. If you use this software
15 |      in a product, an acknowledgment in the product documentation would be
16 |      appreciated but is not required.
17 |   2. Altered source versions must be plainly marked as such, and must not be
18 |      misrepresented as being the original software.
19 |   3. This notice may not be removed or altered from any source distribution.
20 | */
21 | #include "SDL_internal.h"
22 | 


--------------------------------------------------------------------------------
/src/core/windows/pch_cpp.cpp:
--------------------------------------------------------------------------------
 1 | /*
 2 |   Simple DirectMedia Layer
 3 |   Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
 4 | 
 5 |   This software is provided 'as-is', without any express or implied
 6 |   warranty.  In no event will the authors be held liable for any damages
 7 |   arising from the use of this software.
 8 | 
 9 |   Permission is granted to anyone to use this software for any purpose,
10 |   including commercial applications, and to alter it and redistribute it
11 |   freely, subject to the following restrictions:
12 | 
13 |   1. The origin of this software must not be misrepresented; you must not
14 |      claim that you wrote the original software. If you use this software
15 |      in a product, an acknowledgment in the product documentation would be
16 |      appreciated but is not required.
17 |   2. Altered source versions must be plainly marked as such, and must not be
18 |      misrepresented as being the original software.
19 |   3. This notice may not be removed or altered from any source distribution.
20 | */
21 | #include "SDL_internal.h"
22 | 


--------------------------------------------------------------------------------
/src/gpu/d3d12/compile_shaders_xbox.bat:
--------------------------------------------------------------------------------
 1 | if %2.==one. goto setxboxone
 2 | rem Xbox Series compile
 3 | set DXC="%GameDKLatest%\GXDK\bin\Scarlett\DXC.exe"
 4 | set SUFFIX=_Series.h
 5 | goto startbuild
 6 | 
 7 | :setxboxone
 8 | set DXC="%GameDKLatest%\GXDK\bin\XboxOne\DXC.exe"
 9 | set SUFFIX=_One.h
10 | 
11 | :startbuild
12 | 
13 | call "%~dp0\compile_shaders.bat"
14 | 


--------------------------------------------------------------------------------
/src/hidapi/AUTHORS.txt:
--------------------------------------------------------------------------------
 1 | 
 2 | HIDAPI Authors:
 3 | 
 4 | Alan Ott <alan@signal11.us>:
 5 | 	Original Author and Maintainer
 6 | 	Linux, Windows, and Mac implementations
 7 | 
 8 | Ludovic Rousseau <rousseau@debian.org>:
 9 | 	Formatting for Doxygen documentation
10 | 	Bug fixes
11 | 	Correctness fixes
12 | 
13 | libusb/hidapi Team:
14 | 	Development/maintenance since June 4th 2019
15 | 
16 | For a comprehensive list of contributions, see the commit list at github:
17 | 	https://github.com/libusb/hidapi/graphs/contributors
18 | 
19 | 


--------------------------------------------------------------------------------
/src/hidapi/HACKING.txt:
--------------------------------------------------------------------------------
 1 | This file is mostly for the maintainer.
 2 | 
 3 | Updating a Version:
 4 | 1. Update VERSION file.
 5 | 2. HID_API_VERSION_MAJOR/HID_API_VERSION_MINOR/HID_API_VERSION_PATCH in hidapi.h.
 6 | 
 7 | Before firing a new release:
 8 | 1. Run the "Checks" Githtub Action
 9 | 2. Make sure no defects are found at: https://scan.coverity.com/projects/hidapi
10 | 3. Fix if any
11 | 
12 | Firing a new release:
13 | 1. Update the Version (if not yet updated).
14 | 2. Prepare the Release Notes.
15 | 3. Store the Release Notes into a file.
16 | 4. Create locally an annotated git tag with release notes attached, e.g.: `git tag -aF ../hidapi_release_notes hidapi-<VERSION>`
17 | 5. Push newly created tag: `git push origin hidapi-<VERSION>`
18 | 6. Grab the hidapi-win.zip from Summary page of "GitHub Builds" Action for latest master build.
19 | 7. Create a Github Release with hidapi-win.zip attached, for newly created tag.
20 | 


--------------------------------------------------------------------------------
/src/hidapi/LICENSE-orig.txt:
--------------------------------------------------------------------------------
 1 |  HIDAPI - Multi-Platform library for
 2 |  communication with HID devices.
 3 | 
 4 |  Copyright 2009, Alan Ott, Signal 11 Software.
 5 |  All Rights Reserved.
 6 |  
 7 |  This software may be used by anyone for any reason so
 8 |  long as the copyright notice in the source files
 9 |  remains intact.
10 | 


--------------------------------------------------------------------------------
/src/hidapi/LICENSE.txt:
--------------------------------------------------------------------------------
 1 | HIDAPI can be used under one of three licenses.
 2 | 
 3 | 1. The GNU General Public License, version 3.0, in LICENSE-gpl3.txt
 4 | 2. A BSD-Style License, in LICENSE-bsd.txt.
 5 | 3. The more liberal original HIDAPI license. LICENSE-orig.txt
 6 | 
 7 | The license chosen is at the discretion of the user of HIDAPI. For example:
 8 | 1. An author of GPL software would likely use HIDAPI under the terms of the
 9 | GPL.
10 | 
11 | 2. An author of commercial closed-source software would likely use HIDAPI
12 | under the terms of the BSD-style license or the original HIDAPI license.
13 | 
14 | 


--------------------------------------------------------------------------------
/src/hidapi/VERSION:
--------------------------------------------------------------------------------
1 | 0.14.0


--------------------------------------------------------------------------------
/src/hidapi/bootstrap:
--------------------------------------------------------------------------------
1 | #!/bin/sh -x
2 | autoreconf --install --verbose --force
3 | 


--------------------------------------------------------------------------------
/src/hidapi/documentation/cmake-gui-drop-down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/src/hidapi/documentation/cmake-gui-drop-down.png


--------------------------------------------------------------------------------
/src/hidapi/documentation/cmake-gui-highlights.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/src/hidapi/documentation/cmake-gui-highlights.png


--------------------------------------------------------------------------------
/src/hidapi/doxygen/main_page.md:
--------------------------------------------------------------------------------
 1 | # HIDAPI Doxygen output
 2 | 
 3 | This site is dedicated to hosting an [API reference for the HIDAPI library](#API).
 4 | 
 5 | For general information, see the [source repository](https://github.com/libusb/hidapi#readme).
 6 | 
 7 | There are also build instructions hosted on github:
 8 | 
 9 | - [Building from source](https://github.com/libusb/hidapi/blob/master/BUILD.md)
10 | - [Using CMake](https://github.com/libusb/hidapi/blob/master/BUILD.cmake.md)
11 | - [Using Autotools (deprecated)](https://github.com/libusb/hidapi/blob/master/BUILD.autotools.md)
12 | 
13 | \example test.c contains a basic example usage of the HIDAPI library.
14 | 


--------------------------------------------------------------------------------
/src/hidapi/hidtest/Makefile.am:
--------------------------------------------------------------------------------
 1 | AM_CPPFLAGS = -I$(top_srcdir)/hidapi/
 2 | 
 3 | ## Linux
 4 | if OS_LINUX
 5 | noinst_PROGRAMS = hidtest-libusb hidtest-hidraw
 6 | 
 7 | hidtest_hidraw_SOURCES = test.c
 8 | hidtest_hidraw_LDADD = $(top_builddir)/linux/libhidapi-hidraw.la
 9 | 
10 | hidtest_libusb_SOURCES = test.c
11 | hidtest_libusb_LDADD = $(top_builddir)/libusb/libhidapi-libusb.la
12 | else
13 | 
14 | # Other OS's
15 | noinst_PROGRAMS = hidtest
16 | 
17 | hidtest_SOURCES = test.c
18 | hidtest_LDADD = $(top_builddir)/$(backend)/libhidapi.la
19 | 
20 | endif
21 | 
22 | if OS_DARWIN
23 | AM_CPPFLAGS += -I$(top_srcdir)/mac/
24 | endif
25 | 
26 | if OS_WINDOWS
27 | AM_CPPFLAGS += -I$(top_srcdir)/windows/
28 | endif
29 | 


--------------------------------------------------------------------------------
/src/hidapi/libusb/Makefile-manual:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | OS=$(shell uname)
 4 | 
 5 | ifeq ($(OS), Linux)
 6 | 	FILE=Makefile.linux
 7 | endif
 8 | 
 9 | ifeq ($(OS), FreeBSD)
10 | 	FILE=Makefile.freebsd
11 | endif
12 | 
13 | ifeq ($(OS), Haiku)
14 | 	FILE=Makefile.haiku
15 | endif
16 | 
17 | ifeq ($(FILE), )
18 | all:
19 | 	$(error Your platform ${OS} is not supported by hidapi/libusb at this time.)
20 | endif
21 | 
22 | include $(FILE)
23 | 


--------------------------------------------------------------------------------
/src/hidapi/libusb/Makefile.am:
--------------------------------------------------------------------------------
 1 | AM_CPPFLAGS = -I$(top_srcdir)/hidapi $(CFLAGS_LIBUSB)
 2 | 
 3 | if OS_LINUX
 4 | lib_LTLIBRARIES = libhidapi-libusb.la
 5 | libhidapi_libusb_la_SOURCES = hid.c
 6 | libhidapi_libusb_la_LDFLAGS = $(LTLDFLAGS) $(PTHREAD_CFLAGS)
 7 | libhidapi_libusb_la_LIBADD = $(LIBS_LIBUSB)
 8 | endif
 9 | 
10 | if OS_FREEBSD
11 | lib_LTLIBRARIES = libhidapi.la
12 | libhidapi_la_SOURCES = hid.c
13 | libhidapi_la_LDFLAGS = $(LTLDFLAGS)
14 | libhidapi_la_LIBADD = $(LIBS_LIBUSB)
15 | endif
16 | 
17 | if OS_KFREEBSD
18 | lib_LTLIBRARIES = libhidapi.la
19 | libhidapi_la_SOURCES = hid.c
20 | libhidapi_la_LDFLAGS = $(LTLDFLAGS)
21 | libhidapi_la_LIBADD = $(LIBS_LIBUSB)
22 | endif
23 | 
24 | if OS_HAIKU
25 | lib_LTLIBRARIES = libhidapi.la
26 | libhidapi_la_SOURCES = hid.c
27 | libhidapi_la_LDFLAGS = $(LTLDFLAGS)
28 | libhidapi_la_LIBADD = $(LIBS_LIBUSB)
29 | endif
30 | 
31 | hdrdir = $(includedir)/hidapi
32 | hdr_HEADERS = $(top_srcdir)/hidapi/hidapi.h hidapi_libusb.h
33 | 
34 | EXTRA_DIST = Makefile-manual
35 | 


--------------------------------------------------------------------------------
/src/hidapi/libusb/Makefile.freebsd:
--------------------------------------------------------------------------------
 1 | ###########################################
 2 | # Simple Makefile for HIDAPI test program
 3 | #
 4 | # Alan Ott
 5 | # Signal 11 Software
 6 | # 2010-06-01
 7 | ###########################################
 8 | 
 9 | all: hidtest libs
10 | 
11 | libs: libhidapi.so
12 | 
13 | CC       ?= cc
14 | CFLAGS   ?= -Wall -g -fPIC
15 | 
16 | COBJS     = hid.o ../hidtest/test.o
17 | OBJS      = $(COBJS)
18 | INCLUDES  = -I../hidapi -I. -I/usr/local/include
19 | LDFLAGS   = -L/usr/local/lib
20 | LIBS      = -lusb -liconv -pthread
21 | 
22 | 
23 | # Console Test Program
24 | hidtest: $(OBJS)
25 | 	$(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS)
26 | 
27 | # Shared Libs
28 | libhidapi.so: $(COBJS)
29 | 	$(CC) $(LDFLAGS) -shared -Wl,-soname,$@.0 $^ -o $@ $(LIBS)
30 | 
31 | # Objects
32 | $(COBJS): %.o: %.c
33 | 	$(CC) $(CFLAGS) -c $(INCLUDES) 
lt; -o $@
34 | 
35 | 
36 | clean:
37 | 	rm -f $(OBJS) hidtest libhidapi.so ../hidtest/hidtest.o
38 | 
39 | .PHONY: clean libs
40 | 


--------------------------------------------------------------------------------
/src/hidapi/libusb/Makefile.haiku:
--------------------------------------------------------------------------------
 1 | ###########################################
 2 | # Simple Makefile for HIDAPI test program
 3 | #
 4 | # Alan Ott
 5 | # Signal 11 Software
 6 | # 2010-06-01
 7 | ###########################################
 8 | 
 9 | all: hidtest libs
10 | 
11 | libs: libhidapi.so
12 | 
13 | CC       ?= cc
14 | CFLAGS   ?= -Wall -g -fPIC
15 | 
16 | COBJS     = hid.o ../hidtest/test.o
17 | OBJS      = $(COBJS)
18 | INCLUDES  = -I../hidapi -I. -I/usr/local/include
19 | LDFLAGS   = -L/usr/local/lib
20 | LIBS      = -lusb -liconv -pthread
21 | 
22 | 
23 | # Console Test Program
24 | hidtest: $(OBJS)
25 |     $(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS)
26 | 
27 | # Shared Libs
28 | libhidapi.so: $(COBJS)
29 |     $(CC) $(LDFLAGS) -shared -Wl,-soname,$@.0 $^ -o $@ $(LIBS)
30 | 
31 | # Objects
32 | $(COBJS): %.o: %.c
33 |     $(CC) $(CFLAGS) -c $(INCLUDES) 
lt; -o $@
34 | 
35 | 
36 | clean:
37 |     rm -f $(OBJS) hidtest libhidapi.so ../hidtest/hidtest.o
38 | 
39 | .PHONY: clean libs
40 | 


--------------------------------------------------------------------------------
/src/hidapi/linux/Makefile-manual:
--------------------------------------------------------------------------------
 1 | ###########################################
 2 | # Simple Makefile for HIDAPI test program
 3 | #
 4 | # Alan Ott
 5 | # Signal 11 Software
 6 | # 2010-06-01
 7 | ###########################################
 8 | 
 9 | all: hidtest-hidraw libs
10 | 
11 | libs: libhidapi-hidraw.so
12 | 
13 | CC       ?= gcc
14 | CFLAGS   ?= -Wall -g -fpic
15 | 
16 | LDFLAGS  ?= -Wall -g
17 | 
18 | 
19 | COBJS     = hid.o ../hidtest/test.o
20 | OBJS      = $(COBJS)
21 | LIBS_UDEV = `pkg-config libudev --libs` -lrt
22 | LIBS      = $(LIBS_UDEV)
23 | INCLUDES ?= -I../hidapi `pkg-config libusb-1.0 --cflags`
24 | 
25 | 
26 | # Console Test Program
27 | hidtest-hidraw: $(COBJS)
28 | 	$(CC) $(LDFLAGS) $^ $(LIBS_UDEV) -o $@
29 | 
30 | # Shared Libs
31 | libhidapi-hidraw.so: $(COBJS)
32 | 	$(CC) $(LDFLAGS) $(LIBS_UDEV) -shared -fpic -Wl,-soname,$@.0 $^ -o $@
33 | 
34 | # Objects
35 | $(COBJS): %.o: %.c
36 | 	$(CC) $(CFLAGS) -c $(INCLUDES) 
lt; -o $@
37 | 
38 | 
39 | clean:
40 | 	rm -f $(OBJS) hidtest-hidraw libhidapi-hidraw.so $(COBJS)
41 | 
42 | .PHONY: clean libs
43 | 


--------------------------------------------------------------------------------
/src/hidapi/linux/Makefile.am:
--------------------------------------------------------------------------------
 1 | lib_LTLIBRARIES = libhidapi-hidraw.la
 2 | libhidapi_hidraw_la_SOURCES = hid.c
 3 | libhidapi_hidraw_la_LDFLAGS = $(LTLDFLAGS)
 4 | AM_CPPFLAGS = -I$(top_srcdir)/hidapi/ $(CFLAGS_HIDRAW)
 5 | libhidapi_hidraw_la_LIBADD = $(LIBS_HIDRAW)
 6 | 
 7 | hdrdir = $(includedir)/hidapi
 8 | hdr_HEADERS = $(top_srcdir)/hidapi/hidapi.h
 9 | 
10 | EXTRA_DIST = Makefile-manual
11 | 


--------------------------------------------------------------------------------
/src/hidapi/mac/Makefile-manual:
--------------------------------------------------------------------------------
 1 | ###########################################
 2 | # Simple Makefile for HIDAPI test program
 3 | #
 4 | # Alan Ott
 5 | # Signal 11 Software
 6 | # 2010-07-03
 7 | ###########################################
 8 | 
 9 | all: hidtest
10 | 
11 | CC=gcc
12 | COBJS=hid.o ../hidtest/test.o
13 | OBJS=$(COBJS)
14 | CFLAGS+=-I../hidapi -I. -Wall -g -c
15 | LIBS=-framework IOKit -framework CoreFoundation
16 | 
17 | 
18 | hidtest: $(OBJS)
19 | 	$(CC) -Wall -g $^ $(LIBS) -o hidtest
20 | 
21 | $(COBJS): %.o: %.c
22 | 	$(CC) $(CFLAGS) 
lt; -o $@
23 | 
24 | clean:
25 | 	rm -f *.o hidtest
26 | 
27 | .PHONY: clean
28 | 


--------------------------------------------------------------------------------
/src/hidapi/mac/Makefile.am:
--------------------------------------------------------------------------------
 1 | lib_LTLIBRARIES = libhidapi.la
 2 | libhidapi_la_SOURCES = hid.c
 3 | libhidapi_la_LDFLAGS = $(LTLDFLAGS)
 4 | AM_CPPFLAGS = -I$(top_srcdir)/hidapi/
 5 | 
 6 | hdrdir = $(includedir)/hidapi
 7 | hdr_HEADERS = $(top_srcdir)/hidapi/hidapi.h
 8 | 
 9 | EXTRA_DIST = Makefile-manual
10 | 


--------------------------------------------------------------------------------
/src/hidapi/meson.build:
--------------------------------------------------------------------------------
 1 | project('hidapi', meson_version: '>=0.57.0', version: files('VERSION'))
 2 | 
 3 | cmake = import('cmake')
 4 | 
 5 | hidapi_build_options = cmake.subproject_options()
 6 | hidapi_build_options.set_install(true)
 7 | 
 8 | hidapi_build = cmake.subproject('hidapi_build_cmake', options: hidapi_build_options)
 9 | 
10 | if (hidapi_build.target_list().contains('hidapi_winapi'))
11 | 	hidapi_winapi_dep = hidapi_build.dependency('hidapi_winapi')
12 | 	hidapi_dep = hidapi_winapi_dep
13 | elif (hidapi_build.target_list().contains('hidapi_darwin'))
14 | 	hidapi_darwin_dep = hidapi_build.dependency('hidapi_darwin')
15 | 	hidapi_dep = hidapi_darwin_dep
16 | elif (hidapi_build.target_list().contains('hidapi_hidraw'))
17 | 	hidapi_hidraw_dep = hidapi_build.dependency('hidapi_hidraw')
18 | 	hidapi_dep = hidapi_hidraw_dep
19 | elif (hidapi_build.target_list().contains('hidapi_libusb'))
20 | 	hidapi_libusb_dep = hidapi_build.dependency('hidapi_libusb')
21 | 	hidapi_dep = hidapi_libusb_dep
22 | endif
23 | 


--------------------------------------------------------------------------------
/src/hidapi/pc/hidapi-hidraw.pc.in:
--------------------------------------------------------------------------------
 1 | prefix=@prefix@
 2 | exec_prefix=@exec_prefix@
 3 | libdir=@libdir@
 4 | includedir=@includedir@
 5 | 
 6 | Name: hidapi-hidraw
 7 | Description: C Library for USB/Bluetooth HID device access from Linux, Mac OS X, FreeBSD, and Windows. This is the hidraw implementation.
 8 | URL: https://github.com/libusb/hidapi
 9 | Version: @VERSION@
10 | Libs: -L${libdir} -lhidapi-hidraw
11 | Cflags: -I${includedir}/hidapi
12 | 


--------------------------------------------------------------------------------
/src/hidapi/pc/hidapi-libusb.pc.in:
--------------------------------------------------------------------------------
 1 | prefix=@prefix@
 2 | exec_prefix=@exec_prefix@
 3 | libdir=@libdir@
 4 | includedir=@includedir@
 5 | 
 6 | Name: hidapi-libusb
 7 | Description: C Library for USB HID device access from Linux, Mac OS X, FreeBSD, and Windows. This is the libusb implementation.
 8 | URL: https://github.com/libusb/hidapi
 9 | Version: @VERSION@
10 | Libs: -L${libdir} -lhidapi-libusb
11 | Cflags: -I${includedir}/hidapi
12 | 


--------------------------------------------------------------------------------
/src/hidapi/pc/hidapi-netbsd.pc.in:
--------------------------------------------------------------------------------
 1 | prefix=@prefix@
 2 | exec_prefix=@exec_prefix@
 3 | libdir=@libdir@
 4 | includedir=@includedir@
 5 | 
 6 | Name: hidapi-netbsd
 7 | Description: C Library for USB/Bluetooth HID device access from Linux, Mac OS X, FreeBSD, and Windows. This is the netbsd implementation.
 8 | URL: https://github.com/libusb/hidapi
 9 | Version: @VERSION@
10 | Libs: -L${libdir} -lhidapi-netbsd
11 | Cflags: -I${includedir}/hidapi
12 | 


--------------------------------------------------------------------------------
/src/hidapi/pc/hidapi.pc.in:
--------------------------------------------------------------------------------
 1 | prefix=@prefix@
 2 | exec_prefix=@exec_prefix@
 3 | libdir=@libdir@
 4 | includedir=@includedir@
 5 | 
 6 | Name: hidapi
 7 | Description: C Library for USB/Bluetooth HID device access from Linux, Mac OS X, FreeBSD, and Windows.
 8 | URL: https://github.com/libusb/hidapi
 9 | Version: @VERSION@
10 | Libs: -L${libdir} -lhidapi
11 | Cflags: -I${includedir}/hidapi
12 | 


--------------------------------------------------------------------------------
/src/hidapi/subprojects/README.md:
--------------------------------------------------------------------------------
1 | This folder is used only to support [meson.build](../meson.build) `subproject` command
2 | which would only look for a subproject in a "subprojects" directory.


--------------------------------------------------------------------------------
/src/hidapi/subprojects/hidapi_build_cmake/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | cmake_minimum_required(VERSION 3.1.3...3.25 FATAL_ERROR)
 2 | project(hidapi LANGUAGES C)
 3 | 
 4 | file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/root")
 5 | 
 6 | foreach(ROOT_ELEMENT CMakeLists.txt hidapi src windows linux mac libusb pc VERSION)
 7 |   file(COPY "${CMAKE_CURRENT_LIST_DIR}/../../${ROOT_ELEMENT}" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/root/")
 8 | endforeach()
 9 | 
10 | add_subdirectory("${CMAKE_CURRENT_BINARY_DIR}/root" hidapi_root)
11 | 


--------------------------------------------------------------------------------
/src/hidapi/testgui/Makefile-manual:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | OS=$(shell uname)
 4 | 
 5 | ifeq ($(OS), Darwin)
 6 | 	FILE=Makefile.mac
 7 | endif
 8 | 
 9 | ifneq (,$(findstring MINGW,$(OS)))
10 | 	FILE=Makefile.mingw
11 | endif
12 | 
13 | ifeq ($(OS), Linux)
14 | 	FILE=Makefile.linux
15 | endif
16 | 
17 | ifeq ($(OS), FreeBSD)
18 | 	FILE=Makefile.freebsd
19 | endif
20 | 
21 | ifeq ($(FILE), )
22 | all:
23 | 	$(error Your platform ${OS} is not supported at this time.)
24 | endif
25 | 
26 | include $(FILE)
27 | 


--------------------------------------------------------------------------------
/src/hidapi/testgui/Makefile.freebsd:
--------------------------------------------------------------------------------
 1 | ###########################################
 2 | # Simple Makefile for HIDAPI test program
 3 | #
 4 | # Alan Ott
 5 | # Signal 11 Software
 6 | # 2010-06-01
 7 | ###########################################
 8 | 
 9 | all: testgui
10 | 
11 | CC=cc
12 | CXX=c++
13 | COBJS=../libusb/hid.o
14 | CPPOBJS=test.o
15 | OBJS=$(COBJS) $(CPPOBJS)
16 | CFLAGS=-I../hidapi -I/usr/local/include `fox-config --cflags` -Wall -g -c
17 | LDFLAGS= -L/usr/local/lib
18 | LIBS= -lusb -liconv `fox-config --libs` -pthread
19 | 
20 | 
21 | testgui: $(OBJS)
22 | 	$(CXX) -Wall -g $^ $(LDFLAGS) -o $@ $(LIBS)
23 | 
24 | $(COBJS): %.o: %.c
25 | 	$(CC) $(CFLAGS) 
lt; -o $@
26 | 
27 | $(CPPOBJS): %.o: %.cpp
28 | 	$(CXX) $(CFLAGS) 
lt; -o $@
29 | 
30 | clean:
31 | 	rm *.o testgui
32 | 
33 | .PHONY: clean
34 | 


--------------------------------------------------------------------------------
/src/hidapi/testgui/Makefile.linux:
--------------------------------------------------------------------------------
 1 | ###########################################
 2 | # Simple Makefile for HIDAPI test program
 3 | #
 4 | # Alan Ott
 5 | # Signal 11 Software
 6 | # 2010-06-01
 7 | ###########################################
 8 | 
 9 | all: testgui
10 | 
11 | CC=gcc
12 | CXX=g++
13 | COBJS=../libusb/hid.o
14 | CPPOBJS=test.o
15 | OBJS=$(COBJS) $(CPPOBJS)
16 | CFLAGS=-I../hidapi -Wall -g -c `fox-config --cflags` `pkg-config libusb-1.0 --cflags`
17 | LIBS=-ludev -lrt -lpthread `fox-config --libs` `pkg-config libusb-1.0 --libs`
18 | 
19 | 
20 | testgui: $(OBJS)
21 | 	g++ -Wall -g $^ $(LIBS) -o testgui
22 | 
23 | $(COBJS): %.o: %.c
24 | 	$(CC) $(CFLAGS) 
lt; -o $@
25 | 
26 | $(CPPOBJS): %.o: %.cpp
27 | 	$(CXX) $(CFLAGS) 
lt; -o $@
28 | 
29 | clean:
30 | 	rm *.o testgui
31 | 
32 | .PHONY: clean
33 | 


--------------------------------------------------------------------------------
/src/hidapi/testgui/Makefile.mingw:
--------------------------------------------------------------------------------
 1 | ###########################################
 2 | # Simple Makefile for HIDAPI test program
 3 | #
 4 | # Alan Ott
 5 | # Signal 11 Software
 6 | # 2010-06-01
 7 | ###########################################
 8 | 
 9 | all: hidapi-testgui
10 | 
11 | CC=gcc
12 | CXX=g++
13 | COBJS=../windows/hid.o
14 | CPPOBJS=test.o
15 | OBJS=$(COBJS) $(CPPOBJS)
16 | CFLAGS=-I../hidapi -I../../hidapi-externals/fox/include -g -c
17 | LIBS= -mwindows -L../../hidapi-externals/fox/lib -Wl,-Bstatic -lFOX-1.6 -Wl,-Bdynamic -lgdi32 -Wl,--enable-auto-import -static-libgcc -static-libstdc++ -lkernel32
18 | 
19 | 
20 | hidapi-testgui: $(OBJS)
21 | 	g++ -g $^ $(LIBS) -o hidapi-testgui
22 | 
23 | $(COBJS): %.o: %.c
24 | 	$(CC) $(CFLAGS) 
lt; -o $@
25 | 
26 | $(CPPOBJS): %.o: %.cpp
27 | 	$(CXX) $(CFLAGS) 
lt; -o $@
28 | 
29 | clean:
30 | 	rm -f *.o hidapi-testgui.exe
31 | 
32 | .PHONY: clean
33 | 


--------------------------------------------------------------------------------
/src/hidapi/testgui/TestGUI.app.in/Contents/Info.plist:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="UTF-8"?>
 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 3 | <plist version="1.0">
 4 | <dict>
 5 | 	<key>CFBundleDevelopmentRegion</key>
 6 | 	<string>English</string>
 7 | 	<key>CFBundleDisplayName</key>
 8 | 	<string></string>
 9 | 	<key>CFBundleExecutable</key>
10 | 	<string>hidapi-testgui</string>
11 | 	<key>CFBundleIconFile</key>
12 | 	<string>Signal11.icns</string>
13 | 	<key>CFBundleIdentifier</key>
14 | 	<string>us.signal11.hidtestgui</string>
15 | 	<key>CFBundleInfoDictionaryVersion</key>
16 | 	<string>6.0</string>
17 | 	<key>CFBundleName</key>
18 | 	<string>testgui</string>
19 | 	<key>CFBundlePackageType</key>
20 | 	<string>APPL</string>
21 | 	<key>CFBundleSignature</key>
22 | 	<string>????</string>
23 | 	<key>CFBundleVersion</key>
24 | 	<string>1.0</string>
25 | 	<key>CSResourcesFileMapped</key>
26 | 	<true/>
27 | </dict>
28 | </plist>
29 | 


--------------------------------------------------------------------------------
/src/hidapi/testgui/TestGUI.app.in/Contents/PkgInfo:
--------------------------------------------------------------------------------
1 | APPL????


--------------------------------------------------------------------------------
/src/hidapi/testgui/TestGUI.app.in/Contents/Resources/English.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/src/hidapi/testgui/TestGUI.app.in/Contents/Resources/English.lproj/InfoPlist.strings


--------------------------------------------------------------------------------
/src/hidapi/testgui/TestGUI.app.in/Contents/Resources/Signal11.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/src/hidapi/testgui/TestGUI.app.in/Contents/Resources/Signal11.icns


--------------------------------------------------------------------------------
/src/hidapi/testgui/mac_support.h:
--------------------------------------------------------------------------------
 1 | /*******************************
 2 |  Mac support for HID Test GUI
 3 |  
 4 |  Alan Ott
 5 |  Signal 11 Software
 6 |  
 7 | *******************************/
 8 | 
 9 | #ifndef MAC_SUPPORT_H__
10 | #define MAC_SUPPORT_H__
11 | 
12 | extern "C" {
13 | 	void init_apple_message_system();
14 | 	void check_apple_events();
15 | }
16 | 
17 | #endif
18 | 


--------------------------------------------------------------------------------
/src/hidapi/testgui/testgui.sln:
--------------------------------------------------------------------------------
 1 | 
 2 | Microsoft Visual Studio Solution File, Format Version 10.00
 3 | # Visual C++ Express 2008
 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgui", "testgui.vcproj", "{08769AC3-785A-4DDC-BFC7-1775414B7AB7}"
 5 | EndProject
 6 | Global
 7 | 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 8 | 		Debug|Win32 = Debug|Win32
 9 | 		Release|Win32 = Release|Win32
10 | 	EndGlobalSection
11 | 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
12 | 		{08769AC3-785A-4DDC-BFC7-1775414B7AB7}.Debug|Win32.ActiveCfg = Debug|Win32
13 | 		{08769AC3-785A-4DDC-BFC7-1775414B7AB7}.Debug|Win32.Build.0 = Debug|Win32
14 | 		{08769AC3-785A-4DDC-BFC7-1775414B7AB7}.Release|Win32.ActiveCfg = Release|Win32
15 | 		{08769AC3-785A-4DDC-BFC7-1775414B7AB7}.Release|Win32.Build.0 = Release|Win32
16 | 	EndGlobalSection
17 | 	GlobalSection(SolutionProperties) = preSolution
18 | 		HideSolutionNode = FALSE
19 | 	EndGlobalSection
20 | EndGlobal
21 | 


--------------------------------------------------------------------------------
/src/hidapi/windows/Makefile-manual:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | OS=$(shell uname)
 4 | 
 5 | ifneq (,$(findstring MINGW,$(OS)))
 6 | 	FILE=Makefile.mingw
 7 | endif
 8 | 
 9 | ifeq ($(FILE), )
10 | all:
11 | 	$(error Your platform ${OS} is not supported at this time.)
12 | endif
13 | 
14 | include $(FILE)
15 | 


--------------------------------------------------------------------------------
/src/hidapi/windows/Makefile.am:
--------------------------------------------------------------------------------
 1 | lib_LTLIBRARIES = libhidapi.la
 2 | libhidapi_la_SOURCES = hid.c
 3 | libhidapi_la_LDFLAGS = $(LTLDFLAGS)
 4 | AM_CPPFLAGS = -I$(top_srcdir)/hidapi/
 5 | libhidapi_la_LIBADD = $(LIBS)
 6 | 
 7 | hdrdir = $(includedir)/hidapi
 8 | hdr_HEADERS = $(top_srcdir)/hidapi/hidapi.h
 9 | 
10 | EXTRA_DIST = \
11 |   hidapi.vcproj \
12 |   hidtest.vcproj \
13 |   Makefile-manual \
14 |   Makefile.mingw \
15 |   hidapi.sln
16 | 


--------------------------------------------------------------------------------
/src/hidapi/windows/Makefile.mingw:
--------------------------------------------------------------------------------
 1 | ###########################################
 2 | # Simple Makefile for HIDAPI test program
 3 | #
 4 | # Alan Ott
 5 | # Signal 11 Software
 6 | # 2010-06-01
 7 | ###########################################
 8 | 
 9 | all: hidtest libhidapi.dll
10 | 
11 | CC=gcc
12 | COBJS=hid.o ../hidtest/test.o
13 | OBJS=$(COBJS)
14 | CFLAGS=-I../hidapi -I. -g -c
15 | LIBS=
16 | DLL_LDFLAGS = -mwindows
17 | 
18 | hidtest: $(OBJS)
19 | 	$(CC) -g $^ $(LIBS) -o hidtest
20 | 
21 | libhidapi.dll: $(OBJS)
22 | 	$(CC) -g $^ $(DLL_LDFLAGS) -o libhidapi.dll
23 | 
24 | $(COBJS): %.o: %.c
25 | 	$(CC) $(CFLAGS) 
lt; -o $@
26 | 
27 | clean:
28 | 	rm *.o ../hidtest/*.o hidtest.exe
29 | 
30 | .PHONY: clean
31 | 


--------------------------------------------------------------------------------
/src/hidapi/windows/pp_data_dump/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | project(pp_data_dump C)
 2 | 
 3 | add_executable(pp_data_dump pp_data_dump.c)    
 4 | set_target_properties(pp_data_dump
 5 |     PROPERTIES
 6 |         C_STANDARD 11
 7 |         C_STANDARD_REQUIRED TRUE
 8 | )
 9 | target_link_libraries(pp_data_dump
10 |     PRIVATE hidapi_winapi
11 | )
12 | 
13 | install(TARGETS pp_data_dump
14 |     RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
15 | )
16 | 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/045E_02FF_0005_0001_expected.rpt_desc:
--------------------------------------------------------------------------------
 1 | 0x05, 0x01, 0x09, 0x05, 0xA1, 0x01, 0x09, 0x00, 0xA1, 0x00, 
 2 | 0x09, 0x30, 0x09, 0x31, 0x15, 0x00, 0x25, 0xFF, 0x35, 0x00, 
 3 | 0x45, 0xFF, 0x75, 0x10, 0x95, 0x02, 0x81, 0x02, 0xC0, 0x09, 
 4 | 0x00, 0xA1, 0x00, 0x09, 0x33, 0x09, 0x34, 0x15, 0x00, 0x25, 
 5 | 0xFF, 0x75, 0x10, 0x95, 0x02, 0x81, 0x02, 0xC0, 0x09, 0x00, 
 6 | 0xA1, 0x00, 0x09, 0x32, 0x15, 0x00, 0x25, 0xFF, 0x75, 0x10, 
 7 | 0x95, 0x01, 0x81, 0x02, 0xC0, 0x05, 0x09, 0x19, 0x01, 0x29, 
 8 | 0x10, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x10, 0x45, 
 9 | 0x00, 0x81, 0x02, 0x05, 0x01, 0x09, 0x39, 0x15, 0x01, 0x25, 
10 | 0x08, 0x35, 0x00, 0x46, 0x3B, 0x10, 0x65, 0x0E, 0x75, 0x04, 
11 | 0x95, 0x01, 0x81, 0x42, 0x75, 0x04, 0x95, 0x01, 0x81, 0x03, 
12 | 0xC0, 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046A_0011_0006_0001_expected.rpt_desc:
--------------------------------------------------------------------------------
1 | 0x05, 0x01, 0x09, 0x06, 0xA1, 0x01, 0x05, 0x07, 0x19, 0xE0, 
2 | 0x29, 0xE7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 
3 | 0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x19, 0x00, 
4 | 0x29, 0xDD, 0x15, 0x00, 0x26, 0xDD, 0x00, 0x75, 0x08, 0x95, 
5 | 0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x03, 0x15, 
6 | 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x91, 0x02, 0x75, 
7 | 0x05, 0x95, 0x01, 0x91, 0x03, 0xC0, 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046A_0011_0006_0001_real.rpt_desc:
--------------------------------------------------------------------------------
1 | 0x05, 0x01, 0x09, 0x06, 0xA1, 0x01, 0x05, 0x07, 0x19, 0xE0, 
2 | 0x29, 0xE7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 
3 | 0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x19, 0x00, 
4 | 0x29, 0xDD, 0x15, 0x00, 0x26, 0xDD, 0x00, 0x75, 0x08, 0x95, 
5 | 0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x03, 0x15, 
6 | 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x91, 0x02, 0x75, 
7 | 0x05, 0x95, 0x01, 0x91, 0x03, 0xC0, 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_0A37_0001_000C_expected.rpt_desc:
--------------------------------------------------------------------------------
 1 | 0x05, 0x0C, 0x09, 0x01, 0xA1, 0x01, 0x85, 0x01, 0x09, 0xE9, 
 2 | 0x09, 0xEA, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 
 3 | 0x81, 0x02, 0x09, 0xE2, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 
 4 | 0x95, 0x01, 0x81, 0x06, 0x75, 0x02, 0x95, 0x01, 0x81, 0x03, 
 5 | 0x09, 0x36, 0xA1, 0x02, 0x05, 0x09, 0x19, 0x01, 0x29, 0x02, 
 6 | 0x15, 0x01, 0x25, 0x02, 0x75, 0x02, 0x95, 0x01, 0x81, 0x40, 
 7 | 0x75, 0x01, 0x95, 0x01, 0x81, 0x03, 0xC0, 0x85, 0x02, 0x05, 
 8 | 0x0C, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 
 9 | 0x10, 0x81, 0x02, 0x85, 0x05, 0x09, 0x00, 0x15, 0x00, 0x25, 
10 | 0x01, 0x75, 0x08, 0x95, 0x20, 0x81, 0x02, 0x85, 0x07, 0x09, 
11 | 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x20, 0x81, 
12 | 0x02, 0x85, 0x03, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 
13 | 0x01, 0x95, 0x10, 0x91, 0x02, 0x85, 0x04, 0x09, 0x00, 0x15, 
14 | 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x24, 0x91, 0x02, 0x85, 
15 | 0x06, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 
16 | 0x24, 0x91, 0x02, 0xC0, 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_B010_0001_000C_expected.rpt_desc:
--------------------------------------------------------------------------------
1 | 0x05, 0x0C, 0x09, 0x01, 0xA1, 0x01, 0x85, 0x03, 0x05, 0x06, 
2 | 0x09, 0x20, 0x15, 0x00, 0x25, 0x64, 0x75, 0x08, 0x95, 0x01, 
3 | 0x81, 0x02, 0xC0, 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_B010_0001_FF00_expected.rpt_desc:
--------------------------------------------------------------------------------
1 | 0x06, 0x00, 0xFF, 0x09, 0x01, 0xA1, 0x01, 0x85, 0x10, 0x09, 
2 | 0x01, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 0x08, 0x95, 0x06, 
3 | 0x81, 0x00, 0x09, 0x01, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 
4 | 0x08, 0x95, 0x06, 0x91, 0x00, 0xC0, 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_B010_0002_0001_expected.rpt_desc:
--------------------------------------------------------------------------------
1 | 0x05, 0x01, 0x09, 0x02, 0xA1, 0x01, 0x09, 0x01, 0xA1, 0x00, 
2 | 0x85, 0x02, 0x05, 0x09, 0x19, 0x01, 0x29, 0x08, 0x15, 0x00, 
3 | 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0x05, 0x01, 
4 | 0x09, 0x30, 0x09, 0x31, 0x16, 0x01, 0xF8, 0x26, 0xFF, 0x07, 
5 | 0x75, 0x0C, 0x95, 0x02, 0x81, 0x06, 0x09, 0x38, 0x15, 0x81, 
6 | 0x25, 0x7F, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0x05, 0x0C, 
7 | 0x0A, 0x38, 0x02, 0x15, 0x81, 0x25, 0x7F, 0x75, 0x08, 0x95, 
8 | 0x01, 0x81, 0x06, 0xC0, 0xC0, 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_B010_0002_FF00_expected.rpt_desc:
--------------------------------------------------------------------------------
1 | 0x06, 0x00, 0xFF, 0x09, 0x02, 0xA1, 0x01, 0x85, 0x11, 0x09, 
2 | 0x02, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 0x08, 0x95, 0x13, 
3 | 0x81, 0x00, 0x09, 0x02, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 
4 | 0x08, 0x95, 0x13, 0x91, 0x00, 0xC0, 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_B010_0006_0001_expected.rpt_desc:
--------------------------------------------------------------------------------
1 | 0x05, 0x01, 0x09, 0x06, 0xA1, 0x01, 0x85, 0x04, 0x05, 0x07, 
2 | 0x19, 0xE0, 0x29, 0xE7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 
3 | 0x95, 0x08, 0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 
4 | 0x19, 0x00, 0x29, 0xFF, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 
5 | 0x08, 0x95, 0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 
6 | 0x05, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x05, 0x91, 
7 | 0x02, 0x75, 0x03, 0x95, 0x01, 0x91, 0x03, 0xC0, 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_C077_0002_0001_expected.rpt_desc:
--------------------------------------------------------------------------------
1 | 0x05, 0x01, 0x09, 0x02, 0xA1, 0x01, 0x09, 0x01, 0xA1, 0x00, 
2 | 0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 
3 | 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0x05, 0x01, 0x09, 0x30, 
4 | 0x09, 0x31, 0x09, 0x38, 0x15, 0x81, 0x25, 0x7F, 0x75, 0x08, 
5 | 0x95, 0x03, 0x81, 0x06, 0xC0, 0xC0, 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_C077_0002_0001_real.rpt_desc:
--------------------------------------------------------------------------------
 1 | Usage Page (Generic Desktop) 05 01  
 2 | Usage (Mouse) 09 02  
 3 | Collection (Application) A1 01  
 4 |     Usage (Pointer) 09 01  
 5 |     Collection (Physical) A1 00  
 6 |         Usage Page (Button) 05 09  
 7 |         Usage Minimum (Button 1) 19 01  
 8 |         Usage Maximum (Button 3) 29 03  
 9 |         Logical Minimum (0) 15 00  
10 |         Logical Maximum (1) 25 01  
11 |         Report Count (8) 95 08  
12 |         Report Size (1) 75 01  
13 |         Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02  
14 |         Usage Page (Generic Desktop) 05 01  
15 |         Usage (X) 09 30  
16 |         Usage (Y) 09 31  
17 |         Usage (Wheel) 09 38  
18 |         Logical Minimum (-127) 15 81  
19 |         Logical Maximum (127) 25 7F  
20 |         Report Size (8) 75 08  
21 |         Report Count (3) 95 03  
22 |         Input (Data,Var,Rel,NWrp,Lin,Pref,NNul,Bit) 81 06  
23 |     End Collection C0  
24 | End Collection C0 
25 | 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_C52F_0001_000C_expected.rpt_desc:
--------------------------------------------------------------------------------
1 | 0x05, 0x0C, 0x09, 0x01, 0xA1, 0x01, 0x85, 0x03, 0x19, 0x01, 
2 | 0x2A, 0x8C, 0x02, 0x15, 0x01, 0x26, 0x8C, 0x02, 0x75, 0x10, 
3 | 0x95, 0x02, 0x81, 0x00, 0xC0, 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_C52F_0001_000C_real.rpt_desc:
--------------------------------------------------------------------------------
 1 | Usage Page (Consumer Devices) 05 0C  
 2 | Usage (Consumer Control) 09 01  
 3 | Collection (Application) A1 01  
 4 |     Report ID (3) 85 03  
 5 |     Report Size (16) 75 10  
 6 |     Report Count (2) 95 02  
 7 |     Logical Minimum (1) 15 01  
 8 |     Logical Maximum (652) 26 8C 02  
 9 |     Usage Minimum (Consumer Control) 19 01  
10 |     Usage Maximum (AC Send) 2A 8C 02  
11 |     Input (Data,Ary,Abs) 81 00  
12 | End Collection C0  
13 | 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_C52F_0001_FF00_expected.rpt_desc:
--------------------------------------------------------------------------------
1 | 0x06, 0x00, 0xFF, 0x09, 0x01, 0xA1, 0x01, 0x85, 0x10, 0x09, 
2 | 0x01, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 0x08, 0x95, 0x06, 
3 | 0x81, 0x00, 0x09, 0x01, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 
4 | 0x08, 0x95, 0x06, 0x91, 0x00, 0xC0, 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_C52F_0001_FF00_real.rpt_desc:
--------------------------------------------------------------------------------
 1 | Usage Page (Vendor-Defined 1) 06 00 FF  
 2 | Usage (Vendor-Defined 1) 09 01  
 3 | Collection (Application) A1 01  
 4 |     Report ID (16) 85 10  
 5 |     Report Size (8) 75 08  
 6 |     Report Count (6) 95 06  
 7 |     Logical Minimum (0) 15 00  
 8 |     Logical Maximum (255) 26 FF 00  
 9 |     Usage (Vendor-Defined 1) 09 01  
10 |     Input (Data,Ary,Abs) 81 00  
11 |     Usage (Vendor-Defined 1) 09 01  
12 |     Output (Data,Ary,Abs,NWrp,Lin,Pref,NNul,NVol,Bit) 91 00  
13 | End Collection C0 
14 | 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_C52F_0002_0001_expected.rpt_desc:
--------------------------------------------------------------------------------
1 | 0x05, 0x01, 0x09, 0x02, 0xA1, 0x01, 0x09, 0x01, 0xA1, 0x00, 
2 | 0x05, 0x09, 0x19, 0x01, 0x29, 0x10, 0x15, 0x00, 0x25, 0x01, 
3 | 0x75, 0x01, 0x95, 0x10, 0x81, 0x02, 0x05, 0x01, 0x09, 0x30, 
4 | 0x09, 0x31, 0x16, 0x01, 0x80, 0x26, 0xFF, 0x7F, 0x75, 0x10, 
5 | 0x95, 0x02, 0x81, 0x06, 0x09, 0x38, 0x15, 0x81, 0x25, 0x7F, 
6 | 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0x05, 0x0C, 0x0A, 0x38, 
7 | 0x02, 0x15, 0x81, 0x25, 0x7F, 0x75, 0x08, 0x95, 0x01, 0x81, 
8 | 0x06, 0xC0, 0xC0, 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_C52F_0002_FF00_expected.rpt_desc:
--------------------------------------------------------------------------------
1 | 0x06, 0x00, 0xFF, 0x09, 0x02, 0xA1, 0x01, 0x85, 0x11, 0x09, 
2 | 0x02, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 0x08, 0x95, 0x13, 
3 | 0x81, 0x00, 0x09, 0x02, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 
4 | 0x08, 0x95, 0x13, 0x91, 0x00, 0xC0, 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_C52F_0002_FF00_real.rpt_desc:
--------------------------------------------------------------------------------
 1 | Usage Page (Vendor-Defined 1) 06 00 FF  
 2 | Usage (Vendor-Defined 2) 09 02  
 3 | Collection (Application) A1 01  
 4 |     Report ID (17) 85 11  
 5 |     Report Size (8) 75 08  
 6 |     Report Count (19) 95 13  
 7 |     Logical Minimum (0) 15 00  
 8 |     Logical Maximum (255) 26 FF 00  
 9 |     Usage (Vendor-Defined 2) 09 02  
10 |     Input (Data,Ary,Abs) 81 00  
11 |     Usage (Vendor-Defined 2) 09 02  
12 |     Output (Data,Ary,Abs,NWrp,Lin,Pref,NNul,NVol,Bit) 91 00  
13 | End Collection C0  
14 | 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_C534_0001_000C_expected.rpt_desc:
--------------------------------------------------------------------------------
1 | 0x05, 0x0C, 0x09, 0x01, 0xA1, 0x01, 0x85, 0x03, 0x19, 0x01, 
2 | 0x2A, 0x8C, 0x02, 0x15, 0x01, 0x26, 0x8C, 0x02, 0x75, 0x10, 
3 | 0x95, 0x02, 0x81, 0x00, 0xC0, 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_C534_0001_000C_real.rpt_desc:
--------------------------------------------------------------------------------
 1 | macOS USB prober output for Logitech USB Receiver
 2 |  05 0C  09 01  A1 01
 3 |  85 03  75 10  95 02  15 01  26 8C 02  19 01  2A 8C 02  81 00
 4 |  C0
 5 |  
 6 |  Parser output:
 7 | 0x05, 0x0C,        // Usage Page (Consumer)
 8 | 0x09, 0x01,        // Usage (Consumer Control)
 9 | 0xA1, 0x01,        // Collection (Application)
10 | 0x85, 0x03,        //   Report ID (3)
11 | 0x75, 0x10,        //   Report Size (16)
12 | 0x95, 0x02,        //   Report Count (2)
13 | 0x15, 0x01,        //   Logical Minimum (1)
14 | 0x26, 0x8C, 0x02,  //   Logical Maximum (652)
15 | 0x19, 0x01,        //   Usage Minimum (Consumer Control)
16 | 0x2A, 0x8C, 0x02,  //   Usage Maximum (AC Send)
17 | 0x81, 0x00,        //   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
18 | 0xC0,              // End Collection


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_C534_0001_FF00_expected.rpt_desc:
--------------------------------------------------------------------------------
1 | 0x06, 0x00, 0xFF, 0x09, 0x01, 0xA1, 0x01, 0x85, 0x10, 0x09, 
2 | 0x01, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 0x08, 0x95, 0x06, 
3 | 0x81, 0x00, 0x09, 0x01, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 
4 | 0x08, 0x95, 0x06, 0x91, 0x00, 0xC0, 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_C534_0001_FF00_real.rpt_desc:
--------------------------------------------------------------------------------
 1 | macOS USB prober output for Logitech USB Receiver
 2 | 
 3 | 06 00 FF 09 01 A1 01 85 10 75 08 95 06
 4 | 15 00 26 FF 00 09 01 81  
 5 | 00 09 01 91 00 C0 
 6 |                          
 7 | Parser Output:
 8 | 0x06, 0x00, 0xFF,  // Usage Page (Vendor Defined 0xFF00)
 9 | 0x09, 0x01,        // Usage (0x01)
10 | 0xA1, 0x01,        // Collection (Application)
11 | 0x85, 0x10,        //   Report ID (16)
12 | 0x75, 0x08,        //   Report Size (8)
13 | 0x95, 0x06,        //   Report Count (6)
14 | 0x15, 0x00,        //   Logical Minimum (0)
15 | 0x26, 0xFF, 0x00,  //   Logical Maximum (255)
16 | 0x09, 0x01,        //   Usage (0x01)
17 | 0x81, 0x00,        //   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
18 | 0x09, 0x01,        //   Usage (0x01)
19 | 0x91, 0x00,        //   Output (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
20 | 0xC0,              // End Collection
21 | 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_C534_0002_0001_expected.rpt_desc:
--------------------------------------------------------------------------------
1 | 0x05, 0x01, 0x09, 0x02, 0xA1, 0x01, 0x09, 0x01, 0xA1, 0x00, 
2 | 0x85, 0x02, 0x05, 0x09, 0x19, 0x01, 0x29, 0x10, 0x15, 0x00, 
3 | 0x25, 0x01, 0x75, 0x01, 0x95, 0x10, 0x81, 0x02, 0x05, 0x01, 
4 | 0x09, 0x30, 0x09, 0x31, 0x16, 0x01, 0xF8, 0x26, 0xFF, 0x07, 
5 | 0x75, 0x0C, 0x95, 0x02, 0x81, 0x06, 0x09, 0x38, 0x15, 0x81, 
6 | 0x25, 0x7F, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0x05, 0x0C, 
7 | 0x0A, 0x38, 0x02, 0x15, 0x81, 0x25, 0x7F, 0x75, 0x08, 0x95, 
8 | 0x01, 0x81, 0x06, 0xC0, 0xC0, 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_C534_0002_FF00_expected.rpt_desc:
--------------------------------------------------------------------------------
1 | 0x06, 0x00, 0xFF, 0x09, 0x02, 0xA1, 0x01, 0x85, 0x11, 0x09, 
2 | 0x02, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 0x08, 0x95, 0x13, 
3 | 0x81, 0x00, 0x09, 0x02, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 
4 | 0x08, 0x95, 0x13, 0x91, 0x00, 0xC0, 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_C534_0002_FF00_real.rpt_desc:
--------------------------------------------------------------------------------
 1 | macOS USB prober output for Logitech USB Receiver
 2 | 
 3 | 06 00  FF 09 02 A1 01 85 11
 4 | 75 08 95 13 15 00 26 FF
 5 | 00 09 02 81 00 09 02 91 00 C0
 6 | 
 7 | Parser output:
 8 | 0x06, 0x00, 0xFF,  // Usage Page (Vendor Defined 0xFF00)
 9 | 0x09, 0x02,        // Usage (0x02)
10 | 0xA1, 0x01,        // Collection (Application)
11 | 0x85, 0x11,        //   Report ID (17)
12 | 0x75, 0x08,        //   Report Size (8)
13 | 0x95, 0x13,        //   Report Count (19)
14 | 0x15, 0x00,        //   Logical Minimum (0)
15 | 0x26, 0xFF, 0x00,  //   Logical Maximum (255)
16 | 0x09, 0x02,        //   Usage (0x02)
17 | 0x81, 0x00,        //   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
18 | 0x09, 0x02,        //   Usage (0x02)
19 | 0x91, 0x00,        //   Output (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
20 | 0xC0,              // End Collection
21 | 
22 | // 27 bytes
23 | 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_C534_0006_0001_expected.rpt_desc:
--------------------------------------------------------------------------------
1 | 0x05, 0x01, 0x09, 0x06, 0xA1, 0x01, 0x05, 0x07, 0x19, 0xE0, 
2 | 0x29, 0xE7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 
3 | 0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x19, 0x00, 
4 | 0x29, 0xA4, 0x15, 0x00, 0x26, 0xA4, 0x00, 0x75, 0x08, 0x95, 
5 | 0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x05, 0x15, 
6 | 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x05, 0x91, 0x02, 0x75, 
7 | 0x03, 0x95, 0x01, 0x91, 0x03, 0xC0, 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_C534_0080_0001_expected.rpt_desc:
--------------------------------------------------------------------------------
1 | 0x05, 0x01, 0x09, 0x80, 0xA1, 0x01, 0x85, 0x04, 0x09, 0x82, 
2 | 0x09, 0x81, 0x09, 0x83, 0x15, 0x01, 0x25, 0x03, 0x75, 0x02, 
3 | 0x95, 0x01, 0x81, 0x60, 0x75, 0x06, 0x95, 0x01, 0x81, 0x03, 
4 | 0xC0, 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/046D_C534_0080_0001_real.rpt_desc:
--------------------------------------------------------------------------------
 1 | 
 2 | 05 01 09 80 A1 01 85 04 75 02  95 01 15 01 25 03
 3 | 09 82 09 81 09 83 81 60 75 06  81 03 C0
 4 | 
 5 | Parser output:
 6 | 0x05, 0x01,        // Usage Page (Generic Desktop Ctrls)
 7 | 0x09, 0x80,        // Usage (Sys Control)
 8 | 0xA1, 0x01,        // Collection (Application)
 9 | 0x85, 0x04,        //   Report ID (4)
10 | 0x75, 0x02,        //   Report Size (2)
11 | 0x95, 0x01,        //   Report Count (1)
12 | 0x15, 0x01,        //   Logical Minimum (1)
13 | 0x25, 0x03,        //   Logical Maximum (3)
14 | 0x09, 0x82,        //   Usage (Sys Sleep)
15 | 0x09, 0x81,        //   Usage (Sys Power Down)
16 | 0x09, 0x83,        //   Usage (Sys Wake Up)
17 | 0x81, 0x60,        //   Input (Data,Array,Abs,No Wrap,Linear,No Preferred State,Null State)
18 | 0x75, 0x06,        //   Report Size (6)
19 | 0x81, 0x03,        //   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
20 | 0xC0,              // End Collection
21 | 
22 | // 29 bytes
23 | 


--------------------------------------------------------------------------------
/src/hidapi/windows/test/data/047F_C056_0001_000C_expected.rpt_desc:
--------------------------------------------------------------------------------
 1 | 0x05, 0x0C, 0x09, 0x01, 0xA1, 0x01, 0x85, 0x01, 0x09, 0xE9, 
 2 | 0x09, 0xEA, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 
 3 | 0x81, 0x06, 0x75, 0x06, 0x95, 0x01, 0x81, 0x03, 0x85, 0x02, 
 4 | 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x10, 
 5 | 0x81, 0x02, 0x85, 0x05, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 
 6 | 0x75, 0x08, 0x95, 0x20, 0x81, 0x02, 0x85, 0x07, 0x09, 0x00, 
 7 | 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x20, 0x81, 0x02, 
 8 | 0x85, 0x04, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 
 9 | 0x95, 0x24, 0x91, 0x02, 0x85, 0x06, 0x09, 0x00, 0x15, 0x00, 
10 | 0x25, 0x01, 0x75, 0x08, 0x95, 0x24, 0x91, 0x02, 0xC0, 


--------------------------------------------------------------------------------
/src/libm/s_copysign.c:
--------------------------------------------------------------------------------
 1 | #include "SDL_internal.h"
 2 | /*
 3 |  * ====================================================
 4 |  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
 5 |  *
 6 |  * Developed at SunPro, a Sun Microsystems, Inc. business.
 7 |  * Permission to use, copy, modify, and distribute this
 8 |  * software is freely granted, provided that this notice
 9 |  * is preserved.
10 |  * ====================================================
11 |  */
12 | 
13 | /*
14 |  * copysign(double x, double y)
15 |  * copysign(x,y) returns a value with the magnitude of x and
16 |  * with the sign bit of y.
17 |  */
18 | 
19 | #include "math_libm.h"
20 | #include "math_private.h"
21 | 
22 | double copysign(double x, double y)
23 | {
24 | 	u_int32_t hx,hy;
25 | 	GET_HIGH_WORD(hx,x);
26 | 	GET_HIGH_WORD(hy,y);
27 | 	SET_HIGH_WORD(x,(hx&0x7fffffff)|(hy&0x80000000));
28 |         return x;
29 | }
30 | libm_hidden_def(copysign)
31 | 


--------------------------------------------------------------------------------
/src/libm/s_fabs.c:
--------------------------------------------------------------------------------
 1 | #include "SDL_internal.h"
 2 | /*
 3 |  * ====================================================
 4 |  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
 5 |  *
 6 |  * Developed at SunPro, a Sun Microsystems, Inc. business.
 7 |  * Permission to use, copy, modify, and distribute this
 8 |  * software is freely granted, provided that this notice
 9 |  * is preserved.
10 |  * ====================================================
11 |  */
12 | 
13 | /*
14 |  * fabs(x) returns the absolute value of x.
15 |  */
16 | 
17 | /*#include <features.h>*/
18 | /* Prevent math.h from defining a colliding inline */
19 | #undef __USE_EXTERN_INLINES
20 | #include "math_libm.h"
21 | #include "math_private.h"
22 | 
23 | double fabs(double x)
24 | {
25 | 	u_int32_t high;
26 | 	GET_HIGH_WORD(high,x);
27 | 	SET_HIGH_WORD(x,high&0x7fffffff);
28 |         return x;
29 | }
30 | libm_hidden_def(fabs)
31 | 


--------------------------------------------------------------------------------
/src/libm/s_isinf.c:
--------------------------------------------------------------------------------
 1 | #include "SDL_internal.h"
 2 | /*
 3 |  * Written by J.T. Conklin <jtc@netbsd.org>.
 4 |  * Changed to return -1 for -Inf by Ulrich Drepper <drepper@cygnus.com>.
 5 |  * Public domain.
 6 |  */
 7 | 
 8 | /*
 9 |  * isinf(x) returns 1 is x is inf, -1 if x is -inf, else 0;
10 |  * no branching!
11 |  */
12 | 
13 | #include "math.h"
14 | #include "math_private.h"
15 | 
16 | int __isinf(double x)
17 | {
18 | 	int32_t hx,lx;
19 | 	EXTRACT_WORDS(hx,lx,x);
20 | 	lx |= (hx & 0x7fffffff) ^ 0x7ff00000;
21 | 	lx |= -lx;
22 | 	return ~(lx >> 31) & (hx >> 30);
23 | }
24 | libm_hidden_def(__isinf)
25 | 


--------------------------------------------------------------------------------
/src/libm/s_isinff.c:
--------------------------------------------------------------------------------
 1 | #include "SDL_internal.h"
 2 | /*
 3 |  * Written by J.T. Conklin <jtc@netbsd.org>.
 4 |  * Public domain.
 5 |  */
 6 | 
 7 | /*
 8 |  * isinff(x) returns 1 if x is inf, -1 if x is -inf, else 0;
 9 |  * no branching!
10 |  */
11 | 
12 | #include "math.h"
13 | #include "math_private.h"
14 | 
15 | int __isinff (float x)
16 | {
17 | 	int32_t ix,t;
18 | 	GET_FLOAT_WORD(ix,x);
19 | 	t = ix & 0x7fffffff;
20 | 	t ^= 0x7f800000;
21 | 	t |= -t;
22 | 	return ~(t >> 31) & (ix >> 30);
23 | }
24 | libm_hidden_def(__isinff)
25 | 


--------------------------------------------------------------------------------
/src/libm/s_isnan.c:
--------------------------------------------------------------------------------
 1 | #include "SDL_internal.h"
 2 | /*
 3 |  * ====================================================
 4 |  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
 5 |  *
 6 |  * Developed at SunPro, a Sun Microsystems, Inc. business.
 7 |  * Permission to use, copy, modify, and distribute this
 8 |  * software is freely granted, provided that this notice
 9 |  * is preserved.
10 |  * ====================================================
11 |  */
12 | 
13 | /*
14 |  * isnan(x) returns 1 is x is nan, else 0;
15 |  * no branching!
16 |  */
17 | 
18 | #include "math.h"
19 | #include "math_private.h"
20 | 
21 | int __isnan(double x)
22 | {
23 | 	int32_t hx,lx;
24 | 	EXTRACT_WORDS(hx,lx,x);
25 | 	hx &= 0x7fffffff;
26 | 	hx |= (u_int32_t)(lx|(-lx))>>31;
27 | 	hx = 0x7ff00000 - hx;
28 | 	return (int)(((u_int32_t)hx)>>31);
29 | }
30 | weak_alias(__isnan, isnan)
31 | libm_hidden_def(__isnan)
32 | 


--------------------------------------------------------------------------------
/src/libm/s_isnanf.c:
--------------------------------------------------------------------------------
 1 | #include "SDL_internal.h"
 2 | /* s_isnanf.c -- float version of s_isnan.c.
 3 |  * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
 4 |  */
 5 | 
 6 | /*
 7 |  * ====================================================
 8 |  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
 9 |  *
10 |  * Developed at SunPro, a Sun Microsystems, Inc. business.
11 |  * Permission to use, copy, modify, and distribute this
12 |  * software is freely granted, provided that this notice
13 |  * is preserved.
14 |  * ====================================================
15 |  */
16 | 
17 | /*
18 |  * isnanf(x) returns 1 is x is nan, else 0;
19 |  * no branching!
20 |  */
21 | 
22 | #include "math.h"
23 | #include "math_private.h"
24 | 
25 | int __isnanf(float x)
26 | {
27 | 	int32_t ix;
28 | 	GET_FLOAT_WORD(ix,x);
29 | 	ix &= 0x7fffffff;
30 | 	ix = 0x7f800000 - ix;
31 | 	return (int)(((u_int32_t)(ix))>>31);
32 | }
33 | libm_hidden_def(__isnanf)
34 | 


--------------------------------------------------------------------------------
/src/render/direct3d/compile_shaders.bat:
--------------------------------------------------------------------------------
1 | fxc /T ps_2_0 /Fh D3D9_PixelShader_YUV.h D3D9_PixelShader_YUV.hlsl
2 | 


--------------------------------------------------------------------------------
/src/render/direct3d11/D3D11_PixelShader_Advanced.hlsl:
--------------------------------------------------------------------------------
1 | 
2 | #include "D3D11_PixelShader_Common.hlsli"
3 | 
4 | float4 main(PixelShaderInput input) : SV_TARGET
5 | {
6 |     return AdvancedPixelShader(input);
7 | }
8 | 


--------------------------------------------------------------------------------
/src/render/direct3d11/D3D11_PixelShader_Colors.hlsl:
--------------------------------------------------------------------------------
1 | 
2 | #include "D3D11_PixelShader_Common.hlsli"
3 | 
4 | float4 main(PixelShaderInput input) : SV_TARGET
5 | {
6 |     return GetOutputColor(1.0) * input.color;
7 | }
8 | 


--------------------------------------------------------------------------------
/src/render/direct3d11/D3D11_PixelShader_Textures.hlsl:
--------------------------------------------------------------------------------
 1 | Texture2D theTexture : register(t0);
 2 | SamplerState theSampler : register(s0);
 3 | 
 4 | #include "D3D11_PixelShader_Common.hlsli"
 5 | 
 6 | float4 main(PixelShaderInput input) : SV_TARGET
 7 | {
 8 |     return GetOutputColor(theTexture.Sample(theSampler, input.tex)) * input.color;
 9 | }
10 | 


--------------------------------------------------------------------------------
/src/render/direct3d11/D3D11_VertexShader.hlsl:
--------------------------------------------------------------------------------
 1 | #pragma pack_matrix( row_major )
 2 | 
 3 | cbuffer VertexShaderConstants : register(b0)
 4 | {
 5 |     matrix model;
 6 |     matrix projectionAndView;
 7 | };
 8 | 
 9 | struct VertexShaderInput
10 | {
11 |     float3 pos : POSITION;
12 |     float2 tex : TEXCOORD0;
13 |     float4 color : COLOR0;
14 | };
15 | 
16 | struct VertexShaderOutput
17 | {
18 |     float4 pos : SV_POSITION;
19 |     float2 tex : TEXCOORD0;
20 |     float4 color : COLOR0;
21 | };
22 | 
23 | VertexShaderOutput main(VertexShaderInput input)
24 | {
25 |     VertexShaderOutput output;
26 |     float4 pos = float4(input.pos, 1.0f);
27 | 
28 |     // Transform the vertex position into projected space.
29 |     pos = mul(pos, model);
30 |     pos = mul(pos, projectionAndView);
31 |     output.pos = pos;
32 | 
33 |     // Pass through texture coordinates and color values without transformation
34 |     output.tex = input.tex;
35 |     output.color = input.color;
36 | 
37 |     return output;
38 | }
39 | 


--------------------------------------------------------------------------------
/src/render/direct3d11/compile_shaders.bat:
--------------------------------------------------------------------------------
1 | fxc /T ps_4_0_level_9_1 /Fh D3D11_PixelShader_Colors.h D3D11_PixelShader_Colors.hlsl
2 | fxc /T ps_4_0_level_9_1 /Fh D3D11_PixelShader_Textures.h D3D11_PixelShader_Textures.hlsl
3 | fxc /T ps_5_0 /Fh D3D11_PixelShader_Advanced.h D3D11_PixelShader_Advanced.hlsl
4 | fxc /T vs_4_0_level_9_1 /Fh D3D11_VertexShader.h D3D11_VertexShader.hlsl
5 | 


--------------------------------------------------------------------------------
/src/render/direct3d12/D3D12_PixelShader_Advanced.hlsl:
--------------------------------------------------------------------------------
1 | 
2 | #include "D3D12_PixelShader_Common.hlsli"
3 | 
4 | [RootSignature(AdvancedRS)]
5 | float4 main(PixelShaderInput input) : SV_TARGET
6 | {
7 |     return AdvancedPixelShader(input);
8 | }
9 | 


--------------------------------------------------------------------------------
/src/render/direct3d12/D3D12_PixelShader_Colors.hlsl:
--------------------------------------------------------------------------------
1 | 
2 | #include "D3D12_PixelShader_Common.hlsli"
3 | 
4 | [RootSignature(ColorRS)]
5 | float4 main(PixelShaderInput input) : SV_TARGET0
6 | {
7 |     return GetOutputColor(1.0) * input.color;
8 | }
9 | 


--------------------------------------------------------------------------------
/src/render/direct3d12/D3D12_PixelShader_Textures.hlsl:
--------------------------------------------------------------------------------
1 | 
2 | #include "D3D12_PixelShader_Common.hlsli"
3 | 
4 | [RootSignature(TextureRS)]
5 | float4 main(PixelShaderInput input) : SV_TARGET
6 | {
7 |     return GetOutputColor(texture0.Sample(sampler0, input.tex)) * input.color;
8 | }
9 | 


--------------------------------------------------------------------------------
/src/render/direct3d12/D3D12_RootSig_Color.h:
--------------------------------------------------------------------------------
 1 | #if 0
 2 | Disassembly failed
 3 | #endif
 4 | 
 5 | const unsigned char g_ColorRS[] = {
 6 |   0x44, 0x58, 0x42, 0x43, 0x7e, 0x46, 0xa0, 0x92, 0xc6, 0x80, 0xfa, 0x5c,
 7 |   0x26, 0x9e, 0x8f, 0x06, 0x1f, 0x7e, 0x05, 0x4c, 0x01, 0x00, 0x00, 0x00,
 8 |   0x74, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00,
 9 |   0x52, 0x54, 0x53, 0x30, 0x48, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
10 |   0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
11 |   0x48, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
12 |   0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
13 |   0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14 |   0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
15 |   0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00
16 | };
17 | 


--------------------------------------------------------------------------------
/src/render/direct3d12/compile_shaders_xbox.bat:
--------------------------------------------------------------------------------
 1 | if %2.==one. goto setxboxone
 2 | rem Xbox Series compile
 3 | set DXC="%GameDKLatest%\GXDK\bin\Scarlett\DXC.exe"
 4 | set SUFFIX=_Series.h
 5 | goto startbuild
 6 | 
 7 | :setxboxone
 8 | set DXC="%GameDKLatest%\GXDK\bin\XboxOne\DXC.exe"
 9 | set SUFFIX=_One.h
10 | 
11 | :startbuild
12 | 
13 | call "%~dp0\compile_shaders.bat"
14 | 


--------------------------------------------------------------------------------
/src/render/gpu/shaders/.gitattributes:
--------------------------------------------------------------------------------
1 | *.h linguist-generated
2 | 


--------------------------------------------------------------------------------
/src/render/gpu/shaders/.gitignore:
--------------------------------------------------------------------------------
1 | *.hlsl
2 | *.metal
3 | *.spv
4 | *.tmp.h
5 | 


--------------------------------------------------------------------------------
/src/render/gpu/shaders/build-shaders.sh:
--------------------------------------------------------------------------------
 1 | #!/usr/bin/env bash
 2 | 
 3 | set -e
 4 | 
 5 | make-header() {
 6 |     xxd -i "$1" | sed \
 7 |         -e 's/^unsigned /const unsigned /g' \
 8 |         -e 's,^const,static const,' \
 9 |         > "$1.h"
10 | }
11 | 
12 | # Requires shadercross CLI installed from SDL_shadercross
13 | for filename in *.hlsl; do
14 |     if [ -f "$filename" ]; then
15 |         shadercross "$filename" -o "${filename/.hlsl/.spv}"
16 |         make-header "${filename/.hlsl/.spv}"
17 |         shadercross "$filename" -o "${filename/.hlsl/.msl}"
18 |         make-header "${filename/.hlsl/.msl}"
19 |         shadercross "$filename" -o "${filename/.hlsl/.dxil}"
20 |         make-header "${filename/.hlsl/.dxil}"
21 |     fi
22 | done
23 | 
24 | rm -f *.spv *.msl *.dxil
25 | 


--------------------------------------------------------------------------------
/src/render/gpu/shaders/color.frag.hlsl:
--------------------------------------------------------------------------------
 1 | struct PSInput {
 2 |     float4 v_color : COLOR0;
 3 | };
 4 | 
 5 | struct PSOutput {
 6 |     float4 o_color : SV_Target;
 7 | };
 8 | 
 9 | PSOutput main(PSInput input) {
10 |     PSOutput output;
11 |     output.o_color = input.v_color;
12 |     return output;
13 | }
14 | 


--------------------------------------------------------------------------------
/src/render/gpu/shaders/dxil.h:
--------------------------------------------------------------------------------
1 | #include "color.frag.dxil.h"
2 | #include "linepoint.vert.dxil.h"
3 | #include "texture_rgb.frag.dxil.h"
4 | #include "texture_rgb_pixelart.frag.dxil.h"
5 | #include "texture_rgba.frag.dxil.h"
6 | #include "texture_rgba_pixelart.frag.dxil.h"
7 | #include "tri_color.vert.dxil.h"
8 | #include "tri_texture.vert.dxil.h"
9 | 


--------------------------------------------------------------------------------
/src/render/gpu/shaders/linepoint.vert.hlsl:
--------------------------------------------------------------------------------
 1 | cbuffer Context : register(b0, space1) {
 2 |     float4x4 mvp;  // Model-View-Projection matrix
 3 |     float4 color;  // Color
 4 | };
 5 | 
 6 | struct VSInput {
 7 |     float2 a_position : POSITION;
 8 | };
 9 | 
10 | struct VSOutput {
11 |     float4 v_color : COLOR;
12 |     float4 gl_Position : SV_POSITION;
13 |     [[vk::builtin("PointSize")]]
14 |     float gl_PointSize : PSIZE;
15 | };
16 | 
17 | VSOutput main(VSInput input) {
18 |     VSOutput output;
19 |     output.v_color = color;
20 |     output.gl_Position = mul(mvp, float4(input.a_position, 0.0, 1.0));
21 |     output.gl_PointSize = 1.0f;
22 |     return output;
23 | }
24 | 


--------------------------------------------------------------------------------
/src/render/gpu/shaders/msl.h:
--------------------------------------------------------------------------------
1 | #include "color.frag.msl.h"
2 | #include "linepoint.vert.msl.h"
3 | #include "texture_rgb.frag.msl.h"
4 | #include "texture_rgb_pixelart.frag.msl.h"
5 | #include "texture_rgba.frag.msl.h"
6 | #include "texture_rgba_pixelart.frag.msl.h"
7 | #include "tri_color.vert.msl.h"
8 | #include "tri_texture.vert.msl.h"
9 | 


--------------------------------------------------------------------------------
/src/render/gpu/shaders/spir-v.h:
--------------------------------------------------------------------------------
1 | #include "color.frag.spv.h"
2 | #include "linepoint.vert.spv.h"
3 | #include "texture_rgb.frag.spv.h"
4 | #include "texture_rgb_pixelart.frag.spv.h"
5 | #include "texture_rgba.frag.spv.h"
6 | #include "texture_rgba_pixelart.frag.spv.h"
7 | #include "tri_color.vert.spv.h"
8 | #include "tri_texture.vert.spv.h"
9 | 


--------------------------------------------------------------------------------
/src/render/gpu/shaders/texture_pixelart.frag.hlsli:
--------------------------------------------------------------------------------
 1 | cbuffer Context : register(b0, space3) {
 2 |     float4 texel_size;
 3 | };
 4 | 
 5 | Texture2D u_texture : register(t0, space2);
 6 | SamplerState u_sampler : register(s0, space2);
 7 | 
 8 | struct PSInput {
 9 |     float4 v_color : COLOR0;
10 |     float2 v_uv : TEXCOORD0;
11 | };
12 | 
13 | struct PSOutput {
14 |     float4 o_color : SV_Target;
15 | };
16 | 
17 | float2 GetPixelArtUV(PSInput input)
18 | {
19 |     // box filter size in texel units
20 |     float2 boxSize = clamp(fwidth(input.v_uv) * texel_size.zw, 1e-5, 1);
21 | 
22 |     // scale uv by texture size to get texel coordinate
23 |     float2 tx = input.v_uv * texel_size.zw - 0.5 * boxSize;
24 | 
25 |     // compute offset for pixel-sized box filter
26 |     float2 txOffset = smoothstep(1 - boxSize, 1, frac(tx));
27 | 
28 |     // compute bilinear sample uv coordinates
29 |     float2 uv = (floor(tx) + 0.5 + txOffset) * texel_size.xy;
30 | 
31 |     return uv;
32 | }
33 | 
34 | 


--------------------------------------------------------------------------------
/src/render/gpu/shaders/texture_rgb.frag.hlsl:
--------------------------------------------------------------------------------
 1 | Texture2D u_texture : register(t0, space2);
 2 | SamplerState u_sampler : register(s0, space2);
 3 | 
 4 | struct PSInput {
 5 |     float4 v_color : COLOR0;
 6 |     float2 v_uv : TEXCOORD0;
 7 | };
 8 | 
 9 | struct PSOutput {
10 |     float4 o_color : SV_Target;
11 | };
12 | 
13 | PSOutput main(PSInput input) {
14 |     PSOutput output;
15 |     output.o_color = float4(u_texture.Sample(u_sampler, input.v_uv).rgb, 1.0f) * input.v_color;
16 |     return output;
17 | }
18 | 


--------------------------------------------------------------------------------
/src/render/gpu/shaders/texture_rgb_pixelart.frag.hlsl:
--------------------------------------------------------------------------------
1 | #include "texture_pixelart.frag.hlsli"
2 | 
3 | PSOutput main(PSInput input) {
4 |     PSOutput output;
5 |     float2 uv = GetPixelArtUV(input);
6 |     output.o_color = float4(u_texture.SampleGrad(u_sampler, uv, ddx(input.v_uv), ddy(input.v_uv)).rgb, 1.0f) * input.v_color;
7 |     return output;
8 | }
9 | 


--------------------------------------------------------------------------------
/src/render/gpu/shaders/texture_rgba.frag.hlsl:
--------------------------------------------------------------------------------
 1 | Texture2D u_texture : register(t0, space2);
 2 | SamplerState u_sampler : register(s0, space2);
 3 | 
 4 | struct PSInput {
 5 |     float4 v_color : COLOR0;
 6 |     float2 v_uv : TEXCOORD0;
 7 | };
 8 | 
 9 | struct PSOutput {
10 |     float4 o_color : SV_Target;
11 | };
12 | 
13 | PSOutput main(PSInput input) {
14 |     PSOutput output;
15 |     output.o_color = u_texture.Sample(u_sampler, input.v_uv) * input.v_color;
16 |     return output;
17 | }
18 | 


--------------------------------------------------------------------------------
/src/render/gpu/shaders/texture_rgba_pixelart.frag.hlsl:
--------------------------------------------------------------------------------
1 | #include "texture_pixelart.frag.hlsli"
2 | 
3 | PSOutput main(PSInput input) {
4 |     PSOutput output;
5 |     float2 uv = GetPixelArtUV(input);
6 |     output.o_color = u_texture.SampleGrad(u_sampler, uv, ddx(input.v_uv), ddy(input.v_uv)) * input.v_color;
7 |     return output;
8 | }
9 | 


--------------------------------------------------------------------------------
/src/render/gpu/shaders/tri_color.vert.hlsl:
--------------------------------------------------------------------------------
 1 | cbuffer Context : register(b0, space1) {
 2 |     float4x4 mvp;
 3 |     float4 color;  /* XXX unused */
 4 | };
 5 | 
 6 | struct VSInput {
 7 |     float2 a_position : POSITION;
 8 |     float4 a_color : COLOR0;
 9 | };
10 | 
11 | struct VSOutput {
12 |     float4 v_color : COLOR0;
13 |     float4 gl_Position : SV_POSITION;
14 | };
15 | 
16 | VSOutput main(VSInput input) {
17 |     VSOutput output;
18 |     output.gl_Position = mul(mvp, float4(input.a_position, 0.0, 1.0));
19 |     output.v_color = input.a_color;
20 |     return output;
21 | }
22 | 


--------------------------------------------------------------------------------
/src/render/gpu/shaders/tri_texture.vert.hlsl:
--------------------------------------------------------------------------------
 1 | cbuffer Context : register(b0, space1) {
 2 |     float4x4 mvp;
 3 |     float4 color;  /* XXX unused */
 4 | };
 5 | 
 6 | struct VSInput {
 7 |     float2 a_position : POSITION;
 8 |     float4 a_color : COLOR0;
 9 |     float2 a_uv : TEXCOORD0;
10 | };
11 | 
12 | struct VSOutput {
13 |     float4 v_color : COLOR0;
14 |     float2 v_uv : TEXCOORD0;
15 |     float4 gl_Position : SV_POSITION;
16 | };
17 | 
18 | 
19 | VSOutput main(VSInput input) {
20 |     VSOutput output;
21 |     output.gl_Position = mul(mvp, float4(input.a_position, 0.0, 1.0));
22 |     output.v_color = input.a_color;
23 |     output.v_uv = input.a_uv;
24 |     return output;
25 | }
26 | 


--------------------------------------------------------------------------------
/src/render/metal/build-metal-shaders.sh:
--------------------------------------------------------------------------------
 1 | #!/bin/bash
 2 | 
 3 | set -x
 4 | set -e
 5 | cd `dirname "$0"`
 6 | 
 7 | generate_shaders()
 8 | {
 9 |     fileplatform=$1
10 |     compileplatform=$2
11 |     sdkplatform=$3
12 |     minversion=$4
13 |     xcrun -sdk $sdkplatform metal -c -std=$compileplatform-metal1.1 -m$sdkplatform-version-min=$minversion -Wall -O3 -o ./sdl.air ./SDL_shaders_metal.metal || exit $?
14 |     xcrun -sdk $sdkplatform metal-ar rc sdl.metalar sdl.air || exit $?
15 |     xcrun -sdk $sdkplatform metallib -o sdl.metallib sdl.metalar || exit $?
16 |     xxd -i sdl.metallib | perl -w -p -e 's/\Aunsigned /const unsigned /;' >./SDL_shaders_metal_$fileplatform.h
17 |     rm -f sdl.air sdl.metalar sdl.metallib
18 | }
19 | 
20 | generate_shaders macos macos macosx 10.11
21 | generate_shaders ios ios iphoneos 8.0
22 | generate_shaders iphonesimulator ios iphonesimulator 8.0
23 | generate_shaders tvos ios appletvos 9.0
24 | generate_shaders tvsimulator ios appletvsimulator 9.0
25 | 


--------------------------------------------------------------------------------
/src/render/vitagxm/shader_src/clear_f.cg:
--------------------------------------------------------------------------------
1 | float4 main( uniform float4 uClearColor) : COLOR
2 | {
3 |     return uClearColor;
4 | }
5 | 


--------------------------------------------------------------------------------
/src/render/vitagxm/shader_src/clear_v.cg:
--------------------------------------------------------------------------------
1 | float4 main(float2 aPosition) : POSITION
2 | {
3 |     return float4(aPosition, 1.f, 1.f);
4 | }
5 | 


--------------------------------------------------------------------------------
/src/render/vitagxm/shader_src/color_f.cg:
--------------------------------------------------------------------------------
1 | float4 main(float4 vColor : COLOR)
2 | {
3 |     return vColor;
4 | }
5 | 


--------------------------------------------------------------------------------
/src/render/vitagxm/shader_src/color_v.cg:
--------------------------------------------------------------------------------
 1 | void main(
 2 |     float2 aPosition,
 3 |     float4 aColor,
 4 |     uniform float4x4 wvp,
 5 |     out float4 vPosition : POSITION,
 6 |     out float4 vColor : COLOR,
 7 |     out float pSize : PSIZE
 8 | )
 9 | {
10 |     vPosition = mul(float4(aPosition, 1.f, 0.5f), wvp);
11 |     vColor = aColor;
12 |     pSize = 1.f;
13 | }
14 | 


--------------------------------------------------------------------------------
/src/render/vitagxm/shader_src/texture_f.cg:
--------------------------------------------------------------------------------
1 | float4 main(float2 vTexcoord : TEXCOORD0, float4 vColor : COLOR, uniform sampler2D tex)
2 | {
3 |     return tex2D(tex, vTexcoord) * vColor;
4 | }
5 | 


--------------------------------------------------------------------------------
/src/render/vitagxm/shader_src/texture_v.cg:
--------------------------------------------------------------------------------
 1 | void main(
 2 |     float2 aPosition,
 3 |     float2 aTexcoord,
 4 |     float4 aColor,
 5 |     uniform float4x4 wvp,
 6 |     out float4 vPosition : POSITION,
 7 |     out float4 vColor : COLOR,
 8 |     out float2 vTexcoord : TEXCOORD0
 9 | )
10 | {
11 |     vPosition = mul(float4(aPosition, 1.f, 0.5f), wvp);
12 |     vTexcoord = aTexcoord;
13 |     vColor = aColor;
14 | }
15 | 


--------------------------------------------------------------------------------
/src/render/vulkan/VULKAN_PixelShader_Advanced.hlsl:
--------------------------------------------------------------------------------
1 | 
2 | #include "VULKAN_PixelShader_Common.hlsli"
3 | 
4 | float4 main(PixelShaderInput input) : SV_TARGET
5 | {
6 | 	return AdvancedPixelShader(input);
7 | }
8 | 


--------------------------------------------------------------------------------
/src/render/vulkan/VULKAN_PixelShader_Colors.hlsl:
--------------------------------------------------------------------------------
1 | 
2 | #include "VULKAN_PixelShader_Common.hlsli"
3 | 
4 | float4 main(PixelShaderInput input) : SV_TARGET0
5 | {
6 |     return GetOutputColor(1.0) * input.color;
7 | }
8 | 


--------------------------------------------------------------------------------
/src/render/vulkan/VULKAN_PixelShader_Textures.hlsl:
--------------------------------------------------------------------------------
1 | 
2 | #include "VULKAN_PixelShader_Common.hlsli"
3 | 
4 | float4 main(PixelShaderInput input) : SV_TARGET
5 | {
6 |     return GetOutputColor(texture0.Sample(sampler0, input.tex)) * input.color;
7 | }
8 | 


--------------------------------------------------------------------------------
/src/render/vulkan/compile_shaders.bat:
--------------------------------------------------------------------------------
1 | glslangValidator -D --sep main -e main -S frag --target-env vulkan1.0 --auto-sampled-textures --vn VULKAN_PixelShader_Colors -o VULKAN_PixelShader_Colors.h VULKAN_PixelShader_Colors.hlsl
2 | glslangValidator -D --sep main -e main -S frag --target-env vulkan1.0 --auto-sampled-textures --vn VULKAN_PixelShader_Textures -o VULKAN_PixelShader_Textures.h VULKAN_PixelShader_Textures.hlsl
3 | glslangValidator -D --sep main -e main -S frag --target-env vulkan1.0 --auto-sampled-textures --vn VULKAN_PixelShader_Advanced -o VULKAN_PixelShader_Advanced.h VULKAN_PixelShader_Advanced.hlsl
4 | 
5 | glslangValidator -D --sep mainColor -e main -S vert --iy --target-env vulkan1.0 --vn VULKAN_VertexShader -o VULKAN_VertexShader.h VULKAN_VertexShader.hlsl
6 | 


--------------------------------------------------------------------------------
/src/stdlib/SDL_mslibc_arm64.masm:
--------------------------------------------------------------------------------
 1 | TeStackLimit EQU 0x00010
 2 | PAGE_SIZE equ 0x1000
 3 | 
 4 |     AREA CODE, READONLY
 5 | 
 6 |     EXPORT __chkstk
 7 | 
 8 | __chkstk PROC
 9 |     ldr                          x17,[x18, #TeStackLimit]
10 |     subs                         x16,sp,x15, LSL  #0x4
11 |     csel                         x16,xzr,x16,cc
12 |     cmp                          x16,x17
13 |     b.cc                         chkstk_start_loop
14 |     ret
15 | chkstk_start_loop
16 |     and                          x16,x16,#-PAGE_SIZE
17 | chkstk_loop
18 |     sub                          x17,x17,#0x1, LSL #12
19 |     ldr                          xzr,[x17]
20 |     cmp                          x17,x16
21 |     b.ne                         chkstk_loop
22 |     ret
23 | 
24 |     ENDP
25 | 
26 |     END
27 | 


--------------------------------------------------------------------------------
/src/stdlib/SDL_mslibc_x64.masm:
--------------------------------------------------------------------------------
 1 | include ksamd64.inc
 2 | 
 3 | text        SEGMENT EXECUTE
 4 | 
 5 | public      __chkstk
 6 | 
 7 | __chkstk:
 8 |     sub         rsp,010h
 9 |     mov         QWORD PTR [rsp],r10
10 |     mov         QWORD PTR [rsp+08h],r11
11 |     xor         r11,r11
12 |     lea         r10,[rsp+018h]
13 |     sub         r10,rax
14 |     cmovb       r10,r11
15 |     mov         r11,QWORD PTR gs:[TeStackLimit]
16 |     cmp         r10,r11
17 |     jae         chkstk_finish
18 |     and         r10w,0f000h
19 | chkstk_loop:
20 |     lea         r11,[r11-PAGE_SIZE]
21 |     mov         BYTE PTR [r11],0h
22 |     cmp         r10,r11
23 |     jne         chkstk_loop
24 | chkstk_finish:
25 |     mov         r10,QWORD PTR [rsp]
26 |     mov         r11,QWORD PTR [rsp+08h]
27 |     add         rsp,010h
28 |     ret
29 | end
30 | 


--------------------------------------------------------------------------------
/src/storage/steam/SDL_steamstorage_proc.h:
--------------------------------------------------------------------------------
 1 | STEAM_PROC(void*, SteamAPI_SteamRemoteStorage_v016, (void))
 2 | 
 3 | STEAM_PROC(bool, SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount, (void*))
 4 | STEAM_PROC(bool, SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp, (void*))
 5 | 
 6 | STEAM_PROC(bool, SteamAPI_ISteamRemoteStorage_BeginFileWriteBatch, (void*))
 7 | STEAM_PROC(bool, SteamAPI_ISteamRemoteStorage_EndFileWriteBatch, (void*))
 8 | 
 9 | STEAM_PROC(Sint32, SteamAPI_ISteamRemoteStorage_GetFileSize, (void*, const char*))
10 | STEAM_PROC(Sint32, SteamAPI_ISteamRemoteStorage_FileRead, (void*, const char*, void*, Sint32))
11 | STEAM_PROC(Sint32, SteamAPI_ISteamRemoteStorage_FileWrite, (void*, const char*, const void*, Sint32))
12 | STEAM_PROC(bool, SteamAPI_ISteamRemoteStorage_GetQuota, (void*, Uint64*, Uint64*))
13 | 
14 | #undef STEAM_PROC
15 | 


--------------------------------------------------------------------------------
/src/video/khronos/GLES2/gl2platform.h:
--------------------------------------------------------------------------------
 1 | #ifndef __gl2platform_h_
 2 | #define __gl2platform_h_
 3 | 
 4 | /*
 5 | ** Copyright 2017-2020 The Khronos Group Inc.
 6 | ** SPDX-License-Identifier: Apache-2.0
 7 | */
 8 | 
 9 | /* Platform-specific types and definitions for OpenGL ES 2.X  gl2.h
10 |  *
11 |  * Adopters may modify khrplatform.h and this file to suit their platform.
12 |  * Please contribute modifications back to Khronos as pull requests on the
13 |  * public github repository:
14 |  *      https://github.com/KhronosGroup/OpenGL-Registry
15 |  */
16 | 
17 | #include <KHR/khrplatform.h>
18 | 
19 | #ifndef GL_APICALL
20 | #define GL_APICALL  KHRONOS_APICALL
21 | #endif
22 | 
23 | #ifndef GL_APIENTRY
24 | #define GL_APIENTRY KHRONOS_APIENTRY
25 | #endif
26 | 
27 | #endif /* __gl2platform_h_ */
28 | 


--------------------------------------------------------------------------------
/src/video/khronos/GLES3/gl3platform.h:
--------------------------------------------------------------------------------
 1 | #ifndef __gl3platform_h_
 2 | #define __gl3platform_h_
 3 | 
 4 | /*
 5 | ** Copyright 2017-2020 The Khronos Group Inc.
 6 | ** SPDX-License-Identifier: Apache-2.0
 7 | */
 8 | 
 9 | /* Platform-specific types and definitions for OpenGL ES 3.X  gl3.h
10 |  *
11 |  * Adopters may modify khrplatform.h and this file to suit their platform.
12 |  * Please contribute modifications back to Khronos as pull requests on the
13 |  * public github repository:
14 |  *      https://github.com/KhronosGroup/OpenGL-Registry
15 |  */
16 | 
17 | #include <KHR/khrplatform.h>
18 | 
19 | #ifndef GL_APICALL
20 | #define GL_APICALL  KHRONOS_APICALL
21 | #endif
22 | 
23 | #ifndef GL_APIENTRY
24 | #define GL_APIENTRY KHRONOS_APIENTRY
25 | #endif
26 | 
27 | #endif /* __gl3platform_h_ */
28 | 


--------------------------------------------------------------------------------
/src/video/khronos/vk_video/vulkan_video_codecs_common.h:
--------------------------------------------------------------------------------
 1 | #ifndef VULKAN_VIDEO_CODECS_COMMON_H_
 2 | #define VULKAN_VIDEO_CODECS_COMMON_H_ 1
 3 | 
 4 | /*
 5 | ** Copyright 2015-2024 The Khronos Group Inc.
 6 | **
 7 | ** SPDX-License-Identifier: Apache-2.0
 8 | */
 9 | 
10 | /*
11 | ** This header is generated from the Khronos Vulkan XML API Registry.
12 | **
13 | */
14 | 
15 | 
16 | #ifdef __cplusplus
17 | extern "C" {
18 | #endif
19 | 
20 | 
21 | 
22 | // vulkan_video_codecs_common is a preprocessor guard. Do not pass it to API calls.
23 | #define vulkan_video_codecs_common 1
24 | #if !defined(VK_NO_STDINT_H)
25 |     #include <stdint.h>
26 | #endif
27 | 
28 | #define VK_MAKE_VIDEO_STD_VERSION(major, minor, patch) \
29 |     ((((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch)))
30 | 
31 | 
32 | #ifdef __cplusplus
33 | }
34 | #endif
35 | 
36 | #endif
37 | 


--------------------------------------------------------------------------------
/src/video/yuv2rgb/yuv_rgb_common.h:
--------------------------------------------------------------------------------
 1 | #ifndef YUV_RGB_COMMON_H_
 2 | #define YUV_RGB_COMMON_H_
 3 | // Copyright 2016 Adrien Descamps
 4 | // Distributed under BSD 3-Clause License
 5 | 
 6 | typedef enum
 7 | {
 8 |     YCBCR_601_FULL,
 9 |     YCBCR_601_LIMITED,
10 |     YCBCR_709_FULL,
11 |     YCBCR_709_LIMITED,
12 |     YCBCR_2020_NCL_FULL,
13 | } YCbCrType;
14 | 
15 | #endif /* YUV_RGB_COMMON_H_ */
16 | 


--------------------------------------------------------------------------------
/test/COPYING:
--------------------------------------------------------------------------------
1 | 
2 | The test programs in this directory tree are for demonstrating and
3 | testing the functionality of the SDL library, and are placed in the
4 | public domain.
5 | 
6 | October 28, 1997
7 | --
8 | 	Sam Lantinga				(slouken@libsdl.org)
9 | 


--------------------------------------------------------------------------------
/test/android/cmake/res/values/strings.xml.cmake:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">@ANDROID_MANIFEST_APP_NAME@</string>
3 |     <string name="lib_name">@ANDROID_MANIFEST_LIB_NAME@</string>
4 |     <string name="label">@ANDROID_MANIFEST_LABEL@</string>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/test/android/res/mipmap-anydpi-v26/sdl-test.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
3 |     <background android:drawable="@color/sdl-test_background"/>
4 |     <foreground android:drawable="@drawable/sdl-test_foreground"/>
5 | </adaptive-icon>


--------------------------------------------------------------------------------
/test/android/res/mipmap-anydpi-v26/sdl-test_round.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
3 |     <background android:drawable="@color/sdl-test_background"/>
4 |     <foreground android:drawable="@drawable/sdl-test_foreground"/>
5 | </adaptive-icon>


--------------------------------------------------------------------------------
/test/android/res/mipmap-hdpi/sdl-test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/android/res/mipmap-hdpi/sdl-test.png


--------------------------------------------------------------------------------
/test/android/res/mipmap-hdpi/sdl-test_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/android/res/mipmap-hdpi/sdl-test_round.png


--------------------------------------------------------------------------------
/test/android/res/mipmap-mdpi/sdl-test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/android/res/mipmap-mdpi/sdl-test.png


--------------------------------------------------------------------------------
/test/android/res/mipmap-mdpi/sdl-test_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/android/res/mipmap-mdpi/sdl-test_round.png


--------------------------------------------------------------------------------
/test/android/res/mipmap-xhdpi/sdl-test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/android/res/mipmap-xhdpi/sdl-test.png


--------------------------------------------------------------------------------
/test/android/res/mipmap-xhdpi/sdl-test_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/android/res/mipmap-xhdpi/sdl-test_round.png


--------------------------------------------------------------------------------
/test/android/res/mipmap-xxhdpi/sdl-test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/android/res/mipmap-xxhdpi/sdl-test.png


--------------------------------------------------------------------------------
/test/android/res/mipmap-xxhdpi/sdl-test_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/android/res/mipmap-xxhdpi/sdl-test_round.png


--------------------------------------------------------------------------------
/test/android/res/mipmap-xxxhdpi/sdl-test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/android/res/mipmap-xxxhdpi/sdl-test.png


--------------------------------------------------------------------------------
/test/android/res/mipmap-xxxhdpi/sdl-test_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/android/res/mipmap-xxxhdpi/sdl-test_round.png


--------------------------------------------------------------------------------
/test/android/res/values/arg_strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="label_enter_arguments">Arguments</string>
3 |     <string name="hint_enter_arguments_here">One argument per line.\ne.g.\n--track-mem\n--windows\n3</string>
4 |     <string name="button_start_app">Start</string>
5 |     <string name="shortcutModifyArgumentsShortLabel">Modify arguments</string>
6 |     <string name="shortcutIntermediateActivityShortLabel">Pass through activity</string>
7 | </resources>
8 | 


--------------------------------------------------------------------------------
/test/android/res/values/sdl-test_background.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="sdl-test_background">#FFFFFF</color>
4 | </resources>


--------------------------------------------------------------------------------
/test/android/res/values/styles.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <!-- Base application theme. -->
4 |     <style name="AppTheme" parent="android:Theme.NoTitleBar.Fullscreen">
5 |         <!-- Customize your theme here. -->
6 |     </style>
7 | </resources>
8 | 


--------------------------------------------------------------------------------
/test/audiofile.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/audiofile.bmp


--------------------------------------------------------------------------------
/test/build-shaders.sh:
--------------------------------------------------------------------------------
 1 | #!/usr/bin/env bash
 2 | 
 3 | set -e
 4 | 
 5 | make-header() {
 6 |     xxd -i "$1" | sed \
 7 |         -e 's/^unsigned /const unsigned /g' \
 8 |         -e 's,^const,static const,' \
 9 |         > "$1.h"
10 | }
11 | 
12 | # Requires shadercross CLI installed from SDL_shadercross
13 | for filename in *.hlsl; do
14 |     if [ -f "$filename" ]; then
15 |         shadercross "$filename" -o "${filename/.hlsl/.spv}"
16 |         make-header "${filename/.hlsl/.spv}"
17 |         shadercross "$filename" -o "${filename/.hlsl/.msl}"
18 |         make-header "${filename/.hlsl/.msl}"
19 |         shadercross "$filename" -o "${filename/.hlsl/.dxil}"
20 |         make-header "${filename/.hlsl/.dxil}"
21 |     fi
22 | done
23 | 
24 | rm -f *.spv *.msl *.dxil
25 | 


--------------------------------------------------------------------------------
/test/emscripten/joystick-pre.js:
--------------------------------------------------------------------------------
 1 | Module['arguments'] = ['0'];
 2 | //Gamepads don't appear until a button is pressed and the joystick/gamepad tests expect one to be connected
 3 | Module['preRun'].push(function()
 4 | {
 5 |     Module['print']("Waiting for gamepad...");
 6 |     Module['addRunDependency']("gamepad");
 7 |     window.addEventListener('gamepadconnected', function()
 8 |     {
 9 |         //OK, got one
10 |         Module['removeRunDependency']("gamepad");
11 |     }, false);
12 | 
13 |     //chrome
14 |     if(!!navigator.webkitGetGamepads)
15 |     {
16 |         var timeout = function()
17 |         {
18 |             if(navigator.webkitGetGamepads()[0] !== undefined)
19 |                 Module['removeRunDependency']("gamepad");
20 |             else
21 |                 setTimeout(timeout, 100);
22 |         }
23 |         setTimeout(timeout, 100);
24 |     }
25 | });
26 | 


--------------------------------------------------------------------------------
/test/gamepad_axis.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/gamepad_axis.bmp


--------------------------------------------------------------------------------
/test/gamepad_axis_arrow.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/gamepad_axis_arrow.bmp


--------------------------------------------------------------------------------
/test/gamepad_back.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/gamepad_back.bmp


--------------------------------------------------------------------------------
/test/gamepad_battery.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/gamepad_battery.bmp


--------------------------------------------------------------------------------
/test/gamepad_battery_unknown.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/gamepad_battery_unknown.bmp


--------------------------------------------------------------------------------
/test/gamepad_battery_wired.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/gamepad_battery_wired.bmp


--------------------------------------------------------------------------------
/test/gamepad_button.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/gamepad_button.bmp


--------------------------------------------------------------------------------
/test/gamepad_button_background.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/gamepad_button_background.bmp


--------------------------------------------------------------------------------
/test/gamepad_button_small.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/gamepad_button_small.bmp


--------------------------------------------------------------------------------
/test/gamepad_face_abxy.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/gamepad_face_abxy.bmp


--------------------------------------------------------------------------------
/test/gamepad_face_axby.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/gamepad_face_axby.bmp


--------------------------------------------------------------------------------
/test/gamepad_face_bayx.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/gamepad_face_bayx.bmp


--------------------------------------------------------------------------------
/test/gamepad_face_sony.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/gamepad_face_sony.bmp


--------------------------------------------------------------------------------
/test/gamepad_front.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/gamepad_front.bmp


--------------------------------------------------------------------------------
/test/gamepad_touchpad.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/gamepad_touchpad.bmp


--------------------------------------------------------------------------------
/test/gamepad_wired.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/gamepad_wired.bmp


--------------------------------------------------------------------------------
/test/gamepad_wireless.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/gamepad_wireless.bmp


--------------------------------------------------------------------------------
/test/glass.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/glass.bmp


--------------------------------------------------------------------------------
/test/icon.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/icon.bmp


--------------------------------------------------------------------------------
/test/icon2x.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/icon2x.bmp


--------------------------------------------------------------------------------
/test/logaudiodev.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/logaudiodev.bmp


--------------------------------------------------------------------------------
/test/main.cpp:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * This file is supposed to be used to build tests on platforms that require
 3 |  * the main function to be implemented in C++, which means that SDL_main's
 4 |  * implementation needs C++ and thus can't be included in test*.c
 5 |  *
 6 |  * Placed in the public domain by Daniel Gibson, 2022-12-12
 7 |  */
 8 | 
 9 | #include <SDL3/SDL_main.h>
10 | 
11 | // that's all, folks!
12 | 


--------------------------------------------------------------------------------
/test/msdf_font.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/msdf_font.bmp


--------------------------------------------------------------------------------
/test/n3ds/logo48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/n3ds/logo48x48.png


--------------------------------------------------------------------------------
/test/physaudiodev.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/physaudiodev.bmp


--------------------------------------------------------------------------------
/test/picture.xbm:
--------------------------------------------------------------------------------
 1 | #define picture_width 32
 2 | #define picture_height 32
 3 | static char picture_bits[] = {
 4 |    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x80, 0x01, 0x18,
 5 |    0x64, 0x6f, 0xf6, 0x26, 0x0a, 0x00, 0x00, 0x50, 0xf2, 0xff, 0xff, 0x4f,
 6 |    0x14, 0x04, 0x00, 0x28, 0x14, 0x0e, 0x00, 0x28, 0x10, 0x32, 0x00, 0x08,
 7 |    0x94, 0x03, 0x00, 0x08, 0xf4, 0x04, 0x00, 0x08, 0xb0, 0x08, 0x00, 0x08,
 8 |    0x34, 0x01, 0x00, 0x28, 0x34, 0x01, 0x00, 0x28, 0x12, 0x00, 0x40, 0x48,
 9 |    0x12, 0x20, 0xa6, 0x48, 0x14, 0x50, 0x11, 0x29, 0x14, 0x50, 0x48, 0x2a,
10 |    0x10, 0x27, 0xac, 0x0e, 0xd4, 0x71, 0xe8, 0x0a, 0x74, 0x20, 0xa8, 0x0a,
11 |    0x14, 0x20, 0x00, 0x08, 0x10, 0x50, 0x00, 0x08, 0x14, 0x00, 0x00, 0x28,
12 |    0x14, 0x00, 0x00, 0x28, 0xf2, 0xff, 0xff, 0x4f, 0x0a, 0x00, 0x00, 0x50,
13 |    0x64, 0x6f, 0xf6, 0x26, 0x18, 0x80, 0x01, 0x18, 0x00, 0x00, 0x00, 0x00,
14 |    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
15 | 


--------------------------------------------------------------------------------
/test/sample.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/sample.bmp


--------------------------------------------------------------------------------
/test/sample.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/sample.wav


--------------------------------------------------------------------------------
/test/sdl-test_round.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/sdl-test_round.bmp


--------------------------------------------------------------------------------
/test/soundboard.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/soundboard.bmp


--------------------------------------------------------------------------------
/test/soundboard_levels.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/soundboard_levels.bmp


--------------------------------------------------------------------------------
/test/speaker.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/speaker.bmp


--------------------------------------------------------------------------------
/test/sword.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/sword.wav


--------------------------------------------------------------------------------
/test/template.test.in:
--------------------------------------------------------------------------------
1 | [Test]
2 | Type=session
3 | Exec=@installedtestsdir@/@exe@ @installed_arguments@
4 | 


--------------------------------------------------------------------------------
/test/testgpu/cube.glsl:
--------------------------------------------------------------------------------
 1 | #version 450
 2 | 
 3 | #ifdef VERTEX
 4 | 
 5 | layout (location = 0) in vec3 in_position;
 6 | layout (location = 1) in vec3 in_color;
 7 | 
 8 | layout (location = 0) out vec4 out_color;
 9 | 
10 | layout (set = 1, binding = 0) uniform UBO
11 | {
12 |     mat4x4 modelViewProj;
13 | };
14 | 
15 | void main()
16 | {
17 |     out_color = vec4(in_color, 1.0);
18 |     gl_Position = modelViewProj * vec4(in_position, 1.0);
19 | }
20 | 
21 | #else
22 | 
23 | layout (location = 0) in vec4 in_color;
24 | layout (location = 0) out vec4 out_color;
25 | 
26 | void main()
27 | {
28 |     out_color = in_color;
29 | }
30 | 
31 | #endif


--------------------------------------------------------------------------------
/test/testgpu/cube.hlsl:
--------------------------------------------------------------------------------
 1 | #define REG(reg, space) register(reg, space)
 2 | 
 3 | cbuffer UBO : REG(b0, space1)
 4 | {
 5 |     float4x4 ModelViewProj;
 6 | };
 7 | 
 8 | struct VSInput
 9 | {
10 |     float3 Position : TEXCOORD0;
11 |     float3 Color : TEXCOORD1;
12 | };
13 | 
14 | struct VSOutput
15 | {
16 |     float4 Color : TEXCOORD0;
17 |     float4 Position : SV_Position;
18 | };
19 | 
20 | VSOutput VSMain(VSInput input)
21 | {
22 |     VSOutput output;
23 |     output.Color = float4(input.Color, 1.0f);
24 |     output.Position = mul(ModelViewProj, float4(input.Position, 1.0f));
25 |     return output;
26 | }
27 | 
28 | float4 PSMain(VSOutput input) : SV_Target0
29 | {
30 |     return input.Color;
31 | }
32 | 


--------------------------------------------------------------------------------
/test/testgpu/cube.metal:
--------------------------------------------------------------------------------
 1 | #include <metal_stdlib>
 2 | using namespace metal;
 3 | 
 4 | struct VSOutput
 5 | {
 6 |     float4 color [[user(locn0)]];
 7 |     float4 position [[position]];
 8 | };
 9 | 
10 | #ifdef VERTEX
11 | 
12 | struct UBO
13 | {
14 |     float4x4 modelViewProj;
15 | };
16 | 
17 | struct VSInput
18 | {
19 |     float3 position [[attribute(0)]];
20 |     float3 color [[attribute(1)]];
21 | };
22 | 
23 | vertex VSOutput vs_main(VSInput input [[stage_in]], constant UBO& ubo [[buffer(0)]])
24 | {
25 |     VSOutput output;
26 |     output.color = float4(input.color, 1.0);
27 |     output.position = ubo.modelViewProj * float4(input.position, 1.0);
28 |     return output;
29 | }
30 | 
31 | #else
32 | 
33 | fragment float4 fs_main(VSOutput input [[stage_in]])
34 | {
35 |     return input.color;
36 | }
37 | 
38 | #endif


--------------------------------------------------------------------------------
/test/testgpurender_effects_grayscale.frag.hlsl:
--------------------------------------------------------------------------------
 1 | Texture2D u_texture : register(t0, space2);
 2 | SamplerState u_sampler : register(s0, space2);
 3 | 
 4 | struct PSInput {
 5 |     float4 v_color : COLOR0;
 6 |     float2 v_uv : TEXCOORD0;
 7 | };
 8 | 
 9 | struct PSOutput {
10 |     float4 o_color : SV_Target;
11 | };
12 | 
13 | PSOutput main(PSInput input) {
14 |     PSOutput output;
15 |     float4 color = u_texture.Sample(u_sampler, input.v_uv) * input.v_color;
16 |     float gray = color.r * 0.299 + color.g * 0.587 + color.r * 0.114;
17 |     output.o_color = float4(gray, gray, gray, color.a);
18 |     return output;
19 | }
20 | 


--------------------------------------------------------------------------------
/test/testutils.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |   Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
 3 |   Copyright 2022 Collabora Ltd.
 4 | 
 5 |   This software is provided 'as-is', without any express or implied
 6 |   warranty.  In no event will the authors be held liable for any damages
 7 |   arising from the use of this software.
 8 | 
 9 |   Permission is granted to anyone to use this software for any purpose,
10 |   including commercial applications, and to alter it and redistribute it
11 |   freely.
12 | */
13 | 
14 | #ifndef TESTUTILS_H
15 | #define TESTUTILS_H
16 | 
17 | #include <SDL3/SDL.h>
18 | 
19 | SDL_Texture *LoadTexture(SDL_Renderer *renderer, const char *file, bool transparent);
20 | char *GetNearbyFilename(const char *file);
21 | char *GetResourceFilename(const char *user_specified, const char *def);
22 | 
23 | #endif
24 | 


--------------------------------------------------------------------------------
/test/testyuv.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/testyuv.bmp


--------------------------------------------------------------------------------
/test/trashcan.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/trashcan.bmp


--------------------------------------------------------------------------------
/test/utf8.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libsdl-org/SDL/11ec0c7a8f5ccbfaffed5152dfad49b1335786ca/test/utf8.txt


--------------------------------------------------------------------------------