Simple DirectMedia Layer: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
PertBot (discussione | contributi)
m correggo link ad iOS
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti.
 
(13 versioni intermedie di 10 utenti non mostrate)
Riga 5:
|Didascalia = Logo
|Sviluppatore = [[Sam Lantinga]]
|UltimaVersione = 2.0
|DataUltimaVersione =13 agosto [[2013]]
|UltimaVersioneBeta = 2.0.0-7635
|DataUltimaVersioneBeta = 13 agosto, [[2013]]
|SistemaOperativo = multipiattaforma
|Linguaggio = C
|Genere = Libreria software
|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 45 ⟶ 41:
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 77 ⟶ 73:
 
== Altri progetti ==
{{interprogetto|commons=Category:Simple DirectMedia Layer}}
 
== Collegamenti esterni ==
* [http{{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}}cita [httpweb|https://www.libsdl.org /|SDL sito web ufficiale]|lingua=en}}
* {{de}}cita [web|http://www.libsdl.de |SDL sito web 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ì}}
 
{{Portale|Software libero}}