SDL2.x/Initialisation de la SDL

Début de la boite de navigation du chapitre

Pour commencer à programmer avec l'API SDL 2.0 il est nécessaire à son fonctionnement de charger le header qui est généralement contenu dans un sous-dossier appelé (SDL2) donc la directive du préprocesseur sera écrite sous cette forme #include <SDL2/SDL.h>

Initialisation de la SDL
Icône de la faculté
Chapitre no 2
Leçon : SDL2.x
Chap. préc. :Introduction
Chap. suiv. :Les fenêtres
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « SDL2.x : Initialisation de la SDL
SDL2.x/Initialisation de la SDL
 », n'a pu être restituée correctement ci-dessus.

Mais, bien entendu il ne suffit pas de savoir seulement pour pouvoir programmer avec SDL 2.0, il i y a encore certaines choses à savoir et quelques procédures à connaître.

Les modules de la SDL 2.0:

modifier

Avant de savoir comment initialiser la SDL il est nécessaire de savoir que la SDL se divise en de différents sous-systèmes:

  • module vidéo
  • module son
  • module joystick
  • module timer
  • module haptic
  • module pour gestion et manipulation des signaux fatales

ses (modules) ne sont pas initialisé par défaut, il va valoir donc les initialiser, pour cela nous recourons à la fonction d'initialisation SDL_init () en lui mettant en paramètre un ou plusieurs de ses modules sous forme de flags.

SDL_Init ():

modifier

Pour initialiser comme nous avons dit nous devons utiliser la fonction dont le prototype est ci-après:

int SDL_Init( Uint32 flags );

Comme vous aurez remarqué la fonction renvoie un int et prend comme paramètre un paramètre de type Uint32 qui est aussi un int mais de valeur positive et en 32 bits.

Le mot flags correspond en réalité au nom d'une ou plusieurs constantes définissant le / les sous systèmes que nous voulons initialiser et pour initialiser plusieurs sous systèmes nous séparerons les flags avec un " | " (appuyez ALT GR + 6) les flags sont c-dessous:

flag sous système correspandant
SDL_INIT_TIMER Gestion de temps.
SDL_INIT_VIDEO Gestion des couleurs des images etc.
SDL_INIT_AUDIO Gérer le son.
SDL_INIT_HAPTIC Pour initialiser le sous système HAPTIC
SDL_INIT_JOYSTICK Pour manipulation des différents périphériques de contrôle de jeux comme les manettes.
SDL_INIT_EVRYTHING Pour initialiser tous les sous-sytèmes.
SDL_INIT_NOPARACHUTE Pour ignorer la prise en compte des signaux fatales.

par exemple vous voulez créer un programme avec la SDL qui gérera le son et la vidéo en même temps vous écrivez:

#include <stdio.h>
#include <stdlib.h>
#include <SDL2/SDL.h>

//la fonction main doit obligatoirement être écrite de cette manière sinon la compilaton plantera  
int main (int argc , char *argv[])
{
    SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO); //initalisation du son et de la video
    return 0;
}

Sous Linux compilez ce programme avec la commande:

gcc `pkg-config --cflags sdl2` -o main main.c `pkg-config --libs sdl2`