SDL_mixer: Xcode: update macOS SDL3 framework headers as well

From 6cdf58a7918f588031366c8c960f8015cc8202bb Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Wed, 26 Nov 2025 21:01:03 +0100
Subject: [PATCH] Xcode: update macOS SDL3 framework headers as well

---
 .../SDL3.framework/Versions/A/Headers/SDL.h   |   3 +-
 .../Versions/A/Headers/SDL_assert.h           |  47 ++-
 .../Versions/A/Headers/SDL_atomic.h           |  18 ++
 .../Versions/A/Headers/SDL_audio.h            |   2 +-
 .../Versions/A/Headers/SDL_begin_code.h       |   4 +-
 .../Versions/A/Headers/SDL_camera.h           |  28 +-
 .../Versions/A/Headers/SDL_clipboard.h        |  36 +--
 .../Versions/A/Headers/SDL_cpuinfo.h          |  21 ++
 .../Versions/A/Headers/SDL_dialog.h           |  10 +-
 .../Versions/A/Headers/SDL_dlopennote.h       | 227 ++++++++++++++
 .../Versions/A/Headers/SDL_endian.h           |   6 +-
 .../Versions/A/Headers/SDL_events.h           |  56 +++-
 .../Versions/A/Headers/SDL_filesystem.h       |  27 +-
 .../Versions/A/Headers/SDL_gamepad.h          | 152 +++++++++-
 .../Versions/A/Headers/SDL_gpu.h              | 187 +++++++++---
 .../Versions/A/Headers/SDL_hidapi.h           |  19 ++
 .../Versions/A/Headers/SDL_hints.h            | 277 ++++++++++++++---
 .../Versions/A/Headers/SDL_intrin.h           |   7 +-
 .../Versions/A/Headers/SDL_iostream.h         | 104 ++++---
 .../Versions/A/Headers/SDL_joystick.h         | 183 +++++++++++-
 .../Versions/A/Headers/SDL_keyboard.h         |   3 +-
 .../Versions/A/Headers/SDL_keycode.h          |   2 +
 .../Versions/A/Headers/SDL_log.h              |   1 -
 .../Versions/A/Headers/SDL_main.h             |  24 +-
 .../Versions/A/Headers/SDL_mouse.h            |  65 ++++
 .../Versions/A/Headers/SDL_mutex.h            |   6 +-
 .../Versions/A/Headers/SDL_pen.h              |  95 +++++-
 .../Versions/A/Headers/SDL_pixels.h           |   4 +-
 .../Versions/A/Headers/SDL_platform_defines.h |  14 +-
 .../Versions/A/Headers/SDL_power.h            |   4 +-
 .../Versions/A/Headers/SDL_properties.h       |  27 +-
 .../Versions/A/Headers/SDL_rect.h             |  15 +-
 .../Versions/A/Headers/SDL_render.h           | 259 ++++++++++------
 .../Versions/A/Headers/SDL_scancode.h         |   2 +-
 .../Versions/A/Headers/SDL_sensor.h           |   3 +-
 .../Versions/A/Headers/SDL_stdinc.h           |  67 +++--
 .../Versions/A/Headers/SDL_surface.h          | 279 +++++++++++++++---
 .../Versions/A/Headers/SDL_thread.h           |   3 +-
 .../Versions/A/Headers/SDL_timer.h            |   2 +-
 .../Versions/A/Headers/SDL_tray.h             |  19 --
 .../Versions/A/Headers/SDL_version.h          |   2 +-
 .../Versions/A/Headers/SDL_video.h            |  61 +++-
 42 files changed, 1952 insertions(+), 419 deletions(-)
 create mode 100644 Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_dlopennote.h

diff --git a/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL.h b/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL.h
index ebfcbd11a..fb32c9516 100644
--- a/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL.h
+++ b/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL.h
@@ -20,7 +20,7 @@
 */
 
 /**
- * Main include header for the SDL library, version 3.3.0
+ * Main include header for the SDL library, version 3.3.3
  *
  * It is almost always best to include just this one header instead of
  * picking out individual headers included here. There are exceptions to
@@ -42,6 +42,7 @@
 #include <SDL3/SDL_clipboard.h>
 #include <SDL3/SDL_cpuinfo.h>
 #include <SDL3/SDL_dialog.h>
+#include <SDL3/SDL_dlopennote.h>
 #include <SDL3/SDL_endian.h>
 #include <SDL3/SDL_error.h>
 #include <SDL3/SDL_events.h>
diff --git a/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_assert.h b/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_assert.h
index ef5f85d05..f0c4637b9 100644
--- a/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_assert.h
+++ b/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_assert.h
@@ -126,20 +126,17 @@ extern "C" {
  */
 #define SDL_TriggerBreakpoint() TriggerABreakpointInAPlatformSpecificManner
 
