SDL

Frameworks & Libraries

Cross-platform access to audio, input, and graphics hardware for games and media.

Latest release-3.4.14 · by SDLWebsitelibsdl-org/SDL

Release activity

Release activity — 10 releases across 9 days since Dec 16, 2025. Each cell is one day; darker means more releases that day. Nothing is recorded before Dec 16, 2025. Older weeks are hidden at this screen width.
MayJunJulAug
SundayNo releases on Apr 26, 2026No releases on May 3, 2026No releases on May 10, 2026No releases on May 17, 2026No releases on May 24, 20261 release on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026
MondayNo releases on Apr 27, 2026No releases on May 4, 2026No releases on May 11, 2026No releases on May 18, 2026No releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 20261 release on Aug 3, 2026No releases on Aug 10, 2026
TuesdayNo releases on Apr 28, 2026No releases on May 5, 2026No releases on May 12, 2026No releases on May 19, 2026No releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026
WednesdayNo releases on Apr 29, 2026No releases on May 6, 2026No releases on May 13, 2026No releases on May 20, 2026No releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 20261 release on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026
ThursdayNo releases on Apr 30, 2026No releases on May 7, 2026No releases on May 14, 2026No releases on May 21, 2026No releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026
Friday1 release on May 1, 2026No releases on May 8, 2026No releases on May 15, 2026No releases on May 22, 2026No releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026
Saturday1 release on May 2, 2026No releases on May 9, 2026No releases on May 16, 2026No releases on May 23, 2026No releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026

10 releases since Dec 16, 2025, busiest day 2

Changelog

release-3.4.14

3.4.14

Added 1
  • GPU buffers and textures can have multiple read usages
Fixed 6
  • Fixed X11 crash if the IME service was shutdown in the background
  • Fixed hang when hiding an X11 window on some window managers
  • Fixed being unable to get clipboard text on older versions of macOS
  • Fixed the 8BitDo Pro 3 controller showing up twice on macOS
  • Fixed Xbox controllers not being detected if SDL is built with GameInput support
  • Fixed pen creating phantom mouse events in relative mode on Android

This is a stable bugfix release, with the following changes:

  • GPU buffers and textures can have multiple read usages
  • Fixed X11 crash if the IME service was shutdown in the background
  • Fixed hang when hiding an X11 window on some window managers
  • Fixed being unable to get clipboard text on older versions of macOS
  • Fixed the 8BitDo Pro 3 controller showing up twice on macOS
  • Fixed Xbox controllers not being detected if SDL is built with GameInput support
  • Fixed pen creating phantom mouse events in relative mode on Android
View originalPermalink
How release-3.4.14 went
release-3.4.12

3.4.12

Added 2
  • Added SDL_HINT_ENABLE_STEAM_SCREEN_KEYBOARD to customize behavior on Steam Deck and Steam Machine
  • Added hotplug detection support when using libusb for HIDAPI controllers
Changed 2
  • Improved support for external surfaces under Wayland
  • Improved support for gamepads under Emscripten
Fixed 5
  • Fixed an assert on Windows in SDL_SetWindowOpacity()
  • Fixed visual artifacts when switching render targets with the Vulkan renderer
  • Fixed crash rendering YUV textures on NVIDIA drivers with the Vulkan renderer
  • Fixed flipped Xbox 360 controller axes on macOS
  • Fixed truncated long text input sequences when using sdl2-compat

This is a stable bugfix release, with the following changes:

  • Fixed an assert on Windows in SDL_SetWindowOpacity()
  • Improved support for external surfaces under Wayland
  • Fixed visual artifacts when switching render targets with the Vulkan renderer
  • Fixed crash rendering YUV textures on NVIDIA drivers with the Vulkan renderer
  • Added SDL_HINT_ENABLE_STEAM_SCREEN_KEYBOARD to customize behavior on Steam Deck and Steam Machine
  • Improved support for gamepads under Emscripten
  • Added hotplug detection support when using libusb for HIDAPI controllers
  • Fixed flipped Xbox 360 controller axes on macOS
  • Fixed truncated long text input sequences when using sdl2-compat
