Initialiser la SDL

SDL est composée de 8 sous-systèmes - Audio, CDROM, Gestionnaire d'évènements, E/S sur les fichiers, Gestion du Joystick, Threading, Timers et Video. Avant de commencer à utiliser n'importe lequel de ces sous-systèmes, ils doivent être initialisés avec la fonction SDL_Init (ou SDL_InitSubSystem). SDL_Init doit être appelée avant n'importe quelle autre fonction de la SDL. Elle initialise automatiquement les sous-systèmes de gestionnaire d'évènements, de la gestion des fichiers et de threads et prend en paramètre spécifiant les autres systèmes à initialiser. Donc, pour initialiser les sous-systèmes par défaut ainsi que le système gérant l'affichage, vous appelerez:

    SDL_Init ( SDL_INIT_VIDEO );

Pour initialiser les sous-systèmes par défaut ainsi que le système gérant l'affichage et les timers, vous appelerez:

    SDL_Init ( SDL_INIT_VIDEO | SDL_INIT_TIMER );

SDL_Init est completée par SDL_Quit (et SDL_QuitSubSystem). SDL_Quit éteint tous les sous-systèmes incluant ceux par défaut. Elle doit toujours être appelée avant la fermeture d'une application SDL.

Avec SDL_Init et SDL_Quit intégrés dans votre kit de programmeur, vous pouvez écrire votre première application SDL. Cependant, nous devons être préparés à gérer les erreurs. Beaucoup de fonctions SDL renvoient une valeur et indiquent si la fonction a réussi ou échoué. SDL_Init, par exemple, renvoie -1 si les sous-systèmes n'ont pas pu être initialisés.

SDL fournit une fonction utile qui permet de déterminer exactement d'où vient le problème. À chaque fois qu'une erreur se produit, un message est stocké, qui peut être récupéré en utilisation SDL_GetError. Utilisez la souvent, car on n'en sait jamais trop sur une erreur.

Exemple: Initialisation de la SDL

#include "SDL.h"   /* Toutes les applis de la SDL ont en besoin */
#include <stdio.h>
#include <stdlib.h> /* pour exit() */

int main(int argc, char** argv) {

    printf("Initialisation de la SDL.\n");

    /* Initialise les sous-systèmes par défaut, celui de l'affichage et du son */
    if((SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO)==-1)) {
        printf("Impossible d'initialiser la SDL: %s.\n", SDL_GetError());
        exit(-1);
    }

    printf("SDL initialisee.\n");

    printf("Arret SDL.\n");

    /* Extinction de tous les sous-systèmes */
    SDL_Quit();

    printf("Arret...\n");

    exit(0);
}

Compiler l'application

Le programme peut être compilé avec la ligne suivante:

Sous linux:

 gcc -o <output> <source_file.c> `sdl-config --cflags --libs`

SDLDoc-fr/Initialiser_SDL (last edited 2009-05-09 14:01:35 by JohnnyJazeix)