-#elif defined(_MSC_VER) && _MSC_VER >= 1310
+#elif defined(__MINGW32__) || (defined(_MSC_VER) && _MSC_VER >= 1310)
     /* Don't include intrin.h here because it contains C++ code */
     extern void __cdecl __debugbreak(void);
     #define SDL_TriggerBreakpoint() __debugbreak()
 #elif defined(_MSC_VER) && defined(_M_IX86)
     #define SDL_TriggerBreakpoint() { _asm { int 0x03 }  }
-#elif defined(ANDROID) || defined(__SYMBIAN32__)
-    #include <assert.h>
-    #define SDL_TriggerBreakpoint() assert(0)
 #elif SDL_HAS_BUILTIN(__builtin_debugtrap)
     #define SDL_TriggerBreakpoint() __builtin_debugtrap()
 #elif SDL_HAS_BUILTIN(__builtin_trap)
     #define SDL_TriggerBreakpoint() __builtin_trap()
-#elif (defined(__GNUC__) || defined(__clang__)) && (defined(__i386__) || defined(__x86_64__))
+#elif (defined(__GNUC__) || defined(__clang__) || defined(__TINYC__)) && (defined(__i386__) || defined(__x86_64__))
     #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "int $3\n\t" )
 #elif (defined(__GNUC__) || defined(__clang__)) && defined(__riscv)
     #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "ebreak\n\t" )
