SDL Démarrer
Un article de Mangue.org, l'encyclopéde libre.
Le seul fichier que vous devez inclure dans votre code pour utiliser SDL est le SDL.h comme suit:
#include "SDL.h"
Initialisation de SDL
Il existe deux fonctions d'initialisation de la librairie
La première est celle à appeler obligatoirement et en premier lieu pour initialiser une des composantes de SDL. La seconde est utile lorsque vous ne désirez initialiser une des composantes de SDL que à un moment précis de votre application, mais pas forcément dès le début. Les composantes sont spécifiées à SDL via une combinaison binaire des drapeaux suivants (définits dans SDL.h) :
SDL_INIT_TIMER 0x00000001 SDL_INIT_AUDIO 0x00000010 SDL_INIT_VIDEO 0x00000020 SDL_INIT_CDROM 0x00000100 SDL_INIT_JOYSTICK 0x00000200 SDL_INIT_NOPARACHUTE 0x00100000 SDL_INIT_EVENTTHREAD 0x01000000 SDL_INIT_EVERYTHING 0x0000FFFF
Les drapeaux sont suffisament parlant donc je ne détaillerai aucun d'eux.
Donc pour lancer la composante vidéo et la composante audio :
if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) <0){ fprintf(stderr,"Erreur d'initialisation SDL %s\n",SDL_GetError()); exit(1); }Le problème qui se pose ici, est que si la fonction échoue vous ne savez pas quelle composante a provoqué cet échec, sauf en vérifiant la valeur de
SDL_GetError(), mais vous désirez peut-être avoir un comportement différent suivant la composante qui a échoué. Il suffit alors d'appeler la fonction suivante :
Cette fonction à laquelle vous passez les mêmes flags que plus haut vous indique les composantes qui sont activées, de cette manière :
Uint32 init = SDL_WasInit(SDL_INIT_AUDIO); if(init&SDL_INIT_AUDIO) /* audio OK */ else /* audio pas OK */
Maintenant vous savez initialiser SDL, il s'agit aussi de quitter proprement SDL par un appel à :
Ces deux fonctions suivent le même principe de fonctionnement queSDL_Init()et
SDL_InitSubSystem(). Cependant si l'appel à
SDL_InitSubSystem()n'est pas indispensable dans le programme, l'appel à
SDL_Quit()l'est si vous vous voulez retourner proprement à votre Window Manager. J'entend par là que si vous n'appelez pas cette fonction, vous vous retrouvez sous votre WM avec la résolution
de votre application... ce qui n'est pas vraiment désiré.