View originalPermalink
How release-3.4.12 went
release-3.4.10

3.4.10

Added 7
  • Allow depth texture arrays in the GPU API
  • Added support for packed 16-bit texture formats in the Metal renderer
  • Added controller sensor support for GameInput v3
  • Added support for gamepad motion sensors on Android
  • Added support for GameCube rumble when the adapter is in PC mode and has the latest firmware
  • Added support for the GameSir Super Nova in Xbox 360 mode
  • Added support for the PDP Afterglow Wave Wireless Controller for Switch
Changed 2
  • Release wired controllers back to the OS when the application is in the background on Android
  • Disable the X Synchronization Extension by default, can be enabled with SDL_HINT_VIDEO_X11_ENABLE_XSYNC_EXT
Fixed 8
  • Fixed a crash when copying to the Vulkan swapchain with the GPU API
  • Fixed rare cursor corruption on Windows
  • Fixed the text edit cursor position when using the Korean IME on Windows
  • Fixed Ipega controllers being ignored in keyboard mode
  • Fixed rumble on the new Steam Controller
  • Fixed several second hang when changing focus on X11 in some situations
  • Fixed SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH on X11
  • Fixed a rare crash on Raspberry Pi when creating a window

This is a stable bugfix release, with the following changes:

  • Allow depth texture arrays in the GPU API
  • Fixed a crash when copying to the Vulkan swapchain with the GPU API
  • Added support for packed 16-bit texture formats in the Metal renderer
  • Fixed rare cursor corruption on Windows
  • Fixed the text edit cursor position when using the Korean IME on Windows
  • Added controller sensor support for GameInput v3
  • Added support for gamepad motion sensors on Android
  • Release wired controllers back to the OS when the application is in the background on Android
  • Fixed Ipega controllers being ignored in keyboard mode
  • Added support for GameCube rumble when the adapter is in PC mode and has the latest firmware
  • Fixed rumble on the new Steam Controller
  • Added support for the GameSir Super Nova in Xbox 360 mode
  • Added support for the PDP Afterglow Wave Wireless Controller for Switch
  • Fixed several second hang when changing focus on X11 in some situations
  • Disable the X Synchronization Extension by default, can be enabled with SDL_HINT_VIDEO_X11_ENABLE_XSYNC_EXT
  • Fixed SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH on X11
  • Fixed a rare crash on Raspberry Pi when creating a window
View originalPermalink
How release-3.4.10 went
release-3.4.8

3.4.8

Fixed 2
  • Controller related crash on Windows introduced in 3.4.6
  • Crash when showing a dialog on Unix if zenity is not installed

This is a hotfix release, with the following changes:

  • Fixed a controller related crash on Windows, introduced in 3.4.6
  • Fixed a crash when showing a dialog on Unix if zenity isn't installed
View originalPermalink
How release-3.4.8 went
release-3.4.6

3.4.6

Fixed 11
  • Xbox controllers being unresponsive on preview release of Windows 11
  • Enumerating subdirectories in the application assets on Android
  • On-screen keyboard being hidden while shown on Android
  • Text input being canceled when the on-screen keyboard goes away on iOS
  • Pen hover getting a stale position when lifting off the iPad on iOS
  • Menu button state on controllers on Apple platforms

This is a stable bugfix release, with the following changes:

  • Fixed Xbox controllers being unresponsive on preview release of Windows 11
  • Fixed enumerating subdirectories in the application assets on Android
  • Fixed the on-screen keyboard being hidden while shown on Android
  • Fixed text input being canceled when the on-screen keyboard goes away on iOS
  • Fixed pen hover getting a stale position when lifting off the iPad on iOS
  • Fixed the menu button state on controllers on Apple platforms
  • Fixed scaled cursor image selection on Wayland
  • Fixed horizontal touchpad scrolling direction on X11
  • Fixed crash on exit when using KMSDRM in atomic mode
  • Fixed multi-threaded crashes using SDL GPU on Vulkan and Metal
  • Fixed building for GDK on Windows