@@ -179,12 +176,48 @@ extern "C" {
 #   define SDL_FUNCTION "???"
 #endif
 
+#ifdef SDL_WIKI_DOCUMENTATION_SECTION
+
 /**
  * A macro that reports the current file being compiled.
  *
+ * This macro is only defined if it isn't already defined, so to override it
+ * (perhaps with something that doesn't provide path information at all, so
+ * build machine information doesn't leak into public binaries), apps can
+ * define this macro before including SDL.h or SDL_assert.h.
+ *
  * \since This macro is available since SDL 3.2.0.
  */
+#define SDL_FILE    __FILE_NAME__
+
+#elif !defined(SDL_FILE)
+#ifdef __FILE_NAME__
+#define SDL_FILE    __FILE_NAME__
+#else
 #define SDL_FILE    __FILE__
+#endif
+#endif
+
+#ifdef SDL_WIKI_DOCUMENTATION_SECTION
+
+/**
+ * A macro that reports the current file being compiled, for use in
+ * assertions.
+ *
+ * This macro is only defined if it isn't already defined, so to override it
+ * (perhaps with something that doesn't provide path information at all, so
+ * build machine information doesn't leak into public binaries), apps can
+ * define this macro before including SDL_assert.h. For example, defining this
+ * to `""` will make sure no source path information is included in asserts.
+ *
+ * \since This macro is available since SDL 3.4.0.
+ */
+#define SDL_ASSERT_FILE SDL_FILE
+
+#elif !defined(SDL_ASSERT_FILE)
+#define SDL_ASSERT_FILE SDL_FILE
+#endif
+
 
 /**
  * A macro that reports the current line number of the file being compiled.
@@ -362,8 +395,8 @@ extern SDL_DECLSPEC SDL_AssertState SDLCALL SDL_ReportAssertion(SDL_AssertData *
 #define SDL_enabled_assert(condition) \
     do { \
         while ( !(condition) ) { \
-            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); \
+            static struct SDL_AssertData sdl_assert_data = { false, 0, #condition, NULL, 0, NULL, NULL }; \
+            const SDL_AssertState sdl_assert_state = SDL_ReportAssertion(&sdl_assert_data, SDL_FUNCTION, SDL_ASSERT_FILE, SDL_LINE); \
             if (sdl_assert_state == SDL_ASSERTION_RETRY) { \
                 continue; /* go again. */ \
             } else if (sdl_assert_state == SDL_ASSERTION_BREAK) { \
diff --git a/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_atomic.h b/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_atomic.h
index 78b5e0fa5..bfcf81ee0 100644
--- a/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_atomic.h
+++ b/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_atomic.h
@@ -596,6 +596,24 @@ extern SDL_DECLSPEC Uint32 SDLCALL SDL_SetAtomicU32(SDL_AtomicU32 *a, Uint32 v);
  */
 extern SDL_DECLSPEC Uint32 SDLCALL SDL_GetAtomicU32(SDL_AtomicU32 *a);
 
+/**
+ * Add to an atomic variable.
+ *
+ * This function also acts as a full memory barrier.
+ *
+ * ***Note: If you don't know what this function is for, you shouldn't use
+ * it!***
+ *
+ * \param a a pointer to an SDL_AtomicU32 variable to be modified.
+ * \param v the desired value to add or subtract.
+ * \returns the previous value of the atomic variable.
+ *
+ * \threadsafety It is safe to call this function from any thread.
+ *
+ * \since This function is available since SDL 3.4.0.
+ */
+extern SDL_DECLSPEC Uint32 SDLCALL SDL_AddAtomicU32(SDL_AtomicU32 *a, int v);
+
 /**
  * Set a pointer to a new value if it is currently an old value.
  *
diff --git a/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_audio.h b/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_audio.h
index be5eb32e9..104992bcf 100644
--- a/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_audio.h
+++ b/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_audio.h
@@ -1336,7 +1336,7 @@ extern SDL_DECLSPEC int * SDLCALL SDL_GetAudioStreamOutputChannelMap(SDL_AudioSt
  * \threadsafety It is safe to call this function from any thread, as it holds
  *               a stream-specific mutex while running. Don't change the
  *               stream's format to have a different number of channels from a
- *               a different thread at the same time, though!
+ *               different thread at the same time, though!
  *
  * \since This function is available since SDL 3.2.0.
  *
diff --git a/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_begin_code.h b/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_begin_code.h
index e306a9065..675cd7f09 100644
--- a/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_begin_code.h
+++ b/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_begin_code.h
@@ -298,7 +298,7 @@
  * // make sure this one field in a struct is aligned to 16 bytes for SIMD access.
  * typedef struct {
  *    SomeStuff stuff;
- *    float position[4] SDL_ALIGNED(16);
+ *    float SDL_ALIGNED(16) position[4];
  *    SomeOtherStuff other_stuff;
  * } MyStruct;
  *
@@ -431,7 +431,7 @@
 #endif /* SDL_INLINE not defined */
 
 #ifndef SDL_FORCE_INLINE
-#ifdef _MSC_VER
+#if defined(_MSC_VER) && (_MSC_VER >= 1200)
 #define SDL_FORCE_INLINE __forceinline
 #elif ( (defined(__GNUC__) && (__GNUC__ >= 4)) || defined(__clang__) )
 #define SDL_FORCE_INLINE __attribute__((always_inline)) static __inline__
diff --git a/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_camera.h b/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_camera.h
index 5f3911fdf..59ce73fe8 100644
--- a/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_camera.h
+++ b/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_camera.h
@@ -119,7 +119,7 @@ typedef struct SDL_CameraSpec
     int width;                  /**< Frame width */
     int height;                 /**< Frame height */
     int framerate_numerator;     /**< Frame rate numerator ((num / denom) == FPS, (denom / num) == duration in seconds) */
-    int framerate_denominator;   /**< Frame rate demoninator ((num / denom) == FPS, (denom / num) == duration in seconds) */
+    int framerate_denominator;   /**< Frame rate denominator ((num / denom) == FPS, (denom / num) == duration in seconds) */
 } SDL_CameraSpec;
 
 /**
@@ -136,6 +136,20 @@ typedef enum SDL_CameraPosition
     SDL_CAMERA_POSITION_BACK_FACING
 } SDL_CameraPosition;
 
+/**
+ * The current state of a request for camera access.
+ *
+ * \since This enum is available since SDL 3.4.0.
+ *
+ * \sa SDL_GetCameraPermissionState
+ */
+typedef enum SDL_CameraPermissionState
+{
+    SDL_CAMERA_PERMISSION_STATE_DENIED = -1,
+    SDL_CAMERA_PERMISSION_STATE_PENDING,
+    SDL_CAMERA_PERMISSION_STATE_APPROVED,
+} SDL_CameraPermissionState;
+
 
 /**
  * Use this function to get the number of built-in camera drivers.
@@ -346,8 +360,9 @@ extern SDL_DECLSPEC SDL_Camera * SDLCALL SDL_OpenCamera(SDL_CameraID instance_id
  * on others the approval might be implicit and not alert the user at all.
  *
  * This function can be used to check the status of that approval. It will
- * return 0 if still waiting for user response, 1 if the camera is approved
- * for use, and -1 if the user denied access.
+ * return SDL_CAMERA_PERMISSION_STATE_PENDING if waiting for user response,
+ * SDL_CAMERA_PERMISSION_STATE_APPROVED if the camera is approved for use, and
+ * SDL_CAMERA_PERMISSION_STATE_DENIED if the user denied access.
  *
  * Instead of polling with this function, you can wait for a
  * SDL_EVENT_CAMERA_DEVICE_APPROVED (or SDL_EVENT_CAMERA_DEVICE_DENIED) event
@@ -358,8 +373,9 @@ extern SDL_DECLSPEC SDL_Camera * SDLCALL SDL_OpenCamera(SDL_CameraID instance_id
  * SDL_CloseCamera() to dispose of it.
  *
  * \param camera the opened camera device to query.
- * \returns -1 if user denied access to the camera, 1 if user approved access,
- *          0 if no decision has been made yet.
+ * \returns an SDL_CameraPermissionState value indicating if access is
+ *          granted, or `SDL_CAMERA_PERMISSION_STATE_PENDING` if the decision
+ *          is still pending.
  *
  * \threadsafety It is safe to call this function from any thread.
  *
@@ -368,7 +384,7 @@ extern SDL_DECLSPEC SDL_Camera * SDLCALL SDL_OpenCamera(SDL_CameraID instance_id
  * \sa SDL_OpenCamera
  * \sa SDL_CloseCamera
  */
