Update SDL to 3.3.x
Fixes popup focus issues on Linux
This commit is contained in:
2
Source/ThirdParty/SDL/SDL3/SDL.h
vendored
2
Source/ThirdParty/SDL/SDL3/SDL.h
vendored
@@ -20,7 +20,7 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* Main include header for the SDL library, version 3.2.16
|
||||
* Main include header for the SDL library, version 3.3.0
|
||||
*
|
||||
* It is almost always best to include just this one header instead of
|
||||
* picking out individual headers included here. There are exceptions to
|
||||
|
||||
2
Source/ThirdParty/SDL/SDL3/SDL_assert.h
vendored
2
Source/ThirdParty/SDL/SDL3/SDL_assert.h
vendored
@@ -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)
|
||||
#elif defined(ANDROID) || defined(__SYMBIAN32__)
|
||||
#include <assert.h>
|
||||
#define SDL_TriggerBreakpoint() assert(0)
|
||||
#elif SDL_HAS_BUILTIN(__builtin_debugtrap)
|
||||
|
||||
225
Source/ThirdParty/SDL/SDL3/SDL_audio.h
vendored
225
Source/ThirdParty/SDL/SDL3/SDL_audio.h
vendored
@@ -1149,14 +1149,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.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.
|
||||
* 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.
|
||||
*
|
||||
* This is applied during SDL_GetAudioStreamData, and can be continuously
|
||||
* changed to create various effects.
|
||||
*
|
||||
* \param stream the stream the frequency ratio is being changed.
|
||||
* \param stream the stream on which 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 +1332,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 leaving a stream via
|
||||
* The output channel map reorders data that is leaving a stream via
|
||||
* SDL_GetAudioStreamData.
|
||||
*
|
||||
* Each item in the array represents an input channel, and its value is the
|
||||
@@ -1414,6 +1414,136 @@ 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.
|
||||
*
|
||||
@@ -1583,8 +1713,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.
|
||||
*
|
||||
* Remember, SDL_OpenAudioDeviceStream opens device in a paused state, so this
|
||||
* function call is required for audio playback to begin on such device.
|
||||
* SDL_OpenAudioDeviceStream opens audio devices in a paused state, so this
|
||||
* function call is required for audio playback to begin on such devices.
|
||||
*
|
||||
* \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
|
||||
@@ -1841,7 +1971,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(stream);`
|
||||
* with SDL_ResumeAudioStreamDevice().
|
||||
*
|
||||
* This function works with both playback and recording devices.
|
||||
*
|
||||
@@ -1887,6 +2017,85 @@ 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.
|
||||
*
|
||||
|
||||
73
Source/ThirdParty/SDL/SDL3/SDL_begin_code.h
vendored
73
Source/ThirdParty/SDL/SDL3/SDL_begin_code.h
vendored
@@ -261,9 +261,9 @@
|
||||
*
|
||||
* On compilers without restrict support, this is defined to nothing.
|
||||
*
|
||||
* \since This macro is available since SDL 3.2.0.
|
||||
* \since This macro is available since SDL 3.4.0.
|
||||
*/
|
||||
#define SDL_RESTRICT __restrict__
|
||||
#define SDL_RESTRICT __restrict
|
||||
|
||||
/**
|
||||
* Check if the compiler supports a given builtin functionality.
|
||||
@@ -281,9 +281,61 @@
|
||||
*/
|
||||
#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)
|
||||
@@ -389,7 +441,7 @@
|
||||
#endif /* SDL_FORCE_INLINE not defined */
|
||||
|
||||
#ifndef SDL_NORETURN
|
||||
#ifdef __GNUC__
|
||||
#if defined(__GNUC__)
|
||||
#define SDL_NORETURN __attribute__((noreturn))
|
||||
#elif defined(_MSC_VER)
|
||||
#define SDL_NORETURN __declspec(noreturn)
|
||||
@@ -484,3 +536,18 @@
|
||||
#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 */
|
||||
|
||||
|
||||
34
Source/ThirdParty/SDL/SDL3/SDL_events.h
vendored
34
Source/ThirdParty/SDL/SDL3/SDL_events.h
vendored
@@ -781,7 +781,7 @@ typedef struct SDL_TouchFingerEvent
|
||||
} SDL_TouchFingerEvent;
|
||||
|
||||
/**
|
||||
* Pressure-sensitive pen proximity event structure (event.pmotion.*)
|
||||
* Pressure-sensitive pen proximity event structure (event.pproximity.*)
|
||||
*
|
||||
* 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,6 +1567,38 @@ 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
|
||||
}
|
||||
|
||||
4
Source/ThirdParty/SDL/SDL3/SDL_filesystem.h
vendored
4
Source/ThirdParty/SDL/SDL3/SDL_filesystem.h
vendored
@@ -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
|
||||
|
||||
12
Source/ThirdParty/SDL/SDL3/SDL_gamepad.h
vendored
12
Source/ThirdParty/SDL/SDL3/SDL_gamepad.h
vendored
@@ -118,6 +118,7 @@ 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;
|
||||
|
||||
@@ -127,8 +128,9 @@ 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 PlayStation controllers this
|
||||
* would be Cross/Circle/Square/Triangle.
|
||||
* 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.
|
||||
*
|
||||
* 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
|
||||
@@ -1156,10 +1158,12 @@ 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 (including 0) on success or 0 (also) on failure; call
|
||||
* SDL_GetError() for more information.
|
||||
* \returns axis state.
|
||||
*
|
||||
* \since This function is available since SDL 3.2.0.
|
||||
*
|
||||
|
||||
315
Source/ThirdParty/SDL/SDL3/SDL_gpu.h
vendored
315
Source/ThirdParty/SDL/SDL3/SDL_gpu.h
vendored
@@ -206,14 +206,20 @@
|
||||
* 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 can be
|
||||
* very helpful for diagnosing incorrect behavior and performance issues.
|
||||
* make sure you are following them. Additionally, tools like
|
||||
* [RenderDoc](https://renderdoc.org/)
|
||||
* can be very helpful for diagnosing incorrect behavior and performance
|
||||
* issues.
|
||||
*
|
||||
* ## System Requirements
|
||||
*
|
||||
* **Vulkan:** Supported on Windows, Linux, Nintendo Switch, and certain
|
||||
* Android devices. Requires Vulkan 1.0 with the following extensions and
|
||||
* device features:
|
||||
* ### 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:
|
||||
*
|
||||
* - `VK_KHR_swapchain`
|
||||
* - `VK_KHR_maintenance1`
|
||||
@@ -222,13 +228,21 @@
|
||||
* - `depthClamp`
|
||||
* - `shaderClipDistance`
|
||||
* - `drawIndirectFirstInstance`
|
||||
* - `sampleRateShading`
|
||||
*
|
||||
* **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.
|
||||
* ### D3D12
|
||||
*
|
||||
* **Metal:** Supported on macOS 10.14+ and iOS/tvOS 13.0+. Hardware
|
||||
* requirements vary by operating system:
|
||||
* 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:
|
||||
*
|
||||
* - macOS requires an Apple Silicon or
|
||||
* [Intel Mac2 family](https://developer.apple.com/documentation/metal/mtlfeatureset/mtlfeatureset_macos_gpufamily2_v1?language=objc)
|
||||
@@ -236,6 +250,26 @@
|
||||
* - 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
|
||||
@@ -301,6 +335,39 @@
|
||||
* 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_
|
||||
@@ -1310,6 +1377,17 @@ 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
|
||||
@@ -1391,7 +1469,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. */
|
||||
@@ -1520,8 +1598,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;
|
||||
|
||||
@@ -1613,6 +1691,9 @@ 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
|
||||
{
|
||||
@@ -1623,8 +1704,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;
|
||||
@@ -1636,6 +1717,8 @@ 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
|
||||
{
|
||||
@@ -1741,8 +1824,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;
|
||||
@@ -1759,8 +1842,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. */
|
||||
Uint8 padding1;
|
||||
bool enable_mask; /**< Reserved for future use. Must be set to false. */
|
||||
bool enable_alpha_to_coverage; /**< true enables the alpha-to-coverage feature. */
|
||||
Uint8 padding2;
|
||||
Uint8 padding3;
|
||||
} SDL_GPUMultisampleState;
|
||||
@@ -1780,9 +1863,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;
|
||||
@@ -1817,7 +1900,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;
|
||||
@@ -1924,8 +2007,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;
|
||||
@@ -1982,7 +2065,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;
|
||||
@@ -2002,7 +2085,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;
|
||||
@@ -2111,6 +2194,13 @@ 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.
|
||||
@@ -2121,6 +2211,7 @@ 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
|
||||
@@ -2140,6 +2231,8 @@ 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.
|
||||
*
|
||||
@@ -2163,6 +2256,25 @@ 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.
|
||||
@@ -2177,16 +2289,21 @@ 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_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_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"
|
||||
|
||||
/**
|
||||
* Destroys a GPU context previously returned by SDL_CreateGPUDevice.
|
||||
@@ -2250,6 +2367,116 @@ 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 */
|
||||
|
||||
/**
|
||||
@@ -2822,6 +3049,9 @@ 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.
|
||||
@@ -3775,7 +4005,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 are always
|
||||
* SDL_GPU_PRESENTMODE_VSYNC with SDL_GPU_SWAPCHAINCOMPOSITION_SDR is always
|
||||
* supported.
|
||||
*
|
||||
* \param device a GPU context.
|
||||
@@ -3849,7 +4079,9 @@ 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.
|
||||
* 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.
|
||||
*
|
||||
* 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
|
||||
@@ -4211,3 +4443,8 @@ extern SDL_DECLSPEC void SDLCALL SDL_GDKResumeGPU(SDL_GPUDevice *device);
|
||||
#include <SDL3/SDL_close_code.h>
|
||||
|
||||
#endif /* SDL_gpu_h_ */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
72
Source/ThirdParty/SDL/SDL3/SDL_haptic.h
vendored
72
Source/ThirdParty/SDL/SDL3/SDL_haptic.h
vendored
@@ -70,7 +70,7 @@
|
||||
* {
|
||||
* SDL_Haptic *haptic;
|
||||
* SDL_HapticEffect effect;
|
||||
* int effect_id;
|
||||
* SDL_HapticEffectID effect_id;
|
||||
*
|
||||
* // Open the device
|
||||
* haptic = SDL_OpenHapticFromJoystick(joystick);
|
||||
@@ -149,6 +149,19 @@ 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
|
||||
@@ -162,6 +175,11 @@ typedef struct SDL_Haptic SDL_Haptic;
|
||||
*/
|
||||
/* @{ */
|
||||
|
||||
/**
|
||||
* Type of haptic effect.
|
||||
*/
|
||||
typedef Uint16 SDL_HapticEffectType;
|
||||
|
||||
/**
|
||||
* Constant effect supported.
|
||||
*
|
||||
@@ -383,6 +401,11 @@ typedef struct SDL_Haptic SDL_Haptic;
|
||||
*/
|
||||
/* @{ */
|
||||
|
||||
/**
|
||||
* Type of coordinates used for haptic direction.
|
||||
*/
|
||||
typedef Uint8 SDL_HapticDirectionType;
|
||||
|
||||
/**
|
||||
* Uses polar coordinates for the direction.
|
||||
*
|
||||
@@ -426,18 +449,15 @@ typedef struct SDL_Haptic SDL_Haptic;
|
||||
|
||||
/* @} *//* Haptic features */
|
||||
|
||||
/*
|
||||
* Misc defines.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Used to play a device an infinite number of times.
|
||||
* ID for haptic effects.
|
||||
*
|
||||
* \since This macro is available since SDL 3.2.0.
|
||||
* This is -1 if the ID is invalid.
|
||||
*
|
||||
* \sa SDL_RunHapticEffect
|
||||
* \sa SDL_CreateHapticEffect
|
||||
*/
|
||||
#define SDL_HAPTIC_INFINITY 4294967295U
|
||||
typedef int SDL_HapticEffectID;
|
||||
|
||||
|
||||
/**
|
||||
@@ -545,8 +565,8 @@ typedef struct SDL_Haptic SDL_Haptic;
|
||||
*/
|
||||
typedef struct SDL_HapticDirection
|
||||
{
|
||||
Uint8 type; /**< The type of encoding. */
|
||||
Sint32 dir[3]; /**< The encoded direction. */
|
||||
SDL_HapticDirectionType type; /**< The type of encoding. */
|
||||
Sint32 dir[3]; /**< The encoded direction. */
|
||||
} SDL_HapticDirection;
|
||||
|
||||
|
||||
@@ -566,7 +586,7 @@ typedef struct SDL_HapticDirection
|
||||
typedef struct SDL_HapticConstant
|
||||
{
|
||||
/* Header */
|
||||
Uint16 type; /**< SDL_HAPTIC_CONSTANT */
|
||||
SDL_HapticEffectType type; /**< SDL_HAPTIC_CONSTANT */
|
||||
SDL_HapticDirection direction; /**< Direction of the effect. */
|
||||
|
||||
/* Replay */
|
||||
@@ -652,9 +672,9 @@ typedef struct SDL_HapticConstant
|
||||
typedef struct SDL_HapticPeriodic
|
||||
{
|
||||
/* Header */
|
||||
Uint16 type; /**< SDL_HAPTIC_SINE, SDL_HAPTIC_SQUARE
|
||||
SDL_HAPTIC_TRIANGLE, SDL_HAPTIC_SAWTOOTHUP or
|
||||
SDL_HAPTIC_SAWTOOTHDOWN */
|
||||
SDL_HapticEffectType 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 */
|
||||
@@ -708,8 +728,8 @@ typedef struct SDL_HapticPeriodic
|
||||
typedef struct SDL_HapticCondition
|
||||
{
|
||||
/* Header */
|
||||
Uint16 type; /**< SDL_HAPTIC_SPRING, SDL_HAPTIC_DAMPER,
|
||||
SDL_HAPTIC_INERTIA or SDL_HAPTIC_FRICTION */
|
||||
SDL_HapticEffectType type; /**< SDL_HAPTIC_SPRING, SDL_HAPTIC_DAMPER,
|
||||
SDL_HAPTIC_INERTIA or SDL_HAPTIC_FRICTION */
|
||||
SDL_HapticDirection direction; /**< Direction of the effect. */
|
||||
|
||||
/* Replay */
|
||||
@@ -747,7 +767,7 @@ typedef struct SDL_HapticCondition
|
||||
typedef struct SDL_HapticRamp
|
||||
{
|
||||
/* Header */
|
||||
Uint16 type; /**< SDL_HAPTIC_RAMP */
|
||||
SDL_HapticEffectType type; /**< SDL_HAPTIC_RAMP */
|
||||
SDL_HapticDirection direction; /**< Direction of the effect. */
|
||||
|
||||
/* Replay */
|
||||
@@ -786,7 +806,7 @@ typedef struct SDL_HapticRamp
|
||||
typedef struct SDL_HapticLeftRight
|
||||
{
|
||||
/* Header */
|
||||
Uint16 type; /**< SDL_HAPTIC_LEFTRIGHT */
|
||||
SDL_HapticEffectType type; /**< SDL_HAPTIC_LEFTRIGHT */
|
||||
|
||||
/* Replay */
|
||||
Uint32 length; /**< Duration of the effect in milliseconds. */
|
||||
@@ -816,7 +836,7 @@ typedef struct SDL_HapticLeftRight
|
||||
typedef struct SDL_HapticCustom
|
||||
{
|
||||
/* Header */
|
||||
Uint16 type; /**< SDL_HAPTIC_CUSTOM */
|
||||
SDL_HapticEffectType type; /**< SDL_HAPTIC_CUSTOM */
|
||||
SDL_HapticDirection direction; /**< Direction of the effect. */
|
||||
|
||||
/* Replay */
|
||||
@@ -915,7 +935,7 @@ typedef struct SDL_HapticCustom
|
||||
typedef union SDL_HapticEffect
|
||||
{
|
||||
/* Common for all force feedback effects */
|
||||
Uint16 type; /**< Effect type. */
|
||||
SDL_HapticEffectType type; /**< Effect type. */
|
||||
SDL_HapticConstant constant; /**< Constant effect. */
|
||||
SDL_HapticPeriodic periodic; /**< Periodic effect. */
|
||||
SDL_HapticCondition condition; /**< Condition effect. */
|
||||
@@ -1193,7 +1213,7 @@ extern SDL_DECLSPEC bool SDLCALL SDL_HapticEffectSupported(SDL_Haptic *haptic, c
|
||||
* \sa SDL_RunHapticEffect
|
||||
* \sa SDL_UpdateHapticEffect
|
||||
*/
|
||||
extern SDL_DECLSPEC int SDLCALL SDL_CreateHapticEffect(SDL_Haptic *haptic, const SDL_HapticEffect *effect);
|
||||
extern SDL_DECLSPEC SDL_HapticEffectID SDLCALL SDL_CreateHapticEffect(SDL_Haptic *haptic, const SDL_HapticEffect *effect);
|
||||
|
||||
/**
|
||||
* Update the properties of an effect.
|
||||
@@ -1215,7 +1235,7 @@ extern SDL_DECLSPEC int SDLCALL SDL_CreateHapticEffect(SDL_Haptic *haptic, const
|
||||
* \sa SDL_CreateHapticEffect
|
||||
* \sa SDL_RunHapticEffect
|
||||
*/
|
||||
extern SDL_DECLSPEC bool SDLCALL SDL_UpdateHapticEffect(SDL_Haptic *haptic, int effect, const SDL_HapticEffect *data);
|
||||
extern SDL_DECLSPEC bool SDLCALL SDL_UpdateHapticEffect(SDL_Haptic *haptic, SDL_HapticEffectID effect, const SDL_HapticEffect *data);
|
||||
|
||||
/**
|
||||
* Run the haptic effect on its associated haptic device.
|
||||
@@ -1239,7 +1259,7 @@ extern SDL_DECLSPEC bool SDLCALL SDL_UpdateHapticEffect(SDL_Haptic *haptic, int
|
||||
* \sa SDL_StopHapticEffect
|
||||
* \sa SDL_StopHapticEffects
|
||||
*/
|
||||
extern SDL_DECLSPEC bool SDLCALL SDL_RunHapticEffect(SDL_Haptic *haptic, int effect, Uint32 iterations);
|
||||
extern SDL_DECLSPEC bool SDLCALL SDL_RunHapticEffect(SDL_Haptic *haptic, SDL_HapticEffectID effect, Uint32 iterations);
|
||||
|
||||
/**
|
||||
* Stop the haptic effect on its associated haptic device.
|
||||
@@ -1254,7 +1274,7 @@ extern SDL_DECLSPEC bool SDLCALL SDL_RunHapticEffect(SDL_Haptic *haptic, int eff
|
||||
* \sa SDL_RunHapticEffect
|
||||
* \sa SDL_StopHapticEffects
|
||||
*/
|
||||
extern SDL_DECLSPEC bool SDLCALL SDL_StopHapticEffect(SDL_Haptic *haptic, int effect);
|
||||
extern SDL_DECLSPEC bool SDLCALL SDL_StopHapticEffect(SDL_Haptic *haptic, SDL_HapticEffectID effect);
|
||||
|
||||
/**
|
||||
* Destroy a haptic effect on the device.
|
||||
@@ -1269,7 +1289,7 @@ extern SDL_DECLSPEC bool SDLCALL SDL_StopHapticEffect(SDL_Haptic *haptic, int ef
|
||||
*
|
||||
* \sa SDL_CreateHapticEffect
|
||||
*/
|
||||
extern SDL_DECLSPEC void SDLCALL SDL_DestroyHapticEffect(SDL_Haptic *haptic, int effect);
|
||||
extern SDL_DECLSPEC void SDLCALL SDL_DestroyHapticEffect(SDL_Haptic *haptic, SDL_HapticEffectID effect);
|
||||
|
||||
/**
|
||||
* Get the status of the current effect on the specified haptic device.
|
||||
@@ -1285,7 +1305,7 @@ extern SDL_DECLSPEC void SDLCALL SDL_DestroyHapticEffect(SDL_Haptic *haptic, int
|
||||
*
|
||||
* \sa SDL_GetHapticFeatures
|
||||
*/
|
||||
extern SDL_DECLSPEC bool SDLCALL SDL_GetHapticEffectStatus(SDL_Haptic *haptic, int effect);
|
||||
extern SDL_DECLSPEC bool SDLCALL SDL_GetHapticEffectStatus(SDL_Haptic *haptic, SDL_HapticEffectID effect);
|
||||
|
||||
/**
|
||||
* Set the global gain of the specified haptic device.
|
||||
|
||||
96
Source/ThirdParty/SDL/SDL3/SDL_hints.h
vendored
96
Source/ThirdParty/SDL/SDL3/SDL_hints.h
vendored
@@ -711,8 +711,6 @@ 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.
|
||||
@@ -726,7 +724,7 @@ extern "C" {
|
||||
*
|
||||
* The variable can be one of:
|
||||
*
|
||||
* - "#window": the javascript window object (default)
|
||||
* - "#window": the javascript window object
|
||||
* - "#document": the javascript document object
|
||||
* - "#screen": the javascript window.screen object
|
||||
* - "#canvas": the WebGL canvas element
|
||||
@@ -1723,6 +1721,43 @@ 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.
|
||||
@@ -1926,6 +1961,41 @@ 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.
|
||||
@@ -3407,6 +3477,26 @@ 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.
|
||||
|
||||
2
Source/ThirdParty/SDL/SDL3/SDL_init.h
vendored
2
Source/ThirdParty/SDL/SDL3/SDL_init.h
vendored
@@ -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.
|
||||
|
||||
4
Source/ThirdParty/SDL/SDL3/SDL_joystick.h
vendored
4
Source/ThirdParty/SDL/SDL3/SDL_joystick.h
vendored
@@ -107,6 +107,10 @@ 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
|
||||
|
||||
3
Source/ThirdParty/SDL/SDL3/SDL_log.h
vendored
3
Source/ThirdParty/SDL/SDL3/SDL_log.h
vendored
@@ -206,6 +206,9 @@ 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.
|
||||
|
||||
20
Source/ThirdParty/SDL/SDL3/SDL_main.h
vendored
20
Source/ThirdParty/SDL/SDL3/SDL_main.h
vendored
@@ -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 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.
|
||||
* 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.
|
||||
*
|
||||
* 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
|
||||
|
||||
76
Source/ThirdParty/SDL/SDL3/SDL_mouse.h
vendored
76
Source/ThirdParty/SDL/SDL3/SDL_mouse.h
vendored
@@ -160,6 +160,44 @@ 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 */
|
||||
|
||||
@@ -380,6 +418,24 @@ 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.
|
||||
*
|
||||
@@ -522,15 +578,16 @@ 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, 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 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.
|
||||
*
|
||||
* \param surface an SDL_Surface structure representing the cursor image.
|
||||
* \param hot_x the x position of the cursor hot spot.
|
||||
@@ -542,6 +599,7 @@ 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
|
||||
|
||||
2
Source/ThirdParty/SDL/SDL3/SDL_mutex.h
vendored
2
Source/ThirdParty/SDL/SDL3/SDL_mutex.h
vendored
@@ -942,7 +942,7 @@ typedef enum SDL_InitStatus
|
||||
* Here is an example of using this:
|
||||
*
|
||||
* ```c
|
||||
* static SDL_AtomicInitState init;
|
||||
* static SDL_InitState init;
|
||||
*
|
||||
* bool InitSystem(void)
|
||||
* {
|
||||
|
||||
8
Source/ThirdParty/SDL/SDL3/SDL_pixels.h
vendored
8
Source/ThirdParty/SDL/SDL3/SDL_pixels.h
vendored
@@ -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 pixel a pixel value.
|
||||
* \param pixelvalue 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 pixel, const SDL_PixelFormatDetails *format, const SDL_Palette *palette, Uint8 *r, Uint8 *g, Uint8 *b);
|
||||
extern SDL_DECLSPEC void SDLCALL SDL_GetRGB(Uint32 pixelvalue, 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 pixel, const SDL_PixelFormatD
|
||||
* If the surface has no alpha component, the alpha will be returned as 0xff
|
||||
* (100% opaque).
|
||||
*
|
||||
* \param pixel a pixel value.
|
||||
* \param pixelvalue 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 pixel, const SDL_PixelFormatD
|
||||
* \sa SDL_MapRGB
|
||||
* \sa SDL_MapRGBA
|
||||
*/
|
||||
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);
|
||||
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);
|
||||
|
||||
|
||||
/* Ends C function definitions when using C++ */
|
||||
|
||||
@@ -317,7 +317,7 @@
|
||||
#define SDL_PLATFORM_CYGWIN 1
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32) || defined(SDL_PLATFORM_CYGWIN)
|
||||
#if (defined(_WIN32) || defined(SDL_PLATFORM_CYGWIN)) && !defined(__NGAGE__)
|
||||
|
||||
/**
|
||||
* A preprocessor macro that is only defined if compiling for Windows.
|
||||
@@ -473,4 +473,15 @@
|
||||
#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_ */
|
||||
|
||||
11
Source/ThirdParty/SDL/SDL3/SDL_process.h
vendored
11
Source/ThirdParty/SDL/SDL3/SDL_process.h
vendored
@@ -166,6 +166,9 @@ 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`.
|
||||
@@ -192,6 +195,12 @@ 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
|
||||
@@ -219,6 +228,7 @@ 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"
|
||||
@@ -227,6 +237,7 @@ 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.
|
||||
|
||||
2
Source/ThirdParty/SDL/SDL3/SDL_rect.h
vendored
2
Source/ThirdParty/SDL/SDL3/SDL_rect.h
vendored
@@ -324,7 +324,7 @@ SDL_FORCE_INLINE bool SDL_PointInRectFloat(const SDL_FPoint *p, const SDL_FRect
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether a floating point rectangle can contain any point.
|
||||
* Determine whether a floating point rectangle takes no space.
|
||||
*
|
||||
* A rectangle is considered "empty" for this function if `r` is NULL, or if
|
||||
* `r`'s width and/or height are < 0.0f.
|
||||
|
||||
294
Source/ThirdParty/SDL/SDL3/SDL_render.h
vendored
294
Source/ThirdParty/SDL/SDL3/SDL_render.h
vendored
@@ -59,6 +59,7 @@
|
||||
#include <SDL3/SDL_rect.h>
|
||||
#include <SDL3/SDL_surface.h>
|
||||
#include <SDL3/SDL_video.h>
|
||||
#include <SDL3/SDL_gpu.h>
|
||||
|
||||
#include <SDL3/SDL_begin_code.h>
|
||||
/* Set up for C function definitions, even when using C++ */
|
||||
@@ -97,6 +98,21 @@ 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.
|
||||
*
|
||||
@@ -267,6 +283,15 @@ 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
|
||||
@@ -303,6 +328,9 @@ 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"
|
||||
@@ -310,6 +338,37 @@ 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.
|
||||
*
|
||||
@@ -2234,6 +2293,43 @@ 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
|
||||
@@ -2255,6 +2351,7 @@ extern SDL_DECLSPEC bool SDLCALL SDL_RenderTexture9Grid(SDL_Renderer *renderer,
|
||||
* \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,
|
||||
@@ -2287,6 +2384,7 @@ 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,
|
||||
@@ -2296,6 +2394,44 @@ 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.
|
||||
*
|
||||
@@ -2347,8 +2483,7 @@ 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 still update the screen
|
||||
* with any current drawing that has been done _to the window itself_.
|
||||
* SDL_RenderPresent while rendering to a texture will fail.
|
||||
*
|
||||
* \param renderer the rendering context.
|
||||
* \returns true on success or false on failure; call SDL_GetError() for more
|
||||
@@ -2636,6 +2771,161 @@ 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
|
||||
}
|
||||
|
||||
4
Source/ThirdParty/SDL/SDL3/SDL_revision.h
vendored
4
Source/ThirdParty/SDL/SDL3/SDL_revision.h
vendored
@@ -31,9 +31,9 @@
|
||||
/* #undef SDL_VENDOR_INFO */
|
||||
|
||||
#ifdef SDL_VENDOR_INFO
|
||||
#define SDL_REVISION "SDL3-3.2.16-release-3.2.14-53-g59693c899 (" SDL_VENDOR_INFO ")"
|
||||
#define SDL_REVISION "SDL3-3.3.0-release-3.2.6-664-g0e262dfd4 (" SDL_VENDOR_INFO ")"
|
||||
#else
|
||||
#define SDL_REVISION "SDL3-3.2.16-release-3.2.14-53-g59693c899"
|
||||
#define SDL_REVISION "SDL3-3.3.0-release-3.2.6-664-g0e262dfd4"
|
||||
#endif
|
||||
|
||||
#endif /* SDL_revision_h_ */
|
||||
|
||||
2
Source/ThirdParty/SDL/SDL3/SDL_stdinc.h
vendored
2
Source/ThirdParty/SDL/SDL3/SDL_stdinc.h
vendored
@@ -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 lesser of `x` and `y`.
|
||||
* \returns the greater of `x` and `y`.
|
||||
*
|
||||
* \threadsafety It is safe to call this macro from any thread.
|
||||
*
|
||||
|
||||
4
Source/ThirdParty/SDL/SDL3/SDL_storage.h
vendored
4
Source/ThirdParty/SDL/SDL3/SDL_storage.h
vendored
@@ -334,6 +334,10 @@ 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
|
||||
|
||||
8
Source/ThirdParty/SDL/SDL3/SDL_surface.h
vendored
8
Source/ThirdParty/SDL/SDL3/SDL_surface.h
vendored
@@ -32,7 +32,8 @@
|
||||
* 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:
|
||||
* [SDL_image](https://wiki.libsdl.org/SDL3_image)
|
||||
* :
|
||||
*
|
||||
* https://github.com/libsdl-org/SDL_image
|
||||
*/
|
||||
@@ -83,8 +84,9 @@ 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_NEAREST, /**< nearest pixel sampling */
|
||||
SDL_SCALEMODE_LINEAR, /**< linear filtering */
|
||||
SDL_SCALEMODE_PIXELART /**< nearest pixel sampling with improved scaling for pixel art */
|
||||
} SDL_ScaleMode;
|
||||
|
||||
/**
|
||||
|
||||
4
Source/ThirdParty/SDL/SDL3/SDL_system.h
vendored
4
Source/ThirdParty/SDL/SDL3/SDL_system.h
vendored
@@ -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
|
||||
|
||||
8
Source/ThirdParty/SDL/SDL3/SDL_timer.h
vendored
8
Source/ThirdParty/SDL/SDL3/SDL_timer.h
vendored
@@ -185,10 +185,12 @@ extern "C" {
|
||||
#define SDL_NS_TO_US(NS) ((NS) / SDL_NS_PER_US)
|
||||
|
||||
/**
|
||||
* Get the number of milliseconds since SDL library initialization.
|
||||
* Get the number of milliseconds that have elapsed since the SDL library
|
||||
* initialization.
|
||||
*
|
||||
* \returns an unsigned 64-bit value representing the number of milliseconds
|
||||
* since the SDL library initialized.
|
||||
* \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).
|
||||
*
|
||||
* \threadsafety It is safe to call this function from any thread.
|
||||
*
|
||||
|
||||
11
Source/ThirdParty/SDL/SDL3/SDL_version.h
vendored
11
Source/ThirdParty/SDL/SDL3/SDL_version.h
vendored
@@ -53,7 +53,7 @@ extern "C" {
|
||||
*
|
||||
* \since This macro is available since SDL 3.2.0.
|
||||
*/
|
||||
#define SDL_MINOR_VERSION 2
|
||||
#define SDL_MINOR_VERSION 3
|
||||
|
||||
/**
|
||||
* 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 16
|
||||
#define SDL_MICRO_VERSION 0
|
||||
|
||||
/**
|
||||
* This macro turns the version numbers into a numeric value.
|
||||
@@ -148,13 +148,14 @@ extern "C" {
|
||||
extern SDL_DECLSPEC int SDLCALL SDL_GetVersion(void);
|
||||
|
||||
/**
|
||||
* Get the code revision of SDL that is linked against your program.
|
||||
* Get the code revision of the SDL library that is linked against your
|
||||
* program.
|
||||
*
|
||||
* This value is the revision of the code you are linked with and may be
|
||||
* This value is the revision of the code you are linking against and may be
|
||||
* different from the code you are compiling with, which is found in the
|
||||
* constant SDL_REVISION.
|
||||
*
|
||||
* The revision is arbitrary string (a hash value) uniquely identifying the
|
||||
* The revision is an 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.
|
||||
*
|
||||
|
||||
155
Source/ThirdParty/SDL/SDL3/SDL_video.h
vendored
155
Source/ThirdParty/SDL/SDL3/SDL_video.h
vendored
@@ -307,6 +307,21 @@ 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.
|
||||
*
|
||||
@@ -617,6 +632,11 @@ 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.
|
||||
@@ -629,6 +649,7 @@ 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.
|
||||
@@ -1167,6 +1188,16 @@ 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 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
|
||||
* hidden will be restored when the parent is shown.
|
||||
@@ -1207,6 +1238,10 @@ 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_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
|
||||
@@ -1268,7 +1303,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
|
||||
@@ -1276,7 +1311,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:
|
||||
*
|
||||
@@ -1292,8 +1327,22 @@ extern SDL_DECLSPEC SDL_Window * SDLCALL SDL_CreatePopupWindow(SDL_Window *paren
|
||||
*
|
||||
* The window is implicitly shown if the "hidden" property is not set.
|
||||
*
|
||||
* Windows with the "tooltip" and "menu" properties are popup windows and have
|
||||
* the behaviors and guidelines outlined in SDL_CreatePopupWindow().
|
||||
* 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().
|
||||
*
|
||||
* If this window is being created to be used with an SDL_Renderer, you should
|
||||
* not add a graphics API specific property
|
||||
@@ -1321,6 +1370,7 @@ extern SDL_DECLSPEC SDL_Window * SDLCALL SDL_CreateWindowWithProperties(SDL_Prop
|
||||
|
||||
#define SDL_PROP_WINDOW_CREATE_ALWAYS_ON_TOP_BOOLEAN "SDL.window.create.always_on_top"
|
||||
#define SDL_PROP_WINDOW_CREATE_BORDERLESS_BOOLEAN "SDL.window.create.borderless"
|
||||
#define SDL_PROP_WINDOW_CREATE_CONSTRAIN_POPUP_BOOLEAN "SDL.window.create.constrain_popup"
|
||||
#define SDL_PROP_WINDOW_CREATE_FOCUSABLE_BOOLEAN "SDL.window.create.focusable"
|
||||
#define SDL_PROP_WINDOW_CREATE_EXTERNAL_GRAPHICS_CONTEXT_BOOLEAN "SDL.window.create.external_graphics_context"
|
||||
#define SDL_PROP_WINDOW_CREATE_FLAGS_NUMBER "SDL.window.create.flags"
|
||||
@@ -1353,6 +1403,8 @@ 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.
|
||||
@@ -1464,8 +1516,8 @@ extern SDL_DECLSPEC SDL_Window * SDLCALL SDL_GetWindowParent(SDL_Window *window)
|
||||
*
|
||||
* On OpenVR:
|
||||
*
|
||||
* - `SDL_PROP_WINDOW_OPENVR_OVERLAY_ID`: the OpenVR Overlay Handle ID for the
|
||||
* associated overlay window.
|
||||
* - `SDL_PROP_WINDOW_OPENVR_OVERLAY_ID_NUMBER`: the OpenVR Overlay Handle ID
|
||||
* for the associated overlay window.
|
||||
*
|
||||
* On Vivante:
|
||||
*
|
||||
@@ -1517,6 +1569,13 @@ 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.
|
||||
@@ -1543,7 +1602,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 "SDL.window.openvr.overlay_id"
|
||||
#define SDL_PROP_WINDOW_OPENVR_OVERLAY_ID_NUMBER "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"
|
||||
@@ -1562,6 +1621,8 @@ 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.
|
||||
@@ -1619,15 +1680,16 @@ 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, 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 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.
|
||||
*
|
||||
* \param window the window to change.
|
||||
* \param icon an SDL_Surface structure containing the icon for the window.
|
||||
@@ -1637,6 +1699,8 @@ 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);
|
||||
|
||||
@@ -1830,7 +1894,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 size of a window's client area.
|
||||
* Get the aspect ratio 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
|
||||
@@ -2457,7 +2521,6 @@ 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);
|
||||
@@ -2802,6 +2865,62 @@ 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.
|
||||
*
|
||||
|
||||
6
Source/ThirdParty/SDL/SDL3/SDL_vulkan.h
vendored
6
Source/ThirdParty/SDL/SDL3/SDL_vulkan.h
vendored
@@ -51,14 +51,14 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Avoid including vulkan.h, don't define VkInstance if it's already included */
|
||||
#ifdef VULKAN_H_
|
||||
/* Avoid including vulkan_core.h, don't define VkInstance if it's already included */
|
||||
#ifdef VULKAN_CORE_H_
|
||||
#define NO_SDL_VULKAN_TYPEDEFS
|
||||
#endif
|
||||
#ifndef NO_SDL_VULKAN_TYPEDEFS
|
||||
#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
|
||||
|
||||
#if defined(__LP64__) || defined(_WIN64) || defined(__x86_64__) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
|
||||
#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__)) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) || (defined(__riscv) && __riscv_xlen == 64)
|
||||
#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
|
||||
#else
|
||||
#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
|
||||
|
||||
@@ -90,7 +90,7 @@ namespace Flax.Deps.Dependencies
|
||||
|
||||
CloneGitRepo(root, "https://github.com/libsdl-org/SDL");
|
||||
GitFetch(root);
|
||||
GitResetToCommit(root, "59693c8996acb0adb0c0ebad808c81ffaf36a2cd"); // 3.2.16
|
||||
GitResetToCommit(root, "0e262dfd441f93d158b6a951db49efdc00bb3bba"); // 3.3.x
|
||||
|
||||
foreach (var platform in options.Platforms)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user