View originalPermalink
How release-3.4.6 went
release-3.4.4

3.4.4

Added 6
  • Add SDL_HINT_WINDOWS_RAW_KEYBOARD_INPUTSINK to add the RIDEV_INPUTSINK flag for raw input on Windows
  • Implement support for SDL_HINT_AUDIO_DEVICE_STREAM_ROLE on Android
  • Add support for SL/SR on Switch 2 controllers in mini-controller mode
  • Add battery status for newer FlyDigi controllers
  • Add support for the Flydigi Vader 5 Pro in Xbox 360 mode
  • Add support for battery status on third-party DualSense controllers
Changed 3
  • Default SDL_GL_FRAMEBUFFER_SRGB_CAPABLE back to zero to fix brightness issues with existing applications
  • Scale custom cursors with the pointer scale on Wayland
  • Disable system gesture state for game controllers on macOS
Fixed 11
  • Fix crash when calling SDL_RenderGeometryRaw() with both texture and uv set to NULL
  • Prevent the window from growing when scale to display is used on Wayland
  • Fix missing mouse cursor on KMSDRM
  • Remove the window shape when SDL_SetWindowShape() is passed NULL
  • Fix sending duplicate key down events when reconciling X11 modifier state
  • Fix backspace handling on Android with API 30+

This is a stable bugfix release, with the following changes:

  • Fixes a crash when calling SDL_RenderGeometryRaw() with both texture and uv set to NULL
  • Default SDL_GL_FRAMEBUFFER_SRGB_CAPABLE back to zero, to fix brightness issues with existing applications
  • Prevent the window from growing when scale to display is used on Wayland
  • Scale custom cursors with the pointer scale on Wayland
  • Fixed missing mouse cursor on KMSDRM
  • Remove the window shape when SDL_SetWindowShape() is passed NULL
  • Fixed sending duplicate key down events when reconciling X11 modifier state
  • Fixed backspace handling on Android with API 30+
  • Added SDL_HINT_WINDOWS_RAW_KEYBOARD_INPUTSINK to add the RIDEV_INPUTSINK flag for raw input on Windows
  • Fixed Print Screen key capture during keyboard grab
  • Fixed pipewire audio output hanging under heavy load
  • Fixed DirectSound buffer creation failure with >200kHz
  • Implemented support for SDL_HINT_AUDIO_DEVICE_STREAM_ROLE on Android
  • Fixed a crash when setting framerate for a camera on macOS
  • Fixed an out of memory issue opening a V4L2 camera with FRMIVAL_TYPE_CONTINUOUS
  • Disabled system gesture state for game controllers on macOS
  • Added support for SL/SR on Switch 2 controllers in mini-controller mode
  • Added battery status for newer FlyDigi controllers
  • Added support for the Flydigi Vader 5 Pro in Xbox 360 mode
  • Added support for battery status on third-party DualSense controllers
  • Added support for accelerometers on third-party PS3 controllers
  • Fixed opening the wrong controller index on PS2
  • Added support for the ZUIKI EVOTOP controller
  • Added support for persistent storage with Emscripten (see SDL_EMSCRIPTEN_PERSISTENT_PATH)
  • Fixed several issues with globbing directories
  • Fixed the Windows file dialog calling the callback twice in some cases
View originalPermalink
How release-3.4.4 went
release-3.4.2

3.4.2

Added 7
  • Enable Vulkan support on OpenBSD
  • Add support for GPU ARGB1555 (B5G5R5A1_UNORM) textures with Direct3D11
  • Add SDL_PROP_GPU_DEVICE_CREATE_METAL_ALLOW_MACFAMILY1_BOOLEAN to allow using the GPU API with older Mac hardware
  • Add SDL_HINT_OPENGL_FORCE_SRGB_FRAMEBUFFER to force specific sRGB behavior for OpenGL and OpenGL ES
  • Add support for the Razer Raiju V5 Pro
  • Add share button mapping to Xbox Series X controller on Android
  • Add support for the third stylus button on Android
