├── .gitignore ├── Bin └── Data │ ├── Box.mdl │ ├── Jack.mdl │ ├── Jack_Walk.ani │ ├── Mushroom.dds │ ├── Mushroom.json │ ├── Mushroom.mdl │ ├── Shaders │ ├── BoundingBox.glsl │ ├── DebugLines.glsl │ ├── DebugShadow.glsl │ ├── Diffuse.glsl │ ├── DiffuseNormal.glsl │ ├── Lighting.glsl │ ├── NoTexture.glsl │ ├── SSAO.glsl │ ├── SSAOBlur.glsl │ ├── Shadow.glsl │ ├── Transform.glsl │ └── Uniforms.glsl │ ├── Stone.json │ ├── StoneDiffuse.dds │ └── StoneNormal.dds ├── CMakeLists.txt ├── Docs └── Doxyfile ├── License.txt ├── README.md ├── ThirdParty ├── CMakeLists.txt ├── GLEW │ ├── CMakeLists.txt │ ├── LICENSE.txt │ ├── glew.c │ ├── glew.h │ ├── glxew.h │ └── wglew.h ├── SDL │ ├── CMakeLists.txt │ ├── CREDITS.md │ ├── INSTALL.md │ ├── LICENSE.txt │ ├── README-SDL.txt │ ├── README.md │ ├── cmake │ │ ├── 3rdparty.cmake │ │ ├── CPackProjectConfig.cmake.in │ │ ├── FindFFmpeg.cmake │ │ ├── FindLibUSB.cmake │ │ ├── GetGitRevisionDescription.cmake │ │ ├── GetGitRevisionDescription.cmake.in │ │ ├── PkgConfigHelper.cmake │ │ ├── PreseedEmscriptenCache.cmake │ │ ├── PreseedMSVCCache.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 │ │ ├── sdlcompilers.cmake │ │ ├── sdlcpu.cmake │ │ ├── sdlmanpages.cmake │ │ ├── sdlplatform.cmake │ │ ├── sdltargets.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 │ │ ├── README-android.md │ │ ├── README-cmake.md │ │ ├── README-contributing.md │ │ ├── README-documentation-rules.md │ │ ├── README-dynapi.md │ │ ├── README-emscripten.md │ │ ├── README-gdk.md │ │ ├── README-git.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-psp.md │ │ ├── README-raspberrypi.md │ │ ├── README-riscos.md │ │ ├── README-strings.md │ │ ├── README-touch.md │ │ ├── README-versions.md │ │ ├── README-visualc.md │ │ ├── README-vita.md │ │ ├── README-wayland.md │ │ ├── README-windows.md │ │ ├── README.md │ │ ├── doxyfile │ │ └── release_checklist.md │ ├── include │ │ ├── SDL3 │ │ │ ├── SDL.h │ │ │ ├── SDL_assert.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_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_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_emscripten.h │ │ │ ├── SDL_build_config_ios.h │ │ │ ├── SDL_build_config_macos.h │ │ │ ├── SDL_build_config_minimal.h │ │ │ ├── SDL_build_config_ngage.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 │ │ │ ├── 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 │ │ │ │ └── SDL_wasapi_win32.c │ │ ├── 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 │ │ ├── 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_sandbox.c │ │ │ │ ├── SDL_sandbox.h │ │ │ │ ├── SDL_system_theme.c │ │ │ │ ├── SDL_system_theme.h │ │ │ │ ├── SDL_threadprio.c │ │ │ │ ├── SDL_udev.c │ │ │ │ └── SDL_udev.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_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_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_keyboard.c │ │ │ ├── SDL_keyboard_c.h │ │ │ ├── SDL_keymap.c │ │ │ ├── SDL_keymap_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 │ │ ├── file │ │ │ ├── SDL_iostream.c │ │ │ └── n3ds │ │ │ │ ├── SDL_iostreamromfs.c │ │ │ │ └── SDL_iostreamromfs.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 │ │ │ ├── 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 │ │ │ ├── d3d11 │ │ │ │ ├── D3D11_Blit.h │ │ │ │ ├── SDL_gpu_d3d11.c │ │ │ │ └── compile_shaders.bat │ │ │ ├── d3d12 │ │ │ │ ├── D3D12_Blit.h │ │ │ │ ├── SDL_gpu_d3d12.c │ │ │ │ ├── compile_shaders.bat │ │ │ │ └── compile_shaders_xbox.bat │ │ │ ├── d3dcommon │ │ │ │ └── D3D_Blit.hlsl │ │ │ ├── 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 │ │ │ ├── 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.vcproj │ │ │ ├── udev │ │ │ │ └── 69-hid.rules │ │ │ └── windows │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── Makefile-manual │ │ │ │ ├── Makefile.am │ │ │ │ ├── Makefile.mingw │ │ │ │ ├── hid.c │ │ │ │ ├── hidapi.rc │ │ │ │ ├── hidapi.vcproj │ │ │ │ ├── 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 │ │ │ │ ├── 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 │ │ ├── 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.c │ │ │ ├── haiku │ │ │ │ └── SDL_haikujoystick.cc │ │ │ ├── hidapi │ │ │ │ ├── SDL_hidapi_combined.c │ │ │ │ ├── SDL_hidapi_gamecube.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_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 │ │ │ ├── steam │ │ │ │ ├── SDL_steamcontroller.c │ │ │ │ └── SDL_steamcontroller.h │ │ │ ├── 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 │ │ │ ├── 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_runapp.cpp │ │ │ ├── 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 │ │ ├── render │ │ │ ├── SDL_d3dmath.c │ │ │ ├── SDL_d3dmath.h │ │ │ ├── SDL_render.c │ │ │ ├── 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 │ │ │ │ │ ├── color.frag.metal.h │ │ │ │ │ ├── color.frag.sm50.dxbc.h │ │ │ │ │ ├── color.frag.sm60.dxil.h │ │ │ │ │ ├── color.frag.spv.h │ │ │ │ │ ├── dxbc50.h │ │ │ │ │ ├── dxil60.h │ │ │ │ │ ├── fix-shaders.sh │ │ │ │ │ ├── linepoint.vert │ │ │ │ │ ├── linepoint.vert.metal.h │ │ │ │ │ ├── linepoint.vert.sm50.dxbc.h │ │ │ │ │ ├── linepoint.vert.sm60.dxil.h │ │ │ │ │ ├── linepoint.vert.spv.h │ │ │ │ │ ├── metal.h │ │ │ │ │ ├── spir-v.h │ │ │ │ │ ├── texture_rgb.frag │ │ │ │ │ ├── texture_rgb.frag.metal.h │ │ │ │ │ ├── texture_rgb.frag.sm50.dxbc.h │ │ │ │ │ ├── texture_rgb.frag.sm60.dxil.h │ │ │ │ │ ├── texture_rgb.frag.spv.h │ │ │ │ │ ├── texture_rgba.frag │ │ │ │ │ ├── texture_rgba.frag.metal.h │ │ │ │ │ ├── texture_rgba.frag.sm50.dxbc.h │ │ │ │ │ ├── texture_rgba.frag.sm60.dxil.h │ │ │ │ │ ├── texture_rgba.frag.spv.h │ │ │ │ │ ├── tri_color.vert │ │ │ │ │ ├── tri_color.vert.metal.h │ │ │ │ │ ├── tri_color.vert.sm50.dxbc.h │ │ │ │ │ ├── tri_color.vert.sm60.dxil.h │ │ │ │ │ ├── tri_color.vert.spv.h │ │ │ │ │ ├── tri_texture.vert │ │ │ │ │ ├── tri_texture.vert.metal.h │ │ │ │ │ ├── tri_texture.vert.sm50.dxbc.h │ │ │ │ │ ├── tri_texture.vert.sm60.dxil.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 │ │ │ ├── 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_x64.masm │ │ │ ├── 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_syscond.c │ │ │ │ ├── SDL_sysmutex.c │ │ │ │ ├── SDL_sysmutex_c.h │ │ │ │ ├── SDL_syssem.c │ │ │ │ ├── SDL_systhread.c │ │ │ │ └── SDL_systhread_c.h │ │ │ ├── ngage │ │ │ │ ├── SDL_sysmutex.cpp │ │ │ │ ├── SDL_syssem.cpp │ │ │ │ ├── SDL_systhread.cpp │ │ │ │ └── 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 │ │ │ ├── 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 │ │ └── 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_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_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 │ │ │ ├── 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_ngageevents.cpp │ │ │ ├── SDL_ngageevents_c.h │ │ │ ├── SDL_ngageframebuffer.cpp │ │ │ ├── SDL_ngageframebuffer_c.h │ │ │ ├── SDL_ngagevideo.cpp │ │ │ ├── SDL_ngagevideo.h │ │ │ ├── SDL_ngagewindow.cpp │ │ │ └── SDL_ngagewindow.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 │ │ │ ├── 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_qnxgl.c │ │ │ ├── SDL_qnxkeyboard.c │ │ │ ├── SDL_qnxvideo.c │ │ │ └── sdl_qnx.h │ │ │ ├── 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 │ │ │ ├── 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_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_vitagl_pvr_c.h │ │ │ ├── SDL_vitagles.c │ │ │ ├── SDL_vitagles_c.h │ │ │ ├── SDL_vitagles_pvr.c │ │ │ ├── SDL_vitagles_pvr_c.h │ │ │ ├── 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_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_windowsclipboard.c │ │ │ ├── SDL_windowsclipboard.h │ │ │ ├── SDL_windowsevents.c │ │ │ ├── SDL_windowsevents.h │ │ │ ├── SDL_windowsframebuffer.c │ │ │ ├── SDL_windowsframebuffer.h │ │ │ ├── SDL_windowsgameinput.c │ │ │ ├── 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 │ │ │ ├── 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 │ └── wayland-protocols │ │ ├── alpha-modifier-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 │ │ ├── kde-output-order-v1.xml │ │ ├── keyboard-shortcuts-inhibit-unstable-v1.xml │ │ ├── pointer-constraints-unstable-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 ├── STB │ ├── CMakeLists.txt │ ├── README.md │ ├── stb_image.h │ ├── stb_image_write.h │ ├── stb_rect_pack.h │ └── stb_vorbis.h └── Tracy │ ├── CMakeLists.txt │ ├── TracyClient.cpp │ ├── client │ ├── TracyAlloc.cpp │ ├── TracyArmCpuTable.hpp │ ├── TracyCallstack.cpp │ ├── TracyCallstack.h │ ├── TracyCallstack.hpp │ ├── TracyCpuid.hpp │ ├── TracyDebug.hpp │ ├── TracyDxt1.cpp │ ├── TracyDxt1.hpp │ ├── TracyFastVector.hpp │ ├── TracyLock.hpp │ ├── TracyOverride.cpp │ ├── TracyProfiler.cpp │ ├── TracyProfiler.hpp │ ├── TracyRingBuffer.hpp │ ├── TracyScoped.hpp │ ├── TracyStringHelpers.hpp │ ├── TracySysPower.cpp │ ├── TracySysPower.hpp │ ├── TracySysTime.cpp │ ├── TracySysTime.hpp │ ├── TracySysTrace.cpp │ ├── TracySysTrace.hpp │ ├── TracyThread.hpp │ ├── tracy_SPSCQueue.h │ ├── tracy_concurrentqueue.h │ ├── tracy_rpmalloc.cpp │ └── tracy_rpmalloc.hpp │ ├── common │ ├── TracyAlign.hpp │ ├── TracyAlloc.hpp │ ├── TracyApi.h │ ├── TracyColor.hpp │ ├── TracyForceInline.hpp │ ├── TracyMutex.hpp │ ├── TracyProtocol.hpp │ ├── TracyQueue.hpp │ ├── TracySocket.cpp │ ├── TracySocket.hpp │ ├── TracyStackFrames.cpp │ ├── TracyStackFrames.hpp │ ├── TracySystem.cpp │ ├── TracySystem.hpp │ ├── TracyUwp.hpp │ ├── TracyVersion.hpp │ ├── TracyYield.hpp │ ├── tracy_lz4.cpp │ ├── tracy_lz4.hpp │ ├── tracy_lz4hc.cpp │ └── tracy_lz4hc.hpp │ ├── libbacktrace │ ├── LICENSE │ ├── alloc.cpp │ ├── backtrace.hpp │ ├── config.h │ ├── dwarf.cpp │ ├── elf.cpp │ ├── fileline.cpp │ ├── filenames.hpp │ ├── internal.hpp │ ├── macho.cpp │ ├── mmapio.cpp │ ├── posix.cpp │ ├── sort.cpp │ └── state.cpp │ └── tracy │ ├── Tracy.hpp │ ├── TracyC.h │ ├── TracyD3D11.hpp │ ├── TracyD3D12.hpp │ ├── TracyLua.hpp │ ├── TracyOpenCL.hpp │ ├── TracyOpenGL.hpp │ └── TracyVulkan.hpp ├── Turso3D ├── CMakeLists.txt ├── Graphics │ ├── FrameBuffer.cpp │ ├── FrameBuffer.h │ ├── Graphics.cpp │ ├── Graphics.h │ ├── GraphicsDefs.cpp │ ├── GraphicsDefs.h │ ├── IndexBuffer.cpp │ ├── IndexBuffer.h │ ├── RenderBuffer.cpp │ ├── RenderBuffer.h │ ├── Shader.cpp │ ├── Shader.h │ ├── ShaderProgram.cpp │ ├── ShaderProgram.h │ ├── Texture.cpp │ ├── Texture.h │ ├── UniformBuffer.cpp │ ├── UniformBuffer.h │ ├── VertexBuffer.cpp │ └── VertexBuffer.h ├── IO │ ├── Arguments.cpp │ ├── Arguments.h │ ├── File.cpp │ ├── File.h │ ├── FileSystem.cpp │ ├── FileSystem.h │ ├── JSONValue.cpp │ ├── JSONValue.h │ ├── Log.cpp │ ├── Log.h │ ├── MemoryBuffer.cpp │ ├── MemoryBuffer.h │ ├── ObjectRef.h │ ├── ResourceRef.cpp │ ├── ResourceRef.h │ ├── Stream.cpp │ ├── Stream.h │ ├── StringHash.cpp │ ├── StringHash.h │ ├── StringUtils.cpp │ ├── StringUtils.h │ ├── VectorBuffer.cpp │ └── VectorBuffer.h ├── Input │ ├── Input.cpp │ └── Input.h ├── Math │ ├── AreaAllocator.cpp │ ├── AreaAllocator.h │ ├── BoundingBox.cpp │ ├── BoundingBox.h │ ├── Color.cpp │ ├── Color.h │ ├── Frustum.cpp │ ├── Frustum.h │ ├── IntBox.cpp │ ├── IntBox.h │ ├── IntRect.cpp │ ├── IntRect.h │ ├── IntVector2.cpp │ ├── IntVector2.h │ ├── IntVector3.cpp │ ├── IntVector3.h │ ├── Math.h │ ├── Matrix3.cpp │ ├── Matrix3.h │ ├── Matrix3x4.cpp │ ├── Matrix3x4.h │ ├── Matrix4.cpp │ ├── Matrix4.h │ ├── Plane.cpp │ ├── Plane.h │ ├── Polyhedron.cpp │ ├── Polyhedron.h │ ├── Quaternion.cpp │ ├── Quaternion.h │ ├── Random.cpp │ ├── Random.h │ ├── Ray.cpp │ ├── Ray.h │ ├── Rect.cpp │ ├── Rect.h │ ├── Sphere.cpp │ ├── Sphere.h │ ├── Vector2.cpp │ ├── Vector2.h │ ├── Vector3.cpp │ ├── Vector3.h │ ├── Vector4.cpp │ └── Vector4.h ├── Object │ ├── Allocator.cpp │ ├── Allocator.h │ ├── Attribute.cpp │ ├── Attribute.h │ ├── AutoPtr.h │ ├── Event.cpp │ ├── Event.h │ ├── Object.cpp │ ├── Object.h │ ├── ObjectResolver.cpp │ ├── ObjectResolver.h │ ├── Ptr.cpp │ ├── Ptr.h │ ├── Serializable.cpp │ └── Serializable.h ├── Renderer │ ├── AnimatedModel.cpp │ ├── AnimatedModel.h │ ├── Animation.cpp │ ├── Animation.h │ ├── AnimationState.cpp │ ├── AnimationState.h │ ├── Batch.cpp │ ├── Batch.h │ ├── Camera.cpp │ ├── Camera.h │ ├── DebugRenderer.cpp │ ├── DebugRenderer.h │ ├── GeometryNode.cpp │ ├── GeometryNode.h │ ├── Light.cpp │ ├── Light.h │ ├── LightEnvironment.cpp │ ├── LightEnvironment.h │ ├── Material.cpp │ ├── Material.h │ ├── Model.cpp │ ├── Model.h │ ├── Octree.cpp │ ├── Octree.h │ ├── OctreeNode.cpp │ ├── OctreeNode.h │ ├── Renderer.cpp │ ├── Renderer.h │ ├── StaticModel.cpp │ └── StaticModel.h ├── Resource │ ├── Decompress.cpp │ ├── Decompress.h │ ├── Image.cpp │ ├── Image.h │ ├── JSONFile.cpp │ ├── JSONFile.h │ ├── Resource.cpp │ ├── Resource.h │ ├── ResourceCache.cpp │ └── ResourceCache.h ├── Scene │ ├── Node.cpp │ ├── Node.h │ ├── Scene.cpp │ ├── Scene.h │ ├── SpatialNode.cpp │ └── SpatialNode.h ├── Thread │ ├── ThreadUtils.cpp │ ├── ThreadUtils.h │ ├── WorkQueue.cpp │ └── WorkQueue.h └── Time │ ├── Profiler.cpp │ ├── Profiler.h │ ├── TimeUtils.cpp │ ├── TimeUtils.h │ ├── Timer.cpp │ └── Timer.h ├── Turso3DTest ├── CMakeLists.txt └── Main.cpp ├── cmake_mingw.bat ├── cmake_unix.sh ├── cmake_vs2017.bat ├── cmake_vs2019.bat └── cmake_vs2022.bat /.gitignore: -------------------------------------------------------------------------------- 1 | .build/ 2 | .vs/ 3 | Docs/html 4 | CMakeFiles/ 5 | cmake_install.cmake 6 | CMakeCache.txt 7 | Makefile 8 | *FileListAbsolute.txt 9 | SDL_config.h 10 | 11 | *.exe 12 | *.exp 13 | *.ilk 14 | *.a 15 | *.lib 16 | *.obj 17 | *.pdb 18 | *.vcxproj 19 | *.vcxproj.filters 20 | *.vcxproj.user 21 | *.sln 22 | *.log 23 | *.tlog 24 | *.rule 25 | -------------------------------------------------------------------------------- /Bin/Data/Box.mdl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadaver/turso3d/ed395e9b252d3acf719e59ab297719975bd8d2b1/Bin/Data/Box.mdl -------------------------------------------------------------------------------- /Bin/Data/Jack.mdl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadaver/turso3d/ed395e9b252d3acf719e59ab297719975bd8d2b1/Bin/Data/Jack.mdl -------------------------------------------------------------------------------- /Bin/Data/Jack_Walk.ani: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadaver/turso3d/ed395e9b252d3acf719e59ab297719975bd8d2b1/Bin/Data/Jack_Walk.ani -------------------------------------------------------------------------------- /Bin/Data/Mushroom.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadaver/turso3d/ed395e9b252d3acf719e59ab297719975bd8d2b1/Bin/Data/Mushroom.dds -------------------------------------------------------------------------------- /Bin/Data/Mushroom.json: -------------------------------------------------------------------------------- 1 | { 2 | "passes": { 3 | "shadow": { 4 | "shader": "Shaders/Shadow.glsl", 5 | "colorWrite": false 6 | }, 7 | "opaque": { 8 | "shader": "Shaders/Diffuse.glsl" 9 | } 10 | }, 11 | "textures": { 12 | "0": "Mushroom.dds" 13 | }, 14 | "uniforms": [ 15 | { 16 | "matDiffColor": "1 1 1 1" 17 | }, 18 | { 19 | "matSpecColor": "0.25 0.25 0.25 1" 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /Bin/Data/Mushroom.mdl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadaver/turso3d/ed395e9b252d3acf719e59ab297719975bd8d2b1/Bin/Data/Mushroom.mdl -------------------------------------------------------------------------------- /Bin/Data/Shaders/BoundingBox.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | 3 | #ifdef COMPILEVS 4 | 5 | #include "Transform.glsl" 6 | 7 | in vec3 position; 8 | 9 | #else 10 | 11 | out vec4 fragColor; 12 | 13 | #endif 14 | 15 | void vert() 16 | { 17 | mat3x4 modelMatrix = GetWorldMatrix(); 18 | vec3 worldPos = vec4(position, 1.0) * modelMatrix; 19 | gl_Position = vec4(worldPos, 1.0) * viewProjMatrix; 20 | } 21 | 22 | void frag() 23 | { 24 | fragColor = vec4(1.0, 1.0, 1.0, 0.5); 25 | } 26 | -------------------------------------------------------------------------------- /Bin/Data/Shaders/DebugLines.glsl: -------------------------------------------------------------------------------- 1 | #ifdef COMPILEVS 2 | 3 | uniform mat4 viewProjMatrix; 4 | 5 | in vec3 position; 6 | in vec4 color; 7 | 8 | out vec4 vColor; 9 | 10 | #else 11 | 12 | in vec4 vColor; 13 | out vec4 fragColor; 14 | 15 | #endif 16 | 17 | void vert() 18 | { 19 | vColor = color; 20 | gl_Position = vec4(position, 1.0) * viewProjMatrix; 21 | } 22 | 23 | void frag() 24 | { 25 | fragColor = vec4(vColor.rgb, 1.0); 26 | } 27 | -------------------------------------------------------------------------------- /Bin/Data/Shaders/DebugShadow.glsl: -------------------------------------------------------------------------------- 1 | #ifdef COMPILEVS 2 | 3 | uniform mat4 worldViewProjMatrix; 4 | 5 | in vec3 position; 6 | in vec2 texCoord; 7 | 8 | out vec2 vTexCoord; 9 | 10 | #else 11 | 12 | in vec2 vTexCoord; 13 | out vec4 fragColor; 14 | 15 | uniform sampler2D diffuseTex0; 16 | 17 | #endif 18 | 19 | void vert() 20 | { 21 | vTexCoord = texCoord; 22 | gl_Position = vec4(position, 1.0) * worldViewProjMatrix; 23 | } 24 | 25 | void frag() 26 | { 27 | float depth = texture(diffuseTex0, vTexCoord).r; 28 | // Raise to 2nd power to see differences better 29 | depth *= depth; 30 | fragColor = vec4(depth, depth, depth, 1.0); 31 | } 32 | -------------------------------------------------------------------------------- /Bin/Data/Shaders/Shadow.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | 3 | #ifdef COMPILEVS 4 | 5 | #include "Transform.glsl" 6 | 7 | in vec3 position; 8 | 9 | #else 10 | 11 | out vec4 fragColor; 12 | 13 | #endif 14 | 15 | void vert() 16 | { 17 | mat3x4 world = GetWorldMatrix(); 18 | 19 | vec3 worldPos = vec4(position, 1.0) * world; 20 | gl_Position = vec4(worldPos, 1.0) * viewProjMatrix; 21 | } 22 | 23 | void frag() 24 | { 25 | fragColor = vec4(1.0, 1.0, 1.0, 1.0); 26 | } 27 | -------------------------------------------------------------------------------- /Bin/Data/Shaders/Transform.glsl: -------------------------------------------------------------------------------- 1 | #if defined(INSTANCED) 2 | in vec4 texCoord3; 3 | in vec4 texCoord4; 4 | in vec4 texCoord5; 5 | 6 | mat3x4 GetWorldMatrix() 7 | { 8 | return mat3x4(texCoord3, texCoord4, texCoord5); 9 | } 10 | #elif defined(SKINNED) 11 | in vec4 blendWeights; 12 | in vec4 blendIndices; 13 | 14 | mat3x4 GetWorldMatrix() 15 | { 16 | ivec4 indices = ivec4(blendIndices); 17 | return skinMatrices[indices.x] * blendWeights.x + skinMatrices[indices.y] * blendWeights.y + 18 | skinMatrices[indices.z] * blendWeights.z + skinMatrices[indices.w] * blendWeights.w; 19 | } 20 | #else 21 | uniform mat3x4 worldMatrix; 22 | 23 | mat3x4 GetWorldMatrix() 24 | { 25 | return worldMatrix; 26 | } 27 | #endif 28 | 29 | float CalculateDepth(vec4 outPos) 30 | { 31 | return dot(depthParameters.zw, outPos.zw); 32 | } 33 | 34 | vec2 CalculateScreenPos(vec4 outPos) 35 | { 36 | return vec2( 37 | outPos.x / outPos.w * 0.5 + 0.5, 38 | -outPos.y / outPos.w * 0.5 + 0.5 39 | ); 40 | } 41 | -------------------------------------------------------------------------------- /Bin/Data/Shaders/Uniforms.glsl: -------------------------------------------------------------------------------- 1 | layout(std140) uniform PerViewData0 2 | { 3 | uniform mat3x4 viewMatrix; 4 | uniform mat4x4 projectionMatrix; 5 | uniform mat4x4 viewProjMatrix; 6 | uniform vec4 depthParameters; 7 | uniform vec3 cameraPosition; 8 | uniform vec4 ambientColor; 9 | uniform vec3 fogColor; 10 | uniform vec2 fogParameters; 11 | uniform vec3 dirLightDirection; 12 | uniform vec4 dirLightColor; 13 | uniform vec4 dirLightShadowSplits; 14 | uniform vec4 dirLightShadowParameters; 15 | uniform mat4x4 dirLightShadowMatrices[2]; 16 | }; 17 | 18 | struct Light 19 | { 20 | vec4 position; 21 | vec4 direction; 22 | vec4 attenuation; 23 | vec4 color; 24 | vec4 shadowParameters; 25 | mat4 shadowMatrix; 26 | }; 27 | 28 | layout(std140) uniform LightData1 29 | { 30 | Light lights[256]; 31 | }; 32 | 33 | #ifdef SKINNED 34 | layout(std140) uniform PerObjectData2 35 | { 36 | mat3x4 skinMatrices[96]; 37 | }; 38 | #endif 39 | 40 | float GetFogFactor(float depth) 41 | { 42 | return clamp((fogParameters.x - depth) * fogParameters.y, 0.0, 1.0); 43 | } 44 | -------------------------------------------------------------------------------- /Bin/Data/Stone.json: -------------------------------------------------------------------------------- 1 | { 2 | "passes": { 3 | "shadow": { 4 | "shader": "Shaders/Shadow.glsl", 5 | "colorWrite": false 6 | }, 7 | "opaque": { 8 | "shader": "Shaders/DiffuseNormal.glsl" 9 | } 10 | }, 11 | "textures": { 12 | "0": "StoneDiffuse.dds", 13 | "1": "StoneNormal.dds" 14 | }, 15 | "uniforms": [ 16 | { 17 | "matDiffColor": "1 1 1 1" 18 | }, 19 | { 20 | "matSpecColor": "1 1 1 16" 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /Bin/Data/StoneDiffuse.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadaver/turso3d/ed395e9b252d3acf719e59ab297719975bd8d2b1/Bin/Data/StoneDiffuse.dds -------------------------------------------------------------------------------- /Bin/Data/StoneNormal.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadaver/turso3d/ed395e9b252d3acf719e59ab297719975bd8d2b1/Bin/Data/StoneNormal.dds -------------------------------------------------------------------------------- /License.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadaver/turso3d/ed395e9b252d3acf719e59ab297719975bd8d2b1/License.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Turso3D 2 | 3 | Experimental 3D / game engine technology partially based on the Urho3D codebase. Expected to remain in an immature or "toy" state for the time being. 4 | 5 | - OpenGL 3.2 / SDL2 6 | - Forward+ rendering, currently up to 255 lights in view 7 | - Threaded work queue to speed up animation and view preparation 8 | - Caching of static shadow maps 9 | - Hardware occlusion queries that work on the octree hierarchy 10 | - SSAO 11 | 12 | ## Building 13 | 14 | Execute one of the provided CMake scripts to generate build files in .build subdirectory (will be created). Execute with command line option -DTURSO3D_TRACY=1 15 | to enable Tracy profiling. 16 | 17 | ## Test application controls 18 | 19 | - WSAD + mouse to move 20 | - SHIFT move faster 21 | - F1-F3 switch scene preset 22 | - SPACE toggle scene animation 23 | - 1 toggle shadow modes 24 | - 2 toggle SSAO 25 | - 3 toggle occlusion culling 26 | - 4 toggle scene debug draw 27 | - 5 toggle shadow debug draw 28 | - F toggle windowed, fullscreen and borderless fullscreen 29 | - V toggle vsync 30 | -------------------------------------------------------------------------------- /ThirdParty/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory (GLEW) 2 | add_subdirectory (STB) 3 | add_subdirectory (Tracy) 4 | 5 | # SDL3 6 | set(SDL_SHARED OFF CACHE BOOL "" FORCE) 7 | set(SDL_STATIC ON CACHE BOOL "" FORCE) 8 | set(SDL_LIBC ON CACHE BOOL "" FORCE) 9 | set(SDL_TIMERS ON CACHE BOOL "" FORCE) 10 | set(SDL_TEST_LIBRARY OFF CACHE BOOL "" FORCE) 11 | set(SDL_DISABLE_INSTALL ON CACHE BOOL "" FORCE) 12 | set(SDL_DISABLE_INSTALL_DOCS ON CACHE BOOL "" FORCE) 13 | # Disable everything we don't care about. 14 | set(SDL_ATOMIC OFF CACHE BOOL "" FORCE) 15 | set(SDL_AUDIO OFF CACHE BOOL "" FORCE) 16 | set(SDL_RENDER OFF CACHE BOOL "" FORCE) 17 | set(SDL_HAPTIC OFF CACHE BOOL "" FORCE) 18 | set(SDL_POWER OFF CACHE BOOL "" FORCE) 19 | set(SDL_FILE OFF CACHE BOOL "" FORCE) 20 | set(SDL_CPUINFO OFF CACHE BOOL "" FORCE) 21 | set(SDL_FILESYSTEM OFF CACHE BOOL "" FORCE) 22 | set(SDL_SENSOR OFF CACHE BOOL "" FORCE) 23 | set(SDL_LOCALE OFF CACHE BOOL "" FORCE) 24 | set(SDL_MISC OFF CACHE BOOL "" FORCE) 25 | set(SDL_CAMERA OFF CACHE BOOL "" FORCE) 26 | set(SDL_GPU OFF CACHE BOOL "" FORCE) 27 | add_subdirectory (SDL EXCLUDE_FROM_ALL) 28 | 29 | set_property(TARGET SDL3-static PROPERTY FOLDER "ThirdParty") 30 | set_property(TARGET SDL_uclibc PROPERTY FOLDER "ThirdParty") -------------------------------------------------------------------------------- /ThirdParty/GLEW/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set (TARGET_NAME GLEW) 2 | 3 | file (GLOB SOURCE_FILES *.h *.c *.cpp) 4 | 5 | add_library (${TARGET_NAME} ${SOURCE_FILES}) 6 | target_compile_definitions (${TARGET_NAME} PUBLIC -DGLEW_STATIC -DGLEW_NO_GLU) 7 | target_include_directories (${TARGET_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 8 | 9 | set_property(TARGET ${TARGET_NAME} PROPERTY FOLDER "ThirdParty") -------------------------------------------------------------------------------- /ThirdParty/SDL/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (C) 1997-2024 Sam Lantinga 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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/README-SDL.txt: -------------------------------------------------------------------------------- 1 | 2 | Please distribute this file with the SDL runtime environment: 3 | 4 | The Simple DirectMedia Layer (SDL for short) is a cross-platform library 5 | designed to make it easy to write multi-media software, such as games 6 | and emulators. 7 | 8 | The Simple DirectMedia Layer library source code is available from: 9 | https://www.libsdl.org/ 10 | 11 | This library is distributed under the terms of the zlib license: 12 | http://www.zlib.net/zlib_license.html 13 | 14 | -------------------------------------------------------------------------------- /ThirdParty/SDL/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Simple DirectMedia Layer (SDL) Version 3.0 3 | 4 | https://www.libsdl.org/ 5 | 6 | Simple DirectMedia Layer is a cross-platform development library designed 7 | to provide low level access to audio, keyboard, mouse, joystick, and graphics 8 | hardware. It is used by video playback software, emulators, and popular games 9 | including Valve's award winning catalog and many Humble Bundle games. 10 | 11 | More extensive documentation is available in the docs directory, starting 12 | with [README.md](docs/README.md). If you are migrating to SDL 3.0 from SDL 2.0, 13 | the changes are extensively documented in [README-migration.md](docs/README-migration.md). 14 | 15 | Enjoy! 16 | 17 | Sam Lantinga (slouken@libsdl.org) 18 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/cmake/sdl3.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@SDL_PKGCONFIG_PREFIX@ 2 | exec_prefix=${prefix} 3 | libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ 4 | includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ 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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/cmake/test/main_cli.c: -------------------------------------------------------------------------------- 1 | #define SDL_MAIN_HANDLED 2 | #include 3 | #include 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\n", SDL_GetError()); 10 | return 1; 11 | } 12 | SDL_Delay(100); 13 | SDL_Quit(); 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /ThirdParty/SDL/cmake/test/main_gui.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | SDL_Window *window = NULL; 7 | SDL_Surface *screenSurface = NULL; 8 | if (!SDL_Init(SDL_INIT_VIDEO)) { 9 | SDL_Log("Could not initialize SDL: %s\n", SDL_GetError()); 10 | return 1; 11 | } 12 | window = SDL_CreateWindow("Hello SDL", 640, 480, 0); 13 | if (!window) { 14 | SDL_Log("could not create window: %s\n", SDL_GetError()); 15 | return 1; 16 | } 17 | screenSurface = SDL_GetWindowSurface(window); 18 | SDL_FillSurfaceRect(screenSurface, NULL, SDL_MapSurfaceRGB(screenSurface, 0xff, 0xff, 0xff)); 19 | SDL_UpdateWindowSurface(window); 20 | SDL_Delay(100); 21 | SDL_DestroyWindow(window); 22 | SDL_Quit(); 23 | return 0; 24 | } 25 | -------------------------------------------------------------------------------- /ThirdParty/SDL/cmake/test/main_lib.c: -------------------------------------------------------------------------------- 1 | #include 2 | #define SDL_MAIN_HANDLED /* don't drag in header-only SDL_main implementation */ 3 | #include 4 | 5 | #include EXPORT_HEADER 6 | 7 | #ifdef _WIN32 8 | #include 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\n", 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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/cmake/test/sdltest.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | 5 | int main(int argc, char *argv[]) { 6 | SDLTest_CommonState state; 7 | SDLTest_CommonDefaultArgs(&state, argc, argv); 8 | return 0; 9 | } 10 | -------------------------------------------------------------------------------- /ThirdParty/SDL/cmake/test/swift/module.modulemap: -------------------------------------------------------------------------------- 1 | module SDL3 [extern_c] { 2 | header "shim.h" 3 | export * 4 | } 5 | -------------------------------------------------------------------------------- /ThirdParty/SDL/cmake/test/swift/shim.h: -------------------------------------------------------------------------------- 1 | /* Contributed by Piotr Usewicz (https://github.com/pusewicz) */ 2 | 3 | #include 4 | -------------------------------------------------------------------------------- /ThirdParty/SDL/docs/README-git.md: -------------------------------------------------------------------------------- 1 | git 2 | ========= 3 | 4 | The latest development version of SDL is available via git. 5 | Git allows you to get up-to-the-minute fixes and enhancements; 6 | as a developer works on a source tree, you can use "git" to mirror that 7 | source tree instead of waiting for an official release. Please look 8 | at the Git website ( https://git-scm.com/ ) for more 9 | information on using git, where you can also download software for 10 | macOS, Windows, and Unix systems. 11 | 12 | git clone https://github.com/libsdl-org/SDL 13 | 14 | If you are building SDL via configure, you will need to run autogen.sh 15 | before running configure. 16 | 17 | There is a web interface to the Git repository at: 18 | http://github.com/libsdl-org/SDL/ 19 | 20 | -------------------------------------------------------------------------------- /ThirdParty/SDL/docs/README-platforms.md: -------------------------------------------------------------------------------- 1 | Platforms 2 | ========= 3 | 4 | We maintain the list of supported platforms on our wiki now, and how to 5 | build and install SDL for those platforms: 6 | 7 | https://wiki.libsdl.org/Installation 8 | 9 | -------------------------------------------------------------------------------- /ThirdParty/SDL/docs/README-psp.md: -------------------------------------------------------------------------------- 1 | PSP 2 | ====== 3 | SDL port for the Sony PSP contributed by: 4 | - Captian 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://psp-dev.org/doku.php?id=tutorial:hello_world) 33 | 34 | ## To Do 35 | - PSP Screen Keyboard 36 | - Dialogs 37 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/include/SDL3/SDL_copying.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 22 | /* Header file containing SDL's license. */ 23 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 */ 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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/SDL_assert_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | #ifndef SDL_assert_c_h_ 24 | #define SDL_assert_c_h_ 25 | 26 | extern void SDL_AssertionsQuit(void); 27 | 28 | #endif // SDL_assert_c_h_ 29 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/audio/SDL_audio_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 22 | #ifndef SDL_audio_c_h_ 23 | #define SDL_audio_c_h_ 24 | 25 | extern void SDL_UpdateAudio(void); 26 | 27 | #endif // SDL_audio_c_h_ 28 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/core/gdk/SDL_gdk.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | // This is called from WIN_PumpEvents on GDK 24 | extern void GDK_DispatchTaskQueue(void); 25 | 26 | extern bool GDK_RegisterChangeNotifications(void); 27 | extern void GDK_UnregisterChangeNotifications(void); 28 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/core/openbsd/SDL_wscons.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 22 | void SDL_WSCONS_Init(); 23 | void SDL_WSCONS_Quit(); 24 | 25 | void SDL_WSCONS_PumpEvents(); 26 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/core/unix/SDL_appid.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 22 | #include "SDL_internal.h" 23 | 24 | #ifndef SDL_appid_h_ 25 | #define SDL_appid_h_ 26 | 27 | extern const char *SDL_GetExeName(void); 28 | extern const char *SDL_GetAppID(void); 29 | 30 | #endif // SDL_appid_h_ 31 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/core/windows/pch.c: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/core/windows/pch_cpp.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/core/windows/version.rc: -------------------------------------------------------------------------------- 1 | 2 | #include "winresrc.h" 3 | 4 | LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US 5 | 6 | ///////////////////////////////////////////////////////////////////////////// 7 | // 8 | // Version 9 | // 10 | 11 | VS_VERSION_INFO VERSIONINFO 12 | FILEVERSION 3,1,2,0 13 | PRODUCTVERSION 3,1,2,0 14 | FILEFLAGSMASK 0x3fL 15 | FILEFLAGS 0x0L 16 | FILEOS 0x40004L 17 | FILETYPE 0x2L 18 | FILESUBTYPE 0x0L 19 | BEGIN 20 | BLOCK "StringFileInfo" 21 | BEGIN 22 | BLOCK "040904b0" 23 | BEGIN 24 | VALUE "CompanyName", "\0" 25 | VALUE "FileDescription", "SDL\0" 26 | VALUE "FileVersion", "3, 1, 2, 0\0" 27 | VALUE "InternalName", "SDL\0" 28 | VALUE "LegalCopyright", "Copyright (C) 2024 Sam Lantinga\0" 29 | VALUE "OriginalFilename", "SDL3.dll\0" 30 | VALUE "ProductName", "Simple DirectMedia Layer\0" 31 | VALUE "ProductVersion", "3, 1, 2, 0\0" 32 | END 33 | END 34 | BLOCK "VarFileInfo" 35 | BEGIN 36 | VALUE "Translation", 0x409, 1200 37 | END 38 | END 39 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/cpuinfo/SDL_cpuinfo_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 22 | #ifndef SDL_cpuinfo_c_h_ 23 | #define SDL_cpuinfo_c_h_ 24 | 25 | extern void SDL_QuitCPUInfo(void); 26 | 27 | #endif // SDL_cpuinfo_c_h_ 28 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/events/SDL_clipboardevents_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | #ifndef SDL_clipboardevents_c_h_ 24 | #define SDL_clipboardevents_c_h_ 25 | 26 | extern void SDL_SendClipboardUpdate(void); 27 | 28 | #endif // SDL_clipboardevents_c_h_ 29 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/file/n3ds/SDL_iostreamromfs.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | #ifndef SDL_iostreamromfs_h_ 24 | #define SDL_iostreamromfs_h_ 25 | 26 | FILE *N3DS_FileOpen(const char *file, const char *mode); 27 | 28 | #endif // SDL_iostreamromfs_h_ 29 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/filesystem/SDL_filesystem_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 22 | #ifndef SDL_filesystem_c_h_ 23 | #define SDL_filesystem_c_h_ 24 | 25 | extern void SDL_InitFilesystem(void); 26 | extern void SDL_QuitFilesystem(void); 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/gpu/d3d11/compile_shaders.bat: -------------------------------------------------------------------------------- 1 | fxc /T vs_5_0 /E FullscreenVert /Fh D3D11_FullscreenVert.h ..\d3dcommon\D3D_Blit.hlsl 2 | fxc /T ps_5_0 /E BlitFrom2D /Fh D3D11_BlitFrom2D.h ..\d3dcommon\D3D_Blit.hlsl 3 | fxc /T ps_5_0 /E BlitFrom2DArray /Fh D3D11_BlitFrom2DArray.h ..\d3dcommon\D3D_Blit.hlsl 4 | fxc /T ps_5_0 /E BlitFrom3D /Fh D3D11_BlitFrom3D.h ..\d3dcommon\D3D_Blit.hlsl 5 | fxc /T ps_5_0 /E BlitFromCube /Fh D3D11_BlitFromCube.h ..\d3dcommon\D3D_Blit.hlsl 6 | copy /b D3D11_FullscreenVert.h+D3D11_BlitFrom2D.h+D3D11_BlitFrom2DArray.h+D3D11_BlitFrom3D.h+D3D11_BlitFromCube.h D3D11_Blit.h 7 | del D3D11_FullscreenVert.h D3D11_BlitFrom2D.h D3D11_BlitFrom2DArray.h D3D11_BlitFrom3D.h D3D11_BlitFromCube.h -------------------------------------------------------------------------------- /ThirdParty/SDL/src/gpu/d3d12/compile_shaders.bat: -------------------------------------------------------------------------------- 1 | rem This script runs for the Windows build, but also via the _xbox variant with these vars set. 2 | rem Make sure to default to building for Windows if they're not set. 3 | if %DXC%.==. set DXC=dxc 4 | if %SUFFIX%.==. set SUFFIX=.h 5 | 6 | echo Building with %DXC% 7 | echo Suffix %SUFFIX% 8 | 9 | cd "%~dp0" 10 | 11 | %DXC% -E FullscreenVert -T vs_6_0 -Fh D3D12_FullscreenVert.h ..\d3dcommon\D3D_Blit.hlsl /D D3D12=1 12 | %DXC% -E BlitFrom2D -T ps_6_0 -Fh D3D12_BlitFrom2D.h ..\d3dcommon\D3D_Blit.hlsl /D D3D12=1 13 | %DXC% -E BlitFrom2DArray -T ps_6_0 -Fh D3D12_BlitFrom2DArray.h ..\d3dcommon\D3D_Blit.hlsl /D D3D12=1 14 | %DXC% -E BlitFrom3D -T ps_6_0 -Fh D3D12_BlitFrom3D.h ..\d3dcommon\D3D_Blit.hlsl /D D3D12=1 15 | %DXC% -E BlitFromCube -T ps_6_0 -Fh D3D12_BlitFromCube.h ..\d3dcommon\D3D_Blit.hlsl /D D3D12=1 16 | copy /b D3D12_FullscreenVert.h+D3D12_BlitFrom2D.h+D3D12_BlitFrom2DArray.h+D3D12_BlitFrom3D.h+D3D12_BlitFromCube.h D3D12_Blit%SUFFIX% 17 | del D3D12_FullscreenVert.h D3D12_BlitFrom2D.h D3D12_BlitFrom2DArray.h D3D12_BlitFrom3D.h D3D12_BlitFromCube.h -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/haptic/SDL_haptic_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 22 | #ifndef SDL_haptic_c_h_ 23 | #define SDL_haptic_c_h_ 24 | 25 | extern bool SDL_InitHaptics(void); 26 | extern void SDL_QuitHaptics(void); 27 | 28 | #endif // SDL_haptic_c_h_ 29 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/haptic/android/SDL_syshaptic_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | #ifdef SDL_HAPTIC_ANDROID 24 | 25 | extern bool Android_AddHaptic(int device_id, const char *name); 26 | extern bool Android_RemoveHaptic(int device_id); 27 | 28 | #endif // SDL_HAPTIC_ANDROID 29 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/hidapi/AUTHORS.txt: -------------------------------------------------------------------------------- 1 | 2 | HIDAPI Authors: 3 | 4 | Alan Ott : 5 | Original Author and Maintainer 6 | Linux, Windows, and Mac implementations 7 | 8 | Ludovic Rousseau : 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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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-` 17 | 5. Push newly created tag: `git push origin hidapi-` 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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/hidapi/SDL_hidapi_android.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 22 | /* The implementation for Android is in a separate .cpp file */ 23 | #undef HIDAPI_H__ 24 | #include "hidapi/hidapi.h" 25 | #define HAVE_PLATFORM_BACKEND 1 26 | #define udev_ctx 1 27 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/hidapi/SDL_hidapi_ios.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 22 | /* The implementation for iOS and tvOS is in a separate .m file */ 23 | #undef HIDAPI_H__ 24 | #include "hidapi/hidapi.h" 25 | #define HAVE_PLATFORM_BACKEND 1 26 | #define udev_ctx 1 27 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/hidapi/SDL_hidapi_mac.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 22 | #undef HIDAPI_H__ 23 | #include "mac/hid.c" 24 | #define HAVE_PLATFORM_BACKEND 1 25 | #define udev_ctx 1 26 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/hidapi/SDL_hidapi_netbsd.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 22 | #undef HIDAPI_H__ 23 | #include "netbsd/hid.c" 24 | #define HAVE_PLATFORM_BACKEND 1 25 | #define udev_ctx 1 26 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/hidapi/SDL_hidapi_steamxbox.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 22 | #undef HIDAPI_H__ 23 | #include "steamxbox/hid.c" 24 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/hidapi/VERSION: -------------------------------------------------------------------------------- 1 | 0.14.0 -------------------------------------------------------------------------------- /ThirdParty/SDL/src/hidapi/bootstrap: -------------------------------------------------------------------------------- 1 | #!/bin/sh -x 2 | autoreconf --install --verbose --force 3 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/hidapi/documentation/cmake-gui-drop-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadaver/turso3d/ed395e9b252d3acf719e59ab297719975bd8d2b1/ThirdParty/SDL/src/hidapi/documentation/cmake-gui-drop-down.png -------------------------------------------------------------------------------- /ThirdParty/SDL/src/hidapi/documentation/cmake-gui-highlights.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadaver/turso3d/ed395e9b252d3acf719e59ab297719975bd8d2b1/ThirdParty/SDL/src/hidapi/documentation/cmake-gui-highlights.png -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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) $< -o $@ 34 | 35 | 36 | clean: 37 | rm -f $(OBJS) hidtest libhidapi.so ../hidtest/hidtest.o 38 | 39 | .PHONY: clean libs 40 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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) $< -o $@ 34 | 35 | 36 | clean: 37 | rm -f $(OBJS) hidtest libhidapi.so ../hidtest/hidtest.o 38 | 39 | .PHONY: clean libs 40 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/hidapi/libusb/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: hidtest-libusb libs 10 | 11 | libs: libhidapi-libusb.so 12 | 13 | CC ?= gcc 14 | CFLAGS ?= -Wall -g -fpic 15 | 16 | LDFLAGS ?= -Wall -g 17 | 18 | COBJS_LIBUSB = hid.o 19 | COBJS = $(COBJS_LIBUSB) ../hidtest/test.o 20 | OBJS = $(COBJS) 21 | LIBS_USB = `pkg-config libusb-1.0 --libs` -lrt -lpthread 22 | LIBS = $(LIBS_USB) 23 | INCLUDES ?= -I../hidapi -I. `pkg-config libusb-1.0 --cflags` 24 | 25 | 26 | # Console Test Program 27 | hidtest-libusb: $(COBJS) 28 | $(CC) $(LDFLAGS) $^ $(LIBS_USB) -o $@ 29 | 30 | # Shared Libs 31 | libhidapi-libusb.so: $(COBJS_LIBUSB) 32 | $(CC) $(LDFLAGS) $(LIBS_USB) -shared -fpic -Wl,-soname,$@.0 $^ -o $@ 33 | 34 | # Objects 35 | $(COBJS): %.o: %.c 36 | $(CC) $(CFLAGS) -c $(INCLUDES) $< -o $@ 37 | 38 | 39 | clean: 40 | rm -f $(OBJS) hidtest-libusb libhidapi-libusb.so ../hidtest/hidtest.o 41 | 42 | .PHONY: clean libs 43 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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) $< -o $@ 37 | 38 | 39 | clean: 40 | rm -f $(OBJS) hidtest-hidraw libhidapi-hidraw.so $(COBJS) 41 | 42 | .PHONY: clean libs 43 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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) $< -o $@ 23 | 24 | clean: 25 | rm -f *.o hidtest 26 | 27 | .PHONY: clean 28 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/hidapi/netbsd/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.6.3...3.25 FATAL_ERROR) 2 | 3 | add_library(hidapi_netbsd 4 | ${HIDAPI_PUBLIC_HEADERS} 5 | hid.c 6 | ) 7 | target_link_libraries(hidapi_netbsd PUBLIC hidapi_include) 8 | 9 | find_package(Threads REQUIRED) 10 | 11 | target_link_libraries(hidapi_netbsd PRIVATE Threads::Threads) 12 | 13 | set_target_properties(hidapi_netbsd 14 | PROPERTIES 15 | EXPORT_NAME "netbsd" 16 | OUTPUT_NAME "hidapi-netbsd" 17 | VERSION ${PROJECT_VERSION} 18 | SOVERSION ${PROJECT_VERSION_MAJOR} 19 | PUBLIC_HEADER "${HIDAPI_PUBLIC_HEADERS}" 20 | ) 21 | 22 | # compatibility with find_package() 23 | add_library(hidapi::netbsd ALIAS hidapi_netbsd) 24 | # compatibility with raw library link 25 | add_library(hidapi-netbsd ALIAS hidapi_netbsd) 26 | 27 | if(HIDAPI_INSTALL_TARGETS) 28 | install(TARGETS hidapi_netbsd EXPORT hidapi 29 | LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" 30 | ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" 31 | PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/hidapi" 32 | ) 33 | endif() 34 | 35 | hidapi_configure_pc("${PROJECT_ROOT}/pc/hidapi-netbsd.pc.in") 36 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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. -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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) $< -o $@ 26 | 27 | $(CPPOBJS): %.o: %.cpp 28 | $(CXX) $(CFLAGS) $< -o $@ 29 | 30 | clean: 31 | rm *.o testgui 32 | 33 | .PHONY: clean 34 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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) $< -o $@ 25 | 26 | $(CPPOBJS): %.o: %.cpp 27 | $(CXX) $(CFLAGS) $< -o $@ 28 | 29 | clean: 30 | rm *.o testgui 31 | 32 | .PHONY: clean 33 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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) $< -o $@ 25 | 26 | $(CPPOBJS): %.o: %.cpp 27 | $(CXX) $(CFLAGS) $< -o $@ 28 | 29 | clean: 30 | rm -f *.o hidapi-testgui.exe 31 | 32 | .PHONY: clean 33 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/hidapi/testgui/TestGUI.app.in/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleDisplayName 8 | 9 | CFBundleExecutable 10 | hidapi-testgui 11 | CFBundleIconFile 12 | Signal11.icns 13 | CFBundleIdentifier 14 | us.signal11.hidtestgui 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleName 18 | testgui 19 | CFBundlePackageType 20 | APPL 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1.0 25 | CSResourcesFileMapped 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/hidapi/testgui/TestGUI.app.in/Contents/PkgInfo: -------------------------------------------------------------------------------- 1 | APPL???? -------------------------------------------------------------------------------- /ThirdParty/SDL/src/hidapi/testgui/TestGUI.app.in/Contents/Resources/English.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadaver/turso3d/ed395e9b252d3acf719e59ab297719975bd8d2b1/ThirdParty/SDL/src/hidapi/testgui/TestGUI.app.in/Contents/Resources/English.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /ThirdParty/SDL/src/hidapi/testgui/TestGUI.app.in/Contents/Resources/Signal11.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadaver/turso3d/ed395e9b252d3acf719e59ab297719975bd8d2b1/ThirdParty/SDL/src/hidapi/testgui/TestGUI.app.in/Contents/Resources/Signal11.icns -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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) $< -o $@ 26 | 27 | clean: 28 | rm *.o ../hidtest/*.o hidtest.exe 29 | 30 | .PHONY: clean 31 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/hidapi/windows/hidapi.rc: -------------------------------------------------------------------------------- 1 | #include "winresrc.h" 2 | 3 | #include "hidapi.h" 4 | 5 | // English 6 | LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT 7 | VS_VERSION_INFO VERSIONINFO 8 | FILEVERSION HID_API_VERSION_MAJOR,HID_API_VERSION_MINOR,HID_API_VERSION_PATCH,0 9 | PRODUCTVERSION HID_API_VERSION_MAJOR,HID_API_VERSION_MINOR,HID_API_VERSION_PATCH,0 10 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK 11 | FILEFLAGS 0 12 | #ifdef _DEBUG 13 | | VS_FF_DEBUG 14 | #endif 15 | FILEOS VOS_NT_WINDOWS32 16 | FILETYPE VFT_DLL 17 | BEGIN 18 | BLOCK "StringFileInfo" 19 | BEGIN 20 | BLOCK "04090000" 21 | BEGIN 22 | VALUE "CompanyName", "libusb/hidapi Team" 23 | VALUE "FileDescription", "A multi-platform library to interface with HID devices (USB, Bluetooth, etc.)" 24 | VALUE "FileVersion", HID_API_VERSION_STR 25 | VALUE "ProductName", "HIDAPI" 26 | VALUE "ProductVersion", HID_API_VERSION_STR 27 | VALUE "Licence", "https://github.com/libusb/hidapi/blob/master/LICENSE.txt" 28 | VALUE "Comments", "https://github.com/libusb/hidapi" 29 | END 30 | END 31 | BLOCK "VarFileInfo" 32 | BEGIN 33 | VALUE "Translation", 0x409, 0 34 | END 35 | END 36 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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, -------------------------------------------------------------------------------- /ThirdParty/SDL/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, -------------------------------------------------------------------------------- /ThirdParty/SDL/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, -------------------------------------------------------------------------------- /ThirdParty/SDL/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, -------------------------------------------------------------------------------- /ThirdParty/SDL/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, -------------------------------------------------------------------------------- /ThirdParty/SDL/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, -------------------------------------------------------------------------------- /ThirdParty/SDL/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, -------------------------------------------------------------------------------- /ThirdParty/SDL/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, -------------------------------------------------------------------------------- /ThirdParty/SDL/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, -------------------------------------------------------------------------------- /ThirdParty/SDL/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, -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/hidapi/windows/test/data/046D_C283_0004_0001_expected.rpt_desc: -------------------------------------------------------------------------------- 1 | 0x05, 0x01, 0x09, 0x04, 0xA1, 0x01, 0x09, 0x00, 0xA1, 0x02, 2 | 0x09, 0x01, 0xA1, 0x00, 0x09, 0x30, 0x09, 0x31, 0x15, 0x00, 3 | 0x26, 0xFF, 0x00, 0x35, 0x00, 0x46, 0xFF, 0x00, 0x75, 0x08, 4 | 0x95, 0x02, 0x81, 0x02, 0x06, 0x00, 0xFF, 0x09, 0x01, 0x15, 5 | 0x00, 0x25, 0x0F, 0x75, 0x04, 0x95, 0x01, 0x81, 0x02, 0x05, 6 | 0x01, 0x09, 0x39, 0x15, 0x00, 0x25, 0x07, 0x35, 0x00, 0x46, 7 | 0x3B, 0x01, 0x65, 0x14, 0x75, 0x04, 0x95, 0x01, 0x81, 0x42, 8 | 0x09, 0x35, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x35, 0x00, 0x46, 9 | 0xFF, 0x00, 0x75, 0x08, 0x95, 0x01, 0x81, 0x02, 0xC0, 0x05, 10 | 0x09, 0x19, 0x01, 0x29, 0x07, 0x15, 0x00, 0x25, 0x01, 0x75, 11 | 0x01, 0x95, 0x07, 0x45, 0x00, 0x65, 0x00, 0x81, 0x02, 0x75, 12 | 0x01, 0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x36, 0x15, 13 | 0x00, 0x26, 0xFF, 0x00, 0x35, 0x00, 0x46, 0xFF, 0x00, 0x75, 14 | 0x08, 0x95, 0x01, 0x81, 0x02, 0x06, 0x00, 0xFF, 0x09, 0x01, 15 | 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 0x08, 0x95, 0x01, 0x81, 16 | 0x02, 0xC0, 0x09, 0x00, 0xA1, 0x02, 0x09, 0x02, 0x15, 0x00, 17 | 0x26, 0xFF, 0x00, 0x75, 0x08, 0x95, 0x08, 0x91, 0x02, 0xC0, 18 | 0xC0, -------------------------------------------------------------------------------- /ThirdParty/SDL/src/hidapi/windows/test/data/046D_C283_0004_0001_real.rpt_desc: -------------------------------------------------------------------------------- 1 | 0x05, 0x01, 0x09, 0x04, 0xA1, 0x01, 0x09, 0x00, 0xA1, 0x02, 2 | 0x09, 0x01, 0xA1, 0x00, 0x09, 0x30, 0x09, 0x31, 0x15, 0x00, 3 | 0x26, 0xFF, 0x00, 0x35, 0x00, 0x46, 0xFF, 0x00, 0x75, 0x08, 4 | 0x95, 0x02, 0x81, 0x02, 0x06, 0x00, 0xFF, 0x09, 0x01, 0x15, 5 | 0x00, 0x25, 0x0F, 0x75, 0x04, 0x95, 0x01, 0x81, 0x02, 0x05, 6 | 0x01, 0x09, 0x39, 0x15, 0x00, 0x25, 0x07, 0x35, 0x00, 0x46, 7 | 0x3B, 0x01, 0x65, 0x14, 0x75, 0x04, 0x95, 0x01, 0x81, 0x42, 8 | 0x09, 0x35, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x35, 0x00, 0x46, 9 | 0xFF, 0x00, 0x75, 0x08, 0x95, 0x01, 0x81, 0x02, 0xC0, 0x05, 10 | 0x09, 0x19, 0x01, 0x29, 0x07, 0x15, 0x00, 0x25, 0x01, 0x75, 11 | 0x01, 0x95, 0x07, 0x45, 0x00, 0x65, 0x00, 0x81, 0x02, 0x75, 12 | 0x01, 0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x36, 0x15, 13 | 0x00, 0x26, 0xFF, 0x00, 0x35, 0x00, 0x46, 0xFF, 0x00, 0x75, 14 | 0x08, 0x95, 0x01, 0x81, 0x02, 0x06, 0x00, 0xFF, 0x09, 0x01, 15 | 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 0x08, 0x95, 0x01, 0x81, 16 | 0x02, 0xC0, 0x09, 0x00, 0xA1, 0x02, 0x09, 0x02, 0x15, 0x00, 17 | 0x26, 0xFF, 0x00, 0x75, 0x08, 0x95, 0x08, 0x91, 0x02, 0xC0, 18 | 0xC0, -------------------------------------------------------------------------------- /ThirdParty/SDL/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, -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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, -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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, -------------------------------------------------------------------------------- /ThirdParty/SDL/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, -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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, -------------------------------------------------------------------------------- /ThirdParty/SDL/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 -------------------------------------------------------------------------------- /ThirdParty/SDL/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, -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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, -------------------------------------------------------------------------------- /ThirdParty/SDL/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, -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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, -------------------------------------------------------------------------------- /ThirdParty/SDL/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, -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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, -------------------------------------------------------------------------------- /ThirdParty/SDL/src/hidapi/windows/test/data/047F_C056_0005_000B_expected.rpt_desc: -------------------------------------------------------------------------------- 1 | 0x05, 0x0B, 0x09, 0x05, 0xA1, 0x01, 0x85, 0x08, 0x09, 0x2F, 2 | 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x06, 3 | 0x09, 0x20, 0x09, 0x21, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 4 | 0x95, 0x02, 0x81, 0x22, 0x75, 0x05, 0x95, 0x01, 0x81, 0x03, 5 | 0x85, 0x09, 0x05, 0x08, 0x09, 0x09, 0x15, 0x00, 0x25, 0x01, 6 | 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01, 7 | 0x91, 0x03, 0x85, 0x17, 0x09, 0x17, 0x15, 0x00, 0x25, 0x01, 8 | 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01, 9 | 0x91, 0x03, 0x85, 0x18, 0x09, 0x18, 0x15, 0x00, 0x25, 0x01, 10 | 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01, 11 | 0x91, 0x03, 0x85, 0x1E, 0x09, 0x1E, 0x15, 0x00, 0x25, 0x01, 12 | 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01, 13 | 0x91, 0x03, 0x85, 0x20, 0x09, 0x20, 0x15, 0x00, 0x25, 0x01, 14 | 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01, 15 | 0x91, 0x03, 0x85, 0x2A, 0x09, 0x2A, 0x15, 0x00, 0x25, 0x01, 16 | 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01, 17 | 0x91, 0x03, 0xC0, -------------------------------------------------------------------------------- /ThirdParty/SDL/src/joystick/check_8bitdo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Check to make sure 8BitDo controller configurations are correct 4 | 5 | echo "Expected output:" 6 | cat <<__EOF__ 7 | "050000003512000020ab000000780f00,8BitDo SNES30 Gamepad,a:b20,b:b21,back:b30,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b26,rightshoulder:b27,start:b31,x:b23,y:b24,hint:SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,", 8 | "050000003512000020ab000000780f00,8BitDo SNES30 Gamepad,a:b21,b:b20,back:b30,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b26,rightshoulder:b27,start:b31,x:b24,y:b23,hint:!SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,", 9 | 10 | __EOF__ 11 | 12 | echo "Actual output:" 13 | ${FGREP:-grep -F} 8BitDo SDL_gamepad_db.h | ${FGREP:-grep -F} -v hint 14 | ${EGREP:-grep -E} "hint:SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1" SDL_gamepad_db.h | ${FGREP:-grep -F} -i 8bit | ${FGREP:-grep -F} -v x:b2,y:b3 | ${FGREP:-grep -F} -v x:b3,y:b4 15 | ${EGREP:-grep -E} "hint:.SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1" SDL_gamepad_db.h | ${FGREP:-grep -F} -i 8bit | ${FGREP:-grep -F} -v x:b3,y:b2 | ${FGREP:-grep -F} -v x:b4,y:b3 16 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 */ 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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/libm/s_isinf.c: -------------------------------------------------------------------------------- 1 | #include "SDL_internal.h" 2 | /* 3 | * Written by J.T. Conklin . 4 | * Changed to return -1 for -Inf by Ulrich Drepper . 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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/libm/s_isinff.c: -------------------------------------------------------------------------------- 1 | #include "SDL_internal.h" 2 | /* 3 | * Written by J.T. Conklin . 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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/misc/SDL_sysurl.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | #ifdef __cplusplus 24 | extern "C" { 25 | #endif 26 | 27 | extern bool SDL_SYS_OpenURL(const char *url); 28 | 29 | #ifdef __cplusplus 30 | } 31 | #endif 32 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/misc/SDL_url.c: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | #include "SDL_sysurl.h" 24 | 25 | SDL_bool SDL_OpenURL(const char *url) 26 | { 27 | if (!url) { 28 | return SDL_InvalidParamError("url"); 29 | } 30 | return SDL_SYS_OpenURL(url); 31 | } 32 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/misc/android/SDL_sysurl.c: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | #include "../SDL_sysurl.h" 24 | #include "../../core/android/SDL_android.h" 25 | 26 | bool SDL_SYS_OpenURL(const char *url) 27 | { 28 | return Android_JNI_OpenURL(url); 29 | } 30 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/misc/dummy/SDL_sysurl.c: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | #include "../SDL_sysurl.h" 24 | 25 | bool SDL_SYS_OpenURL(const char *url) 26 | { 27 | return SDL_Unsupported(); 28 | } 29 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/power/uikit/SDL_syspower.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | #ifdef SDL_POWER_UIKIT 24 | 25 | void SDL_UIKit_UpdateBatteryMonitoring(void); 26 | bool SDL_GetPowerInfo_UIKit(SDL_PowerState *state, int *seconds, int *percent); 27 | 28 | #endif // SDL_POWER_UIKIT 29 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/render/SDL_render_unsupported.c: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/render/direct3d/D3D9_PixelShader_YUV.hlsl: -------------------------------------------------------------------------------- 1 | 2 | Texture2D theTextureY : register(t0); 3 | Texture2D theTextureU : register(t1); 4 | Texture2D theTextureV : register(t2); 5 | 6 | SamplerState theSampler = sampler_state 7 | { 8 | addressU = Clamp; 9 | addressV = Clamp; 10 | mipfilter = NONE; 11 | minfilter = LINEAR; 12 | magfilter = LINEAR; 13 | }; 14 | 15 | struct PixelShaderInput 16 | { 17 | float4 pos : SV_POSITION; 18 | float2 tex : TEXCOORD0; 19 | float4 color : COLOR0; 20 | }; 21 | 22 | cbuffer Constants : register(b0) 23 | { 24 | float4 Yoffset; 25 | float4 Rcoeff; 26 | float4 Gcoeff; 27 | float4 Bcoeff; 28 | }; 29 | 30 | 31 | float4 main(PixelShaderInput input) : SV_TARGET 32 | { 33 | float4 Output; 34 | 35 | float3 yuv; 36 | yuv.x = theTextureY.Sample(theSampler, input.tex).r; 37 | yuv.y = theTextureU.Sample(theSampler, input.tex).r; 38 | yuv.z = theTextureV.Sample(theSampler, input.tex).r; 39 | 40 | yuv += Yoffset.xyz; 41 | Output.r = dot(yuv, Rcoeff.xyz); 42 | Output.g = dot(yuv, Gcoeff.xyz); 43 | Output.b = dot(yuv, Bcoeff.xyz); 44 | Output.a = 1.0f; 45 | 46 | return Output * input.color; 47 | } 48 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/render/direct3d/compile_shaders.bat: -------------------------------------------------------------------------------- 1 | fxc /T ps_2_0 /Fh D3D9_PixelShader_YUV.h D3D9_PixelShader_YUV.hlsl 2 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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, 0x24, 0x3f, 0x6b, 0x5a, 0xb1, 0xd3, 0x78, 0x2f, 7 | 0x7f, 0xd4, 0x83, 0xd9, 0x7d, 0x6b, 0xc4, 0x31, 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, 0x14, 0x00, 0x00, 0x00 16 | }; 17 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/render/direct3d12/D3D12_VertexShader.hlsl: -------------------------------------------------------------------------------- 1 | #include "D3D12_Shader_Common.hlsli" 2 | 3 | struct VertexShaderInput 4 | { 5 | float3 pos : POSITION; 6 | float2 tex : TEXCOORD0; 7 | float4 color : COLOR0; 8 | }; 9 | 10 | struct VertexShaderOutput 11 | { 12 | float4 pos : SV_POSITION; 13 | float2 tex : TEXCOORD0; 14 | float4 color : COLOR0; 15 | }; 16 | 17 | [RootSignature(ColorRS)] 18 | VertexShaderOutput mainColor(VertexShaderInput input) 19 | { 20 | VertexShaderOutput output; 21 | float4 pos = float4(input.pos, 1.0f); 22 | 23 | // Transform the vertex position into projected space. 24 | pos = mul(pos, model); 25 | pos = mul(pos, projectionAndView); 26 | output.pos = pos; 27 | 28 | // Pass through texture coordinates and color values without transformation 29 | output.tex = input.tex; 30 | output.color = input.color; 31 | 32 | return output; 33 | } 34 | 35 | [RootSignature(TextureRS)] 36 | VertexShaderOutput mainTexture(VertexShaderInput input) 37 | { 38 | return mainColor(input); 39 | } 40 | 41 | [RootSignature(AdvancedRS)] 42 | VertexShaderOutput mainAdvanced(VertexShaderInput input) 43 | { 44 | return mainColor(input); 45 | } 46 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/render/gpu/shaders/.gitattributes: -------------------------------------------------------------------------------- 1 | *.h linguist-generated 2 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/render/gpu/shaders/.gitignore: -------------------------------------------------------------------------------- 1 | *.hlsl 2 | *.metal 3 | *.spv 4 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/render/gpu/shaders/color.frag: -------------------------------------------------------------------------------- 1 | #version 450 2 | 3 | layout(location = 0) in vec4 v_color; 4 | 5 | layout(location = 0) out vec4 o_color; 6 | 7 | void main() { 8 | o_color = v_color; 9 | } 10 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/render/gpu/shaders/dxbc50.h: -------------------------------------------------------------------------------- 1 | #include "linepoint.vert.sm50.dxbc.h" 2 | #include "tri_color.vert.sm50.dxbc.h" 3 | #include "tri_texture.vert.sm50.dxbc.h" 4 | #include "color.frag.sm50.dxbc.h" 5 | #include "texture_rgba.frag.sm50.dxbc.h" 6 | #include "texture_rgb.frag.sm50.dxbc.h" 7 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/render/gpu/shaders/dxil60.h: -------------------------------------------------------------------------------- 1 | #include "linepoint.vert.sm60.dxil.h" 2 | #include "tri_color.vert.sm60.dxil.h" 3 | #include "tri_texture.vert.sm60.dxil.h" 4 | #include "color.frag.sm60.dxil.h" 5 | #include "texture_rgba.frag.sm60.dxil.h" 6 | #include "texture_rgb.frag.sm60.dxil.h" 7 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/render/gpu/shaders/fix-shaders.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Update generated shader code to fix compiler warnings 4 | 5 | sed -i '' 's,^const,static const,' *.h 6 | sed -i '' 's,const unsigned,const signed,' *.dxbc.h 7 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/render/gpu/shaders/linepoint.vert: -------------------------------------------------------------------------------- 1 | #version 450 2 | 3 | layout(location = 0) in vec2 a_position; 4 | 5 | layout(location = 0) out vec4 v_color; 6 | 7 | layout(set = 1, binding = 0) uniform Context { 8 | mat4 mvp; 9 | vec4 color; 10 | vec2 texture_size; /* XXX unused */ 11 | } u_context; 12 | 13 | void main() { 14 | gl_PointSize = 1.0; /* FIXME: D3D11 pls */ 15 | gl_Position = u_context.mvp * vec4(a_position, 0, 1); 16 | v_color = u_context.color; 17 | } 18 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/render/gpu/shaders/metal.h: -------------------------------------------------------------------------------- 1 | #include "linepoint.vert.metal.h" 2 | #include "tri_color.vert.metal.h" 3 | #include "tri_texture.vert.metal.h" 4 | #include "color.frag.metal.h" 5 | #include "texture_rgba.frag.metal.h" 6 | #include "texture_rgb.frag.metal.h" 7 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/render/gpu/shaders/spir-v.h: -------------------------------------------------------------------------------- 1 | #include "linepoint.vert.spv.h" 2 | #include "tri_color.vert.spv.h" 3 | #include "tri_texture.vert.spv.h" 4 | #include "color.frag.spv.h" 5 | #include "texture_rgba.frag.spv.h" 6 | #include "texture_rgb.frag.spv.h" 7 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/render/gpu/shaders/texture_rgb.frag: -------------------------------------------------------------------------------- 1 | #version 450 2 | 3 | layout(location = 0) in vec4 v_color; 4 | layout(location = 1) in vec2 v_uv; 5 | 6 | layout(set = 2, binding = 0) uniform sampler2D u_texture; 7 | 8 | layout(location = 0) out vec4 o_color; 9 | 10 | void main() { 11 | o_color = vec4(texture(u_texture, v_uv).rgb, 1) * v_color; 12 | } 13 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/render/gpu/shaders/texture_rgba.frag: -------------------------------------------------------------------------------- 1 | #version 450 2 | 3 | layout(location = 0) in vec4 v_color; 4 | layout(location = 1) in vec2 v_uv; 5 | 6 | layout(set = 2, binding = 0) uniform sampler2D u_texture; 7 | 8 | layout(location = 0) out vec4 o_color; 9 | 10 | void main() { 11 | o_color = texture(u_texture, v_uv) * v_color; 12 | } 13 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/render/gpu/shaders/tri_color.vert: -------------------------------------------------------------------------------- 1 | #version 450 2 | 3 | layout(location = 0) in vec2 a_position; 4 | layout(location = 1) in vec4 a_color; 5 | 6 | layout(location = 0) out vec4 v_color; 7 | 8 | layout(set = 1, binding = 0) uniform Context { 9 | mat4 mvp; 10 | vec4 color; /* XXX unused */ 11 | vec2 texture_size; /* XXX unused */ 12 | } u_context; 13 | 14 | void main() { 15 | gl_Position = u_context.mvp * vec4(a_position, 0, 1); 16 | v_color = a_color; 17 | } 18 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/render/gpu/shaders/tri_texture.vert: -------------------------------------------------------------------------------- 1 | #version 450 2 | 3 | layout(location = 0) in vec2 a_position; 4 | layout(location = 1) in vec4 a_color; 5 | layout(location = 2) in vec2 a_uv; 6 | 7 | layout(location = 0) out vec4 v_color; 8 | layout(location = 1) out vec2 v_uv; 9 | 10 | layout(set = 1, binding = 0) uniform Context { 11 | mat4 mvp; 12 | vec4 color; /* XXX unused */ 13 | vec2 texture_size; 14 | } u_context; 15 | 16 | void main() { 17 | gl_Position = u_context.mvp * vec4(a_position, 0, 1); 18 | v_color = a_color; 19 | v_uv = a_uv / u_context.texture_size; 20 | } 21 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/render/software/SDL_render_sw_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 22 | #ifndef SDL_render_sw_c_h_ 23 | #define SDL_render_sw_c_h_ 24 | 25 | extern bool SW_CreateRendererForSurface(SDL_Renderer *renderer, SDL_Surface *surface, SDL_PropertiesID create_props); 26 | 27 | #endif // SDL_render_sw_c_h_ 28 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/render/vitagxm/shader_src/clear_f.cg: -------------------------------------------------------------------------------- 1 | float4 main( uniform float4 uClearColor) : COLOR 2 | { 3 | return uClearColor; 4 | } 5 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/render/vitagxm/shader_src/color_f.cg: -------------------------------------------------------------------------------- 1 | float4 main(float4 vColor : COLOR) 2 | { 3 | return vColor; 4 | } 5 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/sensor/android/SDL_androidsensor.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/sensor/coremotion/SDL_coremotionsensor.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | // The private structure used to keep track of a sensor 24 | struct sensor_hwdata 25 | { 26 | float data[3]; 27 | }; 28 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/sensor/dummy/SDL_dummysensor.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/sensor/vita/SDL_vitasensor.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | // The private structure used to keep track of a sensor 24 | struct sensor_hwdata 25 | { 26 | Uint32 counter; 27 | unsigned int last_tick; 28 | Uint64 sensor_timestamp; 29 | }; 30 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/sensor/windows/SDL_windowssensor.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/stdlib/SDL_getenv_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | extern void SDL_FreeEnvironmentMemory(void); 24 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/thread/generic/SDL_sysmutex_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/thread/generic/SDL_systhread_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | // Stub until we implement threads on this platform 24 | typedef int SYS_ThreadHandle; 25 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/thread/n3ds/SDL_sysmutex_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | #ifndef SDL_sysmutex_c_h_ 24 | #define SDL_sysmutex_c_h_ 25 | 26 | #include <3ds.h> 27 | 28 | struct SDL_Mutex 29 | { 30 | RecursiveLock lock; 31 | }; 32 | 33 | #endif // SDL_sysmutex_c_h 34 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/thread/n3ds/SDL_systhread_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | #ifndef SDL_systhread_c_h_ 24 | #define SDL_systhread_c_h_ 25 | 26 | #include <3ds.h> 27 | 28 | typedef Thread SYS_ThreadHandle; 29 | 30 | #endif // SDL_systhread_c_h_ 31 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/thread/ngage/SDL_systhread_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | typedef int SYS_ThreadHandle; 24 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/thread/ps2/SDL_systhread_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 22 | typedef int32_t SYS_ThreadHandle; 23 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/thread/psp/SDL_sysmutex_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/thread/psp/SDL_systhread_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 22 | #include 23 | 24 | typedef SceUID SYS_ThreadHandle; 25 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/thread/pthread/SDL_systhread_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | #include 24 | 25 | typedef pthread_t SYS_ThreadHandle; 26 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/thread/vita/SDL_sysmutex_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/thread/vita/SDL_systhread_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 22 | #include 23 | 24 | typedef SceUID SYS_ThreadHandle; 25 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/thread/windows/SDL_systhread_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | #ifndef SDL_systhread_c_h_ 24 | #define SDL_systhread_c_h_ 25 | 26 | #include "../../core/windows/SDL_windows.h" 27 | 28 | typedef HANDLE SYS_ThreadHandle; 29 | 30 | #endif // SDL_systhread_c_h_ 31 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/video/SDL_blit_copy.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 22 | #ifndef SDL_blit_copy_h_ 23 | #define SDL_blit_copy_h_ 24 | 25 | void SDL_BlitCopy(SDL_BlitInfo *info); 26 | 27 | #endif // SDL_blit_copy_h_ 28 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/video/android/SDL_androidevents.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | extern void Android_InitEvents(void); 24 | extern void Android_PumpEvents(Sint64 timeoutNS); 25 | extern bool Android_WaitActiveAndLockActivity(void); 26 | extern void Android_QuitEvents(void); 27 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/video/android/SDL_androidmessagebox.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | #ifdef SDL_VIDEO_DRIVER_ANDROID 24 | 25 | extern bool Android_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonID); 26 | 27 | #endif // SDL_VIDEO_DRIVER_ANDROID 28 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/video/cocoa/SDL_cocoamessagebox.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | #ifdef SDL_VIDEO_DRIVER_COCOA 24 | 25 | extern bool Cocoa_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonID); 26 | 27 | #endif // SDL_VIDEO_DRIVER_COCOA 28 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/video/dummy/SDL_nullvideo.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | #ifndef SDL_nullvideo_h_ 24 | #define SDL_nullvideo_h_ 25 | 26 | #include "../SDL_sysvideo.h" 27 | 28 | #endif // SDL_nullvideo_h_ 29 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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 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 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/video/kmsdrm/SDL_kmsdrmevents.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 22 | #include "SDL_internal.h" 23 | 24 | #ifndef SDL_kmsdrmevents_h_ 25 | #define SDL_kmsdrmevents_h_ 26 | 27 | extern void KMSDRM_PumpEvents(SDL_VideoDevice *_this); 28 | 29 | #endif // SDL_kmsdrmevents_h_ 30 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/video/n3ds/SDL_n3dsevents_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 22 | #ifndef SDL_n3dsevents_c_h_ 23 | #define SDL_n3dsevents_c_h_ 24 | 25 | #include "SDL_internal.h" 26 | 27 | extern void N3DS_PumpEvents(SDL_VideoDevice *_this); 28 | 29 | #endif // SDL_n3dsevents_c_h_ 30 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/video/n3ds/SDL_n3dstouch.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 22 | #ifndef SDL_n3dstouch_h_ 23 | #define SDL_n3dstouch_h_ 24 | 25 | void N3DS_InitTouch(void); 26 | void N3DS_QuitTouch(void); 27 | void N3DS_PollTouch(SDL_VideoDevice *_this); 28 | 29 | #endif // SDL_n3dstouch_h_ 30 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/video/ngage/SDL_ngageevents_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 22 | #include "SDL_internal.h" 23 | 24 | #include "SDL_ngagevideo.h" 25 | 26 | extern void NGAGE_PumpEvents(SDL_VideoDevice *_this); 27 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/video/offscreen/SDL_offscreenevents_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | extern void OFFSCREEN_PumpEvents(SDL_VideoDevice *_this); 24 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/video/offscreen/SDL_offscreenvideo.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | #ifndef SDL_offscreenvideo_h 24 | #define SDL_offscreenvideo_h 25 | 26 | #include "../SDL_sysvideo.h" 27 | 28 | #endif // SDL_offscreenvideo_h 29 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/video/psp/SDL_pspmouse_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 22 | #include "SDL_pspvideo.h" 23 | 24 | // Functions to be exported 25 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/video/raspberry/SDL_rpievents_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 22 | #ifndef SDL_rpievents_c_h_ 23 | #define SDL_rpievents_c_h_ 24 | 25 | #include "SDL_rpivideo.h" 26 | 27 | void RPI_PumpEvents(SDL_VideoDevice *_this); 28 | 29 | #endif // SDL_rpievents_c_h_ 30 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/video/riscos/SDL_riscosmessagebox.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | #ifdef SDL_VIDEO_DRIVER_RISCOS 24 | 25 | extern bool RISCOS_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonID); 26 | 27 | #endif // SDL_VIDEO_DRIVER_RISCOS 28 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/video/riscos/SDL_riscosmouse.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | #ifndef SDL_riscosmouse_h_ 24 | #define SDL_riscosmouse_h_ 25 | 26 | extern bool RISCOS_InitMouse(SDL_VideoDevice *_this); 27 | 28 | #endif // SDL_riscosmouse_h_ 29 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/video/vita/SDL_vitamouse_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 22 | #ifndef SDL_vitamouse_h 23 | #define SDL_vitamouse_h 24 | 25 | #include "SDL_internal.h" 26 | 27 | // mouse functions 28 | extern void VITA_InitMouse(void); 29 | extern void VITA_PollMouse(void); 30 | 31 | #endif // SDL_vitamouse_h 32 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/video/windows/SDL_windowsmessagebox.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | #ifdef SDL_VIDEO_DRIVER_WINDOWS 24 | 25 | extern bool WIN_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonID); 26 | 27 | #endif // SDL_VIDEO_DRIVER_WINDOWS 28 | -------------------------------------------------------------------------------- /ThirdParty/SDL/src/video/x11/SDL_x11shape.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2024 Sam Lantinga 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 | 23 | #ifndef SDL_x11shape_h_ 24 | #define SDL_x11shape_h_ 25 | 26 | extern bool X11_UpdateWindowShape(SDL_VideoDevice *_this, SDL_Window *window, SDL_Surface *shape); 27 | 28 | #endif // SDL_x11shape_h_ 29 | -------------------------------------------------------------------------------- /ThirdParty/SDL/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_LIMITED, 11 | YCBCR_2020_NCL_FULL, 12 | } YCbCrType; 13 | 14 | #endif /* YUV_RGB_COMMON_H_ */ 15 | -------------------------------------------------------------------------------- /ThirdParty/STB/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set (TARGET_NAME STB) 2 | 3 | add_library (${TARGET_NAME} INTERFACE) 4 | target_include_directories(${TARGET_NAME} INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) -------------------------------------------------------------------------------- /ThirdParty/Tracy/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set (TARGET_NAME Tracy) 2 | 3 | file (GLOB SOURCE_FILES *.cpp) 4 | 5 | if (TURSO3D_TRACY) 6 | add_definitions (-DTRACY_ENABLE) 7 | endif () 8 | 9 | add_library (${TARGET_NAME} ${SOURCE_FILES}) 10 | target_include_directories (${TARGET_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 11 | set_property(TARGET ${TARGET_NAME} PROPERTY FOLDER "ThirdParty") -------------------------------------------------------------------------------- /ThirdParty/Tracy/client/TracyAlloc.cpp: -------------------------------------------------------------------------------- 1 | #include "../common/TracyAlloc.hpp" 2 | 3 | #ifdef TRACY_USE_RPMALLOC 4 | 5 | #include 6 | 7 | #include "../common/TracyForceInline.hpp" 8 | #include "../common/TracyYield.hpp" 9 | 10 | namespace tracy 11 | { 12 | 13 | extern thread_local bool RpThreadInitDone; 14 | extern std::atomic RpInitDone; 15 | extern std::atomic RpInitLock; 16 | 17 | tracy_no_inline static void InitRpmallocPlumbing() 18 | { 19 | const auto done = RpInitDone.load( std::memory_order_acquire ); 20 | if( !done ) 21 | { 22 | int expected = 0; 23 | while( !RpInitLock.compare_exchange_weak( expected, 1, std::memory_order_release, std::memory_order_relaxed ) ) { expected = 0; YieldThread(); } 24 | const auto done = RpInitDone.load( std::memory_order_acquire ); 25 | if( !done ) 26 | { 27 | rpmalloc_initialize(); 28 | RpInitDone.store( 1, std::memory_order_release ); 29 | } 30 | RpInitLock.store( 0, std::memory_order_release ); 31 | } 32 | rpmalloc_thread_initialize(); 33 | RpThreadInitDone = true; 34 | } 35 | 36 | TRACY_API void InitRpmalloc() 37 | { 38 | if( !RpThreadInitDone ) InitRpmallocPlumbing(); 39 | } 40 | 41 | } 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /ThirdParty/Tracy/client/TracyCallstack.h: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYCALLSTACK_H__ 2 | #define __TRACYCALLSTACK_H__ 3 | 4 | #ifndef TRACY_NO_CALLSTACK 5 | 6 | # if !defined _WIN32 7 | # include 8 | # endif 9 | 10 | # if defined _WIN32 11 | # include "../common/TracyUwp.hpp" 12 | # ifndef TRACY_UWP 13 | # define TRACY_HAS_CALLSTACK 1 14 | # endif 15 | # elif defined __ANDROID__ 16 | # if !defined __arm__ || __ANDROID_API__ >= 21 17 | # define TRACY_HAS_CALLSTACK 2 18 | # else 19 | # define TRACY_HAS_CALLSTACK 5 20 | # endif 21 | # elif defined __linux 22 | # if defined _GNU_SOURCE && defined __GLIBC__ 23 | # define TRACY_HAS_CALLSTACK 3 24 | # else 25 | # define TRACY_HAS_CALLSTACK 2 26 | # endif 27 | # elif defined __APPLE__ 28 | # define TRACY_HAS_CALLSTACK 4 29 | # elif defined BSD 30 | # define TRACY_HAS_CALLSTACK 6 31 | # endif 32 | 33 | #endif 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /ThirdParty/Tracy/client/TracyCpuid.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYCPUID_HPP__ 2 | #define __TRACYCPUID_HPP__ 3 | 4 | // Prior to GCC 11 the cpuid.h header did not have any include guards and thus 5 | // including it more than once would cause a compiler error due to symbol 6 | // redefinitions. In order to support older GCC versions, we have to wrap this 7 | // include between custom include guards to prevent this issue. 8 | // See also https://github.com/wolfpld/tracy/issues/452 9 | 10 | #include 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /ThirdParty/Tracy/client/TracyDebug.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYPRINT_HPP__ 2 | #define __TRACYPRINT_HPP__ 3 | 4 | #ifdef TRACY_VERBOSE 5 | # include 6 | # define TracyDebug(...) fprintf( stderr, __VA_ARGS__ ); 7 | #else 8 | # define TracyDebug(...) 9 | #endif 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /ThirdParty/Tracy/client/TracyDxt1.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYDXT1_HPP__ 2 | #define __TRACYDXT1_HPP__ 3 | 4 | namespace tracy 5 | { 6 | 7 | void CompressImageDxt1( const char* src, char* dst, int w, int h ); 8 | 9 | } 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /ThirdParty/Tracy/client/TracyOverride.cpp: -------------------------------------------------------------------------------- 1 | #ifdef TRACY_ENABLE 2 | # ifdef __linux__ 3 | # include "TracyDebug.hpp" 4 | # ifdef TRACY_VERBOSE 5 | # include 6 | # include 7 | # endif 8 | 9 | extern "C" int dlclose( void* hnd ) 10 | { 11 | #ifdef TRACY_VERBOSE 12 | struct link_map* lm; 13 | if( dlinfo( hnd, RTLD_DI_LINKMAP, &lm ) == 0 ) 14 | { 15 | TracyDebug( "Overriding dlclose for %s\n", lm->l_name ); 16 | } 17 | else 18 | { 19 | TracyDebug( "Overriding dlclose for unknown object (%s)\n", dlerror() ); 20 | } 21 | #endif 22 | return 0; 23 | } 24 | 25 | # endif 26 | #endif 27 | -------------------------------------------------------------------------------- /ThirdParty/Tracy/client/TracyStringHelpers.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYSTRINGHELPERS_HPP__ 2 | #define __TRACYSTRINGHELPERS_HPP__ 3 | 4 | #include 5 | #include 6 | 7 | #include "../common/TracyAlloc.hpp" 8 | #include "../common/TracyForceInline.hpp" 9 | 10 | namespace tracy 11 | { 12 | 13 | static tracy_force_inline char* CopyString( const char* src, size_t sz ) 14 | { 15 | auto dst = (char*)tracy_malloc( sz + 1 ); 16 | memcpy( dst, src, sz ); 17 | dst[sz] = '\0'; 18 | return dst; 19 | } 20 | 21 | static tracy_force_inline char* CopyString( const char* src ) 22 | { 23 | return CopyString( src, strlen( src ) ); 24 | } 25 | 26 | static tracy_force_inline char* CopyStringFast( const char* src, size_t sz ) 27 | { 28 | auto dst = (char*)tracy_malloc_fast( sz + 1 ); 29 | memcpy( dst, src, sz ); 30 | dst[sz] = '\0'; 31 | return dst; 32 | } 33 | 34 | static tracy_force_inline char* CopyStringFast( const char* src ) 35 | { 36 | return CopyStringFast( src, strlen( src ) ); 37 | } 38 | 39 | } 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /ThirdParty/Tracy/client/TracySysPower.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYSYSPOWER_HPP__ 2 | #define __TRACYSYSPOWER_HPP__ 3 | 4 | #if defined __linux__ 5 | # define TRACY_HAS_SYSPOWER 6 | #endif 7 | 8 | #ifdef TRACY_HAS_SYSPOWER 9 | 10 | #include 11 | #include 12 | 13 | #include "TracyFastVector.hpp" 14 | 15 | namespace tracy 16 | { 17 | 18 | class SysPower 19 | { 20 | struct Domain 21 | { 22 | uint64_t value; 23 | uint64_t overflow; 24 | FILE* handle; 25 | const char* name; 26 | }; 27 | 28 | public: 29 | SysPower(); 30 | ~SysPower(); 31 | 32 | void Tick(); 33 | 34 | private: 35 | void ScanDirectory( const char* path, int parent ); 36 | 37 | FastVector m_domains; 38 | uint64_t m_lastTime; 39 | }; 40 | 41 | } 42 | #endif 43 | 44 | #endif 45 | -------------------------------------------------------------------------------- /ThirdParty/Tracy/client/TracySysTime.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYSYSTIME_HPP__ 2 | #define __TRACYSYSTIME_HPP__ 3 | 4 | #if defined _WIN32 || defined __linux__ || defined __APPLE__ 5 | # define TRACY_HAS_SYSTIME 6 | #else 7 | # include 8 | #endif 9 | 10 | #ifdef BSD 11 | # define TRACY_HAS_SYSTIME 12 | #endif 13 | 14 | #ifdef TRACY_HAS_SYSTIME 15 | 16 | #include 17 | 18 | namespace tracy 19 | { 20 | 21 | class SysTime 22 | { 23 | public: 24 | SysTime(); 25 | float Get(); 26 | 27 | void ReadTimes(); 28 | 29 | private: 30 | uint64_t idle, used; 31 | }; 32 | 33 | } 34 | #endif 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /ThirdParty/Tracy/client/TracySysTrace.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYSYSTRACE_HPP__ 2 | #define __TRACYSYSTRACE_HPP__ 3 | 4 | #if !defined TRACY_NO_SYSTEM_TRACING && ( defined _WIN32 || defined __linux__ ) 5 | # include "../common/TracyUwp.hpp" 6 | # ifndef TRACY_UWP 7 | # define TRACY_HAS_SYSTEM_TRACING 8 | # endif 9 | #endif 10 | 11 | #ifdef TRACY_HAS_SYSTEM_TRACING 12 | 13 | #include 14 | 15 | namespace tracy 16 | { 17 | 18 | bool SysTraceStart( int64_t& samplingPeriod ); 19 | void SysTraceStop(); 20 | void SysTraceWorker( void* ptr ); 21 | 22 | void SysTraceGetExternalName( uint64_t thread, const char*& threadName, const char*& name ); 23 | 24 | } 25 | 26 | #endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /ThirdParty/Tracy/common/TracyAlign.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYALIGN_HPP__ 2 | #define __TRACYALIGN_HPP__ 3 | 4 | #include 5 | 6 | #include "TracyForceInline.hpp" 7 | 8 | namespace tracy 9 | { 10 | 11 | template 12 | tracy_force_inline T MemRead( const void* ptr ) 13 | { 14 | T val; 15 | memcpy( &val, ptr, sizeof( T ) ); 16 | return val; 17 | } 18 | 19 | template 20 | tracy_force_inline void MemWrite( void* ptr, T val ) 21 | { 22 | memcpy( ptr, &val, sizeof( T ) ); 23 | } 24 | 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /ThirdParty/Tracy/common/TracyApi.h: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYAPI_H__ 2 | #define __TRACYAPI_H__ 3 | 4 | #if defined _WIN32 5 | # if defined TRACY_EXPORTS 6 | # define TRACY_API __declspec(dllexport) 7 | # elif defined TRACY_IMPORTS 8 | # define TRACY_API __declspec(dllimport) 9 | # else 10 | # define TRACY_API 11 | # endif 12 | #else 13 | # define TRACY_API __attribute__((visibility("default"))) 14 | #endif 15 | 16 | #endif // __TRACYAPI_H__ 17 | -------------------------------------------------------------------------------- /ThirdParty/Tracy/common/TracyForceInline.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYFORCEINLINE_HPP__ 2 | #define __TRACYFORCEINLINE_HPP__ 3 | 4 | #if defined(__GNUC__) 5 | # define tracy_force_inline __attribute__((always_inline)) inline 6 | #elif defined(_MSC_VER) 7 | # define tracy_force_inline __forceinline 8 | #else 9 | # define tracy_force_inline inline 10 | #endif 11 | 12 | #if defined(__GNUC__) 13 | # define tracy_no_inline __attribute__((noinline)) 14 | #elif defined(_MSC_VER) 15 | # define tracy_no_inline __declspec(noinline) 16 | #else 17 | # define tracy_no_inline 18 | #endif 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /ThirdParty/Tracy/common/TracyMutex.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYMUTEX_HPP__ 2 | #define __TRACYMUTEX_HPP__ 3 | 4 | #if defined _MSC_VER 5 | 6 | # include 7 | 8 | namespace tracy 9 | { 10 | using TracyMutex = std::shared_mutex; 11 | } 12 | 13 | #else 14 | 15 | #include 16 | 17 | namespace tracy 18 | { 19 | using TracyMutex = std::mutex; 20 | } 21 | 22 | #endif 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /ThirdParty/Tracy/common/TracyStackFrames.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYSTACKFRAMES_HPP__ 2 | #define __TRACYSTACKFRAMES_HPP__ 3 | 4 | #include 5 | 6 | namespace tracy 7 | { 8 | 9 | struct StringMatch 10 | { 11 | const char* str; 12 | size_t len; 13 | }; 14 | 15 | extern const char** s_tracyStackFrames; 16 | extern const StringMatch* s_tracySkipSubframes; 17 | 18 | static constexpr int s_tracySkipSubframesMinLen = 7; 19 | 20 | } 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /ThirdParty/Tracy/common/TracySystem.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYSYSTEM_HPP__ 2 | #define __TRACYSYSTEM_HPP__ 3 | 4 | #include 5 | 6 | #include "TracyApi.h" 7 | 8 | namespace tracy 9 | { 10 | 11 | namespace detail 12 | { 13 | TRACY_API uint32_t GetThreadHandleImpl(); 14 | } 15 | 16 | #ifdef TRACY_ENABLE 17 | TRACY_API uint32_t GetThreadHandle(); 18 | #else 19 | static inline uint32_t GetThreadHandle() 20 | { 21 | return detail::GetThreadHandleImpl(); 22 | } 23 | #endif 24 | 25 | TRACY_API void SetThreadName( const char* name ); 26 | TRACY_API const char* GetThreadName( uint32_t id ); 27 | 28 | TRACY_API const char* GetEnvVar(const char* name); 29 | 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /ThirdParty/Tracy/common/TracyUwp.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYUWP_HPP__ 2 | #define __TRACYUWP_HPP__ 3 | 4 | #ifdef _WIN32 5 | # include 6 | # if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) 7 | # define TRACY_UWP 8 | # endif 9 | #endif 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /ThirdParty/Tracy/common/TracyVersion.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYVERSION_HPP__ 2 | #define __TRACYVERSION_HPP__ 3 | 4 | namespace tracy 5 | { 6 | namespace Version 7 | { 8 | enum { Major = 0 }; 9 | enum { Minor = 10 }; 10 | enum { Patch = 0 }; 11 | } 12 | } 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /ThirdParty/Tracy/common/TracyYield.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYYIELD_HPP__ 2 | #define __TRACYYIELD_HPP__ 3 | 4 | #if defined __SSE2__ || defined _M_AMD64 || (defined _M_IX86_FP && _M_IX86_FP == 2) 5 | # include 6 | #else 7 | # include 8 | #endif 9 | 10 | #include "TracyForceInline.hpp" 11 | 12 | namespace tracy 13 | { 14 | 15 | static tracy_force_inline void YieldThread() 16 | { 17 | #if defined __SSE2__ || defined _M_AMD64 || (defined _M_IX86_FP && _M_IX86_FP == 2) 18 | _mm_pause(); 19 | #elif defined __aarch64__ 20 | asm volatile( "isb" : : ); 21 | #else 22 | std::this_thread::yield(); 23 | #endif 24 | } 25 | 26 | } 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /ThirdParty/Tracy/libbacktrace/config.h: -------------------------------------------------------------------------------- 1 | #include 2 | #if defined(__linux__) && !defined(__GLIBC__) && !defined(__WORDSIZE) 3 | // include __WORDSIZE headers for musl 4 | # include 5 | #endif 6 | #if __WORDSIZE == 64 7 | # define BACKTRACE_ELF_SIZE 64 8 | #else 9 | # define BACKTRACE_ELF_SIZE 32 10 | #endif 11 | 12 | #define HAVE_DLFCN_H 1 13 | #define HAVE_FCNTL 1 14 | #define HAVE_INTTYPES_H 1 15 | #define HAVE_LSTAT 1 16 | #define HAVE_READLINK 1 17 | #define HAVE_DL_ITERATE_PHDR 1 18 | #define HAVE_ATOMIC_FUNCTIONS 1 19 | #define HAVE_DECL_STRNLEN 1 20 | 21 | #ifdef __APPLE__ 22 | # define HAVE_MACH_O_DYLD_H 1 23 | #elif defined BSD 24 | # define HAVE_KERN_PROC 1 25 | # define HAVE_KERN_PROC_ARGS 1 26 | #endif 27 | -------------------------------------------------------------------------------- /Turso3D/IO/Arguments.h: -------------------------------------------------------------------------------- 1 | // For conditions of distribution and use, see copyright notice in License.txt 2 | 3 | #pragma once 4 | 5 | #include 6 | #include 7 | 8 | /// Parse arguments from the command line. First argument is by default assumed to be the executable name and is skipped. 9 | const std::vector& ParseArguments(const std::string& cmdLine); 10 | /// Parse arguments from the command line. 11 | const std::vector& ParseArguments(const char* cmdLine); 12 | /// Parse arguments from argc & argv. 13 | const std::vector& ParseArguments(int argc, char** argv); 14 | /// Return previously parsed arguments. 15 | const std::vector& Arguments(); 16 | -------------------------------------------------------------------------------- /Turso3D/IO/ObjectRef.h: -------------------------------------------------------------------------------- 1 | // For conditions of distribution and use, see copyright notice in License.txt 2 | 3 | #pragma once 4 | 5 | /// Reference to an object with id for serialization. 6 | struct ObjectRef 7 | { 8 | /// %Object id. 9 | unsigned id; 10 | 11 | /// Construct with no reference. 12 | ObjectRef() : 13 | id(0) 14 | { 15 | } 16 | 17 | // Copy-construct. 18 | ObjectRef(const ObjectRef& ref) : 19 | id(ref.id) 20 | { 21 | } 22 | 23 | /// Construct with object id. 24 | ObjectRef(unsigned id_) : 25 | id(id_) 26 | { 27 | } 28 | 29 | /// Test for equality with another reference. 30 | bool operator == (const ObjectRef& rhs) const { return id == rhs.id; } 31 | /// Test for inequality with another reference. 32 | bool operator != (const ObjectRef& rhs) const { return !(*this == rhs); } 33 | }; 34 | -------------------------------------------------------------------------------- /Turso3D/IO/StringHash.cpp: -------------------------------------------------------------------------------- 1 | // For conditions of distribution and use, see copyright notice in License.txt 2 | 3 | #include "StringHash.h" 4 | #include "StringUtils.h" 5 | 6 | #include 7 | #include 8 | 9 | const StringHash StringHash::ZERO; 10 | 11 | std::string StringHash::ToString() const 12 | { 13 | return FormatString("%08X", value); 14 | } 15 | 16 | unsigned StringHash::Calculate(const char* str) 17 | { 18 | unsigned hash = 0; 19 | while (*str) 20 | { 21 | hash = (tolower(*str)) + (hash << 6) + (hash << 16) - hash; 22 | ++str; 23 | } 24 | 25 | return hash; 26 | } 27 | -------------------------------------------------------------------------------- /Turso3D/Math/IntBox.cpp: -------------------------------------------------------------------------------- 1 | // For conditions of distribution and use, see copyright notice in License.txt 2 | 3 | #include "IntBox.h" 4 | #include "../IO/StringUtils.h" 5 | 6 | #include 7 | #include 8 | 9 | const IntBox IntBox::ZERO(0, 0, 0, 0, 0, 0); 10 | 11 | bool IntBox::FromString(const char* string) 12 | { 13 | size_t elements = CountElements(string); 14 | if (elements < 6) 15 | return false; 16 | 17 | char* ptr = const_cast(string); 18 | left = strtol(ptr, &ptr, 10); 19 | top = strtol(ptr, &ptr, 10); 20 | near = strtol(ptr, &ptr, 10); 21 | right = strtol(ptr, &ptr, 10); 22 | bottom = strtol(ptr, &ptr, 10); 23 | far = strtol(ptr, &ptr, 10); 24 | 25 | return true; 26 | } 27 | 28 | std::string IntBox::ToString() const 29 | { 30 | return FormatString("%d %d %d %d %d %d", left, top, near, right, bottom, far); 31 | } 32 | -------------------------------------------------------------------------------- /Turso3D/Math/IntRect.cpp: -------------------------------------------------------------------------------- 1 | // For conditions of distribution and use, see copyright notice in License.txt 2 | 3 | #include "IntRect.h" 4 | #include "../IO/StringUtils.h" 5 | 6 | #include 7 | #include 8 | 9 | const IntRect IntRect::ZERO(0, 0, 0, 0); 10 | 11 | bool IntRect::FromString(const char* string) 12 | { 13 | size_t elements = CountElements(string); 14 | if (elements < 4) 15 | return false; 16 | 17 | char* ptr = const_cast(string); 18 | left = strtol(ptr, &ptr, 10); 19 | top = strtol(ptr, &ptr, 10); 20 | right = strtol(ptr, &ptr, 10); 21 | bottom = strtol(ptr, &ptr, 10); 22 | 23 | return true; 24 | } 25 | 26 | std::string IntRect::ToString() const 27 | { 28 | return FormatString("%d %d %d %d", left, top, right, bottom); 29 | } 30 | -------------------------------------------------------------------------------- /Turso3D/Math/IntVector2.cpp: -------------------------------------------------------------------------------- 1 | // For conditions of distribution and use, see copyright notice in License.txt 2 | 3 | #include "IntVector2.h" 4 | #include "../IO/StringUtils.h" 5 | 6 | #include 7 | #include 8 | 9 | const IntVector2 IntVector2::ZERO(0, 0); 10 | 11 | bool IntVector2::FromString(const char* string) 12 | { 13 | size_t elements = CountElements(string); 14 | if (elements < 2) 15 | return false; 16 | 17 | char* ptr = const_cast(string); 18 | x = strtol(ptr, &ptr, 10); 19 | y = strtol(ptr, &ptr, 10); 20 | 21 | return true; 22 | } 23 | 24 | std::string IntVector2::ToString() const 25 | { 26 | return FormatString("%d %d", x, y); 27 | } 28 | 29 | -------------------------------------------------------------------------------- /Turso3D/Math/IntVector3.cpp: -------------------------------------------------------------------------------- 1 | // For conditions of distribution and use, see copyright notice in License.txt 2 | 3 | #include "IntVector3.h" 4 | #include "../IO/StringUtils.h" 5 | 6 | #include 7 | #include 8 | 9 | const IntVector3 IntVector3::ZERO(0, 0, 0); 10 | 11 | bool IntVector3::FromString(const std::string& str) 12 | { 13 | return FromString(str.c_str()); 14 | } 15 | 16 | bool IntVector3::FromString(const char* str) 17 | { 18 | size_t elements = CountElements(str, ' '); 19 | if (elements < 3) 20 | return false; 21 | 22 | char* ptr = (char*)str; 23 | x = strtol(ptr, &ptr, 10); 24 | y = strtol(ptr, &ptr, 10); 25 | z = strtol(ptr, &ptr, 10); 26 | 27 | return true; 28 | } 29 | 30 | std::string IntVector3::ToString() const 31 | { 32 | return FormatString("%d %d %d", x, y, z); 33 | } 34 | -------------------------------------------------------------------------------- /Turso3D/Math/Matrix3.cpp: -------------------------------------------------------------------------------- 1 | // For conditions of distribution and use, see copyright notice in License.txt 2 | 3 | #include "Matrix3.h" 4 | #include "../IO/StringUtils.h" 5 | 6 | #include 7 | #include 8 | 9 | const Matrix3 Matrix3::ZERO( 10 | 0.0f, 0.0f, 0.0f, 11 | 0.0f, 0.0f, 0.0f, 12 | 0.0f, 0.0f, 0.0f); 13 | 14 | const Matrix3 Matrix3::IDENTITY( 15 | 1.0f, 0.0f, 0.0f, 16 | 0.0f, 1.0f, 0.0f, 17 | 0.0f, 0.0f, 1.0f); 18 | 19 | bool Matrix3::FromString(const char* string) 20 | { 21 | size_t elements = CountElements(string); 22 | if (elements < 9) 23 | return false; 24 | 25 | char* ptr = const_cast(string); 26 | m00 = (float)strtod(ptr, &ptr); 27 | m01 = (float)strtod(ptr, &ptr); 28 | m02 = (float)strtod(ptr, &ptr); 29 | m10 = (float)strtod(ptr, &ptr); 30 | m11 = (float)strtod(ptr, &ptr); 31 | m12 = (float)strtod(ptr, &ptr); 32 | m20 = (float)strtod(ptr, &ptr); 33 | m21 = (float)strtod(ptr, &ptr); 34 | m22 = (float)strtod(ptr, &ptr); 35 | 36 | return true; 37 | } 38 | 39 | std::string Matrix3::ToString() const 40 | { 41 | return FormatString("%g %g %g %g %g %g %g %g %g", 42 | m00, m01, m02, 43 | m10, m11, m12, 44 | m20, m21, m22); 45 | } 46 | -------------------------------------------------------------------------------- /Turso3D/Math/Random.cpp: -------------------------------------------------------------------------------- 1 | // For conditions of distribution and use, see copyright notice in License.txt 2 | 3 | #include "Random.h" 4 | 5 | static unsigned randomSeed = 1; 6 | 7 | void SetRandomSeed(unsigned seed) 8 | { 9 | randomSeed = seed; 10 | } 11 | 12 | unsigned RandomSeed() 13 | { 14 | return randomSeed; 15 | } 16 | 17 | int Rand() 18 | { 19 | randomSeed = randomSeed * 214013 + 2531011; 20 | return (randomSeed >> 16) & 32767; 21 | } 22 | 23 | float RandStandardNormal() 24 | { 25 | float val = 0.0f; 26 | for (int i = 0; i < 12; i++) 27 | val += Rand() / 32768.0f; 28 | val -= 6.0f; 29 | 30 | // Now val is approximately standard normal distributed 31 | return val; 32 | } 33 | 34 | -------------------------------------------------------------------------------- /Turso3D/Math/Ray.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadaver/turso3d/ed395e9b252d3acf719e59ab297719975bd8d2b1/Turso3D/Math/Ray.cpp -------------------------------------------------------------------------------- /Turso3D/Math/Vector2.cpp: -------------------------------------------------------------------------------- 1 | // For conditions of distribution and use, see copyright notice in License.txt 2 | 3 | #include "Vector2.h" 4 | #include "../IO/StringUtils.h" 5 | 6 | #include 7 | #include 8 | 9 | const Vector2 Vector2::ZERO(0.0f, 0.0f); 10 | const Vector2 Vector2::LEFT(-1.0f, 0.0f); 11 | const Vector2 Vector2::RIGHT(1.0f, 0.0f); 12 | const Vector2 Vector2::UP(0.0f, 1.0f); 13 | const Vector2 Vector2::DOWN(0.0f, -1.0f); 14 | const Vector2 Vector2::ONE(1.0f, 1.0f); 15 | 16 | bool Vector2::FromString(const char* string) 17 | { 18 | size_t elements = CountElements(string); 19 | if (elements < 2) 20 | return false; 21 | 22 | char* ptr = const_cast(string); 23 | x = (float)strtod(ptr, &ptr); 24 | y = (float)strtod(ptr, &ptr); 25 | 26 | return true; 27 | } 28 | 29 | std::string Vector2::ToString() const 30 | { 31 | return FormatString("%g %g", x, y); 32 | } 33 | -------------------------------------------------------------------------------- /Turso3D/Math/Vector3.cpp: -------------------------------------------------------------------------------- 1 | // For conditions of distribution and use, see copyright notice in License.txt 2 | 3 | #include "Vector3.h" 4 | #include "../IO/StringUtils.h" 5 | 6 | #include 7 | #include 8 | 9 | const Vector3 Vector3::ZERO(0.0f, 0.0f, 0.0f); 10 | const Vector3 Vector3::LEFT(-1.0f, 0.0f, 0.0f); 11 | const Vector3 Vector3::RIGHT(1.0f, 0.0f, 0.0f); 12 | const Vector3 Vector3::UP(0.0f, 1.0f, 0.0f); 13 | const Vector3 Vector3::DOWN(0.0f, -1.0f, 0.0f); 14 | const Vector3 Vector3::FORWARD(0.0f, 0.0f, 1.0f); 15 | const Vector3 Vector3::BACK(0.0f, 0.0f, -1.0f); 16 | const Vector3 Vector3::ONE(1.0f, 1.0f, 1.0f); 17 | 18 | bool Vector3::FromString(const char* string) 19 | { 20 | size_t elements = CountElements(string); 21 | if (elements < 3) 22 | return false; 23 | 24 | char* ptr = const_cast(string); 25 | x = (float)strtod(ptr, &ptr); 26 | y = (float)strtod(ptr, &ptr); 27 | z = (float)strtod(ptr, &ptr); 28 | 29 | return true; 30 | } 31 | 32 | std::string Vector3::ToString() const 33 | { 34 | return FormatString("%g %g %g", x, y, z); 35 | } 36 | -------------------------------------------------------------------------------- /Turso3D/Math/Vector4.cpp: -------------------------------------------------------------------------------- 1 | // For conditions of distribution and use, see copyright notice in License.txt 2 | 3 | #include "Vector4.h" 4 | #include "../IO/StringUtils.h" 5 | 6 | #include 7 | #include 8 | 9 | const Vector4 Vector4::ZERO(0.0f, 0.0f, 0.0f, 0.0f); 10 | const Vector4 Vector4::ONE(1.0f, 1.0f, 1.0f, 1.0f); 11 | 12 | bool Vector4::FromString(const char* string) 13 | { 14 | size_t elements = CountElements(string); 15 | if (elements < 4) 16 | return false; 17 | 18 | char* ptr = const_cast(string); 19 | x = (float)strtod(ptr, &ptr); 20 | y = (float)strtod(ptr, &ptr); 21 | z = (float)strtod(ptr, &ptr); 22 | w = (float)strtod(ptr, &ptr); 23 | 24 | return true; 25 | } 26 | 27 | std::string Vector4::ToString() const 28 | { 29 | return FormatString("%g %g %g %g", x, y, z, w); 30 | } 31 | -------------------------------------------------------------------------------- /Turso3D/Object/ObjectResolver.cpp: -------------------------------------------------------------------------------- 1 | // For conditions of distribution and use, see copyright notice in License.txt 2 | 3 | #include "../IO/Log.h" 4 | #include "../IO/ObjectRef.h" 5 | #include "../IO/StringUtils.h" 6 | #include "ObjectResolver.h" 7 | #include "Serializable.h" 8 | 9 | void ObjectResolver::StoreObject(unsigned oldId, Serializable* object) 10 | { 11 | if (object) 12 | objects[oldId] = object; 13 | } 14 | 15 | void ObjectResolver::StoreObjectRef(Serializable* object, Attribute* attr, const ObjectRef& value) 16 | { 17 | if (object && attr && attr->Type() == ATTR_OBJECTREF) 18 | objectRefs.push_back(StoredObjectRef(object, attr, value.id)); 19 | } 20 | 21 | void ObjectResolver::Resolve() 22 | { 23 | for (auto it = objectRefs.begin(); it != objectRefs.end(); ++it) 24 | { 25 | auto refIt = objects.find(it->oldId); 26 | // See if we can find the referred object 27 | if (refIt != objects.end()) 28 | { 29 | AttributeImpl* typedAttr = static_cast*>(it->attr); 30 | typedAttr->SetValue(it->object, ObjectRef(refIt->second->Id())); 31 | } 32 | else 33 | LOGWARNING("Could not resolve object reference " + ToString(it->oldId)); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Turso3D/Resource/Decompress.h: -------------------------------------------------------------------------------- 1 | // For conditions of distribution and use, see copyright notice in License.txt 2 | 3 | #pragma once 4 | 5 | #include "Image.h" 6 | 7 | /// Decompress DXT1/3/5 image data. 8 | void DecompressImageDXT(unsigned char* dest, const void* blocks, int width, int height, ImageFormat format); 9 | /// Decompress ETC image data. 10 | void DecompressImageETC(unsigned char* dest, const void* blocks, int width, int height); 11 | /// Decompress PVRTC image data. 12 | void DecompressImagePVRTC(unsigned char* dest, const void* blocks, int width, int height, ImageFormat format); 13 | -------------------------------------------------------------------------------- /Turso3D/Resource/JSONFile.h: -------------------------------------------------------------------------------- 1 | // For conditions of distribution and use, see copyright notice in License.txt 2 | 3 | #pragma once 4 | 5 | #include "../IO/JSONValue.h" 6 | #include "Resource.h" 7 | 8 | class Stream; 9 | 10 | /// JSON document. Contains a root JSON value and can be read/written to file as text. 11 | class JSONFile : public Resource 12 | { 13 | OBJECT(JSONFile); 14 | 15 | public: 16 | /// Load from a stream as text. Return true on success. Will contain partial data on failure. 17 | bool BeginLoad(Stream& source) override; 18 | /// Save to a stream as text. Return true on success. 19 | bool Save(Stream& dest) override; 20 | 21 | /// Register object factory. 22 | static void RegisterObject(); 23 | 24 | /// Return the root value. 25 | JSONValue& Root() { return root; } 26 | /// Return the const root value. 27 | const JSONValue& Root() const { return root; } 28 | 29 | private: 30 | /// Root value. 31 | JSONValue root; 32 | }; 33 | -------------------------------------------------------------------------------- /Turso3D/Resource/Resource.cpp: -------------------------------------------------------------------------------- 1 | // For conditions of distribution and use, see copyright notice in License.txt 2 | 3 | #include "../IO/Log.h" 4 | #include "Resource.h" 5 | 6 | bool Resource::BeginLoad(Stream&) 7 | { 8 | return false; 9 | } 10 | 11 | bool Resource::EndLoad() 12 | { 13 | // Resources that do not need access to main-thread critical objects do not need to override this 14 | return true; 15 | } 16 | 17 | bool Resource::Save(Stream&) 18 | { 19 | LOGERROR("Save not supported for " + TypeName()); 20 | return false; 21 | } 22 | 23 | bool Resource::Load(Stream& source) 24 | { 25 | bool success = BeginLoad(source); 26 | if (success) 27 | success &= EndLoad(); 28 | 29 | return success; 30 | } 31 | 32 | void Resource::SetName(const std::string& newName) 33 | { 34 | name = newName; 35 | nameHash = StringHash(newName); 36 | } 37 | 38 | -------------------------------------------------------------------------------- /Turso3D/Thread/ThreadUtils.cpp: -------------------------------------------------------------------------------- 1 | #include "ThreadUtils.h" 2 | 3 | #include 4 | 5 | std::thread::id mainThreadId = std::this_thread::get_id(); 6 | 7 | bool IsMainThread() 8 | { 9 | return std::this_thread::get_id() == mainThreadId; 10 | } 11 | 12 | unsigned CPUCount() 13 | { 14 | return std::thread::hardware_concurrency(); 15 | } -------------------------------------------------------------------------------- /Turso3D/Thread/ThreadUtils.h: -------------------------------------------------------------------------------- 1 | // For conditions of distribution and use, see copyright notice in License.txt 2 | 3 | #pragma once 4 | 5 | // Check if is running in the main thread. 6 | bool IsMainThread(); 7 | // Return hardware CPU count, for determining e.g. amount of worker threads. 8 | unsigned CPUCount(); 9 | -------------------------------------------------------------------------------- /Turso3D/Time/TimeUtils.cpp: -------------------------------------------------------------------------------- 1 | // For conditions of distribution and use, see copyright notice in License.txt 2 | 3 | #include "TimeUtils.h" 4 | #include "../IO/StringUtils.h" 5 | 6 | #include 7 | 8 | #ifdef _WIN32 9 | #include 10 | #include 11 | #else 12 | #include 13 | #include 14 | #endif 15 | 16 | std::string TimeStamp() 17 | { 18 | time_t sysTime; 19 | time(&sysTime); 20 | 21 | std::string ret(ctime(&sysTime)); 22 | return Replace(ret, "\n", ""); 23 | } 24 | 25 | unsigned CurrentTime() 26 | { 27 | return (unsigned)time(NULL); 28 | } 29 | -------------------------------------------------------------------------------- /Turso3D/Time/TimeUtils.h: -------------------------------------------------------------------------------- 1 | // For conditions of distribution and use, see copyright notice in License.txt 2 | 3 | #pragma once 4 | 5 | #include 6 | 7 | /// Return a date/time stamp as a string. 8 | std::string TimeStamp(); 9 | /// Return current time as seconds since epoch. 10 | unsigned CurrentTime(); 11 | -------------------------------------------------------------------------------- /Turso3DTest/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # For conditions of distribution and use, see copyright notice in License.txt 2 | 3 | set (TARGET_NAME Turso3DTest) 4 | 5 | file (GLOB SOURCE_FILES *.h *.cpp) 6 | 7 | add_definitions (-DGLEW_STATIC -DSDL_MAIN_HANDLED) 8 | 9 | if (TURSO3D_TRACY) 10 | add_definitions (-DTRACY_ENABLE) 11 | endif () 12 | 13 | add_executable (${TARGET_NAME} ${SOURCE_FILES}) 14 | 15 | target_link_libraries (${TARGET_NAME} SDL3-static Turso3D GLEW Tracy) 16 | 17 | if (WIN32) 18 | target_link_libraries (${TARGET_NAME} winmm imm32 ole32 oleaut32 setupapi version uuid opengl32) 19 | elseif (APPLE) 20 | target_link_libraries (${TARGET_NAME} "-framework Carbon" "-framework Cocoa" "-framework OpenGL") 21 | else () 22 | target_link_libraries (${TARGET_NAME} -lGL -lpthread) 23 | endif () 24 | -------------------------------------------------------------------------------- /cmake_mingw.bat: -------------------------------------------------------------------------------- 1 | cmake -B ".build/mingw" -G "MinGW Makefiles" %* . -------------------------------------------------------------------------------- /cmake_unix.sh: -------------------------------------------------------------------------------- 1 | cmake -B ".build/unix" -G "Unix Makefiles" %* . -------------------------------------------------------------------------------- /cmake_vs2017.bat: -------------------------------------------------------------------------------- 1 | cmake -B ".build/vs2017" -G "Visual Studio 15" %* . -------------------------------------------------------------------------------- /cmake_vs2019.bat: -------------------------------------------------------------------------------- 1 | cmake -B ".build/vs2019_x64" -G "Visual Studio 16" %* . -------------------------------------------------------------------------------- /cmake_vs2022.bat: -------------------------------------------------------------------------------- 1 | cmake -B ".build/vs2022_x64" -G "Visual Studio 17" -A x64 %* . --------------------------------------------------------------------------------