diff mbox series

[meta-oe,PATCHv2] libsdl3: update 3.2.30 -> 3.4.0

Message ID 20260218115501.99630-1-f_l_k@t-online.de
State New
Headers show
Series [meta-oe,PATCHv2] libsdl3: update 3.2.30 -> 3.4.0 | expand

Commit Message

Markus Volk Feb. 18, 2026, 11:55 a.m. UTC
- dont explicitly disable xinput support to fix compilation if x11
  support is enabled (error: unknown type name 'XIRawEvent')
- add missing dependencies for libxcursor, xtst, xinput

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

Signed-off-by: Markus Volk <f_l_k@t-online.de>
---
 .../libsdl3/{libsdl3_3.2.30.bb => libsdl3_3.4.0.bb}         | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
 rename meta-oe/recipes-graphics/libsdl3/{libsdl3_3.2.30.bb => libsdl3_3.4.0.bb} (95%)
diff mbox series

Patch

diff --git a/meta-oe/recipes-graphics/libsdl3/libsdl3_3.2.30.bb b/meta-oe/recipes-graphics/libsdl3/libsdl3_3.4.0.bb
similarity index 95%
rename from meta-oe/recipes-graphics/libsdl3/libsdl3_3.2.30.bb
rename to meta-oe/recipes-graphics/libsdl3/libsdl3_3.4.0.bb
index bb111050e1..5eb21c5cc7 100644
--- a/meta-oe/recipes-graphics/libsdl3/libsdl3_3.2.30.bb
+++ b/meta-oe/recipes-graphics/libsdl3/libsdl3_3.4.0.bb
@@ -19,7 +19,7 @@  SRC_URI = "http://www.libsdl.org/release/SDL3-${PV}.tar.gz"
 
 S = "${UNPACKDIR}/SDL3-${PV}"
 
-SRC_URI[sha256sum] = "4c3b09330d866dc52eb65b66259a6684ad387252ca8c57901b3a2b534eb42e3d"
+SRC_URI[sha256sum] = "082cbf5f429e0d80820f68dc2b507a94d4cc1b4e70817b119bbb8ec6a69584b8"
 
 inherit cmake lib_package binconfig-disabled pkgconfig upstream-version-is-even
 
@@ -33,10 +33,8 @@  EXTRA_OECMAKE = " \
 	-DSDL_PTHREADS=ON \
 	-DSDL_RPATH=OFF \
 	-DSDL_SNDIO=OFF \
-	-DSDL_X11_XCURSOR=OFF \
 	-DSDL_X11_XDBE=OFF \
 	-DSDL_X11_XFIXES=OFF \
-	-DSDL_X11_XINPUT=OFF \
 	-DSDL_X11_XSCRNSAVER=OFF \
 	-DSDL_X11_XSHAPE=OFF \
 "
@@ -69,7 +67,7 @@  PACKAGECONFIG[pipewire] = "-DSDL_PIPEWIRE_SHARED=ON,-DSDL_PIPEWIRE_SHARED=OFF,pi
 PACKAGECONFIG[pulseaudio] = "-DSDL_PULSEAUDIO=ON,-DSDL_PULSEAUDIO=OFF,pulseaudio"
 PACKAGECONFIG[vulkan]    = "-DSDL_VULKAN=ON -DSDL_RENDER_VULKAN=ON,-DSDL_VULKAN=OFF -DSDL_RENDER_VULKAN=OFF"
 PACKAGECONFIG[wayland]    = "-DSDL_WAYLAND=ON,-DSDL_WAYLAND=OFF,wayland-native wayland wayland-protocols libxkbcommon"
-PACKAGECONFIG[x11]        = "-DSDL_X11=ON,-DSDL_X11=OFF,virtual/libx11 libxext libxrandr libxrender"
+PACKAGECONFIG[x11]        = "-DSDL_X11=ON,-DSDL_X11=OFF,virtual/libx11 libxext libxrandr libxrender libxcursor xinput libxtst"
 
 CFLAGS:append:class-native = " -DNO_SHARED_MEMORY"