Release of the SDL 2.0.18 multimedia library

The release of the SDL 2.0.18 (Simple DirectMedia Layer) library has taken place, aimed at simplifying the development of games and multimedia applications. The SDL library provides tools such as hardware-accelerated output of 2D and 3D graphics, input processing, sound playback, 3D rendering via OpenGL/OpenGL ES/Vulkan, and many other accompanying operations. The library is written in C and distributed under the zlib license. Bindings are provided for utilizing SDL's capabilities in projects across various programming languages. The library code is distributed under the Zlib license.

In the new release:

  • Information about the version of SDL in which each function was introduced is provided. Automatic synchronization of the wiki documentation with header files is ensured.
  • New functions added:
    • SDL_RenderGeometry() and SDL_RenderGeometryRaw() for drawing arbitrary shapes using the 2D Render API.
    • SDL_SetTextureUserData() and SDL_GetTextureUserData() for binding application data to a texture.
    • SDL_RenderWindowToLogical() and SDL_RenderLogicalToWindow() for converting between window coordinates and logical rendering coordinates.
    • SDL_RenderSetVSync() for enabling synchronization of output with the vertical blanking interval (vblank).
    • SDL_PremultiplyAlpha() for applying transparency to pixel blocks in the SDL_PIXELFORMAT_ARGB8888 format.
    • SDL_SetWindowMouseRect() and SDL_GetWindowMouseRect() for restricting mouse cursor movement to a specified window area.
    • SDL_GameControllerHasRumble(), SDL_GameControllerHasRumbleTriggers(), SDL_JoystickHasRumble(), and SDL_JoystickHasRumbleTriggers() for checking the support of adaptive rumble effects by game controllers and joysticks.
    • SDL_GetWindowICCProfile() for obtaining the color ICC profile of a window (the SDL_WINDOWEVENT_ICCPROF_CHANGED event is proposed for checking profile changes).
  • New hints added: SDL_HINT_APP_NAME for passing information about the application name and SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY for enabling transparency for EGL windows.
  • A new window event SDL_WINDOWEVENT_DISPLAY_CHANGED has been added, which is generated when the screen displaying the window is changed.
  • The ability to determine precise mouse wheel movement parameters using the "preciseX" and "preciseY" fields in event parameters has been provided.
  • The SDL_WaitEvent() function has been redesigned to reduce CPU load.
  • The hidapi API has been moved to the public category and is now accessible via the SDL_hidapi.h header file.
  • The Windows platform has improved the detection of relative mouse movement in Windows Remote Desktop. The SDL_HINT_IME_SHOW_UI hint has been added to show native UI components (hidden by default). For UWP applications, WGI is used instead of XInput to enhance input controller support.
  • For the Linux platform, the following hints have been implemented: SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME to bind actions displayed when the screensaver is disabled; SDL_HINT_LINUX_JOYSTICK_CLASSIC to choose which device (/dev/input/js* or /dev/input/event*) to use for the joystick; SDL_HINT_JOYSTICK_DEVICE to set the device that is opened for the joystick. The function SDL_LinuxSetThreadPriorityAndPolicy() has been added to manage thread priority placement.
  • For the Android platform, support for sound output and capture has been implemented using the AAudio API. By default, support for the Steam Controller is disabled (the SDL_HINT_JOYSTICK_HIDAPI_STEAM hint is suggested to enable it).

Update: One of the SDL authors, Ryan Gordon (icculus), announced plans to add a simple 3D API to SDL that supports the capabilities of modern GPU APIs (Vulkan, Direct3D 12, Metal). This development will be funded by Epic Games as part of the Epic Megagrant program. Gordon submitted the grant application in May 2021 and received a positive response two weeks ago.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster