diff --git a/Source/ThirdParty/SDL/SDL3/SDL.h b/Source/ThirdParty/SDL/SDL3/SDL.h index ebfcbd11a..587b541a4 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL.h +++ b/Source/ThirdParty/SDL/SDL3/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.2.20 * * It is almost always best to include just this one header instead of * picking out individual headers included here. There are exceptions to diff --git a/Source/ThirdParty/SDL/SDL3/SDL_assert.h b/Source/ThirdParty/SDL/SDL3/SDL_assert.h index ef5f85d05..053af13b4 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_assert.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_assert.h @@ -132,7 +132,7 @@ extern "C" { #define SDL_TriggerBreakpoint() __debugbreak() #elif defined(_MSC_VER) && defined(_M_IX86) #define SDL_TriggerBreakpoint() { _asm { int 0x03 } } -#elif defined(ANDROID) || defined(__SYMBIAN32__) +#elif defined(ANDROID) #include #define SDL_TriggerBreakpoint() assert(0) #elif SDL_HAS_BUILTIN(__builtin_debugtrap) @@ -362,7 +362,7 @@ 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 }; \ + 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_FILE, SDL_LINE); \ if (sdl_assert_state == SDL_ASSERTION_RETRY) { \ continue; /* go again. */ \ diff --git a/Source/ThirdParty/SDL/SDL3/SDL_audio.h b/Source/ThirdParty/SDL/SDL3/SDL_audio.h index 862043d4b..51af40e95 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_audio.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_audio.h @@ -942,7 +942,10 @@ extern SDL_DECLSPEC void SDLCALL SDL_CloseAudioDevice(SDL_AudioDeviceID devid); * Binding a stream to a device will set its output format for playback * devices, and its input format for recording devices, so they match the * device's settings. The caller is welcome to change the other end of the - * stream's format at any time with SDL_SetAudioStreamFormat(). + * stream's format at any time with SDL_SetAudioStreamFormat(). If the other + * end of the stream's format has never been set (the audio stream was created + * with a NULL audio spec), this function will set it to match the device + * end's format. * * \param devid an audio device to bind a stream to. * \param streams an array of audio streams to bind. @@ -1021,7 +1024,7 @@ extern SDL_DECLSPEC void SDLCALL SDL_UnbindAudioStream(SDL_AudioStream *stream); /** * Query an audio stream for its currently-bound device. * - * This reports the audio device that an audio stream is currently bound to. + * This reports the logical audio device that an audio stream is currently bound to. * * If not bound, or invalid, this returns zero, which is not a valid device * ID. @@ -1149,14 +1152,14 @@ extern SDL_DECLSPEC float SDLCALL SDL_GetAudioStreamFrequencyRatio(SDL_AudioStre * * The frequency ratio is used to adjust the rate at which input data is * consumed. Changing this effectively modifies the speed and pitch of the - * audio. A value greater than 1.0f will play the audio faster, and at a - * higher pitch. A value less than 1.0f will play the audio slower, and at a - * lower pitch. 1.0f means play at normal speed. + * audio. A value greater than 1.0 will play the audio faster, and at a higher + * pitch. A value less than 1.0 will play the audio slower, and at a lower + * pitch. * * This is applied during SDL_GetAudioStreamData, and can be continuously * changed to create various effects. * - * \param stream the stream on which the frequency ratio is being changed. + * \param stream the stream the frequency ratio is being changed. * \param ratio the frequency ratio. 1.0 is normal speed. Must be between 0.01 * and 100. * \returns true on success or false on failure; call SDL_GetError() for more @@ -1332,7 +1335,7 @@ extern SDL_DECLSPEC bool SDLCALL SDL_SetAudioStreamInputChannelMap(SDL_AudioStre * Channel maps are optional; most things do not need them, instead passing * data in the [order that SDL expects](CategoryAudio#channel-layouts). * - * The output channel map reorders data that is leaving a stream via + * The output channel map reorders data that leaving a stream via * SDL_GetAudioStreamData. * * Each item in the array represents an input channel, and its value is the @@ -1414,136 +1417,6 @@ extern SDL_DECLSPEC bool SDLCALL SDL_SetAudioStreamOutputChannelMap(SDL_AudioStr */ extern SDL_DECLSPEC bool SDLCALL SDL_PutAudioStreamData(SDL_AudioStream *stream, const void *buf, int len); -/** - * A callback that fires for completed SDL_PutAudioStreamDataNoCopy() data. - * - * When using SDL_PutAudioStreamDataNoCopy() to provide data to an - * SDL_AudioStream, it's not safe to dispose of the data until the stream has - * completely consumed it. Often times it's difficult to know exactly when - * this has happened. - * - * This callback fires once when the stream no longer needs the buffer, - * allowing the app to easily free or reuse it. - * - * \param userdata an opaque pointer provided by the app for their personal - * use. - * \param buf the pointer provided to SDL_PutAudioStreamDataNoCopy(). - * \param buflen the size of buffer, in bytes, provided to - * SDL_PutAudioStreamDataNoCopy(). - * - * \threadsafety This callbacks may run from any thread, so if you need to - * protect shared data, you should use SDL_LockAudioStream to - * serialize access; this lock will be held before your callback - * is called, so your callback does not need to manage the lock - * explicitly. - * - * \since This datatype is available since SDL 3.4.0. - * - * \sa SDL_SetAudioStreamGetCallback - * \sa SDL_SetAudioStreamPutCallback - */ -typedef void (SDLCALL *SDL_AudioStreamDataCompleteCallback)(void *userdata, const void *buf, int buflen); - -/** - * Add external data to an audio stream without copying it. - * - * Unlike SDL_PutAudioStreamData(), this function does not make a copy of the - * provided data, instead storing the provided pointer. This means that the - * put operation does not need to allocate and copy the data, but the original - * data must remain available until the stream is done with it, either by - * being read from the stream in its entirety, or a call to - * SDL_ClearAudioStream() or SDL_DestroyAudioStream(). - * - * The data must match the format/channels/samplerate specified in the latest - * call to SDL_SetAudioStreamFormat, or the format specified when creating the - * stream if it hasn't been changed. - * - * An optional callback may be provided, which is called when the stream no - * longer needs the data. Once this callback fires, the stream will not access - * the data again. This callback will fire for any reason the data is no - * longer needed, including clearing or destroying the stream. - * - * Note that there is still an allocation to store tracking information, so - * this function is more efficient for larger blocks of data. If you're - * planning to put a few samples at a time, it will be more efficient to use - * SDL_PutAudioStreamData(), which allocates and buffers in blocks. - * - * \param stream the stream the audio data is being added to. - * \param buf a pointer to the audio data to add. - * \param len the number of bytes to add to the stream. - * \param callback the callback function to call when the data is no longer - * needed by the stream. May be NULL. - * \param userdata an opaque pointer provided to the callback for its own - * personal use. - * \returns true on success or false on failure; call SDL_GetError() for more - * information. - * - * \threadsafety It is safe to call this function from any thread, but if the - * stream has a callback set, the caller might need to manage - * extra locking. - * - * \since This function is available since SDL 3.4.0. - * - * \sa SDL_ClearAudioStream - * \sa SDL_FlushAudioStream - * \sa SDL_GetAudioStreamData - * \sa SDL_GetAudioStreamQueued - */ -extern SDL_DECLSPEC bool SDLCALL SDL_PutAudioStreamDataNoCopy(SDL_AudioStream *stream, const void *buf, int len, SDL_AudioStreamDataCompleteCallback callback, void *userdata); - -/** - * Add data to the stream with each channel in a separate array. - * - * This data must match the format/channels/samplerate specified in the latest - * call to SDL_SetAudioStreamFormat, or the format specified when creating the - * stream if it hasn't been changed. - * - * The data will be interleaved and queued. Note that SDL_AudioStream only - * operates on interleaved data, so this is simply a convenience function for - * easily queueing data from sources that provide separate arrays. There is no - * equivalent function to retrieve planar data. - * - * The arrays in `channel_buffers` are ordered as they are to be interleaved; - * the first array will be the first sample in the interleaved data. Any - * individual array may be NULL; in this case, silence will be interleaved for - * that channel. - * - * `num_channels` specifies how many arrays are in `channel_buffers`. This can - * be used as a safety to prevent overflow, in case the stream format has - * changed elsewhere. If more channels are specified than the current input - * spec, they are ignored. If less channels are specified, the missing arrays - * are treated as if they are NULL (silence is written to those channels). If - * the count is -1, SDL will assume the array count matches the current input - * spec. - * - * Note that `num_samples` is the number of _samples per array_. This can also - * be thought of as the number of _sample frames_ to be queued. A value of 1 - * with stereo arrays will queue two samples to the stream. This is different - * than SDL_PutAudioStreamData, which wants the size of a single array in - * bytes. - * - * \param stream the stream the audio data is being added to. - * \param channel_buffers a pointer to an array of arrays, one array per - * channel. - * \param num_channels the number of arrays in `channel_buffers` or -1. - * \param num_samples the number of _samples_ per array to write to the - * stream. - * \returns true on success or false on failure; call SDL_GetError() for more - * information. - * - * \threadsafety It is safe to call this function from any thread, but if the - * stream has a callback set, the caller might need to manage - * extra locking. - * - * \since This function is available since SDL 3.4.0. - * - * \sa SDL_ClearAudioStream - * \sa SDL_FlushAudioStream - * \sa SDL_GetAudioStreamData - * \sa SDL_GetAudioStreamQueued - */ -extern SDL_DECLSPEC bool SDLCALL SDL_PutAudioStreamPlanarData(SDL_AudioStream *stream, const void * const *channel_buffers, int num_channels, int num_samples); - /** * Get converted/resampled data from the stream. * @@ -1713,8 +1586,8 @@ extern SDL_DECLSPEC bool SDLCALL SDL_PauseAudioStreamDevice(SDL_AudioStream *str * previously been paused. Once unpaused, any bound audio streams will begin * to progress again, and audio can be generated. * - * SDL_OpenAudioDeviceStream opens audio devices in a paused state, so this - * function call is required for audio playback to begin on such devices. + * Remember, SDL_OpenAudioDeviceStream opens device in a paused state, so this + * function call is required for audio playback to begin on such device. * * \param stream the audio stream associated with the audio device to resume. * \returns true on success or false on failure; call SDL_GetError() for more @@ -1971,7 +1844,7 @@ extern SDL_DECLSPEC void SDLCALL SDL_DestroyAudioStream(SDL_AudioStream *stream) * Also unlike other functions, the audio device begins paused. This is to map * more closely to SDL2-style behavior, since there is no extra step here to * bind a stream to begin audio flowing. The audio device should be resumed - * with SDL_ResumeAudioStreamDevice(). + * with `SDL_ResumeAudioStreamDevice(stream);` * * This function works with both playback and recording devices. * @@ -2017,85 +1890,6 @@ extern SDL_DECLSPEC void SDLCALL SDL_DestroyAudioStream(SDL_AudioStream *stream) */ extern SDL_DECLSPEC SDL_AudioStream * SDLCALL SDL_OpenAudioDeviceStream(SDL_AudioDeviceID devid, const SDL_AudioSpec *spec, SDL_AudioStreamCallback callback, void *userdata); -/** - * A callback that fires around an audio device's processing work. - * - * This callback fires when a logical audio device is about to start accessing - * its bound audio streams, and fires again when it has finished accessing - * them. It covers the range of one "iteration" of the audio device. - * - * It can be useful to use this callback to update state that must apply to - * all bound audio streams atomically: to make sure state changes don't happen - * while half of the streams are already processed for the latest audio - * buffer. - * - * This callback should run as quickly as possible and not block for any - * significant time, as this callback delays submission of data to the audio - * device, which can cause audio playback problems. This callback delays all - * audio processing across a single physical audio device: all its logical - * devices and all bound audio streams. Use it carefully. - * - * \param userdata a pointer provided by the app through - * SDL_SetAudioPostmixCallback, for its own use. - * \param devid the audio device this callback is running for. - * \param start true if this is the start of the iteration, false if the end. - * - * \threadsafety This will run from a background thread owned by SDL. The - * application is responsible for locking resources the callback - * touches that need to be protected. - * - * \since This datatype is available since SDL 3.4.0. - * - * \sa SDL_SetAudioIterationCallbacks - */ -typedef void (SDLCALL *SDL_AudioIterationCallback)(void *userdata, SDL_AudioDeviceID devid, bool start); - -/** - * Set callbacks that fire around a new iteration of audio device processing. - * - * Two callbacks are provided here: one that runs when a device is about to - * process its bound audio streams, and another that runs when the device has - * finished processing them. - * - * These callbacks can run at any time, and from any thread; if you need to - * serialize access to your app's data, you should provide and use a mutex or - * other synchronization device. - * - * Generally these callbacks are used to apply state that applies to multiple - * bound audio streams, with a guarantee that the audio device's thread isn't - * halfway through processing them. Generally a finer-grained lock through - * SDL_LockAudioStream() is more appropriate. - * - * The callbacks are extremely time-sensitive; the callback should do the - * least amount of work possible and return as quickly as it can. The longer - * the callback runs, the higher the risk of audio dropouts or other problems. - * - * This function will block until the audio device is in between iterations, - * so any existing callback that might be running will finish before this - * function sets the new callback and returns. - * - * Physical devices do not accept these callbacks, only logical devices - * created through SDL_OpenAudioDevice() can be. - * - * Setting a NULL callback function disables any previously-set callback. - * Either callback may be NULL, and the same callback is permitted to be used - * for both. - * - * \param devid the ID of an opened audio device. - * \param start a callback function to be called at the start of an iteration. - * Can be NULL. - * \param end a callback function to be called at the end of an iteration. Can - * be NULL. - * \param userdata app-controlled pointer passed to callback. Can be NULL. - * \returns true on success or false on failure; call SDL_GetError() for more - * 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 bool SDLCALL SDL_SetAudioIterationCallbacks(SDL_AudioDeviceID devid, SDL_AudioIterationCallback start, SDL_AudioIterationCallback end, void *userdata); - /** * A callback that fires when data is about to be fed to an audio device. * diff --git a/Source/ThirdParty/SDL/SDL3/SDL_begin_code.h b/Source/ThirdParty/SDL/SDL3/SDL_begin_code.h index e306a9065..a6b47cf4b 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_begin_code.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_begin_code.h @@ -261,9 +261,9 @@ * * On compilers without restrict support, this is defined to nothing. * - * \since This macro is available since SDL 3.4.0. + * \since This macro is available since SDL 3.2.0. */ -#define SDL_RESTRICT __restrict +#define SDL_RESTRICT __restrict__ /** * Check if the compiler supports a given builtin functionality. @@ -281,61 +281,9 @@ */ #define SDL_HAS_BUILTIN(x) __has_builtin(x) -/** - * A macro to specify data alignment. - * - * This informs the compiler that a given datatype or variable must be aligned - * to a specific byte count. - * - * For example: - * - * ```c - * // make sure this is struct is aligned to 16 bytes for SIMD access. - * typedef struct { - * float x, y, z, w; - * } SDL_ALIGNED(16) MySIMDAlignedData; - * - * // 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); - * SomeOtherStuff other_stuff; - * } MyStruct; - * - * // make sure this variable is aligned to 32 bytes. - * int SDL_ALIGNED(32) myval = 0; - * ``` - * - * Alignment is only guaranteed for things the compiler places: local - * variables on the stack and global/static variables. To dynamically allocate - * something that respects this alignment, use SDL_aligned_alloc() or some - * other mechanism. - * - * On compilers without alignment support, this macro is defined to an invalid - * symbol, to make it clear that the current compiler is likely to generate - * incorrect code when it sees this macro. - * - * \param x the byte count to align to, so the data's address will be a - * multiple of this value. - * - * \since This macro is available since SDL 3.4.0. - */ -#define SDL_ALIGNED(x) __attribute__((aligned(x))) - /* end of wiki documentation section. */ #endif -/* `restrict` is from C99, but __restrict works with both Visual Studio and GCC. */ -#ifndef SDL_RESTRICT -# if defined(restrict) || ((defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L))) -# define SDL_RESTRICT restrict -# elif defined(_MSC_VER) || defined(__GNUC__) || defined(__clang__) -# define SDL_RESTRICT __restrict -# else -# define SDL_RESTRICT -# endif -#endif - #ifndef SDL_HAS_BUILTIN #ifdef __has_builtin #define SDL_HAS_BUILTIN(x) __has_builtin(x) @@ -441,7 +389,7 @@ #endif /* SDL_FORCE_INLINE not defined */ #ifndef SDL_NORETURN -#if defined(__GNUC__) +#ifdef __GNUC__ #define SDL_NORETURN __attribute__((noreturn)) #elif defined(_MSC_VER) #define SDL_NORETURN __declspec(noreturn) @@ -536,18 +484,3 @@ #define SDL_ALLOC_SIZE2(p1, p2) #endif #endif /* SDL_ALLOC_SIZE2 not defined */ - -#ifndef SDL_ALIGNED -#if defined(__clang__) || defined(__GNUC__) -#define SDL_ALIGNED(x) __attribute__((aligned(x))) -#elif defined(_MSC_VER) -#define SDL_ALIGNED(x) __declspec(align(x)) -#elif defined(__cplusplus) && (__cplusplus >= 201103L) -#define SDL_ALIGNED(x) alignas(x) -#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) -#define SDL_ALIGNED(x) _Alignas(x) -#else -#define SDL_ALIGNED(x) PLEASE_DEFINE_SDL_ALIGNED -#endif -#endif /* SDL_ALIGNED not defined */ - diff --git a/Source/ThirdParty/SDL/SDL3/SDL_clipboard.h b/Source/ThirdParty/SDL/SDL3/SDL_clipboard.h index 0d3cbb499..3ca56a48a 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_clipboard.h +++ b/Source/ThirdParty/SDL/SDL3/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,15 @@ 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 + * or setting the 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. + * freed, so it needs to be retained and dealt with internally. * * \since This function is available since SDL 3.2.0. * @@ -211,10 +211,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 + * 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 +231,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 +239,7 @@ 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/Source/ThirdParty/SDL/SDL3/SDL_endian.h b/Source/ThirdParty/SDL/SDL3/SDL_endian.h index a34e9d4b0..2a9b8a34d 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_endian.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_endian.h @@ -486,7 +486,7 @@ SDL_FORCE_INLINE Uint32 SDL_Swap32(Uint32 x) { return x_but_byteswapped; } * * \since This function is available since SDL 3.2.0. */ -SDL_FORCE_INLINE Uint32 SDL_Swap64(Uint64 x) { return x_but_byteswapped; } +SDL_FORCE_INLINE Uint64 SDL_Swap64(Uint64 x) { return x_but_byteswapped; } /** * Swap a 16-bit value from littleendian to native byte order. diff --git a/Source/ThirdParty/SDL/SDL3/SDL_events.h b/Source/ThirdParty/SDL/SDL3/SDL_events.h index 2094a598d..d267f051f 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_events.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_events.h @@ -781,7 +781,7 @@ typedef struct SDL_TouchFingerEvent } SDL_TouchFingerEvent; /** - * Pressure-sensitive pen proximity event structure (event.pproximity.*) + * Pressure-sensitive pen proximity event structure (event.pmotion.*) * * When a pen becomes visible to the system (it is close enough to a tablet, * etc), SDL will send an SDL_EVENT_PEN_PROXIMITY_IN event with the new pen's @@ -1567,38 +1567,6 @@ extern SDL_DECLSPEC Uint32 SDLCALL SDL_RegisterEvents(int numevents); */ extern SDL_DECLSPEC SDL_Window * SDLCALL SDL_GetWindowFromEvent(const SDL_Event *event); -/** - * Generate a human-readable description of an event. - * - * This will fill `buf` with a null-terminated string that might look - * something like this: - * - * ``` - * SDL_EVENT_MOUSE_MOTION (timestamp=1140256324 windowid=2 which=0 state=0 x=492.99 y=139.09 xrel=52 yrel=6) - * ``` - * - * The exact format of the string is not guaranteed; it is intended for - * logging purposes, to be read by a human, and not parsed by a computer. - * - * The returned value follows the same rules as SDL_snprintf(): `buf` will - * always be NULL-terminated (unless `buflen` is zero), and will be truncated - * if `buflen` is too small. The return code is the number of bytes needed for - * the complete string, not counting the NULL-terminator, whether the string - * was truncated or not. Unlike SDL_snprintf(), though, this function never - * returns -1. - * - * \param event an event to describe. May be NULL. - * \param buf the buffer to fill with the description string. May be NULL. - * \param buflen the maximum bytes that can be written to `buf`. - * \returns number of bytes needed for the full string, not counting the - * null-terminator byte. - * - * \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_GetEventDescription(const SDL_Event *event, char *buf, int buflen); - /* Ends C function definitions when using C++ */ #ifdef __cplusplus } diff --git a/Source/ThirdParty/SDL/SDL3/SDL_filesystem.h b/Source/ThirdParty/SDL/SDL3/SDL_filesystem.h index 031feaf98..af3ca27e0 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_filesystem.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_filesystem.h @@ -444,10 +444,10 @@ extern SDL_DECLSPEC bool SDLCALL SDL_GetPathInfo(const char *path, SDL_PathInfo * Enumerate a directory tree, filtered by pattern, and return a list. * * Files are filtered out if they don't match the string in `pattern`, which - * may contain wildcard characters `*` (match everything) and `?` (match one + * may contain wildcard characters '\*' (match everything) and '?' (match one * character). If pattern is NULL, no filtering is done and all results are * returned. Subdirectories are permitted, and are specified with a path - * separator of `/`. Wildcard characters `*` and `?` never match a path + * separator of '/'. Wildcard characters '\*' and '?' never match a path * separator. * * `flags` may be set to SDL_GLOB_CASEINSENSITIVE to make the pattern matching diff --git a/Source/ThirdParty/SDL/SDL3/SDL_gamepad.h b/Source/ThirdParty/SDL/SDL3/SDL_gamepad.h index 460ae9878..99f8b6593 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_gamepad.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_gamepad.h @@ -118,7 +118,6 @@ typedef enum SDL_GamepadType SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_LEFT, SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT, SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_PAIR, - SDL_GAMEPAD_TYPE_GAMECUBE, SDL_GAMEPAD_TYPE_COUNT } SDL_GamepadType; @@ -128,9 +127,8 @@ typedef enum SDL_GamepadType * For controllers that use a diamond pattern for the face buttons, the * south/east/west/north buttons below correspond to the locations in the * diamond pattern. For Xbox controllers, this would be A/B/X/Y, for Nintendo - * Switch controllers, this would be B/A/Y/X, for GameCube controllers this - * would be A/X/B/Y, for PlayStation controllers this would be - * Cross/Circle/Square/Triangle. + * Switch controllers, this would be B/A/Y/X, for PlayStation controllers this + * would be Cross/Circle/Square/Triangle. * * For controllers that don't use a diamond pattern for the face buttons, the * south/east/west/north buttons indicate the buttons labeled A, B, C, D, or @@ -1158,12 +1156,10 @@ extern SDL_DECLSPEC bool SDLCALL SDL_GamepadHasAxis(SDL_Gamepad *gamepad, SDL_Ga * return a negative value. Note that this differs from the value reported by * the lower-level SDL_GetJoystickAxis(), which normally uses the full range. * - * Note that for invalid gamepads or axes, this will return 0. Zero is also a - * valid value in normal operation; usually it means a centered axis. - * * \param gamepad a gamepad. * \param axis an axis index (one of the SDL_GamepadAxis values). - * \returns axis state. + * \returns axis state (including 0) on success or 0 (also) on failure; call + * SDL_GetError() for more information. * * \since This function is available since SDL 3.2.0. * diff --git a/Source/ThirdParty/SDL/SDL3/SDL_gpu.h b/Source/ThirdParty/SDL/SDL3/SDL_gpu.h index b3ff20221..4a5e32f17 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_gpu.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_gpu.h @@ -206,20 +206,14 @@ * underlying graphics API. While it's possible that we have done something * inefficiently, it's very unlikely especially if you are relatively * inexperienced with GPU rendering. Please see the performance tips above and - * make sure you are following them. Additionally, tools like - * [RenderDoc](https://renderdoc.org/) - * can be very helpful for diagnosing incorrect behavior and performance - * issues. + * make sure you are following them. Additionally, tools like RenderDoc can be + * very helpful for diagnosing incorrect behavior and performance issues. * * ## System Requirements * - * ### Vulkan - * - * SDL driver name: "vulkan" (for use in SDL_CreateGPUDevice() and - * SDL_PROP_GPU_DEVICE_CREATE_NAME_STRING) - * - * Supported on Windows, Linux, Nintendo Switch, and certain Android devices. - * Requires Vulkan 1.0 with the following extensions and device features: + * **Vulkan:** Supported on Windows, Linux, Nintendo Switch, and certain + * Android devices. Requires Vulkan 1.0 with the following extensions and + * device features: * * - `VK_KHR_swapchain` * - `VK_KHR_maintenance1` @@ -228,21 +222,13 @@ * - `depthClamp` * - `shaderClipDistance` * - `drawIndirectFirstInstance` - * - `sampleRateShading` * - * ### D3D12 + * **D3D12:** Supported on Windows 10 or newer, Xbox One (GDK), and Xbox + * Series X|S (GDK). Requires a GPU that supports DirectX 12 Feature Level + * 11_1. * - * SDL driver name: "direct3d12" - * - * Supported on Windows 10 or newer, Xbox One (GDK), and Xbox Series X|S - * (GDK). Requires a GPU that supports DirectX 12 Feature Level 11_1. - * - * ### Metal - * - * SDL driver name: "metal" - * - * Supported on macOS 10.14+ and iOS/tvOS 13.0+. Hardware requirements vary by - * operating system: + * **Metal:** Supported on macOS 10.14+ and iOS/tvOS 13.0+. Hardware + * requirements vary by operating system: * * - macOS requires an Apple Silicon or * [Intel Mac2 family](https://developer.apple.com/documentation/metal/mtlfeatureset/mtlfeatureset_macos_gpufamily2_v1?language=objc) @@ -250,26 +236,6 @@ * - iOS/tvOS requires an A9 GPU or newer * - iOS Simulator and tvOS Simulator are unsupported * - * ## Coordinate System - * - * The GPU API uses a left-handed coordinate system, following the convention - * of D3D12 and Metal. Specifically: - * - * - **Normalized Device Coordinates:** The lower-left corner has an x,y - * coordinate of `(-1.0, -1.0)`. The upper-right corner is `(1.0, 1.0)`. Z - * values range from `[0.0, 1.0]` where 0 is the near plane. - * - **Viewport Coordinates:** The top-left corner has an x,y coordinate of - * `(0, 0)` and extends to the bottom-right corner at `(viewportWidth, - * viewportHeight)`. +Y is down. - * - **Texture Coordinates:** The top-left corner has an x,y coordinate of - * `(0, 0)` and extends to the bottom-right corner at `(1.0, 1.0)`. +Y is - * down. - * - * If the backend driver differs from this convention (e.g. Vulkan, which has - * an NDC that assumes +Y is down), SDL will automatically convert the - * coordinate system behind the scenes, so you don't need to perform any - * coordinate flipping logic in your shaders. - * * ## Uniform Data * * Uniforms are for passing data to shaders. The uniform data will be constant @@ -335,39 +301,6 @@ * unreferenced data in a bound resource without cycling, but overwriting a * section of data that has already been referenced will produce unexpected * results. - * - * ## Debugging - * - * At some point of your GPU journey, you will probably encounter issues that - * are not traceable with regular debugger - for example, your code compiles - * but you get an empty screen, or your shader fails in runtime. - * - * For debugging such cases, there are tools that allow visually inspecting - * the whole GPU frame, every drawcall, every bound resource, memory buffers, - * etc. They are the following, per platform: - * - * * For Windows/Linux, use - * [RenderDoc](https://renderdoc.org/) - * * For MacOS (Metal), use Xcode built-in debugger (Open XCode, go to Debug > - * Debug Executable..., select your application, set "GPU Frame Capture" to - * "Metal" in scheme "Options" window, run your app, and click the small - * Metal icon on the bottom to capture a frame) - * - * Aside from that, you may want to enable additional debug layers to receive - * more detailed error messages, based on your GPU backend: - * - * * For D3D12, the debug layer is an optional feature that can be installed - * via "Windows Settings -> System -> Optional features" and adding the - * "Graphics Tools" optional feature. - * * For Vulkan, you will need to install Vulkan SDK on Windows, and on Linux, - * you usually have some sort of `vulkan-validation-layers` system package - * that should be installed. - * * For Metal, it should be enough just to run the application from XCode to - * receive detailed errors or warnings in the output. - * - * Don't hesitate to use tools as RenderDoc when encountering runtime issues - * or unexpected output on screen, quick GPU frame inspection can usually help - * you fix the majority of such problems. */ #ifndef SDL_gpu_h_ @@ -1377,17 +1310,6 @@ typedef struct SDL_GPUViewport * A structure specifying parameters related to transferring data to or from a * texture. * - * If either of `pixels_per_row` or `rows_per_layer` is zero, then width and - * height of passed SDL_GPUTextureRegion to SDL_UploadToGPUTexture or - * SDL_DownloadFromGPUTexture are used as default values respectively and data - * is considered to be tightly packed. - * - * **WARNING**: Direct3D 12 requires texture data row pitch to be 256 byte - * aligned, and offsets to be aligned to 512 bytes. If they are not, SDL will - * make a temporary copy of the data that is properly aligned, but this adds - * overhead to the transfer process. Apps can avoid this by aligning their - * data appropriately, or using a different GPU backend than Direct3D 12. - * * \since This struct is available since SDL 3.2.0. * * \sa SDL_UploadToGPUTexture @@ -1469,7 +1391,7 @@ typedef struct SDL_GPUTextureRegion */ typedef struct SDL_GPUBlitRegion { - SDL_GPUTexture *texture; /**< The texture. */ + SDL_GPUTexture *texture; /**< The texture. */ Uint32 mip_level; /**< The mip level index of the region. */ Uint32 layer_or_depth_plane; /**< The layer index or depth plane of the region. This value is treated as a layer index on 2D array and cube textures, and as a depth plane on 3D textures. */ Uint32 x; /**< The left offset of the region. */ @@ -1598,8 +1520,8 @@ typedef struct SDL_GPUSamplerCreateInfo SDL_GPUCompareOp compare_op; /**< The comparison operator to apply to fetched data before filtering. */ float min_lod; /**< Clamps the minimum of the computed LOD value. */ float max_lod; /**< Clamps the maximum of the computed LOD value. */ - bool enable_anisotropy; /**< true to enable anisotropic filtering. */ - bool enable_compare; /**< true to enable comparison against a reference value during lookups. */ + bool enable_anisotropy; /**< true to enable anisotropic filtering. */ + bool enable_compare; /**< true to enable comparison against a reference value during lookups. */ Uint8 padding1; Uint8 padding2; @@ -1627,7 +1549,7 @@ typedef struct SDL_GPUSamplerCreateInfo typedef struct SDL_GPUVertexBufferDescription { Uint32 slot; /**< The binding slot of the vertex buffer. */ - Uint32 pitch; /**< The byte pitch between consecutive elements of the vertex buffer. */ + Uint32 pitch; /**< The size of a single element + the offset between elements. */ SDL_GPUVertexInputRate input_rate; /**< Whether attribute addressing is a function of the vertex index or instance index. */ Uint32 instance_step_rate; /**< Reserved for future use. Must be set to 0. */ } SDL_GPUVertexBufferDescription; @@ -1691,9 +1613,6 @@ typedef struct SDL_GPUStencilOpState * \since This struct is available since SDL 3.2.0. * * \sa SDL_GPUColorTargetDescription - * \sa SDL_GPUBlendFactor - * \sa SDL_GPUBlendOp - * \sa SDL_GPUColorComponentFlags */ typedef struct SDL_GPUColorTargetBlendState { @@ -1704,8 +1623,8 @@ typedef struct SDL_GPUColorTargetBlendState SDL_GPUBlendFactor dst_alpha_blendfactor; /**< The value to be multiplied by the destination alpha. */ SDL_GPUBlendOp alpha_blend_op; /**< The blend operation for the alpha component. */ SDL_GPUColorComponentFlags color_write_mask; /**< A bitmask specifying which of the RGBA components are enabled for writing. Writes to all channels if enable_color_write_mask is false. */ - bool enable_blend; /**< Whether blending is enabled for the color target. */ - bool enable_color_write_mask; /**< Whether the color write mask is enabled. */ + bool enable_blend; /**< Whether blending is enabled for the color target. */ + bool enable_color_write_mask; /**< Whether the color write mask is enabled. */ Uint8 padding1; Uint8 padding2; } SDL_GPUColorTargetBlendState; @@ -1717,8 +1636,6 @@ typedef struct SDL_GPUColorTargetBlendState * \since This struct is available since SDL 3.2.0. * * \sa SDL_CreateGPUShader - * \sa SDL_GPUShaderFormat - * \sa SDL_GPUShaderStage */ typedef struct SDL_GPUShaderCreateInfo { @@ -1824,8 +1741,8 @@ typedef struct SDL_GPURasterizerState float depth_bias_constant_factor; /**< A scalar factor controlling the depth value added to each fragment. */ float depth_bias_clamp; /**< The maximum depth bias of a fragment. */ float depth_bias_slope_factor; /**< A scalar factor applied to a fragment's slope in depth calculations. */ - bool enable_depth_bias; /**< true to bias fragment depth values. */ - bool enable_depth_clip; /**< true to enable depth clip, false to enable depth clamp. */ + bool enable_depth_bias; /**< true to bias fragment depth values. */ + bool enable_depth_clip; /**< true to enable depth clip, false to enable depth clamp. */ Uint8 padding1; Uint8 padding2; } SDL_GPURasterizerState; @@ -1842,8 +1759,8 @@ typedef struct SDL_GPUMultisampleState { SDL_GPUSampleCount sample_count; /**< The number of samples to be used in rasterization. */ Uint32 sample_mask; /**< Reserved for future use. Must be set to 0. */ - bool enable_mask; /**< Reserved for future use. Must be set to false. */ - bool enable_alpha_to_coverage; /**< true enables the alpha-to-coverage feature. */ + bool enable_mask; /**< Reserved for future use. Must be set to false. */ + Uint8 padding1; Uint8 padding2; Uint8 padding3; } SDL_GPUMultisampleState; @@ -1863,9 +1780,9 @@ typedef struct SDL_GPUDepthStencilState SDL_GPUStencilOpState front_stencil_state; /**< The stencil op state for front-facing triangles. */ Uint8 compare_mask; /**< Selects the bits of the stencil values participating in the stencil test. */ Uint8 write_mask; /**< Selects the bits of the stencil values updated by the stencil test. */ - bool enable_depth_test; /**< true enables the depth test. */ - bool enable_depth_write; /**< true enables depth writes. Depth writes are always disabled when enable_depth_test is false. */ - bool enable_stencil_test; /**< true enables the stencil test. */ + bool enable_depth_test; /**< true enables the depth test. */ + bool enable_depth_write; /**< true enables depth writes. Depth writes are always disabled when enable_depth_test is false. */ + bool enable_stencil_test; /**< true enables the stencil test. */ Uint8 padding1; Uint8 padding2; Uint8 padding3; @@ -1900,7 +1817,7 @@ typedef struct SDL_GPUGraphicsPipelineTargetInfo const SDL_GPUColorTargetDescription *color_target_descriptions; /**< A pointer to an array of color target descriptions. */ Uint32 num_color_targets; /**< The number of color target descriptions in the above array. */ SDL_GPUTextureFormat depth_stencil_format; /**< The pixel format of the depth-stencil target. Ignored if has_depth_stencil_target is false. */ - bool has_depth_stencil_target; /**< true specifies that the pipeline uses a depth-stencil target. */ + bool has_depth_stencil_target; /**< true specifies that the pipeline uses a depth-stencil target. */ Uint8 padding1; Uint8 padding2; Uint8 padding3; @@ -2007,8 +1924,8 @@ typedef struct SDL_GPUColorTargetInfo SDL_GPUTexture *resolve_texture; /**< The texture that will receive the results of a multisample resolve operation. Ignored if a RESOLVE* store_op is not used. */ Uint32 resolve_mip_level; /**< The mip level of the resolve texture to use for the resolve operation. Ignored if a RESOLVE* store_op is not used. */ Uint32 resolve_layer; /**< The layer index of the resolve texture to use for the resolve operation. Ignored if a RESOLVE* store_op is not used. */ - bool cycle; /**< true cycles the texture if the texture is bound and load_op is not LOAD */ - bool cycle_resolve_texture; /**< true cycles the resolve texture if the resolve texture is bound. Ignored if a RESOLVE* store_op is not used. */ + bool cycle; /**< true cycles the texture if the texture is bound and load_op is not LOAD */ + bool cycle_resolve_texture; /**< true cycles the resolve texture if the resolve texture is bound. Ignored if a RESOLVE* store_op is not used. */ Uint8 padding1; Uint8 padding2; } SDL_GPUColorTargetInfo; @@ -2065,7 +1982,7 @@ typedef struct SDL_GPUDepthStencilTargetInfo SDL_GPUStoreOp store_op; /**< What is done with the depth results of the render pass. */ SDL_GPULoadOp stencil_load_op; /**< What is done with the stencil contents at the beginning of the render pass. */ SDL_GPUStoreOp stencil_store_op; /**< What is done with the stencil results of the render pass. */ - bool cycle; /**< true cycles the texture if the texture is bound and any load ops are not LOAD */ + bool cycle; /**< true cycles the texture if the texture is bound and any load ops are not LOAD */ Uint8 clear_stencil; /**< The value to clear the stencil component to at the beginning of the render pass. Ignored if SDL_GPU_LOADOP_CLEAR is not used. */ Uint8 padding1; Uint8 padding2; @@ -2085,7 +2002,7 @@ typedef struct SDL_GPUBlitInfo { SDL_FColor clear_color; /**< The color to clear the destination region to before the blit. Ignored if load_op is not SDL_GPU_LOADOP_CLEAR. */ SDL_FlipMode flip_mode; /**< The flip mode for the source region. */ SDL_GPUFilter filter; /**< The filter mode used when blitting. */ - bool cycle; /**< true cycles the destination texture if it is already bound. */ + bool cycle; /**< true cycles the destination texture if it is already bound. */ Uint8 padding1; Uint8 padding2; Uint8 padding3; @@ -2194,13 +2111,6 @@ extern SDL_DECLSPEC bool SDLCALL SDL_GPUSupportsProperties( /** * Creates a GPU context. * - * The GPU driver name can be one of the following: - * - * - "vulkan": [Vulkan](CategoryGPU#vulkan) - * - "direct3d12": [D3D12](CategoryGPU#d3d12) - * - "metal": [Metal](CategoryGPU#metal) - * - NULL: let SDL pick the optimal driver - * * \param format_flags a bitflag indicating which shader formats the app is * able to provide. * \param debug_mode enable debug mode properties and validations. @@ -2211,7 +2121,6 @@ extern SDL_DECLSPEC bool SDLCALL SDL_GPUSupportsProperties( * * \since This function is available since SDL 3.2.0. * - * \sa SDL_CreateGPUDeviceWithProperties * \sa SDL_GetGPUShaderFormats * \sa SDL_GetGPUDeviceDriver * \sa SDL_DestroyGPUDevice @@ -2231,8 +2140,6 @@ extern SDL_DECLSPEC SDL_GPUDevice * SDLCALL SDL_CreateGPUDevice( * properties and validations, defaults to true. * - `SDL_PROP_GPU_DEVICE_CREATE_PREFERLOWPOWER_BOOLEAN`: enable to prefer * energy efficiency over maximum GPU performance, defaults to false. - * - `SDL_PROP_GPU_DEVICE_CREATE_VERBOSE_BOOLEAN`: enable to automatically log - * useful debug information on device creation, defaults to true. * - `SDL_PROP_GPU_DEVICE_CREATE_NAME_STRING`: the name of the GPU driver to * use, if a specific one is desired. * @@ -2256,25 +2163,6 @@ extern SDL_DECLSPEC SDL_GPUDevice * SDLCALL SDL_CreateGPUDevice( * - `SDL_PROP_GPU_DEVICE_CREATE_D3D12_SEMANTIC_NAME_STRING`: the prefix to * use for all vertex semantics, default is "TEXCOORD". * - * With the Vulkan renderer: - * - * - `SDL_PROP_GPU_DEVICE_CREATE_VULKAN_SHADERCLIPDISTANCE_BOOLEAN`: Enable - * device feature shaderClipDistance. If disabled, clip distances are not - * supported in shader code: gl_ClipDistance[] built-ins of GLSL, - * SV_ClipDistance0/1 semantics of HLSL and [[clip_distance]] attribute of - * Metal. Defaults to true. - * - `SDL_PROP_GPU_DEVICE_CREATE_VULKAN_DEPTHCLAMP_BOOLEAN`: Enable device - * feature depthClamp. If disabled, there is no depth clamp support and - * enable_depth_clip in SDL_GPURasterizerState must always be set to true. - * Defaults to true. - * - `SDL_PROP_GPU_DEVICE_CREATE_VULKAN_DRAWINDIRECTFIRST_BOOLEAN`: Enable - * device feature drawIndirectFirstInstance. If disabled, the argument - * first_instance of SDL_GPUIndirectDrawCommand must be set to zero. - * Defaults to true. - * - `SDL_PROP_GPU_DEVICE_CREATE_VULKAN_SAMPLERANISOTROPY_BOOLEAN`: Enable - * device feature samplerAnisotropy. If disabled, enable_anisotropy of - * SDL_GPUSamplerCreateInfo must be set to false. Defaults to true. - * * \param props the properties to use. * \returns a GPU context on success or NULL on failure; call SDL_GetError() * for more information. @@ -2289,21 +2177,16 @@ extern SDL_DECLSPEC SDL_GPUDevice * SDLCALL SDL_CreateGPUDevice( extern SDL_DECLSPEC SDL_GPUDevice * SDLCALL SDL_CreateGPUDeviceWithProperties( SDL_PropertiesID props); -#define SDL_PROP_GPU_DEVICE_CREATE_DEBUGMODE_BOOLEAN "SDL.gpu.device.create.debugmode" -#define SDL_PROP_GPU_DEVICE_CREATE_PREFERLOWPOWER_BOOLEAN "SDL.gpu.device.create.preferlowpower" -#define SDL_PROP_GPU_DEVICE_CREATE_VERBOSE_BOOLEAN "SDL.gpu.device.create.verbose" -#define SDL_PROP_GPU_DEVICE_CREATE_NAME_STRING "SDL.gpu.device.create.name" -#define SDL_PROP_GPU_DEVICE_CREATE_SHADERS_PRIVATE_BOOLEAN "SDL.gpu.device.create.shaders.private" -#define SDL_PROP_GPU_DEVICE_CREATE_SHADERS_SPIRV_BOOLEAN "SDL.gpu.device.create.shaders.spirv" -#define SDL_PROP_GPU_DEVICE_CREATE_SHADERS_DXBC_BOOLEAN "SDL.gpu.device.create.shaders.dxbc" -#define SDL_PROP_GPU_DEVICE_CREATE_SHADERS_DXIL_BOOLEAN "SDL.gpu.device.create.shaders.dxil" -#define SDL_PROP_GPU_DEVICE_CREATE_SHADERS_MSL_BOOLEAN "SDL.gpu.device.create.shaders.msl" -#define SDL_PROP_GPU_DEVICE_CREATE_SHADERS_METALLIB_BOOLEAN "SDL.gpu.device.create.shaders.metallib" -#define SDL_PROP_GPU_DEVICE_CREATE_D3D12_SEMANTIC_NAME_STRING "SDL.gpu.device.create.d3d12.semantic" -#define SDL_PROP_GPU_DEVICE_CREATE_VULKAN_SHADERCLIPDISTANCE_BOOLEAN "SDL.gpu.device.create.vulkan.shaderclipdistance" -#define SDL_PROP_GPU_DEVICE_CREATE_VULKAN_DEPTHCLAMP_BOOLEAN "SDL.gpu.device.create.vulkan.depthclamp" -#define SDL_PROP_GPU_DEVICE_CREATE_VULKAN_DRAWINDIRECTFIRST_BOOLEAN "SDL.gpu.device.create.vulkan.drawindirectfirstinstance" -#define SDL_PROP_GPU_DEVICE_CREATE_VULKAN_SAMPLERANISOTROPY_BOOLEAN "SDL.gpu.device.create.vulkan.sampleranisotropy" +#define SDL_PROP_GPU_DEVICE_CREATE_DEBUGMODE_BOOLEAN "SDL.gpu.device.create.debugmode" +#define SDL_PROP_GPU_DEVICE_CREATE_PREFERLOWPOWER_BOOLEAN "SDL.gpu.device.create.preferlowpower" +#define SDL_PROP_GPU_DEVICE_CREATE_NAME_STRING "SDL.gpu.device.create.name" +#define SDL_PROP_GPU_DEVICE_CREATE_SHADERS_PRIVATE_BOOLEAN "SDL.gpu.device.create.shaders.private" +#define SDL_PROP_GPU_DEVICE_CREATE_SHADERS_SPIRV_BOOLEAN "SDL.gpu.device.create.shaders.spirv" +#define SDL_PROP_GPU_DEVICE_CREATE_SHADERS_DXBC_BOOLEAN "SDL.gpu.device.create.shaders.dxbc" +#define SDL_PROP_GPU_DEVICE_CREATE_SHADERS_DXIL_BOOLEAN "SDL.gpu.device.create.shaders.dxil" +#define SDL_PROP_GPU_DEVICE_CREATE_SHADERS_MSL_BOOLEAN "SDL.gpu.device.create.shaders.msl" +#define SDL_PROP_GPU_DEVICE_CREATE_SHADERS_METALLIB_BOOLEAN "SDL.gpu.device.create.shaders.metallib" +#define SDL_PROP_GPU_DEVICE_CREATE_D3D12_SEMANTIC_NAME_STRING "SDL.gpu.device.create.d3d12.semantic" /** * Destroys a GPU context previously returned by SDL_CreateGPUDevice. @@ -2367,116 +2250,6 @@ extern SDL_DECLSPEC const char * SDLCALL SDL_GetGPUDeviceDriver(SDL_GPUDevice *d */ extern SDL_DECLSPEC SDL_GPUShaderFormat SDLCALL SDL_GetGPUShaderFormats(SDL_GPUDevice *device); -/** - * Get the properties associated with a GPU device. - * - * All properties are optional and may differ between GPU backends and SDL - * versions. - * - * The following properties are provided by SDL: - * - * `SDL_PROP_GPU_DEVICE_NAME_STRING`: Contains the name of the underlying - * device as reported by the system driver. This string has no standardized - * format, is highly inconsistent between hardware devices and drivers, and is - * able to change at any time. Do not attempt to parse this string as it is - * bound to fail at some point in the future when system drivers are updated, - * new hardware devices are introduced, or when SDL adds new GPU backends or - * modifies existing ones. - * - * Strings that have been found in the wild include: - * - * - GTX 970 - * - GeForce GTX 970 - * - NVIDIA GeForce GTX 970 - * - Microsoft Direct3D12 (NVIDIA GeForce GTX 970) - * - NVIDIA Graphics Device - * - GeForce GPU - * - P106-100 - * - AMD 15D8:C9 - * - AMD Custom GPU 0405 - * - AMD Radeon (TM) Graphics - * - ASUS Radeon RX 470 Series - * - Intel(R) Arc(tm) A380 Graphics (DG2) - * - Virtio-GPU Venus (NVIDIA TITAN V) - * - SwiftShader Device (LLVM 16.0.0) - * - llvmpipe (LLVM 15.0.4, 256 bits) - * - Microsoft Basic Render Driver - * - unknown device - * - * The above list shows that the same device can have different formats, the - * vendor name may or may not appear in the string, the included vendor name - * may not be the vendor of the chipset on the device, some manufacturers - * include pseudo-legal marks while others don't, some devices may not use a - * marketing name in the string, the device string may be wrapped by the name - * of a translation interface, the device may be emulated in software, or the - * string may contain generic text that does not identify the device at all. - * - * `SDL_PROP_GPU_DEVICE_DRIVER_NAME_STRING`: Contains the self-reported name - * of the underlying system driver. - * - * Strings that have been found in the wild include: - * - * - Intel Corporation - * - Intel open-source Mesa driver - * - Qualcomm Technologies Inc. Adreno Vulkan Driver - * - MoltenVK - * - Mali-G715 - * - venus - * - * `SDL_PROP_GPU_DEVICE_DRIVER_VERSION_STRING`: Contains the self-reported - * version of the underlying system driver. This is a relatively short version - * string in an unspecified format. If SDL_PROP_GPU_DEVICE_DRIVER_INFO_STRING - * is available then that property should be preferred over this one as it may - * contain additional information that is useful for identifying the exact - * driver version used. - * - * Strings that have been found in the wild include: - * - * - 53.0.0 - * - 0.405.2463 - * - 32.0.15.6614 - * - * `SDL_PROP_GPU_DEVICE_DRIVER_INFO_STRING`: Contains the detailed version - * information of the underlying system driver as reported by the driver. This - * is an arbitrary string with no standardized format and it may contain - * newlines. This property should be preferred over - * SDL_PROP_GPU_DEVICE_DRIVER_VERSION_STRING if it is available as it usually - * contains the same information but in a format that is easier to read. - * - * Strings that have been found in the wild include: - * - * - 101.6559 - * - 1.2.11 - * - Mesa 21.2.2 (LLVM 12.0.1) - * - Mesa 22.2.0-devel (git-f226222 2022-04-14 impish-oibaf-ppa) - * - v1.r53p0-00eac0.824c4f31403fb1fbf8ee1042422c2129 - * - * This string has also been observed to be a multiline string (which has a - * trailing newline): - * - * ``` - * Driver Build: 85da404, I46ff5fc46f, 1606794520 - * Date: 11/30/20 - * Compiler Version: EV031.31.04.01 - * Driver Branch: promo490_3_Google - * ``` - * - * \param device a GPU context to query. - * \returns a valid property ID on success or 0 on failure; call - * SDL_GetError() for more 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 SDL_PropertiesID SDLCALL SDL_GetGPUDeviceProperties(SDL_GPUDevice *device); - -#define SDL_PROP_GPU_DEVICE_NAME_STRING "SDL.gpu.device.name" -#define SDL_PROP_GPU_DEVICE_DRIVER_NAME_STRING "SDL.gpu.device.driver_name" -#define SDL_PROP_GPU_DEVICE_DRIVER_VERSION_STRING "SDL.gpu.device.driver_version" -#define SDL_PROP_GPU_DEVICE_DRIVER_INFO_STRING "SDL.gpu.device.driver_info" - - /* State Creation */ /** @@ -3049,9 +2822,6 @@ extern SDL_DECLSPEC SDL_GPUCommandBuffer * SDLCALL SDL_AcquireGPUCommandBuffer( * terms this means you must ensure that vec3 and vec4 fields are 16-byte * aligned. * - * For detailed information about accessing uniform data from a shader, please - * refer to SDL_CreateGPUShader. - * * \param command_buffer a command buffer. * \param slot_index the vertex uniform slot to push data to. * \param data client data to write. @@ -4005,7 +3775,7 @@ extern SDL_DECLSPEC void SDLCALL SDL_ReleaseWindowFromGPUDevice( * supported via SDL_WindowSupportsGPUPresentMode / * SDL_WindowSupportsGPUSwapchainComposition prior to calling this function. * - * SDL_GPU_PRESENTMODE_VSYNC with SDL_GPU_SWAPCHAINCOMPOSITION_SDR is always + * SDL_GPU_PRESENTMODE_VSYNC with SDL_GPU_SWAPCHAINCOMPOSITION_SDR are always * supported. * * \param device a GPU context. @@ -4079,9 +3849,7 @@ extern SDL_DECLSPEC SDL_GPUTextureFormat SDLCALL SDL_GetGPUSwapchainTextureForma * buffer used to acquire it. * * This function will fill the swapchain texture handle with NULL if too many - * frames are in flight. This is not an error. This NULL pointer should not be - * passed back into SDL. Instead, it should be considered as an indication to - * wait until the swapchain is available. + * frames are in flight. This is not an error. * * If you use this function, it is possible to create a situation where many * command buffers are allocated while the rendering context waits for the GPU @@ -4443,8 +4211,3 @@ extern SDL_DECLSPEC void SDLCALL SDL_GDKResumeGPU(SDL_GPUDevice *device); #include #endif /* SDL_gpu_h_ */ - - - - - diff --git a/Source/ThirdParty/SDL/SDL3/SDL_haptic.h b/Source/ThirdParty/SDL/SDL3/SDL_haptic.h index 9a20396d3..a45335b28 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_haptic.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_haptic.h @@ -70,7 +70,7 @@ * { * SDL_Haptic *haptic; * SDL_HapticEffect effect; - * SDL_HapticEffectID effect_id; + * int effect_id; * * // Open the device * haptic = SDL_OpenHapticFromJoystick(joystick); @@ -149,19 +149,6 @@ extern "C" { */ typedef struct SDL_Haptic SDL_Haptic; -/* - * Misc defines. - */ - -/** - * Used to play a device an infinite number of times. - * - * \since This macro is available since SDL 3.2.0. - * - * \sa SDL_RunHapticEffect - */ -#define SDL_HAPTIC_INFINITY 4294967295U - /** * \name Haptic features @@ -175,11 +162,6 @@ typedef struct SDL_Haptic SDL_Haptic; */ /* @{ */ -/** - * Type of haptic effect. - */ -typedef Uint16 SDL_HapticEffectType; - /** * Constant effect supported. * @@ -401,11 +383,6 @@ typedef Uint16 SDL_HapticEffectType; */ /* @{ */ -/** - * Type of coordinates used for haptic direction. - */ -typedef Uint8 SDL_HapticDirectionType; - /** * Uses polar coordinates for the direction. * @@ -449,15 +426,18 @@ typedef Uint8 SDL_HapticDirectionType; /* @} *//* Haptic features */ +/* + * Misc defines. + */ /** - * ID for haptic effects. + * Used to play a device an infinite number of times. * - * This is -1 if the ID is invalid. + * \since This macro is available since SDL 3.2.0. * - * \sa SDL_CreateHapticEffect + * \sa SDL_RunHapticEffect */ -typedef int SDL_HapticEffectID; +#define SDL_HAPTIC_INFINITY 4294967295U /** @@ -565,8 +545,8 @@ typedef int SDL_HapticEffectID; */ typedef struct SDL_HapticDirection { - SDL_HapticDirectionType type; /**< The type of encoding. */ - Sint32 dir[3]; /**< The encoded direction. */ + Uint8 type; /**< The type of encoding. */ + Sint32 dir[3]; /**< The encoded direction. */ } SDL_HapticDirection; @@ -586,7 +566,7 @@ typedef struct SDL_HapticDirection typedef struct SDL_HapticConstant { /* Header */ - SDL_HapticEffectType type; /**< SDL_HAPTIC_CONSTANT */ + Uint16 type; /**< SDL_HAPTIC_CONSTANT */ SDL_HapticDirection direction; /**< Direction of the effect. */ /* Replay */ @@ -672,9 +652,9 @@ typedef struct SDL_HapticConstant typedef struct SDL_HapticPeriodic { /* Header */ - SDL_HapticEffectType type; /**< SDL_HAPTIC_SINE, SDL_HAPTIC_SQUARE - SDL_HAPTIC_TRIANGLE, SDL_HAPTIC_SAWTOOTHUP or - SDL_HAPTIC_SAWTOOTHDOWN */ + Uint16 type; /**< SDL_HAPTIC_SINE, SDL_HAPTIC_SQUARE + SDL_HAPTIC_TRIANGLE, SDL_HAPTIC_SAWTOOTHUP or + SDL_HAPTIC_SAWTOOTHDOWN */ SDL_HapticDirection direction; /**< Direction of the effect. */ /* Replay */ @@ -728,8 +708,8 @@ typedef struct SDL_HapticPeriodic typedef struct SDL_HapticCondition { /* Header */ - SDL_HapticEffectType type; /**< SDL_HAPTIC_SPRING, SDL_HAPTIC_DAMPER, - SDL_HAPTIC_INERTIA or SDL_HAPTIC_FRICTION */ + Uint16 type; /**< SDL_HAPTIC_SPRING, SDL_HAPTIC_DAMPER, + SDL_HAPTIC_INERTIA or SDL_HAPTIC_FRICTION */ SDL_HapticDirection direction; /**< Direction of the effect. */ /* Replay */ @@ -767,7 +747,7 @@ typedef struct SDL_HapticCondition typedef struct SDL_HapticRamp { /* Header */ - SDL_HapticEffectType type; /**< SDL_HAPTIC_RAMP */ + Uint16 type; /**< SDL_HAPTIC_RAMP */ SDL_HapticDirection direction; /**< Direction of the effect. */ /* Replay */ @@ -806,7 +786,7 @@ typedef struct SDL_HapticRamp typedef struct SDL_HapticLeftRight { /* Header */ - SDL_HapticEffectType type; /**< SDL_HAPTIC_LEFTRIGHT */ + Uint16 type; /**< SDL_HAPTIC_LEFTRIGHT */ /* Replay */ Uint32 length; /**< Duration of the effect in milliseconds. */ @@ -836,7 +816,7 @@ typedef struct SDL_HapticLeftRight typedef struct SDL_HapticCustom { /* Header */ - SDL_HapticEffectType type; /**< SDL_HAPTIC_CUSTOM */ + Uint16 type; /**< SDL_HAPTIC_CUSTOM */ SDL_HapticDirection direction; /**< Direction of the effect. */ /* Replay */ @@ -935,7 +915,7 @@ typedef struct SDL_HapticCustom typedef union SDL_HapticEffect { /* Common for all force feedback effects */ - SDL_HapticEffectType type; /**< Effect type. */ + Uint16 type; /**< Effect type. */ SDL_HapticConstant constant; /**< Constant effect. */ SDL_HapticPeriodic periodic; /**< Periodic effect. */ SDL_HapticCondition condition; /**< Condition effect. */ @@ -1213,7 +1193,7 @@ extern SDL_DECLSPEC bool SDLCALL SDL_HapticEffectSupported(SDL_Haptic *haptic, c * \sa SDL_RunHapticEffect * \sa SDL_UpdateHapticEffect */ -extern SDL_DECLSPEC SDL_HapticEffectID SDLCALL SDL_CreateHapticEffect(SDL_Haptic *haptic, const SDL_HapticEffect *effect); +extern SDL_DECLSPEC int SDLCALL SDL_CreateHapticEffect(SDL_Haptic *haptic, const SDL_HapticEffect *effect); /** * Update the properties of an effect. @@ -1235,7 +1215,7 @@ extern SDL_DECLSPEC SDL_HapticEffectID SDLCALL SDL_CreateHapticEffect(SDL_Haptic * \sa SDL_CreateHapticEffect * \sa SDL_RunHapticEffect */ -extern SDL_DECLSPEC bool SDLCALL SDL_UpdateHapticEffect(SDL_Haptic *haptic, SDL_HapticEffectID effect, const SDL_HapticEffect *data); +extern SDL_DECLSPEC bool SDLCALL SDL_UpdateHapticEffect(SDL_Haptic *haptic, int effect, const SDL_HapticEffect *data); /** * Run the haptic effect on its associated haptic device. @@ -1259,7 +1239,7 @@ extern SDL_DECLSPEC bool SDLCALL SDL_UpdateHapticEffect(SDL_Haptic *haptic, SDL_ * \sa SDL_StopHapticEffect * \sa SDL_StopHapticEffects */ -extern SDL_DECLSPEC bool SDLCALL SDL_RunHapticEffect(SDL_Haptic *haptic, SDL_HapticEffectID effect, Uint32 iterations); +extern SDL_DECLSPEC bool SDLCALL SDL_RunHapticEffect(SDL_Haptic *haptic, int effect, Uint32 iterations); /** * Stop the haptic effect on its associated haptic device. @@ -1274,7 +1254,7 @@ extern SDL_DECLSPEC bool SDLCALL SDL_RunHapticEffect(SDL_Haptic *haptic, SDL_Hap * \sa SDL_RunHapticEffect * \sa SDL_StopHapticEffects */ -extern SDL_DECLSPEC bool SDLCALL SDL_StopHapticEffect(SDL_Haptic *haptic, SDL_HapticEffectID effect); +extern SDL_DECLSPEC bool SDLCALL SDL_StopHapticEffect(SDL_Haptic *haptic, int effect); /** * Destroy a haptic effect on the device. @@ -1289,7 +1269,7 @@ extern SDL_DECLSPEC bool SDLCALL SDL_StopHapticEffect(SDL_Haptic *haptic, SDL_Ha * * \sa SDL_CreateHapticEffect */ -extern SDL_DECLSPEC void SDLCALL SDL_DestroyHapticEffect(SDL_Haptic *haptic, SDL_HapticEffectID effect); +extern SDL_DECLSPEC void SDLCALL SDL_DestroyHapticEffect(SDL_Haptic *haptic, int effect); /** * Get the status of the current effect on the specified haptic device. @@ -1305,7 +1285,7 @@ extern SDL_DECLSPEC void SDLCALL SDL_DestroyHapticEffect(SDL_Haptic *haptic, SDL * * \sa SDL_GetHapticFeatures */ -extern SDL_DECLSPEC bool SDLCALL SDL_GetHapticEffectStatus(SDL_Haptic *haptic, SDL_HapticEffectID effect); +extern SDL_DECLSPEC bool SDLCALL SDL_GetHapticEffectStatus(SDL_Haptic *haptic, int effect); /** * Set the global gain of the specified haptic device. diff --git a/Source/ThirdParty/SDL/SDL3/SDL_hints.h b/Source/ThirdParty/SDL/SDL3/SDL_hints.h index 7961157cc..a08153571 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_hints.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_hints.h @@ -711,6 +711,8 @@ extern "C" { * * This hint only applies to the emscripten platform. * + * The default value is "#canvas" + * * This hint should be set before creating a window. * * \since This hint is available since SDL 3.2.0. @@ -724,7 +726,7 @@ extern "C" { * * The variable can be one of: * - * - "#window": the javascript window object + * - "#window": the javascript window object (default) * - "#document": the javascript document object * - "#screen": the javascript window.screen object * - "#canvas": the WebGL canvas element @@ -1721,43 +1723,6 @@ extern "C" { */ #define SDL_HINT_JOYSTICK_HIDAPI_STEAM_HORI "SDL_JOYSTICK_HIDAPI_STEAM_HORI" -/** - * A variable controlling whether the HIDAPI driver for some Logitech wheels - * should be used. - * - * This variable can be set to the following values: - * - * - "0": HIDAPI driver is not used - * - "1": HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI - */ -#define SDL_HINT_JOYSTICK_HIDAPI_LG4FF "SDL_JOYSTICK_HIDAPI_LG4FF" - -/** - * A variable controlling whether the HIDAPI driver for 8BitDo controllers - * should be used. - * - * This variable can be set to the following values: - * - * "0" - HIDAPI driver is not used. "1" - HIDAPI driver is used. - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI - */ -#define SDL_HINT_JOYSTICK_HIDAPI_8BITDO "SDL_JOYSTICK_HIDAPI_8BITDO" - -/** - * A variable controlling whether the HIDAPI driver for Flydigi controllers - * should be used. - * - * This variable can be set to the following values: - * - * "0" - HIDAPI driver is not used. "1" - HIDAPI driver is used. - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI - */ -#define SDL_HINT_JOYSTICK_HIDAPI_FLYDIGI "SDL_JOYSTICK_HIDAPI_FLYDIGI" - /** * A variable controlling whether the HIDAPI driver for Nintendo Switch * controllers should be used. @@ -1961,41 +1926,6 @@ extern "C" { */ #define SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED "SDL_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED" -/** - * A variable controlling whether the new HIDAPI driver for wired Xbox One - * (GIP) controllers should be used. - * - * The variable can be set to the following values: - * - * - "0": HIDAPI driver is not used. - * - "1": HIDAPI driver is used. - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE. - * - * This hint should be set before initializing joysticks and gamepads. - * - * \since This hint is available since SDL 3.4.0. - */ -#define SDL_HINT_JOYSTICK_HIDAPI_GIP "SDL_JOYSTICK_HIDAPI_GIP" - -/** - * A variable controlling whether the new HIDAPI driver for wired Xbox One - * (GIP) controllers should reset the controller if it can't get the metadata - * from the controller. - * - * The variable can be set to the following values: - * - * - "0": Assume this is a generic controller. - * - "1": Reset the controller to get metadata. - * - * By default the controller is not reset. - * - * This hint should be set before initializing joysticks and gamepads. - * - * \since This hint is available since SDL 3.4.0. - */ -#define SDL_HINT_JOYSTICK_HIDAPI_GIP_RESET_FOR_METADATA "SDL_JOYSTICK_HIDAPI_GIP_RESET_FOR_METADATA" - /** * A variable controlling whether IOKit should be used for controller * handling. @@ -3477,26 +3407,6 @@ extern "C" { */ #define SDL_HINT_VIDEO_MAC_FULLSCREEN_MENU_VISIBILITY "SDL_VIDEO_MAC_FULLSCREEN_MENU_VISIBILITY" -/** - * A variable controlling whether SDL will attempt to automatically set the - * destination display to a mode most closely matching that of the previous - * display if an exclusive fullscreen window is moved onto it. - * - * The variable can be set to the following values: - * - * - "0": SDL will not attempt to automatically set a matching mode on the - * destination display. If an exclusive fullscreen window is moved to a new - * display, the window will become fullscreen desktop. - * - "1": SDL will attempt to automatically set a mode on the destination - * display that most closely matches the mode of the display that the - * exclusive fullscreen window was previously on. (default) - * - * This hint can be set anytime. - * - * \since This hint is available since SDL 3.4.0. - */ -#define SDL_HINT_VIDEO_MATCH_EXCLUSIVE_MODE_ON_MOVE "SDL_VIDEO_MATCH_EXCLUSIVE_MODE_ON_MOVE" - /** * A variable controlling whether fullscreen windows are minimized when they * lose focus. diff --git a/Source/ThirdParty/SDL/SDL3/SDL_init.h b/Source/ThirdParty/SDL/SDL3/SDL_init.h index 557f2b995..27ebe4b0e 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_init.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_init.h @@ -101,7 +101,7 @@ typedef Uint32 SDL_InitFlags; * to run. * * See - * [Main callbacks in SDL3](https://wiki.libsdl.org/SDL3/README-main-functions#main-callbacks-in-sdl3) + * [Main callbacks in SDL3](https://wiki.libsdl.org/SDL3/README/main-functions#main-callbacks-in-sdl3) * for complete details. * * \since This enum is available since SDL 3.2.0. diff --git a/Source/ThirdParty/SDL/SDL3/SDL_joystick.h b/Source/ThirdParty/SDL/SDL3/SDL_joystick.h index cadccf689..d15668b66 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_joystick.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_joystick.h @@ -107,10 +107,6 @@ typedef Uint32 SDL_JoystickID; * This is by no means a complete list of everything that can be plugged into * a computer. * - * You may refer to - * [XInput Controller Types](https://learn.microsoft.com/en-us/windows/win32/xinput/xinput-and-controller-subtypes) - * table for a general understanding of each joystick type. - * * \since This enum is available since SDL 3.2.0. */ typedef enum SDL_JoystickType diff --git a/Source/ThirdParty/SDL/SDL3/SDL_log.h b/Source/ThirdParty/SDL/SDL3/SDL_log.h index 2019c3b46..3fd7ec2ed 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_log.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_log.h @@ -206,9 +206,6 @@ extern SDL_DECLSPEC void SDLCALL SDL_ResetLogPriorities(void); * SDL_LOG_PRIORITY_WARN and higher have a prefix showing their priority, e.g. * "WARNING: ". * - * This function makes a copy of its string argument, **prefix**, so it is not - * necessary to keep the value of **prefix** alive after the call returns. - * * \param priority the SDL_LogPriority to modify. * \param prefix the prefix to use for that log priority, or NULL to use no * prefix. diff --git a/Source/ThirdParty/SDL/SDL3/SDL_main.h b/Source/ThirdParty/SDL/SDL3/SDL_main.h index 305a1a383..905d78e96 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_main.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_main.h @@ -47,7 +47,7 @@ * * For more information, see: * - * https://wiki.libsdl.org/SDL3/README-main-functions + * https://wiki.libsdl.org/SDL3/README/main-functions */ #ifndef SDL_main_h_ @@ -68,7 +68,7 @@ * proper entry point for the platform, and all the other magic details * needed, like manually calling SDL_SetMainReady. * - * Please see [README-main-functions](README-main-functions), (or + * Please see [README/main-functions](README/main-functions), (or * docs/README-main-functions.md in the source tree) for a more detailed * explanation. * @@ -85,7 +85,7 @@ * SDL_AppQuit. The app should not provide a `main` function in this case, and * doing so will likely cause the build to fail. * - * Please see [README-main-functions](README-main-functions), (or + * Please see [README/main-functions](README/main-functions), (or * docs/README-main-functions.md in the source tree) for a more detailed * explanation. * @@ -347,10 +347,10 @@ extern SDLMAIN_DECLSPEC SDL_AppResult SDLCALL SDL_AppInit(void **appstate, int a * Apps implement this function when using SDL_MAIN_USE_CALLBACKS. If using a * standard "main" function, you should not supply this. * - * This function is called repeatedly by SDL after SDL_AppInit returns - * SDL_APP_CONTINUE. The function should operate as a single iteration the - * program's primary loop; it should update whatever state it needs and draw a - * new frame of video, usually. + * This function is called repeatedly by SDL after SDL_AppInit returns 0. The + * function should operate as a single iteration the program's primary loop; + * it should update whatever state it needs and draw a new frame of video, + * usually. * * On some platforms, this function will be called at the refresh rate of the * display (which might change during the life of your app!). There are no @@ -512,7 +512,7 @@ typedef int (SDLCALL *SDL_main_func)(int argc, char *argv[]); * SDL_MAIN_USE_CALLBACKS. * * Program startup is a surprisingly complex topic. Please see - * [README-main-functions](README-main-functions), (or + * [README/main-functions](README/main-functions), (or * docs/README-main-functions.md in the source tree) for a more detailed * explanation. * @@ -618,8 +618,8 @@ extern SDL_DECLSPEC int SDLCALL SDL_EnterAppMainCallbacks(int argc, char *argv[] * \param name the window class name, in UTF-8 encoding. If NULL, SDL * currently uses "SDL_app" but this isn't guaranteed. * \param style the value to use in WNDCLASSEX::style. If `name` is NULL, SDL - * currently uses `(CS_BYTEALIGNCLIENT \| CS_OWNDC)` regardless - * of what is specified here. + * currently uses `(CS_BYTEALIGNCLIENT | CS_OWNDC)` regardless of + * what is specified here. * \param hInst the HINSTANCE to use in WNDCLASSEX::hInstance. If zero, SDL * will use `GetModuleHandle(NULL)` instead. * \returns true on success or false on failure; call SDL_GetError() for more diff --git a/Source/ThirdParty/SDL/SDL3/SDL_mouse.h b/Source/ThirdParty/SDL/SDL3/SDL_mouse.h index 4ecd1d001..864135d2b 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_mouse.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_mouse.h @@ -160,44 +160,6 @@ typedef Uint32 SDL_MouseButtonFlags; #define SDL_BUTTON_X1MASK SDL_BUTTON_MASK(SDL_BUTTON_X1) #define SDL_BUTTON_X2MASK SDL_BUTTON_MASK(SDL_BUTTON_X2) -/** - * A callback used to transform mouse motion delta from raw values. - * - * This is called during SDL's handling of platform mouse events to scale the - * values of the resulting motion delta. - * - * \param userdata what was passed as `userdata` to - * SDL_SetRelativeMouseTransform(). - * \param timestamp the associated time at which this mouse motion event was - * received. - * \param window the associated window to which this mouse motion event was - * addressed. - * \param mouseID the associated mouse from which this mouse motion event was - * emitted. - * \param x pointer to a variable that will be treated as the resulting x-axis - * motion. - * \param y pointer to a variable that will be treated as the resulting y-axis - * motion. - * - * \threadsafety This callback is called by SDL's internal mouse input - * processing procedure, which may be a thread separate from the - * main event loop that is run at realtime priority. Stalling - * this thread with too much work in the callback can therefore - * potentially freeze the entire system. Care should be taken - * with proper synchronization practices when adding other side - * effects beyond mutation of the x and y values. - * - * \since This datatype is available since SDL 3.4.0. - * - * \sa SDL_SetRelativeMouseTransform - */ -typedef void (SDLCALL *SDL_MouseMotionTransformCallback)( - void *userdata, - Uint64 timestamp, - SDL_Window *window, - SDL_MouseID mouseID, - float *x, float *y -); /* Function prototypes */ @@ -418,24 +380,6 @@ extern SDL_DECLSPEC void SDLCALL SDL_WarpMouseInWindow(SDL_Window *window, */ extern SDL_DECLSPEC bool SDLCALL SDL_WarpMouseGlobal(float x, float y); -/** - * Set a user-defined function by which to transform relative mouse inputs. - * - * This overrides the relative system scale and relative speed scale hints. - * Should be called prior to enabling relative mouse mode, fails otherwise. - * - * \param callback a callback used to transform relative mouse motion, or NULL - * for default behavior. - * \param userdata a pointer that will be passed to `callback`. - * \returns true on success or false on failure; call SDL_GetError() for more - * information. - * - * \threadsafety This function should only be called on the main thread. - * - * \since This function is available since SDL 3.4.0. - */ -extern SDL_DECLSPEC bool SDLCALL SDL_SetRelativeMouseTransform(SDL_MouseMotionTransformCallback callback, void *userdata); - /** * Set relative mouse mode for a window. * @@ -578,16 +522,15 @@ extern SDL_DECLSPEC SDL_Cursor * SDLCALL SDL_CreateCursor(const Uint8 *data, /** * Create a color cursor. * - * If this function is passed a surface with alternate representations added - * with SDL_AddSurfaceAlternateImage(), the surface will be interpreted as the - * content to be used for 100% display scale, and the alternate - * representations will be used for high DPI situations. For example, if the - * original surface is 32x32, then on a 2x macOS display or 200% display scale - * on Windows, a 64x64 version of the image will be used, if available. If a - * matching version of the image isn't available, the closest larger size - * image will be downscaled to the appropriate size and be used instead, if - * available. Otherwise, the closest smaller image will be upscaled and be - * used instead. + * If this function is passed a surface with alternate representations, the + * surface will be interpreted as the content to be used for 100% display + * scale, and the alternate representations will be used for high DPI + * situations. For example, if the original surface is 32x32, then on a 2x + * macOS display or 200% display scale on Windows, a 64x64 version of the + * image will be used, if available. If a matching version of the image isn't + * available, the closest larger size image will be downscaled to the + * appropriate size and be used instead, if available. Otherwise, the closest + * smaller image will be upscaled and be used instead. * * \param surface an SDL_Surface structure representing the cursor image. * \param hot_x the x position of the cursor hot spot. @@ -599,7 +542,6 @@ extern SDL_DECLSPEC SDL_Cursor * SDLCALL SDL_CreateCursor(const Uint8 *data, * * \since This function is available since SDL 3.2.0. * - * \sa SDL_AddSurfaceAlternateImage * \sa SDL_CreateCursor * \sa SDL_CreateSystemCursor * \sa SDL_DestroyCursor diff --git a/Source/ThirdParty/SDL/SDL3/SDL_mutex.h b/Source/ThirdParty/SDL/SDL3/SDL_mutex.h index f1b664046..c88ec1531 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_mutex.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_mutex.h @@ -942,7 +942,7 @@ typedef enum SDL_InitStatus * Here is an example of using this: * * ```c - * static SDL_InitState init; + * static SDL_AtomicInitState init; * * bool InitSystem(void) * { diff --git a/Source/ThirdParty/SDL/SDL3/SDL_pixels.h b/Source/ThirdParty/SDL/SDL3/SDL_pixels.h index f9d6e9e30..39596c1c9 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_pixels.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_pixels.h @@ -1379,7 +1379,7 @@ extern SDL_DECLSPEC Uint32 SDLCALL SDL_MapRGBA(const SDL_PixelFormatDetails *for * (e.g., a completely white pixel in 16-bit RGB565 format would return [0xff, * 0xff, 0xff] not [0xf8, 0xfc, 0xf8]). * - * \param pixelvalue a pixel value. + * \param pixel a pixel value. * \param format a pointer to SDL_PixelFormatDetails describing the pixel * format. * \param palette an optional palette for indexed formats, may be NULL. @@ -1397,7 +1397,7 @@ extern SDL_DECLSPEC Uint32 SDLCALL SDL_MapRGBA(const SDL_PixelFormatDetails *for * \sa SDL_MapRGB * \sa SDL_MapRGBA */ -extern SDL_DECLSPEC void SDLCALL SDL_GetRGB(Uint32 pixelvalue, const SDL_PixelFormatDetails *format, const SDL_Palette *palette, Uint8 *r, Uint8 *g, Uint8 *b); +extern SDL_DECLSPEC void SDLCALL SDL_GetRGB(Uint32 pixel, const SDL_PixelFormatDetails *format, const SDL_Palette *palette, Uint8 *r, Uint8 *g, Uint8 *b); /** * Get RGBA values from a pixel in the specified format. @@ -1410,7 +1410,7 @@ extern SDL_DECLSPEC void SDLCALL SDL_GetRGB(Uint32 pixelvalue, const SDL_PixelFo * If the surface has no alpha component, the alpha will be returned as 0xff * (100% opaque). * - * \param pixelvalue a pixel value. + * \param pixel a pixel value. * \param format a pointer to SDL_PixelFormatDetails describing the pixel * format. * \param palette an optional palette for indexed formats, may be NULL. @@ -1429,7 +1429,7 @@ extern SDL_DECLSPEC void SDLCALL SDL_GetRGB(Uint32 pixelvalue, const SDL_PixelFo * \sa SDL_MapRGB * \sa SDL_MapRGBA */ -extern SDL_DECLSPEC void SDLCALL SDL_GetRGBA(Uint32 pixelvalue, const SDL_PixelFormatDetails *format, const SDL_Palette *palette, Uint8 *r, Uint8 *g, Uint8 *b, Uint8 *a); +extern SDL_DECLSPEC void SDLCALL SDL_GetRGBA(Uint32 pixel, const SDL_PixelFormatDetails *format, const SDL_Palette *palette, Uint8 *r, Uint8 *g, Uint8 *b, Uint8 *a); /* Ends C function definitions when using C++ */ diff --git a/Source/ThirdParty/SDL/SDL3/SDL_platform_defines.h b/Source/ThirdParty/SDL/SDL3/SDL_platform_defines.h index f7f14be00..6b240a8be 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_platform_defines.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_platform_defines.h @@ -317,7 +317,7 @@ #define SDL_PLATFORM_CYGWIN 1 #endif -#if (defined(_WIN32) || defined(SDL_PLATFORM_CYGWIN)) && !defined(__NGAGE__) +#if defined(_WIN32) || defined(SDL_PLATFORM_CYGWIN) /** * A preprocessor macro that is only defined if compiling for Windows. @@ -473,15 +473,4 @@ #define SDL_PLATFORM_3DS 1 #endif -#ifdef __NGAGE__ - -/** - * A preprocessor macro that is only defined if compiling for the Nokia - * N-Gage. - * - * \since This macro is available since SDL 3.4.0. - */ -#define SDL_PLATFORM_NGAGE 1 -#endif - #endif /* SDL_platform_defines_h_ */ diff --git a/Source/ThirdParty/SDL/SDL3/SDL_process.h b/Source/ThirdParty/SDL/SDL3/SDL_process.h index 57e3afd94..511b2f9c5 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_process.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_process.h @@ -166,9 +166,6 @@ typedef enum SDL_ProcessIO * - `SDL_PROP_PROCESS_CREATE_ENVIRONMENT_POINTER`: an SDL_Environment * pointer. If this property is set, it will be the entire environment for * the process, otherwise the current environment is used. - * - `SDL_PROP_PROCESS_CREATE_WORKING_DIRECTORY_STRING`: a UTF-8 encoded - * string representing the working directory for the process, defaults to - * the current working directory. * - `SDL_PROP_PROCESS_CREATE_STDIN_NUMBER`: an SDL_ProcessIO value describing * where standard input for the process comes from, defaults to * `SDL_PROCESS_STDIO_NULL`. @@ -195,12 +192,6 @@ typedef enum SDL_ProcessIO * run in the background. In this case the default input and output is * `SDL_PROCESS_STDIO_NULL` and the exitcode of the process is not * available, and will always be 0. - * - `SDL_PROP_PROCESS_CREATE_CMDLINE_STRING`: a string containing the program - * to run and any parameters. This string is passed directly to - * `CreateProcess` on Windows, and does nothing on other platforms. This - * property is only important if you want to start programs that does - * non-standard command-line processing, and in most cases using - * `SDL_PROP_PROCESS_CREATE_ARGS_POINTER` is sufficient. * * On POSIX platforms, wait() and waitpid(-1, ...) should not be called, and * SIGCHLD should not be ignored or handled because those would prevent SDL @@ -228,7 +219,6 @@ extern SDL_DECLSPEC SDL_Process * SDLCALL SDL_CreateProcessWithProperties(SDL_Pr #define SDL_PROP_PROCESS_CREATE_ARGS_POINTER "SDL.process.create.args" #define SDL_PROP_PROCESS_CREATE_ENVIRONMENT_POINTER "SDL.process.create.environment" -#define SDL_PROP_PROCESS_CREATE_WORKING_DIRECTORY_STRING "SDL.process.create.working_directory" #define SDL_PROP_PROCESS_CREATE_STDIN_NUMBER "SDL.process.create.stdin_option" #define SDL_PROP_PROCESS_CREATE_STDIN_POINTER "SDL.process.create.stdin_source" #define SDL_PROP_PROCESS_CREATE_STDOUT_NUMBER "SDL.process.create.stdout_option" @@ -237,7 +227,6 @@ extern SDL_DECLSPEC SDL_Process * SDLCALL SDL_CreateProcessWithProperties(SDL_Pr #define SDL_PROP_PROCESS_CREATE_STDERR_POINTER "SDL.process.create.stderr_source" #define SDL_PROP_PROCESS_CREATE_STDERR_TO_STDOUT_BOOLEAN "SDL.process.create.stderr_to_stdout" #define SDL_PROP_PROCESS_CREATE_BACKGROUND_BOOLEAN "SDL.process.create.background" -#define SDL_PROP_PROCESS_CREATE_CMDLINE_STRING "SDL.process.create.cmdline" /** * Get the properties associated with a process. diff --git a/Source/ThirdParty/SDL/SDL3/SDL_rect.h b/Source/ThirdParty/SDL/SDL3/SDL_rect.h index e09f92a46..eb2d34a69 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_rect.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_rect.h @@ -324,7 +324,7 @@ SDL_FORCE_INLINE bool SDL_PointInRectFloat(const SDL_FPoint *p, const SDL_FRect } /** - * Determine whether a floating point rectangle takes no space. + * Determine whether a floating point rectangle can contain any point. * * A rectangle is considered "empty" for this function if `r` is NULL, or if * `r`'s width and/or height are < 0.0f. diff --git a/Source/ThirdParty/SDL/SDL3/SDL_render.h b/Source/ThirdParty/SDL/SDL3/SDL_render.h index e2e42750c..c9d184cc0 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_render.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_render.h @@ -59,7 +59,6 @@ #include #include #include -#include #include /* Set up for C function definitions, even when using C++ */ @@ -98,21 +97,6 @@ typedef enum SDL_TextureAccess SDL_TEXTUREACCESS_TARGET /**< Texture can be used as a render target */ } SDL_TextureAccess; -/** - * The addressing mode for a texture when used in SDL_RenderGeometry(). - * - * This affects how texture coordinates are interpreted outside of [0, 1] - * - * \since This enum is available since SDL 3.4.0. - */ -typedef enum SDL_TextureAddressMode -{ - SDL_TEXTURE_ADDRESS_INVALID = -1, - SDL_TEXTURE_ADDRESS_AUTO, /**< Wrapping is enabled if texture coordinates are outside [0, 1], this is the default */ - SDL_TEXTURE_ADDRESS_CLAMP, /**< Texture coordinates are clamped to the [0, 1] range */ - SDL_TEXTURE_ADDRESS_WRAP, /**< The texture is repeated (tiled) */ -} SDL_TextureAddressMode; - /** * How the logical size is mapped to the output. * @@ -283,15 +267,6 @@ extern SDL_DECLSPEC SDL_Renderer * SDLCALL SDL_CreateRenderer(SDL_Window *window * present synchronized with the refresh rate. This property can take any * value that is supported by SDL_SetRenderVSync() for the renderer. * - * With the SDL GPU renderer: - * - * - `SDL_PROP_RENDERER_CREATE_GPU_SHADERS_SPIRV_BOOLEAN`: the app is able to - * provide SPIR-V shaders to SDL_GPURenderState, optional. - * - `SDL_PROP_RENDERER_CREATE_GPU_SHADERS_DXIL_BOOLEAN`: the app is able to - * provide DXIL shaders to SDL_GPURenderState, optional. - * - `SDL_PROP_RENDERER_CREATE_GPU_SHADERS_MSL_BOOLEAN`: the app is able to - * provide MSL shaders to SDL_GPURenderState, optional. - * * With the vulkan renderer: * * - `SDL_PROP_RENDERER_CREATE_VULKAN_INSTANCE_POINTER`: the VkInstance to use @@ -328,9 +303,6 @@ extern SDL_DECLSPEC SDL_Renderer * SDLCALL SDL_CreateRendererWithProperties(SDL_ #define SDL_PROP_RENDERER_CREATE_SURFACE_POINTER "SDL.renderer.create.surface" #define SDL_PROP_RENDERER_CREATE_OUTPUT_COLORSPACE_NUMBER "SDL.renderer.create.output_colorspace" #define SDL_PROP_RENDERER_CREATE_PRESENT_VSYNC_NUMBER "SDL.renderer.create.present_vsync" -#define SDL_PROP_RENDERER_CREATE_GPU_SHADERS_SPIRV_BOOLEAN "SDL.renderer.create.gpu.shaders_spirv" -#define SDL_PROP_RENDERER_CREATE_GPU_SHADERS_DXIL_BOOLEAN "SDL.renderer.create.gpu.shaders_dxil" -#define SDL_PROP_RENDERER_CREATE_GPU_SHADERS_MSL_BOOLEAN "SDL.renderer.create.gpu.shaders_msl" #define SDL_PROP_RENDERER_CREATE_VULKAN_INSTANCE_POINTER "SDL.renderer.create.vulkan.instance" #define SDL_PROP_RENDERER_CREATE_VULKAN_SURFACE_NUMBER "SDL.renderer.create.vulkan.surface" #define SDL_PROP_RENDERER_CREATE_VULKAN_PHYSICAL_DEVICE_POINTER "SDL.renderer.create.vulkan.physical_device" @@ -338,37 +310,6 @@ extern SDL_DECLSPEC SDL_Renderer * SDLCALL SDL_CreateRendererWithProperties(SDL_ #define SDL_PROP_RENDERER_CREATE_VULKAN_GRAPHICS_QUEUE_FAMILY_INDEX_NUMBER "SDL.renderer.create.vulkan.graphics_queue_family_index" #define SDL_PROP_RENDERER_CREATE_VULKAN_PRESENT_QUEUE_FAMILY_INDEX_NUMBER "SDL.renderer.create.vulkan.present_queue_family_index" -/** - * Create a 2D GPU rendering context for a window, with support for the - * specified shader format. - * - * This is a convenience function to create a SDL GPU backed renderer, - * intended to be used with SDL_GPURenderState. The resulting renderer will - * support shaders in one of the specified shader formats. - * - * If no available GPU driver supports any of the specified shader formats, - * this function will fail. - * - * \param window the window where rendering is displayed. - * \param format_flags a bitflag indicating which shader formats the app is - * able to provide. - * \param device a pointer filled with the associated GPU device, or NULL on - * error. - * \returns a valid rendering context or NULL if there was an error; call - * SDL_GetError() for more information. - * - * \threadsafety This function should only be called on the main thread. - * - * \since This function is available since SDL 3.4.0. - * - * \sa SDL_CreateRendererWithProperties - * \sa SDL_GetGPUShaderFormats - * \sa SDL_CreateGPUShader - * \sa SDL_CreateGPURenderState - * \sa SDL_SetRenderGPUState - */ -extern SDL_DECLSPEC SDL_Renderer * SDLCALL SDL_CreateGPURenderer(SDL_Window *window, SDL_GPUShaderFormat format_flags, SDL_GPUDevice **device); - /** * Create a 2D software rendering context for a surface. * @@ -2293,43 +2234,6 @@ extern SDL_DECLSPEC bool SDLCALL SDL_RenderTextureTiled(SDL_Renderer *renderer, */ extern SDL_DECLSPEC bool SDLCALL SDL_RenderTexture9Grid(SDL_Renderer *renderer, SDL_Texture *texture, const SDL_FRect *srcrect, float left_width, float right_width, float top_height, float bottom_height, float scale, const SDL_FRect *dstrect); -/** - * Perform a scaled copy using the 9-grid algorithm to the current rendering - * target at subpixel precision. - * - * The pixels in the texture are split into a 3x3 grid, using the different - * corner sizes for each corner, and the sides and center making up the - * remaining pixels. The corners are then scaled using `scale` and fit into - * the corners of the destination rectangle. The sides and center are then - * tiled into place to cover the remaining destination rectangle. - * - * \param renderer the renderer which should copy parts of a texture. - * \param texture the source texture. - * \param srcrect the SDL_Rect structure representing the rectangle to be used - * for the 9-grid, or NULL to use the entire texture. - * \param left_width the width, in pixels, of the left corners in `srcrect`. - * \param right_width the width, in pixels, of the right corners in `srcrect`. - * \param top_height the height, in pixels, of the top corners in `srcrect`. - * \param bottom_height the height, in pixels, of the bottom corners in - * `srcrect`. - * \param scale the scale used to transform the corner of `srcrect` into the - * corner of `dstrect`, or 0.0f for an unscaled copy. - * \param dstrect a pointer to the destination rectangle, or NULL for the - * entire rendering target. - * \param tileScale the scale used to transform the borders and center of - * `srcrect` into the borders and middle of `dstrect`, or - * 1.0f for an unscaled copy. - * \returns true on success or false on failure; call SDL_GetError() for more - * information. - * - * \threadsafety This function should only be called on the main thread. - * - * \since This function is available since SDL 3.4.0. - * - * \sa SDL_RenderTexture - */ -extern SDL_DECLSPEC bool SDLCALL SDL_RenderTexture9GridTiled(SDL_Renderer *renderer, SDL_Texture *texture, const SDL_FRect *srcrect, float left_width, float right_width, float top_height, float bottom_height, float scale, const SDL_FRect *dstrect, float tileScale); - /** * Render a list of triangles, optionally using a texture and indices into the * vertex array Color and alpha modulation is done per vertex @@ -2351,7 +2255,6 @@ extern SDL_DECLSPEC bool SDLCALL SDL_RenderTexture9GridTiled(SDL_Renderer *rende * \since This function is available since SDL 3.2.0. * * \sa SDL_RenderGeometryRaw - * \sa SDL_SetRenderTextureAddressMode */ extern SDL_DECLSPEC bool SDLCALL SDL_RenderGeometry(SDL_Renderer *renderer, SDL_Texture *texture, @@ -2384,7 +2287,6 @@ extern SDL_DECLSPEC bool SDLCALL SDL_RenderGeometry(SDL_Renderer *renderer, * \since This function is available since SDL 3.2.0. * * \sa SDL_RenderGeometry - * \sa SDL_SetRenderTextureAddressMode */ extern SDL_DECLSPEC bool SDLCALL SDL_RenderGeometryRaw(SDL_Renderer *renderer, SDL_Texture *texture, @@ -2394,44 +2296,6 @@ extern SDL_DECLSPEC bool SDLCALL SDL_RenderGeometryRaw(SDL_Renderer *renderer, int num_vertices, const void *indices, int num_indices, int size_indices); -/** - * Set the texture addressing mode used in SDL_RenderGeometry(). - * - * \param renderer the rendering context. - * \param u_mode the SDL_TextureAddressMode to use for horizontal texture - * coordinates in SDL_RenderGeometry(). - * \param v_mode the SDL_TextureAddressMode to use for vertical texture - * coordinates in SDL_RenderGeometry(). - * \returns true on success or false on failure; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 3.4.0. - * - * \sa SDL_RenderGeometry - * \sa SDL_RenderGeometryRaw - * \sa SDL_GetRenderTextureAddressMode - */ -extern SDL_DECLSPEC bool SDLCALL SDL_SetRenderTextureAddressMode(SDL_Renderer *renderer, SDL_TextureAddressMode u_mode, SDL_TextureAddressMode v_mode); - -/** - * Get the texture addressing mode used in SDL_RenderGeometry(). - * - * \param renderer the rendering context. - * \param u_mode a pointer filled in with the SDL_TextureAddressMode to use - * for horizontal texture coordinates in SDL_RenderGeometry(), - * may be NULL. - * \param v_mode a pointer filled in with the SDL_TextureAddressMode to use - * for vertical texture coordinates in SDL_RenderGeometry(), may - * be NULL. - * \returns true on success or false on failure; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 3.4.0. - * - * \sa SDL_SetRenderTextureAddressMode - */ -extern SDL_DECLSPEC bool SDLCALL SDL_GetRenderTextureAddressMode(SDL_Renderer *renderer, SDL_TextureAddressMode *u_mode, SDL_TextureAddressMode *v_mode); - /** * Read pixels from the current rendering target. * @@ -2483,7 +2347,8 @@ extern SDL_DECLSPEC SDL_Surface * SDLCALL SDL_RenderReadPixels(SDL_Renderer *ren * should not be done; you are only required to change back the rendering * target to default via `SDL_SetRenderTarget(renderer, NULL)` afterwards, as * textures by themselves do not have a concept of backbuffers. Calling - * SDL_RenderPresent while rendering to a texture will fail. + * SDL_RenderPresent while rendering to a texture will still update the screen + * with any current drawing that has been done _to the window itself_. * * \param renderer the rendering context. * \returns true on success or false on failure; call SDL_GetError() for more @@ -2771,161 +2636,6 @@ extern SDL_DECLSPEC bool SDLCALL SDL_RenderDebugText(SDL_Renderer *renderer, flo */ extern SDL_DECLSPEC bool SDLCALL SDL_RenderDebugTextFormat(SDL_Renderer *renderer, float x, float y, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(4); -/** - * Set default scale mode for new textures for given renderer. - * - * When a renderer is created, scale_mode defaults to SDL_SCALEMODE_LINEAR. - * - * \param renderer the renderer to update. - * \param scale_mode the scale mode to change to for new textures. - * \returns true on success or false on failure; call SDL_GetError() for more - * information. - * - * \threadsafety This function should only be called on the main thread. - * - * \since This function is available since SDL 3.4.0. - * - * \sa SDL_GetDefaultTextureScaleMode - */ -extern SDL_DECLSPEC bool SDLCALL SDL_SetDefaultTextureScaleMode(SDL_Renderer *renderer, SDL_ScaleMode scale_mode); - -/** - * Get default texture scale mode of the given renderer. - * - * \param renderer the renderer to get data from. - * \param scale_mode a SDL_ScaleMode filled with current default scale mode. - * See SDL_SetDefaultTextureScaleMode() for the meaning of - * the value. - * \returns true on success or false on failure; call SDL_GetError() for more - * information. - * - * \threadsafety This function should only be called on the main thread. - * - * \since This function is available since SDL 3.4.0. - * - * \sa SDL_SetDefaultTextureScaleMode - */ -extern SDL_DECLSPEC bool SDLCALL SDL_GetDefaultTextureScaleMode(SDL_Renderer *renderer, SDL_ScaleMode *scale_mode); - -/** - * GPU render state description. - * - * This structure should be initialized using SDL_INIT_INTERFACE(). - * - * \since This struct is available since SDL 3.4.0. - * - * \sa SDL_CreateGPURenderState - */ -typedef struct SDL_GPURenderStateDesc -{ - Uint32 version; /**< the version of this interface */ - - SDL_GPUShader *fragment_shader; /**< The fragment shader to use when this render state is active */ - - Sint32 num_sampler_bindings; /**< The number of additional fragment samplers to bind when this render state is active */ - const SDL_GPUTextureSamplerBinding *sampler_bindings; /**< Additional fragment samplers to bind when this render state is active */ - - Sint32 num_storage_textures; /**< The number of storage textures to bind when this render state is active */ - SDL_GPUTexture *const *storage_textures; /**< Storage textures to bind when this render state is active */ - - Sint32 num_storage_buffers; /**< The number of storage buffers to bind when this render state is active */ - SDL_GPUBuffer *const *storage_buffers; /**< Storage buffers to bind when this render state is active */ -} SDL_GPURenderStateDesc; - -/* Check the size of SDL_GPURenderStateDesc - * - * If this assert fails, either the compiler is padding to an unexpected size, - * or the interface has been updated and this should be updated to match and - * the code using this interface should be updated to handle the old version. - */ -SDL_COMPILE_TIME_ASSERT(SDL_GPURenderStateDesc_SIZE, - (sizeof(void *) == 4 && sizeof(SDL_GPURenderStateDesc) == 32) || - (sizeof(void *) == 8 && sizeof(SDL_GPURenderStateDesc) == 64)); - -/** - * A custom GPU render state. - * - * \since This struct is available since SDL 3.4.0. - * - * \sa SDL_CreateGPURenderState - * \sa SDL_SetGPURenderStateFragmentUniforms - * \sa SDL_SetRenderGPUState - * \sa SDL_DestroyGPURenderState - */ -typedef struct SDL_GPURenderState SDL_GPURenderState; - -/** - * Create custom GPU render state. - * - * \param renderer the renderer to use. - * \param desc GPU render state description, initialized using - * SDL_INIT_INTERFACE(). - * \returns a custom GPU render state or NULL on failure; call SDL_GetError() - * for more information. - * - * \threadsafety This function should be called on the thread that created the - * renderer. - * - * \since This function is available since SDL 3.4.0. - * - * \sa SDL_SetGPURenderStateFragmentUniforms - * \sa SDL_SetRenderGPUState - * \sa SDL_DestroyGPURenderState - */ -extern SDL_DECLSPEC SDL_GPURenderState * SDLCALL SDL_CreateGPURenderState(SDL_Renderer *renderer, SDL_GPURenderStateDesc *desc); - -/** - * Set fragment shader uniform variables in a custom GPU render state. - * - * The data is copied and will be pushed using - * SDL_PushGPUFragmentUniformData() during draw call execution. - * - * \param state the state to modify. - * \param slot_index the fragment uniform slot to push data to. - * \param data client data to write. - * \param length the length of the data to write. - * \returns true on success or false on failure; call SDL_GetError() for more - * information. - * - * \threadsafety This function should be called on the thread that created the - * renderer. - * - * \since This function is available since SDL 3.4.0. - */ -extern SDL_DECLSPEC bool SDLCALL SDL_SetGPURenderStateFragmentUniforms(SDL_GPURenderState *state, Uint32 slot_index, const void *data, Uint32 length); - -/** - * Set custom GPU render state. - * - * This function sets custom GPU render state for subsequent draw calls. This - * allows using custom shaders with the GPU renderer. - * - * \param renderer the renderer to use. - * \param state the state to to use, or NULL to clear custom GPU render state. - * \returns true on success or false on failure; call SDL_GetError() for more - * information. - * - * \threadsafety This function should be called on the thread that created the - * renderer. - * - * \since This function is available since SDL 3.4.0. - */ -extern SDL_DECLSPEC bool SDLCALL SDL_SetRenderGPUState(SDL_Renderer *renderer, SDL_GPURenderState *state); - -/** - * Destroy custom GPU render state. - * - * \param state the state to destroy. - * - * \threadsafety This function should be called on the thread that created the - * renderer. - * - * \since This function is available since SDL 3.4.0. - * - * \sa SDL_CreateGPURenderState - */ -extern SDL_DECLSPEC void SDLCALL SDL_DestroyGPURenderState(SDL_GPURenderState *state); - /* Ends C function definitions when using C++ */ #ifdef __cplusplus } diff --git a/Source/ThirdParty/SDL/SDL3/SDL_revision.h b/Source/ThirdParty/SDL/SDL3/SDL_revision.h index 6c0ba8734..ee4722f48 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_revision.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_revision.h @@ -31,9 +31,9 @@ /* #undef SDL_VENDOR_INFO */ #ifdef SDL_VENDOR_INFO -#define SDL_REVISION "SDL3-3.3.0-release-3.2.6-664-g0e262dfd4 (" SDL_VENDOR_INFO ")" +#define SDL_REVISION "SDL3-3.2.20-release-3.2.20 (" SDL_VENDOR_INFO ")" #else -#define SDL_REVISION "SDL3-3.3.0-release-3.2.6-664-g0e262dfd4" +#define SDL_REVISION "SDL3-3.2.20-release-3.2.20" #endif #endif /* SDL_revision_h_ */ diff --git a/Source/ThirdParty/SDL/SDL3/SDL_scancode.h b/Source/ThirdParty/SDL/SDL3/SDL_scancode.h index 9650a6cfe..6e9be47e6 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_scancode.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_scancode.h @@ -208,7 +208,7 @@ typedef enum SDL_Scancode SDL_SCANCODE_NONUSBACKSLASH = 100, /**< This is the additional key that ISO * keyboards have over ANSI ones, - * located between left shift and Y. + * located between left shift and Z. * Produces GRAVE ACCENT and TILDE in a * US or UK Mac layout, REVERSE SOLIDUS * (backslash) and VERTICAL LINE in a diff --git a/Source/ThirdParty/SDL/SDL3/SDL_stdinc.h b/Source/ThirdParty/SDL/SDL3/SDL_stdinc.h index f198de75e..7df253fec 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_stdinc.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_stdinc.h @@ -2119,7 +2119,7 @@ extern SDL_DECLSPEC int SDLCALL SDL_abs(int x); * * \param x the first value to compare. * \param y the second value to compare. - * \returns the greater of `x` and `y`. + * \returns the lesser of `x` and `y`. * * \threadsafety It is safe to call this macro from any thread. * diff --git a/Source/ThirdParty/SDL/SDL3/SDL_storage.h b/Source/ThirdParty/SDL/SDL3/SDL_storage.h index 1b20b34ad..6837ebaac 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_storage.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_storage.h @@ -334,10 +334,6 @@ typedef struct SDL_Storage SDL_Storage; /** * Opens up a read-only container for the application's filesystem. * - * By default, SDL_OpenTitleStorage uses the generic storage implementation. - * When the path override is not provided, the generic implementation will use - * the output of SDL_GetBasePath as the base path. - * * \param override a path to override the backend's default title root. * \param props a property list that may contain backend-specific information. * \returns a title storage container on success or NULL on failure; call diff --git a/Source/ThirdParty/SDL/SDL3/SDL_surface.h b/Source/ThirdParty/SDL/SDL3/SDL_surface.h index 69f4d69ca..15fce042f 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_surface.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_surface.h @@ -32,8 +32,7 @@ * There is also a simple .bmp loader, SDL_LoadBMP(). SDL itself does not * provide loaders for various other file formats, but there are several * excellent external libraries that do, including its own satellite library, - * [SDL_image](https://wiki.libsdl.org/SDL3_image) - * : + * SDL_image: * * https://github.com/libsdl-org/SDL_image */ @@ -84,9 +83,8 @@ typedef Uint32 SDL_SurfaceFlags; typedef enum SDL_ScaleMode { SDL_SCALEMODE_INVALID = -1, - SDL_SCALEMODE_NEAREST, /**< nearest pixel sampling */ - SDL_SCALEMODE_LINEAR, /**< linear filtering */ - SDL_SCALEMODE_PIXELART /**< nearest pixel sampling with improved scaling for pixel art */ + SDL_SCALEMODE_NEAREST, /**< nearest pixel sampling */ + SDL_SCALEMODE_LINEAR /**< linear filtering */ } SDL_ScaleMode; /** diff --git a/Source/ThirdParty/SDL/SDL3/SDL_system.h b/Source/ThirdParty/SDL/SDL3/SDL_system.h index 625db182e..294089ff4 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_system.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_system.h @@ -247,14 +247,14 @@ typedef void (SDLCALL *SDL_iOSAnimationCallback)(void *userdata); * * For more information see: * - * https://wiki.libsdl.org/SDL3/README-ios + * https://wiki.libsdl.org/SDL3/README/ios * * Note that if you use the "main callbacks" instead of a standard C `main` * function, you don't have to use this API, as SDL will manage this for you. * * Details on main callbacks are here: * - * https://wiki.libsdl.org/SDL3/README-main-functions + * https://wiki.libsdl.org/SDL3/README/main-functions * * \param window the window for which the animation callback should be set. * \param interval the number of frames after which **callback** will be diff --git a/Source/ThirdParty/SDL/SDL3/SDL_timer.h b/Source/ThirdParty/SDL/SDL3/SDL_timer.h index 9088a7927..cf94881d5 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_timer.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_timer.h @@ -185,12 +185,10 @@ extern "C" { #define SDL_NS_TO_US(NS) ((NS) / SDL_NS_PER_US) /** - * Get the number of milliseconds that have elapsed since the SDL library - * initialization. + * Get the number of milliseconds since SDL library initialization. * - * \returns an unsigned 64‑bit integer that represents the number of - * milliseconds that have elapsed since the SDL library was - * initialized (typically via a call to SDL_Init). + * \returns an unsigned 64-bit value representing the number of milliseconds + * since the SDL library initialized. * * \threadsafety It is safe to call this function from any thread. * diff --git a/Source/ThirdParty/SDL/SDL3/SDL_version.h b/Source/ThirdParty/SDL/SDL3/SDL_version.h index e3fb742df..7443d5298 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_version.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_version.h @@ -53,7 +53,7 @@ extern "C" { * * \since This macro is available since SDL 3.2.0. */ -#define SDL_MINOR_VERSION 3 +#define SDL_MINOR_VERSION 2 /** * The current micro (or patchlevel) version of the SDL headers. @@ -62,7 +62,7 @@ extern "C" { * * \since This macro is available since SDL 3.2.0. */ -#define SDL_MICRO_VERSION 0 +#define SDL_MICRO_VERSION 20 /** * This macro turns the version numbers into a numeric value. @@ -148,14 +148,13 @@ extern "C" { extern SDL_DECLSPEC int SDLCALL SDL_GetVersion(void); /** - * Get the code revision of the SDL library that is linked against your - * program. + * Get the code revision of SDL that is linked against your program. * - * This value is the revision of the code you are linking against and may be + * This value is the revision of the code you are linked with and may be * different from the code you are compiling with, which is found in the * constant SDL_REVISION. * - * The revision is an arbitrary string (a hash value) uniquely identifying the + * The revision is arbitrary string (a hash value) uniquely identifying the * exact revision of the SDL library in use, and is only useful in comparing * against other revisions. It is NOT an incrementing number. * diff --git a/Source/ThirdParty/SDL/SDL3/SDL_video.h b/Source/ThirdParty/SDL/SDL3/SDL_video.h index d5107b430..3b3676d14 100644 --- a/Source/ThirdParty/SDL/SDL3/SDL_video.h +++ b/Source/ThirdParty/SDL/SDL3/SDL_video.h @@ -307,21 +307,6 @@ typedef enum SDL_FlashOperation SDL_FLASH_UNTIL_FOCUSED /**< Flash the window until it gets focus */ } SDL_FlashOperation; -/** - * Window progress state - * - * \since This enum is available since SDL 3.2.8. - */ -typedef enum SDL_ProgressState -{ - SDL_PROGRESS_STATE_INVALID = -1, /**< An invalid progress state indicating an error; check SDL_GetError() */ - SDL_PROGRESS_STATE_NONE, /**< No progress bar is shown */ - SDL_PROGRESS_STATE_INDETERMINATE, /**< The progress bar is shown in a indeterminate state */ - SDL_PROGRESS_STATE_NORMAL, /**< The progress bar is shown in a normal state */ - SDL_PROGRESS_STATE_PAUSED, /**< The progress bar is shown in a paused state */ - SDL_PROGRESS_STATE_ERROR /**< The progress bar is shown in a state indicating the application had an error */ -} SDL_ProgressState; - /** * An opaque handle to an OpenGL context. * @@ -632,11 +617,6 @@ extern SDL_DECLSPEC SDL_DisplayID SDLCALL SDL_GetPrimaryDisplay(void); * responsible for any coordinate transformations needed to conform to the * requested display orientation. * - * On Wayland: - * - * - `SDL_PROP_DISPLAY_WAYLAND_WL_OUTPUT_POINTER`: the wl_output associated - * with the display - * * \param displayID the instance ID of the display to query. * \returns a valid property ID on success or 0 on failure; call * SDL_GetError() for more information. @@ -649,7 +629,6 @@ extern SDL_DECLSPEC SDL_PropertiesID SDLCALL SDL_GetDisplayProperties(SDL_Displa #define SDL_PROP_DISPLAY_HDR_ENABLED_BOOLEAN "SDL.display.HDR_enabled" #define SDL_PROP_DISPLAY_KMSDRM_PANEL_ORIENTATION_NUMBER "SDL.display.KMSDRM.panel_orientation" -#define SDL_PROP_DISPLAY_WAYLAND_WL_OUTPUT_POINTER "SDL.display.wayland.wl_output" /** * Get the name of a display in UTF-8 encoding. @@ -1188,15 +1167,14 @@ extern SDL_DECLSPEC SDL_Window * SDLCALL SDL_CreateWindow(const char *title, int * Popup windows implicitly do not have a border/decorations and do not appear * on the taskbar/dock or in lists of windows such as alt-tab menus. * - * By default, popup window positions will automatically be constrained to - * keep the entire window within display bounds. This can be overridden with - * the `SDL_PROP_WINDOW_CREATE_CONSTRAIN_POPUP_BOOLEAN` property. + * By default, popup window positions will automatically be constrained to keep + * the entire window within display bounds. This can be overridden with the + * `SDL_PROP_WINDOW_CREATE_CONSTRAIN_POPUP_BOOLEAN` property. * - * By default, popup menus will automatically grab keyboard focus from the - * parent when shown. This behavior can be overridden by setting the - * `SDL_WINDOW_NOT_FOCUSABLE` flag, setting the - * `SDL_PROP_WINDOW_CREATE_FOCUSABLE_BOOLEAN` property to false, or toggling - * it after creation via the `SDL_SetWindowFocusable()` function. + * By default, popup menus will automatically grab keyboard focus from the parent + * when shown. This behavior can be overridden by setting the `SDL_WINDOW_NOT_FOCUSABLE` + * flag, setting the `SDL_PROP_WINDOW_CREATE_FOCUSABLE_BOOLEAN` property to false, or + * toggling it after creation via the `SDL_SetWindowFocusable()` function. * * If a parent window is hidden or destroyed, any child popup windows will be * recursively hidden or destroyed as well. Child popup windows not explicitly @@ -1238,10 +1216,9 @@ extern SDL_DECLSPEC SDL_Window * SDLCALL SDL_CreatePopupWindow(SDL_Window *paren * be always on top * - `SDL_PROP_WINDOW_CREATE_BORDERLESS_BOOLEAN`: true if the window has no * window decoration - * - `SDL_PROP_WINDOW_CREATE_CONSTRAIN_POPUP_BOOLEAN`: true if the "tooltip" - * and "menu" window types should be automatically constrained to be - * entirely within display bounds (default), false if no constraints on the - * position are desired. + * - `SDL_PROP_WINDOW_CREATE_CONSTRAIN_POPUP_BOOLEAN`: true if the "tooltip" and + * "menu" window types should be automatically constrained to be entirely within + * display bounds (default), false if no constraints on the position are desired. * - `SDL_PROP_WINDOW_CREATE_EXTERNAL_GRAPHICS_CONTEXT_BOOLEAN`: true if the * window will be used with an externally managed graphics context. * - `SDL_PROP_WINDOW_CREATE_FOCUSABLE_BOOLEAN`: true if the window should @@ -1303,7 +1280,7 @@ extern SDL_DECLSPEC SDL_Window * SDLCALL SDL_CreatePopupWindow(SDL_Window *paren * - `SDL_PROP_WINDOW_CREATE_WAYLAND_SURFACE_ROLE_CUSTOM_BOOLEAN` - true if * the application wants to use the Wayland surface for a custom role and * does not want it attached to an XDG toplevel window. See - * [README-wayland](README-wayland) for more information on using custom + * [README/wayland](README/wayland) for more information on using custom * surfaces. * - `SDL_PROP_WINDOW_CREATE_WAYLAND_CREATE_EGL_WINDOW_BOOLEAN` - true if the * application wants an associated `wl_egl_window` object to be created and @@ -1311,7 +1288,7 @@ extern SDL_DECLSPEC SDL_Window * SDLCALL SDL_CreatePopupWindow(SDL_Window *paren * property or `SDL_WINDOW_OPENGL` flag set. * - `SDL_PROP_WINDOW_CREATE_WAYLAND_WL_SURFACE_POINTER` - the wl_surface * associated with the window, if you want to wrap an existing window. See - * [README-wayland](README-wayland) for more information. + * [README/wayland](README/wayland) for more information. * * These are additional supported properties on Windows: * @@ -1327,22 +1304,8 @@ extern SDL_DECLSPEC SDL_Window * SDLCALL SDL_CreatePopupWindow(SDL_Window *paren * * The window is implicitly shown if the "hidden" property is not set. * - * These are additional supported properties with Emscripten: - * - * - `SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_CANVAS_ID_STRING`: the id given to the - * canvas element. This should start with a '#' sign - * - `SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING`: override the - * binding element for keyboard inputs for this canvas. The variable can be - * one of: - * - "#window": the javascript window object (default) - * - "#document": the javascript document object - * - "#screen": the javascript window.screen object - * - "#canvas": the WebGL canvas element - * - "#none": Don't bind anything at all - * - any other string without a leading # sign applies to the element on the - * page with that ID. Windows with the "tooltip" and "menu" properties are - * popup windows and have the behaviors and guidelines outlined in - * SDL_CreatePopupWindow(). + * Windows with the "tooltip" and "menu" properties are popup windows and have + * the behaviors and guidelines outlined in SDL_CreatePopupWindow(). * * If this window is being created to be used with an SDL_Renderer, you should * not add a graphics API specific property @@ -1403,8 +1366,6 @@ extern SDL_DECLSPEC SDL_Window * SDLCALL SDL_CreateWindowWithProperties(SDL_Prop #define SDL_PROP_WINDOW_CREATE_WIN32_HWND_POINTER "SDL.window.create.win32.hwnd" #define SDL_PROP_WINDOW_CREATE_WIN32_PIXEL_FORMAT_HWND_POINTER "SDL.window.create.win32.pixel_format_hwnd" #define SDL_PROP_WINDOW_CREATE_X11_WINDOW_NUMBER "SDL.window.create.x11.window" -#define SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_CANVAS_ID_STRING "SDL.window.create.emscripten.canvas_id" -#define SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING "SDL.window.create.emscripten.keyboard_element" /** * Get the numeric ID of a window. @@ -1516,8 +1477,8 @@ extern SDL_DECLSPEC SDL_Window * SDLCALL SDL_GetWindowParent(SDL_Window *window) * * On OpenVR: * - * - `SDL_PROP_WINDOW_OPENVR_OVERLAY_ID_NUMBER`: the OpenVR Overlay Handle ID - * for the associated overlay window. + * - `SDL_PROP_WINDOW_OPENVR_OVERLAY_ID`: the OpenVR Overlay Handle ID for the + * associated overlay window. * * On Vivante: * @@ -1569,13 +1530,6 @@ extern SDL_DECLSPEC SDL_Window * SDLCALL SDL_GetWindowParent(SDL_Window *window) * - `SDL_PROP_WINDOW_X11_WINDOW_NUMBER`: the X11 Window associated with the * window * - * On Emscripten: - * - * - `SDL_PROP_WINDOW_EMSCRIPTEN_CANVAS_ID_STRING`: the id the canvas element - * will have - * - `SDL_PROP_WINDOW_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING`: the keyboard - * element that associates keyboard events to this window - * * \param window the window to query. * \returns a valid property ID on success or 0 on failure; call * SDL_GetError() for more information. @@ -1602,7 +1556,7 @@ extern SDL_DECLSPEC SDL_PropertiesID SDLCALL SDL_GetWindowProperties(SDL_Window #define SDL_PROP_WINDOW_KMSDRM_GBM_DEVICE_POINTER "SDL.window.kmsdrm.gbm_dev" #define SDL_PROP_WINDOW_COCOA_WINDOW_POINTER "SDL.window.cocoa.window" #define SDL_PROP_WINDOW_COCOA_METAL_VIEW_TAG_NUMBER "SDL.window.cocoa.metal_view_tag" -#define SDL_PROP_WINDOW_OPENVR_OVERLAY_ID_NUMBER "SDL.window.openvr.overlay_id" +#define SDL_PROP_WINDOW_OPENVR_OVERLAY_ID "SDL.window.openvr.overlay_id" #define SDL_PROP_WINDOW_VIVANTE_DISPLAY_POINTER "SDL.window.vivante.display" #define SDL_PROP_WINDOW_VIVANTE_WINDOW_POINTER "SDL.window.vivante.window" #define SDL_PROP_WINDOW_VIVANTE_SURFACE_POINTER "SDL.window.vivante.surface" @@ -1621,8 +1575,6 @@ extern SDL_DECLSPEC SDL_PropertiesID SDLCALL SDL_GetWindowProperties(SDL_Window #define SDL_PROP_WINDOW_X11_DISPLAY_POINTER "SDL.window.x11.display" #define SDL_PROP_WINDOW_X11_SCREEN_NUMBER "SDL.window.x11.screen" #define SDL_PROP_WINDOW_X11_WINDOW_NUMBER "SDL.window.x11.window" -#define SDL_PROP_WINDOW_EMSCRIPTEN_CANVAS_ID_STRING "SDL.window.emscripten.canvas_id" -#define SDL_PROP_WINDOW_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING "SDL.window.emscripten.keyboard_element" /** * Get the window flags. @@ -1680,16 +1632,15 @@ extern SDL_DECLSPEC const char * SDLCALL SDL_GetWindowTitle(SDL_Window *window); /** * Set the icon for a window. * - * If this function is passed a surface with alternate representations added - * using SDL_AddSurfaceAlternateImage(), the surface will be interpreted as - * the content to be used for 100% display scale, and the alternate - * representations will be used for high DPI situations. For example, if the - * original surface is 32x32, then on a 2x macOS display or 200% display scale - * on Windows, a 64x64 version of the image will be used, if available. If a - * matching version of the image isn't available, the closest larger size - * image will be downscaled to the appropriate size and be used instead, if - * available. Otherwise, the closest smaller image will be upscaled and be - * used instead. + * If this function is passed a surface with alternate representations, the + * surface will be interpreted as the content to be used for 100% display + * scale, and the alternate representations will be used for high DPI + * situations. For example, if the original surface is 32x32, then on a 2x + * macOS display or 200% display scale on Windows, a 64x64 version of the + * image will be used, if available. If a matching version of the image isn't + * available, the closest larger size image will be downscaled to the + * appropriate size and be used instead, if available. Otherwise, the closest + * smaller image will be upscaled and be used instead. * * \param window the window to change. * \param icon an SDL_Surface structure containing the icon for the window. @@ -1699,8 +1650,6 @@ extern SDL_DECLSPEC const char * SDLCALL SDL_GetWindowTitle(SDL_Window *window); * \threadsafety This function should only be called on the main thread. * * \since This function is available since SDL 3.2.0. - * - * \sa SDL_AddSurfaceAlternateImage */ extern SDL_DECLSPEC bool SDLCALL SDL_SetWindowIcon(SDL_Window *window, SDL_Surface *icon); @@ -1894,7 +1843,7 @@ extern SDL_DECLSPEC bool SDLCALL SDL_GetWindowSafeArea(SDL_Window *window, SDL_R extern SDL_DECLSPEC bool SDLCALL SDL_SetWindowAspectRatio(SDL_Window *window, float min_aspect, float max_aspect); /** - * Get the aspect ratio of a window's client area. + * Get the size of a window's client area. * * \param window the window to query the width and height from. * \param min_aspect a pointer filled in with the minimum aspect ratio of the @@ -2521,6 +2470,7 @@ extern SDL_DECLSPEC bool SDLCALL SDL_SetWindowKeyboardGrab(SDL_Window *window, b * * \sa SDL_GetWindowMouseRect * \sa SDL_SetWindowMouseRect + * \sa SDL_SetWindowMouseGrab * \sa SDL_SetWindowKeyboardGrab */ extern SDL_DECLSPEC bool SDLCALL SDL_SetWindowMouseGrab(SDL_Window *window, bool grabbed); @@ -2865,62 +2815,6 @@ extern SDL_DECLSPEC bool SDLCALL SDL_SetWindowShape(SDL_Window *window, SDL_Surf */ extern SDL_DECLSPEC bool SDLCALL SDL_FlashWindow(SDL_Window *window, SDL_FlashOperation operation); -/** - * Sets the state of the progress bar for the given window’s taskbar icon. - * - * \param window the window whose progress state is to be modified. - * \param state the progress state. `SDL_PROGRESS_STATE_NONE` stops displaying - * the progress bar. - * \returns true on success or false on failure; call SDL_GetError() for more - * information. - * - * \threadsafety This function should only be called on the main thread. - * - * \since This function is available since SDL 3.4.0. - */ -extern SDL_DECLSPEC bool SDLCALL SDL_SetWindowProgressState(SDL_Window *window, SDL_ProgressState state); - -/** - * Get the state of the progress bar for the given window’s taskbar icon. - * - * \param window the window to get the current progress state from. - * \returns the progress state, or `SDL_PROGRESS_STATE_INVALID` on failure; - * call SDL_GetError() for more information. - * - * \threadsafety This function should only be called on the main thread. - * - * \since This function is available since SDL 3.4.0. - */ -extern SDL_DECLSPEC SDL_ProgressState SDLCALL SDL_GetWindowProgressState(SDL_Window *window); - -/** - * Sets the value of the progress bar for the given window’s taskbar icon. - * - * \param window the window whose progress value is to be modified. - * \param value the progress value in the range of [0.0f - 1.0f]. If the value - * is outside the valid range, it gets clamped. - * \returns true on success or false on failure; call SDL_GetError() for more - * information. - * - * \threadsafety This function should only be called on the main thread. - * - * \since This function is available since SDL 3.4.0. - */ -extern SDL_DECLSPEC bool SDLCALL SDL_SetWindowProgressValue(SDL_Window *window, float value); - -/** - * Get the value of the progress bar for the given window’s taskbar icon. - * - * \param window the window to get the current progress value from. - * \returns the progress value in the range of [0.0f - 1.0f], or -1.0f on - * failure; call SDL_GetError() for more information. - * - * \threadsafety This function should only be called on the main thread. - * - * \since This function is available since SDL 3.4.0. - */ -extern SDL_DECLSPEC float SDLCALL SDL_GetWindowProgressValue(SDL_Window *window); - /** * Destroy a window. * diff --git a/Source/Tools/Flax.Build/Deps/Dependencies/SDL.cs b/Source/Tools/Flax.Build/Deps/Dependencies/SDL.cs index f47469ee8..c01e365bd 100644 --- a/Source/Tools/Flax.Build/Deps/Dependencies/SDL.cs +++ b/Source/Tools/Flax.Build/Deps/Dependencies/SDL.cs @@ -90,7 +90,7 @@ namespace Flax.Deps.Dependencies CloneGitRepo(root, "https://github.com/libsdl-org/SDL"); GitFetch(root); - GitResetToCommit(root, "0e262dfd441f93d158b6a951db49efdc00bb3bba"); // 3.3.x + GitResetToCommit(root, "96292a5b464258a2b926e0a3d72f8b98c2a81aa6"); // 3.2.20 foreach (var platform in options.Platforms) {