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.)