La version de la bibliothèque SDL 2.0.18 (Simple DirectMedia Layer) a été publiée, visant à simplifier l'écriture de jeux et d'applications multimédias. La bibliothèque SDL fournit des outils tels que le rendu accéléré par le matériel de graphiques 2D et 3D, la gestion des entrées, la lecture de son, le rendu 3D via OpenGL/OpenGL ES/Vulkan et de nombreuses autres opérations connexes. La bibliothèque est écrite en C et est distribuée sous la licence zlib. Des liaisons sont fournies pour utiliser les fonctionnalités de SDL dans des projets écrits dans divers langages de programmation. Le code de la bibliothèque est distribué sous la licence Zlib.
Dans cette nouvelle version :
- Pour chaque fonction, des informations sur la version de SDL dans laquelle cette fonction est apparue sont fournies. La synchronisation automatique de la documentation dans le wiki avec les fichiers d'en-tête est assurée.
- De nouvelles fonctions ont été ajoutées :
- SDL_RenderGeometry() et SDL_RenderGeometryRaw() pour le rendu de formes arbitraires via l'API de rendu 2D.
- SDL_SetTextureUserData() et SDL_GetTextureUserData() pour relier des données de l'application à une texture.
- SDL_RenderWindowToLogical() et SDL_RenderLogicalToWindow() pour la conversion entre les coordonnées de la fenêtre et les coordonnées logiques de rendu.
- SDL_RenderSetVSync() pour activer la synchronisation de la sortie avec le signal de suppression d'image (vblank).
- SDL_PremultiplyAlpha() pour appliquer la transparence aux blocs de pixels au format SDL_PIXELFORMAT_ARGB8888.
- SDL_SetWindowMouseRect() et SDL_GetWindowMouseRect() pour limiter le mouvement du curseur de la souris à une zone spécifiée de la fenêtre.
- SDL_GameControllerHasRumble(), SDL_GameControllerHasRumbleTriggers(), SDL_JoystickHasRumble() et SDL_JoystickHasRumbleTriggers() pour vérifier le support par le contrôleur de jeu et le joystick de l'effet de vibration adaptative (rumble).
- SDL_GetWindowICCProfile() pour obtenir le profil ICC de couleur de la fenêtre (un événement SDL_WINDOWEVENT_ICCPROF_CHANGED est proposé pour vérifier le changement de profil).
- De nouveaux indicateurs ont été ajoutés : SDL_HINT_APP_NAME pour transmettre des informations sur le nom de l'application et SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY pour activer la transparence pour les fenêtres EGL.
- Un nouvel événement de fenêtre SDL_WINDOWEVENT_DISPLAY_CHANGED a été ajouté, qui est généré lors du changement d'écran sur lequel la fenêtre est affichée.
- Il est maintenant possible de déterminer les paramètres exacts du mouvement de la molette de la souris via les champs «preciseX» et «preciseY» dans les paramètres de l'événement.
- La fonction SDL_WaitEvent() a été retravaillée pour réduire la charge sur le CPU.
- L'API hidapi a été déplacée dans la catégorie publique et est maintenant accessible via le fichier d'en-tête SDL_hidapi.h.
- Sur la plateforme Windows, la détection du mouvement relatif de la souris a été améliorée dans Windows Remote Desktop. Un nouvel indicateur SDL_HINT_IME_SHOW_UI a été ajouté pour afficher les composants d'interface natifs (par défaut cachés). Pour les applications UWP, WGI a été utilisé au lieu de XInput pour améliorer la prise en charge des contrôleurs d'entrée.
- Pour la plateforme Linux, les indicateurs suivants ont été mis en œuvre : SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME pour lier les actions affichées lors de la désactivation de l'économiseur d'écran ; SDL_HINT_LINUX_JOYSTICK_CLASSIC pour choisir quel périphérique utiliser (\/dev\/input\/js* ou \/dev\/input\/event*) pour le joystick ; SDL_HINT_JOYSTICK_DEVICE pour définir le périphérique à ouvrir pour le joystick. Une fonction SDL_LinuxSetThreadPriorityAndPolicy() a été ajoutée pour gérer l'attribution des priorités pour les threads.
- Pour la plateforme Android, un support pour la sortie et la capture audio a été implémenté à l'aide de l'API AAudio. Par défaut, le support du contrôleur Steam Controller est désactivé (un indicateur SDL_HINT_JOYSTICK_HIDAPI_STEAM est proposé pour l'activer).
Ajout : L'un des auteurs de SDL, Ryan Gordon (icculus), a annoncé qu'il prévoyait d'ajouter une API 3D simple à SDL, prenant en charge les capacités des API modernes des GPU (Vulkan, Direct3D 12, Metal). Cette développement sera financé par la société Epic Games, dans le cadre du programme Epic Megagrant. Gordon a soumis sa demande de subvention en mai 2021 et a reçu une réponse positive il y a deux semaines.
Source : opennet.ru
