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.
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 conosiuti 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.
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
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.
Su Mac OS X, SDL usa Quartz.
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
Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:
Nessun commento:
Posta un commento
Non inserire link cliccabili altrimenti il commento verrà eliminato. Metti la spunta a Inviami notifiche per essere avvertito via email di nuovi commenti.