Simple DirectMedia Layer
Modèle:Infobox V3/Début Modèle:Infobox V3/Image Wikidata Modèle:Infobox V3/Séparateur Modèle:Infobox V3/Image Wikidata
Modèle:Infobox V3/Tableau début
Modèle:Infobox V3/Tableau Ligne mixte Wikidata
{{#ifeq:Modèle:Wikidata|Modèle:Wikidata | | Modèle:Infobox V3/Tableau Ligne mixte Wikidata }}
Modèle:Infobox V3/Tableau Ligne mixte
Modèle:Infobox V3/Tableau Ligne mixte
Modèle:Infobox V3/Tableau Ligne mixte
Modèle:Infobox V3/Tableau Ligne mixte
Modèle:Infobox V3/Tableau Ligne mixte Wikidata
Modèle:Infobox V3/Tableau Ligne mixte Wikidata
Modèle:Infobox V3/Tableau Ligne mixte
Modèle:Infobox V3/Tableau Ligne mixte {{#invoke:Infobox/Fonctions/Logiciel|catByProgrammingLanguage}}
Modèle:Infobox V3/Tableau Ligne mixte
Modèle:Infobox V3/Tableau Ligne mixte
Modèle:Infobox V3/Tableau Ligne mixte Wikidata
Modèle:Infobox V3/Tableau Ligne mixte Wikidata
Modèle:Infobox V3/Tableau Ligne mixte Wikidata
Modèle:Infobox V3/Tableau Ligne mixte Wikidata
Modèle:Infobox V3/Tableau Ligne mixte Wikidata
Modèle:Infobox V3/Tableau Ligne mixte Wikidata
Modèle:Infobox V3/Tableau Ligne mixte
Modèle:Infobox V3/Tableau Ligne mixte
Modèle:Infobox V3/Tableau Ligne mixte Wikidata
Modèle:Infobox V3/Tableau Ligne mixte Wikidata
Modèle:Infobox V3/Tableau Ligne mixte Wikidata
Modèle:Infobox V3/Titre Bloc Modèle:Infobox V3/Navigateur
Modèle:Infobox V3/Fin avec WikidataModèle:Rien{{#ifeq:|| {{#if:
| }}{{#if:
| {{#if: | | }}
}} }}
Modèle:Lang (SDL) est une bibliothèque logicielle libre. Son API est utilisée pour créer des applications multimédias en deux dimensions pouvant comprendre du son comme les jeux vidéo, les démos graphiques, les émulateursModèle:Etc. Sa portabilité sur la plupart des plateformes et sa licence zlib, très permissive, contribuent à son succès.
Fonctionnalités
La SDL permet de gérer avec une simplicité relative les éléments suivants :
- l'affichage vidéo dans des fenêtres systèmes ou en plein écran ;
- la manipulation des événements matériels et logiciels ;
- l'audio numérique (en concurrence sur ce point avec OpenAL) et ses périphériques ;
- les périphériques d'entrées communs comme le clavier, la souris, le joystick ;
- la lecture des supports de mémoire de type CD-Audio ;
- l'utilisation du multithreading pour le partage des temps de calcul processeur;
- l'utilisation de timers pour mesurer le temps avec précision.
Parmi les modules complémentaires disponibles pour la SDL, les plus connus sont :
- SDL_ttf : Permet l'utilisation des polices de caractères TrueType Font
- SDL_image : Prendre en charge plusieurs formats d'images comme BMP, PNM, XPM, LBM, PCX, GIF, JPEG, PNG, TGA
- bibliothèque de primitives pour le dessin 2D
- SDL_net : Manipuler les sockets réseau UDP et TCP .
- SDL_gfx : Manipulation mathématique sur les surfaces comme des rotations et des zooms .
- SDL_mixer : Prendre en charge plusieurs format de sons comme MP3.
La SDL peut travailler avec la bibliothèque graphique OpenGL.
Systèmes supportés
Cette bibliothèque est disponible sous Windows, Windows CE, BeOS (SDL 1.2), Mac OS (SDL 1.2), OS/2 (SDL 1.2), et la plupart des systèmes UNIX comme macOS, Linux, Android (qui est basé sur Linux), FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, et QNX (SDL 1.2). Elle fonctionne aussi sous quelques systèmes embarqués comme des consoles de jeu portable (SDL 1.2). Elle est supportée par WebAssembly<ref>Guide for C/C++ developers, webassembly.org, décembre 2017.</ref>.
Langages supportés
Écrite en C, elle est aussi utilisable depuis d'autres langages de programmation, dont le C++ (pour toutes les versions).
Version 1.2
Version 2.0
Ada, C#, D, Go, Lua, OCaml, Pascal, Rust<ref>Modèle:Lien web</ref>, Fortran<ref>Modèle:Lien web</ref>
Logiciels utilisant sur SDL
Moteurs de jeux
émulateurs de machines de jeu
- DeSmuME (Nintendo DS)
- frotz (Z-machine)
- fs-UAE (Amiga)
- MAME (bornes d'arcades)
- MESS (divers consoles de jeu et micro-ordinateurs)
- Mednafen (divers)
- mgba (Game Boy)
- OpenMSX (ordinateurs MSX)
- PPSSPP (PSP)
- RetroArch (divers)
- Scummvm (point and click)
- snes9x (SNES)
- Stella (Atari 2600)
- Vice (ordinateurs Commodore 8 bits)
- Yabause (Sega Saturn)
- Yuzu (Nintendo Switch)
Applications
- Blender (modélisation 3D et animation)
- FFmpeg (montage encodage et décodage multimédia)
- FluidSynth (synthétiseur MIDI logiciel)
- Krita (dessin/peinture numérique/animation)
- QEMU (émulateur d'architecture matérielle et virtualisation)
- Steam (logiciel de distribution de jeux multiplateforme)
- Wine (wrapping de bibliothèques Windows)
Bibliothèques
- GEGL (bibliothèque de traitement d'image de GIMP)
- GStreamer (flux multimedia)
- MLT (flux multimedia)
- mpg123 (flux multimedia)
- PipeWire (flux multimedia et mixage)
- wxWidgets (GUI Toolkit)
Historique
Sam Lantinga crée la bibliothèque en 1998. L'idée lui vient tandis qu'il faisait un portage d'application de Windows vers Macintosh. Peu après, il utilise SDL pour porter Doom sur BeOS. Sam travailla ensuite pour Loki Software et d'autres bibliothèques libres se joignant à SDL, telles SMPEG et OpenAL.
La version 2.0.0 est publiée le Modèle:Date- <ref name=":1">Modèle:Lien web</ref>. Au nombre des changements principaux, la possibilité d'accélérer matériellement le rendu et un changement de licence : licence Zlib à la place de la LGPL. Un guide de migration de la version 1.2.0 vers la version 2.0.0 est disponible. La compatibilité avec certains systèmes est sacrifiée<ref>Modèle:Lien web.</ref>.
La version 2.0.6, sortie le Modèle:Date- ajoute le support multiplateforme de l'API graphique Vulkan via le fichier SDL_vulkan.h, la gestion de composition 2D avec des modes de blends, le support de plusieurs nouveaux contrôleurs de jeu et un certain nombre d'améliorations dans les fonctions utilisées pour leur gestion, une fonction de détection de la présence du SIMD ARM NEON pour l'architecture ARM, une fonction de copie de surface, support expérimental du pilote audio JACK, et des fonctions de Modèle:Lien sonore et changement d'échelle graphique<ref>Modèle:Lien web</ref>.
En Modèle:Date- est intégré au dépôt principal de SDL, à la fois pour la série 1.2 et la série 2.0 un ensemble de patchs, développés par Ben Avison, dédiés à l'accélération sur ARMv7 et ARMv8 via le SIMD ARM NEON, multipliant par 3 les performances de la bibliothèque dans les copies de blocs sur ces architectures (passage de 9.6 FPS à 27 FPS sur une même application pour un jeu en python, Myriapod, testé, certaines fonctions vont 15 fois plus vite qu'auparavant<ref>Modèle:Lien web.</ref>)<ref>Modèle:Lien web</ref>.
À la Game Developers Conference (GDC) 2023, Sam Lantinga et Ryan Gordon, présentent le futur de SDL avec la version 3.0 à venir<ref>Modèle:Lien web Modèle:Lien web</ref>.
Galerie
-
OpenTTD<ref>Modèle:Lien web</ref>
-
Battle for Wesnoth<ref>Modèle:Lien web</ref>
-
Oolite<ref>Modèle:Lien web</ref>
Notes et références
Bibliographie
- Modèle:Ouvrage
- Modèle:Ouvrage
- Modèle:Ouvrage
- Modèle:Ouvrage
- Modèle:Ouvrage
- Modèle:Ouvrage
- Modèle:Ouvrage