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 que
SDL_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é.
Outils personels