Simple DirectMedia Layer https://libsdl.org
Find a file
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
.github release: fix arm64 Visual Studio build directory 2024-05-23 13:04:35 +02:00
android-project isVRHeadset returns true for Pico headsets 2024-05-23 17:39:06 -07:00
build-scripts Note that SDL_BlitSurface() was renamed SDL_BlitSurfaceScaled() 2024-05-24 05:33:51 -07:00
cmake release: create arm64 Visual Studio binaries 2024-05-23 00:13:10 +02:00
docs Correct name for SDL_CreateThreadWithStackSize() 2024-05-24 07:32:34 -07:00
include Note that SDL_BlitSurface() was renamed SDL_BlitSurfaceScaled() 2024-05-24 05:33:51 -07:00
mingw/pkg-support mingw: add pkg-support files (INSTALL.txt and Makefile) 2024-03-23 21:41:20 +01:00
src video: Distinguish between explicit fullscreen enter requests and update requests 2024-05-25 14:13:00 -04:00
test dropfile: main callbacks need extra CMake care on UWP 2024-05-25 16:35:11 +02:00
VisualC VC: don't import Microsoft.CPP.UpgradeFromVC[67]0.props projects 2024-05-24 11:13:40 +02:00
VisualC-GDK VC: don't import Microsoft.CPP.UpgradeFromVC[67]0.props projects 2024-05-24 11:13:40 +02:00
VisualC-WinRT include: Removed SDL_quit.h 2024-04-15 11:35:39 -04:00
wayland-protocols Add support for modal windows to more platforms 2024-04-30 13:47:57 -04:00
Xcode xcode: cmake scripts inside frameworks in side xcframework differ from the top cmake script 2024-05-22 20:17:13 +02:00
.clang-format Add 'wl_list_for_each_safe' to the clang-format macro list 2024-03-14 10:22:23 -04:00
.clang-tidy Fix size of memcpy in SDL_AudioDeviceFormatChangedAlreadyLocked 2023-08-05 14:14:45 -04:00
.editorconfig Fixed formatting for Haiku cc files 2023-01-25 03:03:41 -08:00
.gitignore .gitignore: Adding compile_commands.json and .cache/ 2024-04-26 08:48:22 -07:00
.wikiheaders-options wikiheaders: bridge wiki Category docs to the headers! 2024-05-16 11:48:23 -04:00
Android.mk Android: Implement open and save file dialog. 2024-05-06 09:33:48 -07:00
BUGS.txt Cleaned up a few more Bugzilla mentions. 2021-02-12 14:46:49 -05:00
CMakeLists.txt cmake+d3d12: d3d12 now builds succesfully on older Windows SDKs, so simplify the checks 2024-05-24 21:48:04 +02:00
CREDITS.md docs: Moved CREDITS and INSTALL to markdown format. 2023-11-29 12:31:27 -05:00
INSTALL.md Updated INSTALL.md 2024-04-10 09:18:42 -04:00
LICENSE.txt Updated copyright for 2024 2024-01-01 13:15:26 -08:00
README-SDL.txt More HTTPS changes in the documentation. 2017-02-16 16:52:03 -05:00
README.md Tweaking documentation for the SDL 3.0 preview release 2024-03-24 06:16:02 -07:00
WhatsNew.txt Tweaking documentation for the SDL 3.0 preview release 2024-03-24 06:16:02 -07:00

Simple DirectMedia Layer (SDL) Version 3.0

https://www.libsdl.org/

Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware. It is used by video playback software, emulators, and popular games including Valve's award winning catalog and many Humble Bundle games.

More extensive documentation is available in the docs directory, starting with README.md. If you are migrating to SDL 3.0 from SDL 2.0, the changes are extensively documented in README-migration.md.

Enjoy!

Sam Lantinga (slouken@libsdl.org)