-extern SDL_DECLSPEC int SDLCALL SDL_GetCameraPermissionState(SDL_Camera *camera);
+extern SDL_DECLSPEC SDL_CameraPermissionState SDLCALL SDL_GetCameraPermissionState(SDL_Camera *camera);
 
 /**
  * Get the instance ID of an opened camera.
diff --git a/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_clipboard.h b/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_clipboard.h
index 0d3cbb499..7480eb284 100644
--- a/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_clipboard.h
+++ b/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_clipboard.h
@@ -106,7 +106,7 @@ extern SDL_DECLSPEC bool SDLCALL SDL_SetClipboardText(const char *text);
 /**
  * Get UTF-8 text from the clipboard.
  *
- * This functions returns an empty string if there was not enough memory left
+ * This function returns an empty string if there is not enough memory left
  * for a copy of the clipboard's content.
  *
  * \returns the clipboard text on success or an empty string on failure; call
@@ -155,7 +155,7 @@ extern SDL_DECLSPEC bool SDLCALL SDL_SetPrimarySelectionText(const char *text);
 /**
  * Get UTF-8 text from the primary selection.
  *
- * This functions returns an empty string if there was not enough memory left
+ * This function returns an empty string if there is 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
@@ -194,15 +194,14 @@ extern SDL_DECLSPEC bool SDLCALL SDL_HasPrimarySelectionText(void);
  * clipboard is cleared or new data is set. The clipboard is automatically
  * cleared in SDL_Quit().
  *
- * \param userdata a pointer to provided user data.
+ * \param userdata a pointer to the provided user data.
  * \param mime_type the requested mime-type.
  * \param size a pointer filled in with the length of the returned data.
  * \returns a pointer to the data for the provided mime-type. Returning NULL
- *          or setting length to 0 will cause no data to be sent to the
- *          "receiver". It is up to the receiver to handle this. Essentially
- *          returning no data is more or less undefined behavior and may cause
- *          breakage in receiving applications. The returned data will not be
- *          freed so it needs to be retained and dealt with internally.
+ *          or setting the length to 0 will cause zero length data to be sent
+ *          to the "receiver", which should be able to handle this. The
+ *          returned data will not be freed, so it needs to be retained and
+ *          dealt with internally.
  *
  * \since This function is available since SDL 3.2.0.
  *
@@ -211,10 +210,10 @@ extern SDL_DECLSPEC bool SDLCALL SDL_HasPrimarySelectionText(void);
 typedef const void *(SDLCALL *SDL_ClipboardDataCallback)(void *userdata, const char *mime_type, size_t *size);
 
 /**
- * Callback function that will be called when the clipboard is cleared, or new
- * data is set.
+ * Callback function that will be called when the clipboard is cleared, or
+ * when new data is set.
  *
- * \param userdata a pointer to provided user data.
+ * \param userdata a pointer to the provided user data.
  *
  * \since This function is available since SDL 3.2.0.
  *
@@ -231,7 +230,7 @@ typedef void (SDLCALL *SDL_ClipboardCleanupCallback)(void *userdata);
  * respond with the data for the requested mime-type.
  *
  * The size of text data does not include any terminator, and the text does
- * not need to be null terminated (e.g. you can directly copy a portion of a
+ * not need to be null-terminated (e.g., you can directly copy a portion of a
  * document).
  *
  * \param callback a function pointer to the function that provides the
@@ -239,7 +238,8 @@ typedef void (SDLCALL *SDL_ClipboardCleanupCallback)(void *userdata);
  * \param cleanup a function pointer to the function that cleans up the
  *                clipboard data.
  * \param userdata an opaque pointer that will be forwarded to the callbacks.
- * \param mime_types a list of mime-types that are being offered.
+ * \param mime_types a list of mime-types that are being offered. SDL copies
+ *                   the given list.
  * \param num_mime_types the number of mime-types in the mime_types list.
  * \returns true on success or false on failure; call SDL_GetError() for more
  *          information.
@@ -269,10 +269,10 @@ extern SDL_DECLSPEC bool SDLCALL SDL_SetClipboardData(SDL_ClipboardDataCallback
 extern SDL_DECLSPEC bool SDLCALL SDL_ClearClipboardData(void);
 
 /**
- * Get the data from clipboard for a given mime type.
+ * Get the data from the clipboard for a given mime type.
  *
  * The size of text data does not include the terminator, but the text is
- * guaranteed to be null terminated.
+ * guaranteed to be null-terminated.
  *
  * \param mime_type the mime type to read from the clipboard.
  * \param size a pointer filled in with the length of the returned data.
@@ -292,8 +292,8 @@ extern SDL_DECLSPEC void * SDLCALL SDL_GetClipboardData(const char *mime_type, s
 /**
  * Query whether there is data in the clipboard for the provided mime type.
  *
- * \param mime_type the mime type to check for data for.
- * \returns true if there exists data in clipboard for the provided mime type,
+ * \param mime_type the mime type to check for data.
+ * \returns true if data exists in the clipboard for the provided mime type,
  *          false if it does not.
  *
  * \threadsafety This function should only be called on the main thread.
@@ -310,7 +310,7 @@ extern SDL_DECLSPEC bool SDLCALL SDL_HasClipboardData(const char *mime_type);
  *
  * \param num_mime_types a pointer filled with the number of mime types, may
  *                       be NULL.
- * \returns a null terminated array of strings with mime types, or NULL on
+ * \returns a null-terminated array of strings with mime types, or NULL on
  *          failure; call SDL_GetError() for more information. This should be
  *          freed with SDL_free() when it is no longer needed.
  *
diff --git a/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_cpuinfo.h b/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_cpuinfo.h
index 1745bd934..b1e125b55 100644
--- a/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_cpuinfo.h
+++ b/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_cpuinfo.h
@@ -344,6 +344,27 @@ extern SDL_DECLSPEC int SDLCALL SDL_GetSystemRAM(void);
  */
 extern SDL_DECLSPEC size_t SDLCALL SDL_GetSIMDAlignment(void);
 
