Simple DirectMedia Layer: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Atarubot (discussione | contributi)
m fix data in cita libro-web-news... using AWB
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti.
 
(33 versioni intermedie di 23 utenti non mostrate)
Riga 1:
{{Software
{{Software2
|Nome = Simple DirectMedia Layer
|Logo2Logo =
|Screenshot2Screenshot =
|Didascalia = Logo
|Sviluppatore = [[Sam Lantinga]]
|UltimaVersioneBeta = 2.0.0-7635
|UltimaVersione = 1.2.15
|DataUltimaVersioneDataUltimaVersioneBeta = [[1913 gennaio]]agosto, [[20122013]]
|SistemaOperativo = multipiattaforma
|UltimaVersioneBeta = 2.0
|Genere = Libreria software
|DataUltimaVersioneBeta = [[12 agosto]], [[2012]]
|SistemaOperativo =
|SistemiOperativi = [[Cross-platform]]
|Linguaggio = C
|Linguaggi =
|Generi = [[Application Programming Interface|API]]
|Genere =
|Licenza = 1.2 [[GNU Lesser General Public License|GNU LGPL]] / 2.0 [[Zlib license]]
|SoftwareLibero = sì
|Lingua =
|SitoWeb = http://www.libsdl.org/
}}
[[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 agli inizi del 1998, mentre lavorava per la [[Loki Software]]. Gli venne l'idea mentre stava portando un'applicazione da Windows a Macintosh. Ha poi utilizzato SDL per portare ''[[Doom]]'' in [[BeOS]] (vedi [[Doom source port]]). Parecchie altre librerie libere sono state 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=httphttps://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=httphttps://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=httphttps://www.libsdl.org/license.php | titolo=Licensing the Simple DirectMedia Layer library | accesso=16 luglio 2012}}</ref>.
 
== 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 è 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 dei dispositivi di input, funzionalità che sono ben oltre lo scopo delle OpenGL.
Line 42 ⟶ 36:
 
== Portabilità ==
[[ImmagineFile:SDL Layers.svg|thumb|250px|Livelli di astrazione su diverse piattaforme.]]
SDL ha la parola "layer" nel suo nome perché è uno strato di collegamento a funzionalità specifiche dei sistemi operativi. Lo scopo principale di SDL è di fornire un framework comune per accedere a queste funzionalità.
 
Per come è stata concepita l'architettura, gran parte del codice sorgente di SDL è suddiviso in moduli separati per ogni sistema operativo; quando SDL è compilato, i moduli corretti sono selezionati per il sistema operativo di destinazione.
 
Sotto [[Microsoft Windows]], SDL fornisce di default un collegamento all'intefacciainterfaccia [[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>
 
Sulle piattaforme [[X Window System|X11]], incluso [[Linux]], SDL usa [[Xlib]] per comunicare con il sistema X11 per la grafica e gli eventi.
 
Su [[Mac OS XmacOS]], SDL usa [[Quartz (Mac OS X)|Quartz]].
 
== Sottosistemi e sintassi ==
La sintassi di SDL si basa su funzioni: tutte le operazioni fatte in SDL vengono eseguite passando parametri a funzioni. Strutture di dati speciali sono usate per immagazzinare le informazioni chedelle quali SDL ha bisogno per funzionare. Ci sono alcuni sottosistemi sotto i quali SDL carategorizzacategorizza le sue funzioni:
 
* Il sottosistema Video, eventi e thread - questo fornisce funzionalità per il video, [[multi-threading]], e [[gestione degli eventi]].
Line 66 ⟶ 60:
* [[Guichan]] e [[ParaGUI]] - Sets di Widget
* [[GGI]] - interfaccia grafica multi platform libera
 
== Note ==
 
<references/>
 
== Voci correlate ==
Line 75 ⟶ 73:
 
== Altri progetti ==
{{interprogetto|commons=Category:Simple DirectMedia Layer}}
 
== Note ==
<references/>
 
== 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ì }}
* {{en}} [http://www.libsdl.org SDL sito web ufficiale]
* {{de}}cita [httpweb|https://www.libsdl.de org/|SDL sito web tedesco]ufficiale|lingua=en}}
* {{en}}cita [web|http://www.libsdl.org de|SDL sito web ufficiale]tedesco|lingua=de}}
* {{en}} [http://www.devmaster.net DevMaster.net] - un sito di sviluppo giochi che ha anche articoli e tutorial su SDL.
* {{en}}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ì}}
* {{it}} [http://www.libsdl.org/intro.it/toc.html 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]]