Simple DirectMedia Layer

Versione del 3 nov 2011 alle 21:04 di Cellistbot (discussione | contributi) (Bot: sistemazione parametri di {{Software}} come richiesto)

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
Logo
Logo
Genere
SviluppatoreSam Lantinga
Data prima versione1998
Ultima versione1.2.14 (19 ottobre, 2009)
Sistema operativo
LinguaggioC
LicenzaZlib license e GNU LGPL v2.1
(licenza libera)
Sito webwww.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

 
Livelli di astrazione per parecchie piattaforme SDL.

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

Estensioni

  • SMPEG - Libreria player MPEG SDL
  • Guichan e ParaGUI - Sets di Widget
  • GGI - interfaccia grafica multi platform libera

Voci correlate

Altri progetti

Collegamenti esterni

  Portale Software libero: accedi alle voci di Wikipedia che trattano di Software libero