+/**
+ * Report the size of a page of memory.
+ *
+ * Different platforms might have different memory page sizes. In current
+ * times, 4 kilobytes is not unusual, but newer systems are moving to larger
+ * page sizes, and esoteric platforms might have any unexpected size.
+ *
+ * Note that this function can return 0, which means SDL can't determine the
+ * page size on this platform. It will _not_ set an error string to be
+ * retrieved with SDL_GetError() in this case! In this case, defaulting to
+ * 4096 is often a reasonable option.
+ *
+ * \returns the size of a single page of memory, in bytes, or 0 if SDL can't
+ *          determine this information.
+ *
+ * \threadsafety It is safe to call this function from any thread.
+ *
+ * \since This function is available since SDL 3.4.0.
+ */
+extern SDL_DECLSPEC int SDLCALL SDL_GetSystemPageSize(void);
+
 /* Ends C function definitions when using C++ */
 #ifdef __cplusplus
 }
diff --git a/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_dialog.h b/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_dialog.h
index ddb9e24d5..395b7e8c9 100644
--- a/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_dialog.h
+++ b/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_dialog.h
@@ -139,10 +139,12 @@ typedef void (SDLCALL *SDL_DialogFileCallback)(void *userdata, const char * cons
  *                 it will be invoked.
  * \param window the window that the dialog should be modal for, may be NULL.
  *               Not all platforms support this option.
- * \param filters a list of filters, may be NULL. Not all platforms support
- *                this option, and platforms that do support it may allow the
- *                user to ignore the filters. If non-NULL, it must remain
- *                valid at least until the callback is invoked.
+ * \param filters a list of filters, may be NULL. See the
+ *                [`SDL_DialogFileFilter`](SDL_DialogFileFilter#code-examples)
+ *                documentation for examples]. Not all platforms support this
+ *                option, and platforms that do support it may allow the user
+ *                to ignore the filters. If non-NULL, it must remain valid at
+ *                least until the callback is invoked.
  * \param nfilters the number of filters. Ignored if filters is NULL.
  * \param default_location the default folder or file to start the dialog at,
  *                         may be NULL. Not all platforms support this option.
diff --git a/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_dlopennote.h b/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_dlopennote.h
new file mode 100644
index 000000000..da145eed5
--- /dev/null
+++ b/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_dlopennote.h
@@ -0,0 +1,227 @@
+/*
+  Simple DirectMedia Layer
+  Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
+
+  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.
+*/
+
+/* WIKI CATEGORY: DlopenNotes */
+
+/**
+ * # CategoryDlopenNotes
+ *
+ * This header allows you to annotate your code so external tools know about
+ * dynamic shared library dependencies.
+ *
+ * If you determine that your toolchain doesn't support dlopen notes, you can
+ * disable this feature by defining `SDL_DISABLE_DLOPEN_NOTES`. You can use
+ * this CMake snippet to check for support:
+ *
+ * ```cmake
+ *  set(CHECK_ELF_DLNOTES_SRC [==[
+ *  #ifndef __ELF__
+ *    ELF DL notes is only supported on ELF platforms
+ *  #endif
+ *  __attribute__ ((used,aligned(4),section(".note.dlopen"))) static const struct {
+ *    struct { int a; int b; int c; } hdr; char name[4]; __attribute__((aligned(4))) char json[24];
+ *  } dlnote = { { 4, 0x407c0c0aU, 16 }, "FDO", "[\\"a\\":{\\"a\\":\\"1\\",\\"b\\":\\"2\\"}]" };
+ *  int main(int argc, char *argv[]) {
+ *    return argc + dlnote.hdr.a;
+ *  }
+ *  ]==])
+ *  check_c_source_compiles("${CHECK_ELF_DLNOTES_SRC}" COMPILER_SUPPORTS_ELFNOTES)
+ *  if(NOT COMPILER_SUPPORTS_ELFNOTES)
+ *    set(SDL_DISABLE_DLOPEN_NOTES TRUE)
+ *  endif()
+ * ```
+ */
+
+#ifndef SDL_dlopennote_h
+#define SDL_dlopennote_h
+
+/**
+ * Use this macro with SDL_ELF_NOTE_DLOPEN() to note that a dynamic shared
+ * library dependency is optional.
+ *
+ * Optional functionality uses the dependency, the binary will work and the
+ * dependency is only needed for full-featured installations.
+ *
+ * \since This macro is available since SDL 3.4.0.
+ *
+ * \sa SDL_ELF_NOTE_DLOPEN
+ * \sa SDL_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED
+ * \sa SDL_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED
+ */
+#define SDL_ELF_NOTE_DLOPEN_PRIORITY_SUGGESTED   "suggested"
+
+/**
+ * Use this macro with SDL_ELF_NOTE_DLOPEN() to note that a dynamic shared
+ * library dependency is recommended.
+ *
+ * Important functionality needs the dependency, the binary will work but in
+ * most cases the dependency should be provided.
+ *
+ * \since This macro is available since SDL 3.4.0.
+ *
+ * \sa SDL_ELF_NOTE_DLOPEN
+ * \sa SDL_ELF_NOTE_DLOPEN_PRIORITY_SUGGESTED
+ * \sa SDL_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED
+ */
+#define SDL_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED "recommended"
+
+/**
+ * Use this macro with SDL_ELF_NOTE_DLOPEN() to note that a dynamic shared
+ * library dependency is required.
+ *
+ * Core functionality needs the dependency, the binary will not work if it
+ * cannot be found.
+ *
+ * \since This macro is available since SDL 3.4.0.
+ *
+ * \sa SDL_ELF_NOTE_DLOPEN
+ * \sa SDL_ELF_NOTE_DLOPEN_PRIORITY_SUGGESTED
+ * \sa SDL_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED
+ */
+#define SDL_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED    "required"
+
+
+#if !defined(SDL_PLATFORM_UNIX) || defined(SDL_PLATFORM_ANDROID)
+/* The dlopen note functionality isn't used on this platform */
+#ifndef SDL_DISABLE_DLOPEN_NOTES
+#define SDL_DISABLE_DLOPEN_NOTES
+#endif
+#elif defined(__GNUC__) && (__GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 1))
+/* gcc < 3.1 too old */
+#ifndef SDL_DISABLE_DLOPEN_NOTES
+#define SDL_DISABLE_DLOPEN_NOTES
+#endif
+#endif /* SDL_PLATFORM_UNIX || SDL_PLATFORM_ANDROID */
+
+#if defined(__ELF__) && !defined(SDL_DISABLE_DLOPEN_NOTES)
+
+#include <SDL3/SDL_stdinc.h>
+
+#define SDL_ELF_NOTE_DLOPEN_VENDOR "FDO"
+#define SDL_ELF_NOTE_DLOPEN_TYPE 0x407c0c0aU
+
+#define SDL_ELF_NOTE_INTERNAL2(json, variable_name)                 \
+    __attribute__((aligned(4), used, section(".note.dlopen")))      \
+    static const struct {                                           \
+        struct {                                                    \
+            Uint32 n_namesz;                                        \
+            Uint32 n_descsz;                                        \
+            Uint32 n_type;                                          \
+        } nhdr;                                                     \
+        char name[4];                                               \
+        __attribute__((aligned(4))) char dlopen_json[sizeof(json)]; \
+    } variable_name = {                                             \
+        {                                                           \
+             sizeof(SDL_ELF_NOTE_DLOPEN_VENDOR),                    \
+             sizeof(json),                                          \
+             SDL_ELF_NOTE_DLOPEN_TYPE                               \
+        },                                                          \
+        SDL_ELF_NOTE_DLOPEN_VENDOR,                                 \
+        json                                                        \
+    }
+
+#define SDL_ELF_NOTE_INTERNAL(json, variable_name) \
+    SDL_ELF_NOTE_INTERNAL2(json, variable_name)
+
+#define SDL_SONAME_ARRAY1(N1) "[\"" N1 "\"]"
+#define SDL_SONAME_ARRAY2(N1,N2) "[\"" N1 "\",\"" N2 "\"]"
+#define SDL_SONAME_ARRAY3(N1,N2,N3) "[\"" N1 "\",\"" N2 "\",\"" N3 "\"]"
+#define SDL_SONAME_ARRAY4(N1,N2,N3,N4) "[\"" N1 "\",\"" N2 "\",\"" N3 "\",\"" N4 "\"]"
+#define SDL_SONAME_ARRAY5(N1,N2,N3,N4,N5) "[\"" N1 "\",\"" N2 "\",\"" N3 "\",\"" N4 "\",\"" N5 "\"]"
+#define SDL_SONAME_ARRAY6(N1,N2,N3,N4,N5,N6) "[\"" N1 "\",\"" N2 "\",\"" N3 "\",\"" N4 "\",\"" N5 "\",\"" N6 "\"]"
+#define SDL_SONAME_ARRAY7(N1,N2,N3,N4,N5,N6,N7) "[\"" N1 "\",\"" N2 "\",\"" N3 "\",\"" N4 "\",\"" N5 "\",\"" N6 "\",\"" N7 "\"]"
+#define SDL_SONAME_ARRAY8(N1,N2,N3,N4,N5,N6,N7,N8) "[\"" N1 "\",\"" N2 "\",\"" N3 "\",\"" N4 "\",\"" N5 "\",\"" N6 "\",\"" N7 "\",\"" N8 "\"]"
+#define SDL_SONAME_ARRAY_GET(N1,N2,N3,N4,N5,N6,N7,N8,NAME,...) NAME
+#define SDL_SONAME_ARRAY(...) \
+    SDL_SONAME_ARRAY_GET(__VA_ARGS__, \
+         SDL_SONAME_ARRAY8, \
+         SDL_SONAME_ARRAY7, \
+         SDL_SONAME_ARRAY6, \
+         SDL_SONAME_ARRAY5, \
+         SDL_SONAME_ARRAY4, \
+         SDL_SONAME_ARRAY3, \
+         SDL_SONAME_ARRAY2, \
+         SDL_SONAME_ARRAY1 \
+    )(__VA_ARGS__)
+
+/* Create "unique" variable name using __LINE__,
+ * so creating elf notes on the same line is not supported
+ */
+#define SDL_ELF_NOTE_JOIN2(A,B) A##B
+#define SDL_ELF_NOTE_JOIN(A,B) SDL_ELF_NOTE_JOIN2(A,B)
+#define SDL_ELF_NOTE_UNIQUE_NAME SDL_ELF_NOTE_JOIN(s_SDL_dlopen_note_, __LINE__)
+
+/**
+ * Note that your application has dynamic shared library dependencies.
+ *
+ * You can do this by adding the following to the global scope:
+ *
+ * ```c
+ * SDL_ELF_NOTE_DLOPEN(
+ *     "png",
+ *     "Support for loading PNG images using libpng (required for APNG)",
+ *     SDL_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED,
+ *     "libpng12.so.0"
+ * );
+ * ```
+ *
+ * Or if you support multiple versions of a library, you can list them:
+ *
+ * ```c
+ * // Our app supports SDL1, SDL2, and SDL3 by dynamically loading them
+ * SDL_ELF_NOTE_DLOPEN(
+ *     "SDL",
+ *     "Create windows through SDL video backend",
+ *     SDL_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED
+ *     "libSDL-1.2.so.0", "libSDL2-2.0.so.0", "libSDL3.so.0"
+ * );
+ * ```
+ *
+ * \since This macro is available since SDL 3.4.0.
+ *
+ * \sa SDL_ELF_NOTE_DLOPEN_PRIORITY_SUGGESTED
+ * \sa SDL_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED
+ * \sa SDL_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED
+ */
+#define SDL_ELF_NOTE_DLOPEN(feature, description, priority, ...) \
+    SDL_ELF_NOTE_INTERNAL(                                       \
+        "[{\"feature\":\"" feature                               \
+        "\",\"description\":\"" description                      \
+        "\",\"priority\":\"" priority                            \
+        "\",\"soname\":" SDL_SONAME_ARRAY(__VA_ARGS__) "}]",     \
+        SDL_ELF_NOTE_UNIQUE_NAME)
+
+#elif defined(__GNUC__) && __GNUC__ < 3
+
+#define SDL_ELF_NOTE_DLOPEN(args...)
+
+#elif defined(_MSC_VER) && _MSC_VER < 1400
+
+/* Variadic macros are not supported */
+#define SDL_ELF_NOTE_DLOPEN
+
+#else
+
+#define SDL_ELF_NOTE_DLOPEN(...)
+
+#endif
+
+#endif /* SDL_dlopennote_h */
diff --git a/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_endian.h b/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_endian.h
index 2a9b8a34d..6b1b4cbcf 100644
--- a/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_endian.h
+++ b/Xcode/macOS/SDL3.framework/Versions/A/Headers/SDL_endian.h
@@ -46,7 +46,7 @@
 #if defined(_MSC_VER) && (_MSC_VER >= 1400)
 /* As of Clang 11, '_m_prefetchw' is conflicting with the winnt.h's version,
    so we define the

(Patch may be truncated, please check the link at the top of this post.)