Browse Source

macOS: Update SDL2 to 2.28.5

Sasha Szpakowski 2 years ago
parent
commit
35d07d05c2
74 changed files with 4608 additions and 2457 deletions
  1. 38 37
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL.h
  2. 12 14
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_assert.h
  3. 24 5
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_atomic.h
  4. 55 19
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_audio.h
  5. 4 4
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_bits.h
  6. 8 10
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_blendmode.h
  7. 51 4
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_clipboard.h
  8. 16 12
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_config.h
  9. 5 8
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_config_macosx.h
  10. 1 1
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_copying.h
  11. 43 8
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_cpuinfo.h
  12. 41 10
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_endian.h
  13. 4 4
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_error.h
  14. 46 15
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_events.h
  15. 9 5
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_filesystem.h
  16. 90 17
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_gamecontroller.h
  17. 7 7
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_gesture.h
  18. 100 0
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_guid.h
  19. 6 6
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_haptic.h
  20. 4 4
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_hidapi.h
  21. 578 65
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_hints.h
  22. 140 17
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_joystick.h
  23. 45 8
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_keyboard.h
  24. 10 5
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_keycode.h
  25. 5 5
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_loadso.h
  26. 5 5
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_locale.h
  27. 6 6
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_log.h
  28. 53 6
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_main.h
  29. 5 5
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_messagebox.h
  30. 6 5
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_metal.h
  31. 4 4
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_misc.h
  32. 24 14
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_mouse.h
  33. 84 10
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_mutex.h
  34. 1 1
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_name.h
  35. 4 55
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_opengl.h
  36. 706 91
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_opengl_glext.h
  37. 2 2
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_opengles.h
  38. 6 6
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_opengles2.h
  39. 374 339
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_opengles2_gl2.h
  40. 816 1198
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_opengles2_gl2ext.h
  41. 6 9
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_opengles2_gl2platform.h
  42. 43 14
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_opengles2_khrplatform.h
  43. 5 5
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_pixels.h
  44. 35 9
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_platform.h
  45. 11 12
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_power.h
  46. 3 3
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_quit.h
  47. 161 9
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_rect.h
  48. 62 24
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_render.h
  49. 4 0
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_revision.h
  50. 6 20
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_rwops.h
  51. 48 23
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_scancode.h
  52. 30 9
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_sensor.h
  53. 8 8
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_shape.h
  54. 142 23
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_stdinc.h
  55. 11 9
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_surface.h
  56. 73 13
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_system.h
  57. 14 8
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_syswm.h
  58. 12 12
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_thread.h
  59. 5 5
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_timer.h
  60. 14 6
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_touch.h
  61. 2 2
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_types.h
  62. 23 7
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_version.h
  63. 108 18
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_video.h
  64. 3 3
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_vulkan.h
  65. 12 12
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/begin_code.h
  66. 3 3
      macOS/Frameworks/SDL2.framework/Versions/A/Headers/close_code.h
  67. 48 0
      macOS/Frameworks/SDL2.framework/Versions/A/Resources/CMake/sdl2-config-version.cmake
  68. 71 0
      macOS/Frameworks/SDL2.framework/Versions/A/Resources/CMake/sdl2-config.cmake
  69. 10 10
      macOS/Frameworks/SDL2.framework/Versions/A/Resources/Info.plist
  70. 1 1
      macOS/Frameworks/SDL2.framework/Versions/A/Resources/License.txt
  71. 13 1
      macOS/Frameworks/SDL2.framework/Versions/A/Resources/ReadMe.txt
  72. BIN
      macOS/Frameworks/SDL2.framework/Versions/A/Resources/default.metallib
  73. BIN
      macOS/Frameworks/SDL2.framework/Versions/A/SDL2
  74. 183 142
      macOS/Frameworks/SDL2.framework/Versions/A/_CodeSignature/CodeResources

+ 38 - 37
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -29,41 +29,42 @@
 #ifndef SDL_h_
 #ifndef SDL_h_
 #define SDL_h_
 #define SDL_h_
 
 
-#include "SDL_main.h"
-#include "SDL_stdinc.h"
-#include "SDL_assert.h"
-#include "SDL_atomic.h"
-#include "SDL_audio.h"
-#include "SDL_clipboard.h"
-#include "SDL_cpuinfo.h"
-#include "SDL_endian.h"
-#include "SDL_error.h"
-#include "SDL_events.h"
-#include "SDL_filesystem.h"
-#include "SDL_gamecontroller.h"
-#include "SDL_haptic.h"
-#include "SDL_hidapi.h"
-#include "SDL_hints.h"
-#include "SDL_joystick.h"
-#include "SDL_loadso.h"
-#include "SDL_log.h"
-#include "SDL_messagebox.h"
-#include "SDL_metal.h"
-#include "SDL_mutex.h"
-#include "SDL_power.h"
-#include "SDL_render.h"
-#include "SDL_rwops.h"
-#include "SDL_sensor.h"
-#include "SDL_shape.h"
-#include "SDL_system.h"
-#include "SDL_thread.h"
-#include "SDL_timer.h"
-#include "SDL_version.h"
-#include "SDL_video.h"
-#include "SDL_locale.h"
-#include "SDL_misc.h"
-
-#include "begin_code.h"
+#include <SDL2/SDL_main.h>
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_assert.h>
+#include <SDL2/SDL_atomic.h>
+#include <SDL2/SDL_audio.h>
+#include <SDL2/SDL_clipboard.h>
+#include <SDL2/SDL_cpuinfo.h>
+#include <SDL2/SDL_endian.h>
+#include <SDL2/SDL_error.h>
+#include <SDL2/SDL_events.h>
+#include <SDL2/SDL_filesystem.h>
+#include <SDL2/SDL_gamecontroller.h>
+#include <SDL2/SDL_guid.h>
+#include <SDL2/SDL_haptic.h>
+#include <SDL2/SDL_hidapi.h>
+#include <SDL2/SDL_hints.h>
+#include <SDL2/SDL_joystick.h>
+#include <SDL2/SDL_loadso.h>
+#include <SDL2/SDL_log.h>
+#include <SDL2/SDL_messagebox.h>
+#include <SDL2/SDL_metal.h>
+#include <SDL2/SDL_mutex.h>
+#include <SDL2/SDL_power.h>
+#include <SDL2/SDL_render.h>
+#include <SDL2/SDL_rwops.h>
+#include <SDL2/SDL_sensor.h>
+#include <SDL2/SDL_shape.h>
+#include <SDL2/SDL_system.h>
+#include <SDL2/SDL_thread.h>
+#include <SDL2/SDL_timer.h>
+#include <SDL2/SDL_version.h>
+#include <SDL2/SDL_video.h>
+#include <SDL2/SDL_locale.h>
+#include <SDL2/SDL_misc.h>
+
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -225,7 +226,7 @@ extern DECLSPEC void SDLCALL SDL_Quit(void);
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_h_ */
 #endif /* SDL_h_ */
 
 

+ 12 - 14
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_assert.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -22,9 +22,9 @@
 #ifndef SDL_assert_h_
 #ifndef SDL_assert_h_
 #define SDL_assert_h_
 #define SDL_assert_h_
 
 
-#include "SDL_config.h"
+#include <SDL2/SDL_stdinc.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -51,8 +51,12 @@ assert can have unique static variables associated with it.
 /* Don't include intrin.h here because it contains C++ code */
 /* Don't include intrin.h here because it contains C++ code */
     extern void __cdecl __debugbreak(void);
     extern void __cdecl __debugbreak(void);
     #define SDL_TriggerBreakpoint() __debugbreak()
     #define SDL_TriggerBreakpoint() __debugbreak()
+#elif _SDL_HAS_BUILTIN(__builtin_debugtrap)
+    #define SDL_TriggerBreakpoint() __builtin_debugtrap()
 #elif ( (!defined(__NACL__)) && ((defined(__GNUC__) || defined(__clang__)) && (defined(__i386__) || defined(__x86_64__))) )
 #elif ( (!defined(__NACL__)) && ((defined(__GNUC__) || defined(__clang__)) && (defined(__i386__) || defined(__x86_64__))) )
     #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "int $3\n\t" )
     #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "int $3\n\t" )
+#elif (defined(__GNUC__) || defined(__clang__)) && defined(__riscv)
+    #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "ebreak\n\t" )
 #elif ( defined(__APPLE__) && (defined(__arm64__) || defined(__aarch64__)) )  /* this might work on other ARM targets, but this is a known quantity... */
 #elif ( defined(__APPLE__) && (defined(__arm64__) || defined(__aarch64__)) )  /* this might work on other ARM targets, but this is a known quantity... */
     #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "brk #22\n\t" )
     #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "brk #22\n\t" )
 #elif defined(__APPLE__) && defined(__arm__)
 #elif defined(__APPLE__) && defined(__arm__)
@@ -69,7 +73,7 @@ assert can have unique static variables associated with it.
 
 
 #if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 supports __func__ as a standard. */
 #if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 supports __func__ as a standard. */
 #   define SDL_FUNCTION __func__
 #   define SDL_FUNCTION __func__
-#elif ((__GNUC__ >= 2) || defined(_MSC_VER) || defined (__WATCOMC__))
+#elif ((defined(__GNUC__) && (__GNUC__ >= 2)) || defined(_MSC_VER) || defined (__WATCOMC__))
 #   define SDL_FUNCTION __FUNCTION__
 #   define SDL_FUNCTION __FUNCTION__
 #else
 #else
 #   define SDL_FUNCTION "???"
 #   define SDL_FUNCTION "???"
@@ -123,12 +127,10 @@ typedef struct SDL_AssertData
     const struct SDL_AssertData *next;
     const struct SDL_AssertData *next;
 } SDL_AssertData;
 } SDL_AssertData;
 
 
-#if (SDL_ASSERT_LEVEL > 0)
-
 /* Never call this directly. Use the SDL_assert* macros. */
 /* Never call this directly. Use the SDL_assert* macros. */
 extern DECLSPEC SDL_AssertState SDLCALL SDL_ReportAssertion(SDL_AssertData *,
 extern DECLSPEC SDL_AssertState SDLCALL SDL_ReportAssertion(SDL_AssertData *,
-                                                             const char *,
-                                                             const char *, int)
+                                                            const char *,
+                                                            const char *, int)
 #if defined(__clang__)
 #if defined(__clang__)
 #if __has_feature(attribute_analyzer_noreturn)
 #if __has_feature(attribute_analyzer_noreturn)
 /* this tells Clang's static analysis that we're a custom assert function,
 /* this tells Clang's static analysis that we're a custom assert function,
@@ -149,9 +151,7 @@ extern DECLSPEC SDL_AssertState SDLCALL SDL_ReportAssertion(SDL_AssertData *,
 #define SDL_enabled_assert(condition) \
 #define SDL_enabled_assert(condition) \
     do { \
     do { \
         while ( !(condition) ) { \
         while ( !(condition) ) { \
-            static struct SDL_AssertData sdl_assert_data = { \
-                0, 0, #condition, 0, 0, 0, 0 \
-            }; \
+            static struct SDL_AssertData sdl_assert_data = { 0, 0, #condition, 0, 0, 0, 0 }; \
             const SDL_AssertState sdl_assert_state = SDL_ReportAssertion(&sdl_assert_data, SDL_FUNCTION, SDL_FILE, SDL_LINE); \
             const SDL_AssertState sdl_assert_state = SDL_ReportAssertion(&sdl_assert_data, SDL_FUNCTION, SDL_FILE, SDL_LINE); \
             if (sdl_assert_state == SDL_ASSERTION_RETRY) { \
             if (sdl_assert_state == SDL_ASSERTION_RETRY) { \
                 continue; /* go again. */ \
                 continue; /* go again. */ \
@@ -162,8 +162,6 @@ extern DECLSPEC SDL_AssertState SDLCALL SDL_ReportAssertion(SDL_AssertData *,
         } \
         } \
     } while (SDL_NULL_WHILE_LOOP_CONDITION)
     } while (SDL_NULL_WHILE_LOOP_CONDITION)
 
 
-#endif  /* enabled assertions support code */
-
 /* Enable various levels of assertions. */
 /* Enable various levels of assertions. */
 #if SDL_ASSERT_LEVEL == 0   /* assertions disabled */
 #if SDL_ASSERT_LEVEL == 0   /* assertions disabled */
 #   define SDL_assert(condition) SDL_disabled_assert(condition)
 #   define SDL_assert(condition) SDL_disabled_assert(condition)
@@ -317,7 +315,7 @@ extern DECLSPEC void SDLCALL SDL_ResetAssertionReport(void);
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_assert_h_ */
 #endif /* SDL_assert_h_ */
 
 

+ 24 - 5
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_atomic.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -59,10 +59,10 @@
 #ifndef SDL_atomic_h_
 #ifndef SDL_atomic_h_
 #define SDL_atomic_h_
 #define SDL_atomic_h_
 
 
-#include "SDL_stdinc.h"
-#include "SDL_platform.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_platform.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 
 
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
@@ -237,6 +237,25 @@ typedef void (*SDL_KernelMemoryBarrierFunc)();
 #endif
 #endif
 #endif
 #endif
 
 
+/* "REP NOP" is PAUSE, coded for tools that don't know it by that name. */
+#if (defined(__GNUC__) || defined(__clang__)) && (defined(__i386__) || defined(__x86_64__))
+    #define SDL_CPUPauseInstruction() __asm__ __volatile__("pause\n")  /* Some assemblers can't do REP NOP, so go with PAUSE. */
+#elif (defined(__arm__) && defined(__ARM_ARCH) && __ARM_ARCH >= 7) || defined(__aarch64__)
+    #define SDL_CPUPauseInstruction() __asm__ __volatile__("yield" ::: "memory")
+#elif (defined(__powerpc__) || defined(__powerpc64__))
+    #define SDL_CPUPauseInstruction() __asm__ __volatile__("or 27,27,27");
+#elif defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64))
+    #define SDL_CPUPauseInstruction() _mm_pause()  /* this is actually "rep nop" and not a SIMD instruction. No inline asm in MSVC x86-64! */
+#elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64))
+    #define SDL_CPUPauseInstruction() __yield()
+#elif defined(__WATCOMC__) && defined(__386__)
+    extern __inline void SDL_CPUPauseInstruction(void);
+    #pragma aux SDL_CPUPauseInstruction = ".686p" ".xmm2" "pause"
+#else
+    #define SDL_CPUPauseInstruction()
+#endif
+
+
 /**
 /**
  * \brief A type representing an atomic integer value.  It is a struct
  * \brief A type representing an atomic integer value.  It is a struct
  *        so people don't accidentally use numeric operations on it.
  *        so people don't accidentally use numeric operations on it.
@@ -388,7 +407,7 @@ extern DECLSPEC void* SDLCALL SDL_AtomicGetPtr(void **a);
 }
 }
 #endif
 #endif
 
 
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_atomic_h_ */
 #endif /* SDL_atomic_h_ */
 
 

+ 55 - 19
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_audio.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -30,14 +30,14 @@
 #ifndef SDL_audio_h_
 #ifndef SDL_audio_h_
 #define SDL_audio_h_
 #define SDL_audio_h_
 
 
-#include "SDL_stdinc.h"
-#include "SDL_error.h"
-#include "SDL_endian.h"
-#include "SDL_mutex.h"
-#include "SDL_thread.h"
-#include "SDL_rwops.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_error.h>
+#include <SDL2/SDL_endian.h>
+#include <SDL2/SDL_mutex.h>
+#include <SDL2/SDL_thread.h>
+#include <SDL2/SDL_rwops.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -169,13 +169,13 @@ typedef void (SDLCALL * SDL_AudioCallback) (void *userdata, Uint8 * stream,
  *  The calculated values in this structure are calculated by SDL_OpenAudio().
  *  The calculated values in this structure are calculated by SDL_OpenAudio().
  *
  *
  *  For multi-channel audio, the default SDL channel mapping is:
  *  For multi-channel audio, the default SDL channel mapping is:
- *  2:  FL FR                       (stereo)
- *  3:  FL FR LFE                   (2.1 surround)
- *  4:  FL FR BL BR                 (quad)
- *  5:  FL FR FC BL BR              (quad + center)
- *  6:  FL FR FC LFE SL SR          (5.1 surround - last two can also be BL BR)
- *  7:  FL FR FC LFE BC SL SR       (6.1 surround)
- *  8:  FL FR FC LFE BL BR SL SR    (7.1 surround)
+ *  2:  FL  FR                          (stereo)
+ *  3:  FL  FR LFE                      (2.1 surround)
+ *  4:  FL  FR  BL  BR                  (quad)
+ *  5:  FL  FR LFE  BL  BR              (4.1 surround)
+ *  6:  FL  FR  FC LFE  SL  SR          (5.1 surround - last two can also be BL BR)
+ *  7:  FL  FR  FC LFE  BC  SL  SR      (6.1 surround)
+ *  8:  FL  FR  FC LFE  BL  BR  SL  SR  (7.1 surround)
  */
  */
 typedef struct SDL_AudioSpec
 typedef struct SDL_AudioSpec
 {
 {
@@ -487,6 +487,7 @@ extern DECLSPEC int SDLCALL SDL_GetNumAudioDevices(int iscapture);
  * \since This function is available since SDL 2.0.0.
  * \since This function is available since SDL 2.0.0.
  *
  *
  * \sa SDL_GetNumAudioDevices
  * \sa SDL_GetNumAudioDevices
+ * \sa SDL_GetDefaultAudioInfo
  */
  */
 extern DECLSPEC const char *SDLCALL SDL_GetAudioDeviceName(int index,
 extern DECLSPEC const char *SDLCALL SDL_GetAudioDeviceName(int index,
                                                            int iscapture);
                                                            int iscapture);
@@ -500,9 +501,7 @@ extern DECLSPEC const char *SDLCALL SDL_GetAudioDeviceName(int index,
  * hardware.
  * hardware.
  *
  *
  * `spec` will be filled with the sample rate, sample format, and channel
  * `spec` will be filled with the sample rate, sample format, and channel
- * count. All other values in the structure are filled with 0. When the
- * supported struct members are 0, SDL was unable to get the property from the
- * backend.
+ * count.
  *
  *
  * \param index the index of the audio device; valid values range from 0 to
  * \param index the index of the audio device; valid values range from 0 to
  *              SDL_GetNumAudioDevices() - 1
  *              SDL_GetNumAudioDevices() - 1
@@ -514,12 +513,48 @@ extern DECLSPEC const char *SDLCALL SDL_GetAudioDeviceName(int index,
  * \since This function is available since SDL 2.0.16.
  * \since This function is available since SDL 2.0.16.
  *
  *
  * \sa SDL_GetNumAudioDevices
  * \sa SDL_GetNumAudioDevices
+ * \sa SDL_GetDefaultAudioInfo
  */
  */
 extern DECLSPEC int SDLCALL SDL_GetAudioDeviceSpec(int index,
 extern DECLSPEC int SDLCALL SDL_GetAudioDeviceSpec(int index,
                                                    int iscapture,
                                                    int iscapture,
                                                    SDL_AudioSpec *spec);
                                                    SDL_AudioSpec *spec);
 
 
 
 
+/**
+ * Get the name and preferred format of the default audio device.
+ *
+ * Some (but not all!) platforms have an isolated mechanism to get information
+ * about the "default" device. This can actually be a completely different
+ * device that's not in the list you get from SDL_GetAudioDeviceSpec(). It can
+ * even be a network address! (This is discussed in SDL_OpenAudioDevice().)
+ *
+ * As a result, this call is not guaranteed to be performant, as it can query
+ * the sound server directly every time, unlike the other query functions. You
+ * should call this function sparingly!
+ *
+ * `spec` will be filled with the sample rate, sample format, and channel
+ * count, if a default device exists on the system. If `name` is provided,
+ * will be filled with either a dynamically-allocated UTF-8 string or NULL.
+ *
+ * \param name A pointer to be filled with the name of the default device (can
+ *             be NULL). Please call SDL_free() when you are done with this
+ *             pointer!
+ * \param spec The SDL_AudioSpec to be initialized by this function.
+ * \param iscapture non-zero to query the default recording device, zero to
+ *                  query the default output device.
+ * \returns 0 on success, nonzero on error
+ *
+ * \since This function is available since SDL 2.24.0.
+ *
+ * \sa SDL_GetAudioDeviceName
+ * \sa SDL_GetAudioDeviceSpec
+ * \sa SDL_OpenAudioDevice
+ */
+extern DECLSPEC int SDLCALL SDL_GetDefaultAudioInfo(char **name,
+                                                    SDL_AudioSpec *spec,
+                                                    int iscapture);
+
+
 /**
 /**
  * Open a specific audio device.
  * Open a specific audio device.
  *
  *
@@ -586,6 +621,7 @@ extern DECLSPEC int SDLCALL SDL_GetAudioDeviceSpec(int index,
  * - `SDL_AUDIO_ALLOW_FREQUENCY_CHANGE`
  * - `SDL_AUDIO_ALLOW_FREQUENCY_CHANGE`
  * - `SDL_AUDIO_ALLOW_FORMAT_CHANGE`
  * - `SDL_AUDIO_ALLOW_FORMAT_CHANGE`
  * - `SDL_AUDIO_ALLOW_CHANNELS_CHANGE`
  * - `SDL_AUDIO_ALLOW_CHANNELS_CHANGE`
+ * - `SDL_AUDIO_ALLOW_SAMPLES_CHANGE`
  * - `SDL_AUDIO_ALLOW_ANY_CHANGE`
  * - `SDL_AUDIO_ALLOW_ANY_CHANGE`
  *
  *
  * These flags specify how SDL should behave when a device cannot offer a
  * These flags specify how SDL should behave when a device cannot offer a
@@ -1457,7 +1493,7 @@ extern DECLSPEC void SDLCALL SDL_CloseAudioDevice(SDL_AudioDeviceID dev);
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_audio_h_ */
 #endif /* SDL_audio_h_ */
 
 

+ 4 - 4
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_bits.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,9 +28,9 @@
 #ifndef SDL_bits_h_
 #ifndef SDL_bits_h_
 #define SDL_bits_h_
 #define SDL_bits_h_
 
 
-#include "SDL_stdinc.h"
+#include <SDL2/SDL_stdinc.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -119,7 +119,7 @@ SDL_HasExactlyOneBitSet32(Uint32 x)
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_bits_h_ */
 #endif /* SDL_bits_h_ */
 
 

+ 8 - 10
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_blendmode.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,7 +28,7 @@
 #ifndef SDL_blendmode_h_
 #ifndef SDL_blendmode_h_
 #define SDL_blendmode_h_
 #define SDL_blendmode_h_
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -52,7 +52,7 @@ typedef enum
                                               dstA = dstA */
                                               dstA = dstA */
     SDL_BLENDMODE_MUL = 0x00000008,      /**< color multiply
     SDL_BLENDMODE_MUL = 0x00000008,      /**< color multiply
                                               dstRGB = (srcRGB * dstRGB) + (dstRGB * (1-srcA))
                                               dstRGB = (srcRGB * dstRGB) + (dstRGB * (1-srcA))
-                                              dstA = (srcA * dstA) + (dstA * (1-srcA)) */
+                                              dstA = dstA */
     SDL_BLENDMODE_INVALID = 0x7FFFFFFF
     SDL_BLENDMODE_INVALID = 0x7FFFFFFF
 
 
     /* Additional custom blend modes can be returned by SDL_ComposeCustomBlendMode() */
     /* Additional custom blend modes can be returned by SDL_ComposeCustomBlendMode() */
@@ -67,9 +67,8 @@ typedef enum
     SDL_BLENDOPERATION_ADD              = 0x1,  /**< dst + src: supported by all renderers */
     SDL_BLENDOPERATION_ADD              = 0x1,  /**< dst + src: supported by all renderers */
     SDL_BLENDOPERATION_SUBTRACT         = 0x2,  /**< dst - src : supported by D3D9, D3D11, OpenGL, OpenGLES */
     SDL_BLENDOPERATION_SUBTRACT         = 0x2,  /**< dst - src : supported by D3D9, D3D11, OpenGL, OpenGLES */
     SDL_BLENDOPERATION_REV_SUBTRACT     = 0x3,  /**< src - dst : supported by D3D9, D3D11, OpenGL, OpenGLES */
     SDL_BLENDOPERATION_REV_SUBTRACT     = 0x3,  /**< src - dst : supported by D3D9, D3D11, OpenGL, OpenGLES */
-    SDL_BLENDOPERATION_MINIMUM          = 0x4,  /**< min(dst, src) : supported by D3D11 */
-    SDL_BLENDOPERATION_MAXIMUM          = 0x5   /**< max(dst, src) : supported by D3D11 */
-
+    SDL_BLENDOPERATION_MINIMUM          = 0x4,  /**< min(dst, src) : supported by D3D9, D3D11 */
+    SDL_BLENDOPERATION_MAXIMUM          = 0x5   /**< max(dst, src) : supported by D3D9, D3D11 */
 } SDL_BlendOperation;
 } SDL_BlendOperation;
 
 
 /**
 /**
@@ -87,7 +86,6 @@ typedef enum
     SDL_BLENDFACTOR_ONE_MINUS_DST_COLOR = 0x8,  /**< 1-dstR, 1-dstG, 1-dstB, 1-dstA */
     SDL_BLENDFACTOR_ONE_MINUS_DST_COLOR = 0x8,  /**< 1-dstR, 1-dstG, 1-dstB, 1-dstA */
     SDL_BLENDFACTOR_DST_ALPHA           = 0x9,  /**< dstA, dstA, dstA, dstA */
     SDL_BLENDFACTOR_DST_ALPHA           = 0x9,  /**< dstA, dstA, dstA, dstA */
     SDL_BLENDFACTOR_ONE_MINUS_DST_ALPHA = 0xA   /**< 1-dstA, 1-dstA, 1-dstA, 1-dstA */
     SDL_BLENDFACTOR_ONE_MINUS_DST_ALPHA = 0xA   /**< 1-dstA, 1-dstA, 1-dstA, 1-dstA */
-
 } SDL_BlendFactor;
 } SDL_BlendFactor;
 
 
 /**
 /**
@@ -135,10 +133,10 @@ typedef enum
  * SDL 2.0.6. All renderers support the four blend modes listed in the
  * SDL 2.0.6. All renderers support the four blend modes listed in the
  * SDL_BlendMode enumeration.
  * SDL_BlendMode enumeration.
  *
  *
- * - **direct3d**: Supports `SDL_BLENDOPERATION_ADD` with all factors.
- * - **direct3d11**: Supports all operations with all factors. However, some
+ * - **direct3d**: Supports all operations with all factors. However, some
  *   factors produce unexpected results with `SDL_BLENDOPERATION_MINIMUM` and
  *   factors produce unexpected results with `SDL_BLENDOPERATION_MINIMUM` and
  *   `SDL_BLENDOPERATION_MAXIMUM`.
  *   `SDL_BLENDOPERATION_MAXIMUM`.
+ * - **direct3d11**: Same as Direct3D 9.
  * - **opengl**: Supports the `SDL_BLENDOPERATION_ADD` operation with all
  * - **opengl**: Supports the `SDL_BLENDOPERATION_ADD` operation with all
  *   factors. OpenGL versions 1.1, 1.2, and 1.3 do not work correctly with SDL
  *   factors. OpenGL versions 1.1, 1.2, and 1.3 do not work correctly with SDL
  *   2.0.6.
  *   2.0.6.
@@ -193,7 +191,7 @@ extern DECLSPEC SDL_BlendMode SDLCALL SDL_ComposeCustomBlendMode(SDL_BlendFactor
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_blendmode_h_ */
 #endif /* SDL_blendmode_h_ */
 
 

+ 51 - 4
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_clipboard.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,9 +28,9 @@
 #ifndef SDL_clipboard_h_
 #ifndef SDL_clipboard_h_
 #define SDL_clipboard_h_
 #define SDL_clipboard_h_
 
 
-#include "SDL_stdinc.h"
+#include <SDL2/SDL_stdinc.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -82,12 +82,59 @@ extern DECLSPEC char * SDLCALL SDL_GetClipboardText(void);
  */
  */
 extern DECLSPEC SDL_bool SDLCALL SDL_HasClipboardText(void);
 extern DECLSPEC SDL_bool SDLCALL SDL_HasClipboardText(void);
 
 
+/**
+ * Put UTF-8 text into the primary selection.
+ *
+ * \param text the text to store in the primary selection
+ * \returns 0 on success or a negative error code on failure; call
+ *          SDL_GetError() for more information.
+ *
+ * \since This function is available since SDL 2.26.0.
+ *
+ * \sa SDL_GetPrimarySelectionText
+ * \sa SDL_HasPrimarySelectionText
+ */
+extern DECLSPEC int SDLCALL SDL_SetPrimarySelectionText(const char *text);
+
+/**
+ * Get UTF-8 text from the primary selection, which must be freed with
+ * SDL_free().
+ *
+ * This functions returns empty string if there was not enough memory left for
+ * a copy of the primary selection's content.
+ *
+ * \returns the primary selection text on success or an empty string on
+ *          failure; call SDL_GetError() for more information. Caller must
+ *          call SDL_free() on the returned pointer when done with it (even if
+ *          there was an error).
+ *
+ * \since This function is available since SDL 2.26.0.
+ *
+ * \sa SDL_HasPrimarySelectionText
+ * \sa SDL_SetPrimarySelectionText
+ */
+extern DECLSPEC char * SDLCALL SDL_GetPrimarySelectionText(void);
+
+/**
+ * Query whether the primary selection exists and contains a non-empty text
+ * string.
+ *
+ * \returns SDL_TRUE if the primary selection has text, or SDL_FALSE if it
+ *          does not.
+ *
+ * \since This function is available since SDL 2.26.0.
+ *
+ * \sa SDL_GetPrimarySelectionText
+ * \sa SDL_SetPrimarySelectionText
+ */
+extern DECLSPEC SDL_bool SDLCALL SDL_HasPrimarySelectionText(void);
+
 
 
 /* Ends C function definitions when using C++ */
 /* Ends C function definitions when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_clipboard_h_ */
 #endif /* SDL_clipboard_h_ */
 
 

+ 16 - 12
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_config.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -22,7 +22,7 @@
 #ifndef SDL_config_h_
 #ifndef SDL_config_h_
 #define SDL_config_h_
 #define SDL_config_h_
 
 
-#include "SDL_platform.h"
+#include <SDL2/SDL_platform.h>
 
 
 /**
 /**
  *  \file SDL_config.h
  *  \file SDL_config.h
@@ -30,24 +30,28 @@
 
 
 /* Add any platform that doesn't build using the configure system. */
 /* Add any platform that doesn't build using the configure system. */
 #if defined(__WIN32__)
 #if defined(__WIN32__)
-#include "SDL_config_windows.h"
+#include <SDL2/SDL_config_windows.h>
 #elif defined(__WINRT__)
 #elif defined(__WINRT__)
-#include "SDL_config_winrt.h"
+#include <SDL2/SDL_config_winrt.h>
+#elif defined(__WINGDK__)
+#include <SDL2/SDL_config_wingdk.h>
+#elif defined(__XBOXONE__) || defined(__XBOXSERIES__)
+#include <SDL2/SDL_config_xbox.h>
 #elif defined(__MACOSX__)
 #elif defined(__MACOSX__)
-#include "SDL_config_macosx.h"
+#include <SDL2/SDL_config_macosx.h>
 #elif defined(__IPHONEOS__)
 #elif defined(__IPHONEOS__)
-#include "SDL_config_iphoneos.h"
+#include <SDL2/SDL_config_iphoneos.h>
 #elif defined(__ANDROID__)
 #elif defined(__ANDROID__)
-#include "SDL_config_android.h"
-#elif defined(__PSP__)
-#include "SDL_config_psp.h"
+#include <SDL2/SDL_config_android.h>
 #elif defined(__OS2__)
 #elif defined(__OS2__)
-#include "SDL_config_os2.h"
+#include <SDL2/SDL_config_os2.h>
 #elif defined(__EMSCRIPTEN__)
 #elif defined(__EMSCRIPTEN__)
-#include "SDL_config_emscripten.h"
+#include <SDL2/SDL_config_emscripten.h>
+#elif defined(__NGAGE__)
+#include <SDL2/SDL_config_ngage.h>
 #else
 #else
 /* This is a minimal configuration just to get SDL running on new platforms. */
 /* This is a minimal configuration just to get SDL running on new platforms. */
-#include "SDL_config_minimal.h"
+#include <SDL2/SDL_config_minimal.h>
 #endif /* platform config */
 #endif /* platform config */
 
 
 #ifdef USING_GENERATED_CONFIG_H
 #ifdef USING_GENERATED_CONFIG_H

+ 5 - 8
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_config_macosx.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -23,7 +23,7 @@
 #define SDL_config_macosx_h_
 #define SDL_config_macosx_h_
 #define SDL_config_h_
 #define SDL_config_h_
 
 
-#include "SDL_platform.h"
+#include <SDL2/SDL_platform.h>
 
 
 /* This gets us MAC_OS_X_VERSION_MIN_REQUIRED... */
 /* This gets us MAC_OS_X_VERSION_MIN_REQUIRED... */
 #include <AvailabilityMacros.h>
 #include <AvailabilityMacros.h>
@@ -63,6 +63,7 @@
 #define HAVE_PUTENV 1
 #define HAVE_PUTENV 1
 #define HAVE_UNSETENV   1
 #define HAVE_UNSETENV   1
 #define HAVE_QSORT  1
 #define HAVE_QSORT  1
+#define HAVE_BSEARCH 1
 #define HAVE_ABS    1
 #define HAVE_ABS    1
 #define HAVE_BCOPY  1
 #define HAVE_BCOPY  1
 #define HAVE_MEMSET 1
 #define HAVE_MEMSET 1
@@ -87,6 +88,7 @@
 #define HAVE_STRNCMP    1
 #define HAVE_STRNCMP    1
 #define HAVE_STRCASECMP 1
 #define HAVE_STRCASECMP 1
 #define HAVE_STRNCASECMP 1
 #define HAVE_STRNCASECMP 1
+#define HAVE_STRCASESTR 1
 #define HAVE_VSSCANF 1
 #define HAVE_VSSCANF 1
 #define HAVE_VSNPRINTF  1
 #define HAVE_VSNPRINTF  1
 #define HAVE_M_PI   1
 #define HAVE_M_PI   1
@@ -120,7 +122,7 @@
 #define HAVE_LROUNDF 1
 #define HAVE_LROUNDF 1
 #define HAVE_POW    1
 #define HAVE_POW    1
 #define HAVE_POWF   1
 #define HAVE_POWF   1
-#define HAVE_ROUND 1
+#define HAVE_ROUND  1
 #define HAVE_ROUNDF 1
 #define HAVE_ROUNDF 1
 #define HAVE_SCALBN 1
 #define HAVE_SCALBN 1
 #define HAVE_SCALBNF    1
 #define HAVE_SCALBNF    1
@@ -185,17 +187,13 @@
 #undef SDL_VIDEO_DRIVER_X11
 #undef SDL_VIDEO_DRIVER_X11
 #define SDL_VIDEO_DRIVER_X11_DYNAMIC "/opt/X11/lib/libX11.6.dylib"
 #define SDL_VIDEO_DRIVER_X11_DYNAMIC "/opt/X11/lib/libX11.6.dylib"
 #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "/opt/X11/lib/libXext.6.dylib"
 #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "/opt/X11/lib/libXext.6.dylib"
-#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA "/opt/X11/lib/libXinerama.1.dylib"
 #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 "/opt/X11/lib/libXi.6.dylib"
 #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 "/opt/X11/lib/libXi.6.dylib"
 #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR "/opt/X11/lib/libXrandr.2.dylib"
 #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR "/opt/X11/lib/libXrandr.2.dylib"
 #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS "/opt/X11/lib/libXss.1.dylib"
 #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS "/opt/X11/lib/libXss.1.dylib"
-#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE "/opt/X11/lib/libXxf86vm.1.dylib"
 #define SDL_VIDEO_DRIVER_X11_XDBE 1
 #define SDL_VIDEO_DRIVER_X11_XDBE 1
-#define SDL_VIDEO_DRIVER_X11_XINERAMA 1
 #define SDL_VIDEO_DRIVER_X11_XRANDR 1
 #define SDL_VIDEO_DRIVER_X11_XRANDR 1
 #define SDL_VIDEO_DRIVER_X11_XSCRNSAVER 1
 #define SDL_VIDEO_DRIVER_X11_XSCRNSAVER 1
 #define SDL_VIDEO_DRIVER_X11_XSHAPE 1
 #define SDL_VIDEO_DRIVER_X11_XSHAPE 1
-#define SDL_VIDEO_DRIVER_X11_XVIDMODE 1
 #define SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM 1
 #define SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM 1
 
 
 #ifdef MAC_OS_X_VERSION_10_8
 #ifdef MAC_OS_X_VERSION_10_8
@@ -272,7 +270,6 @@
 #define SDL_FILESYSTEM_COCOA   1
 #define SDL_FILESYSTEM_COCOA   1
 
 
 /* Enable assembly routines */
 /* Enable assembly routines */
-#define SDL_ASSEMBLY_ROUTINES   1
 #ifdef __ppc__
 #ifdef __ppc__
 #define SDL_ALTIVEC_BLITTERS    1
 #define SDL_ALTIVEC_BLITTERS    1
 #endif
 #endif

+ 1 - 1
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_copying.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages

+ 43 - 8
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_cpuinfo.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,7 +28,7 @@
 #ifndef SDL_cpuinfo_h_
 #ifndef SDL_cpuinfo_h_
 #define SDL_cpuinfo_h_
 #define SDL_cpuinfo_h_
 
 
-#include "SDL_stdinc.h"
+#include <SDL2/SDL_stdinc.h>
 
 
 /* Need to do this here because intrin.h has C++ code in it */
 /* Need to do this here because intrin.h has C++ code in it */
 /* Visual Studio 2005 has a bug where intrin.h conflicts with winnt.h */
 /* Visual Studio 2005 has a bug where intrin.h conflicts with winnt.h */
@@ -79,7 +79,7 @@ _m_prefetch(void *__P)
 #if !defined(SDL_DISABLE_ARM_NEON_H)
 #if !defined(SDL_DISABLE_ARM_NEON_H)
 #  if defined(__ARM_NEON)
 #  if defined(__ARM_NEON)
 #    include <arm_neon.h>
 #    include <arm_neon.h>
-#  elif defined(__WINDOWS__) || defined(__WINRT__)
+#  elif defined(__WINDOWS__) || defined(__WINRT__) || defined(__GDK__)
 /* Visual Studio doesn't define __ARM_ARCH, but _M_ARM (if set, always 7), and _M_ARM64 (if set, always 1). */
 /* Visual Studio doesn't define __ARM_ARCH, but _M_ARM (if set, always 7), and _M_ARM64 (if set, always 1). */
 #    if defined(_M_ARM)
 #    if defined(_M_ARM)
 #      include <armintr.h>
 #      include <armintr.h>
@@ -90,6 +90,7 @@ _m_prefetch(void *__P)
 #      include <arm64intr.h>
 #      include <arm64intr.h>
 #      include <arm64_neon.h>
 #      include <arm64_neon.h>
 #      define __ARM_NEON 1 /* Set __ARM_NEON so that it can be used elsewhere, at compile time */
 #      define __ARM_NEON 1 /* Set __ARM_NEON so that it can be used elsewhere, at compile time */
+#      define __ARM_ARCH 8
 #    endif
 #    endif
 #  endif
 #  endif
 #endif
 #endif
@@ -98,6 +99,14 @@ _m_prefetch(void *__P)
 #if defined(__3dNOW__) && !defined(SDL_DISABLE_MM3DNOW_H)
 #if defined(__3dNOW__) && !defined(SDL_DISABLE_MM3DNOW_H)
 #include <mm3dnow.h>
 #include <mm3dnow.h>
 #endif
 #endif
+#if defined(__loongarch_sx) && !defined(SDL_DISABLE_LSX_H)
+#include <lsxintrin.h>
+#define __LSX__
+#endif
+#if defined(__loongarch_asx) && !defined(SDL_DISABLE_LASX_H)
+#include <lasxintrin.h>
+#define __LASX__
+#endif
 #if defined(HAVE_IMMINTRIN_H) && !defined(SDL_DISABLE_IMMINTRIN_H)
 #if defined(HAVE_IMMINTRIN_H) && !defined(SDL_DISABLE_IMMINTRIN_H)
 #include <immintrin.h>
 #include <immintrin.h>
 #else
 #else
@@ -115,7 +124,7 @@ _m_prefetch(void *__P)
 #endif
 #endif
 #endif /* HAVE_IMMINTRIN_H */
 #endif /* HAVE_IMMINTRIN_H */
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -433,10 +442,36 @@ extern DECLSPEC SDL_bool SDLCALL SDL_HasARMSIMD(void);
  */
  */
 extern DECLSPEC SDL_bool SDLCALL SDL_HasNEON(void);
 extern DECLSPEC SDL_bool SDLCALL SDL_HasNEON(void);
 
 
+/**
+ * Determine whether the CPU has LSX (LOONGARCH SIMD) features.
+ *
+ * This always returns false on CPUs that aren't using LOONGARCH instruction
+ * sets.
+ *
+ * \returns SDL_TRUE if the CPU has LOONGARCH LSX features or SDL_FALSE if
+ *          not.
+ *
+ * \since This function is available since SDL 2.24.0.
+ */
+extern DECLSPEC SDL_bool SDLCALL SDL_HasLSX(void);
+
+/**
+ * Determine whether the CPU has LASX (LOONGARCH SIMD) features.
+ *
+ * This always returns false on CPUs that aren't using LOONGARCH instruction
+ * sets.
+ *
+ * \returns SDL_TRUE if the CPU has LOONGARCH LASX features or SDL_FALSE if
+ *          not.
+ *
+ * \since This function is available since SDL 2.24.0.
+ */
+extern DECLSPEC SDL_bool SDLCALL SDL_HasLASX(void);
+
 /**
 /**
  * Get the amount of RAM configured in the system.
  * Get the amount of RAM configured in the system.
  *
  *
- * \returns the amount of RAM configured in the system in MB.
+ * \returns the amount of RAM configured in the system in MiB.
  *
  *
  * \since This function is available since SDL 2.0.1.
  * \since This function is available since SDL 2.0.1.
  */
  */
@@ -494,7 +529,7 @@ extern DECLSPEC size_t SDLCALL SDL_SIMDGetAlignment(void);
  *
  *
  * \since This function is available since SDL 2.0.10.
  * \since This function is available since SDL 2.0.10.
  *
  *
- * \sa SDL_SIMDAlignment
+ * \sa SDL_SIMDGetAlignment
  * \sa SDL_SIMDRealloc
  * \sa SDL_SIMDRealloc
  * \sa SDL_SIMDFree
  * \sa SDL_SIMDFree
  */
  */
@@ -518,7 +553,7 @@ extern DECLSPEC void * SDLCALL SDL_SIMDAlloc(const size_t len);
  *
  *
  * \since This function is available since SDL 2.0.14.
  * \since This function is available since SDL 2.0.14.
  *
  *
- * \sa SDL_SIMDAlignment
+ * \sa SDL_SIMDGetAlignment
  * \sa SDL_SIMDAlloc
  * \sa SDL_SIMDAlloc
  * \sa SDL_SIMDFree
  * \sa SDL_SIMDFree
  */
  */
@@ -552,7 +587,7 @@ extern DECLSPEC void SDLCALL SDL_SIMDFree(void *ptr);
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_cpuinfo_h_ */
 #endif /* SDL_cpuinfo_h_ */
 
 

+ 41 - 10
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_endian.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,7 +28,7 @@
 #ifndef SDL_endian_h_
 #ifndef SDL_endian_h_
 #define SDL_endian_h_
 #define SDL_endian_h_
 
 
-#include "SDL_stdinc.h"
+#include <SDL2/SDL_stdinc.h>
 
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1400)
 #if defined(_MSC_VER) && (_MSC_VER >= 1400)
 /* As of Clang 11, '_m_prefetchw' is conflicting with the winnt.h's version,
 /* As of Clang 11, '_m_prefetchw' is conflicting with the winnt.h's version,
@@ -39,7 +39,7 @@
 static __inline__ void __attribute__((__always_inline__, __nodebug__))
 static __inline__ void __attribute__((__always_inline__, __nodebug__))
 _m_prefetch(void *__P)
 _m_prefetch(void *__P)
 {
 {
-  __builtin_prefetch (__P, 0, 3 /* _MM_HINT_T0 */);
+  __builtin_prefetch(__P, 0, 3 /* _MM_HINT_T0 */);
 }
 }
 #endif /* __PRFCHWINTRIN_H */
 #endif /* __PRFCHWINTRIN_H */
 #endif /* __clang__ */
 #endif /* __clang__ */
@@ -59,17 +59,26 @@ _m_prefetch(void *__P)
 #ifdef __linux__
 #ifdef __linux__
 #include <endian.h>
 #include <endian.h>
 #define SDL_BYTEORDER  __BYTE_ORDER
 #define SDL_BYTEORDER  __BYTE_ORDER
-#elif defined(__OpenBSD__)
+#elif defined(__OpenBSD__) || defined(__DragonFly__)
 #include <endian.h>
 #include <endian.h>
 #define SDL_BYTEORDER  BYTE_ORDER
 #define SDL_BYTEORDER  BYTE_ORDER
 #elif defined(__FreeBSD__) || defined(__NetBSD__)
 #elif defined(__FreeBSD__) || defined(__NetBSD__)
 #include <sys/endian.h>
 #include <sys/endian.h>
 #define SDL_BYTEORDER  BYTE_ORDER
 #define SDL_BYTEORDER  BYTE_ORDER
+/* predefs from newer gcc and clang versions: */
+#elif defined(__ORDER_LITTLE_ENDIAN__) && defined(__ORDER_BIG_ENDIAN__) && defined(__BYTE_ORDER__)
+#if (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+#define SDL_BYTEORDER   SDL_LIL_ENDIAN
+#elif (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
+#define SDL_BYTEORDER   SDL_BIG_ENDIAN
+#else
+#error Unsupported endianness
+#endif /**/
 #else
 #else
 #if defined(__hppa__) || \
 #if defined(__hppa__) || \
     defined(__m68k__) || defined(mc68000) || defined(_M_M68K) || \
     defined(__m68k__) || defined(mc68000) || defined(_M_M68K) || \
     (defined(__MIPS__) && defined(__MIPSEB__)) || \
     (defined(__MIPS__) && defined(__MIPSEB__)) || \
-    defined(__ppc__) || defined(__POWERPC__) || defined(_M_PPC) || \
+    defined(__ppc__) || defined(__POWERPC__) || defined(__powerpc__) || defined(__PPC__) || \
     defined(__sparc__)
     defined(__sparc__)
 #define SDL_BYTEORDER   SDL_BIG_ENDIAN
 #define SDL_BYTEORDER   SDL_BIG_ENDIAN
 #else
 #else
@@ -78,8 +87,30 @@ _m_prefetch(void *__P)
 #endif /* __linux__ */
 #endif /* __linux__ */
 #endif /* !SDL_BYTEORDER */
 #endif /* !SDL_BYTEORDER */
 
 
+#ifndef SDL_FLOATWORDORDER           /* Not defined in SDL_config.h? */
+/* predefs from newer gcc versions: */
+#if defined(__ORDER_LITTLE_ENDIAN__) && defined(__ORDER_BIG_ENDIAN__) && defined(__FLOAT_WORD_ORDER__)
+#if (__FLOAT_WORD_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+#define SDL_FLOATWORDORDER   SDL_LIL_ENDIAN
+#elif (__FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__)
+#define SDL_FLOATWORDORDER   SDL_BIG_ENDIAN
+#else
+#error Unsupported endianness
+#endif /**/
+#elif defined(__MAVERICK__)
+/* For Maverick, float words are always little-endian. */
+#define SDL_FLOATWORDORDER   SDL_LIL_ENDIAN
+#elif (defined(__arm__) || defined(__thumb__)) && !defined(__VFP_FP__) && !defined(__ARM_EABI__)
+/* For FPA, float words are always big-endian. */
+#define SDL_FLOATWORDORDER   SDL_BIG_ENDIAN
+#else
+/* By default, assume that floats words follow the memory system mode. */
+#define SDL_FLOATWORDORDER   SDL_BYTEORDER
+#endif /* __FLOAT_WORD_ORDER__ */
+#endif /* !SDL_FLOATWORDORDER */
+
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -109,7 +140,7 @@ extern "C" {
 
 
 #if HAS_BUILTIN_BSWAP16
 #if HAS_BUILTIN_BSWAP16
 #define SDL_Swap16(x) __builtin_bswap16(x)
 #define SDL_Swap16(x) __builtin_bswap16(x)
-#elif defined(_MSC_VER) && (_MSC_VER >= 1400)
+#elif (defined(_MSC_VER) && (_MSC_VER >= 1400)) && !defined(__ICL)
 #pragma intrinsic(_byteswap_ushort)
 #pragma intrinsic(_byteswap_ushort)
 #define SDL_Swap16(x) _byteswap_ushort(x)
 #define SDL_Swap16(x) _byteswap_ushort(x)
 #elif defined(__i386__) && !HAS_BROKEN_BSWAP
 #elif defined(__i386__) && !HAS_BROKEN_BSWAP
@@ -158,7 +189,7 @@ SDL_Swap16(Uint16 x)
 
 
 #if HAS_BUILTIN_BSWAP32
 #if HAS_BUILTIN_BSWAP32
 #define SDL_Swap32(x) __builtin_bswap32(x)
 #define SDL_Swap32(x) __builtin_bswap32(x)
-#elif defined(_MSC_VER) && (_MSC_VER >= 1400)
+#elif (defined(_MSC_VER) && (_MSC_VER >= 1400)) && !defined(__ICL)
 #pragma intrinsic(_byteswap_ulong)
 #pragma intrinsic(_byteswap_ulong)
 #define SDL_Swap32(x) _byteswap_ulong(x)
 #define SDL_Swap32(x) _byteswap_ulong(x)
 #elif defined(__i386__) && !HAS_BROKEN_BSWAP
 #elif defined(__i386__) && !HAS_BROKEN_BSWAP
@@ -210,7 +241,7 @@ SDL_Swap32(Uint32 x)
 
 
 #if HAS_BUILTIN_BSWAP64
 #if HAS_BUILTIN_BSWAP64
 #define SDL_Swap64(x) __builtin_bswap64(x)
 #define SDL_Swap64(x) __builtin_bswap64(x)
-#elif defined(_MSC_VER) && (_MSC_VER >= 1400)
+#elif (defined(_MSC_VER) && (_MSC_VER >= 1400)) && !defined(__ICL)
 #pragma intrinsic(_byteswap_uint64)
 #pragma intrinsic(_byteswap_uint64)
 #define SDL_Swap64(x) _byteswap_uint64(x)
 #define SDL_Swap64(x) _byteswap_uint64(x)
 #elif defined(__i386__) && !HAS_BROKEN_BSWAP
 #elif defined(__i386__) && !HAS_BROKEN_BSWAP
@@ -310,7 +341,7 @@ SDL_SwapFloat(float x)
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_endian_h_ */
 #endif /* SDL_endian_h_ */
 
 

+ 4 - 4
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_error.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,9 +28,9 @@
 #ifndef SDL_error_h_
 #ifndef SDL_error_h_
 #define SDL_error_h_
 #define SDL_error_h_
 
 
-#include "SDL_stdinc.h"
+#include <SDL2/SDL_stdinc.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -156,7 +156,7 @@ extern DECLSPEC int SDLCALL SDL_Error(SDL_errorcode code);
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_error_h_ */
 #endif /* SDL_error_h_ */
 
 

+ 46 - 15
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_events.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,18 +28,18 @@
 #ifndef SDL_events_h_
 #ifndef SDL_events_h_
 #define SDL_events_h_
 #define SDL_events_h_
 
 
-#include "SDL_stdinc.h"
-#include "SDL_error.h"
-#include "SDL_video.h"
-#include "SDL_keyboard.h"
-#include "SDL_mouse.h"
-#include "SDL_joystick.h"
-#include "SDL_gamecontroller.h"
-#include "SDL_quit.h"
-#include "SDL_gesture.h"
-#include "SDL_touch.h"
-
-#include "begin_code.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_error.h>
+#include <SDL2/SDL_video.h>
+#include <SDL2/SDL_keyboard.h>
+#include <SDL2/SDL_mouse.h>
+#include <SDL2/SDL_joystick.h>
+#include <SDL2/SDL_gamecontroller.h>
+#include <SDL2/SDL_quit.h>
+#include <SDL2/SDL_gesture.h>
+#include <SDL2/SDL_touch.h>
+
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -102,6 +102,7 @@ typedef enum
     SDL_KEYMAPCHANGED,          /**< Keymap changed due to a system event such as an
     SDL_KEYMAPCHANGED,          /**< Keymap changed due to a system event such as an
                                      input language or keyboard layout change.
                                      input language or keyboard layout change.
                                 */
                                 */
+    SDL_TEXTEDITING_EXT,       /**< Extended keyboard text editing (composition) */
 
 
     /* Mouse events */
     /* Mouse events */
     SDL_MOUSEMOTION    = 0x400, /**< Mouse moved */
     SDL_MOUSEMOTION    = 0x400, /**< Mouse moved */
@@ -117,6 +118,7 @@ typedef enum
     SDL_JOYBUTTONUP,            /**< Joystick button released */
     SDL_JOYBUTTONUP,            /**< Joystick button released */
     SDL_JOYDEVICEADDED,         /**< A new joystick has been inserted into the system */
     SDL_JOYDEVICEADDED,         /**< A new joystick has been inserted into the system */
     SDL_JOYDEVICEREMOVED,       /**< An opened joystick has been removed */
     SDL_JOYDEVICEREMOVED,       /**< An opened joystick has been removed */
+    SDL_JOYBATTERYUPDATED,      /**< Joystick battery level change */
 
 
     /* Game controller events */
     /* Game controller events */
     SDL_CONTROLLERAXISMOTION  = 0x650, /**< Game controller axis motion */
     SDL_CONTROLLERAXISMOTION  = 0x650, /**< Game controller axis motion */
@@ -141,7 +143,7 @@ typedef enum
     SDL_MULTIGESTURE,
     SDL_MULTIGESTURE,
 
 
     /* Clipboard events */
     /* Clipboard events */
-    SDL_CLIPBOARDUPDATE = 0x900, /**< The clipboard changed */
+    SDL_CLIPBOARDUPDATE = 0x900, /**< The clipboard or primary selection changed */
 
 
     /* Drag and drop events */
     /* Drag and drop events */
     SDL_DROPFILE        = 0x1000, /**< The system requests a file open */
     SDL_DROPFILE        = 0x1000, /**< The system requests a file open */
@@ -243,6 +245,19 @@ typedef struct SDL_TextEditingEvent
     Sint32 length;                              /**< The length of selected editing text */
     Sint32 length;                              /**< The length of selected editing text */
 } SDL_TextEditingEvent;
 } SDL_TextEditingEvent;
 
 
+/**
+ *  \brief Extended keyboard text editing event structure (event.editExt.*) when text would be
+ *  truncated if stored in the text buffer SDL_TextEditingEvent
+ */
+typedef struct SDL_TextEditingExtEvent
+{
+    Uint32 type;                                /**< ::SDL_TEXTEDITING_EXT */
+    Uint32 timestamp;                           /**< In milliseconds, populated using SDL_GetTicks() */
+    Uint32 windowID;                            /**< The window with keyboard focus, if any */
+    char* text;                                 /**< The editing text, which should be freed with SDL_free(), and will not be NULL */
+    Sint32 start;                               /**< The start cursor of selected editing text */
+    Sint32 length;                              /**< The length of selected editing text */
+} SDL_TextEditingExtEvent;
 
 
 #define SDL_TEXTINPUTEVENT_TEXT_SIZE (32)
 #define SDL_TEXTINPUTEVENT_TEXT_SIZE (32)
 /**
 /**
@@ -303,6 +318,8 @@ typedef struct SDL_MouseWheelEvent
     Uint32 direction;   /**< Set to one of the SDL_MOUSEWHEEL_* defines. When FLIPPED the values in X and Y will be opposite. Multiply by -1 to change them back */
     Uint32 direction;   /**< Set to one of the SDL_MOUSEWHEEL_* defines. When FLIPPED the values in X and Y will be opposite. Multiply by -1 to change them back */
     float preciseX;     /**< The amount scrolled horizontally, positive to the right and negative to the left, with float precision (added in 2.0.18) */
     float preciseX;     /**< The amount scrolled horizontally, positive to the right and negative to the left, with float precision (added in 2.0.18) */
     float preciseY;     /**< The amount scrolled vertically, positive away from the user and negative toward the user, with float precision (added in 2.0.18) */
     float preciseY;     /**< The amount scrolled vertically, positive away from the user and negative toward the user, with float precision (added in 2.0.18) */
+    Sint32 mouseX;      /**< X coordinate, relative to window (added in 2.26.0) */
+    Sint32 mouseY;      /**< Y coordinate, relative to window (added in 2.26.0) */
 } SDL_MouseWheelEvent;
 } SDL_MouseWheelEvent;
 
 
 /**
 /**
@@ -381,6 +398,16 @@ typedef struct SDL_JoyDeviceEvent
     Sint32 which;       /**< The joystick device index for the ADDED event, instance id for the REMOVED event */
     Sint32 which;       /**< The joystick device index for the ADDED event, instance id for the REMOVED event */
 } SDL_JoyDeviceEvent;
 } SDL_JoyDeviceEvent;
 
 
+/**
+ *  \brief Joysick battery level change event structure (event.jbattery.*)
+ */
+typedef struct SDL_JoyBatteryEvent
+{
+    Uint32 type;        /**< ::SDL_JOYBATTERYUPDATED */
+    Uint32 timestamp;   /**< In milliseconds, populated using SDL_GetTicks() */
+    SDL_JoystickID which; /**< The joystick instance id */
+    SDL_JoystickPowerLevel level; /**< The joystick battery level */
+} SDL_JoyBatteryEvent;
 
 
 /**
 /**
  *  \brief Game controller axis motion event structure (event.caxis.*)
  *  \brief Game controller axis motion event structure (event.caxis.*)
@@ -449,6 +476,7 @@ typedef struct SDL_ControllerSensorEvent
     SDL_JoystickID which; /**< The joystick instance id */
     SDL_JoystickID which; /**< The joystick instance id */
     Sint32 sensor;      /**< The type of the sensor, one of the values of ::SDL_SensorType */
     Sint32 sensor;      /**< The type of the sensor, one of the values of ::SDL_SensorType */
     float data[3];      /**< Up to 3 values from the sensor, as defined in SDL_sensor.h */
     float data[3];      /**< Up to 3 values from the sensor, as defined in SDL_sensor.h */
+    Uint64 timestamp_us; /**< The timestamp of the sensor reading in microseconds, if the hardware provides this information. */
 } SDL_ControllerSensorEvent;
 } SDL_ControllerSensorEvent;
 
 
 /**
 /**
@@ -540,6 +568,7 @@ typedef struct SDL_SensorEvent
     Uint32 timestamp;   /**< In milliseconds, populated using SDL_GetTicks() */
     Uint32 timestamp;   /**< In milliseconds, populated using SDL_GetTicks() */
     Sint32 which;       /**< The instance ID of the sensor */
     Sint32 which;       /**< The instance ID of the sensor */
     float data[6];      /**< Up to 6 values from the sensor - additional values can be queried using SDL_SensorGetData() */
     float data[6];      /**< Up to 6 values from the sensor - additional values can be queried using SDL_SensorGetData() */
+    Uint64 timestamp_us; /**< The timestamp of the sensor reading in microseconds, if the hardware provides this information. */
 } SDL_SensorEvent;
 } SDL_SensorEvent;
 
 
 /**
 /**
@@ -601,6 +630,7 @@ typedef union SDL_Event
     SDL_WindowEvent window;                 /**< Window event data */
     SDL_WindowEvent window;                 /**< Window event data */
     SDL_KeyboardEvent key;                  /**< Keyboard event data */
     SDL_KeyboardEvent key;                  /**< Keyboard event data */
     SDL_TextEditingEvent edit;              /**< Text editing event data */
     SDL_TextEditingEvent edit;              /**< Text editing event data */
+    SDL_TextEditingExtEvent editExt;        /**< Extended text editing event data */
     SDL_TextInputEvent text;                /**< Text input event data */
     SDL_TextInputEvent text;                /**< Text input event data */
     SDL_MouseMotionEvent motion;            /**< Mouse motion event data */
     SDL_MouseMotionEvent motion;            /**< Mouse motion event data */
     SDL_MouseButtonEvent button;            /**< Mouse button event data */
     SDL_MouseButtonEvent button;            /**< Mouse button event data */
@@ -610,6 +640,7 @@ typedef union SDL_Event
     SDL_JoyHatEvent jhat;                   /**< Joystick hat event data */
     SDL_JoyHatEvent jhat;                   /**< Joystick hat event data */
     SDL_JoyButtonEvent jbutton;             /**< Joystick button event data */
     SDL_JoyButtonEvent jbutton;             /**< Joystick button event data */
     SDL_JoyDeviceEvent jdevice;             /**< Joystick device change event data */
     SDL_JoyDeviceEvent jdevice;             /**< Joystick device change event data */
+    SDL_JoyBatteryEvent jbattery;           /**< Joystick battery event data */
     SDL_ControllerAxisEvent caxis;          /**< Game Controller axis event data */
     SDL_ControllerAxisEvent caxis;          /**< Game Controller axis event data */
     SDL_ControllerButtonEvent cbutton;      /**< Game Controller button event data */
     SDL_ControllerButtonEvent cbutton;      /**< Game Controller button event data */
     SDL_ControllerDeviceEvent cdevice;      /**< Game Controller device event data */
     SDL_ControllerDeviceEvent cdevice;      /**< Game Controller device event data */
@@ -1128,7 +1159,7 @@ extern DECLSPEC Uint32 SDLCALL SDL_RegisterEvents(int numevents);
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_events_h_ */
 #endif /* SDL_events_h_ */
 
 

+ 9 - 5
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_filesystem.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,9 +28,9 @@
 #ifndef SDL_filesystem_h_
 #ifndef SDL_filesystem_h_
 #define SDL_filesystem_h_
 #define SDL_filesystem_h_
 
 
-#include "SDL_stdinc.h"
+#include <SDL2/SDL_stdinc.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 
 
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
@@ -60,6 +60,10 @@ extern "C" {
  * - `parent`: the containing directory of the bundle. For example:
  * - `parent`: the containing directory of the bundle. For example:
  *   `/Applications/SDLApp/`
  *   `/Applications/SDLApp/`
  *
  *
+ * **Nintendo 3DS Specific Functionality**: This function returns "romfs"
+ * directory of the application as it is uncommon to store resources outside
+ * the executable. As such it is not a writable directory.
+ *
  * The returned path is guaranteed to end with a path separator ('\' on
  * The returned path is guaranteed to end with a path separator ('\' on
  * Windows, '/' on most other platforms).
  * Windows, '/' on most other platforms).
  *
  *
@@ -92,7 +96,7 @@ extern DECLSPEC char *SDLCALL SDL_GetBasePath(void);
  *
  *
  * `C:\\Users\\bob\\AppData\\Roaming\\My Company\\My Program Name\\`
  * `C:\\Users\\bob\\AppData\\Roaming\\My Company\\My Program Name\\`
  *
  *
- * On Linux, the string might look like"
+ * On Linux, the string might look like:
  *
  *
  * `/home/bob/.local/share/My Program Name/`
  * `/home/bob/.local/share/My Program Name/`
  *
  *
@@ -138,7 +142,7 @@ extern DECLSPEC char *SDLCALL SDL_GetPrefPath(const char *org, const char *app);
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_filesystem_h_ */
 #endif /* SDL_filesystem_h_ */
 
 

+ 90 - 17
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_gamecontroller.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,13 +28,13 @@
 #ifndef SDL_gamecontroller_h_
 #ifndef SDL_gamecontroller_h_
 #define SDL_gamecontroller_h_
 #define SDL_gamecontroller_h_
 
 
-#include "SDL_stdinc.h"
-#include "SDL_error.h"
-#include "SDL_rwops.h"
-#include "SDL_sensor.h"
-#include "SDL_joystick.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_error.h>
+#include <SDL2/SDL_rwops.h>
+#include <SDL2/SDL_sensor.h>
+#include <SDL2/SDL_joystick.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -69,7 +69,11 @@ typedef enum
     SDL_CONTROLLER_TYPE_VIRTUAL,
     SDL_CONTROLLER_TYPE_VIRTUAL,
     SDL_CONTROLLER_TYPE_PS5,
     SDL_CONTROLLER_TYPE_PS5,
     SDL_CONTROLLER_TYPE_AMAZON_LUNA,
     SDL_CONTROLLER_TYPE_AMAZON_LUNA,
-    SDL_CONTROLLER_TYPE_GOOGLE_STADIA
+    SDL_CONTROLLER_TYPE_GOOGLE_STADIA,
+    SDL_CONTROLLER_TYPE_NVIDIA_SHIELD,
+    SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_LEFT,
+    SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT,
+    SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_PAIR
 } SDL_GameControllerType;
 } SDL_GameControllerType;
 
 
 typedef enum
 typedef enum
@@ -289,6 +293,25 @@ extern DECLSPEC SDL_bool SDLCALL SDL_IsGameController(int joystick_index);
  */
  */
 extern DECLSPEC const char *SDLCALL SDL_GameControllerNameForIndex(int joystick_index);
 extern DECLSPEC const char *SDLCALL SDL_GameControllerNameForIndex(int joystick_index);
 
 
+/**
+ * Get the implementation dependent path for the game controller.
+ *
+ * This function can be called before any controllers are opened.
+ *
+ * `joystick_index` is the same as the `device_index` passed to
+ * SDL_JoystickOpen().
+ *
+ * \param joystick_index the device_index of a device, from zero to
+ *                       SDL_NumJoysticks()-1
+ * \returns the implementation-dependent path for the game controller, or NULL
+ *          if there is no path or the index is invalid.
+ *
+ * \since This function is available since SDL 2.24.0.
+ *
+ * \sa SDL_GameControllerPath
+ */
+extern DECLSPEC const char *SDLCALL SDL_GameControllerPathForIndex(int joystick_index);
+
 /**
 /**
  * Get the type of a game controller.
  * Get the type of a game controller.
  *
  *
@@ -386,6 +409,23 @@ extern DECLSPEC SDL_GameController *SDLCALL SDL_GameControllerFromPlayerIndex(in
  */
  */
 extern DECLSPEC const char *SDLCALL SDL_GameControllerName(SDL_GameController *gamecontroller);
 extern DECLSPEC const char *SDLCALL SDL_GameControllerName(SDL_GameController *gamecontroller);
 
 
+/**
+ * Get the implementation-dependent path for an opened game controller.
+ *
+ * This is the same path as returned by SDL_GameControllerNameForIndex(), but
+ * it takes a controller identifier instead of the (unstable) device index.
+ *
+ * \param gamecontroller a game controller identifier previously returned by
+ *                       SDL_GameControllerOpen()
+ * \returns the implementation dependent path for the game controller, or NULL
+ *          if there is no path or the identifier passed is invalid.
+ *
+ * \since This function is available since SDL 2.24.0.
+ *
+ * \sa SDL_GameControllerPathForIndex
+ */
+extern DECLSPEC const char *SDLCALL SDL_GameControllerPath(SDL_GameController *gamecontroller);
+
 /**
 /**
  * Get the type of this currently opened controller
  * Get the type of this currently opened controller
  *
  *
@@ -415,7 +455,8 @@ extern DECLSPEC int SDLCALL SDL_GameControllerGetPlayerIndex(SDL_GameController
  * Set the player index of an opened game controller.
  * Set the player index of an opened game controller.
  *
  *
  * \param gamecontroller the game controller object to adjust.
  * \param gamecontroller the game controller object to adjust.
- * \param player_index Player index to assign to this controller.
+ * \param player_index Player index to assign to this controller, or -1 to
+ *                     clear the player index and turn off player LEDs.
  *
  *
  * \since This function is available since SDL 2.0.12.
  * \since This function is available since SDL 2.0.12.
  */
  */
@@ -457,6 +498,18 @@ extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetProduct(SDL_GameController *
  */
  */
 extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetProductVersion(SDL_GameController *gamecontroller);
 extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetProductVersion(SDL_GameController *gamecontroller);
 
 
+/**
+ * Get the firmware version of an opened controller, if available.
+ *
+ * If the firmware version isn't available this function returns 0.
+ *
+ * \param gamecontroller the game controller object to query.
+ * \return the controller firmware version, or zero if unavailable.
+ *
+ * \since This function is available since SDL 2.24.0.
+ */
+extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetFirmwareVersion(SDL_GameController *gamecontroller);
+
 /**
 /**
  * Get the serial number of an opened controller, if available.
  * Get the serial number of an opened controller, if available.
  *
  *
@@ -671,10 +724,10 @@ typedef enum
     SDL_CONTROLLER_BUTTON_DPAD_LEFT,
     SDL_CONTROLLER_BUTTON_DPAD_LEFT,
     SDL_CONTROLLER_BUTTON_DPAD_RIGHT,
     SDL_CONTROLLER_BUTTON_DPAD_RIGHT,
     SDL_CONTROLLER_BUTTON_MISC1,    /* Xbox Series X share button, PS5 microphone button, Nintendo Switch Pro capture button, Amazon Luna microphone button */
     SDL_CONTROLLER_BUTTON_MISC1,    /* Xbox Series X share button, PS5 microphone button, Nintendo Switch Pro capture button, Amazon Luna microphone button */
-    SDL_CONTROLLER_BUTTON_PADDLE1,  /* Xbox Elite paddle P1 */
-    SDL_CONTROLLER_BUTTON_PADDLE2,  /* Xbox Elite paddle P3 */
-    SDL_CONTROLLER_BUTTON_PADDLE3,  /* Xbox Elite paddle P2 */
-    SDL_CONTROLLER_BUTTON_PADDLE4,  /* Xbox Elite paddle P4 */
+    SDL_CONTROLLER_BUTTON_PADDLE1,  /* Xbox Elite paddle P1 (upper left, facing the back) */
+    SDL_CONTROLLER_BUTTON_PADDLE2,  /* Xbox Elite paddle P3 (upper right, facing the back) */
+    SDL_CONTROLLER_BUTTON_PADDLE3,  /* Xbox Elite paddle P2 (lower left, facing the back) */
+    SDL_CONTROLLER_BUTTON_PADDLE4,  /* Xbox Elite paddle P4 (lower right, facing the back) */
     SDL_CONTROLLER_BUTTON_TOUCHPAD, /* PS4/PS5 touchpad button */
     SDL_CONTROLLER_BUTTON_TOUCHPAD, /* PS4/PS5 touchpad button */
     SDL_CONTROLLER_BUTTON_MAX
     SDL_CONTROLLER_BUTTON_MAX
 } SDL_GameControllerButton;
 } SDL_GameControllerButton;
@@ -701,7 +754,7 @@ extern DECLSPEC SDL_GameControllerButton SDLCALL SDL_GameControllerGetButtonFrom
  * The caller should not SDL_free() the returned string.
  * The caller should not SDL_free() the returned string.
  *
  *
  * \param button an enum value for a given SDL_GameControllerButton
  * \param button an enum value for a given SDL_GameControllerButton
- * \returns a string for the given button, or NULL if an invalid axis is
+ * \returns a string for the given button, or NULL if an invalid button is
  *          specified. The string returned is of the format used by
  *          specified. The string returned is of the format used by
  *          SDL_GameController mapping strings.
  *          SDL_GameController mapping strings.
  *
  *
@@ -842,6 +895,25 @@ extern DECLSPEC float SDLCALL SDL_GameControllerGetSensorDataRate(SDL_GameContro
  */
  */
 extern DECLSPEC int SDLCALL SDL_GameControllerGetSensorData(SDL_GameController *gamecontroller, SDL_SensorType type, float *data, int num_values);
 extern DECLSPEC int SDLCALL SDL_GameControllerGetSensorData(SDL_GameController *gamecontroller, SDL_SensorType type, float *data, int num_values);
 
 
+/**
+ * Get the current state of a game controller sensor with the timestamp of the
+ * last update.
+ *
+ * The number of values and interpretation of the data is sensor dependent.
+ * See SDL_sensor.h for the details for each type of sensor.
+ *
+ * \param gamecontroller The controller to query
+ * \param type The type of sensor to query
+ * \param timestamp A pointer filled with the timestamp in microseconds of the
+ *                  current sensor reading if available, or 0 if not
+ * \param data A pointer filled with the current sensor state
+ * \param num_values The number of values to write to data
+ * \return 0 or -1 if an error occurred.
+ *
+ * \since This function is available since SDL 2.26.0.
+ */
+extern DECLSPEC int SDLCALL SDL_GameControllerGetSensorDataWithTimestamp(SDL_GameController *gamecontroller, SDL_SensorType type, Uint64 *timestamp, float *data, int num_values);
+
 /**
 /**
  * Start a rumble effect on a game controller.
  * Start a rumble effect on a game controller.
  *
  *
@@ -869,8 +941,9 @@ extern DECLSPEC int SDLCALL SDL_GameControllerRumble(SDL_GameController *gamecon
  * calling it with 0 intensity stops any rumbling.
  * calling it with 0 intensity stops any rumbling.
  *
  *
  * Note that this is rumbling of the _triggers_ and not the game controller as
  * Note that this is rumbling of the _triggers_ and not the game controller as
- * a whole. The first controller to offer this feature was the PlayStation 5's
- * DualShock 5.
+ * a whole. This is currently only supported on Xbox One controllers. If you
+ * want the (more common) whole-controller rumble, use
+ * SDL_GameControllerRumble() instead.
  *
  *
  * \param gamecontroller The controller to vibrate
  * \param gamecontroller The controller to vibrate
  * \param left_rumble The intensity of the left trigger rumble motor, from 0
  * \param left_rumble The intensity of the left trigger rumble motor, from 0
@@ -994,7 +1067,7 @@ extern DECLSPEC const char* SDLCALL SDL_GameControllerGetAppleSFSymbolsNameForAx
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_gamecontroller_h_ */
 #endif /* SDL_gamecontroller_h_ */
 
 

+ 7 - 7
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_gesture.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,14 +28,14 @@
 #ifndef SDL_gesture_h_
 #ifndef SDL_gesture_h_
 #define SDL_gesture_h_
 #define SDL_gesture_h_
 
 
-#include "SDL_stdinc.h"
-#include "SDL_error.h"
-#include "SDL_video.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_error.h>
+#include <SDL2/SDL_video.h>
 
 
-#include "SDL_touch.h"
+#include <SDL2/SDL_touch.h>
 
 
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -110,7 +110,7 @@ extern DECLSPEC int SDLCALL SDL_LoadDollarTemplates(SDL_TouchID touchId, SDL_RWo
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_gesture_h_ */
 #endif /* SDL_gesture_h_ */
 
 

+ 100 - 0
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_guid.h

@@ -0,0 +1,100 @@
+/*
+  Simple DirectMedia Layer
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
+
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+*/
+
+/**
+ *  \file SDL_guid.h
+ *
+ *  Include file for handling ::SDL_GUID values.
+ */
+
+#ifndef SDL_guid_h_
+#define SDL_guid_h_
+
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_error.h>
+
+#include <SDL2/begin_code.h>
+/* Set up for C function definitions, even when using C++ */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * An SDL_GUID is a 128-bit identifier for an input device that
+ *   identifies that device across runs of SDL programs on the same
+ *   platform.  If the device is detached and then re-attached to a
+ *   different port, or if the base system is rebooted, the device
+ *   should still report the same GUID.
+ *
+ * GUIDs are as precise as possible but are not guaranteed to
+ *   distinguish physically distinct but equivalent devices.  For
+ *   example, two game controllers from the same vendor with the same
+ *   product ID and revision may have the same GUID.
+ *
+ * GUIDs may be platform-dependent (i.e., the same device may report
+ *   different GUIDs on different operating systems).
+ */
+typedef struct {
+    Uint8 data[16];
+} SDL_GUID;
+
+/* Function prototypes */
+
+/**
+ * Get an ASCII string representation for a given ::SDL_GUID.
+ *
+ * You should supply at least 33 bytes for pszGUID.
+ *
+ * \param guid the ::SDL_GUID you wish to convert to string
+ * \param pszGUID buffer in which to write the ASCII string
+ * \param cbGUID the size of pszGUID
+ *
+ * \since This function is available since SDL 2.24.0.
+ *
+ * \sa SDL_GUIDFromString
+ */
+extern DECLSPEC void SDLCALL SDL_GUIDToString(SDL_GUID guid, char *pszGUID, int cbGUID);
+
+/**
+ * Convert a GUID string into a ::SDL_GUID structure.
+ *
+ * Performs no error checking. If this function is given a string containing
+ * an invalid GUID, the function will silently succeed, but the GUID generated
+ * will not be useful.
+ *
+ * \param pchGUID string containing an ASCII representation of a GUID
+ * \returns a ::SDL_GUID structure.
+ *
+ * \since This function is available since SDL 2.24.0.
+ *
+ * \sa SDL_GUIDToString
+ */
+extern DECLSPEC SDL_GUID SDLCALL SDL_GUIDFromString(const char *pchGUID);
+
+/* Ends C function definitions when using C++ */
+#ifdef __cplusplus
+}
+#endif
+#include <SDL2/close_code.h>
+
+#endif /* SDL_guid_h_ */
+
+/* vi: set ts=4 sw=4 expandtab: */

+ 6 - 6
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_haptic.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -107,11 +107,11 @@
 #ifndef SDL_haptic_h_
 #ifndef SDL_haptic_h_
 #define SDL_haptic_h_
 #define SDL_haptic_h_
 
 
-#include "SDL_stdinc.h"
-#include "SDL_error.h"
-#include "SDL_joystick.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_error.h>
+#include <SDL2/SDL_joystick.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -1334,7 +1334,7 @@ extern DECLSPEC int SDLCALL SDL_HapticRumbleStop(SDL_Haptic * haptic);
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_haptic_h_ */
 #endif /* SDL_haptic_h_ */
 
 

+ 4 - 4
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_hidapi.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -62,9 +62,9 @@
 #ifndef SDL_hidapi_h_
 #ifndef SDL_hidapi_h_
 #define SDL_hidapi_h_
 #define SDL_hidapi_h_
 
 
-#include "SDL_stdinc.h"
+#include <SDL2/SDL_stdinc.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -444,7 +444,7 @@ extern DECLSPEC void SDLCALL SDL_hid_ble_scan(SDL_bool active);
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_hidapi_h_ */
 #endif /* SDL_hidapi_h_ */
 
 

File diff suppressed because it is too large
+ 578 - 65
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_hints.h


+ 140 - 17
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_joystick.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -41,10 +41,12 @@
 #ifndef SDL_joystick_h_
 #ifndef SDL_joystick_h_
 #define SDL_joystick_h_
 #define SDL_joystick_h_
 
 
-#include "SDL_stdinc.h"
-#include "SDL_error.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_error.h>
+#include <SDL2/SDL_guid.h>
+#include <SDL2/SDL_mutex.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -65,13 +67,14 @@ extern "C" {
 /**
 /**
  * The joystick structure used to identify an SDL joystick
  * The joystick structure used to identify an SDL joystick
  */
  */
+#ifdef SDL_THREAD_SAFETY_ANALYSIS
+extern SDL_mutex *SDL_joystick_lock;
+#endif
 struct _SDL_Joystick;
 struct _SDL_Joystick;
 typedef struct _SDL_Joystick SDL_Joystick;
 typedef struct _SDL_Joystick SDL_Joystick;
 
 
 /* A structure that encodes the stable unique id for a joystick device */
 /* A structure that encodes the stable unique id for a joystick device */
-typedef struct {
-    Uint8 data[16];
-} SDL_JoystickGUID;
+typedef SDL_GUID SDL_JoystickGUID;
 
 
 /**
 /**
  * This is a unique ID for a joystick for the time it is connected to the system,
  * This is a unique ID for a joystick for the time it is connected to the system,
@@ -125,9 +128,14 @@ typedef enum
  * the API functions that take a joystick index will be valid, and joystick
  * the API functions that take a joystick index will be valid, and joystick
  * and game controller events will not be delivered.
  * and game controller events will not be delivered.
  *
  *
+ * As of SDL 2.26.0, you can take the joystick lock around reinitializing the
+ * joystick subsystem, to prevent other threads from seeing joysticks in an
+ * uninitialized state. However, all open joysticks will be closed and SDL
+ * functions called with them will fail.
+ *
  * \since This function is available since SDL 2.0.7.
  * \since This function is available since SDL 2.0.7.
  */
  */
-extern DECLSPEC void SDLCALL SDL_LockJoysticks(void);
+extern DECLSPEC void SDLCALL SDL_LockJoysticks(void) SDL_ACQUIRE(SDL_joystick_lock);
 
 
 
 
 /**
 /**
@@ -142,7 +150,7 @@ extern DECLSPEC void SDLCALL SDL_LockJoysticks(void);
  *
  *
  * \since This function is available since SDL 2.0.7.
  * \since This function is available since SDL 2.0.7.
  */
  */
-extern DECLSPEC void SDLCALL SDL_UnlockJoysticks(void);
+extern DECLSPEC void SDLCALL SDL_UnlockJoysticks(void) SDL_RELEASE(SDL_joystick_lock);
 
 
 /**
 /**
  * Count the number of joysticks attached to the system.
  * Count the number of joysticks attached to the system.
@@ -153,6 +161,7 @@ extern DECLSPEC void SDLCALL SDL_UnlockJoysticks(void);
  * \since This function is available since SDL 2.0.0.
  * \since This function is available since SDL 2.0.0.
  *
  *
  * \sa SDL_JoystickName
  * \sa SDL_JoystickName
+ * \sa SDL_JoystickPath
  * \sa SDL_JoystickOpen
  * \sa SDL_JoystickOpen
  */
  */
 extern DECLSPEC int SDLCALL SDL_NumJoysticks(void);
 extern DECLSPEC int SDLCALL SDL_NumJoysticks(void);
@@ -174,6 +183,23 @@ extern DECLSPEC int SDLCALL SDL_NumJoysticks(void);
  */
  */
 extern DECLSPEC const char *SDLCALL SDL_JoystickNameForIndex(int device_index);
 extern DECLSPEC const char *SDLCALL SDL_JoystickNameForIndex(int device_index);
 
 
+/**
+ * Get the implementation dependent path of a joystick.
+ *
+ * This can be called before any joysticks are opened.
+ *
+ * \param device_index the index of the joystick to query (the N'th joystick
+ *                     on the system)
+ * \returns the path of the selected joystick. If no path can be found, this
+ *          function returns NULL; call SDL_GetError() for more information.
+ *
+ * \since This function is available since SDL 2.24.0.
+ *
+ * \sa SDL_JoystickPath
+ * \sa SDL_JoystickOpen
+ */
+extern DECLSPEC const char *SDLCALL SDL_JoystickPathForIndex(int device_index);
+
 /**
 /**
  * Get the player index of a joystick, or -1 if it's not available This can be
  * Get the player index of a joystick, or -1 if it's not available This can be
  * called before any joysticks are opened.
  * called before any joysticks are opened.
@@ -262,13 +288,12 @@ extern DECLSPEC SDL_JoystickType SDLCALL SDL_JoystickGetDeviceType(int device_in
 /**
 /**
  * Get the instance ID of a joystick.
  * Get the instance ID of a joystick.
  *
  *
- * This can be called before any joysticks are opened. If the index is out of
- * range, this function will return -1.
+ * This can be called before any joysticks are opened.
  *
  *
  * \param device_index the index of the joystick to query (the N'th joystick
  * \param device_index the index of the joystick to query (the N'th joystick
  *                     on the system
  *                     on the system
  * \returns the instance id of the selected joystick. If called on an invalid
  * \returns the instance id of the selected joystick. If called on an invalid
- *          index, this function returns zero
+ *          index, this function returns -1.
  *
  *
  * \since This function is available since SDL 2.0.6.
  * \since This function is available since SDL 2.0.6.
  */
  */
@@ -330,6 +355,54 @@ extern DECLSPEC int SDLCALL SDL_JoystickAttachVirtual(SDL_JoystickType type,
                                                       int nbuttons,
                                                       int nbuttons,
                                                       int nhats);
                                                       int nhats);
 
 
+/**
+ * The structure that defines an extended virtual joystick description
+ *
+ * The caller must zero the structure and then initialize the version with `SDL_VIRTUAL_JOYSTICK_DESC_VERSION` before passing it to SDL_JoystickAttachVirtualEx()
+ *  All other elements of this structure are optional and can be left 0.
+ *
+ * \sa SDL_JoystickAttachVirtualEx
+ */
+typedef struct SDL_VirtualJoystickDesc
+{
+    Uint16 version;     /**< `SDL_VIRTUAL_JOYSTICK_DESC_VERSION` */
+    Uint16 type;        /**< `SDL_JoystickType` */
+    Uint16 naxes;       /**< the number of axes on this joystick */
+    Uint16 nbuttons;    /**< the number of buttons on this joystick */
+    Uint16 nhats;       /**< the number of hats on this joystick */
+    Uint16 vendor_id;   /**< the USB vendor ID of this joystick */
+    Uint16 product_id;  /**< the USB product ID of this joystick */
+    Uint16 padding;     /**< unused */
+    Uint32 button_mask; /**< A mask of which buttons are valid for this controller
+                             e.g. (1 << SDL_CONTROLLER_BUTTON_A) */
+    Uint32 axis_mask;   /**< A mask of which axes are valid for this controller
+                             e.g. (1 << SDL_CONTROLLER_AXIS_LEFTX) */
+    const char *name;   /**< the name of the joystick */
+
+    void *userdata;     /**< User data pointer passed to callbacks */
+    void (SDLCALL *Update)(void *userdata); /**< Called when the joystick state should be updated */
+    void (SDLCALL *SetPlayerIndex)(void *userdata, int player_index); /**< Called when the player index is set */
+    int (SDLCALL *Rumble)(void *userdata, Uint16 low_frequency_rumble, Uint16 high_frequency_rumble); /**< Implements SDL_JoystickRumble() */
+    int (SDLCALL *RumbleTriggers)(void *userdata, Uint16 left_rumble, Uint16 right_rumble); /**< Implements SDL_JoystickRumbleTriggers() */
+    int (SDLCALL *SetLED)(void *userdata, Uint8 red, Uint8 green, Uint8 blue); /**< Implements SDL_JoystickSetLED() */
+    int (SDLCALL *SendEffect)(void *userdata, const void *data, int size); /**< Implements SDL_JoystickSendEffect() */
+
+} SDL_VirtualJoystickDesc;
+
+/**
+ * \brief The current version of the SDL_VirtualJoystickDesc structure
+ */
+#define SDL_VIRTUAL_JOYSTICK_DESC_VERSION   1
+
+/**
+ * Attach a new virtual joystick with extended properties.
+ *
+ * \returns the joystick's device index, or -1 if an error occurred.
+ *
+ * \since This function is available since SDL 2.24.0.
+ */
+extern DECLSPEC int SDLCALL SDL_JoystickAttachVirtualEx(const SDL_VirtualJoystickDesc *desc);
+
 /**
 /**
  * Detach a virtual joystick.
  * Detach a virtual joystick.
  *
  *
@@ -360,6 +433,10 @@ extern DECLSPEC SDL_bool SDLCALL SDL_JoystickIsVirtual(int device_index);
  * the following: SDL_PollEvent, SDL_PumpEvents, SDL_WaitEventTimeout,
  * the following: SDL_PollEvent, SDL_PumpEvents, SDL_WaitEventTimeout,
  * SDL_WaitEvent.
  * SDL_WaitEvent.
  *
  *
+ * Note that when sending trigger axes, you should scale the value to the full
+ * range of Sint16. For example, a trigger at rest would have the value of
+ * `SDL_JOYSTICK_AXIS_MIN`.
+ *
  * \param joystick the virtual joystick on which to set state.
  * \param joystick the virtual joystick on which to set state.
  * \param axis the specific axis on the virtual joystick to set.
  * \param axis the specific axis on the virtual joystick to set.
  * \param value the new value for the specified axis.
  * \param value the new value for the specified axis.
@@ -419,6 +496,19 @@ extern DECLSPEC int SDLCALL SDL_JoystickSetVirtualHat(SDL_Joystick *joystick, in
  */
  */
 extern DECLSPEC const char *SDLCALL SDL_JoystickName(SDL_Joystick *joystick);
 extern DECLSPEC const char *SDLCALL SDL_JoystickName(SDL_Joystick *joystick);
 
 
+/**
+ * Get the implementation dependent path of a joystick.
+ *
+ * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen()
+ * \returns the path of the selected joystick. If no path can be found, this
+ *          function returns NULL; call SDL_GetError() for more information.
+ *
+ * \since This function is available since SDL 2.24.0.
+ *
+ * \sa SDL_JoystickPathForIndex
+ */
+extern DECLSPEC const char *SDLCALL SDL_JoystickPath(SDL_Joystick *joystick);
+
 /**
 /**
  * Get the player index of an opened joystick.
  * Get the player index of an opened joystick.
  *
  *
@@ -436,7 +526,8 @@ extern DECLSPEC int SDLCALL SDL_JoystickGetPlayerIndex(SDL_Joystick *joystick);
  * Set the player index of an opened joystick.
  * Set the player index of an opened joystick.
  *
  *
  * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen()
  * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen()
- * \param player_index the player index to set.
+ * \param player_index Player index to assign to this joystick, or -1 to clear
+ *                     the player index and turn off player LEDs.
  *
  *
  * \since This function is available since SDL 2.0.12.
  * \since This function is available since SDL 2.0.12.
  */
  */
@@ -495,6 +586,19 @@ extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetProduct(SDL_Joystick *joystick);
  */
  */
 extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetProductVersion(SDL_Joystick *joystick);
 extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetProductVersion(SDL_Joystick *joystick);
 
 
+/**
+ * Get the firmware version of an opened joystick, if available.
+ *
+ * If the firmware version isn't available this function returns 0.
+ *
+ * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen()
+ * \returns the firmware version of the selected joystick, or 0 if
+ *          unavailable.
+ *
+ * \since This function is available since SDL 2.24.0.
+ */
+extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetFirmwareVersion(SDL_Joystick *joystick);
+
 /**
 /**
  * Get the serial number of an opened joystick, if available.
  * Get the serial number of an opened joystick, if available.
  *
  *
@@ -551,6 +655,25 @@ extern DECLSPEC void SDLCALL SDL_JoystickGetGUIDString(SDL_JoystickGUID guid, ch
  */
  */
 extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetGUIDFromString(const char *pchGUID);
 extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetGUIDFromString(const char *pchGUID);
 
 
+/**
+ * Get the device information encoded in a SDL_JoystickGUID structure
+ *
+ * \param guid the SDL_JoystickGUID you wish to get info about
+ * \param vendor A pointer filled in with the device VID, or 0 if not
+ *               available
+ * \param product A pointer filled in with the device PID, or 0 if not
+ *                available
+ * \param version A pointer filled in with the device version, or 0 if not
+ *                available
+ * \param crc16 A pointer filled in with a CRC used to distinguish different
+ *              products with the same VID/PID, or 0 if not available
+ *
+ * \since This function is available since SDL 2.26.0.
+ *
+ * \sa SDL_JoystickGetDeviceGUID
+ */
+extern DECLSPEC void SDLCALL SDL_GetJoystickGUIDInfo(SDL_JoystickGUID guid, Uint16 *vendor, Uint16 *product, Uint16 *version, Uint16 *crc16);
+
 /**
 /**
  * Get the status of a specified joystick.
  * Get the status of a specified joystick.
  *
  *
@@ -829,9 +952,9 @@ extern DECLSPEC int SDLCALL SDL_JoystickRumble(SDL_Joystick *joystick, Uint16 lo
  * Each call to this function cancels any previous trigger rumble effect, and
  * Each call to this function cancels any previous trigger rumble effect, and
  * calling it with 0 intensity stops any rumbling.
  * calling it with 0 intensity stops any rumbling.
  *
  *
- * Note that this function is for _trigger_ rumble; the first joystick to
- * support this was the PlayStation 5's DualShock 5 controller. If you want
- * the (more common) whole-controller rumble, use SDL_JoystickRumble()
+ * Note that this is rumbling of the _triggers_ and not the game controller as
+ * a whole. This is currently only supported on Xbox One controllers. If you
+ * want the (more common) whole-controller rumble, use SDL_JoystickRumble()
  * instead.
  * instead.
  *
  *
  * \param joystick The joystick to vibrate
  * \param joystick The joystick to vibrate
@@ -939,7 +1062,7 @@ extern DECLSPEC SDL_JoystickPowerLevel SDLCALL SDL_JoystickCurrentPowerLevel(SDL
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_joystick_h_ */
 #endif /* SDL_joystick_h_ */
 
 

+ 45 - 8
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_keyboard.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,12 +28,12 @@
 #ifndef SDL_keyboard_h_
 #ifndef SDL_keyboard_h_
 #define SDL_keyboard_h_
 #define SDL_keyboard_h_
 
 
-#include "SDL_stdinc.h"
-#include "SDL_error.h"
-#include "SDL_keycode.h"
-#include "SDL_video.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_error.h>
+#include <SDL2/SDL_keycode.h>
+#include <SDL2/SDL_video.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -90,9 +90,21 @@ extern DECLSPEC SDL_Window * SDLCALL SDL_GetKeyboardFocus(void);
  * \since This function is available since SDL 2.0.0.
  * \since This function is available since SDL 2.0.0.
  *
  *
  * \sa SDL_PumpEvents
  * \sa SDL_PumpEvents
+ * \sa SDL_ResetKeyboard
  */
  */
 extern DECLSPEC const Uint8 *SDLCALL SDL_GetKeyboardState(int *numkeys);
 extern DECLSPEC const Uint8 *SDLCALL SDL_GetKeyboardState(int *numkeys);
 
 
+/**
+ * Clear the state of the keyboard
+ *
+ * This function will generate key up events for all pressed keys.
+ *
+ * \since This function is available since SDL 2.24.0.
+ *
+ * \sa SDL_GetKeyboardState
+ */
+extern DECLSPEC void SDLCALL SDL_ResetKeyboard(void);
+
 /**
 /**
  * Get the current key modifier state for the keyboard.
  * Get the current key modifier state for the keyboard.
  *
  *
@@ -268,9 +280,34 @@ extern DECLSPEC SDL_bool SDLCALL SDL_IsTextInputActive(void);
  */
  */
 extern DECLSPEC void SDLCALL SDL_StopTextInput(void);
 extern DECLSPEC void SDLCALL SDL_StopTextInput(void);
 
 
+/**
+ * Dismiss the composition window/IME without disabling the subsystem.
+ *
+ * \since This function is available since SDL 2.0.22.
+ *
+ * \sa SDL_StartTextInput
+ * \sa SDL_StopTextInput
+ */
+extern DECLSPEC void SDLCALL SDL_ClearComposition(void);
+
+/**
+ * Returns if an IME Composite or Candidate window is currently shown.
+ *
+ * \since This function is available since SDL 2.0.22.
+ */
+extern DECLSPEC SDL_bool SDLCALL SDL_IsTextInputShown(void);
+
 /**
 /**
  * Set the rectangle used to type Unicode text inputs.
  * Set the rectangle used to type Unicode text inputs.
  *
  *
+ * To start text input in a given location, this function is intended to be
+ * called before SDL_StartTextInput, although some platforms support moving
+ * the rectangle even while text input (and a composition) is active.
+ *
+ * Note: If you want to use the system native IME window, try setting hint
+ * **SDL_HINT_IME_SHOW_UI** to **1**, otherwise this function won't give you
+ * any feedback.
+ *
  * \param rect the SDL_Rect structure representing the rectangle to receive
  * \param rect the SDL_Rect structure representing the rectangle to receive
  *             text (ignored if NULL)
  *             text (ignored if NULL)
  *
  *
@@ -278,7 +315,7 @@ extern DECLSPEC void SDLCALL SDL_StopTextInput(void);
  *
  *
  * \sa SDL_StartTextInput
  * \sa SDL_StartTextInput
  */
  */
-extern DECLSPEC void SDLCALL SDL_SetTextInputRect(SDL_Rect *rect);
+extern DECLSPEC void SDLCALL SDL_SetTextInputRect(const SDL_Rect *rect);
 
 
 /**
 /**
  * Check whether the platform has screen keyboard support.
  * Check whether the platform has screen keyboard support.
@@ -309,7 +346,7 @@ extern DECLSPEC SDL_bool SDLCALL SDL_IsScreenKeyboardShown(SDL_Window *window);
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_keyboard_h_ */
 #endif /* SDL_keyboard_h_ */
 
 

+ 10 - 5
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_keycode.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,8 +28,8 @@
 #ifndef SDL_keycode_h_
 #ifndef SDL_keycode_h_
 #define SDL_keycode_h_
 #define SDL_keycode_h_
 
 
-#include "SDL_stdinc.h"
-#include "SDL_scancode.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_scancode.h>
 
 
 /**
 /**
  *  \brief The SDL virtual key representation.
  *  \brief The SDL virtual key representation.
@@ -40,7 +40,7 @@
  *  an SDLK_* constant for those keys that do not generate characters.
  *  an SDLK_* constant for those keys that do not generate characters.
  *
  *
  *  A special exception is the number keys at the top of the keyboard which
  *  A special exception is the number keys at the top of the keyboard which
- *  always map to SDLK_0...SDLK_9, regardless of layout.
+ *  map to SDLK_0...SDLK_9 on AZERTY layouts.
  */
  */
 typedef Sint32 SDL_Keycode;
 typedef Sint32 SDL_Keycode;
 
 
@@ -318,7 +318,12 @@ typedef enum
     SDLK_APP2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_APP2),
     SDLK_APP2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_APP2),
 
 
     SDLK_AUDIOREWIND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOREWIND),
     SDLK_AUDIOREWIND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOREWIND),
-    SDLK_AUDIOFASTFORWARD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOFASTFORWARD)
+    SDLK_AUDIOFASTFORWARD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOFASTFORWARD),
+
+    SDLK_SOFTLEFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SOFTLEFT),
+    SDLK_SOFTRIGHT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SOFTRIGHT),
+    SDLK_CALL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CALL),
+    SDLK_ENDCALL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_ENDCALL)
 } SDL_KeyCode;
 } SDL_KeyCode;
 
 
 /**
 /**

+ 5 - 5
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_loadso.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -41,10 +41,10 @@
 #ifndef SDL_loadso_h_
 #ifndef SDL_loadso_h_
 #define SDL_loadso_h_
 #define SDL_loadso_h_
 
 
-#include "SDL_stdinc.h"
-#include "SDL_error.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_error.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -108,7 +108,7 @@ extern DECLSPEC void SDLCALL SDL_UnloadObject(void *handle);
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_loadso_h_ */
 #endif /* SDL_loadso_h_ */
 
 

+ 5 - 5
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_locale.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,10 +28,10 @@
 #ifndef _SDL_locale_h
 #ifndef _SDL_locale_h
 #define _SDL_locale_h
 #define _SDL_locale_h
 
 
-#include "SDL_stdinc.h"
-#include "SDL_error.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_error.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 /* *INDENT-OFF* */
 /* *INDENT-OFF* */
@@ -96,7 +96,7 @@ extern DECLSPEC SDL_Locale * SDLCALL SDL_GetPreferredLocales(void);
 }
 }
 /* *INDENT-ON* */
 /* *INDENT-ON* */
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* _SDL_locale_h */
 #endif /* _SDL_locale_h */
 
 

+ 6 - 6
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_log.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -37,9 +37,9 @@
 #ifndef SDL_log_h_
 #ifndef SDL_log_h_
 #define SDL_log_h_
 #define SDL_log_h_
 
 
-#include "SDL_stdinc.h"
+#include <SDL2/SDL_stdinc.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -47,9 +47,9 @@ extern "C" {
 
 
 
 
 /**
 /**
- *  \brief The maximum size of a log message
+ *  \brief The maximum size of a log message prior to SDL 2.0.24
  *
  *
- *  Messages longer than the maximum size will be truncated
+ *  As of 2.0.24 there is no limit to the length of SDL log messages.
  */
  */
 #define SDL_MAX_LOG_MESSAGE 4096
 #define SDL_MAX_LOG_MESSAGE 4096
 
 
@@ -397,7 +397,7 @@ extern DECLSPEC void SDLCALL SDL_LogSetOutputFunction(SDL_LogOutputFunction call
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_log_h_ */
 #endif /* SDL_log_h_ */
 
 

+ 53 - 6
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_main.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -22,7 +22,7 @@
 #ifndef SDL_main_h_
 #ifndef SDL_main_h_
 #define SDL_main_h_
 #define SDL_main_h_
 
 
-#include "SDL_stdinc.h"
+#include <SDL2/SDL_stdinc.h>
 
 
 /**
 /**
  *  \file SDL_main.h
  *  \file SDL_main.h
@@ -51,6 +51,15 @@
 */
 */
 #define SDL_MAIN_NEEDED
 #define SDL_MAIN_NEEDED
 
 
+#elif defined(__GDK__)
+/* On GDK, SDL provides a main function that initializes the game runtime.
+
+   Please note that #include'ing SDL_main.h is not enough to get a main()
+   function working. You must either link against SDL2main or, if not possible,
+   call the SDL_GDKRunApp function from your entry point.
+*/
+#define SDL_MAIN_NEEDED
+
 #elif defined(__IPHONEOS__)
 #elif defined(__IPHONEOS__)
 /* On iOS SDL provides a main function that creates an application delegate
 /* On iOS SDL provides a main function that creates an application delegate
    and starts the iOS application run loop.
    and starts the iOS application run loop.
@@ -92,6 +101,22 @@
  */
  */
 #define SDL_MAIN_AVAILABLE
 #define SDL_MAIN_AVAILABLE
 
 
+#elif defined(__PS2__)
+#define SDL_MAIN_AVAILABLE
+
+#define SDL_PS2_SKIP_IOP_RESET() \
+   void reset_IOP(); \
+   void reset_IOP() {}
+
+#elif defined(__3DS__)
+/*
+  On N3DS, SDL provides a main function that sets up the screens
+  and storage.
+
+  If you provide this yourself, you may define SDL_MAIN_HANDLED
+*/
+#define SDL_MAIN_AVAILABLE
+
 #endif
 #endif
 #endif /* SDL_MAIN_HANDLED */
 #endif /* SDL_MAIN_HANDLED */
 
 
@@ -118,7 +143,7 @@
 #define main    SDL_main
 #define main    SDL_main
 #endif
 #endif
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
 #endif
 #endif
@@ -145,7 +170,7 @@ extern SDLMAIN_DECLSPEC int SDL_main(int argc, char *argv[]);
  */
  */
 extern DECLSPEC void SDLCALL SDL_SetMainReady(void);
 extern DECLSPEC void SDLCALL SDL_SetMainReady(void);
 
 
-#ifdef __WIN32__
+#if defined(__WIN32__) || defined(__GDK__)
 
 
 /**
 /**
  * Register a win32 window class for SDL's use.
  * Register a win32 window class for SDL's use.
@@ -189,7 +214,7 @@ extern DECLSPEC int SDLCALL SDL_RegisterApp(const char *name, Uint32 style, void
  */
  */
 extern DECLSPEC void SDLCALL SDL_UnregisterApp(void);
 extern DECLSPEC void SDLCALL SDL_UnregisterApp(void);
 
 
-#endif /* __WIN32__ */
+#endif /* defined(__WIN32__) || defined(__GDK__) */
 
 
 
 
 #ifdef __WINRT__
 #ifdef __WINRT__
@@ -224,11 +249,33 @@ extern DECLSPEC int SDLCALL SDL_UIKitRunApp(int argc, char *argv[], SDL_main_fun
 
 
 #endif /* __IPHONEOS__ */
 #endif /* __IPHONEOS__ */
 
 
+#ifdef __GDK__
+
+/**
+ * Initialize and launch an SDL GDK application.
+ *
+ * \param mainFunction the SDL app's C-style main(), an SDL_main_func
+ * \param reserved reserved for future use; should be NULL
+ * \returns 0 on success or -1 on failure; call SDL_GetError() to retrieve
+ *          more information on the failure.
+ *
+ * \since This function is available since SDL 2.24.0.
+ */
+extern DECLSPEC int SDLCALL SDL_GDKRunApp(SDL_main_func mainFunction, void *reserved);
+
+/**
+ * Callback from the application to let the suspend continue.
+ *
+ * \since This function is available since SDL 2.28.0.
+ */
+extern DECLSPEC void SDLCALL SDL_GDKSuspendComplete(void);
+
+#endif /* __GDK__ */
 
 
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_main_h_ */
 #endif /* SDL_main_h_ */
 
 

+ 5 - 5
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_messagebox.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -22,10 +22,10 @@
 #ifndef SDL_messagebox_h_
 #ifndef SDL_messagebox_h_
 #define SDL_messagebox_h_
 #define SDL_messagebox_h_
 
 
-#include "SDL_stdinc.h"
-#include "SDL_video.h"      /* For SDL_Window */
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_video.h>      /* For SDL_Window */
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -186,7 +186,7 @@ extern DECLSPEC int SDLCALL SDL_ShowSimpleMessageBox(Uint32 flags, const char *t
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_messagebox_h_ */
 #endif /* SDL_messagebox_h_ */
 
 

+ 6 - 5
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_metal.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,9 +28,9 @@
 #ifndef SDL_metal_h_
 #ifndef SDL_metal_h_
 #define SDL_metal_h_
 #define SDL_metal_h_
 
 
-#include "SDL_video.h"
+#include <SDL2/SDL_video.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -82,7 +82,7 @@ extern DECLSPEC void SDLCALL SDL_Metal_DestroyView(SDL_MetalView view);
  *
  *
  * \since This function is available since SDL 2.0.14.
  * \since This function is available since SDL 2.0.14.
  *
  *
- * \sa SDL_MetalCreateView
+ * \sa SDL_Metal_CreateView
  */
  */
 extern DECLSPEC void *SDLCALL SDL_Metal_GetLayer(SDL_MetalView view);
 extern DECLSPEC void *SDLCALL SDL_Metal_GetLayer(SDL_MetalView view);
 
 
@@ -92,6 +92,7 @@ extern DECLSPEC void *SDLCALL SDL_Metal_GetLayer(SDL_MetalView view);
  *
  *
  * \param window SDL_Window from which the drawable size should be queried
  * \param window SDL_Window from which the drawable size should be queried
  * \param w Pointer to variable for storing the width in pixels, may be NULL
  * \param w Pointer to variable for storing the width in pixels, may be NULL
+ * \param h Pointer to variable for storing the height in pixels, may be NULL
  *
  *
  * \since This function is available since SDL 2.0.14.
  * \since This function is available since SDL 2.0.14.
  *
  *
@@ -107,6 +108,6 @@ extern DECLSPEC void SDLCALL SDL_Metal_GetDrawableSize(SDL_Window* window, int *
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_metal_h_ */
 #endif /* SDL_metal_h_ */

+ 4 - 4
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_misc.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,9 +28,9 @@
 #ifndef SDL_misc_h_
 #ifndef SDL_misc_h_
 #define SDL_misc_h_
 #define SDL_misc_h_
 
 
-#include "SDL_stdinc.h"
+#include <SDL2/SDL_stdinc.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 
 
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
@@ -72,7 +72,7 @@ extern DECLSPEC int SDLCALL SDL_OpenURL(const char *url);
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_misc_h_ */
 #endif /* SDL_misc_h_ */
 
 

+ 24 - 14
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_mouse.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,11 +28,11 @@
 #ifndef SDL_mouse_h_
 #ifndef SDL_mouse_h_
 #define SDL_mouse_h_
 #define SDL_mouse_h_
 
 
-#include "SDL_stdinc.h"
-#include "SDL_error.h"
-#include "SDL_video.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_error.h>
+#include <SDL2/SDL_video.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -154,7 +154,9 @@ extern DECLSPEC Uint32 SDLCALL SDL_GetRelativeMouseState(int *x, int *y);
 /**
 /**
  * Move the mouse cursor to the given position within the window.
  * Move the mouse cursor to the given position within the window.
  *
  *
- * This function generates a mouse motion event.
+ * This function generates a mouse motion event if relative mode is not
+ * enabled. If relative mode is enabled, you can force mouse events for the
+ * warp by setting the SDL_HINT_MOUSE_RELATIVE_WARP_MOTION hint.
  *
  *
  * Note that this function will appear to succeed, but not actually move the
  * Note that this function will appear to succeed, but not actually move the
  * mouse when used over Microsoft Remote Desktop.
  * mouse when used over Microsoft Remote Desktop.
@@ -196,13 +198,9 @@ extern DECLSPEC int SDLCALL SDL_WarpMouseGlobal(int x, int y);
 /**
 /**
  * Set relative mouse mode.
  * Set relative mouse mode.
  *
  *
- * While the mouse is in relative mode, the cursor is hidden, and the driver
- * will try to report continuous motion in the current window. Only relative
- * motion events will be delivered, the mouse position will not change.
- *
- * Note that this function will not be able to provide continuous relative
- * motion when used over Microsoft Remote Desktop, instead motion is limited
- * to the bounds of the screen.
+ * While the mouse is in relative mode, the cursor is hidden, the mouse
+ * position is constrained to the window, and SDL will report continuous
+ * relative mouse motion even if the mouse is at the edge of the window.
  *
  *
  * This function will flush any pending mouse motion.
  * This function will flush any pending mouse motion.
  *
  *
@@ -245,6 +243,15 @@ extern DECLSPEC int SDLCALL SDL_SetRelativeMouseMode(SDL_bool enabled);
  * While capturing is enabled, the current window will have the
  * While capturing is enabled, the current window will have the
  * `SDL_WINDOW_MOUSE_CAPTURE` flag set.
  * `SDL_WINDOW_MOUSE_CAPTURE` flag set.
  *
  *
+ * Please note that as of SDL 2.0.22, SDL will attempt to "auto capture" the
+ * mouse while the user is pressing a button; this is to try and make mouse
+ * behavior more consistent between platforms, and deal with the common case
+ * of a user dragging the mouse outside of the window. This means that if you
+ * are calling SDL_CaptureMouse() only to deal with this situation, you no
+ * longer have to (although it is safe to do so). If this causes problems for
+ * your app, you can disable auto capture by setting the
+ * `SDL_HINT_MOUSE_AUTO_CAPTURE` hint to zero.
+ *
  * \param enabled SDL_TRUE to enable capturing, SDL_FALSE to disable.
  * \param enabled SDL_TRUE to enable capturing, SDL_FALSE to disable.
  * \returns 0 on success or -1 if not supported; call SDL_GetError() for more
  * \returns 0 on success or -1 if not supported; call SDL_GetError() for more
  *          information.
  *          information.
@@ -378,6 +385,9 @@ extern DECLSPEC SDL_Cursor *SDLCALL SDL_GetCursor(void);
 /**
 /**
  * Get the default cursor.
  * Get the default cursor.
  *
  *
+ * You do not have to call SDL_FreeCursor() on the return value, but it is
+ * safe to do so.
+ *
  * \returns the default cursor on success or NULL on failure.
  * \returns the default cursor on success or NULL on failure.
  *
  *
  * \since This function is available since SDL 2.0.0.
  * \since This function is available since SDL 2.0.0.
@@ -447,7 +457,7 @@ extern DECLSPEC int SDLCALL SDL_ShowCursor(int toggle);
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_mouse_h_ */
 #endif /* SDL_mouse_h_ */
 
 

+ 84 - 10
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_mutex.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,10 +28,84 @@
  *  Functions to provide thread synchronization primitives.
  *  Functions to provide thread synchronization primitives.
  */
  */
 
 
-#include "SDL_stdinc.h"
-#include "SDL_error.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_error.h>
 
 
-#include "begin_code.h"
+/******************************************************************************/
+/* Enable thread safety attributes only with clang.
+ * The attributes can be safely erased when compiling with other compilers.
+ */
+#if defined(SDL_THREAD_SAFETY_ANALYSIS) && \
+    defined(__clang__) && (!defined(SWIG))
+#define SDL_THREAD_ANNOTATION_ATTRIBUTE__(x)   __attribute__((x))
+#else
+#define SDL_THREAD_ANNOTATION_ATTRIBUTE__(x)   /* no-op */
+#endif
+
+#define SDL_CAPABILITY(x) \
+  SDL_THREAD_ANNOTATION_ATTRIBUTE__(capability(x))
+
+#define SDL_SCOPED_CAPABILITY \
+  SDL_THREAD_ANNOTATION_ATTRIBUTE__(scoped_lockable)
+
+#define SDL_GUARDED_BY(x) \
+  SDL_THREAD_ANNOTATION_ATTRIBUTE__(guarded_by(x))
+
+#define SDL_PT_GUARDED_BY(x) \
+  SDL_THREAD_ANNOTATION_ATTRIBUTE__(pt_guarded_by(x))
+
+#define SDL_ACQUIRED_BEFORE(x) \
+  SDL_THREAD_ANNOTATION_ATTRIBUTE__(acquired_before(x))
+
+#define SDL_ACQUIRED_AFTER(x) \
+  SDL_THREAD_ANNOTATION_ATTRIBUTE__(acquired_after(x))
+
+#define SDL_REQUIRES(x) \
+  SDL_THREAD_ANNOTATION_ATTRIBUTE__(requires_capability(x))
+
+#define SDL_REQUIRES_SHARED(x) \
+  SDL_THREAD_ANNOTATION_ATTRIBUTE__(requires_shared_capability(x))
+
+#define SDL_ACQUIRE(x) \
+  SDL_THREAD_ANNOTATION_ATTRIBUTE__(acquire_capability(x))
+
+#define SDL_ACQUIRE_SHARED(x) \
+  SDL_THREAD_ANNOTATION_ATTRIBUTE__(acquire_shared_capability(x))
+
+#define SDL_RELEASE(x) \
+  SDL_THREAD_ANNOTATION_ATTRIBUTE__(release_capability(x))
+
+#define SDL_RELEASE_SHARED(x) \
+  SDL_THREAD_ANNOTATION_ATTRIBUTE__(release_shared_capability(x))
+
+#define SDL_RELEASE_GENERIC(x) \
+  SDL_THREAD_ANNOTATION_ATTRIBUTE__(release_generic_capability(x))
+
+#define SDL_TRY_ACQUIRE(x, y) \
+  SDL_THREAD_ANNOTATION_ATTRIBUTE__(try_acquire_capability(x, y))
+
+#define SDL_TRY_ACQUIRE_SHARED(x, y) \
+  SDL_THREAD_ANNOTATION_ATTRIBUTE__(try_acquire_shared_capability(x, y))
+
+#define SDL_EXCLUDES(x) \
+  SDL_THREAD_ANNOTATION_ATTRIBUTE__(locks_excluded(x))
+
+#define SDL_ASSERT_CAPABILITY(x) \
+  SDL_THREAD_ANNOTATION_ATTRIBUTE__(assert_capability(x))
+
+#define SDL_ASSERT_SHARED_CAPABILITY(x) \
+  SDL_THREAD_ANNOTATION_ATTRIBUTE__(assert_shared_capability(x))
+
+#define SDL_RETURN_CAPABILITY(x) \
+  SDL_THREAD_ANNOTATION_ATTRIBUTE__(lock_returned(x))
+
+#define SDL_NO_THREAD_SAFETY_ANALYSIS \
+  SDL_THREAD_ANNOTATION_ATTRIBUTE__(no_thread_safety_analysis)
+
+/******************************************************************************/
+
+
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -96,7 +170,7 @@ extern DECLSPEC SDL_mutex *SDLCALL SDL_CreateMutex(void);
  *
  *
  * \since This function is available since SDL 2.0.0.
  * \since This function is available since SDL 2.0.0.
  */
  */
-extern DECLSPEC int SDLCALL SDL_LockMutex(SDL_mutex * mutex);
+extern DECLSPEC int SDLCALL SDL_LockMutex(SDL_mutex * mutex) SDL_ACQUIRE(mutex);
 #define SDL_mutexP(m)   SDL_LockMutex(m)
 #define SDL_mutexP(m)   SDL_LockMutex(m)
 
 
 /**
 /**
@@ -119,7 +193,7 @@ extern DECLSPEC int SDLCALL SDL_LockMutex(SDL_mutex * mutex);
  * \sa SDL_LockMutex
  * \sa SDL_LockMutex
  * \sa SDL_UnlockMutex
  * \sa SDL_UnlockMutex
  */
  */
-extern DECLSPEC int SDLCALL SDL_TryLockMutex(SDL_mutex * mutex);
+extern DECLSPEC int SDLCALL SDL_TryLockMutex(SDL_mutex * mutex) SDL_TRY_ACQUIRE(0, mutex);
 
 
 /**
 /**
  * Unlock the mutex.
  * Unlock the mutex.
@@ -138,7 +212,7 @@ extern DECLSPEC int SDLCALL SDL_TryLockMutex(SDL_mutex * mutex);
  *
  *
  * \since This function is available since SDL 2.0.0.
  * \since This function is available since SDL 2.0.0.
  */
  */
-extern DECLSPEC int SDLCALL SDL_UnlockMutex(SDL_mutex * mutex);
+extern DECLSPEC int SDLCALL SDL_UnlockMutex(SDL_mutex * mutex) SDL_RELEASE(mutex);
 #define SDL_mutexV(m)   SDL_UnlockMutex(m)
 #define SDL_mutexV(m)   SDL_UnlockMutex(m)
 
 
 /**
 /**
@@ -276,7 +350,7 @@ extern DECLSPEC int SDLCALL SDL_SemTryWait(SDL_sem * sem);
  * successful it will atomically decrement the semaphore value.
  * successful it will atomically decrement the semaphore value.
  *
  *
  * \param sem the semaphore to wait on
  * \param sem the semaphore to wait on
- * \param ms the length of the timeout, in milliseconds
+ * \param timeout the length of the timeout, in milliseconds
  * \returns 0 if the wait succeeds, `SDL_MUTEX_TIMEDOUT` if the wait does not
  * \returns 0 if the wait succeeds, `SDL_MUTEX_TIMEDOUT` if the wait does not
  *          succeed in the allotted time, or a negative error code on failure;
  *          succeed in the allotted time, or a negative error code on failure;
  *          call SDL_GetError() for more information.
  *          call SDL_GetError() for more information.
@@ -290,7 +364,7 @@ extern DECLSPEC int SDLCALL SDL_SemTryWait(SDL_sem * sem);
  * \sa SDL_SemValue
  * \sa SDL_SemValue
  * \sa SDL_SemWait
  * \sa SDL_SemWait
  */
  */
-extern DECLSPEC int SDLCALL SDL_SemWaitTimeout(SDL_sem * sem, Uint32 ms);
+extern DECLSPEC int SDLCALL SDL_SemWaitTimeout(SDL_sem *sem, Uint32 timeout);
 
 
 /**
 /**
  * Atomically increment a semaphore's value and wake waiting threads.
  * Atomically increment a semaphore's value and wake waiting threads.
@@ -464,7 +538,7 @@ extern DECLSPEC int SDLCALL SDL_CondWaitTimeout(SDL_cond * cond,
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_mutex_h_ */
 #endif /* SDL_mutex_h_ */
 
 

+ 1 - 1
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_name.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages

+ 4 - 55
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_opengl.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -35,7 +35,7 @@
 #ifndef SDL_opengl_h_
 #ifndef SDL_opengl_h_
 #define SDL_opengl_h_
 #define SDL_opengl_h_
 
 
-#include "SDL_config.h"
+#include <SDL2/SDL_config.h>
 
 
 #ifndef __IPHONEOS__  /* No OpenGL on iOS. */
 #ifndef __IPHONEOS__  /* No OpenGL on iOS. */
 
 
@@ -69,7 +69,7 @@
 #define __gl_h_
 #define __gl_h_
 
 
 #if defined(USE_MGL_NAMESPACE)
 #if defined(USE_MGL_NAMESPACE)
-#include "gl_mangle.h"
+#include <SDL2/gl_mangle.h>
 #endif
 #endif
 
 
 
 
@@ -2102,62 +2102,11 @@ typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLsh
  * defined in gl.h).  Otherwise, extensions will be included from glext.h.
  * defined in gl.h).  Otherwise, extensions will be included from glext.h.
  */
  */
 #if !defined(NO_SDL_GLEXT) && !defined(GL_GLEXT_LEGACY)
 #if !defined(NO_SDL_GLEXT) && !defined(GL_GLEXT_LEGACY)
-#include "SDL_opengl_glext.h"
+#include <SDL2/SDL_opengl_glext.h>
 #endif  /* GL_GLEXT_LEGACY */
 #endif  /* GL_GLEXT_LEGACY */
 
 
 
 
 
 
-/*
- * ???. GL_MESA_packed_depth_stencil
- * XXX obsolete
- */
-#ifndef GL_MESA_packed_depth_stencil
-#define GL_MESA_packed_depth_stencil 1
-
-#define GL_DEPTH_STENCIL_MESA			0x8750
-#define GL_UNSIGNED_INT_24_8_MESA		0x8751
-#define GL_UNSIGNED_INT_8_24_REV_MESA		0x8752
-#define GL_UNSIGNED_SHORT_15_1_MESA		0x8753
-#define GL_UNSIGNED_SHORT_1_15_REV_MESA		0x8754
-
-#endif /* GL_MESA_packed_depth_stencil */
-
-
-#ifndef GL_ATI_blend_equation_separate
-#define GL_ATI_blend_equation_separate 1
-
-#define GL_ALPHA_BLEND_EQUATION_ATI	        0x883D
-
-GLAPI void GLAPIENTRY glBlendEquationSeparateATI( GLenum modeRGB, GLenum modeA );
-typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEATIPROC) (GLenum modeRGB, GLenum modeA);
-
-#endif /* GL_ATI_blend_equation_separate */
-
-
-/* GL_OES_EGL_image */
-#ifndef GL_OES_EGL_image
-typedef void* GLeglImageOES;
-#endif
-
-#ifndef GL_OES_EGL_image
-#define GL_OES_EGL_image 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image);
-GLAPI void APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image);
-#endif
-typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image);
-typedef void (APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image);
-#endif
-
-
-/**
- ** NOTE!!!!!  If you add new functions to this file, or update
- ** glext.h be sure to regenerate the gl_mangle.h file.  See comments
- ** in that file for details.
- **/
-
-
-
 /**********************************************************************
 /**********************************************************************
  * Begin system-specific stuff
  * Begin system-specific stuff
  */
  */

File diff suppressed because it is too large
+ 706 - 91
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_opengl_glext.h


+ 2 - 2
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_opengles.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -24,7 +24,7 @@
  *
  *
  *  This is a simple file to encapsulate the OpenGL ES 1.X API headers.
  *  This is a simple file to encapsulate the OpenGL ES 1.X API headers.
  */
  */
-#include "SDL_config.h"
+#include <SDL2/SDL_config.h>
 
 
 #ifdef __IPHONEOS__
 #ifdef __IPHONEOS__
 #include <OpenGLES/ES1/gl.h>
 #include <OpenGLES/ES1/gl.h>

+ 6 - 6
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_opengles2.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -24,7 +24,7 @@
  *
  *
  *  This is a simple file to encapsulate the OpenGL ES 2.0 API headers.
  *  This is a simple file to encapsulate the OpenGL ES 2.0 API headers.
  */
  */
-#include "SDL_config.h"
+#include <SDL2/SDL_config.h>
 
 
 #if !defined(_MSC_VER) && !defined(SDL_USE_BUILTIN_OPENGL_DEFINITIONS)
 #if !defined(_MSC_VER) && !defined(SDL_USE_BUILTIN_OPENGL_DEFINITIONS)
 
 
@@ -40,10 +40,10 @@
 #else /* _MSC_VER */
 #else /* _MSC_VER */
 
 
 /* OpenGL ES2 headers for Visual Studio */
 /* OpenGL ES2 headers for Visual Studio */
-#include "SDL_opengles2_khrplatform.h"
-#include "SDL_opengles2_gl2platform.h"
-#include "SDL_opengles2_gl2.h"
-#include "SDL_opengles2_gl2ext.h"
+#include <SDL2/SDL_opengles2_khrplatform.h>
+#include <SDL2/SDL_opengles2_gl2platform.h>
+#include <SDL2/SDL_opengles2_gl2.h>
+#include <SDL2/SDL_opengles2_gl2ext.h>
 
 
 #endif /* _MSC_VER */
 #endif /* _MSC_VER */
 
 

+ 374 - 339
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_opengles2_gl2.h

@@ -1,56 +1,70 @@
-#ifndef __gl2_h_
-#define __gl2_h_
-
-/* $Revision: 20555 $ on $Date:: 2013-02-12 14:32:47 -0800 #$ */
-
-/*#include <GLES2/gl2platform.h>*/
+#ifndef __gles2_gl2_h_
+#define __gles2_gl2_h_ 1
 
 
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
 #endif
 #endif
 
 
 /*
 /*
- * This document is licensed under the SGI Free Software B License Version
- * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
- */
+** Copyright 2013-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: MIT
+**
+** This header is generated from the Khronos OpenGL / OpenGL ES XML
+** API Registry. The current version of the Registry, generator scripts
+** used to make the header, and the header can be found at
+**   https://github.com/KhronosGroup/OpenGL-Registry
+*/
 
 
-/*-------------------------------------------------------------------------
- * Data type definitions
- *-----------------------------------------------------------------------*/
+/*#include <GLES2/gl2platform.h>*/
 
 
-typedef void             GLvoid;
-typedef char             GLchar;
-typedef unsigned int     GLenum;
-typedef unsigned char    GLboolean;
-typedef unsigned int     GLbitfield;
-typedef khronos_int8_t   GLbyte;
-typedef short            GLshort;
-typedef int              GLint;
-typedef int              GLsizei;
-typedef khronos_uint8_t  GLubyte;
-typedef unsigned short   GLushort;
-typedef unsigned int     GLuint;
-typedef khronos_float_t  GLfloat;
-typedef khronos_float_t  GLclampf;
-typedef khronos_int32_t  GLfixed;
+#ifndef GL_APIENTRYP
+#define GL_APIENTRYP GL_APIENTRY*
+#endif
 
 
-/* GL types for handling large vertex buffer objects */
-typedef khronos_intptr_t GLintptr;
-typedef khronos_ssize_t  GLsizeiptr;
+#ifndef GL_GLES_PROTOTYPES
+#define GL_GLES_PROTOTYPES 1
+#endif
 
 
-/* OpenGL ES core versions */
-#define GL_ES_VERSION_2_0                 1
+/* Generated on date 20220530 */
 
 
-/* ClearBufferMask */
+/* Generated C header for:
+ * API: gles2
+ * Profile: common
+ * Versions considered: 2\.[0-9]
+ * Versions emitted: .*
+ * Default extensions included: None
+ * Additional extensions included: _nomatch_^
+ * Extensions removed: _nomatch_^
+ */
+
+#ifndef GL_ES_VERSION_2_0
+#define GL_ES_VERSION_2_0 1
+/*#include <KHR/khrplatform.h>*/
+typedef khronos_int8_t GLbyte;
+typedef khronos_float_t GLclampf;
+typedef khronos_int32_t GLfixed;
+typedef khronos_int16_t GLshort;
+typedef khronos_uint16_t GLushort;
+typedef void GLvoid;
+typedef struct __GLsync *GLsync;
+typedef khronos_int64_t GLint64;
+typedef khronos_uint64_t GLuint64;
+typedef unsigned int GLenum;
+typedef unsigned int GLuint;
+typedef char GLchar;
+typedef khronos_float_t GLfloat;
+typedef khronos_ssize_t GLsizeiptr;
+typedef khronos_intptr_t GLintptr;
+typedef unsigned int GLbitfield;
+typedef int GLint;
+typedef unsigned char GLboolean;
+typedef int GLsizei;
+typedef khronos_uint8_t GLubyte;
 #define GL_DEPTH_BUFFER_BIT               0x00000100
 #define GL_DEPTH_BUFFER_BIT               0x00000100
 #define GL_STENCIL_BUFFER_BIT             0x00000400
 #define GL_STENCIL_BUFFER_BIT             0x00000400
 #define GL_COLOR_BUFFER_BIT               0x00004000
 #define GL_COLOR_BUFFER_BIT               0x00004000
-
-/* Boolean */
 #define GL_FALSE                          0
 #define GL_FALSE                          0
 #define GL_TRUE                           1
 #define GL_TRUE                           1
-
-/* BeginMode */
 #define GL_POINTS                         0x0000
 #define GL_POINTS                         0x0000
 #define GL_LINES                          0x0001
 #define GL_LINES                          0x0001
 #define GL_LINE_LOOP                      0x0002
 #define GL_LINE_LOOP                      0x0002
@@ -58,18 +72,6 @@ typedef khronos_ssize_t  GLsizeiptr;
 #define GL_TRIANGLES                      0x0004
 #define GL_TRIANGLES                      0x0004
 #define GL_TRIANGLE_STRIP                 0x0005
 #define GL_TRIANGLE_STRIP                 0x0005
 #define GL_TRIANGLE_FAN                   0x0006
 #define GL_TRIANGLE_FAN                   0x0006
-
-/* AlphaFunction (not supported in ES20) */
-/*      GL_NEVER */
-/*      GL_LESS */
-/*      GL_EQUAL */
-/*      GL_LEQUAL */
-/*      GL_GREATER */
-/*      GL_NOTEQUAL */
-/*      GL_GEQUAL */
-/*      GL_ALWAYS */
-
-/* BlendingFactorDest */
 #define GL_ZERO                           0
 #define GL_ZERO                           0
 #define GL_ONE                            1
 #define GL_ONE                            1
 #define GL_SRC_COLOR                      0x0300
 #define GL_SRC_COLOR                      0x0300
@@ -78,29 +80,15 @@ typedef khronos_ssize_t  GLsizeiptr;
 #define GL_ONE_MINUS_SRC_ALPHA            0x0303
 #define GL_ONE_MINUS_SRC_ALPHA            0x0303
 #define GL_DST_ALPHA                      0x0304
 #define GL_DST_ALPHA                      0x0304
 #define GL_ONE_MINUS_DST_ALPHA            0x0305
 #define GL_ONE_MINUS_DST_ALPHA            0x0305
-
-/* BlendingFactorSrc */
-/*      GL_ZERO */
-/*      GL_ONE */
 #define GL_DST_COLOR                      0x0306
 #define GL_DST_COLOR                      0x0306
 #define GL_ONE_MINUS_DST_COLOR            0x0307
 #define GL_ONE_MINUS_DST_COLOR            0x0307
 #define GL_SRC_ALPHA_SATURATE             0x0308
 #define GL_SRC_ALPHA_SATURATE             0x0308
-/*      GL_SRC_ALPHA */
-/*      GL_ONE_MINUS_SRC_ALPHA */
-/*      GL_DST_ALPHA */
-/*      GL_ONE_MINUS_DST_ALPHA */
-
-/* BlendEquationSeparate */
 #define GL_FUNC_ADD                       0x8006
 #define GL_FUNC_ADD                       0x8006
 #define GL_BLEND_EQUATION                 0x8009
 #define GL_BLEND_EQUATION                 0x8009
-#define GL_BLEND_EQUATION_RGB             0x8009    /* same as BLEND_EQUATION */
+#define GL_BLEND_EQUATION_RGB             0x8009
 #define GL_BLEND_EQUATION_ALPHA           0x883D
 #define GL_BLEND_EQUATION_ALPHA           0x883D
-
-/* BlendSubtract */
 #define GL_FUNC_SUBTRACT                  0x800A
 #define GL_FUNC_SUBTRACT                  0x800A
 #define GL_FUNC_REVERSE_SUBTRACT          0x800B
 #define GL_FUNC_REVERSE_SUBTRACT          0x800B
-
-/* Separate Blend Functions */
 #define GL_BLEND_DST_RGB                  0x80C8
 #define GL_BLEND_DST_RGB                  0x80C8
 #define GL_BLEND_SRC_RGB                  0x80C9
 #define GL_BLEND_SRC_RGB                  0x80C9
 #define GL_BLEND_DST_ALPHA                0x80CA
 #define GL_BLEND_DST_ALPHA                0x80CA
@@ -110,38 +98,19 @@ typedef khronos_ssize_t  GLsizeiptr;
 #define GL_CONSTANT_ALPHA                 0x8003
 #define GL_CONSTANT_ALPHA                 0x8003
 #define GL_ONE_MINUS_CONSTANT_ALPHA       0x8004
 #define GL_ONE_MINUS_CONSTANT_ALPHA       0x8004
 #define GL_BLEND_COLOR                    0x8005
 #define GL_BLEND_COLOR                    0x8005
-
-/* Buffer Objects */
 #define GL_ARRAY_BUFFER                   0x8892
 #define GL_ARRAY_BUFFER                   0x8892
 #define GL_ELEMENT_ARRAY_BUFFER           0x8893
 #define GL_ELEMENT_ARRAY_BUFFER           0x8893
 #define GL_ARRAY_BUFFER_BINDING           0x8894
 #define GL_ARRAY_BUFFER_BINDING           0x8894
 #define GL_ELEMENT_ARRAY_BUFFER_BINDING   0x8895
 #define GL_ELEMENT_ARRAY_BUFFER_BINDING   0x8895
-
 #define GL_STREAM_DRAW                    0x88E0
 #define GL_STREAM_DRAW                    0x88E0
 #define GL_STATIC_DRAW                    0x88E4
 #define GL_STATIC_DRAW                    0x88E4
 #define GL_DYNAMIC_DRAW                   0x88E8
 #define GL_DYNAMIC_DRAW                   0x88E8
-
 #define GL_BUFFER_SIZE                    0x8764
 #define GL_BUFFER_SIZE                    0x8764
 #define GL_BUFFER_USAGE                   0x8765
 #define GL_BUFFER_USAGE                   0x8765
-
 #define GL_CURRENT_VERTEX_ATTRIB          0x8626
 #define GL_CURRENT_VERTEX_ATTRIB          0x8626
-
-/* CullFaceMode */
 #define GL_FRONT                          0x0404
 #define GL_FRONT                          0x0404
 #define GL_BACK                           0x0405
 #define GL_BACK                           0x0405
 #define GL_FRONT_AND_BACK                 0x0408
 #define GL_FRONT_AND_BACK                 0x0408
-
-/* DepthFunction */
-/*      GL_NEVER */
-/*      GL_LESS */
-/*      GL_EQUAL */
-/*      GL_LEQUAL */
-/*      GL_GREATER */
-/*      GL_NOTEQUAL */
-/*      GL_GEQUAL */
-/*      GL_ALWAYS */
-
-/* EnableCap */
 #define GL_TEXTURE_2D                     0x0DE1
 #define GL_TEXTURE_2D                     0x0DE1
 #define GL_CULL_FACE                      0x0B44
 #define GL_CULL_FACE                      0x0B44
 #define GL_BLEND                          0x0BE2
 #define GL_BLEND                          0x0BE2
@@ -152,19 +121,13 @@ typedef khronos_ssize_t  GLsizeiptr;
 #define GL_POLYGON_OFFSET_FILL            0x8037
 #define GL_POLYGON_OFFSET_FILL            0x8037
 #define GL_SAMPLE_ALPHA_TO_COVERAGE       0x809E
 #define GL_SAMPLE_ALPHA_TO_COVERAGE       0x809E
 #define GL_SAMPLE_COVERAGE                0x80A0
 #define GL_SAMPLE_COVERAGE                0x80A0
-
-/* ErrorCode */
 #define GL_NO_ERROR                       0
 #define GL_NO_ERROR                       0
 #define GL_INVALID_ENUM                   0x0500
 #define GL_INVALID_ENUM                   0x0500
 #define GL_INVALID_VALUE                  0x0501
 #define GL_INVALID_VALUE                  0x0501
 #define GL_INVALID_OPERATION              0x0502
 #define GL_INVALID_OPERATION              0x0502
 #define GL_OUT_OF_MEMORY                  0x0505
 #define GL_OUT_OF_MEMORY                  0x0505
-
-/* FrontFaceDirection */
 #define GL_CW                             0x0900
 #define GL_CW                             0x0900
 #define GL_CCW                            0x0901
 #define GL_CCW                            0x0901
-
-/* GetPName */
 #define GL_LINE_WIDTH                     0x0B21
 #define GL_LINE_WIDTH                     0x0B21
 #define GL_ALIASED_POINT_SIZE_RANGE       0x846D
 #define GL_ALIASED_POINT_SIZE_RANGE       0x846D
 #define GL_ALIASED_LINE_WIDTH_RANGE       0x846E
 #define GL_ALIASED_LINE_WIDTH_RANGE       0x846E
@@ -191,7 +154,6 @@ typedef khronos_ssize_t  GLsizeiptr;
 #define GL_STENCIL_BACK_WRITEMASK         0x8CA5
 #define GL_STENCIL_BACK_WRITEMASK         0x8CA5
 #define GL_VIEWPORT                       0x0BA2
 #define GL_VIEWPORT                       0x0BA2
 #define GL_SCISSOR_BOX                    0x0C10
 #define GL_SCISSOR_BOX                    0x0C10
-/*      GL_SCISSOR_TEST */
 #define GL_COLOR_CLEAR_VALUE              0x0C22
 #define GL_COLOR_CLEAR_VALUE              0x0C22
 #define GL_COLOR_WRITEMASK                0x0C23
 #define GL_COLOR_WRITEMASK                0x0C23
 #define GL_UNPACK_ALIGNMENT               0x0CF5
 #define GL_UNPACK_ALIGNMENT               0x0CF5
@@ -206,32 +168,18 @@ typedef khronos_ssize_t  GLsizeiptr;
 #define GL_DEPTH_BITS                     0x0D56
 #define GL_DEPTH_BITS                     0x0D56
 #define GL_STENCIL_BITS                   0x0D57
 #define GL_STENCIL_BITS                   0x0D57
 #define GL_POLYGON_OFFSET_UNITS           0x2A00
 #define GL_POLYGON_OFFSET_UNITS           0x2A00
-/*      GL_POLYGON_OFFSET_FILL */
 #define GL_POLYGON_OFFSET_FACTOR          0x8038
 #define GL_POLYGON_OFFSET_FACTOR          0x8038
 #define GL_TEXTURE_BINDING_2D             0x8069
 #define GL_TEXTURE_BINDING_2D             0x8069
 #define GL_SAMPLE_BUFFERS                 0x80A8
 #define GL_SAMPLE_BUFFERS                 0x80A8
 #define GL_SAMPLES                        0x80A9
 #define GL_SAMPLES                        0x80A9
 #define GL_SAMPLE_COVERAGE_VALUE          0x80AA
 #define GL_SAMPLE_COVERAGE_VALUE          0x80AA
 #define GL_SAMPLE_COVERAGE_INVERT         0x80AB
 #define GL_SAMPLE_COVERAGE_INVERT         0x80AB
-
-/* GetTextureParameter */
-/*      GL_TEXTURE_MAG_FILTER */
-/*      GL_TEXTURE_MIN_FILTER */
-/*      GL_TEXTURE_WRAP_S */
-/*      GL_TEXTURE_WRAP_T */
-
 #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
 #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
 #define GL_COMPRESSED_TEXTURE_FORMATS     0x86A3
 #define GL_COMPRESSED_TEXTURE_FORMATS     0x86A3
-
-/* HintMode */
 #define GL_DONT_CARE                      0x1100
 #define GL_DONT_CARE                      0x1100
 #define GL_FASTEST                        0x1101
 #define GL_FASTEST                        0x1101
 #define GL_NICEST                         0x1102
 #define GL_NICEST                         0x1102
-
-/* HintTarget */
-#define GL_GENERATE_MIPMAP_HINT            0x8192
-
-/* DataType */
+#define GL_GENERATE_MIPMAP_HINT           0x8192
 #define GL_BYTE                           0x1400
 #define GL_BYTE                           0x1400
 #define GL_UNSIGNED_BYTE                  0x1401
 #define GL_UNSIGNED_BYTE                  0x1401
 #define GL_SHORT                          0x1402
 #define GL_SHORT                          0x1402
@@ -240,44 +188,35 @@ typedef khronos_ssize_t  GLsizeiptr;
 #define GL_UNSIGNED_INT                   0x1405
 #define GL_UNSIGNED_INT                   0x1405
 #define GL_FLOAT                          0x1406
 #define GL_FLOAT                          0x1406
 #define GL_FIXED                          0x140C
 #define GL_FIXED                          0x140C
-
-/* PixelFormat */
 #define GL_DEPTH_COMPONENT                0x1902
 #define GL_DEPTH_COMPONENT                0x1902
 #define GL_ALPHA                          0x1906
 #define GL_ALPHA                          0x1906
 #define GL_RGB                            0x1907
 #define GL_RGB                            0x1907
 #define GL_RGBA                           0x1908
 #define GL_RGBA                           0x1908
 #define GL_LUMINANCE                      0x1909
 #define GL_LUMINANCE                      0x1909
 #define GL_LUMINANCE_ALPHA                0x190A
 #define GL_LUMINANCE_ALPHA                0x190A
-
-/* PixelType */
-/*      GL_UNSIGNED_BYTE */
 #define GL_UNSIGNED_SHORT_4_4_4_4         0x8033
 #define GL_UNSIGNED_SHORT_4_4_4_4         0x8033
 #define GL_UNSIGNED_SHORT_5_5_5_1         0x8034
 #define GL_UNSIGNED_SHORT_5_5_5_1         0x8034
 #define GL_UNSIGNED_SHORT_5_6_5           0x8363
 #define GL_UNSIGNED_SHORT_5_6_5           0x8363
-
-/* Shaders */
-#define GL_FRAGMENT_SHADER                  0x8B30
-#define GL_VERTEX_SHADER                    0x8B31
-#define GL_MAX_VERTEX_ATTRIBS               0x8869
-#define GL_MAX_VERTEX_UNIFORM_VECTORS       0x8DFB
-#define GL_MAX_VARYING_VECTORS              0x8DFC
+#define GL_FRAGMENT_SHADER                0x8B30
+#define GL_VERTEX_SHADER                  0x8B31
+#define GL_MAX_VERTEX_ATTRIBS             0x8869
+#define GL_MAX_VERTEX_UNIFORM_VECTORS     0x8DFB
+#define GL_MAX_VARYING_VECTORS            0x8DFC
 #define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
 #define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
-#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS   0x8B4C
-#define GL_MAX_TEXTURE_IMAGE_UNITS          0x8872
-#define GL_MAX_FRAGMENT_UNIFORM_VECTORS     0x8DFD
-#define GL_SHADER_TYPE                      0x8B4F
-#define GL_DELETE_STATUS                    0x8B80
-#define GL_LINK_STATUS                      0x8B82
-#define GL_VALIDATE_STATUS                  0x8B83
-#define GL_ATTACHED_SHADERS                 0x8B85
-#define GL_ACTIVE_UNIFORMS                  0x8B86
-#define GL_ACTIVE_UNIFORM_MAX_LENGTH        0x8B87
-#define GL_ACTIVE_ATTRIBUTES                0x8B89
-#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH      0x8B8A
-#define GL_SHADING_LANGUAGE_VERSION         0x8B8C
-#define GL_CURRENT_PROGRAM                  0x8B8D
-
-/* StencilFunction */
+#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
+#define GL_MAX_TEXTURE_IMAGE_UNITS        0x8872
+#define GL_MAX_FRAGMENT_UNIFORM_VECTORS   0x8DFD
+#define GL_SHADER_TYPE                    0x8B4F
+#define GL_DELETE_STATUS                  0x8B80
+#define GL_LINK_STATUS                    0x8B82
+#define GL_VALIDATE_STATUS                0x8B83
+#define GL_ATTACHED_SHADERS               0x8B85
+#define GL_ACTIVE_UNIFORMS                0x8B86
+#define GL_ACTIVE_UNIFORM_MAX_LENGTH      0x8B87
+#define GL_ACTIVE_ATTRIBUTES              0x8B89
+#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH    0x8B8A
+#define GL_SHADING_LANGUAGE_VERSION       0x8B8C
+#define GL_CURRENT_PROGRAM                0x8B8D
 #define GL_NEVER                          0x0200
 #define GL_NEVER                          0x0200
 #define GL_LESS                           0x0201
 #define GL_LESS                           0x0201
 #define GL_EQUAL                          0x0202
 #define GL_EQUAL                          0x0202
@@ -286,9 +225,6 @@ typedef khronos_ssize_t  GLsizeiptr;
 #define GL_NOTEQUAL                       0x0205
 #define GL_NOTEQUAL                       0x0205
 #define GL_GEQUAL                         0x0206
 #define GL_GEQUAL                         0x0206
 #define GL_ALWAYS                         0x0207
 #define GL_ALWAYS                         0x0207
-
-/* StencilOp */
-/*      GL_ZERO */
 #define GL_KEEP                           0x1E00
 #define GL_KEEP                           0x1E00
 #define GL_REPLACE                        0x1E01
 #define GL_REPLACE                        0x1E01
 #define GL_INCR                           0x1E02
 #define GL_INCR                           0x1E02
@@ -296,35 +232,21 @@ typedef khronos_ssize_t  GLsizeiptr;
 #define GL_INVERT                         0x150A
 #define GL_INVERT                         0x150A
 #define GL_INCR_WRAP                      0x8507
 #define GL_INCR_WRAP                      0x8507
 #define GL_DECR_WRAP                      0x8508
 #define GL_DECR_WRAP                      0x8508
-
-/* StringName */
 #define GL_VENDOR                         0x1F00
 #define GL_VENDOR                         0x1F00
 #define GL_RENDERER                       0x1F01
 #define GL_RENDERER                       0x1F01
 #define GL_VERSION                        0x1F02
 #define GL_VERSION                        0x1F02
 #define GL_EXTENSIONS                     0x1F03
 #define GL_EXTENSIONS                     0x1F03
-
-/* TextureMagFilter */
 #define GL_NEAREST                        0x2600
 #define GL_NEAREST                        0x2600
 #define GL_LINEAR                         0x2601
 #define GL_LINEAR                         0x2601
-
-/* TextureMinFilter */
-/*      GL_NEAREST */
-/*      GL_LINEAR */
 #define GL_NEAREST_MIPMAP_NEAREST         0x2700
 #define GL_NEAREST_MIPMAP_NEAREST         0x2700
 #define GL_LINEAR_MIPMAP_NEAREST          0x2701
 #define GL_LINEAR_MIPMAP_NEAREST          0x2701
 #define GL_NEAREST_MIPMAP_LINEAR          0x2702
 #define GL_NEAREST_MIPMAP_LINEAR          0x2702
 #define GL_LINEAR_MIPMAP_LINEAR           0x2703
 #define GL_LINEAR_MIPMAP_LINEAR           0x2703
-
-/* TextureParameterName */
 #define GL_TEXTURE_MAG_FILTER             0x2800
 #define GL_TEXTURE_MAG_FILTER             0x2800
 #define GL_TEXTURE_MIN_FILTER             0x2801
 #define GL_TEXTURE_MIN_FILTER             0x2801
 #define GL_TEXTURE_WRAP_S                 0x2802
 #define GL_TEXTURE_WRAP_S                 0x2802
 #define GL_TEXTURE_WRAP_T                 0x2803
 #define GL_TEXTURE_WRAP_T                 0x2803
-
-/* TextureTarget */
-/*      GL_TEXTURE_2D */
 #define GL_TEXTURE                        0x1702
 #define GL_TEXTURE                        0x1702
-
 #define GL_TEXTURE_CUBE_MAP               0x8513
 #define GL_TEXTURE_CUBE_MAP               0x8513
 #define GL_TEXTURE_BINDING_CUBE_MAP       0x8514
 #define GL_TEXTURE_BINDING_CUBE_MAP       0x8514
 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X    0x8515
 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X    0x8515
@@ -334,8 +256,6 @@ typedef khronos_ssize_t  GLsizeiptr;
 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z    0x8519
 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z    0x8519
 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z    0x851A
 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z    0x851A
 #define GL_MAX_CUBE_MAP_TEXTURE_SIZE      0x851C
 #define GL_MAX_CUBE_MAP_TEXTURE_SIZE      0x851C
-
-/* TextureUnit */
 #define GL_TEXTURE0                       0x84C0
 #define GL_TEXTURE0                       0x84C0
 #define GL_TEXTURE1                       0x84C1
 #define GL_TEXTURE1                       0x84C1
 #define GL_TEXTURE2                       0x84C2
 #define GL_TEXTURE2                       0x84C2
@@ -369,13 +289,9 @@ typedef khronos_ssize_t  GLsizeiptr;
 #define GL_TEXTURE30                      0x84DE
 #define GL_TEXTURE30                      0x84DE
 #define GL_TEXTURE31                      0x84DF
 #define GL_TEXTURE31                      0x84DF
 #define GL_ACTIVE_TEXTURE                 0x84E0
 #define GL_ACTIVE_TEXTURE                 0x84E0
-
-/* TextureWrapMode */
 #define GL_REPEAT                         0x2901
 #define GL_REPEAT                         0x2901
 #define GL_CLAMP_TO_EDGE                  0x812F
 #define GL_CLAMP_TO_EDGE                  0x812F
 #define GL_MIRRORED_REPEAT                0x8370
 #define GL_MIRRORED_REPEAT                0x8370
-
-/* Uniform Types */
 #define GL_FLOAT_VEC2                     0x8B50
 #define GL_FLOAT_VEC2                     0x8B50
 #define GL_FLOAT_VEC3                     0x8B51
 #define GL_FLOAT_VEC3                     0x8B51
 #define GL_FLOAT_VEC4                     0x8B52
 #define GL_FLOAT_VEC4                     0x8B52
@@ -391,48 +307,34 @@ typedef khronos_ssize_t  GLsizeiptr;
 #define GL_FLOAT_MAT4                     0x8B5C
 #define GL_FLOAT_MAT4                     0x8B5C
 #define GL_SAMPLER_2D                     0x8B5E
 #define GL_SAMPLER_2D                     0x8B5E
 #define GL_SAMPLER_CUBE                   0x8B60
 #define GL_SAMPLER_CUBE                   0x8B60
-
-/* Vertex Arrays */
-#define GL_VERTEX_ATTRIB_ARRAY_ENABLED        0x8622
-#define GL_VERTEX_ATTRIB_ARRAY_SIZE           0x8623
-#define GL_VERTEX_ATTRIB_ARRAY_STRIDE         0x8624
-#define GL_VERTEX_ATTRIB_ARRAY_TYPE           0x8625
-#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED     0x886A
-#define GL_VERTEX_ATTRIB_ARRAY_POINTER        0x8645
+#define GL_VERTEX_ATTRIB_ARRAY_ENABLED    0x8622
+#define GL_VERTEX_ATTRIB_ARRAY_SIZE       0x8623
+#define GL_VERTEX_ATTRIB_ARRAY_STRIDE     0x8624
+#define GL_VERTEX_ATTRIB_ARRAY_TYPE       0x8625
+#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
+#define GL_VERTEX_ATTRIB_ARRAY_POINTER    0x8645
 #define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
 #define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
-
-/* Read Format */
-#define GL_IMPLEMENTATION_COLOR_READ_TYPE   0x8B9A
+#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
 #define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
 #define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
-
-/* Shader Source */
 #define GL_COMPILE_STATUS                 0x8B81
 #define GL_COMPILE_STATUS                 0x8B81
 #define GL_INFO_LOG_LENGTH                0x8B84
 #define GL_INFO_LOG_LENGTH                0x8B84
 #define GL_SHADER_SOURCE_LENGTH           0x8B88
 #define GL_SHADER_SOURCE_LENGTH           0x8B88
 #define GL_SHADER_COMPILER                0x8DFA
 #define GL_SHADER_COMPILER                0x8DFA
-
-/* Shader Binary */
 #define GL_SHADER_BINARY_FORMATS          0x8DF8
 #define GL_SHADER_BINARY_FORMATS          0x8DF8
 #define GL_NUM_SHADER_BINARY_FORMATS      0x8DF9
 #define GL_NUM_SHADER_BINARY_FORMATS      0x8DF9
-
-/* Shader Precision-Specified Types */
 #define GL_LOW_FLOAT                      0x8DF0
 #define GL_LOW_FLOAT                      0x8DF0
 #define GL_MEDIUM_FLOAT                   0x8DF1
 #define GL_MEDIUM_FLOAT                   0x8DF1
 #define GL_HIGH_FLOAT                     0x8DF2
 #define GL_HIGH_FLOAT                     0x8DF2
 #define GL_LOW_INT                        0x8DF3
 #define GL_LOW_INT                        0x8DF3
 #define GL_MEDIUM_INT                     0x8DF4
 #define GL_MEDIUM_INT                     0x8DF4
 #define GL_HIGH_INT                       0x8DF5
 #define GL_HIGH_INT                       0x8DF5
-
-/* Framebuffer Object. */
 #define GL_FRAMEBUFFER                    0x8D40
 #define GL_FRAMEBUFFER                    0x8D40
 #define GL_RENDERBUFFER                   0x8D41
 #define GL_RENDERBUFFER                   0x8D41
-
 #define GL_RGBA4                          0x8056
 #define GL_RGBA4                          0x8056
 #define GL_RGB5_A1                        0x8057
 #define GL_RGB5_A1                        0x8057
 #define GL_RGB565                         0x8D62
 #define GL_RGB565                         0x8D62
 #define GL_DEPTH_COMPONENT16              0x81A5
 #define GL_DEPTH_COMPONENT16              0x81A5
 #define GL_STENCIL_INDEX8                 0x8D48
 #define GL_STENCIL_INDEX8                 0x8D48
-
 #define GL_RENDERBUFFER_WIDTH             0x8D42
 #define GL_RENDERBUFFER_WIDTH             0x8D42
 #define GL_RENDERBUFFER_HEIGHT            0x8D43
 #define GL_RENDERBUFFER_HEIGHT            0x8D43
 #define GL_RENDERBUFFER_INTERNAL_FORMAT   0x8D44
 #define GL_RENDERBUFFER_INTERNAL_FORMAT   0x8D44
@@ -442,180 +344,313 @@ typedef khronos_ssize_t  GLsizeiptr;
 #define GL_RENDERBUFFER_ALPHA_SIZE        0x8D53
 #define GL_RENDERBUFFER_ALPHA_SIZE        0x8D53
 #define GL_RENDERBUFFER_DEPTH_SIZE        0x8D54
 #define GL_RENDERBUFFER_DEPTH_SIZE        0x8D54
 #define GL_RENDERBUFFER_STENCIL_SIZE      0x8D55
 #define GL_RENDERBUFFER_STENCIL_SIZE      0x8D55
-
-#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE           0x8CD0
-#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME           0x8CD1
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL         0x8CD2
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
-
 #define GL_COLOR_ATTACHMENT0              0x8CE0
 #define GL_COLOR_ATTACHMENT0              0x8CE0
 #define GL_DEPTH_ATTACHMENT               0x8D00
 #define GL_DEPTH_ATTACHMENT               0x8D00
 #define GL_STENCIL_ATTACHMENT             0x8D20
 #define GL_STENCIL_ATTACHMENT             0x8D20
-
 #define GL_NONE                           0
 #define GL_NONE                           0
-
-#define GL_FRAMEBUFFER_COMPLETE                      0x8CD5
-#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT         0x8CD6
+#define GL_FRAMEBUFFER_COMPLETE           0x8CD5
+#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
-#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS         0x8CD9
-#define GL_FRAMEBUFFER_UNSUPPORTED                   0x8CDD
-
+#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9
+#define GL_FRAMEBUFFER_UNSUPPORTED        0x8CDD
 #define GL_FRAMEBUFFER_BINDING            0x8CA6
 #define GL_FRAMEBUFFER_BINDING            0x8CA6
 #define GL_RENDERBUFFER_BINDING           0x8CA7
 #define GL_RENDERBUFFER_BINDING           0x8CA7
 #define GL_MAX_RENDERBUFFER_SIZE          0x84E8
 #define GL_MAX_RENDERBUFFER_SIZE          0x84E8
-
 #define GL_INVALID_FRAMEBUFFER_OPERATION  0x0506
 #define GL_INVALID_FRAMEBUFFER_OPERATION  0x0506
-
-/*-------------------------------------------------------------------------
- * GL core functions.
- *-----------------------------------------------------------------------*/
-
-GL_APICALL void         GL_APIENTRY glActiveTexture (GLenum texture);
-GL_APICALL void         GL_APIENTRY glAttachShader (GLuint program, GLuint shader);
-GL_APICALL void         GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar* name);
-GL_APICALL void         GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer);
-GL_APICALL void         GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer);
-GL_APICALL void         GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer);
-GL_APICALL void         GL_APIENTRY glBindTexture (GLenum target, GLuint texture);
-GL_APICALL void         GL_APIENTRY glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-GL_APICALL void         GL_APIENTRY glBlendEquation ( GLenum mode );
-GL_APICALL void         GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha);
-GL_APICALL void         GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor);
-GL_APICALL void         GL_APIENTRY glBlendFuncSeparate (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
-GL_APICALL void         GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
-GL_APICALL void         GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
-GL_APICALL GLenum       GL_APIENTRY glCheckFramebufferStatus (GLenum target);
-GL_APICALL void         GL_APIENTRY glClear (GLbitfield mask);
-GL_APICALL void         GL_APIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-GL_APICALL void         GL_APIENTRY glClearDepthf (GLclampf depth);
-GL_APICALL void         GL_APIENTRY glClearStencil (GLint s);
-GL_APICALL void         GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
-GL_APICALL void         GL_APIENTRY glCompileShader (GLuint shader);
-GL_APICALL void         GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
-GL_APICALL void         GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
-GL_APICALL void         GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
-GL_APICALL void         GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-GL_APICALL GLuint       GL_APIENTRY glCreateProgram (void);
-GL_APICALL GLuint       GL_APIENTRY glCreateShader (GLenum type);
-GL_APICALL void         GL_APIENTRY glCullFace (GLenum mode);
-GL_APICALL void         GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint* buffers);
-GL_APICALL void         GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint* framebuffers);
-GL_APICALL void         GL_APIENTRY glDeleteProgram (GLuint program);
-GL_APICALL void         GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint* renderbuffers);
-GL_APICALL void         GL_APIENTRY glDeleteShader (GLuint shader);
-GL_APICALL void         GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint* textures);
-GL_APICALL void         GL_APIENTRY glDepthFunc (GLenum func);
-GL_APICALL void         GL_APIENTRY glDepthMask (GLboolean flag);
-GL_APICALL void         GL_APIENTRY glDepthRangef (GLclampf zNear, GLclampf zFar);
-GL_APICALL void         GL_APIENTRY glDetachShader (GLuint program, GLuint shader);
-GL_APICALL void         GL_APIENTRY glDisable (GLenum cap);
-GL_APICALL void         GL_APIENTRY glDisableVertexAttribArray (GLuint index);
-GL_APICALL void         GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count);
-GL_APICALL void         GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices);
-GL_APICALL void         GL_APIENTRY glEnable (GLenum cap);
-GL_APICALL void         GL_APIENTRY glEnableVertexAttribArray (GLuint index);
-GL_APICALL void         GL_APIENTRY glFinish (void);
-GL_APICALL void         GL_APIENTRY glFlush (void);
-GL_APICALL void         GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
-GL_APICALL void         GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-GL_APICALL void         GL_APIENTRY glFrontFace (GLenum mode);
-GL_APICALL void         GL_APIENTRY glGenBuffers (GLsizei n, GLuint* buffers);
-GL_APICALL void         GL_APIENTRY glGenerateMipmap (GLenum target);
-GL_APICALL void         GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint* framebuffers);
-GL_APICALL void         GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint* renderbuffers);
-GL_APICALL void         GL_APIENTRY glGenTextures (GLsizei n, GLuint* textures);
-GL_APICALL void         GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
-GL_APICALL void         GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
-GL_APICALL void         GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
-GL_APICALL GLint        GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar* name);
-GL_APICALL void         GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean* params);
-GL_APICALL void         GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint* params);
-GL_APICALL GLenum       GL_APIENTRY glGetError (void);
-GL_APICALL void         GL_APIENTRY glGetFloatv (GLenum pname, GLfloat* params);
-GL_APICALL void         GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint* params);
-GL_APICALL void         GL_APIENTRY glGetIntegerv (GLenum pname, GLint* params);
-GL_APICALL void         GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint* params);
-GL_APICALL void         GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog);
-GL_APICALL void         GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint* params);
-GL_APICALL void         GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint* params);
-GL_APICALL void         GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog);
-GL_APICALL void         GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
-GL_APICALL void         GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source);
-GL_APICALL const GLubyte* GL_APIENTRY glGetString (GLenum name);
-GL_APICALL void         GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat* params);
-GL_APICALL void         GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint* params);
-GL_APICALL void         GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat* params);
-GL_APICALL void         GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint* params);
-GL_APICALL GLint        GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar* name);
-GL_APICALL void         GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params);
-GL_APICALL void         GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint* params);
-GL_APICALL void         GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid** pointer);
-GL_APICALL void         GL_APIENTRY glHint (GLenum target, GLenum mode);
-GL_APICALL GLboolean    GL_APIENTRY glIsBuffer (GLuint buffer);
-GL_APICALL GLboolean    GL_APIENTRY glIsEnabled (GLenum cap);
-GL_APICALL GLboolean    GL_APIENTRY glIsFramebuffer (GLuint framebuffer);
-GL_APICALL GLboolean    GL_APIENTRY glIsProgram (GLuint program);
-GL_APICALL GLboolean    GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer);
-GL_APICALL GLboolean    GL_APIENTRY glIsShader (GLuint shader);
-GL_APICALL GLboolean    GL_APIENTRY glIsTexture (GLuint texture);
-GL_APICALL void         GL_APIENTRY glLineWidth (GLfloat width);
-GL_APICALL void         GL_APIENTRY glLinkProgram (GLuint program);
-GL_APICALL void         GL_APIENTRY glPixelStorei (GLenum pname, GLint param);
-GL_APICALL void         GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units);
-GL_APICALL void         GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels);
-GL_APICALL void         GL_APIENTRY glReleaseShaderCompiler (void);
-GL_APICALL void         GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
-GL_APICALL void         GL_APIENTRY glSampleCoverage (GLclampf value, GLboolean invert);
-GL_APICALL void         GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
-GL_APICALL void         GL_APIENTRY glShaderBinary (GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length);
-GL_APICALL void         GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length);
-GL_APICALL void         GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask);
-GL_APICALL void         GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask);
-GL_APICALL void         GL_APIENTRY glStencilMask (GLuint mask);
-GL_APICALL void         GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask);
-GL_APICALL void         GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
-GL_APICALL void         GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
-GL_APICALL void         GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
-GL_APICALL void         GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
-GL_APICALL void         GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat* params);
-GL_APICALL void         GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param);
-GL_APICALL void         GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint* params);
-GL_APICALL void         GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels);
-GL_APICALL void         GL_APIENTRY glUniform1f (GLint location, GLfloat x);
-GL_APICALL void         GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat* v);
-GL_APICALL void         GL_APIENTRY glUniform1i (GLint location, GLint x);
-GL_APICALL void         GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint* v);
-GL_APICALL void         GL_APIENTRY glUniform2f (GLint location, GLfloat x, GLfloat y);
-GL_APICALL void         GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat* v);
-GL_APICALL void         GL_APIENTRY glUniform2i (GLint location, GLint x, GLint y);
-GL_APICALL void         GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint* v);
-GL_APICALL void         GL_APIENTRY glUniform3f (GLint location, GLfloat x, GLfloat y, GLfloat z);
-GL_APICALL void         GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat* v);
-GL_APICALL void         GL_APIENTRY glUniform3i (GLint location, GLint x, GLint y, GLint z);
-GL_APICALL void         GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint* v);
-GL_APICALL void         GL_APIENTRY glUniform4f (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-GL_APICALL void         GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat* v);
-GL_APICALL void         GL_APIENTRY glUniform4i (GLint location, GLint x, GLint y, GLint z, GLint w);
-GL_APICALL void         GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint* v);
-GL_APICALL void         GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-GL_APICALL void         GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-GL_APICALL void         GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-GL_APICALL void         GL_APIENTRY glUseProgram (GLuint program);
-GL_APICALL void         GL_APIENTRY glValidateProgram (GLuint program);
-GL_APICALL void         GL_APIENTRY glVertexAttrib1f (GLuint indx, GLfloat x);
-GL_APICALL void         GL_APIENTRY glVertexAttrib1fv (GLuint indx, const GLfloat* values);
-GL_APICALL void         GL_APIENTRY glVertexAttrib2f (GLuint indx, GLfloat x, GLfloat y);
-GL_APICALL void         GL_APIENTRY glVertexAttrib2fv (GLuint indx, const GLfloat* values);
-GL_APICALL void         GL_APIENTRY glVertexAttrib3f (GLuint indx, GLfloat x, GLfloat y, GLfloat z);
-GL_APICALL void         GL_APIENTRY glVertexAttrib3fv (GLuint indx, const GLfloat* values);
-GL_APICALL void         GL_APIENTRY glVertexAttrib4f (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-GL_APICALL void         GL_APIENTRY glVertexAttrib4fv (GLuint indx, const GLfloat* values);
-GL_APICALL void         GL_APIENTRY glVertexAttribPointer (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr);
-GL_APICALL void         GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture);
+typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);
+typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name);
+typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer);
+typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer);
+typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer);
+typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture);
+typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode);
+typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha);
+typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor);
+typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage);
+typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data);
+typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target);
+typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask);
+typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d);
+typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s);
+typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader);
+typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
+typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
+typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void);
+typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type);
+typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode);
+typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers);
+typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers);
+typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program);
+typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers);
+typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader);
+typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures);
+typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func);
+typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag);
+typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f);
+typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader);
+typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap);
+typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index);
+typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count);
+typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices);
+typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap);
+typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index);
+typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void);
+typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void);
+typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode);
+typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers);
+typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target);
+typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers);
+typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers);
+typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures);
+typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
+typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
+typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders);
+typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name);
+typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data);
+typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void);
+typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data);
+typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
+typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data);
+typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params);
+typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
+typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params);
+typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
+typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
+typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
+typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name);
+typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params);
+typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params);
+typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name);
+typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params);
+typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params);
+typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer);
+typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode);
+typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer);
+typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap);
+typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer);
+typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program);
+typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer);
+typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader);
+typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture);
+typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width);
+typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program);
+typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param);
+typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units);
+typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
+typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void);
+typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert);
+typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length);
+typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length);
+typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask);
+typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask);
+typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask);
+typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask);
+typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass);
+typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
+typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param);
+typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
+typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param);
+typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
+typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0);
+typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value);
+typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0);
+typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value);
+typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1);
+typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value);
+typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1);
+typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value);
+typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value);
+typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2);
+typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value);
+typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value);
+typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value);
+typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program);
+typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program);
+typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x);
+typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v);
+typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y);
+typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v);
+typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v);
+typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v);
+typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
+typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
+#if GL_GLES_PROTOTYPES
+GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture);
+GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader);
+GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name);
+GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer);
+GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer);
+GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer);
+GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture);
+GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode);
+GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha);
+GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor);
+GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage);
+GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data);
+GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target);
+GL_APICALL void GL_APIENTRY glClear (GLbitfield mask);
+GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d);
+GL_APICALL void GL_APIENTRY glClearStencil (GLint s);
+GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader);
+GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
+GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
+GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+GL_APICALL GLuint GL_APIENTRY glCreateProgram (void);
+GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type);
+GL_APICALL void GL_APIENTRY glCullFace (GLenum mode);
+GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers);
+GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers);
+GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program);
+GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers);
+GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader);
+GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures);
+GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func);
+GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag);
+GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f);
+GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader);
+GL_APICALL void GL_APIENTRY glDisable (GLenum cap);
+GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index);
+GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count);
+GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices);
+GL_APICALL void GL_APIENTRY glEnable (GLenum cap);
+GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index);
+GL_APICALL void GL_APIENTRY glFinish (void);
+GL_APICALL void GL_APIENTRY glFlush (void);
+GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode);
+GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers);
+GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target);
+GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers);
+GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers);
+GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures);
+GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
+GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
+GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders);
+GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name);
+GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data);
+GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params);
+GL_APICALL GLenum GL_APIENTRY glGetError (void);
+GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data);
+GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params);
+GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data);
+GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params);
+GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
+GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params);
+GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params);
+GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
+GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
+GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
+GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name);
+GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params);
+GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params);
+GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params);
+GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params);
+GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name);
+GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params);
+GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params);
+GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer);
+GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode);
+GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer);
+GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap);
+GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer);
+GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program);
+GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer);
+GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader);
+GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture);
+GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width);
+GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program);
+GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param);
+GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units);
+GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
+GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void);
+GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert);
+GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
+GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length);
+GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length);
+GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask);
+GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask);
+GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask);
+GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask);
+GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
+GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
+GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
+GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params);
+GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param);
+GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params);
+GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
+GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0);
+GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value);
+GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0);
+GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value);
+GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1);
+GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value);
+GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1);
+GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value);
+GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value);
+GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2);
+GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value);
+GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value);
+GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value);
+GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GL_APICALL void GL_APIENTRY glUseProgram (GLuint program);
+GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program);
+GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x);
+GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v);
+GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y);
+GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v);
+GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z);
+GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v);
+GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v);
+GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
+GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
+#endif
+#endif /* GL_ES_VERSION_2_0 */
 
 
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
 
 
-#endif /* __gl2_h_ */
-
+#endif

File diff suppressed because it is too large
+ 816 - 1198
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_opengles2_gl2ext.h


+ 6 - 9
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_opengles2_gl2platform.h

@@ -1,20 +1,17 @@
 #ifndef __gl2platform_h_
 #ifndef __gl2platform_h_
 #define __gl2platform_h_
 #define __gl2platform_h_
 
 
-/* $Revision: 10602 $ on $Date:: 2010-03-04 22:35:34 -0800 #$ */
-
 /*
 /*
- * This document is licensed under the SGI Free Software B License Version
- * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
- */
+** Copyright 2017-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: Apache-2.0
+*/
 
 
 /* Platform-specific types and definitions for OpenGL ES 2.X  gl2.h
 /* Platform-specific types and definitions for OpenGL ES 2.X  gl2.h
  *
  *
  * Adopters may modify khrplatform.h and this file to suit their platform.
  * Adopters may modify khrplatform.h and this file to suit their platform.
- * You are encouraged to submit all modifications to the Khronos group so that
- * they can be included in future versions of this file.  Please submit changes
- * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla)
- * by filing a bug against product "OpenGL-ES" component "Registry".
+ * Please contribute modifications back to Khronos as pull requests on the
+ * public github repository:
+ *      https://github.com/KhronosGroup/OpenGL-Registry
  */
  */
 
 
 /*#include <KHR/khrplatform.h>*/
 /*#include <KHR/khrplatform.h>*/

+ 43 - 14
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_opengles2_khrplatform.h

@@ -2,7 +2,7 @@
 #define __khrplatform_h_
 #define __khrplatform_h_
 
 
 /*
 /*
-** Copyright (c) 2008-2009 The Khronos Group Inc.
+** Copyright (c) 2008-2018 The Khronos Group Inc.
 **
 **
 ** Permission is hereby granted, free of charge, to any person obtaining a
 ** Permission is hereby granted, free of charge, to any person obtaining a
 ** copy of this software and/or associated documentation files (the
 ** copy of this software and/or associated documentation files (the
@@ -26,18 +26,16 @@
 
 
 /* Khronos platform-specific types and definitions.
 /* Khronos platform-specific types and definitions.
  *
  *
- * $Revision: 23298 $ on $Date: 2013-09-30 17:07:13 -0700 (Mon, 30 Sep 2013) $
+ * The master copy of khrplatform.h is maintained in the Khronos EGL
+ * Registry repository at https://github.com/KhronosGroup/EGL-Registry
+ * The last semantic modification to khrplatform.h was at commit ID:
+ *      67a3e0864c2d75ea5287b9f3d2eb74a745936692
  *
  *
  * Adopters may modify this file to suit their platform. Adopters are
  * Adopters may modify this file to suit their platform. Adopters are
  * encouraged to submit platform specific modifications to the Khronos
  * encouraged to submit platform specific modifications to the Khronos
  * group so that they can be included in future versions of this file.
  * group so that they can be included in future versions of this file.
- * Please submit changes by sending them to the public Khronos Bugzilla
- * (http://khronos.org/bugzilla) by filing a bug against product
- * "Khronos (general)" component "Registry".
- *
- * A predefined template which fills in some of the bug fields can be
- * reached using http://tinyurl.com/khrplatform-h-bugreport, but you
- * must create a Bugzilla login first.
+ * Please submit changes by filing pull requests or issues on
+ * the EGL Registry repository linked above.
  *
  *
  *
  *
  * See the Implementer's Guidelines for information about where this file
  * See the Implementer's Guidelines for information about where this file
@@ -92,15 +90,25 @@
  *                                  int arg2) KHRONOS_APIATTRIBUTES;
  *                                  int arg2) KHRONOS_APIATTRIBUTES;
  */
  */
 
 
+#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC)
+#   define KHRONOS_STATIC 1
+#endif
+
 /*-------------------------------------------------------------------------
 /*-------------------------------------------------------------------------
  * Definition of KHRONOS_APICALL
  * Definition of KHRONOS_APICALL
  *-------------------------------------------------------------------------
  *-------------------------------------------------------------------------
  * This precedes the return type of the function in the function prototype.
  * This precedes the return type of the function in the function prototype.
  */
  */
-#if defined(_WIN32) && !defined(__SCITECH_SNAP__)
+#if defined(KHRONOS_STATIC)
+    /* If the preprocessor constant KHRONOS_STATIC is defined, make the
+     * header compatible with static linking. */
+#   define KHRONOS_APICALL
+#elif defined(_WIN32)
 #   define KHRONOS_APICALL __declspec(dllimport)
 #   define KHRONOS_APICALL __declspec(dllimport)
 #elif defined (__SYMBIAN32__)
 #elif defined (__SYMBIAN32__)
 #   define KHRONOS_APICALL IMPORT_C
 #   define KHRONOS_APICALL IMPORT_C
+#elif defined(__ANDROID__)
+#   define KHRONOS_APICALL __attribute__((visibility("default")))
 #else
 #else
 #   define KHRONOS_APICALL
 #   define KHRONOS_APICALL
 #endif
 #endif
@@ -145,6 +153,20 @@ typedef int64_t                 khronos_int64_t;
 typedef uint64_t                khronos_uint64_t;
 typedef uint64_t                khronos_uint64_t;
 #define KHRONOS_SUPPORT_INT64   1
 #define KHRONOS_SUPPORT_INT64   1
 #define KHRONOS_SUPPORT_FLOAT   1
 #define KHRONOS_SUPPORT_FLOAT   1
+/*
+ * To support platform where unsigned long cannot be used interchangeably with
+ * inptr_t (e.g. CHERI-extended ISAs), we can use the stdint.h intptr_t.
+ * Ideally, we could just use (u)intptr_t everywhere, but this could result in
+ * ABI breakage if khronos_uintptr_t is changed from unsigned long to
+ * unsigned long long or similar (this results in different C++ name mangling).
+ * To avoid changes for existing platforms, we restrict usage of intptr_t to
+ * platforms where the size of a pointer is larger than the size of long.
+ */
+#if defined(__SIZEOF_LONG__) && defined(__SIZEOF_POINTER__)
+#if __SIZEOF_POINTER__ > __SIZEOF_LONG__
+#define KHRONOS_USE_INTPTR_T
+#endif
+#endif
 
 
 #elif defined(__VMS ) || defined(__sgi)
 #elif defined(__VMS ) || defined(__sgi)
 
 
@@ -223,18 +245,25 @@ typedef signed   short int     khronos_int16_t;
 typedef unsigned short int     khronos_uint16_t;
 typedef unsigned short int     khronos_uint16_t;
 
 
 /*
 /*
- * Types that differ between LLP64 and LP64 architectures - in LLP64, 
+ * Types that differ between LLP64 and LP64 architectures - in LLP64,
  * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
  * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
  * to be the only LLP64 architecture in current use.
  * to be the only LLP64 architecture in current use.
  */
  */
-#ifdef _WIN64
+#ifdef KHRONOS_USE_INTPTR_T
+typedef intptr_t               khronos_intptr_t;
+typedef uintptr_t              khronos_uintptr_t;
+#elif defined(_WIN64)
 typedef signed   long long int khronos_intptr_t;
 typedef signed   long long int khronos_intptr_t;
 typedef unsigned long long int khronos_uintptr_t;
 typedef unsigned long long int khronos_uintptr_t;
-typedef signed   long long int khronos_ssize_t;
-typedef unsigned long long int khronos_usize_t;
 #else
 #else
 typedef signed   long  int     khronos_intptr_t;
 typedef signed   long  int     khronos_intptr_t;
 typedef unsigned long  int     khronos_uintptr_t;
 typedef unsigned long  int     khronos_uintptr_t;
+#endif
+
+#if defined(_WIN64)
+typedef signed   long long int khronos_ssize_t;
+typedef unsigned long long int khronos_usize_t;
+#else
 typedef signed   long  int     khronos_ssize_t;
 typedef signed   long  int     khronos_ssize_t;
 typedef unsigned long  int     khronos_usize_t;
 typedef unsigned long  int     khronos_usize_t;
 #endif
 #endif

+ 5 - 5
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_pixels.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,10 +28,10 @@
 #ifndef SDL_pixels_h_
 #ifndef SDL_pixels_h_
 #define SDL_pixels_h_
 #define SDL_pixels_h_
 
 
-#include "SDL_stdinc.h"
-#include "SDL_endian.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_endian.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -637,7 +637,7 @@ extern DECLSPEC void SDLCALL SDL_CalculateGammaRamp(float gamma, Uint16 * ramp);
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_pixels_h_ */
 #endif /* SDL_pixels_h_ */
 
 

+ 35 - 9
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_platform.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -65,11 +65,15 @@
 #undef __LINUX__ /* do we need to do this? */
 #undef __LINUX__ /* do we need to do this? */
 #define __ANDROID__ 1
 #define __ANDROID__ 1
 #endif
 #endif
+#if defined(__NGAGE__)
+#undef __NGAGE__
+#define __NGAGE__ 1
+#endif
 
 
 #if defined(__APPLE__)
 #if defined(__APPLE__)
 /* lets us know what version of Mac OS X we're compiling on */
 /* lets us know what version of Mac OS X we're compiling on */
-#include "AvailabilityMacros.h"
-#include "TargetConditionals.h"
+#include <AvailabilityMacros.h>
+#include <TargetConditionals.h>
 
 
 /* Fix building with older SDKs that don't define these
 /* Fix building with older SDKs that don't define these
    See this for more information:
    See this for more information:
@@ -104,9 +108,9 @@
 /* if not compiling for iOS */
 /* if not compiling for iOS */
 #undef __MACOSX__
 #undef __MACOSX__
 #define __MACOSX__  1
 #define __MACOSX__  1
-#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060
-# error SDL for Mac OS X only supports deploying on 10.6 and above.
-#endif /* MAC_OS_X_VERSION_MIN_REQUIRED < 1060 */
+#if MAC_OS_X_VERSION_MIN_REQUIRED < 1070
+# error SDL for Mac OS X only supports deploying on 10.7 and above.
+#endif /* MAC_OS_X_VERSION_MIN_REQUIRED < 1070 */
 #endif /* TARGET_OS_IPHONE */
 #endif /* TARGET_OS_IPHONE */
 #endif /* defined(__APPLE__) */
 #endif /* defined(__APPLE__) */
 
 
@@ -140,7 +144,7 @@
 #endif
 #endif
 
 
 #if defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__)
 #if defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__)
-/* Try to find out if we're compiling for WinRT or non-WinRT */
+/* Try to find out if we're compiling for WinRT, GDK or non-WinRT/GDK */
 #if defined(_MSC_VER) && defined(__has_include)
 #if defined(_MSC_VER) && defined(__has_include)
 #if __has_include(<winapifamily.h>)
 #if __has_include(<winapifamily.h>)
 #define HAVE_WINAPIFAMILY_H 1
 #define HAVE_WINAPIFAMILY_H 1
@@ -165,6 +169,15 @@
 #if WINAPI_FAMILY_WINRT
 #if WINAPI_FAMILY_WINRT
 #undef __WINRT__
 #undef __WINRT__
 #define __WINRT__ 1
 #define __WINRT__ 1
+#elif defined(_GAMING_DESKTOP) /* GDK project configuration always defines _GAMING_XXX */
+#undef __WINGDK__
+#define __WINGDK__ 1
+#elif defined(_GAMING_XBOX_XBOXONE)
+#undef __XBOXONE__
+#define __XBOXONE__ 1
+#elif defined(_GAMING_XBOX_SCARLETT)
+#undef __XBOXSERIES__
+#define __XBOXSERIES__ 1
 #else
 #else
 #undef __WINDOWS__
 #undef __WINDOWS__
 #define __WINDOWS__ 1
 #define __WINDOWS__ 1
@@ -175,10 +188,18 @@
 #undef __WIN32__
 #undef __WIN32__
 #define __WIN32__ 1
 #define __WIN32__ 1
 #endif
 #endif
+/* This is to support generic "any GDK" separate from a platform-specific GDK */
+#if defined(__WINGDK__) || defined(__XBOXONE__) || defined(__XBOXSERIES__)
+#undef __GDK__
+#define __GDK__ 1
+#endif
 #if defined(__PSP__)
 #if defined(__PSP__)
 #undef __PSP__
 #undef __PSP__
 #define __PSP__ 1
 #define __PSP__ 1
 #endif
 #endif
+#if defined(PS2)
+#define __PS2__ 1
+#endif
 
 
 /* The NACL compiler defines __native_client__ and __pnacl__
 /* The NACL compiler defines __native_client__ and __pnacl__
  * Ref: http://www.chromium.org/nativeclient/pnacl/stability-of-the-pnacl-bitcode-abi
  * Ref: http://www.chromium.org/nativeclient/pnacl/stability-of-the-pnacl-bitcode-abi
@@ -200,7 +221,12 @@
 #define __VITA__ 1
 #define __VITA__ 1
 #endif
 #endif
 
 
-#include "begin_code.h"
+#if defined(__3DS__)
+#undef __3DS__
+#define __3DS__ 1
+#endif
+
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -228,7 +254,7 @@ extern DECLSPEC const char * SDLCALL SDL_GetPlatform (void);
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_platform_h_ */
 #endif /* SDL_platform_h_ */
 
 

+ 11 - 12
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_power.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,9 +28,9 @@
  *  Header for the SDL power management routines.
  *  Header for the SDL power management routines.
  */
  */
 
 
-#include "SDL_stdinc.h"
+#include <SDL2/SDL_stdinc.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -48,7 +48,6 @@ typedef enum
     SDL_POWERSTATE_CHARGED       /**< Plugged in, battery charged */
     SDL_POWERSTATE_CHARGED       /**< Plugged in, battery charged */
 } SDL_PowerState;
 } SDL_PowerState;
 
 
-
 /**
 /**
  * Get the current power supply details.
  * Get the current power supply details.
  *
  *
@@ -65,23 +64,23 @@ typedef enum
  * It's possible a platform can only report battery percentage or time left
  * It's possible a platform can only report battery percentage or time left
  * but not both.
  * but not both.
  *
  *
- * \param secs seconds of battery life left, you can pass a NULL here if you
- *             don't care, will return -1 if we can't determine a value, or
- *             we're not running on a battery
- * \param pct percentage of battery life left, between 0 and 100, you can pass
- *            a NULL here if you don't care, will return -1 if we can't
- *            determine a value, or we're not running on a battery
+ * \param seconds seconds of battery life left, you can pass a NULL here if
+ *                you don't care, will return -1 if we can't determine a
+ *                value, or we're not running on a battery
+ * \param percent percentage of battery life left, between 0 and 100, you can
+ *                pass a NULL here if you don't care, will return -1 if we
+ *                can't determine a value, or we're not running on a battery
  * \returns an SDL_PowerState enum representing the current battery state.
  * \returns an SDL_PowerState enum representing the current battery state.
  *
  *
  * \since This function is available since SDL 2.0.0.
  * \since This function is available since SDL 2.0.0.
  */
  */
-extern DECLSPEC SDL_PowerState SDLCALL SDL_GetPowerInfo(int *secs, int *pct);
+extern DECLSPEC SDL_PowerState SDLCALL SDL_GetPowerInfo(int *seconds, int *percent);
 
 
 /* Ends C function definitions when using C++ */
 /* Ends C function definitions when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_power_h_ */
 #endif /* SDL_power_h_ */
 
 

+ 3 - 3
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_quit.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,8 +28,8 @@
 #ifndef SDL_quit_h_
 #ifndef SDL_quit_h_
 #define SDL_quit_h_
 #define SDL_quit_h_
 
 
-#include "SDL_stdinc.h"
-#include "SDL_error.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_error.h>
 
 
 /**
 /**
  *  \file SDL_quit.h
  *  \file SDL_quit.h

+ 161 - 9
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_rect.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,12 +28,12 @@
 #ifndef SDL_rect_h_
 #ifndef SDL_rect_h_
 #define SDL_rect_h_
 #define SDL_rect_h_
 
 
-#include "SDL_stdinc.h"
-#include "SDL_error.h"
-#include "SDL_pixels.h"
-#include "SDL_rwops.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_error.h>
+#include <SDL2/SDL_pixels.h>
+#include <SDL2/SDL_rwops.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -54,8 +54,8 @@ typedef struct SDL_Point
 /**
 /**
  * The structure that defines a point (floating point)
  * The structure that defines a point (floating point)
  *
  *
- * \sa SDL_EnclosePoints
- * \sa SDL_PointInRect
+ * \sa SDL_EncloseFPoints
+ * \sa SDL_PointInFRect
  */
  */
 typedef struct SDL_FPoint
 typedef struct SDL_FPoint
 {
 {
@@ -71,6 +71,7 @@ typedef struct SDL_FPoint
  * \sa SDL_RectEquals
  * \sa SDL_RectEquals
  * \sa SDL_HasIntersection
  * \sa SDL_HasIntersection
  * \sa SDL_IntersectRect
  * \sa SDL_IntersectRect
+ * \sa SDL_IntersectRectAndLine
  * \sa SDL_UnionRect
  * \sa SDL_UnionRect
  * \sa SDL_EnclosePoints
  * \sa SDL_EnclosePoints
  */
  */
@@ -83,6 +84,16 @@ typedef struct SDL_Rect
 
 
 /**
 /**
  * A rectangle, with the origin at the upper left (floating point).
  * A rectangle, with the origin at the upper left (floating point).
+ *
+ * \sa SDL_FRectEmpty
+ * \sa SDL_FRectEquals
+ * \sa SDL_FRectEqualsEpsilon
+ * \sa SDL_HasIntersectionF
+ * \sa SDL_IntersectFRect
+ * \sa SDL_IntersectFRectAndLine
+ * \sa SDL_UnionFRect
+ * \sa SDL_EncloseFPoints
+ * \sa SDL_PointInFRect
  */
  */
 typedef struct SDL_FRect
 typedef struct SDL_FRect
 {
 {
@@ -213,11 +224,152 @@ extern DECLSPEC SDL_bool SDLCALL SDL_IntersectRectAndLine(const SDL_Rect *
                                                           int *Y1, int *X2,
                                                           int *Y1, int *X2,
                                                           int *Y2);
                                                           int *Y2);
 
 
+
+/* SDL_FRect versions... */
+
+/**
+ * Returns true if point resides inside a rectangle.
+ */
+SDL_FORCE_INLINE SDL_bool SDL_PointInFRect(const SDL_FPoint *p, const SDL_FRect *r)
+{
+    return ( (p->x >= r->x) && (p->x < (r->x + r->w)) &&
+             (p->y >= r->y) && (p->y < (r->y + r->h)) ) ? SDL_TRUE : SDL_FALSE;
+}
+
+/**
+ * Returns true if the rectangle has no area.
+ */
+SDL_FORCE_INLINE SDL_bool SDL_FRectEmpty(const SDL_FRect *r)
+{
+    return ((!r) || (r->w <= 0.0f) || (r->h <= 0.0f)) ? SDL_TRUE : SDL_FALSE;
+}
+
+/**
+ * Returns true if the two rectangles are equal, within some given epsilon.
+ *
+ * \since This function is available since SDL 2.0.22.
+ */
+SDL_FORCE_INLINE SDL_bool SDL_FRectEqualsEpsilon(const SDL_FRect *a, const SDL_FRect *b, const float epsilon)
+{
+    return (a && b && ((a == b) ||
+            ((SDL_fabsf(a->x - b->x) <= epsilon) &&
+            (SDL_fabsf(a->y - b->y) <= epsilon) &&
+            (SDL_fabsf(a->w - b->w) <= epsilon) &&
+            (SDL_fabsf(a->h - b->h) <= epsilon))))
+            ? SDL_TRUE : SDL_FALSE;
+}
+
+/**
+ * Returns true if the two rectangles are equal, using a default epsilon.
+ *
+ * \since This function is available since SDL 2.0.22.
+ */
+SDL_FORCE_INLINE SDL_bool SDL_FRectEquals(const SDL_FRect *a, const SDL_FRect *b)
+{
+    return SDL_FRectEqualsEpsilon(a, b, SDL_FLT_EPSILON);
+}
+
+/**
+ * Determine whether two rectangles intersect with float precision.
+ *
+ * If either pointer is NULL the function will return SDL_FALSE.
+ *
+ * \param A an SDL_FRect structure representing the first rectangle
+ * \param B an SDL_FRect structure representing the second rectangle
+ * \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise.
+ *
+ * \since This function is available since SDL 2.0.22.
+ *
+ * \sa SDL_IntersectRect
+ */
+extern DECLSPEC SDL_bool SDLCALL SDL_HasIntersectionF(const SDL_FRect * A,
+                                                      const SDL_FRect * B);
+
+/**
+ * Calculate the intersection of two rectangles with float precision.
+ *
+ * If `result` is NULL then this function will return SDL_FALSE.
+ *
+ * \param A an SDL_FRect structure representing the first rectangle
+ * \param B an SDL_FRect structure representing the second rectangle
+ * \param result an SDL_FRect structure filled in with the intersection of
+ *               rectangles `A` and `B`
+ * \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise.
+ *
+ * \since This function is available since SDL 2.0.22.
+ *
+ * \sa SDL_HasIntersectionF
+ */
+extern DECLSPEC SDL_bool SDLCALL SDL_IntersectFRect(const SDL_FRect * A,
+                                                    const SDL_FRect * B,
+                                                    SDL_FRect * result);
+
+/**
+ * Calculate the union of two rectangles with float precision.
+ *
+ * \param A an SDL_FRect structure representing the first rectangle
+ * \param B an SDL_FRect structure representing the second rectangle
+ * \param result an SDL_FRect structure filled in with the union of rectangles
+ *               `A` and `B`
+ *
+ * \since This function is available since SDL 2.0.22.
+ */
+extern DECLSPEC void SDLCALL SDL_UnionFRect(const SDL_FRect * A,
+                                            const SDL_FRect * B,
+                                            SDL_FRect * result);
+
+/**
+ * Calculate a minimal rectangle enclosing a set of points with float
+ * precision.
+ *
+ * If `clip` is not NULL then only points inside of the clipping rectangle are
+ * considered.
+ *
+ * \param points an array of SDL_FPoint structures representing points to be
+ *               enclosed
+ * \param count the number of structures in the `points` array
+ * \param clip an SDL_FRect used for clipping or NULL to enclose all points
+ * \param result an SDL_FRect structure filled in with the minimal enclosing
+ *               rectangle
+ * \returns SDL_TRUE if any points were enclosed or SDL_FALSE if all the
+ *          points were outside of the clipping rectangle.
+ *
+ * \since This function is available since SDL 2.0.22.
+ */
+extern DECLSPEC SDL_bool SDLCALL SDL_EncloseFPoints(const SDL_FPoint * points,
+                                                    int count,
+                                                    const SDL_FRect * clip,
+                                                    SDL_FRect * result);
+
+/**
+ * Calculate the intersection of a rectangle and line segment with float
+ * precision.
+ *
+ * This function is used to clip a line segment to a rectangle. A line segment
+ * contained entirely within the rectangle or that does not intersect will
+ * remain unchanged. A line segment that crosses the rectangle at either or
+ * both ends will be clipped to the boundary of the rectangle and the new
+ * coordinates saved in `X1`, `Y1`, `X2`, and/or `Y2` as necessary.
+ *
+ * \param rect an SDL_FRect structure representing the rectangle to intersect
+ * \param X1 a pointer to the starting X-coordinate of the line
+ * \param Y1 a pointer to the starting Y-coordinate of the line
+ * \param X2 a pointer to the ending X-coordinate of the line
+ * \param Y2 a pointer to the ending Y-coordinate of the line
+ * \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise.
+ *
+ * \since This function is available since SDL 2.0.22.
+ */
+extern DECLSPEC SDL_bool SDLCALL SDL_IntersectFRectAndLine(const SDL_FRect *
+                                                           rect, float *X1,
+                                                           float *Y1, float *X2,
+                                                           float *Y2);
+
 /* Ends C function definitions when using C++ */
 /* Ends C function definitions when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_rect_h_ */
 #endif /* SDL_rect_h_ */
 
 

+ 62 - 24
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_render.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -48,11 +48,11 @@
 #ifndef SDL_render_h_
 #ifndef SDL_render_h_
 #define SDL_render_h_
 #define SDL_render_h_
 
 
-#include "SDL_stdinc.h"
-#include "SDL_rect.h"
-#include "SDL_video.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_rect.h>
+#include <SDL2/SDL_video.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -261,6 +261,17 @@ extern DECLSPEC SDL_Renderer * SDLCALL SDL_CreateSoftwareRenderer(SDL_Surface *
  */
  */
 extern DECLSPEC SDL_Renderer * SDLCALL SDL_GetRenderer(SDL_Window * window);
 extern DECLSPEC SDL_Renderer * SDLCALL SDL_GetRenderer(SDL_Window * window);
 
 
+/**
+ * Get the window associated with a renderer.
+ *
+ * \param renderer the renderer to query
+ * \returns the window on success or NULL on failure; call SDL_GetError() for
+ *          more information.
+ *
+ * \since This function is available since SDL 2.0.22.
+ */
+extern DECLSPEC SDL_Window * SDLCALL SDL_RenderGetWindow(SDL_Renderer *renderer);
+
 /**
 /**
  * Get information about a rendering context.
  * Get information about a rendering context.
  *
  *
@@ -356,11 +367,15 @@ extern DECLSPEC SDL_Texture * SDLCALL SDL_CreateTextureFromSurface(SDL_Renderer
  * \param texture the texture to query
  * \param texture the texture to query
  * \param format a pointer filled in with the raw format of the texture; the
  * \param format a pointer filled in with the raw format of the texture; the
  *               actual format may differ, but pixel transfers will use this
  *               actual format may differ, but pixel transfers will use this
- *               format (one of the SDL_PixelFormatEnum values)
+ *               format (one of the SDL_PixelFormatEnum values). This argument
+ *               can be NULL if you don't need this information.
  * \param access a pointer filled in with the actual access to the texture
  * \param access a pointer filled in with the actual access to the texture
- *               (one of the SDL_TextureAccess values)
- * \param w a pointer filled in with the width of the texture in pixels
- * \param h a pointer filled in with the height of the texture in pixels
+ *               (one of the SDL_TextureAccess values). This argument can be
+ *               NULL if you don't need this information.
+ * \param w a pointer filled in with the width of the texture in pixels. This
+ *          argument can be NULL if you don't need this information.
+ * \param h a pointer filled in with the height of the texture in pixels. This
+ *          argument can be NULL if you don't need this information.
  * \returns 0 on success or a negative error code on failure; call
  * \returns 0 on success or a negative error code on failure; call
  *          SDL_GetError() for more information.
  *          SDL_GetError() for more information.
  *
  *
@@ -810,9 +825,13 @@ extern DECLSPEC int SDLCALL SDL_RenderSetLogicalSize(SDL_Renderer * renderer, in
 /**
 /**
  * Get device independent resolution for rendering.
  * Get device independent resolution for rendering.
  *
  *
- * This may return 0 for `w` and `h` if the SDL_Renderer has never had its
- * logical size set by SDL_RenderSetLogicalSize() and never had a render
- * target set.
+ * When using the main rendering target (eg no target texture is set): this
+ * may return 0 for `w` and `h` if the SDL_Renderer has never had its logical
+ * size set by SDL_RenderSetLogicalSize(). Otherwise it returns the logical
+ * width and height.
+ *
+ * When using a target texture: Never return 0 for `w` and `h` at first. Then
+ * it returns the logical width and height that are set.
  *
  *
  * \param renderer a rendering context
  * \param renderer a rendering context
  * \param w an int to be filled with the width
  * \param w an int to be filled with the width
@@ -985,7 +1004,7 @@ extern DECLSPEC void SDLCALL SDL_RenderGetScale(SDL_Renderer * renderer,
  * and logical renderer size set
  * and logical renderer size set
  *
  *
  * \param renderer the renderer from which the logical coordinates should be
  * \param renderer the renderer from which the logical coordinates should be
- *                 calcualted
+ *                 calculated
  * \param windowX the real X coordinate in the window
  * \param windowX the real X coordinate in the window
  * \param windowY the real Y coordinate in the window
  * \param windowY the real Y coordinate in the window
  * \param logicalX the pointer filled with the logical x coordinate
  * \param logicalX the pointer filled with the logical x coordinate
@@ -1002,19 +1021,23 @@ extern DECLSPEC void SDLCALL SDL_RenderWindowToLogical(SDL_Renderer * renderer,
                                                             int windowX, int windowY, 
                                                             int windowX, int windowY, 
                                                             float *logicalX, float *logicalY);
                                                             float *logicalX, float *logicalY);
                                                   
                                                   
-                                                  /**
- * Get real coordinates of point in window when given logical coordinates of point in renderer.
- * Logical coordinates will differ from real coordinates when render is scaled and logical renderer size set
- * 
- * \param renderer the renderer from which the window coordinates should be calculated
+
+/**
+ * Get real coordinates of point in window when given logical coordinates of
+ * point in renderer.
+ *
+ * Logical coordinates will differ from real coordinates when render is scaled
+ * and logical renderer size set
+ *
+ * \param renderer the renderer from which the window coordinates should be
+ *                 calculated
  * \param logicalX the logical x coordinate
  * \param logicalX the logical x coordinate
  * \param logicalY the logical y coordinate
  * \param logicalY the logical y coordinate
  * \param windowX the pointer filled with the real X coordinate in the window
  * \param windowX the pointer filled with the real X coordinate in the window
  * \param windowY the pointer filled with the real Y coordinate in the window
  * \param windowY the pointer filled with the real Y coordinate in the window
- 
- *  
+ *
  * \since This function is available since SDL 2.0.18.
  * \since This function is available since SDL 2.0.18.
- * 
+ *
  * \sa SDL_RenderGetScale
  * \sa SDL_RenderGetScale
  * \sa SDL_RenderSetScale
  * \sa SDL_RenderSetScale
  * \sa SDL_RenderGetLogicalSize
  * \sa SDL_RenderGetLogicalSize
@@ -1603,6 +1626,7 @@ extern DECLSPEC int SDLCALL SDL_RenderCopyExF(SDL_Renderer * renderer,
  * vertex array Color and alpha modulation is done per vertex
  * vertex array Color and alpha modulation is done per vertex
  * (SDL_SetTextureColorMod and SDL_SetTextureAlphaMod are ignored).
  * (SDL_SetTextureColorMod and SDL_SetTextureAlphaMod are ignored).
  *
  *
+ * \param renderer The rendering context.
  * \param texture (optional) The SDL texture to use.
  * \param texture (optional) The SDL texture to use.
  * \param vertices Vertices.
  * \param vertices Vertices.
  * \param num_vertices Number of vertices.
  * \param num_vertices Number of vertices.
@@ -1614,6 +1638,7 @@ extern DECLSPEC int SDLCALL SDL_RenderCopyExF(SDL_Renderer * renderer,
  *
  *
  * \since This function is available since SDL 2.0.18.
  * \since This function is available since SDL 2.0.18.
  *
  *
+ * \sa SDL_RenderGeometryRaw
  * \sa SDL_Vertex
  * \sa SDL_Vertex
  */
  */
 extern DECLSPEC int SDLCALL SDL_RenderGeometry(SDL_Renderer *renderer,
 extern DECLSPEC int SDLCALL SDL_RenderGeometry(SDL_Renderer *renderer,
@@ -1626,6 +1651,7 @@ extern DECLSPEC int SDLCALL SDL_RenderGeometry(SDL_Renderer *renderer,
  * vertex arrays Color and alpha modulation is done per vertex
  * vertex arrays Color and alpha modulation is done per vertex
  * (SDL_SetTextureColorMod and SDL_SetTextureAlphaMod are ignored).
  * (SDL_SetTextureColorMod and SDL_SetTextureAlphaMod are ignored).
  *
  *
+ * \param renderer The rendering context.
  * \param texture (optional) The SDL texture to use.
  * \param texture (optional) The SDL texture to use.
  * \param xy Vertex positions
  * \param xy Vertex positions
  * \param xy_stride Byte size to move from one element to the next element
  * \param xy_stride Byte size to move from one element to the next element
@@ -1641,6 +1667,9 @@ extern DECLSPEC int SDLCALL SDL_RenderGeometry(SDL_Renderer *renderer,
  * \return 0 on success, or -1 if the operation is not supported
  * \return 0 on success, or -1 if the operation is not supported
  *
  *
  * \since This function is available since SDL 2.0.18.
  * \since This function is available since SDL 2.0.18.
+ *
+ * \sa SDL_RenderGeometry
+ * \sa SDL_Vertex
  */
  */
 extern DECLSPEC int SDLCALL SDL_RenderGeometryRaw(SDL_Renderer *renderer,
 extern DECLSPEC int SDLCALL SDL_RenderGeometryRaw(SDL_Renderer *renderer,
                                                SDL_Texture *texture,
                                                SDL_Texture *texture,
@@ -1654,7 +1683,8 @@ extern DECLSPEC int SDLCALL SDL_RenderGeometryRaw(SDL_Renderer *renderer,
  * Read pixels from the current rendering target to an array of pixels.
  * Read pixels from the current rendering target to an array of pixels.
  *
  *
  * **WARNING**: This is a very slow operation, and should not be used
  * **WARNING**: This is a very slow operation, and should not be used
- * frequently.
+ * frequently. If you're using this on the main rendering target, it should be
+ * called after rendering and before SDL_RenderPresent().
  *
  *
  * `pitch` specifies the number of bytes between rows in the destination
  * `pitch` specifies the number of bytes between rows in the destination
  * `pixels` data. This allows you to write to a subrectangle or have padded
  * `pixels` data. This allows you to write to a subrectangle or have padded
@@ -1701,6 +1731,11 @@ extern DECLSPEC int SDLCALL SDL_RenderReadPixels(SDL_Renderer * renderer,
  *
  *
  * \param renderer the rendering context
  * \param renderer the rendering context
  *
  *
+ * \threadsafety You may only call this function on the main thread. If this
+ *               happens to work on a background thread on any given platform
+ *               or backend, it's purely by luck and you should not rely on it
+ *               to work next time.
+ *
  * \since This function is available since SDL 2.0.0.
  * \since This function is available since SDL 2.0.0.
  *
  *
  * \sa SDL_RenderClear
  * \sa SDL_RenderClear
@@ -1735,6 +1770,9 @@ extern DECLSPEC void SDLCALL SDL_DestroyTexture(SDL_Texture * texture);
 /**
 /**
  * Destroy the rendering context for a window and free associated textures.
  * Destroy the rendering context for a window and free associated textures.
  *
  *
+ * If `renderer` is NULL, this function will return immediately after setting
+ * the SDL error message to "Invalid renderer". See SDL_GetError().
+ *
  * \param renderer the rendering context
  * \param renderer the rendering context
  *
  *
  * \since This function is available since SDL 2.0.0.
  * \since This function is available since SDL 2.0.0.
@@ -1852,7 +1890,7 @@ extern DECLSPEC void *SDLCALL SDL_RenderGetMetalLayer(SDL_Renderer * renderer);
  * Note that as of SDL 2.0.18, this will return NULL if Metal refuses to give
  * Note that as of SDL 2.0.18, this will return NULL if Metal refuses to give
  * SDL a drawable to render to, which might happen if the window is
  * SDL a drawable to render to, which might happen if the window is
  * hidden/minimized/offscreen. This doesn't apply to command encoders for
  * hidden/minimized/offscreen. This doesn't apply to command encoders for
- * render targets, just the window's backbacker. Check your return values!
+ * render targets, just the window's backbuffer. Check your return values!
  *
  *
  * \param renderer The renderer to query
  * \param renderer The renderer to query
  * \returns an `id<MTLRenderCommandEncoder>` on success, or NULL if the
  * \returns an `id<MTLRenderCommandEncoder>` on success, or NULL if the
@@ -1879,7 +1917,7 @@ extern DECLSPEC int SDLCALL SDL_RenderSetVSync(SDL_Renderer* renderer, int vsync
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_render_h_ */
 #endif /* SDL_render_h_ */
 
 

+ 4 - 0
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_revision.h

@@ -1,2 +1,6 @@
+#ifdef SDL_VENDOR_INFO
+#define SDL_REVISION SDL_VENDOR_INFO
+#else
 #define SDL_REVISION ""
 #define SDL_REVISION ""
+#endif
 #define SDL_REVISION_NUMBER 0
 #define SDL_REVISION_NUMBER 0

+ 6 - 20
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_rwops.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -29,10 +29,10 @@
 #ifndef SDL_rwops_h_
 #ifndef SDL_rwops_h_
 #define SDL_rwops_h_
 #define SDL_rwops_h_
 
 
-#include "SDL_stdinc.h"
-#include "SDL_error.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_error.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -45,9 +45,6 @@ extern "C" {
 #define SDL_RWOPS_JNIFILE   3U  /**< Android asset */
 #define SDL_RWOPS_JNIFILE   3U  /**< Android asset */
 #define SDL_RWOPS_MEMORY    4U  /**< Memory stream */
 #define SDL_RWOPS_MEMORY    4U  /**< Memory stream */
 #define SDL_RWOPS_MEMORY_RO 5U  /**< Read-Only memory stream */
 #define SDL_RWOPS_MEMORY_RO 5U  /**< Read-Only memory stream */
-#if defined(__VITA__)
-#define SDL_RWOPS_VITAFILE  6U  /**< Vita file */
-#endif
 
 
 /**
 /**
  * This is the read/write operation structure -- very basic.
  * This is the read/write operation structure -- very basic.
@@ -101,7 +98,7 @@ typedef struct SDL_RWops
         {
         {
             void *asset;
             void *asset;
         } androidio;
         } androidio;
-#elif defined(__WIN32__)
+#elif defined(__WIN32__) || defined(__GDK__)
         struct
         struct
         {
         {
             SDL_bool append;
             SDL_bool append;
@@ -113,17 +110,6 @@ typedef struct SDL_RWops
                 size_t left;
                 size_t left;
             } buffer;
             } buffer;
         } windowsio;
         } windowsio;
-#elif defined(__VITA__)
-        struct
-        {
-            int h;
-            struct
-            {
-                void *data;
-                size_t size;
-                size_t left;
-            } buffer;
-        } vitaio;
 #endif
 #endif
 
 
 #ifdef HAVE_STDIO_H
 #ifdef HAVE_STDIO_H
@@ -848,7 +834,7 @@ extern DECLSPEC size_t SDLCALL SDL_WriteBE64(SDL_RWops * dst, Uint64 value);
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_rwops_h_ */
 #endif /* SDL_rwops_h_ */
 
 

+ 48 - 23
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_scancode.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,7 +28,7 @@
 #ifndef SDL_scancode_h_
 #ifndef SDL_scancode_h_
 #define SDL_scancode_h_
 #define SDL_scancode_h_
 
 
-#include "SDL_stdinc.h"
+#include <SDL2/SDL_stdinc.h>
 
 
 /**
 /**
  *  \brief The SDL keyboard scancode representation.
  *  \brief The SDL keyboard scancode representation.
@@ -225,16 +225,16 @@ typedef enum
     SDL_SCANCODE_F23 = 114,
     SDL_SCANCODE_F23 = 114,
     SDL_SCANCODE_F24 = 115,
     SDL_SCANCODE_F24 = 115,
     SDL_SCANCODE_EXECUTE = 116,
     SDL_SCANCODE_EXECUTE = 116,
-    SDL_SCANCODE_HELP = 117,
-    SDL_SCANCODE_MENU = 118,
+    SDL_SCANCODE_HELP = 117,    /**< AL Integrated Help Center */
+    SDL_SCANCODE_MENU = 118,    /**< Menu (show menu) */
     SDL_SCANCODE_SELECT = 119,
     SDL_SCANCODE_SELECT = 119,
-    SDL_SCANCODE_STOP = 120,
-    SDL_SCANCODE_AGAIN = 121,   /**< redo */
-    SDL_SCANCODE_UNDO = 122,
-    SDL_SCANCODE_CUT = 123,
-    SDL_SCANCODE_COPY = 124,
-    SDL_SCANCODE_PASTE = 125,
-    SDL_SCANCODE_FIND = 126,
+    SDL_SCANCODE_STOP = 120,    /**< AC Stop */
+    SDL_SCANCODE_AGAIN = 121,   /**< AC Redo/Repeat */
+    SDL_SCANCODE_UNDO = 122,    /**< AC Undo */
+    SDL_SCANCODE_CUT = 123,     /**< AC Cut */
+    SDL_SCANCODE_COPY = 124,    /**< AC Copy */
+    SDL_SCANCODE_PASTE = 125,   /**< AC Paste */
+    SDL_SCANCODE_FIND = 126,    /**< AC Find */
     SDL_SCANCODE_MUTE = 127,
     SDL_SCANCODE_MUTE = 127,
     SDL_SCANCODE_VOLUMEUP = 128,
     SDL_SCANCODE_VOLUMEUP = 128,
     SDL_SCANCODE_VOLUMEDOWN = 129,
     SDL_SCANCODE_VOLUMEDOWN = 129,
@@ -265,9 +265,9 @@ typedef enum
     SDL_SCANCODE_LANG8 = 151, /**< reserved */
     SDL_SCANCODE_LANG8 = 151, /**< reserved */
     SDL_SCANCODE_LANG9 = 152, /**< reserved */
     SDL_SCANCODE_LANG9 = 152, /**< reserved */
 
 
-    SDL_SCANCODE_ALTERASE = 153, /**< Erase-Eaze */
+    SDL_SCANCODE_ALTERASE = 153,    /**< Erase-Eaze */
     SDL_SCANCODE_SYSREQ = 154,
     SDL_SCANCODE_SYSREQ = 154,
-    SDL_SCANCODE_CANCEL = 155,
+    SDL_SCANCODE_CANCEL = 155,      /**< AC Cancel */
     SDL_SCANCODE_CLEAR = 156,
     SDL_SCANCODE_CLEAR = 156,
     SDL_SCANCODE_PRIOR = 157,
     SDL_SCANCODE_PRIOR = 157,
     SDL_SCANCODE_RETURN2 = 158,
     SDL_SCANCODE_RETURN2 = 158,
@@ -345,6 +345,11 @@ typedef enum
      *  \name Usage page 0x0C
      *  \name Usage page 0x0C
      *
      *
      *  These values are mapped from usage page 0x0C (USB consumer page).
      *  These values are mapped from usage page 0x0C (USB consumer page).
+     *  See https://usb.org/sites/default/files/hut1_2.pdf
+     *
+     *  There are way more keys in the spec than we can represent in the
+     *  current scancode range, so pick the ones that commonly come up in
+     *  real world usage.
      */
      */
     /* @{ */
     /* @{ */
 
 
@@ -354,17 +359,17 @@ typedef enum
     SDL_SCANCODE_AUDIOPLAY = 261,
     SDL_SCANCODE_AUDIOPLAY = 261,
     SDL_SCANCODE_AUDIOMUTE = 262,
     SDL_SCANCODE_AUDIOMUTE = 262,
     SDL_SCANCODE_MEDIASELECT = 263,
     SDL_SCANCODE_MEDIASELECT = 263,
-    SDL_SCANCODE_WWW = 264,
+    SDL_SCANCODE_WWW = 264,             /**< AL Internet Browser */
     SDL_SCANCODE_MAIL = 265,
     SDL_SCANCODE_MAIL = 265,
-    SDL_SCANCODE_CALCULATOR = 266,
+    SDL_SCANCODE_CALCULATOR = 266,      /**< AL Calculator */
     SDL_SCANCODE_COMPUTER = 267,
     SDL_SCANCODE_COMPUTER = 267,
-    SDL_SCANCODE_AC_SEARCH = 268,
-    SDL_SCANCODE_AC_HOME = 269,
-    SDL_SCANCODE_AC_BACK = 270,
-    SDL_SCANCODE_AC_FORWARD = 271,
-    SDL_SCANCODE_AC_STOP = 272,
-    SDL_SCANCODE_AC_REFRESH = 273,
-    SDL_SCANCODE_AC_BOOKMARKS = 274,
+    SDL_SCANCODE_AC_SEARCH = 268,       /**< AC Search */
+    SDL_SCANCODE_AC_HOME = 269,         /**< AC Home */
+    SDL_SCANCODE_AC_BACK = 270,         /**< AC Back */
+    SDL_SCANCODE_AC_FORWARD = 271,      /**< AC Forward */
+    SDL_SCANCODE_AC_STOP = 272,         /**< AC Stop */
+    SDL_SCANCODE_AC_REFRESH = 273,      /**< AC Refresh */
+    SDL_SCANCODE_AC_BOOKMARKS = 274,    /**< AC Bookmarks */
 
 
     /* @} *//* Usage page 0x0C */
     /* @} *//* Usage page 0x0C */
 
 
@@ -383,7 +388,7 @@ typedef enum
     SDL_SCANCODE_KBDILLUMDOWN = 279,
     SDL_SCANCODE_KBDILLUMDOWN = 279,
     SDL_SCANCODE_KBDILLUMUP = 280,
     SDL_SCANCODE_KBDILLUMUP = 280,
     SDL_SCANCODE_EJECT = 281,
     SDL_SCANCODE_EJECT = 281,
-    SDL_SCANCODE_SLEEP = 282,
+    SDL_SCANCODE_SLEEP = 282,           /**< SC System Sleep */
 
 
     SDL_SCANCODE_APP1 = 283,
     SDL_SCANCODE_APP1 = 283,
     SDL_SCANCODE_APP2 = 284,
     SDL_SCANCODE_APP2 = 284,
@@ -402,6 +407,26 @@ typedef enum
 
 
     /* @} *//* Usage page 0x0C (additional media keys) */
     /* @} *//* Usage page 0x0C (additional media keys) */
 
 
+    /**
+     *  \name Mobile keys
+     *
+     *  These are values that are often used on mobile phones.
+     */
+    /* @{ */
+
+    SDL_SCANCODE_SOFTLEFT = 287, /**< Usually situated below the display on phones and
+                                      used as a multi-function feature key for selecting
+                                      a software defined function shown on the bottom left
+                                      of the display. */
+    SDL_SCANCODE_SOFTRIGHT = 288, /**< Usually situated below the display on phones and
+                                       used as a multi-function feature key for selecting
+                                       a software defined function shown on the bottom right
+                                       of the display. */
+    SDL_SCANCODE_CALL = 289, /**< Used for accepting phone calls. */
+    SDL_SCANCODE_ENDCALL = 290, /**< Used for rejecting phone calls. */
+
+    /* @} *//* Mobile keys */
+
     /* Add any other keys here. */
     /* Add any other keys here. */
 
 
     SDL_NUM_SCANCODES = 512 /**< not a key, just marks the number of scancodes
     SDL_NUM_SCANCODES = 512 /**< not a key, just marks the number of scancodes

+ 30 - 9
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_sensor.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -29,10 +29,10 @@
 #ifndef SDL_sensor_h_
 #ifndef SDL_sensor_h_
 #define SDL_sensor_h_
 #define SDL_sensor_h_
 
 
-#include "SDL_stdinc.h"
-#include "SDL_error.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_error.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 /* *INDENT-OFF* */
 /* *INDENT-OFF* */
@@ -71,7 +71,11 @@ typedef enum
     SDL_SENSOR_INVALID = -1,    /**< Returned for an invalid sensor */
     SDL_SENSOR_INVALID = -1,    /**< Returned for an invalid sensor */
     SDL_SENSOR_UNKNOWN,         /**< Unknown sensor type */
     SDL_SENSOR_UNKNOWN,         /**< Unknown sensor type */
     SDL_SENSOR_ACCEL,           /**< Accelerometer */
     SDL_SENSOR_ACCEL,           /**< Accelerometer */
-    SDL_SENSOR_GYRO             /**< Gyroscope */
+    SDL_SENSOR_GYRO,            /**< Gyroscope */
+    SDL_SENSOR_ACCEL_L,         /**< Accelerometer for left Joy-Con controller and Wii nunchuk */
+    SDL_SENSOR_GYRO_L,          /**< Gyroscope for left Joy-Con controller */
+    SDL_SENSOR_ACCEL_R,         /**< Accelerometer for right Joy-Con controller */
+    SDL_SENSOR_GYRO_R           /**< Gyroscope for right Joy-Con controller */
 } SDL_SensorType;
 } SDL_SensorType;
 
 
 /**
 /**
@@ -80,7 +84,7 @@ typedef enum
  * The accelerometer returns the current acceleration in SI meters per
  * The accelerometer returns the current acceleration in SI meters per
  * second squared. This measurement includes the force of gravity, so
  * second squared. This measurement includes the force of gravity, so
  * a device at rest will have an value of SDL_STANDARD_GRAVITY away
  * a device at rest will have an value of SDL_STANDARD_GRAVITY away
- * from the center of the earth.
+ * from the center of the earth, which is a positive Y value.
  *
  *
  * values[0]: Acceleration on the x axis
  * values[0]: Acceleration on the x axis
  * values[1]: Acceleration on the y axis
  * values[1]: Acceleration on the y axis
@@ -263,7 +267,24 @@ extern DECLSPEC SDL_SensorID SDLCALL SDL_SensorGetInstanceID(SDL_Sensor *sensor)
  *
  *
  * \since This function is available since SDL 2.0.9.
  * \since This function is available since SDL 2.0.9.
  */
  */
-extern DECLSPEC int SDLCALL SDL_SensorGetData(SDL_Sensor * sensor, float *data, int num_values);
+extern DECLSPEC int SDLCALL SDL_SensorGetData(SDL_Sensor *sensor, float *data, int num_values);
+
+/**
+ * Get the current state of an opened sensor with the timestamp of the last
+ * update.
+ *
+ * The number of values and interpretation of the data is sensor dependent.
+ *
+ * \param sensor The SDL_Sensor object to query
+ * \param timestamp A pointer filled with the timestamp in microseconds of the
+ *                  current sensor reading if available, or 0 if not
+ * \param data A pointer filled with the current sensor state
+ * \param num_values The number of values to write to data
+ * \returns 0 or -1 if an error occurred.
+ *
+ * \since This function is available since SDL 2.26.0.
+ */
+extern DECLSPEC int SDLCALL SDL_SensorGetDataWithTimestamp(SDL_Sensor *sensor, Uint64 *timestamp, float *data, int num_values);
 
 
 /**
 /**
  * Close a sensor previously opened with SDL_SensorOpen().
  * Close a sensor previously opened with SDL_SensorOpen().
@@ -272,7 +293,7 @@ extern DECLSPEC int SDLCALL SDL_SensorGetData(SDL_Sensor * sensor, float *data,
  *
  *
  * \since This function is available since SDL 2.0.9.
  * \since This function is available since SDL 2.0.9.
  */
  */
-extern DECLSPEC void SDLCALL SDL_SensorClose(SDL_Sensor * sensor);
+extern DECLSPEC void SDLCALL SDL_SensorClose(SDL_Sensor *sensor);
 
 
 /**
 /**
  * Update the current state of the open sensors.
  * Update the current state of the open sensors.
@@ -294,7 +315,7 @@ extern DECLSPEC void SDLCALL SDL_SensorUpdate(void);
 }
 }
 /* *INDENT-ON* */
 /* *INDENT-ON* */
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_sensor_h_ */
 #endif /* SDL_sensor_h_ */
 
 

+ 8 - 8
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_shape.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -22,13 +22,13 @@
 #ifndef SDL_shape_h_
 #ifndef SDL_shape_h_
 #define SDL_shape_h_
 #define SDL_shape_h_
 
 
-#include "SDL_stdinc.h"
-#include "SDL_pixels.h"
-#include "SDL_rect.h"
-#include "SDL_surface.h"
-#include "SDL_video.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_pixels.h>
+#include <SDL2/SDL_rect.h>
+#include <SDL2/SDL_surface.h>
+#include <SDL2/SDL_video.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -150,6 +150,6 @@ extern DECLSPEC int SDLCALL SDL_GetShapedWindowMode(SDL_Window *window,SDL_Windo
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_shape_h_ */
 #endif /* SDL_shape_h_ */

+ 142 - 23
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_stdinc.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,13 +28,7 @@
 #ifndef SDL_stdinc_h_
 #ifndef SDL_stdinc_h_
 #define SDL_stdinc_h_
 #define SDL_stdinc_h_
 
 
-#include "SDL_config.h"
-
-#ifdef __APPLE__
-#ifndef _DARWIN_C_SOURCE
-#define _DARWIN_C_SOURCE 1 /* for memset_pattern4() */
-#endif
-#endif
+#include <SDL2/SDL_config.h>
 
 
 #ifdef HAVE_SYS_TYPES_H
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
 #include <sys/types.h>
@@ -80,12 +74,14 @@
 # include <ctype.h>
 # include <ctype.h>
 #endif
 #endif
 #ifdef HAVE_MATH_H
 #ifdef HAVE_MATH_H
-# if defined(__WINRT__)
+# if defined(_MSC_VER)
 /* Defining _USE_MATH_DEFINES is required to get M_PI to be defined on
 /* Defining _USE_MATH_DEFINES is required to get M_PI to be defined on
-   WinRT.  See http://msdn.microsoft.com/en-us/library/4hwaceh6.aspx
+   Visual Studio.  See http://msdn.microsoft.com/en-us/library/4hwaceh6.aspx
    for more information.
    for more information.
 */
 */
-#  define _USE_MATH_DEFINES
+#  ifndef _USE_MATH_DEFINES
+#    define _USE_MATH_DEFINES
+#  endif
 # endif
 # endif
 # include <math.h>
 # include <math.h>
 #endif
 #endif
@@ -115,6 +111,12 @@ char *alloca();
 # endif
 # endif
 #endif
 #endif
 
 
+#ifdef SIZE_MAX
+# define SDL_SIZE_MAX SIZE_MAX
+#else
+# define SDL_SIZE_MAX ((size_t) -1)
+#endif
+
 /**
 /**
  * Check if the compiler supports a given builtin.
  * Check if the compiler supports a given builtin.
  * Supported by virtually all clang versions and recent gcc. Use this
  * Supported by virtually all clang versions and recent gcc. Use this
@@ -234,13 +236,26 @@ typedef uint64_t Uint64;
 
 
 /* @} *//* Basic data types */
 /* @} *//* Basic data types */
 
 
+/**
+ *  \name Floating-point constants
+ */
+/* @{ */
+
+#ifdef FLT_EPSILON
+#define SDL_FLT_EPSILON FLT_EPSILON
+#else
+#define SDL_FLT_EPSILON 1.1920928955078125e-07F /* 0x0.000002p0 */
+#endif
+
+/* @} *//* Floating-point constants */
+
 /* Make sure we have macros for printing width-based integers.
 /* Make sure we have macros for printing width-based integers.
  * <stdint.h> should define these but this is not true all platforms.
  * <stdint.h> should define these but this is not true all platforms.
  * (for example win32) */
  * (for example win32) */
 #ifndef SDL_PRIs64
 #ifndef SDL_PRIs64
 #ifdef PRIs64
 #ifdef PRIs64
 #define SDL_PRIs64 PRIs64
 #define SDL_PRIs64 PRIs64
-#elif defined(__WIN32__)
+#elif defined(__WIN32__) || defined(__GDK__)
 #define SDL_PRIs64 "I64d"
 #define SDL_PRIs64 "I64d"
 #elif defined(__LINUX__) && defined(__LP64__)
 #elif defined(__LINUX__) && defined(__LP64__)
 #define SDL_PRIs64 "ld"
 #define SDL_PRIs64 "ld"
@@ -251,7 +266,7 @@ typedef uint64_t Uint64;
 #ifndef SDL_PRIu64
 #ifndef SDL_PRIu64
 #ifdef PRIu64
 #ifdef PRIu64
 #define SDL_PRIu64 PRIu64
 #define SDL_PRIu64 PRIu64
-#elif defined(__WIN32__)
+#elif defined(__WIN32__) || defined(__GDK__)
 #define SDL_PRIu64 "I64u"
 #define SDL_PRIu64 "I64u"
 #elif defined(__LINUX__) && defined(__LP64__)
 #elif defined(__LINUX__) && defined(__LP64__)
 #define SDL_PRIu64 "lu"
 #define SDL_PRIu64 "lu"
@@ -262,7 +277,7 @@ typedef uint64_t Uint64;
 #ifndef SDL_PRIx64
 #ifndef SDL_PRIx64
 #ifdef PRIx64
 #ifdef PRIx64
 #define SDL_PRIx64 PRIx64
 #define SDL_PRIx64 PRIx64
-#elif defined(__WIN32__)
+#elif defined(__WIN32__) || defined(__GDK__)
 #define SDL_PRIx64 "I64x"
 #define SDL_PRIx64 "I64x"
 #elif defined(__LINUX__) && defined(__LP64__)
 #elif defined(__LINUX__) && defined(__LP64__)
 #define SDL_PRIx64 "lx"
 #define SDL_PRIx64 "lx"
@@ -273,7 +288,7 @@ typedef uint64_t Uint64;
 #ifndef SDL_PRIX64
 #ifndef SDL_PRIX64
 #ifdef PRIX64
 #ifdef PRIX64
 #define SDL_PRIX64 PRIX64
 #define SDL_PRIX64 PRIX64
-#elif defined(__WIN32__)
+#elif defined(__WIN32__) || defined(__GDK__)
 #define SDL_PRIX64 "I64X"
 #define SDL_PRIX64 "I64X"
 #elif defined(__LINUX__) && defined(__LP64__)
 #elif defined(__LINUX__) && defined(__LP64__)
 #define SDL_PRIX64 "lX"
 #define SDL_PRIX64 "lX"
@@ -354,8 +369,22 @@ typedef uint64_t Uint64;
 #endif
 #endif
 #endif /* SDL_DISABLE_ANALYZE_MACROS */
 #endif /* SDL_DISABLE_ANALYZE_MACROS */
 
 
+#ifndef SDL_COMPILE_TIME_ASSERT
+#if defined(__cplusplus)
+#if (__cplusplus >= 201103L)
+#define SDL_COMPILE_TIME_ASSERT(name, x)  static_assert(x, #x)
+#endif
+#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)
+#define SDL_COMPILE_TIME_ASSERT(name, x) _Static_assert(x, #x)
+#endif
+#endif /* !SDL_COMPILE_TIME_ASSERT */
+
+#ifndef SDL_COMPILE_TIME_ASSERT
+/* universal, but may trigger -Wunused-local-typedefs */
 #define SDL_COMPILE_TIME_ASSERT(name, x)               \
 #define SDL_COMPILE_TIME_ASSERT(name, x)               \
        typedef int SDL_compile_time_assert_ ## name[(x) * 2 - 1]
        typedef int SDL_compile_time_assert_ ## name[(x) * 2 - 1]
+#endif
+
 /** \cond */
 /** \cond */
 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
 SDL_COMPILE_TIME_ASSERT(uint8, sizeof(Uint8) == 1);
 SDL_COMPILE_TIME_ASSERT(uint8, sizeof(Uint8) == 1);
@@ -377,7 +406,7 @@ SDL_COMPILE_TIME_ASSERT(sint64, sizeof(Sint64) == 8);
 
 
 /** \cond */
 /** \cond */
 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
-#if !defined(__ANDROID__) && !defined(__VITA__)
+#if !defined(__ANDROID__) && !defined(__VITA__) && !defined(__3DS__)
    /* TODO: include/SDL_stdinc.h:174: error: size of array 'SDL_dummy_enum' is negative */
    /* TODO: include/SDL_stdinc.h:174: error: size of array 'SDL_dummy_enum' is negative */
 typedef enum
 typedef enum
 {
 {
@@ -389,7 +418,7 @@ SDL_COMPILE_TIME_ASSERT(enum, sizeof(SDL_DUMMY_ENUM) == sizeof(int));
 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
 /** \endcond */
 /** \endcond */
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -413,6 +442,16 @@ typedef void *(SDLCALL *SDL_calloc_func)(size_t nmemb, size_t size);
 typedef void *(SDLCALL *SDL_realloc_func)(void *mem, size_t size);
 typedef void *(SDLCALL *SDL_realloc_func)(void *mem, size_t size);
 typedef void (SDLCALL *SDL_free_func)(void *mem);
 typedef void (SDLCALL *SDL_free_func)(void *mem);
 
 
+/**
+ * Get the original set of SDL memory functions
+ *
+ * \since This function is available since SDL 2.24.0.
+ */
+extern DECLSPEC void SDLCALL SDL_GetOriginalMemoryFunctions(SDL_malloc_func *malloc_func,
+                                                            SDL_calloc_func *calloc_func,
+                                                            SDL_realloc_func *realloc_func,
+                                                            SDL_free_func *free_func);
+
 /**
 /**
  * Get the current set of SDL memory functions
  * Get the current set of SDL memory functions
  *
  *
@@ -443,7 +482,8 @@ extern DECLSPEC int SDLCALL SDL_GetNumAllocations(void);
 extern DECLSPEC char *SDLCALL SDL_getenv(const char *name);
 extern DECLSPEC char *SDLCALL SDL_getenv(const char *name);
 extern DECLSPEC int SDLCALL SDL_setenv(const char *name, const char *value, int overwrite);
 extern DECLSPEC int SDLCALL SDL_setenv(const char *name, const char *value, int overwrite);
 
 
-extern DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size, int (*compare) (const void *, const void *));
+extern DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size, int (SDLCALL *compare) (const void *, const void *));
+extern DECLSPEC void * SDLCALL SDL_bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (SDLCALL *compare) (const void *, const void *));
 
 
 extern DECLSPEC int SDLCALL SDL_abs(int x);
 extern DECLSPEC int SDLCALL SDL_abs(int x);
 
 
@@ -467,6 +507,7 @@ extern DECLSPEC int SDLCALL SDL_isgraph(int x);
 extern DECLSPEC int SDLCALL SDL_toupper(int x);
 extern DECLSPEC int SDLCALL SDL_toupper(int x);
 extern DECLSPEC int SDLCALL SDL_tolower(int x);
 extern DECLSPEC int SDLCALL SDL_tolower(int x);
 
 
+extern DECLSPEC Uint16 SDLCALL SDL_crc16(Uint16 crc, const void *data, size_t len);
 extern DECLSPEC Uint32 SDLCALL SDL_crc32(Uint32 crc, const void *data, size_t len);
 extern DECLSPEC Uint32 SDLCALL SDL_crc32(Uint32 crc, const void *data, size_t len);
 
 
 extern DECLSPEC void *SDLCALL SDL_memset(SDL_OUT_BYTECAP(len) void *dst, int c, size_t len);
 extern DECLSPEC void *SDLCALL SDL_memset(SDL_OUT_BYTECAP(len) void *dst, int c, size_t len);
@@ -475,12 +516,15 @@ extern DECLSPEC void *SDLCALL SDL_memset(SDL_OUT_BYTECAP(len) void *dst, int c,
 #define SDL_zerop(x) SDL_memset((x), 0, sizeof(*(x)))
 #define SDL_zerop(x) SDL_memset((x), 0, sizeof(*(x)))
 #define SDL_zeroa(x) SDL_memset((x), 0, sizeof((x)))
 #define SDL_zeroa(x) SDL_memset((x), 0, sizeof((x)))
 
 
+#define SDL_copyp(dst, src)                                                                 \
+    { SDL_COMPILE_TIME_ASSERT(SDL_copyp, sizeof (*(dst)) == sizeof (*(src))); }             \
+    SDL_memcpy((dst), (src), sizeof (*(src)))
+
+
 /* Note that memset() is a byte assignment and this is a 32-bit assignment, so they're not directly equivalent. */
 /* Note that memset() is a byte assignment and this is a 32-bit assignment, so they're not directly equivalent. */
 SDL_FORCE_INLINE void SDL_memset4(void *dst, Uint32 val, size_t dwords)
 SDL_FORCE_INLINE void SDL_memset4(void *dst, Uint32 val, size_t dwords)
 {
 {
-#ifdef __APPLE__
-    memset_pattern4(dst, &val, dwords * 4);
-#elif defined(__GNUC__) && defined(__i386__)
+#if defined(__GNUC__) && defined(__i386__)
     int u0, u1, u2;
     int u0, u1, u2;
     __asm__ __volatile__ (
     __asm__ __volatile__ (
         "cld \n\t"
         "cld \n\t"
@@ -533,8 +577,10 @@ extern DECLSPEC char *SDLCALL SDL_strlwr(char *str);
 extern DECLSPEC char *SDLCALL SDL_strchr(const char *str, int c);
 extern DECLSPEC char *SDLCALL SDL_strchr(const char *str, int c);
 extern DECLSPEC char *SDLCALL SDL_strrchr(const char *str, int c);
 extern DECLSPEC char *SDLCALL SDL_strrchr(const char *str, int c);
 extern DECLSPEC char *SDLCALL SDL_strstr(const char *haystack, const char *needle);
 extern DECLSPEC char *SDLCALL SDL_strstr(const char *haystack, const char *needle);
+extern DECLSPEC char *SDLCALL SDL_strcasestr(const char *haystack, const char *needle);
 extern DECLSPEC char *SDLCALL SDL_strtokr(char *s1, const char *s2, char **saveptr);
 extern DECLSPEC char *SDLCALL SDL_strtokr(char *s1, const char *s2, char **saveptr);
 extern DECLSPEC size_t SDLCALL SDL_utf8strlen(const char *str);
 extern DECLSPEC size_t SDLCALL SDL_utf8strlen(const char *str);
+extern DECLSPEC size_t SDLCALL SDL_utf8strnlen(const char *str, size_t bytes);
 
 
 extern DECLSPEC char *SDLCALL SDL_itoa(int value, char *str, int radix);
 extern DECLSPEC char *SDLCALL SDL_itoa(int value, char *str, int radix);
 extern DECLSPEC char *SDLCALL SDL_uitoa(unsigned int value, char *str, int radix);
 extern DECLSPEC char *SDLCALL SDL_uitoa(unsigned int value, char *str, int radix);
@@ -642,7 +688,7 @@ extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf,
                                          size_t * outbytesleft);
                                          size_t * outbytesleft);
 
 
 /**
 /**
- * This function converts a string between encodings in one pass, returning a
+ * This function converts a buffer or string between encodings in one pass, returning a
  * string that must be freed with SDL_free() or NULL on error.
  * string that must be freed with SDL_free() or NULL on error.
  *
  *
  * \since This function is available since SDL 2.0.0.
  * \since This function is available since SDL 2.0.0.
@@ -670,6 +716,20 @@ size_t strlcpy(char* dst, const char* src, size_t size);
 size_t strlcat(char* dst, const char* src, size_t size);
 size_t strlcat(char* dst, const char* src, size_t size);
 #endif
 #endif
 
 
+#ifndef HAVE_WCSLCPY
+size_t wcslcpy(wchar_t *dst, const wchar_t *src, size_t size);
+#endif
+
+#ifndef HAVE_WCSLCAT
+size_t wcslcat(wchar_t *dst, const wchar_t *src, size_t size);
+#endif
+
+/* Starting LLVM 16, the analyser errors out if these functions do not have
+   their prototype defined (clang-diagnostic-implicit-function-declaration) */
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
 #define SDL_malloc malloc
 #define SDL_malloc malloc
 #define SDL_calloc calloc
 #define SDL_calloc calloc
 #define SDL_realloc realloc
 #define SDL_realloc realloc
@@ -708,11 +768,70 @@ SDL_FORCE_INLINE void *SDL_memcpy4(SDL_OUT_BYTECAP(dwords*4) void *dst, SDL_IN_B
     return SDL_memcpy(dst, src, dwords * 4);
     return SDL_memcpy(dst, src, dwords * 4);
 }
 }
 
 
+/**
+ * If a * b would overflow, return -1. Otherwise store a * b via ret
+ * and return 0.
+ *
+ * \since This function is available since SDL 2.24.0.
+ */
+SDL_FORCE_INLINE int SDL_size_mul_overflow (size_t a,
+                                            size_t b,
+                                            size_t *ret)
+{
+    if (a != 0 && b > SDL_SIZE_MAX / a) {
+        return -1;
+    }
+    *ret = a * b;
+    return 0;
+}
+
+#if _SDL_HAS_BUILTIN(__builtin_mul_overflow)
+/* This needs to be wrapped in an inline rather than being a direct #define,
+ * because __builtin_mul_overflow() is type-generic, but we want to be
+ * consistent about interpreting a and b as size_t. */
+SDL_FORCE_INLINE int _SDL_size_mul_overflow_builtin (size_t a,
+                                                     size_t b,
+                                                     size_t *ret)
+{
+    return __builtin_mul_overflow(a, b, ret) == 0 ? 0 : -1;
+}
+#define SDL_size_mul_overflow(a, b, ret) (_SDL_size_mul_overflow_builtin(a, b, ret))
+#endif
+
+/**
+ * If a + b would overflow, return -1. Otherwise store a + b via ret
+ * and return 0.
+ *
+ * \since This function is available since SDL 2.24.0.
+ */
+SDL_FORCE_INLINE int SDL_size_add_overflow (size_t a,
+                                            size_t b,
+                                            size_t *ret)
+{
+    if (b > SDL_SIZE_MAX - a) {
+        return -1;
+    }
+    *ret = a + b;
+    return 0;
+}
+
+#if _SDL_HAS_BUILTIN(__builtin_add_overflow)
+/* This needs to be wrapped in an inline rather than being a direct #define,
+ * the same as the call to __builtin_mul_overflow() above. */
+SDL_FORCE_INLINE int _SDL_size_add_overflow_builtin (size_t a,
+                                                     size_t b,
+                                                     size_t *ret)
+{
+    return __builtin_add_overflow(a, b, ret) == 0 ? 0 : -1;
+}
+#define SDL_size_add_overflow(a, b, ret) (_SDL_size_add_overflow_builtin(a, b, ret))
+#endif
+
 /* Ends C function definitions when using C++ */
 /* Ends C function definitions when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_stdinc_h_ */
 #endif /* SDL_stdinc_h_ */
 
 

+ 11 - 9
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_surface.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,13 +28,13 @@
 #ifndef SDL_surface_h_
 #ifndef SDL_surface_h_
 #define SDL_surface_h_
 #define SDL_surface_h_
 
 
-#include "SDL_stdinc.h"
-#include "SDL_pixels.h"
-#include "SDL_rect.h"
-#include "SDL_blendmode.h"
-#include "SDL_rwops.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_pixels.h>
+#include <SDL2/SDL_rect.h>
+#include <SDL2/SDL_blendmode.h>
+#include <SDL2/SDL_rwops.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -61,6 +61,8 @@ extern "C" {
  */
  */
 #define SDL_MUSTLOCK(S) (((S)->flags & SDL_RLEACCEL) != 0)
 #define SDL_MUSTLOCK(S) (((S)->flags & SDL_RLEACCEL) != 0)
 
 
+typedef struct SDL_BlitMap SDL_BlitMap;  /* this is an opaque type. */
+
 /**
 /**
  * \brief A collection of pixels used in software blitting.
  * \brief A collection of pixels used in software blitting.
  *
  *
@@ -88,7 +90,7 @@ typedef struct SDL_Surface
     SDL_Rect clip_rect;         /**< Read-only */
     SDL_Rect clip_rect;         /**< Read-only */
 
 
     /** info for fast blit mapping to other surfaces */
     /** info for fast blit mapping to other surfaces */
-    struct SDL_BlitMap *map;    /**< Private */
+    SDL_BlitMap *map;           /**< Private */
 
 
     /** Reference count -- used when freeing surface */
     /** Reference count -- used when freeing surface */
     int refcount;               /**< Read-mostly */
     int refcount;               /**< Read-mostly */
@@ -988,7 +990,7 @@ extern DECLSPEC SDL_YUV_CONVERSION_MODE SDLCALL SDL_GetYUVConversionModeForResol
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_surface_h_ */
 #endif /* SDL_surface_h_ */
 
 

+ 73 - 13
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_system.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,12 +28,12 @@
 #ifndef SDL_system_h_
 #ifndef SDL_system_h_
 #define SDL_system_h_
 #define SDL_system_h_
 
 
-#include "SDL_stdinc.h"
-#include "SDL_keyboard.h"
-#include "SDL_render.h"
-#include "SDL_video.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_keyboard.h>
+#include <SDL2/SDL_render.h>
+#include <SDL2/SDL_video.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -41,7 +41,7 @@ extern "C" {
 
 
 
 
 /* Platform specific functions for Windows */
 /* Platform specific functions for Windows */
-#ifdef __WIN32__
+#if defined(__WIN32__) || defined(__GDK__)
 	
 	
 typedef void (SDLCALL * SDL_WindowsMessageHook)(void *userdata, void *hWnd, unsigned int message, Uint64 wParam, Sint64 lParam);
 typedef void (SDLCALL * SDL_WindowsMessageHook)(void *userdata, void *hWnd, unsigned int message, Uint64 wParam, Sint64 lParam);
 
 
@@ -55,6 +55,10 @@ typedef void (SDLCALL * SDL_WindowsMessageHook)(void *userdata, void *hWnd, unsi
  */
  */
 extern DECLSPEC void SDLCALL SDL_SetWindowsMessageHook(SDL_WindowsMessageHook callback, void *userdata);
 extern DECLSPEC void SDLCALL SDL_SetWindowsMessageHook(SDL_WindowsMessageHook callback, void *userdata);
 
 
+#endif /* defined(__WIN32__) || defined(__GDK__) */
+
+#if defined(__WIN32__) || defined(__WINGDK__)
+
 /**
 /**
  * Get the D3D9 adapter index that matches the specified display index.
  * Get the D3D9 adapter index that matches the specified display index.
  *
  *
@@ -102,6 +106,30 @@ typedef struct ID3D11Device ID3D11Device;
  */
  */
 extern DECLSPEC ID3D11Device* SDLCALL SDL_RenderGetD3D11Device(SDL_Renderer * renderer);
 extern DECLSPEC ID3D11Device* SDLCALL SDL_RenderGetD3D11Device(SDL_Renderer * renderer);
 
 
+#endif /* defined(__WIN32__) || defined(__WINGDK__) */
+
+#if defined(__WIN32__) || defined(__GDK__)
+
+typedef struct ID3D12Device ID3D12Device;
+
+/**
+ * Get the D3D12 device associated with a renderer.
+ *
+ * Once you are done using the device, you should release it to avoid a
+ * resource leak.
+ *
+ * \param renderer the renderer from which to get the associated D3D12 device
+ * \returns the D3D12 device associated with given renderer or NULL if it is
+ *          not a D3D12 renderer; call SDL_GetError() for more information.
+ *
+ * \since This function is available since SDL 2.24.0.
+ */
+extern DECLSPEC ID3D12Device* SDLCALL SDL_RenderGetD3D12Device(SDL_Renderer* renderer);
+
+#endif /* defined(__WIN32__) || defined(__GDK__) */
+
+#if defined(__WIN32__) || defined(__WINGDK__)
+
 /**
 /**
  * Get the DXGI Adapter and Output indices for the specified display index.
  * Get the DXGI Adapter and Output indices for the specified display index.
  *
  *
@@ -122,8 +150,7 @@ extern DECLSPEC ID3D11Device* SDLCALL SDL_RenderGetD3D11Device(SDL_Renderer * re
  */
  */
 extern DECLSPEC SDL_bool SDLCALL SDL_DXGIGetOutputInfo( int displayIndex, int *adapterIndex, int *outputIndex );
 extern DECLSPEC SDL_bool SDLCALL SDL_DXGIGetOutputInfo( int displayIndex, int *adapterIndex, int *outputIndex );
 
 
-#endif /* __WIN32__ */
-
+#endif /* defined(__WIN32__) || defined(__WINGDK__) */
 
 
 /* Platform specific functions for Linux */
 /* Platform specific functions for Linux */
 #ifdef __LINUX__
 #ifdef __LINUX__
@@ -178,7 +205,7 @@ extern DECLSPEC int SDLCALL SDL_LinuxSetThreadPriorityAndPolicy(Sint64 threadID,
  * This function is only available on Apple iOS.
  * This function is only available on Apple iOS.
  *
  *
  * For more information see:
  * For more information see:
- * [README-ios.md](https://hg.libsdl.org/SDL/file/default/docs/README-ios.md)
+ * https://github.com/libsdl-org/SDL/blob/main/docs/README-ios.md
  *
  *
  * This functions is also accessible using the macro
  * This functions is also accessible using the macro
  * SDL_iOSSetAnimationCallback() since SDL 2.0.4.
  * SDL_iOSSetAnimationCallback() since SDL 2.0.4.
@@ -195,7 +222,7 @@ extern DECLSPEC int SDLCALL SDL_LinuxSetThreadPriorityAndPolicy(Sint64 threadID,
  *
  *
  * \sa SDL_iPhoneSetEventPump
  * \sa SDL_iPhoneSetEventPump
  */
  */
-extern DECLSPEC int SDLCALL SDL_iPhoneSetAnimationCallback(SDL_Window * window, int interval, void (*callback)(void*), void *callbackParam);
+extern DECLSPEC int SDLCALL SDL_iPhoneSetAnimationCallback(SDL_Window * window, int interval, void (SDLCALL *callback)(void*), void *callbackParam);
 
 
 #define SDL_iOSSetEventPump(enabled) SDL_iPhoneSetEventPump(enabled)
 #define SDL_iOSSetEventPump(enabled) SDL_iPhoneSetEventPump(enabled)
 
 
@@ -425,6 +452,18 @@ extern DECLSPEC SDL_bool SDLCALL SDL_AndroidRequestPermission(const char *permis
  */
  */
 extern DECLSPEC int SDLCALL SDL_AndroidShowToast(const char* message, int duration, int gravity, int xoffset, int yoffset);
 extern DECLSPEC int SDLCALL SDL_AndroidShowToast(const char* message, int duration, int gravity, int xoffset, int yoffset);
 
 
+/**
+ * Send a user command to SDLActivity.
+ *
+ * Override "boolean onUnhandledMessage(Message msg)" to handle the message.
+ *
+ * \param command user command that must be greater or equal to 0x8000
+ * \param param user parameter
+ *
+ * \since This function is available since SDL 2.0.22.
+ */
+extern DECLSPEC int SDLCALL SDL_AndroidSendMessage(Uint32 command, int param);
+
 #endif /* __ANDROID__ */
 #endif /* __ANDROID__ */
 
 
 /* Platform specific functions for WinRT */
 /* Platform specific functions for WinRT */
@@ -520,7 +559,7 @@ extern DECLSPEC const wchar_t * SDLCALL SDL_WinRTGetFSPathUNICODE(SDL_WinRT_Path
 extern DECLSPEC const char * SDLCALL SDL_WinRTGetFSPathUTF8(SDL_WinRT_Path pathType);
 extern DECLSPEC const char * SDLCALL SDL_WinRTGetFSPathUTF8(SDL_WinRT_Path pathType);
 
 
 /**
 /**
- * Detects the device family of WinRT plattform at runtime.
+ * Detects the device family of WinRT platform at runtime.
  *
  *
  * \returns a value from the SDL_WinRT_DeviceFamily enum.
  * \returns a value from the SDL_WinRT_DeviceFamily enum.
  *
  *
@@ -552,11 +591,32 @@ extern DECLSPEC void SDLCALL SDL_OnApplicationDidBecomeActive(void);
 extern DECLSPEC void SDLCALL SDL_OnApplicationDidChangeStatusBarOrientation(void);
 extern DECLSPEC void SDLCALL SDL_OnApplicationDidChangeStatusBarOrientation(void);
 #endif
 #endif
 
 
+/* Functions used only by GDK */
+#if defined(__GDK__)
+typedef struct XTaskQueueObject * XTaskQueueHandle;
+
+/**
+ * Gets a reference to the global async task queue handle for GDK,
+ * initializing if needed.
+ *
+ * Once you are done with the task queue, you should call
+ * XTaskQueueCloseHandle to reduce the reference count to avoid a resource
+ * leak.
+ *
+ * \param outTaskQueue a pointer to be filled in with task queue handle.
+ * \returns 0 if success, -1 if any error occurs.
+ *
+ * \since This function is available since SDL 2.24.0.
+ */
+extern DECLSPEC int SDLCALL SDL_GDKGetTaskQueue(XTaskQueueHandle * outTaskQueue);
+
+#endif
+
 /* Ends C function definitions when using C++ */
 /* Ends C function definitions when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_system_h_ */
 #endif /* SDL_system_h_ */
 
 

+ 14 - 8
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_syswm.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,10 +28,10 @@
 #ifndef SDL_syswm_h_
 #ifndef SDL_syswm_h_
 #define SDL_syswm_h_
 #define SDL_syswm_h_
 
 
-#include "SDL_stdinc.h"
-#include "SDL_error.h"
-#include "SDL_video.h"
-#include "SDL_version.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_error.h>
+#include <SDL2/SDL_video.h>
+#include <SDL2/SDL_version.h>
 
 
 /**
 /**
  *  \brief SDL_syswm.h
  *  \brief SDL_syswm.h
@@ -98,13 +98,17 @@ typedef struct _UIViewController UIViewController;
 typedef Uint32 GLuint;
 typedef Uint32 GLuint;
 #endif
 #endif
 
 
+#if defined(SDL_VIDEO_VULKAN) || defined(SDL_VIDEO_METAL)
+#define SDL_METALVIEW_TAG 255
+#endif
+
 #if defined(SDL_VIDEO_DRIVER_ANDROID)
 #if defined(SDL_VIDEO_DRIVER_ANDROID)
 typedef struct ANativeWindow ANativeWindow;
 typedef struct ANativeWindow ANativeWindow;
 typedef void *EGLSurface;
 typedef void *EGLSurface;
 #endif
 #endif
 
 
 #if defined(SDL_VIDEO_DRIVER_VIVANTE)
 #if defined(SDL_VIDEO_DRIVER_VIVANTE)
-#include "SDL_egl.h"
+#include <SDL2/SDL_egl.h>
 #endif
 #endif
 
 
 #if defined(SDL_VIDEO_DRIVER_OS2)
 #if defined(SDL_VIDEO_DRIVER_OS2)
@@ -118,7 +122,7 @@ struct gbm_device;
 #endif
 #endif
 
 
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -294,6 +298,8 @@ struct SDL_SysWMinfo
             struct wl_egl_window *egl_window;       /**< Wayland EGL window (native window) */
             struct wl_egl_window *egl_window;       /**< Wayland EGL window (native window) */
             struct xdg_surface *xdg_surface;        /**< Wayland xdg surface (window manager handle) */
             struct xdg_surface *xdg_surface;        /**< Wayland xdg surface (window manager handle) */
             struct xdg_toplevel *xdg_toplevel;      /**< Wayland xdg toplevel role */
             struct xdg_toplevel *xdg_toplevel;      /**< Wayland xdg toplevel role */
+            struct xdg_popup *xdg_popup;            /**< Wayland xdg popup role */
+            struct xdg_positioner *xdg_positioner;  /**< Wayland xdg positioner, for popup */
         } wl;
         } wl;
 #endif
 #endif
 #if defined(SDL_VIDEO_DRIVER_MIR)  /* no longer available, left for API/ABI compatibility. Remove in 2.1! */
 #if defined(SDL_VIDEO_DRIVER_MIR)  /* no longer available, left for API/ABI compatibility. Remove in 2.1! */
@@ -373,7 +379,7 @@ extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowWMInfo(SDL_Window * window,
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_syswm_h_ */
 #endif /* SDL_syswm_h_ */
 
 

+ 12 - 12
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_thread.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,14 +28,14 @@
  *  Header for the SDL thread management routines.
  *  Header for the SDL thread management routines.
  */
  */
 
 
-#include "SDL_stdinc.h"
-#include "SDL_error.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_error.h>
 
 
 /* Thread synchronization primitives */
 /* Thread synchronization primitives */
-#include "SDL_atomic.h"
-#include "SDL_mutex.h"
+#include <SDL2/SDL_atomic.h>
+#include <SDL2/SDL_mutex.h>
 
 
-#if defined(__WIN32__)
+#if (defined(__WIN32__) || defined(__GDK__)) && !defined(__WINRT__)
 #include <process.h> /* _beginthreadex() and _endthreadex() */
 #include <process.h> /* _beginthreadex() and _endthreadex() */
 #endif
 #endif
 #if defined(__OS2__) /* for _beginthread() and _endthread() */
 #if defined(__OS2__) /* for _beginthread() and _endthread() */
@@ -46,7 +46,7 @@
 #endif
 #endif
 #endif
 #endif
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -88,7 +88,7 @@ typedef enum {
 typedef int (SDLCALL * SDL_ThreadFunction) (void *data);
 typedef int (SDLCALL * SDL_ThreadFunction) (void *data);
 
 
 
 
-#if defined(__WIN32__)
+#if (defined(__WIN32__) || defined(__GDK__)) && !defined(__WINRT__)
 /**
 /**
  *  \file SDL_thread.h
  *  \file SDL_thread.h
  *
  *
@@ -129,7 +129,7 @@ SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data,
                  pfnSDL_CurrentEndThread pfnEndThread);
                  pfnSDL_CurrentEndThread pfnEndThread);
 
 
 extern DECLSPEC SDL_Thread *SDLCALL
 extern DECLSPEC SDL_Thread *SDLCALL
-SDL_CreateThreadWithStackSize(int (SDLCALL * fn) (void *),
+SDL_CreateThreadWithStackSize(SDL_ThreadFunction fn,
                  const char *name, const size_t stacksize, void *data,
                  const char *name, const size_t stacksize, void *data,
                  pfnSDL_CurrentBeginThread pfnBeginThread,
                  pfnSDL_CurrentBeginThread pfnBeginThread,
                  pfnSDL_CurrentEndThread pfnEndThread);
                  pfnSDL_CurrentEndThread pfnEndThread);
@@ -142,7 +142,7 @@ SDL_CreateThreadWithStackSize(int (SDLCALL * fn) (void *),
 #define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize_REAL(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
 #define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize_REAL(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
 #else
 #else
 #define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
 #define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
-#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize(fn, name, data, (pfnSDL_CurrentBeginThread)_beginthreadex, (pfnSDL_CurrentEndThread)SDL_endthread)
+#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
 #endif
 #endif
 
 
 #elif defined(__OS2__)
 #elif defined(__OS2__)
@@ -175,7 +175,7 @@ SDL_CreateThreadWithStackSize(SDL_ThreadFunction fn, const char *name, const siz
 #undef SDL_CreateThread
 #undef SDL_CreateThread
 #define SDL_CreateThread(fn, name, data) SDL_CreateThread_REAL(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
 #define SDL_CreateThread(fn, name, data) SDL_CreateThread_REAL(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
 #undef SDL_CreateThreadWithStackSize
 #undef SDL_CreateThreadWithStackSize
-#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize_REAL(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
+#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize_REAL(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
 #else
 #else
 #define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
 #define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
 #define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
 #define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
@@ -457,7 +457,7 @@ extern DECLSPEC void SDLCALL SDL_TLSCleanup(void);
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_thread_h_ */
 #endif /* SDL_thread_h_ */
 
 

+ 5 - 5
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_timer.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,10 +28,10 @@
  *  Header for the SDL time management routines.
  *  Header for the SDL time management routines.
  */
  */
 
 
-#include "SDL_stdinc.h"
-#include "SDL_error.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_error.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -215,7 +215,7 @@ extern DECLSPEC SDL_bool SDLCALL SDL_RemoveTimer(SDL_TimerID id);
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_timer_h_ */
 #endif /* SDL_timer_h_ */
 
 

+ 14 - 6
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_touch.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,11 +28,11 @@
 #ifndef SDL_touch_h_
 #ifndef SDL_touch_h_
 #define SDL_touch_h_
 #define SDL_touch_h_
 
 
-#include "SDL_stdinc.h"
-#include "SDL_error.h"
-#include "SDL_video.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_error.h>
+#include <SDL2/SDL_video.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -95,6 +95,14 @@ extern DECLSPEC int SDLCALL SDL_GetNumTouchDevices(void);
  */
  */
 extern DECLSPEC SDL_TouchID SDLCALL SDL_GetTouchDevice(int index);
 extern DECLSPEC SDL_TouchID SDLCALL SDL_GetTouchDevice(int index);
 
 
+/**
+ * Get the touch device name as reported from the driver or NULL if the index
+ * is invalid.
+ *
+ * \since This function is available since SDL 2.0.22.
+ */
+extern DECLSPEC const char* SDLCALL SDL_GetTouchName(int index);
+
 /**
 /**
  * Get the type of the given touch device.
  * Get the type of the given touch device.
  *
  *
@@ -135,7 +143,7 @@ extern DECLSPEC SDL_Finger * SDLCALL SDL_GetTouchFinger(SDL_TouchID touchID, int
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_touch_h_ */
 #endif /* SDL_touch_h_ */
 
 

+ 2 - 2
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_types.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -26,4 +26,4 @@
  */
  */
 
 
 /* DEPRECATED */
 /* DEPRECATED */
-#include "SDL_stdinc.h"
+#include <SDL2/SDL_stdinc.h>

+ 23 - 7
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_version.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,9 +28,9 @@
 #ifndef SDL_version_h_
 #ifndef SDL_version_h_
 #define SDL_version_h_
 #define SDL_version_h_
 
 
-#include "SDL_stdinc.h"
+#include <SDL2/SDL_stdinc.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -58,8 +58,8 @@ typedef struct SDL_version
 /* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL
 /* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL
 */
 */
 #define SDL_MAJOR_VERSION   2
 #define SDL_MAJOR_VERSION   2
-#define SDL_MINOR_VERSION   0
-#define SDL_PATCHLEVEL      19
+#define SDL_MINOR_VERSION   28
+#define SDL_PATCHLEVEL      5
 
 
 /**
 /**
  * Macro to determine SDL version program was compiled against.
  * Macro to determine SDL version program was compiled against.
@@ -83,6 +83,8 @@ typedef struct SDL_version
     (x)->patch = SDL_PATCHLEVEL;                    \
     (x)->patch = SDL_PATCHLEVEL;                    \
 }
 }
 
 
+/* TODO: Remove this whole block in SDL 3 */
+#if SDL_MAJOR_VERSION < 3
 /**
 /**
  *  This macro turns the version numbers into a numeric value:
  *  This macro turns the version numbers into a numeric value:
  *  \verbatim
  *  \verbatim
@@ -90,21 +92,35 @@ typedef struct SDL_version
     \endverbatim
     \endverbatim
  *
  *
  *  This assumes that there will never be more than 100 patchlevels.
  *  This assumes that there will never be more than 100 patchlevels.
+ *
+ *  In versions higher than 2.9.0, the minor version overflows into
+ *  the thousands digit: for example, 2.23.0 is encoded as 4300,
+ *  and 2.255.99 would be encoded as 25799.
+ *  This macro will not be available in SDL 3.x.
  */
  */
 #define SDL_VERSIONNUM(X, Y, Z)                     \
 #define SDL_VERSIONNUM(X, Y, Z)                     \
     ((X)*1000 + (Y)*100 + (Z))
     ((X)*1000 + (Y)*100 + (Z))
 
 
 /**
 /**
  *  This is the version number macro for the current SDL version.
  *  This is the version number macro for the current SDL version.
+ *
+ *  In versions higher than 2.9.0, the minor version overflows into
+ *  the thousands digit: for example, 2.23.0 is encoded as 4300.
+ *  This macro will not be available in SDL 3.x.
+ *
+ *  Deprecated, use SDL_VERSION_ATLEAST or SDL_VERSION instead.
  */
  */
 #define SDL_COMPILEDVERSION \
 #define SDL_COMPILEDVERSION \
     SDL_VERSIONNUM(SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL)
     SDL_VERSIONNUM(SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL)
+#endif /* SDL_MAJOR_VERSION < 3 */
 
 
 /**
 /**
  *  This macro will evaluate to true if compiled with SDL at least X.Y.Z.
  *  This macro will evaluate to true if compiled with SDL at least X.Y.Z.
  */
  */
 #define SDL_VERSION_ATLEAST(X, Y, Z) \
 #define SDL_VERSION_ATLEAST(X, Y, Z) \
-    (SDL_COMPILEDVERSION >= SDL_VERSIONNUM(X, Y, Z))
+    ((SDL_MAJOR_VERSION >= X) && \
+     (SDL_MAJOR_VERSION > X || SDL_MINOR_VERSION >= Y) && \
+     (SDL_MAJOR_VERSION > X || SDL_MINOR_VERSION > Y || SDL_PATCHLEVEL >= Z))
 
 
 /**
 /**
  * Get the version of SDL that is linked against your program.
  * Get the version of SDL that is linked against your program.
@@ -181,7 +197,7 @@ extern SDL_DEPRECATED DECLSPEC int SDLCALL SDL_GetRevisionNumber(void);
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_version_h_ */
 #endif /* SDL_version_h_ */
 
 

+ 108 - 18
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_video.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,12 +28,12 @@
 #ifndef SDL_video_h_
 #ifndef SDL_video_h_
 #define SDL_video_h_
 #define SDL_video_h_
 
 
-#include "SDL_stdinc.h"
-#include "SDL_pixels.h"
-#include "SDL_rect.h"
-#include "SDL_surface.h"
+#include <SDL2/SDL_stdinc.h>
+#include <SDL2/SDL_pixels.h>
+#include <SDL2/SDL_rect.h>
+#include <SDL2/SDL_surface.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -187,7 +187,8 @@ typedef enum
     SDL_DISPLAYEVENT_NONE,          /**< Never used */
     SDL_DISPLAYEVENT_NONE,          /**< Never used */
     SDL_DISPLAYEVENT_ORIENTATION,   /**< Display orientation has changed to data1 */
     SDL_DISPLAYEVENT_ORIENTATION,   /**< Display orientation has changed to data1 */
     SDL_DISPLAYEVENT_CONNECTED,     /**< Display has been added to the system */
     SDL_DISPLAYEVENT_CONNECTED,     /**< Display has been added to the system */
-    SDL_DISPLAYEVENT_DISCONNECTED   /**< Display has been removed from the system */
+    SDL_DISPLAYEVENT_DISCONNECTED,  /**< Display has been removed from the system */
+    SDL_DISPLAYEVENT_MOVED          /**< Display has changed position */
 } SDL_DisplayEventID;
 } SDL_DisplayEventID;
 
 
 /**
 /**
@@ -248,7 +249,8 @@ typedef enum
     SDL_GL_FRAMEBUFFER_SRGB_CAPABLE,
     SDL_GL_FRAMEBUFFER_SRGB_CAPABLE,
     SDL_GL_CONTEXT_RELEASE_BEHAVIOR,
     SDL_GL_CONTEXT_RELEASE_BEHAVIOR,
     SDL_GL_CONTEXT_RESET_NOTIFICATION,
     SDL_GL_CONTEXT_RESET_NOTIFICATION,
-    SDL_GL_CONTEXT_NO_ERROR
+    SDL_GL_CONTEXT_NO_ERROR,
+    SDL_GL_FLOATBUFFERS
 } SDL_GLattr;
 } SDL_GLattr;
 
 
 typedef enum
 typedef enum
@@ -444,6 +446,15 @@ extern DECLSPEC int SDLCALL SDL_GetDisplayUsableBounds(int displayIndex, SDL_Rec
  * A failure of this function usually means that either no DPI information is
  * A failure of this function usually means that either no DPI information is
  * available or the `displayIndex` is out of range.
  * available or the `displayIndex` is out of range.
  *
  *
+ * **WARNING**: This reports the DPI that the hardware reports, and it is not
+ * always reliable! It is almost always better to use SDL_GetWindowSize() to
+ * find the window size, which might be in logical points instead of pixels,
+ * and then SDL_GL_GetDrawableSize(), SDL_Vulkan_GetDrawableSize(),
+ * SDL_Metal_GetDrawableSize(), or SDL_GetRendererOutputSize(), and compare
+ * the two values to get an actual scaling value between the two. We will be
+ * rethinking how high-dpi details should be managed in SDL3 to make things
+ * more consistent, reliable, and clear.
+ *
  * \param displayIndex the index of the display from which DPI information
  * \param displayIndex the index of the display from which DPI information
  *                     should be queried
  *                     should be queried
  * \param ddpi a pointer filled in with the diagonal DPI of the display; may
  * \param ddpi a pointer filled in with the diagonal DPI of the display; may
@@ -587,6 +598,35 @@ extern DECLSPEC int SDLCALL SDL_GetCurrentDisplayMode(int displayIndex, SDL_Disp
  */
  */
 extern DECLSPEC SDL_DisplayMode * SDLCALL SDL_GetClosestDisplayMode(int displayIndex, const SDL_DisplayMode * mode, SDL_DisplayMode * closest);
 extern DECLSPEC SDL_DisplayMode * SDLCALL SDL_GetClosestDisplayMode(int displayIndex, const SDL_DisplayMode * mode, SDL_DisplayMode * closest);
 
 
+/**
+ * Get the index of the display containing a point
+ *
+ * \param point the point to query
+ * \returns the index of the display containing the point or a negative error
+ *          code on failure; call SDL_GetError() for more information.
+ *
+ * \since This function is available since SDL 2.24.0.
+ *
+ * \sa SDL_GetDisplayBounds
+ * \sa SDL_GetNumVideoDisplays
+ */
+extern DECLSPEC int SDLCALL SDL_GetPointDisplayIndex(const SDL_Point * point);
+
+/**
+ * Get the index of the display primarily containing a rect
+ *
+ * \param rect the rect to query
+ * \returns the index of the display entirely containing the rect or closest
+ *          to the center of the rect on success or a negative error code on
+ *          failure; call SDL_GetError() for more information.
+ *
+ * \since This function is available since SDL 2.24.0.
+ *
+ * \sa SDL_GetDisplayBounds
+ * \sa SDL_GetNumVideoDisplays
+ */
+extern DECLSPEC int SDLCALL SDL_GetRectDisplayIndex(const SDL_Rect * rect);
+
 /**
 /**
  * Get the index of the display associated with a window.
  * Get the index of the display associated with a window.
  *
  *
@@ -697,7 +737,10 @@ extern DECLSPEC Uint32 SDLCALL SDL_GetWindowPixelFormat(SDL_Window * window);
  * in pixels may differ from its size in screen coordinates on platforms with
  * in pixels may differ from its size in screen coordinates on platforms with
  * high-DPI support (e.g. iOS and macOS). Use SDL_GetWindowSize() to query the
  * high-DPI support (e.g. iOS and macOS). Use SDL_GetWindowSize() to query the
  * client area's size in screen coordinates, and SDL_GL_GetDrawableSize() or
  * client area's size in screen coordinates, and SDL_GL_GetDrawableSize() or
- * SDL_GetRendererOutputSize() to query the drawable size in pixels.
+ * SDL_GetRendererOutputSize() to query the drawable size in pixels. Note that
+ * when this flag is set, the drawable size can vary after the window is
+ * created and should be queried after major window events such as when the
+ * window is resized or moved between displays.
  *
  *
  * If the window is set fullscreen, the width and height parameters `w` and
  * If the window is set fullscreen, the width and height parameters `w` and
  * `h` will not be used. However, invalid size parameters (e.g. too large) may
  * `h` will not be used. However, invalid size parameters (e.g. too large) may
@@ -1004,6 +1047,27 @@ extern DECLSPEC int SDLCALL SDL_GetWindowBordersSize(SDL_Window * window,
                                                      int *top, int *left,
                                                      int *top, int *left,
                                                      int *bottom, int *right);
                                                      int *bottom, int *right);
 
 
+/**
+ * Get the size of a window in pixels.
+ *
+ * This may differ from SDL_GetWindowSize() if we're rendering to a high-DPI
+ * drawable, i.e. the window was created with `SDL_WINDOW_ALLOW_HIGHDPI` on a
+ * platform with high-DPI support (Apple calls this "Retina"), and not
+ * disabled by the `SDL_HINT_VIDEO_HIGHDPI_DISABLED` hint.
+ *
+ * \param window the window from which the drawable size should be queried
+ * \param w a pointer to variable for storing the width in pixels, may be NULL
+ * \param h a pointer to variable for storing the height in pixels, may be
+ *          NULL
+ *
+ * \since This function is available since SDL 2.26.0.
+ *
+ * \sa SDL_CreateWindow
+ * \sa SDL_GetWindowSize
+ */
+extern DECLSPEC void SDLCALL SDL_GetWindowSizeInPixels(SDL_Window * window,
+                                                       int *w, int *h);
+
 /**
 /**
  * Set the minimum size of a window's client area.
  * Set the minimum size of a window's client area.
  *
  *
@@ -1211,6 +1275,17 @@ extern DECLSPEC void SDLCALL SDL_RestoreWindow(SDL_Window * window);
 extern DECLSPEC int SDLCALL SDL_SetWindowFullscreen(SDL_Window * window,
 extern DECLSPEC int SDLCALL SDL_SetWindowFullscreen(SDL_Window * window,
                                                     Uint32 flags);
                                                     Uint32 flags);
 
 
+/**
+ * Return whether the window has a surface associated with it.
+ *
+ * \returns SDL_TRUE if there is a surface associated with the window, or SDL_FALSE otherwise.
+ *
+ * \since This function is available since SDL 2.28.0.
+ *
+ * \sa SDL_GetWindowSurface
+ */
+extern DECLSPEC SDL_bool SDLCALL SDL_HasWindowSurface(SDL_Window *window);
+
 /**
 /**
  * Get the SDL surface associated with the window.
  * Get the SDL surface associated with the window.
  *
  *
@@ -1231,6 +1306,8 @@ extern DECLSPEC int SDLCALL SDL_SetWindowFullscreen(SDL_Window * window,
  *
  *
  * \since This function is available since SDL 2.0.0.
  * \since This function is available since SDL 2.0.0.
  *
  *
+ * \sa SDL_DestroyWindowSurface
+ * \sa SDL_HasWindowSurface
  * \sa SDL_UpdateWindowSurface
  * \sa SDL_UpdateWindowSurface
  * \sa SDL_UpdateWindowSurfaceRects
  * \sa SDL_UpdateWindowSurfaceRects
  */
  */
@@ -1265,7 +1342,7 @@ extern DECLSPEC int SDLCALL SDL_UpdateWindowSurface(SDL_Window * window);
  *
  *
  * \param window the window to update
  * \param window the window to update
  * \param rects an array of SDL_Rect structures representing areas of the
  * \param rects an array of SDL_Rect structures representing areas of the
- *              surface to copy
+ *              surface to copy, in pixels
  * \param numrects the number of rectangles
  * \param numrects the number of rectangles
  * \returns 0 on success or a negative error code on failure; call
  * \returns 0 on success or a negative error code on failure; call
  *          SDL_GetError() for more information.
  *          SDL_GetError() for more information.
@@ -1279,6 +1356,20 @@ extern DECLSPEC int SDLCALL SDL_UpdateWindowSurfaceRects(SDL_Window * window,
                                                          const SDL_Rect * rects,
                                                          const SDL_Rect * rects,
                                                          int numrects);
                                                          int numrects);
 
 
+/**
+ * Destroy the surface associated with the window.
+ *
+ * \param window the window to update
+ * \returns 0 on success or a negative error code on failure; call
+ *          SDL_GetError() for more information.
+ *
+ * \since This function is available since SDL 2.28.0.
+ *
+ * \sa SDL_GetWindowSurface
+ * \sa SDL_HasWindowSurface
+ */
+extern DECLSPEC int SDLCALL SDL_DestroyWindowSurface(SDL_Window *window);
+
 /**
 /**
  * Set a window's input grab mode.
  * Set a window's input grab mode.
  *
  *
@@ -1337,6 +1428,7 @@ extern DECLSPEC void SDLCALL SDL_SetWindowKeyboardGrab(SDL_Window * window,
  * Mouse grab confines the mouse cursor to the window.
  * Mouse grab confines the mouse cursor to the window.
  *
  *
  * \param window The window for which the mouse grab mode should be set.
  * \param window The window for which the mouse grab mode should be set.
+ * \param grabbed This is SDL_TRUE to grab mouse, and SDL_FALSE to release.
  *
  *
  * \since This function is available since SDL 2.0.16.
  * \since This function is available since SDL 2.0.16.
  *
  *
@@ -1747,6 +1839,9 @@ extern DECLSPEC void SDLCALL SDL_EnableScreenSaver(void);
  * If you disable the screensaver, it is automatically re-enabled when SDL
  * If you disable the screensaver, it is automatically re-enabled when SDL
  * quits.
  * quits.
  *
  *
+ * The screensaver is disabled by default since SDL 2.0.2. Before SDL 2.0.2
+ * the screensaver was enabled by default.
+ *
  * \since This function is available since SDL 2.0.0.
  * \since This function is available since SDL 2.0.0.
  *
  *
  * \sa SDL_EnableScreenSaver
  * \sa SDL_EnableScreenSaver
@@ -2008,13 +2103,8 @@ extern DECLSPEC void SDLCALL SDL_GL_GetDrawableSize(SDL_Window * window, int *w,
  * retry the call with 1 for the interval.
  * retry the call with 1 for the interval.
  *
  *
  * Adaptive vsync is implemented for some glX drivers with
  * Adaptive vsync is implemented for some glX drivers with
- * GLX_EXT_swap_control_tear:
- *
- * https://www.opengl.org/registry/specs/EXT/glx_swap_control_tear.txt
- *
- * and for some Windows drivers with WGL_EXT_swap_control_tear:
- *
- * https://www.opengl.org/registry/specs/EXT/wgl_swap_control_tear.txt
+ * GLX_EXT_swap_control_tear, and for some Windows drivers with
+ * WGL_EXT_swap_control_tear.
  *
  *
  * Read more on the Khronos wiki:
  * Read more on the Khronos wiki:
  * https://www.khronos.org/opengl/wiki/Swap_Interval#Adaptive_Vsync
  * https://www.khronos.org/opengl/wiki/Swap_Interval#Adaptive_Vsync
@@ -2081,7 +2171,7 @@ extern DECLSPEC void SDLCALL SDL_GL_DeleteContext(SDL_GLContext context);
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_video_h_ */
 #endif /* SDL_video_h_ */
 
 

+ 3 - 3
macOS/Frameworks/SDL2.framework/Versions/A/Headers/SDL_vulkan.h

@@ -28,9 +28,9 @@
 #ifndef SDL_vulkan_h_
 #ifndef SDL_vulkan_h_
 #define SDL_vulkan_h_
 #define SDL_vulkan_h_
 
 
-#include "SDL_video.h"
+#include <SDL2/SDL_video.h>
 
 
-#include "begin_code.h"
+#include <SDL2/begin_code.h>
 /* Set up for C function definitions, even when using C++ */
 /* Set up for C function definitions, even when using C++ */
 #ifdef __cplusplus
 #ifdef __cplusplus
 extern "C" {
 extern "C" {
@@ -210,6 +210,6 @@ extern DECLSPEC void SDLCALL SDL_Vulkan_GetDrawableSize(SDL_Window * window,
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif
-#include "close_code.h"
+#include <SDL2/close_code.h>
 
 
 #endif /* SDL_vulkan_h_ */
 #endif /* SDL_vulkan_h_ */

+ 12 - 12
macOS/Frameworks/SDL2.framework/Versions/A/Headers/begin_code.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -28,13 +28,13 @@
  */
  */
 
 
 /* This shouldn't be nested -- included it around code only. */
 /* This shouldn't be nested -- included it around code only. */
-#ifdef _begin_code_h
+#ifdef SDL_begin_code_h
 #error Nested inclusion of begin_code.h
 #error Nested inclusion of begin_code.h
 #endif
 #endif
-#define _begin_code_h
+#define SDL_begin_code_h
 
 
 #ifndef SDL_DEPRECATED
 #ifndef SDL_DEPRECATED
-#  if (__GNUC__ >= 4)  /* technically, this arrived in gcc 3.1, but oh well. */
+#  if defined(__GNUC__) && (__GNUC__ >= 4)  /* technically, this arrived in gcc 3.1, but oh well. */
 #    define SDL_DEPRECATED __attribute__((deprecated))
 #    define SDL_DEPRECATED __attribute__((deprecated))
 #  else
 #  else
 #    define SDL_DEPRECATED
 #    define SDL_DEPRECATED
@@ -51,7 +51,7 @@
 
 
 /* Some compilers use a special export keyword */
 /* Some compilers use a special export keyword */
 #ifndef DECLSPEC
 #ifndef DECLSPEC
-# if defined(__WIN32__) || defined(__WINRT__) || defined(__CYGWIN__)
+# if defined(__WIN32__) || defined(__WINRT__) || defined(__CYGWIN__) || defined(__GDK__)
 #  ifdef DLL_EXPORT
 #  ifdef DLL_EXPORT
 #   define DECLSPEC __declspec(dllexport)
 #   define DECLSPEC __declspec(dllexport)
 #  else
 #  else
@@ -74,7 +74,7 @@
 
 
 /* By default SDL uses the C calling convention */
 /* By default SDL uses the C calling convention */
 #ifndef SDLCALL
 #ifndef SDLCALL
-#if (defined(__WIN32__) || defined(__WINRT__)) && !defined(__GNUC__)
+#if (defined(__WIN32__) || defined(__WINRT__) || defined(__GDK__)) && !defined(__GNUC__)
 #define SDLCALL __cdecl
 #define SDLCALL __cdecl
 #elif defined(__OS2__) || defined(__EMX__)
 #elif defined(__OS2__) || defined(__EMX__)
 #define SDLCALL _System
 #define SDLCALL _System
@@ -107,7 +107,7 @@
 #ifdef __BORLANDC__
 #ifdef __BORLANDC__
 #pragma nopackwarning
 #pragma nopackwarning
 #endif
 #endif
-#ifdef _M_X64
+#ifdef _WIN64
 /* Use 8-byte alignment on 64-bit architectures, so pointers are aligned */
 /* Use 8-byte alignment on 64-bit architectures, so pointers are aligned */
 #pragma pack(push,8)
 #pragma pack(push,8)
 #else
 #else
@@ -171,17 +171,17 @@
 #define SDL_FALLTHROUGH [[fallthrough]]
 #define SDL_FALLTHROUGH [[fallthrough]]
 #else
 #else
 #if defined(__has_attribute)
 #if defined(__has_attribute)
-#define _HAS_FALLTHROUGH __has_attribute(__fallthrough__)
+#define SDL_HAS_FALLTHROUGH __has_attribute(__fallthrough__)
 #else
 #else
-#define _HAS_FALLTHROUGH 0
+#define SDL_HAS_FALLTHROUGH 0
 #endif /* __has_attribute */
 #endif /* __has_attribute */
-#if _HAS_FALLTHROUGH && \
+#if SDL_HAS_FALLTHROUGH && \
    ((defined(__GNUC__) && __GNUC__ >= 7) || \
    ((defined(__GNUC__) && __GNUC__ >= 7) || \
     (defined(__clang_major__) && __clang_major__ >= 10))
     (defined(__clang_major__) && __clang_major__ >= 10))
 #define SDL_FALLTHROUGH __attribute__((__fallthrough__))
 #define SDL_FALLTHROUGH __attribute__((__fallthrough__))
 #else
 #else
 #define SDL_FALLTHROUGH do {} while (0) /* fallthrough */
 #define SDL_FALLTHROUGH do {} while (0) /* fallthrough */
-#endif /* _HAS_FALLTHROUGH */
-#undef _HAS_FALLTHROUGH
+#endif /* SDL_HAS_FALLTHROUGH */
+#undef SDL_HAS_FALLTHROUGH
 #endif /* C++17 or C2x */
 #endif /* C++17 or C2x */
 #endif /* SDL_FALLTHROUGH not defined */
 #endif /* SDL_FALLTHROUGH not defined */

+ 3 - 3
macOS/Frameworks/SDL2.framework/Versions/A/Headers/close_code.h

@@ -1,6 +1,6 @@
 /*
 /*
   Simple DirectMedia Layer
   Simple DirectMedia Layer
-  Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+  Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -26,10 +26,10 @@
  *  after you finish any function and structure declarations in your headers
  *  after you finish any function and structure declarations in your headers
  */
  */
 
 
-#ifndef _begin_code_h
+#ifndef SDL_begin_code_h
 #error close_code.h included without matching begin_code.h
 #error close_code.h included without matching begin_code.h
 #endif
 #endif
-#undef _begin_code_h
+#undef SDL_begin_code_h
 
 
 /* Reset structure packing at previous byte alignment */
 /* Reset structure packing at previous byte alignment */
 #if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__)
 #if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__)

+ 48 - 0
macOS/Frameworks/SDL2.framework/Versions/A/Resources/CMake/sdl2-config-version.cmake

@@ -0,0 +1,48 @@
+# based on the files generated by CMake's write_basic_package_version_file
+
+# SDL2 CMake version configuration file:
+# This file is meant to be placed in Resources/CMake of a SDL2 framework
+
+if(NOT EXISTS "${CMAKE_CURRENT_LIST_DIR}/../../Headers/SDL_version.h")
+    message(AUTHOR_WARNING "Could not find SDL_version.h. This script is meant to be placed in the Resources/CMake directory of SDL2.framework")
+    return()
+endif()
+
+file(READ "${CMAKE_CURRENT_LIST_DIR}/../../Headers/SDL_version.h" _sdl_version_h)
+string(REGEX MATCH "#define[ \t]+SDL_MAJOR_VERSION[ \t]+([0-9]+)" _sdl_major_re "${_sdl_version_h}")
+set(_sdl_major "${CMAKE_MATCH_1}")
+string(REGEX MATCH "#define[ \t]+SDL_MINOR_VERSION[ \t]+([0-9]+)" _sdl_minor_re "${_sdl_version_h}")
+set(_sdl_minor "${CMAKE_MATCH_1}")
+string(REGEX MATCH "#define[ \t]+SDL_PATCHLEVEL[ \t]+([0-9]+)" _sdl_patch_re "${_sdl_version_h}")
+set(_sdl_patch "${CMAKE_MATCH_1}")
+if(_sdl_major_re AND _sdl_minor_re AND _sdl_patch_re)
+    set(PACKAGE_VERSION "${_sdl_major}.${_sdl_minor}.${_sdl_patch}")
+else()
+    message(AUTHOR_WARNING "Could not extract version from SDL_version.h.")
+    return()
+endif()
+
+if(PACKAGE_FIND_VERSION_RANGE)
+    # Package version must be in the requested version range
+    if ((PACKAGE_FIND_VERSION_RANGE_MIN STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION_MIN)
+        OR ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_GREATER PACKAGE_FIND_VERSION_MAX)
+        OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND PACKAGE_VERSION VERSION_GREATER_EQUAL PACKAGE_FIND_VERSION_MAX)))
+        set(PACKAGE_VERSION_COMPATIBLE FALSE)
+    else()
+        set(PACKAGE_VERSION_COMPATIBLE TRUE)
+    endif()
+else()
+    if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
+        set(PACKAGE_VERSION_COMPATIBLE FALSE)
+    else()
+        set(PACKAGE_VERSION_COMPATIBLE TRUE)
+        if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
+            set(PACKAGE_VERSION_EXACT TRUE)
+        endif()
+    endif()
+endif()
+
+# if the using project doesn't have CMAKE_SIZEOF_VOID_P set, fail.
+if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "")
+    set(PACKAGE_VERSION_UNSUITABLE TRUE)
+endif()

+ 71 - 0
macOS/Frameworks/SDL2.framework/Versions/A/Resources/CMake/sdl2-config.cmake

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

+ 10 - 10
macOS/Frameworks/SDL2.framework/Versions/A/Resources/Info.plist

@@ -3,7 +3,7 @@
 <plist version="1.0">
 <plist version="1.0">
 <dict>
 <dict>
 	<key>BuildMachineOSBuild</key>
 	<key>BuildMachineOSBuild</key>
-	<string>21C52</string>
+	<string>21G725</string>
 	<key>CFBundleDevelopmentRegion</key>
 	<key>CFBundleDevelopmentRegion</key>
 	<string>English</string>
 	<string>English</string>
 	<key>CFBundleExecutable</key>
 	<key>CFBundleExecutable</key>
@@ -19,7 +19,7 @@
 	<key>CFBundlePackageType</key>
 	<key>CFBundlePackageType</key>
 	<string>FMWK</string>
 	<string>FMWK</string>
 	<key>CFBundleShortVersionString</key>
 	<key>CFBundleShortVersionString</key>
-	<string>2.0.19</string>
+	<string>2.28.5</string>
 	<key>CFBundleSignature</key>
 	<key>CFBundleSignature</key>
 	<string>SDLX</string>
 	<string>SDLX</string>
 	<key>CFBundleSupportedPlatforms</key>
 	<key>CFBundleSupportedPlatforms</key>
@@ -27,24 +27,24 @@
 		<string>MacOSX</string>
 		<string>MacOSX</string>
 	</array>
 	</array>
 	<key>CFBundleVersion</key>
 	<key>CFBundleVersion</key>
-	<string>2.0.19</string>
+	<string>2.28.5</string>
 	<key>DTCompiler</key>
 	<key>DTCompiler</key>
 	<string>com.apple.compilers.llvm.clang.1_0</string>
 	<string>com.apple.compilers.llvm.clang.1_0</string>
 	<key>DTPlatformBuild</key>
 	<key>DTPlatformBuild</key>
-	<string>13C100</string>
+	<string>14C18</string>
 	<key>DTPlatformName</key>
 	<key>DTPlatformName</key>
 	<string>macosx</string>
 	<string>macosx</string>
 	<key>DTPlatformVersion</key>
 	<key>DTPlatformVersion</key>
-	<string>12.1</string>
+	<string>13.1</string>
 	<key>DTSDKBuild</key>
 	<key>DTSDKBuild</key>
-	<string>21C46</string>
+	<string>22C55</string>
 	<key>DTSDKName</key>
 	<key>DTSDKName</key>
-	<string>macosx12.1</string>
+	<string>macosx13.1</string>
 	<key>DTXcode</key>
 	<key>DTXcode</key>
-	<string>1321</string>
+	<string>1420</string>
 	<key>DTXcodeBuild</key>
 	<key>DTXcodeBuild</key>
-	<string>13C100</string>
+	<string>14C18</string>
 	<key>LSMinimumSystemVersion</key>
 	<key>LSMinimumSystemVersion</key>
-	<string>10.7</string>
+	<string>10.9</string>
 </dict>
 </dict>
 </plist>
 </plist>

+ 1 - 1
macOS/Frameworks/SDL2.framework/Versions/A/Resources/License.txt

@@ -1,6 +1,6 @@
 
 
 Simple DirectMedia Layer
 Simple DirectMedia Layer
-Copyright (C) 1997-2021 Sam Lantinga <[email protected]>
+Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
   
   
 This software is provided 'as-is', without any express or implied
 This software is provided 'as-is', without any express or implied
 warranty.  In no event will the authors be held liable for any damages
 warranty.  In no event will the authors be held liable for any damages

+ 13 - 1
macOS/Frameworks/SDL2.framework/Versions/A/Resources/ReadMe.txt

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

BIN
macOS/Frameworks/SDL2.framework/Versions/A/Resources/default.metallib


BIN
macOS/Frameworks/SDL2.framework/Versions/A/SDL2


+ 183 - 142
macOS/Frameworks/SDL2.framework/Versions/A/_CodeSignature/CodeResources

@@ -4,21 +4,29 @@
 <dict>
 <dict>
 	<key>files</key>
 	<key>files</key>
 	<dict>
 	<dict>
+		<key>Resources/CMake/sdl2-config-version.cmake</key>
+		<data>
+		GOmfPsl6+zUzjRroR1OeRUu1Do0=
+		</data>
+		<key>Resources/CMake/sdl2-config.cmake</key>
+		<data>
+		s2hXhDxzy/ilC+gLamGy/Kq13jo=
+		</data>
 		<key>Resources/Info.plist</key>
 		<key>Resources/Info.plist</key>
 		<data>
 		<data>
-		gEF7HAv3K7YphEzsbeYwpT349oY=
+		cegsTQb/eH8zs4+xJflmOGcCHe0=
 		</data>
 		</data>
 		<key>Resources/License.txt</key>
 		<key>Resources/License.txt</key>
 		<data>
 		<data>
-		s91T1Kwm3AMSbQtGQrmCGovO9hU=
+		fCUUBjJ4JuUAC8MRSCszNcY21v8=
 		</data>
 		</data>
 		<key>Resources/ReadMe.txt</key>
 		<key>Resources/ReadMe.txt</key>
 		<data>
 		<data>
-		JbxWZUxpvG/D7Yb/DvLh6Aunla0=
+		04Gl3MPa3Etx4qtkaftLHaPqBVU=
 		</data>
 		</data>
 		<key>Resources/default.metallib</key>
 		<key>Resources/default.metallib</key>
 		<data>
 		<data>
-		9r12z/bRcfzLTZHZq/lX6aEe2XQ=
+		WolBBB4baAIlnxpGKqAO3mvy7XE=
 		</data>
 		</data>
 	</dict>
 	</dict>
 	<key>files2</key>
 	<key>files2</key>
@@ -27,759 +35,792 @@
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			v/DMTijH1WncRXrdxSVPKy5xxtQ=
+			hzPz83uejvKAqzL0Xoi6aO8h8jw=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			0fzPhZgV+w6fI8dj366XVvKwjTfqbLBPzmd/aLALUHI=
+			9u/or17IhYmY6rFVU14yva0lEIgG9DmS4LbiwXBLBL8=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_assert.h</key>
 		<key>Headers/SDL_assert.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			mSlwIPr9R6bzHNnN7i5M94pCujI=
+			S50t60okfb3/ykWKavFC3tnkGgE=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			kkLRhM4ETnXqARAhlwDlM+0RTODyPkt2LKCDfNHB1GQ=
+			uPZQOi25pO/BZWjREOhxmXsoreSNJyZrNOnVJ/TyYzs=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_atomic.h</key>
 		<key>Headers/SDL_atomic.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			O8jPUxGcTObcxrHMQp3Qz+dXQDQ=
+			yrv6uC/CjYpeCteZDUbBFr2nwiU=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			OWSwhteYurATY/sDi6nGg5DnfnsJSt1FAi1Y9006ivw=
+			Mrfc980NeBAvQ5I040V8xusL6cHBcFfPaA9B2prA4dw=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_audio.h</key>
 		<key>Headers/SDL_audio.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			/Sfo5p0/2gv6EKEhC40upZbqFiE=
+			ATRDpv42XjNUWqjKPDAPYqIqvDY=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			sOqoS+uorM/WVyNvqIJyAqbnud4BhIGlN1su0Qz/AUg=
+			MThYj7HEVNC7MdUTbzgyHDqlDMDS9g664b6M5d7tsdY=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_bits.h</key>
 		<key>Headers/SDL_bits.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			55cZn4y922SG8Fbk/JGUCMZuf1M=
+			Y7zU8XCX6cvmN/FK9COruPP8VGs=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			zMlcKK8njYyxzNjIQYydL0bebiqAjlGi/3kERoSHweA=
+			5bLOm9HAk5AScYemc5V1usN7NqP685ZYN5MOBjzC2IE=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_blendmode.h</key>
 		<key>Headers/SDL_blendmode.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			STe4W2wk9uzE6p6rodGZAI57su4=
+			ThQw2vcWPo/mLtvKmhQrjhSQhLk=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			ooyrDP0mA4K19fyJnCCTVcnuiwT/2W+ql+YhhOGczr8=
+			o3UtzbWJqnTeh6+r+oLVdOzcJZ1b3XhfPINDjKHftu4=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_clipboard.h</key>
 		<key>Headers/SDL_clipboard.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			246RhHnyBlgfKej3arzM4sjbp2g=
+			pFjnEWnFn2vCXZrSDQ6m8N6h0MM=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			9I5+4RegmMJoHTJvbvS7Xfez+jurvf91KJ7B7Ox79Fc=
+			t9Fr9UxC9zwgfkCY5P5DW9k3TndMFRn+tU/heffUOQk=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_config.h</key>
 		<key>Headers/SDL_config.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			QLnDc4uD3b5bfAVGMWN1JKZ5ugQ=
+			B13VD2wcb7zADcKXB+B/kBYhpHw=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			8/gtmBv7jzyvlRO5BOqD2N0Hj91AZEGTv8PVZFC6Byg=
+			LmXzL1O6PasyaBOUhPezJnqtqwCV9rqOyiJNEvGKgHo=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_config_macosx.h</key>
 		<key>Headers/SDL_config_macosx.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			4vJ4KUHl3XnQ2mMeHe5nRpbQues=
+			/CrGe7lmePlmR7DD9sqN4LHqM/0=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			k22W3s8ixCNyRl5HoDtXoBwk8sZlgYaiUvSAH2cbOfw=
+			EpnSzka/wAuxi4wcgIktwQnuYWsMAATYMt6yDmo4zOg=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_copying.h</key>
 		<key>Headers/SDL_copying.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			yrYOm/q+6NqPxYH5MLEonLnwIxY=
+			OzEuv+IaGVfj3A2BEoXc87vV+Wk=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			Ziie3rOwX+j6M2NBdENO350Ubg9tI0Z6wHxLmkPA5eM=
+			5zsYMLhj8aKXm4gWJoGHC55ipiUi1OIxXdOtUIHQQw4=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_cpuinfo.h</key>
 		<key>Headers/SDL_cpuinfo.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			PmnNQsqLrOozhnfuz+b6hn38C4E=
+			4/UkY/aNgAY5RsZ61XSnwtCXW9I=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			v0qQ0HIiTNUxNTY2D2p4VpFxTKEydtNr8G1AD+P4HB0=
+			pWPZkQcmPyAzgZNKcmiYutw8VFjBcHOinO+VVKIBeN0=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_endian.h</key>
 		<key>Headers/SDL_endian.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			h5P8O2rdszHzg0NW5yYN+rKH5l4=
+			j6/tuHiJfdv8YaI9k3fogDw4bNc=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			RxLIixdGRyyagdZJ3c5zrqExGusY0l1ypxa0SHZZ1Tg=
+			P5KOVzR2wBlhdSw7biIJ3O78dnYnoGdi4pHxvyFcLdY=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_error.h</key>
 		<key>Headers/SDL_error.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			GLlPR4KhpDP7NYKHDmqZ3ikD8ow=
+			6cwM6B1MfW2wTFB+g6c1GO9UH7g=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			JcAoeV3EzJGsxT6dC0/z3keO1Ygx5B45zbSTjsfoQ2I=
+			ULQrtxP4RfbnV5GGj3i+PrYSI/rzDYskl0XQtCd72SU=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_events.h</key>
 		<key>Headers/SDL_events.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			QIaNmhZEfjAFcrTxuFA1Rx1HqYE=
+			feHsZTKREoq2xXa4dv/4lzZqzUc=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			99ZmY/UG0zw8IycR7u4Zwq+ZaSH/7WBhuFeQIE0WrOg=
+			FVz2yvXnjsUNWBsWQOcBqaZrXCCdohSRWDh1l3SKqRY=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_filesystem.h</key>
 		<key>Headers/SDL_filesystem.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			NYyWvqpas49HdF0WpuG8ecxQXZs=
+			sicIJ2kroxv3QVkoKklHGN3tbWo=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			W1O4hwoJoFFEdz0wi08M90xxYrnpEzBmZKHQ2jFMt9s=
+			k3ybgbDF/Ap8kf4vKxLVZnRXoXtZwpFb4Nsk8GWqDCY=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_gamecontroller.h</key>
 		<key>Headers/SDL_gamecontroller.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			EAlxuiNvSfzmtSbcLUF5rV1pcF0=
+			DGpJeIYXN/t/Yyqilband2kKOSk=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			FhxwV2mnczq2FFkFJNENNLroGybaVPt5cTufmZTTja8=
+			hgAaf8SQwVfc94yXKjNFA3VpsTCYwL65W5X6lXEnsgI=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_gesture.h</key>
 		<key>Headers/SDL_gesture.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			i/9+Ab2s35mobwiy7vNAiWZw79M=
+			iBwReSkmy4b/H3FD3mZZtLNdCMk=
+			</data>
+			<key>hash2</key>
+			<data>
+			H7K4JyorBvI9vlJegmEZ6NvapE7/l/2bhOGeQ9zudiE=
+			</data>
+		</dict>
+		<key>Headers/SDL_guid.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			jTpr9nvDtYvix2njIOclQs9xYuk=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			atIOCtdO67U1qnLE6SkY9Q9COkcxVlCAtYDe1fT2H98=
+			ifUKQBbQRJdNqsJBO7Mor3KqQyqDulvyNC82/RWPXhs=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_haptic.h</key>
 		<key>Headers/SDL_haptic.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			LPyn7jjlNBuUc1zFGqeO2Cq5VZM=
+			+Wt7zxeuXghMudXSohdJr12ueGM=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			+5Ct1Ov/2eW1Qx5StW+xMCr7LkxUVBrXXOOGkLGrJ6s=
+			VhCeKNAvsH+lrvZW9g65G84lg0FofrbORvS0TqPWaRQ=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_hidapi.h</key>
 		<key>Headers/SDL_hidapi.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			Nvi8+q0CFZvGQycSwsrG8+XlBi0=
+			CBwPZQMZ5wsa03aBND8rQvsLfUg=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			J24aMODunH6SZ6s9x0wtgA710RGG7K0+crfEd6gUHk4=
+			CJEdgW9T0b2VRNRFaEZqPeCTg3FjsEFOHZvwuJbVHX0=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_hints.h</key>
 		<key>Headers/SDL_hints.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			xcqatQ850owqR18U4/O/HJn40Lk=
+			UgnqFkin5+VoTT/CIKXzqvtznzg=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			S+rY6HrGXiX+4pVDaHFsC9uTNAIPpRB37Sg+quEAoAU=
+			RZ04QaeYEOuGwQsBP9nLcvYjv0GSQmROZ7e6OKZuDVE=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_joystick.h</key>
 		<key>Headers/SDL_joystick.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			AJPNF/DbkcHucJ2wbI8IrJB9zZ8=
+			Y/dkiMb7+9Wmo8oyyOuh4igQK4o=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			04Z8cOSEB26jEgljB/pNyPuWAmoUEU8yI2CQZAzXoUs=
+			d3rYIj9RV45IuiYZAbOQyNe3iR4DORkkqwYiSA81c6k=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_keyboard.h</key>
 		<key>Headers/SDL_keyboard.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			lLZfFQhtdEOKsggS22/4xZdnJfo=
+			4jiEP+XRfvz8VFmNWlHkcsMS2nI=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			w1jL91Qgh7vb70ClZ31pzKDf+6UQQlt56pT66bUngbA=
+			EPdkxf3E/uXb/dm3gpxepX+d5JNWswuHP+PG/c33p84=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_keycode.h</key>
 		<key>Headers/SDL_keycode.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			U5fm3Skqx0Wj5Rgbn98YdetECP0=
+			j4z7vftDr05ahrBr5bZnBxZ3Ufs=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			XdBPggMzU6eY4OQx2knOSNP+6FORNmkdRImanle74E4=
+			abAEws/ibkdlWSE/bP/uq0oIjcebU59aul5g4Lu0pbA=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_loadso.h</key>
 		<key>Headers/SDL_loadso.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			jleG6BEdDruCpU9tFSaRlbuKkLo=
+			1fe02ZD9+yDX75ZVM1rk7RqDLCc=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			PgXDLDJW1dAfZyUVM/KTiyfzfvPNTM1JciL0Tdwjmpc=
+			eOcuzAcWhFDvl3bV+3m54GtOrTQztPLIiFHK6NOQuZM=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_locale.h</key>
 		<key>Headers/SDL_locale.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			yAXa1dRGFy9axio5eOOkF+OxCCc=
+			UOhBMG0JOnoQAEGMY7S6as755IY=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			gADnTlFziXCujgb8VccRqlCuAWHZwrL3ViKk97xt3fM=
+			yM4RN7sKzLhnVlwbW1pJX3S6YLZl2LM/0qsLyQf5GXM=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_log.h</key>
 		<key>Headers/SDL_log.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			SlNVGofMjVVdFwHyvY5KCbUcNOk=
+			Ij4wEHg0aIMC28dTUSur/CAxQss=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			yW1pNbc7Qqi8A3A3eA4ao7nUZaRaMI+RPJnD3kl3bBY=
+			A1Xc1+qvTtDHCz8f4e6oWq8SlifqizcVZ1Q37GJkhG0=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_main.h</key>
 		<key>Headers/SDL_main.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			Q5Ti08KII7Nou3EGBn0gTlAWmgU=
+			j0/bBvlkrYcnXeoB6sWoCQiIlV0=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			7xolbM8hl0CQlaMCx8BdMurFKh79FdPLcAe0ItoigpQ=
+			QOjL/8v8HMC/N+1jocNxIGBB5pifTDWxbwOvD7wJtRg=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_messagebox.h</key>
 		<key>Headers/SDL_messagebox.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			K8nCe6lt2K215ljCZKIrnYihfU0=
+			TZHRdWCuyxbRdc1GZjnTjHdKV5A=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			PRfrkWklHGIJWSc/JHCu8y/N08UqTroKuU2gA12/DdE=
+			Y+cutYk+JQOcbC9kbCdqbLr4oIBCxcX8HIzKJW+MOTE=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_metal.h</key>
 		<key>Headers/SDL_metal.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			hNpFeIsG4erVFKAqauoeQ8s2KNg=
+			yggpDR8fWdb4ZAxZDLO7ztOMa84=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			5ehYw8JIgndqCjfJyZ2g97vMgdKJs1ZZdeekmvrUHjs=
+			aVk9kP7LRPopLu52brj5b7qNwMeUyUOwDPVyXwOm4O0=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_misc.h</key>
 		<key>Headers/SDL_misc.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			K60n7zOxUHOl6ScibXY5QU5PkYk=
+			wkzkXLc/0JwEBj+pVGBGODS/N7g=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			gfljoGV6kiuQ2bzGnilDrWx3ELV/dJCjiCDMx9Ld2Sw=
+			qClRwcNymRF0gmpjyJ+EQ7fChV48OUN8NAAM2x8NsRM=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_mouse.h</key>
 		<key>Headers/SDL_mouse.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			zRdtpAXtD89nQJMwH1KZWHvde4c=
+			AL6jjX5llLXh3nscuX0MJQQJ7C0=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			VbtfcXrejEWHDZk950PAjxla9wNWkgKgYj4I1FXwNsQ=
+			8R3uVCCs2wF9vtwJEqAi+xjYtAtJ1F6UIqCPUhiBwxU=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_mutex.h</key>
 		<key>Headers/SDL_mutex.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			8mfEPK7HdgSgN1kHj4b9BTk88KM=
+			c4s6haEURwhr1L/ZsIoQHgDC1Rw=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			L71ShX7ZJhobSLy3zym+cstNShyGLaOWVJGwp0M07HI=
+			L1kG6r9N1C+njGEvU0sAJeAVFwr6gkCCwGcBxsjDuNU=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_name.h</key>
 		<key>Headers/SDL_name.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			0HvLxBYQQtk7wc6fhKV8GKak0bI=
+			86Aic9zf8RE0YQGymeyFxdGck34=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			SEGMU9JT6Mb8M9/0YUh9mWmrB5qKLDXkdFVfUJEsr8k=
+			U6Hh9de6D0JfccwHBmoAy/zaFw30VuNT1ofo30X7cCw=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_opengl.h</key>
 		<key>Headers/SDL_opengl.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			uwnVFA4drG7Fk24RWefE3aSgdBU=
+			a83WQIdV8u+rut4US8joNjpA6kA=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			1n0BVfF+6lgJ/hrvp6R1e46STzWzx5tgbCA22DspNoY=
+			HxWMmpZ2o+Z1atgt7Ou2sf5/4s2raLbApxzyqqzQcGY=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_opengl_glext.h</key>
 		<key>Headers/SDL_opengl_glext.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			R1nHUIy7DpXf2BZyzO+VT33j3bE=
+			eOvalGUielSzNuOWWDLYkwqpYrg=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			RwZcYEr740srGsvbe4jQhHYTTNwp+e05VGDjqyNkYr4=
+			GrsoiRybBmG2/zdJ3iZx2l/hK+tbyxgzsta99ciezfg=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_opengles.h</key>
 		<key>Headers/SDL_opengles.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			1+h2kdTJu34MsWwgpjTvVYoubz8=
+			Vc//lrKlqY/bME9ocSWczplleP4=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			MAu5WuH9K7Jj+zBksjLrT+tROjsnUobxsNI1yE/SeW4=
+			hJHBadVAgpV3dIMW++DPSJKqsNOCvkA8qNrMoFbXd5g=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_opengles2.h</key>
 		<key>Headers/SDL_opengles2.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			07iyCC/NuHm+szjTqljqYgwi5Rs=
+			gyrJUUv02Am+DYc5V42xH7EQev4=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			ggtmlyvNJwc45GE1foljN+7bfkbTdNZ/+/2iipryM5I=
+			T7CsPQJXfeZ3+pVjGLqzKBfEjyHX2Ne0vV44iZMKDgs=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_opengles2_gl2.h</key>
 		<key>Headers/SDL_opengles2_gl2.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			g4y04zPFy1H/qujSNGRd0vB7ClQ=
+			GbD4M9ZIR9sxgLX4G8T/ojLVQJk=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			9GAwK0cg8YPrZHWVqMGpyVwKFz3Ay9VHiyz70jzWltA=
+			1uxEsdc/OvzjogrGl223+z2sZWxRkPC1Y+TOkNeaFao=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_opengles2_gl2ext.h</key>
 		<key>Headers/SDL_opengles2_gl2ext.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			bTlnL+42kbi+n/gH//X2p0pqeuM=
+			frTvd+EfShO/uonAvnnsnPkqc80=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			5404JOHXH4pGO60gR/uLhz9zW6fKy9jvdMw5i1WTcpo=
+			T8WwA03N6cElki4+cNAUiaazNQdoVu5mApThpjBaNxk=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_opengles2_gl2platform.h</key>
 		<key>Headers/SDL_opengles2_gl2platform.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			ByFMXJFtjcRglS/e0+DujyjC3dM=
+			JO1DB28zz7TCz/P5YCSvV1PaqWg=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			wlKRTsmTMrnniYqSvQklJfb9VF07J0MDpqzYOcfiDDY=
+			R3m+mZrNGQRFgjjwnIaYO3lgrEDmEuBdstuX22FfHg8=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_opengles2_khrplatform.h</key>
 		<key>Headers/SDL_opengles2_khrplatform.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			NLpJq9uBqjOpWhXISOQHPnTp/XQ=
+			mBjqEs+5bGC9u1ED2M93VNzONPQ=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			djHeDyzmR0e/2JNIbqpBqgi56MXlxlAbgcBFxuvwSyo=
+			ex4Bqqetj2/DS1x733nr9RibsJ4sTS55/F01BiPRHoM=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_pixels.h</key>
 		<key>Headers/SDL_pixels.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			nyjM6mbMOIyVIv2SKPLnGV5L0hU=
+			4PRTgauh2fx03ubJfuuHNOPhN28=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			xieLjf2uHFX8KlxZLKPOMFeFy83ng45CxordGnSRD9Y=
+			GZQPt4sz55DRDRzw6E2c1WMjhNqInkQA3gxLQiTPQlw=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_platform.h</key>
 		<key>Headers/SDL_platform.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			eFHsGrf/Z6BsjNUpNO1eqVb6EsE=
+			Ey0u3gHjhY9CsV6rnGPL6l/Lqx4=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			yNxwfguRgIXZlsYKnrplg7lRdd6iWmiRTyjzb1Ibpkw=
+			n9zH0IFb2hWb/ZQ3TBMQxLzDre/VQcI6Obhdmq8O7QU=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_power.h</key>
 		<key>Headers/SDL_power.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			jO51vuTRGdDFJkvsoFaE3FcxD/Y=
+			SmO5g1nUZ1IAgDQGIlzbR8F5udg=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			2i2yj5sOlQaox0PBKAbGk155QElwKtT8CEklel96nHs=
+			Lmp/XdN6xQbqR/eAmoKFcpqk+MM65gGxjv1cLYUqG8c=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_quit.h</key>
 		<key>Headers/SDL_quit.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			XQQQtH9jbx8abQdutRGJP0cguHI=
+			xxqxk2GqAVUt7s8YiRcGMegy160=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			MXrcuLRy7H8TBhWnJxqy7PgnxfGuP+O+IAnsNJYUeYI=
+			cd4fDfe+MqMZ35xoFn5VPkGBafcN9tPvL9J74IeKtXI=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_rect.h</key>
 		<key>Headers/SDL_rect.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			jwWYANL/zwL4ky9ROuJwCByM+q8=
+			AtB+xgoXRW94PDzzbBVBYyAW0gI=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			Uz1SLRAPydIWhC+e8jfcCDKkfiiuNuTPJjc/+Oq5iuY=
+			rFxcleBxja/rwskrEIytxw3evL+Drkx3YsihtllIw78=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_render.h</key>
 		<key>Headers/SDL_render.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			49yQe234L5Id5ZoMA2LauDEhyWY=
+			5yyytzTD1eS/K13NSzW6faLAUlA=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			Lci/b/SVO3GAAjL+fvKqlWWxhwcoZj97Ee/OUmYLAJY=
+			+ljWDPQHFdheD/Z6QxHzbpNQVg/XVlqx5+B3ovMbIF0=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_revision.h</key>
 		<key>Headers/SDL_revision.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			5JYRU0RGoJRCSAOAZE8qzfJ+ZEU=
+			wlRT2sTA0dP97Vvcah+M13dM6Ng=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			A4GM0w4t3CrQCxMRBYNFIZzpSIpuoKTwQtrpC1/IM0E=
+			Dn4kx2zaANESjNuADThOyPh3QukKZMRvUrIcDo8vIR4=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_rwops.h</key>
 		<key>Headers/SDL_rwops.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			py/pDZbxOz7R/aVBwfOJUfqKEm8=
+			sCmzKOj8q3vee6JV6acptKOzBoQ=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			zGfgbWlevJ31n30hdprf2FqD40Jij1wtzz81C1oy4cg=
+			j6rnTfnMJaCsq2CviHQP8obbVNgrElC0OXJBt3ltyVg=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_scancode.h</key>
 		<key>Headers/SDL_scancode.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			BR9njO+36nUhbXVDGT/wIiSmyoE=
+			JPnDQuCIC32+ugD3OX3igjdGfmE=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			YkvjTqe1cQcJ3CA4NSaHNNQnowdi0+AtS6EITFlVu5w=
+			vC/EC0A66ywzXwlp8iGE7nlOpWGZ18iHhEdS7BsM3VU=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_sensor.h</key>
 		<key>Headers/SDL_sensor.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			6ltnyEvODMzyE9l+xiVfNNCoX1U=
+			J+9woN1Qec074rah/rly1BHM5sY=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			bonTPUShAMcQxBVujpa/SEvhcZVA4gCyA8rn23lC6w8=
+			sEfbN4S8Lpxm0XDblgOvnVV0fsgx/zo/q0s5h9OvhmE=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_shape.h</key>
 		<key>Headers/SDL_shape.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			Pu1/YS6GMHf9gHV3vY8e9oN9y18=
+			Hv8O7XLnXLIVAOf6cjF56yyrRkg=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			zy4oPS4F97I+uTbexdBseV7H+uhM0Apt6oeh6KK6Q78=
+			XFA3qPWL1vJ3EQtae2baJlOZ9ESEmhB1FMYI3fITLZY=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_stdinc.h</key>
 		<key>Headers/SDL_stdinc.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			DUCc/2kJdDhh/veKnlP8Eni15x4=
+			iliyExriwpoxEAgG8CI8CG8go54=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			PDbeWrtUlX3YZ/eGrYw/bTMCc2fPIbcbXVRIe1hw6+E=
+			I4aI+ExJq+16kZfDjF++Uaa2lHZjUWmuFc83IUDfuIk=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_surface.h</key>
 		<key>Headers/SDL_surface.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			VAo/nyBHapqLldRMvub1tfuw8og=
+			Toy3u0xKUfSMmknlIToaUmf5vwE=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			GRRprX0MV5YW6ksjeKJQWrR5bA4V8N6dZXyicmmFc3w=
+			CDctL0QJDSDvlB+uXO69kLW2uA0Xdc0xiJBN8h3pX74=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_system.h</key>
 		<key>Headers/SDL_system.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			35IWKHkgCQbn4Ua/Wn/vzhWArKU=
+			I1i3X5zfVBg7YFzag2Dj43RzuUI=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			0Yp7Ha1cccWBvfBqblABfR1cuR0A/sa0QqCtmtZPEfM=
+			mt328KSVoSMSjZ4Wy268tC04JQmyCAsDM60TWeG3K4s=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_syswm.h</key>
 		<key>Headers/SDL_syswm.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			dg2QFhJ4guF4zFGBu40P8OSBfLs=
+			7sdDIYSuCZbE13gdwZ+rmiqUBEk=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			nnVPnWumbniBNxuaicbNRtzW6ccgQ2mWLv30qhHbfZ0=
+			6QWGeehhVCpiwN9fQv1by5vpdNg8JqxY1XgR48Fxpdc=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_thread.h</key>
 		<key>Headers/SDL_thread.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			lWNUVCJqi1tlYumJO20OAo5IkW8=
+			rdWafQMEiS2pSqeEGdRXDjaU96Q=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			UrgWpIW83tAbGiaxnVckUc6bpaeh6vi4OYVZbm0iRxA=
+			pVkN+av2tjneOX9IafFyXjDRaWe/ROSrLwUQRfCrYYA=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_timer.h</key>
 		<key>Headers/SDL_timer.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			Mpics1srGDaBkldlda3DLnM+81A=
+			Nstsm7GCSSnoH66923lImFIE0fY=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			6goeM9o3EFKzRxneSSONlJbKPF1T+C29+kWqFzYN11Q=
+			6jmEztIQClT68gsMRHHP9tVPF5TxqLfBgmkTqOA00fs=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_touch.h</key>
 		<key>Headers/SDL_touch.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			OSbgvWA39vbg0XzrMFe8pZ2Tw1k=
+			LWDPymUVgQxlg3DwBCJ8klXPq6U=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			S3eiCRpdJ/h69ik0BgMonmUXHjjVV0snjkEcYC7a0n0=
+			y/Kqn35XtKznNX9foqsPjC+jlnbRvBuF8A1MzKIjBmY=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_types.h</key>
 		<key>Headers/SDL_types.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			1kwNWT8AEGlRutTtjdXBKXmu3W8=
+			8xeioL5fy1QauaS4i9g5UdMotoM=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			5gon+jmSul14lqvd6E1FqnGF5XqtThux2OZbB4tGcY8=
+			Em64WSsB0scWcgjtDOAhVyy4XoRBRciw+YaG3vyn6hM=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_version.h</key>
 		<key>Headers/SDL_version.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			1gYnFS3NQS3BkZqI+57b+N9kQGg=
+			uQu/n7fxrWWekVzFRLxJgncZHTA=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			t5RM0hGrOTUIbXSKGnVwgZKjGX3pRq25Rij3Vf6DFtw=
+			DSeMgtt/ULGqpA7hISV4OMHyIDRvvY5Cr6a8loDxcVY=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_video.h</key>
 		<key>Headers/SDL_video.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			HOkLZ9wS+rsUPu670ANjCP2Yrvw=
+			oDSfm7hvyakVAn3MJ/vPYpDiTi8=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			h80MS+7TgiwWqeIQ24/qtaaOwSPnKzMBFmlqWol/B5E=
+			4kgMp+1L702uCbe5U3mPNYx/zonCSDmAoqKxZGMWlC0=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/SDL_vulkan.h</key>
 		<key>Headers/SDL_vulkan.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			YzU8hEv6jByapIvIAasOdqkAyQU=
+			k22upiGXgz0TzSKkWtDwaKrV2fw=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			PqC117S9gbnKmKCBf991rQDJ7N2ak+47yGX/gEdOG8c=
+			kg2f48mMRh4+Ev5cnsEDDyQqf6YbP7YqWNhykRYzgDo=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/begin_code.h</key>
 		<key>Headers/begin_code.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			35YqbQzJKmivI4wvvPG7l9wuwDw=
+			BXr58UQDjOvu3YEpLqbL6MzdnEw=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			VPkgvWbgJL2yxQ3OitX1KjxnyL15qNAr3vngrq+3nYA=
+			lZjnBGKuQiSupwtm3kZTliIMMPlHVmUsVTRtQ7E0WMU=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Headers/close_code.h</key>
 		<key>Headers/close_code.h</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			oc7GPSdH45BO+P4WzoKrFjAseXg=
+			b9BWGnHVTllZJNggBlv8S0bczLA=
+			</data>
+			<key>hash2</key>
+			<data>
+			/x8Gxc1GaIoziXOz/sebI7d0PytDiEWi8kWZfjkp0Ww=
+			</data>
+		</dict>
+		<key>Resources/CMake/sdl2-config-version.cmake</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			GOmfPsl6+zUzjRroR1OeRUu1Do0=
+			</data>
+			<key>hash2</key>
+			<data>
+			YeQ8SoXGqMam3mk/39htvQ5fF5Twd16X5JPfl7/hSuk=
+			</data>
+		</dict>
+		<key>Resources/CMake/sdl2-config.cmake</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			s2hXhDxzy/ilC+gLamGy/Kq13jo=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			xKU9Y8NHTpwIk0CudiA5juPU1zAN28e5MEKNO8Kuers=
+			DuTUW8idzRp7WT1FT5x/m1C1SbVH0FKvKRKOgVlRVhU=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Resources/Info.plist</key>
 		<key>Resources/Info.plist</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			gEF7HAv3K7YphEzsbeYwpT349oY=
+			cegsTQb/eH8zs4+xJflmOGcCHe0=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			d/YyKiR7+kHzWQ2RenbRSdr3G86hEXraeka49Z+HbOo=
+			UbvXAd1adQ9eHZTof+sWdvt4l8NQnopb0cVhBb9Q9Uk=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Resources/License.txt</key>
 		<key>Resources/License.txt</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			s91T1Kwm3AMSbQtGQrmCGovO9hU=
+			fCUUBjJ4JuUAC8MRSCszNcY21v8=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			Y1CgmkCNqrRO4L6QBkaOL0A3reSeBWGRk676hb4lOtI=
+			d+3CuMuNTuvjYs+HODz44b3nsOHwwJqlcyQOq7qhAPc=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Resources/ReadMe.txt</key>
 		<key>Resources/ReadMe.txt</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			JbxWZUxpvG/D7Yb/DvLh6Aunla0=
+			04Gl3MPa3Etx4qtkaftLHaPqBVU=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			pOpMHiFjj3pIWQqZ5KDvYNyp0twU7vCZmLwAQJLVkT4=
+			OjTqSEaeNJpJyrrZIzKimvTn011CW6ucNulPPxUwgL0=
 			</data>
 			</data>
 		</dict>
 		</dict>
 		<key>Resources/default.metallib</key>
 		<key>Resources/default.metallib</key>
 		<dict>
 		<dict>
 			<key>hash</key>
 			<key>hash</key>
 			<data>
 			<data>
-			9r12z/bRcfzLTZHZq/lX6aEe2XQ=
+			WolBBB4baAIlnxpGKqAO3mvy7XE=
 			</data>
 			</data>
 			<key>hash2</key>
 			<key>hash2</key>
 			<data>
 			<data>
-			wLvh//hzxtz/3NO439f1+KwR8WlN6SmtrhisJLt1J48=
+			qBvm8bkpOBGqLzlu8CRNgIRB31C1t4wDqAFzYViMEwk=
 			</data>
 			</data>
 		</dict>
 		</dict>
 	</dict>
 	</dict>

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