Changed 1
  • Don't include KHR_portability_enumeration by default on macOS
Fixed 12
  • Fix D3D12 DSV creation for array/cube/cube-array depth textures
  • Fix long startup time on Windows when some non-compliant input devices are present
  • Fix a crash at startup when the broken EZFRD64.DLL is present
  • Fix a divide by zero when using Nintendo Switch 2 controllers
  • Fix hang sending output reports to the NVIDIA SHIELD Controller on macOS
  • Fix various controllers showing up twice on macOS

This is a stable bugfix release, with the following changes:

  • Enabled Vulkan support on OpenBSD
  • Don't include KHR_portability_enumeration by default on macOS
  • Added support for GPU ARGB1555 (B5G5R5A1_UNORM) textures with Direct3D11
  • Fixed D3D12 DSV creation for array/cube/cube-array depth textures
  • Added SDL_PROP_GPU_DEVICE_CREATE_METAL_ALLOW_MACFAMILY1_BOOLEAN to allow using the GPU API with older Mac hardware
  • Added SDL_HINT_OPENGL_FORCE_SRGB_FRAMEBUFFER to force specific sRGB behavior for OpenGL and OpenGL ES
  • Fixed long startup time on Windows when some non-compliant input devices are present
  • Fixed a crash at startup when the broken EZFRD64.DLL is present
  • Added support for the Razer Raiju V5 Pro
  • Fixed a divide by zero when using Nintendo Switch 2 controllers
  • Fixed hang sending output reports to the NVIDIA SHIELD Controller on macOS
  • Fixed various controllers showing up twice on macOS
  • Fixed handling GameCube adapters in PC mode on Linux and macOS
  • Added share button mapping to Xbox Series X controller on Android
  • Added support for the third stylus button on Android
  • Fixed high audio latency on Android
  • Fixed only one mouse button being usable at a time on Emscripten
  • Fixed SDL_SetWindowIcon on single-threaded Emscripten builds
  • Fixed SDL_GlobDirectory on iOS and Android
  • Fixed some textures rendering too small on the PSP
View originalPermalink
How release-3.4.2 went
release-3.4.0

3.4.0

Added 18
  • SDL_CreateAnimatedCursor() to create animated color cursors
  • SDL_HINT_MOUSE_DPI_SCALE_CURSORS to automatically scale cursors based on the display scale
  • SDL_SetWindowProgressState(), SDL_SetWindowProgressValue(), SDL_GetWindowProgressState(), and SDL_GetWindowProgressValue() to show progress in the window's taskbar icon on Windows and Linux
  • GPU device creation properties SDL_PROP_GPU_DEVICE_CREATE_FEATURE_CLIP_DISTANCE_BOOLEAN, SDL_PROP_GPU_DEVICE_CREATE_FEATURE_DEPTH_CLAMPING_BOOLEAN, SDL_PROP_GPU_DEVICE_CREATE_FEATURE_INDIRECT_DRAW_FIRST_INSTANCE_BOOLEAN, SDL_PROP_GPU_DEVICE_CREATE_FEATURE_ANISOTROPY_BOOLEAN, and SDL_PROP_GPU_DEVICE_CREATE_D3D12_ALLOW_FEWER_RESOURCE_SLOTS_BOOLEAN to enable the GPU API on older hardware
  • SDL_PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER to enable configuring Vulkan features when creating a GPU device
  • SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEAN to allow requiring Vulkan hardware acceleration when creating a GPU device

Thanks to all the people who have contributed, SDL 3.4.0 is now available!

In addition to lots of bug fixes and general system improvements, this release has some major themes of improved interoperability between the 3D GPU API and the 2D rendering API, improved Emscripten support, improved pen handling, and native support for PNG images.

