SDL2.x/Initialisation de la SDL
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>
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 | modifier le wikicode]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 | modifier le wikicode]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`