Guida
libreria SDL
di
Giovanni Di Liberto
aka Oligoatria
2006-2007
libreria SDL
di
Giovanni Di Liberto
aka Oligoatria
2006-2007
Introduzione
Cos'è la libreria SDL: Simple DirectMedia Layer - SDL, è una libreria multipiattaforma per lo sviluppo di applicazioni multimediali. In parole semplici, si tratta di un'utile concentrazione di funzioni riguardanti grafica, suoni, eventi, thread, e altro.
Queste si pongono tra l'hardware e l'applicazione, rendendo così possibile la creazione di videogiochi, demo, emulatori, etc., molto performanti.
Creata nel 1997 da Sam Lantinga, è stata utilizzata per effettuare il port di alcuni famosi videogiochi dal sistema Windows a Linux. La libreria è open-source; in particolare è rilasciata sotto licenza GNU LGPL (GNU LESSER GENERAL PUBLIC LICENSE - per informazioni rimando al link http://www.gnu.org/licenses/lgpl.html), dunque può essere utilizzata per lo sviluppo di applicazioni commerciali, anche closed-source, a patto che le modifiche apportate al codice sorgente del software stesso vengano rese pubbliche e che sia inserito un linking dinamico alla libreria stessa.
Requisiti minimi per affrontare questa guida:
Conoscenza discreta del C++;
M. Visual C++ (solo per la compilazione, senza modifiche, dei sorgenti);
Una release completa SDL, la mia è la versione 1.2.9.0;
Tanta voglia di imparare e sperimentare.
Il mio apprendimento: Il mio primo problema, quando ho deciso di provare ad utilizzare questa libreria, è stato trovare una guida che mi facesse procedere passo passo in via pratica (un po' di teoria l'avevo già studiata e ciò che mi interessava era solo "disegnare un cerchio sullo schermo"). Purtroppo ho trovato solo guide tecniche infinite in inglese, mentre in italiano solo brevissimi tutorial. I sorgenti presenti in rete erano molto complicati (non tutti solo in apparenza) e così il mio apprendimento è stato lento e pieno di lacune.
La svolta è stata quando mi sono reso conto che la mia versione 1.2.9.0 aveva un fastidioso bug riguardo la trasparenza delle immagini. Inoltre le guide che stavo studiando non mi fornivano delle spiegazioni esaustive su tutte le possibilità della release. Così mi sono deciso a personalizzare un po' la libreria.
Perché questa guida: Sulla rete sono disponibili così tanti suggerimenti sull'SDL che ho pensato: "copia e incolla, metto un titolo e divento famoso"! A parte gli scherzi, sono convinto che ci sia molta gente interessata alla grafica, in particolar modo se mirata alla creazione di videogiochi, e credo che l'SDL sia un ottimo punto di partenza per chiunque intenda poi approfondire l'argomento programmazione grafica, sia 2D che 3D. Ovviamente non è sufficiente limitarsi all'utilizzo delle funzioni, ma è necessario capirne il funzionamento per poterle utilizzare al meglio e, se necessario, ampliarle.
L'obiettivo di questa guida è fornire i concetti chiave e le relative funzioni SDL per permettere di proseguire da soli, approfondire e implementare le proprie idee, ancora carichi di interesse.
Quali possibilità fornisce la libreria SDL?: Ci vengono messe a disposizione molte funzioni, raggruppabili in sette categorie principali:
Video
Gestione delle finestre
Gestione degli eventi
Timer
Multi-threading
Audio
Interfaccia CD-Audio
Nota fondamentale: Gli esempi relativi a questa guida sono scaricabili dal sito http://www.pierotofy.it, sezione C++ - è sufficiente cercare SDL e nella lista saranno presenti i file SDL_Example* (1, 2, 3, …) - e nel sito http://www.oligoatria.netsons.org.
A cura di: Oligoatria