De release van de SDL 2.0.22-bibliotheek (Simple DirectMedia Layer) heeft plaatsgevonden, gericht op het vereenvoudigen van het schrijven van games en multimedia-applicaties. De SDL-bibliotheek biedt middelen zoals hardwareversnelde weergave van 2D- en 3D-grafiek, inputverwerking, geluidsafspelen, 3D-weergave via OpenGL/OpenGL ES/Vulkan en vele andere bijbehorende bewerkingen. De bibliotheek is geschreven in C en wordt verspreid onder de Zlib-licentie. Voor het gebruik van SDL-functies in projecten op verschillende programmeertalen zijn de nodige bindings beschikbaar.
In de nieuwe release:
- De ondersteuning voor het Wayland-protocol is verbeterd. Aanvankelijk was het de bedoeling om over te schakelen naar gebruik van het Wayland-protocol als standaard in omgevingen die gelijktijdig ondersteuning bieden voor Wayland en X11, maar vanwege problemen met Wayland in games en NVIDIA-stuurprogramma's is besloten om de overgang uit te stellen (in Wayland-omgevingen met de XWayland-component wordt, zoals voorheen, uitvoer met behulp van het X11-protocol toegepast). Voor het gebruik van Wayland kan de omgevingsvariabele "SDL_VIDEODRIVER=wayland" worden ingesteld vóór de aanroep van de applicatie, of kan de functie ‘SDL_SetHint(SDL_HINT_VIDEODRIVER, "wayland,x11")’ in de code worden toegevoegd vóór de aanroep van SDL_Init(). Voor compilatie met Wayland is minimaal versie libwayland-client 1.18.0 vereist.
- De functie SDL_RenderGetWindow() is toegevoegd om het venster te verkrijgen dat is geassocieerd met de SDL Renderer.
- Een set functies voor het manipuleren van rechthoekige gebieden is toegevoegd (bepaling van punten, opruimen, vergelijking, vereniging, enz.), waarbij wordt gewerkt met coördinaten en afmetingen op basis van zwevende-komma getallen: SDL_PointInFRect(), SDL_FRectEmpty(), SDL_FRectEquals(), SDL_FRectEqualsEpsilon(), SDL_HasIntersectionF(), SDL_IntersectFRect(), SDL_UnionFRect(), SDL_EncloseFPoints() en SDL_IntersectFRectAndLine().
- De functie SDL_IsTextInputShown() is toegevoegd om te controleren of het tekstinvoerveld zichtbaar is.
- De functie SDL_ClearComposition() is toegevoegd om het tekstinvoerveld te wissen zonder de invoermethode (IME) uit te schakelen.
- Het evenement SDL_TEXTEDITING_EXT is toegevoegd voor de verwerking van lange tekstinvoervelden en de aanwijzer SDL_HINT_IME_SUPPORT_EXTENDED_TEXT voor het inschakelen van dit evenement.
- De aanwijzer SDL_HINT_MOUSE_RELATIVE_MODE_CENTER is toegevoegd om te zorgen dat de muis alleen binnen het midden van het venster wordt beperkt in plaats van over het hele venster wanneer de relatieve modus is ingeschakeld.
- Automatische muiscapture is ingeschakeld bij het drukken op muisknoppen. Om dit uit te schakelen, is de aanwijzer SDL_HINT_MOUSE_AUTO_CAPTURE voorgesteld.
- Er zijn SDL_HINT_VIDEO_FOREIGN_WINDOW_OPENGL en SDL_HINT_VIDEO_FOREIGN_WINDOW_VULKAN toegevoegd om informatie over het gebruik van OpenGL of Vulkan in een extern venster door te geven.
- SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE is toegevoegd om het verzenden van het SDL_QUIT evenement in te schakelen bij het sluiten van het laatste venster van de applicatie.
- SDL_HINT_JOYSTICK_ROG_CHAKRAM is toegevoegd om de ROG Chakram-muis als joystick te verwerken.
- Voor Linux is SDL_HINT_X11_WINDOW_TYPE toegevoegd om het venster de parameter _NET_WM_WINDOW_TYPE te geven.
- Voor Linux is SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR toegevoegd voor het gebruik van libdecor met composito servers, die xdg-decoration ondersteunen.
- Voor Android is de functie SDL_AndroidSendMessage() geïmplementeerd om willekeurige commando's naar de Java-handler van SDL te verzenden.
Bron: opennet.ru