Here is a full list of the API changes since the last release: General:

  • Added SDL_CreateAnimatedCursor() to create animated color cursors
  • Added SDL_HINT_MOUSE_DPI_SCALE_CURSORS to automatically scale cursors based on the display scale
  • Added SDL_SetWindowProgressState(), SDL_SetWindowProgressValue(), SDL_GetWindowProgressState(), and SDL_GetWindowProgressValue() to show progress in the window's taskbar icon on Windows and Linux
  • Added GPU device creation properties to enable the GPU API on older hardware if you're not using these features:
    • SDL_PROP_GPU_DEVICE_CREATE_FEATURE_CLIP_DISTANCE_BOOLEAN
    • SDL_PROP_GPU_DEVICE_CREATE_FEATURE_DEPTH_CLAMPING_BOOLEAN
    • SDL_PROP_GPU_DEVICE_CREATE_FEATURE_INDIRECT_DRAW_FIRST_INSTANCE_BOOLEAN
    • SDL_PROP_GPU_DEVICE_CREATE_FEATURE_ANISOTROPY_BOOLEAN
    • SDL_PROP_GPU_DEVICE_CREATE_D3D12_ALLOW_FEWER_RESOURCE_SLOTS_BOOLEAN
  • Added SDL_PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER to enable configuring Vulkan features when creating a GPU device
  • Added SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEAN to allow requiring Vulkan hardware acceleration when creating a GPU device
  • Added SDL_GetGPUDeviceProperties() to query information from a GPU device:
    • SDL_PROP_GPU_DEVICE_NAME_STRING
    • SDL_PROP_GPU_DEVICE_DRIVER_NAME_STRING
    • SDL_PROP_GPU_DEVICE_DRIVER_VERSION_STRING
    • SDL_PROP_GPU_DEVICE_DRIVER_INFO_STRING
  • Added SDL_GetPixelFormatFromGPUTextureFormat() and SDL_GetGPUTextureFormatFromPixelFormat()
  • Added SDL_CreateGPURenderer() and SDL_GetGPURendererDevice() to create a 2D renderer for use with GPU rendering.
  • Added SDL_CreateGPURenderState(), SDL_SetGPURenderStateFragmentUniforms(), SDL_SetGPURenderState(), and SDL_DestroyGPURenderState() to use fragment shaders with a GPU 2D renderer
  • Added SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_POINTER to create a 2D texture from an existing GPU texture
  • Added SDL_PROP_TEXTURE_GPU_TEXTURE_POINTER to get the GPU texture from a 2D texture when using the GPU 2D renderer
  • Added support for YUV textures and HDR colorspaces to the GPU 2D renderer
  • Added support for textures with palettes, and SDL_GetTexturePalette() and SDL_SetTexturePalette() to interact with them
  • Added SDL_RenderTexture9GridTiled() to do tiled instead of stretched 9-grid texture rendering
  • Added SDL_GetDefaultTextureScaleMode() and SDL_SetDefaultTextureScaleMode() to set the texture scale mode for new textures
  • Added SDL_GetRenderTextureAddressMode() and SDL_SetRenderTextureAddressMode() to change the texture addressing mode
  • Added SDL_TEXTURE_ADDRESS_WRAP to allow wrapping of textures if the renderer has SDL_PROP_RENDERER_TEXTURE_WRAPPING_BOOLEAN set
  • The default YUV colorspace is BT.601 limited range, for compatibility with SDL2
  • Added SDL_SCALEMODE_PIXELART as an improved scaling algorithm for pixel art without introducing blurring
  • Added SDL_FLIP_HORIZONTAL_AND_VERTICAL to flip a surface both horizontally and vertically
  • Added SDL_LoadPNG(), SDL_LoadPNG_IO(), SDL_SavePNG(), and SDL_SavePNG_IO() to load and save PNG images
  • Added SDL_LoadSurface() and SDL_LoadSurface_IO() to detect BMP and PNG formats and load them as surfaces
  • Added SDL_PROP_SURFACE_ROTATION_FLOAT to indicate the rotation needed to display camera images upright
  • Added SDL_RotateSurface() to create a rotated copy of a surface
  • SDL_EVENT_WINDOW_EXPOSED now sets data1 to true if it is sent during live resizing
  • Added SDL_EVENT_DISPLAY_USABLE_BOUNDS_CHANGED, which is sent when the usable desktop bounds change
  • Added SDL_EVENT_SCREEN_KEYBOARD_SHOWN, which is sent when the on-screen keyboard has been shown
  • Added SDL_EVENT_SCREEN_KEYBOARD_HIDDEN, which is sent when the on-screen keyboard has been hidden
  • Added pinch gesture events: SDL_EVENT_PINCH_BEGIN, SDL_EVENT_PINCH_UPDATE, SDL_EVENT_PINCH_END
  • SDL_EVENT_AUDIO_DEVICE_ADDED will be sent during initialization for each audio device
  • SDL_GetCameraPermissionState() returns SDL_CameraPermissionState instead of int
  • Added SDL_PutAudioStreamDataNoCopy() to do more efficient audio stream processing in some cases
  • Added SDL_PutAudioStreamPlanarData() to add planar audio data instead of interleaved data to an audio stream
  • Added SDL_HINT_AUDIO_DEVICE_RAW_STREAM to signal that the OS shouldn't do further audio processing, useful for applications that handle noise canceling, etc.
  • Added SDL_PROP_AUDIOSTREAM_AUTO_CLEANUP_BOOLEAN to allow streams that persist beyond the audio subsystem lifetime.
  • Added enhanced support for 8BitDo controllers
  • Added enhanced support for FlyDigi controllers
  • Added enhanced support for Hand Held Legend SInput controllers
  • Added support for wired Nintendo Switch 2 controllers when built with libusb
  • Added SDL_hid_get_properties() to associate SDL properties with HID devices
  • Added SDL_PROP_HIDAPI_LIBUSB_DEVICE_HANDLE_POINTER to query the libusb handle from an SDL_hid_device, if it's been opened with libusb
  • Added SDL_SetRelativeMouseTransform() to add custom mouse input transformation
  • Added SDL_GetPenDeviceType() to determine whether a pen is on the screen or on a separate touchpad
  • SDL_HINT_MAIN_CALLBACK_RATE may be set to a floating point callback rate
  • Added SDL_GetEventDescription() to get an English description of an event, suitable for logging
  • Added SDL_PROP_IOSTREAM_MEMORY_FREE_FUNC_POINTER to allow custom freeing of the memory used by SDL_IOFromMem() and SDL_IOFromConstMem()
  • Added SDL_PROP_PROCESS_CREATE_WORKING_DIRECTORY_STRING to set the working directory for new processes
  • Added verbose log output when the DEBUG_INVOCATION environment variable is set to "1"
  • Added SDL_AddAtomicU32()
  • Added SDL_GetSystemPageSize() to get the system page size
  • Added SDL_ALIGNED() to signal that data should have a specific alignment

Windows:

  • Added SDL_HINT_RENDER_DIRECT3D11_WARP to enable D3D11 software rasterization
  • Using SDL_InsertGPUDebugLabel(), SDL_PushGPUDebugGroup(), and SDL_PopGPUDebugGroup() requires WinPixEventRuntime.dll to be in your PATH or in the same directory as your executable
  • Added SDL_PROP_DISPLAY_WINDOWS_HMONITOR_POINTER so you can query the HMONITOR associated with a display
  • SDL_HINT_AUDIO_DEVICE_STREAM_ROLE is used by the WASAPI audio driver to set the audio stream category
  • Added SDL_HINT_AUDIO_DEVICE_RAW_STREAM to signal whether the OS audio driver should do additional signal processing
  • Added SDL_HINT_WINDOWS_RAW_KEYBOARD_EXCLUDE_HOTKEYS to allow disabling some system hotkeys when in raw input mode
  • SDL_HINT_WINDOWS_GAMEINPUT is disabled by default

macOS:

  • Added SDL_HINT_MAC_PRESS_AND_HOLD to control whether holding down a key will repeat the pressed key or open the accents menu

Linux:

  • Added atomic support for KMSDRM
  • Added SDL_HINT_KMSDRM_ATOMIC to control whether KMSDRM will use atomic functionality
  • Added SDL_PROP_DISPLAY_WAYLAND_WL_OUTPUT_POINTER so you can query the wl_output associated with a display

