Simple DirectMedia Layer
Simple DirectMedia Layer (SDL) è una libreria libera multimediale multi piattaforma, scritta in C, che crea un livello astratto al di sopra di varie piattaforme software grafiche e sonore e dunque può controllare video, audio digitale, CD-ROM, suoni, thread, caricamento condiviso di oggetti, timer e networking. Questa astrazione permette ai programmatori di scrivere un'applicazione multimediale una sola volta e farla girare su molti sistemi operativi: la versione corrente supporta ufficialmente Linux, Windows, BeOS, MacOS e Mac OS X, FreeBSD, OpenBSD, BSD/OS, Solaris, IRIX e QNX ma il codice sorgente offre il supporto non ufficiale anche per Windows CE, AmigaOS, Dreamcast, Atari, NetBSD, AIX, OSF/Tru64, RISC OS e SymbianOS.
Simple DirectMedia Layer software | |
---|---|
![]() | |
Genere | |
Sviluppatore | Sam Lantinga |
Data prima versione | 1998 |
Ultima versione | 1.2.14 |
Sistema operativo | |
Linguaggio | C |
Licenza | Zlib license e GNU LGPL v2.1 (licenza libera) |
Sito web | www.libsdl.org/ |
Storia
Sam Lantinga ha creato la libreria, rilasciandola inizialmente agli inizi del 1998, mentre lavorava per la Loki Software. Gli venne l'idea mentre stava portando una applicazione da Windows a Macintosh. Ha poi utilizzato SDL per portare Doom in BeOS (vedi Doom source port). Parecchie altre librerie libere sembrano lavorare con SDL, quali ad esempio SMPEG e OpenAL.
La libreria ha collegamenti con quasi ogni linguaggio di programmazione esistente, dal popolare C++, Perl, Python (attraverso pygame), Pascal ai meno conosciuti come il Euphoria o il Pliant. Questo, e il fatto che è licenziato sotto la LGPL, fa di SDL una scelta comune per molte applicazioni multimediali.
SDL stesso è molto semplice; Funziona solamente come un wrapper leggero e multi piattaforma che fornisce il supporto alle operazioni 2D sui pixel, suoni, accesso ai file, gestione degli eventi, temporizzatori, thread e altro. È spesso usata come complemento alle OpenGL settando l'output grafico e fornendo la gestione dell'input del mouse e della tastiera, che sono ben oltre lo scopo delle OpenGL.
La libreria è suddivisa in parecchi sottosistemi, nominati come il Video (gestisce sia le funzioni per le superfici e l'OpenGL), l'Audio, il CD-ROM, il Joystick e il sottosistema Timer. A parte il supporto basico a basso livello, vi sono alcune librerie ufficiali di supporto che forniscono funzionalità addizionali. Queste comprendono le "librerie standard", sono fornite sul sito ufficiale e incluse nella documentazione ufficiale:
- SDL_image - supporto per diversi formati di immagini
- SDL_mixer - funzioni audio complesse, principalmente per il mescolamento dei suoni
- SDL_net - supporto alla rete
- SDL_ttf - supporto alla renderizzazione dei Font TrueType
- SDL_rtf - Renderizzazione semplice del Rich Text Format
Architettura
SDL ha la parola "layer" nel suo titolo perché è veramente un wrapper attraverso funzionalità specifiche per i sistemi operativi. Lo scopo principale di SDL è di fornire un framework comune per accedere a queste funzionalità.
Per come è progettato SDL, un mucchio di codice sorgente è suddiviso in moduli separati per ogni sistema operativo, per poter fare chiamate al sistema operativo sottostante. Quando SDL è compilato, i moduli corretti sono selezionati per il giusto sistema operativo.
Su Microsoft Windows, SDL fornisce un wrap per le DirectX, che a loro volta sono un wrapper al driver video. Le vecchie versioni di SDL utilizzavano le DirectX 5, ma SDL 1.2 (La release stabile odierna) richiede le DirectX 7 di default. Sam Lantinga ha iniziato i piani per utilizzare le DirectX 8 nelle future release di SDL [1].
Sulle piattaforme X11, incluso Linux, SDL usa le Xlib per comunicare con il sistema X11 per gli eventi grafici.
Sottosistemi e sintassi
La sintassi di SDL si basa sulle funzioni, tutte le operazioni fatte in SDL vengono eseguite passando parametri alle funzioni. Le infrastrutture speciali sono usate anche per immagazzinare le informazioni specifiche che SDL ha bisogno di usare. Ci sono pochi sottosistemi SDL differenti per caratterizzare le sue funzioni sotto:
- Il sottosistema Video, eventi e thread - questo fornisce funzionalità per il video, multi-threading, e gestione degli eventi.
- Il sottosistema Audio - questo fornisce le funzionalità audio.
- Il sottosistema Timer
- Il sottosistema Joystick
- Il sottosistema CD-ROM
Estensioni
Voci correlate
Altri progetti
- Wikimedia Commons contiene immagini o altri file su Simple DirectMedia Layer
Collegamenti esterni
- SDL sito web
- SDL sito web spagnolo
- DevMaster.net - un sito di sviluppo giochi che ha anche articoli e tutorials su SDL.
- Il tutorial Wiki per la programmazione dei giochi su SDL
- La documentazione di SDL