SDL/src
Frank Praznik 0e1f3b681f video: Distinguish between explicit fullscreen enter requests and update requests
Video backends that run asynchronously can wind up in a race situation if a mode or position update request queues up a fullscreen enter request while an unprocessed asynchronous leave request is in flight, and the mode switch or position update request is processed after the leave request, causing the window to erroneously return to fullscreen.

Instead of the internal SDL_UpdateFullscreenMode and backend SetWindowFullscreen functions taking a boolean value, use an enum that allows the backends to distinguish between "this is an explicit fullscreen enter/leave request", and "this is an update request to change the mode or position". Communicating the specific intent allows the backend to early-out when required, which prevents windows from erroneously returning to fullscreen due to update requests made after a leave request, and allows for the removal of some internal synchronization previously needed to (attempt to) work around this, which improves overall performance while also increasing robustness.

This is only relevant to the internal functions, and nothing in the public-facing API has been changed.
2024-05-25 14:13:00 -04:00
..
atomic Define SDL_PLATFORM_* macros instead of underscored ones (#8875) 2024-01-24 01:40:51 +00:00
audio thread: Reworked SDL_CreateThread to be consistent across platforms. 2024-05-22 11:39:43 -04:00
camera thread: Reworked SDL_CreateThread to be consistent across platforms. 2024-05-22 11:39:43 -04:00
core windows: Before SDL_main has run, use WideCharToMultibyte, not SDL_iconv. 2024-05-22 20:08:15 -04:00
cpuinfo Renamed SDL_SIMDGetAlignment() to SDL_GetSIMDAlignment() 2024-05-16 10:22:15 -07:00
dialog Dialog: XDG Portals: Remove the `file://` URI 2024-05-23 12:54:39 -07:00
dynapi thread: SDL_CreateThreadWithStackSize is now SDL_CreateThreadWithProperties. 2024-05-22 11:39:43 -04:00
events Don't toggle modifier state for repeated keys (thanks @dalawren!) 2024-05-24 04:44:56 -07:00
file Removed mostly unused SDL_errorcode 2024-05-07 15:45:06 -07:00
filesystem Added SDL_GlobFlags 2024-05-14 07:13:35 -07:00
haptic Fix TOCTOU race condition 2024-03-08 15:52:04 -08:00
hidapi thread: Reworked SDL_CreateThread to be consistent across platforms. 2024-05-22 11:39:43 -04:00
joystick Fixed mapping the touchpad for the Qanba PS5 controllers like the Qanba Drone 2 Arcade Joystick 2024-05-23 16:48:04 -07:00
libm Define SDL_PLATFORM_* macros instead of underscored ones (#8875) 2024-01-24 01:40:51 +00:00
loadso Define SDL_PLATFORM_* macros instead of underscored ones (#8875) 2024-01-24 01:40:51 +00:00
locale N3DS: Fix locale name and early return. 2024-03-19 16:54:07 -07:00
main main: Add an optional `appstate` param to main callback entry points. 2024-03-27 17:22:08 -04:00
misc Added VisionOS as a supported target to the Xcode project 2024-01-27 11:07:21 -08:00
power Added VisionOS as a supported target to the Xcode project 2024-01-27 11:07:21 -08:00
render cmake+d3d12: d3d12 now builds succesfully on older Windows SDKs, so simplify the checks 2024-05-24 21:48:04 +02:00
sensor thread: Reworked SDL_CreateThread to be consistent across platforms. 2024-05-22 11:39:43 -04:00
stdlib Memory leak no more! 2024-05-23 11:26:59 -07:00
storage Added SDL_GlobFlags 2024-05-14 07:13:35 -07:00
test SDL_test: add --hide-cursor to help 2024-05-21 22:56:29 +02:00
thread thread: SDL_CreateThreadWithStackSize is now SDL_CreateThreadWithProperties. 2024-05-22 11:39:43 -04:00
time time: Use a function instead of properties to retrieve the system date and time locale info 2024-05-08 15:35:04 -04:00
timer thread: Reworked SDL_CreateThread to be consistent across platforms. 2024-05-22 11:39:43 -04:00
video video: Distinguish between explicit fullscreen enter requests and update requests 2024-05-25 14:13:00 -04:00
SDL.c Free any temporary environment memory at SDL_Quit() 2024-05-23 11:23:20 -07:00
SDL_assert.c assert: SDL_AssertData::always_ignore should be an SDL_bool, not an int. 2024-04-09 00:50:01 -04:00
SDL_assert_c.h Updated copyright for 2024 2024-01-01 13:15:26 -08:00
SDL_error.c Updated logging functions for SDL3 naming convention 2024-05-16 10:22:15 -07:00
SDL_error_c.h Updated copyright for 2024 2024-01-01 13:15:26 -08:00
SDL_guid.c Updated copyright for 2024 2024-01-01 13:15:26 -08:00
SDL_hashtable.c Updated copyright for 2024 2024-01-01 13:15:26 -08:00
SDL_hashtable.h Updated copyright for 2024 2024-01-01 13:15:26 -08:00
SDL_hints.c Added NULL pointer check 2024-05-17 08:54:28 -07:00
SDL_hints_c.h Removed SDL_ClearHints() from the public API 2024-02-24 21:07:50 -08:00
SDL_internal.h SDL_internal: tweaked comment. 2024-05-22 20:55:28 -04:00
SDL_list.c Cleaned up various type conversion issues 2024-03-07 06:58:43 -08:00
SDL_list.h Updated copyright for 2024 2024-01-01 13:15:26 -08:00
SDL_log.c Updated logging functions for SDL3 naming convention 2024-05-16 10:22:15 -07:00
SDL_log_c.h Updated copyright for 2024 2024-01-01 13:15:26 -08:00
SDL_properties.c Fix property cleanup callback not being called on error (#9663) 2024-05-06 14:50:28 -07:00
SDL_properties_c.h Added SDL_SetFreeableProperty() for internal use 2024-02-10 08:04:27 -08:00
SDL_utils.c Updated copyright for 2024 2024-01-01 13:15:26 -08:00
SDL_utils_c.h Updated copyright for 2024 2024-01-01 13:15:26 -08:00