Emscripten:

  • Added SDL_WINDOW_FILL_DOCUMENT to indicate that windows expand to fill the whole browser window
  • Added SDL_SetWindowFillDocument() to change whether windows expand to fill the whole browser window
  • Added SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_CANVAS_ID_STRING to allow setting the SDL canvas ID, and SDL_PROP_WINDOW_EMSCRIPTEN_CANVAS_ID_STRING to query it on existing windows
  • Added SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING to specify where keyboard input is bound, and SDL_PROP_WINDOW_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING to query it on existing windows

iOS:

  • SDL now supports window scenes, fixing the warning "CLIENT OF UIKIT REQUIRES UPDATE"
  • Added SDL_PROP_WINDOW_CREATE_WINDOWSCENE_POINTER to specify the window scene for a window

visionOS:

  • The default refresh rate has been increased to 90Hz
  • SDL_SetWindowSize() changes the size of the window on Vision Pro headsets

PlayStation 2:

  • Added the following hints to control the display parameters: SDL_HINT_PS2_GS_WIDTH, SDL_HINT_PS2_GS_HEIGHT, SDL_HINT_PS2_GS_PROGRESSIVE, SDL_HINT_PS2_GS_MODE

Note: On Unix platforms SDL provides ELF notes describing its non-mandatory library dependencies in the format described by https://systemd.io/ELF_DLOPEN_METADATA/. Some of these libraries are quite important, so distribution vendors who package SDL should parse the ELF notes and consider generating dependencies at the packaging level, for example by using https://github.com/systemd/package-notes. Other libraries and games can add similar ELF notes to describe their own dependencies by using the SDL_ELF_NOTE_DLOPEN macro.

View originalPermalink
How release-3.4.0 went
release-3.2.30

3.2.30

Changed 1
  • Pass the window along with evdev touch events
Fixed 3
  • Crash in UploadToTexture() when using the direct3d12 renderer
  • Crash on Android upon returning from the background when using the GPU API
  • Abort on startup under Wayland when the application is setuid() or setgid()

This is a stable bugfix release, with the following changes:

  • Fixed a crash in UploadToTexture() when using the direct3d12 renderer
  • Fixed a crash on Android upon returning from the background when using the GPU API
  • Fixed abort on startup under Wayland when the application is setuid() or setgid()
  • Pass the window along with evdev touch events
View originalPermalink
How release-3.2.30 went
prerelease-3.3.6Pre-release

3.3.6

Added 1
  • Added SDL_HINT_MOUSE_DPI_SCALE_CURSORS hint with default value of "0" to prevent cursors from unexpectedly changing size
Changed 2
  • Replaced SDL_PROP_SURFACE_ROTATION_NUMBER with SDL_PROP_SURFACE_ROTATION_FLOAT
  • Replaced SDL_HINT_EMSCRIPTEN_FILL_DOCUMENT and related properties with SDL_WINDOW_FILL_DOCUMENT flag and SDL_SetWindowFillDocument()

This is an SDL 3.4.0 release candidate, so please let us know if you run into any issues with it!

In addition to bug fixes since the last release candidate, we've made the following API changes:

  • Added SDL_HINT_MOUSE_DPI_SCALE_CURSORS and changed the default to "0", so cursors don't unexpectedly change size.
  • SDL_PROP_SURFACE_ROTATION_NUMBER has been replaced with SDL_PROP_SURFACE_ROTATION_FLOAT
  • SDL_HINT_EMSCRIPTEN_FILL_DOCUMENT and related properties have been replaced with the SDL_WINDOW_FILL_DOCUMENT flag and SDL_SetWindowFillDocument()
View originalPermalink
How prerelease-3.3.6 went
View all

Discussion