Simple DirectMedia Layer: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Cellistbot (discussione | contributi)
m Bot: spostamento template come richiesto
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti.
 
(45 versioni intermedie di 27 utenti non mostrate)
Riga 1:
{{Software|
|Nome nome= Simple DirectMedia Layer |
|Logo =
screenshot= |
|Screenshot =
didascalia= Logo |
|Didascalia = Logo
sviluppatore= [[Sam Lantinga]] |
|Sviluppatore = ideatore =[[Sam Lantinga]] |
|UltimaVersioneBeta = 2.0.0-7635
versione_ultimo_rilascio= 1.2.14 |
|DataUltimaVersioneBeta = 13 agosto, [[2013]]
data_ultimo_rilascio= [[19 ottobre]], [[2009]] |
|SistemaOperativo = multipiattaforma
sistema operativo= [[Cross-platform]] |
|Genere = Libreria software
genere= [[Application Programming Interface|API]] |
|Licenza licenza= 1.2 [[GNU Lesser General Public License|GNU LGPL]] |/ 2.0 [[Zlib license]]
|SoftwareLibero = sì
sito_web= http://www.libsdl.org/
|Lingua =
}}
[[File:Linux kernel and OpenGL video games.svg|thumb|Simple DirectMedia Layer]]
 
'''Simple DirectMedia Layer''' ('''SDL''') è una [[Libreria software|libreria]] [[free software|libera]] multimediale multi piattaforma, scritta in [[C (linguaggio)|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 [[multimedialità|multimediale]] una sola volta e farla girare su molti sistemi operativi: la versione corrente supporta ufficialmente [[Linux]], [[Microsoft Windows|Windows]], [[BeOS]], [[MacOS]] e [[Mac OS XmacOS]], [[FreeBSD]], [[OpenBSD]], [[BSD/OS]], [[Solaris (sistema operativo)|Solaris]], [[IRIX]] e [[QNX]] ma il [[codice sorgente]] offre il supporto non ufficiale anche per [[Windows CE]], [[AmigaOS]], [[Dreamcast]], [[Atari]], [[NetBSD]], [[AIX (sistema operativo)|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 un'applicazione da Windows a Macintosh. Ha poi utilizzato SDL per portare ''[[Doom]]'' in [[BeOS]] (vedi [[Doom source port]]). Parecchie altre librerie libere sembranosono lavorarestate sviluppate per funzionare con SDL, quali ad esempio [[SMPEG]] e [[OpenAL]]. Sam Lantinga ha anche fondato la [[Galaxy Gameworks]] nel 2008 per fornire supporto commerciale ad SDL su sistemi [[iOS]]; tuttavia la compagnia è stata dismessa dallo stesso Lantinga nel 2011.<ref>{{Cita web |titolo=Exploring the Galaxy | url=https://slouken.blogspot.com/2011/04/exploring-galaxy.html | data=6 aprile 2011 | accesso=16 luglio 2012}}</ref>
 
SDL 2.0 è un aggiornamento importante al codice di SDL 1.2 e modifica ampie porzioni dell'API. Alcune nuove caratteristiche comprendono il supporto a finestre multiple, il supporto a dispositivi di input multipli (molti mouse, tastiere, ecc...), grafica 2D accelerata, ed un supporto [[Unicode]] migliore.<ref>{{Cita web |url=https://wiki.libsdl.org/moin.cgi/Roadmap |titolo=SDL 2.0 Roadmap |accesso=25 luglio 2012}}</ref> SDL 2.0 è distribuita sotto la [[Zlib license]], e quindi liberamente utilizzabile con linking statico in progetti closed-source commerciali, a differenza di SDL 1.2 che invece permette solo il linking dinamico<ref>{{Cita web | url=https://www.libsdl.org/license.php | titolo=Licensing the Simple DirectMedia Layer library | accesso=16 luglio 2012}}</ref>.
[[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]].
 
== Architettura ==
La libreria ha collegamenti con quasi ogni [[linguaggio di programmazione]] esistente, daldai popolarepopolari [[C++]], [[Perl]], [[Python]] (attraverso [[pygame]]), [[Pascal (linguaggio)|Pascal]] ai meno conosciuti come il [[Euphoria (Linguaggio di programmazione)|Euphoria]] o ile [[Pliant]]. Questo, e il fatto che è licenziato sotto la [[LGPL]], fa di SDL una scelta comune per molte applicazioni multimediali.
 
SDL stesso è molto semplice; Funzionafunziona 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 dei dispositivi di input, funzionalità che sono ben oltre lo scopo delle OpenGL.
È 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 comequali il Video (gestisce sia le funzioni per le superfici e per l'accesso a OpenGL), l'Audio, il CD-ROM, il Joystick e il sottosistema TimerTime. 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[[missaggio]] dei suoni
* ''SDL_net'' - supporto alla rete
* ''SDL_ttf'' - supporto alla renderizzazione dei [[TrueType|Font TrueType]]
* ''SDL_rtf'' - Renderizzazione semplice del [[Rich Text Format]]
 
== ArchitetturaPortabilità ==
[[ImmagineFile:SDL Layers.svg|thumb|250px|Livelli di astrazione persu parecchiediverse piattaforme SDL.]]
SDL ha la parola "layer" nel suo titolonome perché è veramenteuno unstrato wrapperdi attraversocollegamento a funzionalità specifiche per idei sistemi operativi. Lo scopo principale di SDL è di fornire un framework comune per accedere a queste funzionalità.
 
Per come è progettatostata SDLconcepita l'architettura, ungran mucchioparte didel codice sorgente di SDL è suddiviso in moduli separati per ogni sistema operativo, per poter fare chiamate al sistema operativo sottostante.; Quandoquando SDL è compilato, i moduli corretti sono selezionati per il giusto sistema operativo di destinazione.
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à.
 
Sotto [[Microsoft Windows]], SDL fornisce di default un collegamento all'interfaccia [[Graphics Device Interface|GDI]]; è anche disponibile un collegamento alle librerie [[DirectX]]. Le vecchie versioni di SDL utilizzavano le DirectX 5, ma SDL 1.2 (la release stabile corrente) richiede le DirectX 7. Sam Lantinga ha dichiarato che intende utilizzare le DirectX 8 nelle future release di SDL.<ref>{{Cita web |url=http://lists.libsdl.org/pipermail/sdl-libsdl.org/2000-December/013908.html |titolo=SDL mailing list |editore=Libsdl.org |accesso=16 luglio 2012 |dataarchivio=28 marzo 2012 |urlarchivio=https://web.archive.org/web/20120328034911/http://lists.libsdl.org/pipermail/sdl-libsdl.org/2000-December/013908.html |urlmorto=sì }}</ref>
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.
 
Sulle piattaforme [[X Window System|X11]], incluso [[Linux]], SDL usa le [[Xlib]] per comunicare con il sistema X11 per la grafica e gli eventi grafici.
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 [http://www.libsdl.org/pipermail/sdl/2000-December/032521.html].
 
Su [[Mac OS XmacOS]], SDL usa [[Quartz (Mac OS X)|Quartz]].
Sulle piattaforme [[X Window System|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 sullesu funzioni,: tutte le operazioni fatte in SDL vengono eseguite passando parametri allea funzioni. LeStrutture infrastrutturedi dati speciali sono usate anche per immagazzinare le informazioni specifichedelle chequali SDL ha bisogno diper usarefunzionare. Ci sono pochialcuni sottosistemi SDLsotto differentii perquali SDL caratterizzarecategorizza le sue funzioni sotto:
 
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 TimerTime
* 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
 
== Note ==
 
<references/>
 
== Voci correlate ==
Line 69 ⟶ 73:
 
== Altri progetti ==
{{interprogetto|commons=Category:Simple DirectMedia Layer}}
 
== Collegamenti esterni ==
* {{cita web | 1 = https://www.libsdl.org/intro.it/toc.html | 2 = La documentazione di SDL | accesso = 4 maggio 2019 | urlarchivio = https://web.archive.org/web/20130129125138/http://www.libsdl.org/intro.it/toc.html | dataarchivio = 29 gennaio 2013 | urlmorto = sì }}
* [http://www.libsdl.org SDL sito web]
* [http{{cita web|https://www.libsdl.es org/|SDL sito web spagnolo]ufficiale|lingua=en}}
* [{{cita web|http://www.libsdl.org de|SDL sito web] tedesco|lingua=de}}
* [http://www.devmaster.net DevMaster.net] - un sito di sviluppo giochi che ha anche articoli e tutorials su SDL.
* {{en}} [http://gpwikiwww.org/indexdevmaster.php/SDL_tutorialsnet IlDevMaster.net] tutorial- Wikiun persito ladi programmazione deisviluppo giochi che ha anche articoli e tutorial su SDL].
* {{cita web|1=http://gpwiki.org/index.php/SDL_tutorials|2=Il tutorial Wiki per la programmazione dei giochi su SDL|lingua=en|accesso=25 dicembre 2007|urlarchivio=https://web.archive.org/web/20071026071234/http://gpwiki.org/index.php/SDL_tutorials#|dataarchivio=26 ottobre 2007|urlmorto=sì}}
* [http://www.libsdl.org/cgi/docwiki.cgi/FrontPage La documentazione di SDL]
 
{{Portale|Software libero}}
 
[[Categoria:Librerie software]]
 
[[ca:Simple DirectMedia Layer]]
[[cs:Simple DirectMedia Layer]]
[[de:Simple DirectMedia Layer]]
[[en:Simple DirectMedia Layer]]
[[es:Simple DirectMedia Layer]]
[[fi:Simple DirectMedia Layer]]
[[fr:Simple DirectMedia Layer]]
[[hu:Simple DirectMedia Layer]]
[[id:SDL]]
[[ja:SDL]]
[[ko:심플 다이렉트미디어 레이어]]
[[nl:Simple DirectMedia Layer]]
[[no:SDL]]
[[pl:Simple DirectMedia Layer]]
[[pt:SDL (biblioteca)]]
[[ru:Simple DirectMedia Layer]]
[[sk:Simple DirectMedia Layer]]
[[sv:Simple DirectMedia Layer]]
[[tr:SDL]]
[[uk:Simple DirectMedia Layer]]
[[vi:Simple DirectMedia Layer]]
[[zh:SDL]]