SDL
Interwikis
La SDL "Simple DirectMedia Layer" est une librairie libre multiplateforme qui permet de faire des programmes avec une interface graphique,
qui prend en compte les images, les sons et les entrées du clavier, de la souris, des manettes, et bien d'autres...
Installation de la libraire
modifierCode de base
modifier#include <stdlib.h>
#include <stdio.h>
//include de la sdl en fonction du dossier dans lequel vous l'avez installée
#include <SDL/SDL.h>
int main(int argc, char *argv[])
{
//permet de créer une variable de type sdl qui gère les surfaces
SDL_Surface *ecran = NULL;
//variable de type sdl qui gère les événements du clavier
SDL_Event event;
// simple int qui servira à savoir s'il faut fermer le programme ou non
int continuer = 1;
//initialisation de la sdl
SDL_Init(SDL_INIT_VIDEO);
//fonction de la sdl qui permet de nommer le programme au dessus de la fenêtre
SDL_WM_SetCaption("Nom du programme",NULL);
/*permet de paramétrer la surface qui servira de fenêtre qui prend quatre valeurs
'définition axe x',
'définition axe y',
'en quel nombre de bits le programme doit tourner',
'le type de mémoire utilisé, ici c’est la mémoire de la RAM mais j'aurais pu mettre la mémoire de la carte graphique qui est plus rapide' */
ecran = SDL_SetVideoMode(640,480,32,SDL_SWSURFACE);
// le while qui fera tourner en boucle le cœur du programme
while(continuer)
{
/* fonction qui permet de prendre en compte les événements du clavier,
mais en waitevent qui signifie que le programme ne fait rien tant qu’il ne reçoit aucun
événement*/
SDL_WaitEvent(&event);
//switch qui reçoit les entrées du clavier que l’on peut ensuite conditionner avec des cases
switch(event.type)
{
// case qui teste si l’on clique sur l'icône "quitter de la fenêtre"
case SDL_QUIT:
//cela signifie que la boucle while sera finie
continuer = 0;
break;
}
//permet de colorer la surface écran en blanc
SDL_FillRect(ecran,NULL,SDL_MapRGB(ecran->format,255,255,255));
//flip permet d'actualiser la surface éran qui je vous le rappelle sert de fenêtre
SDL_Flip(ecran);
}
//permet de désallouer tous les éléments de la sdl qui on été chargés en initiant la sdl
SDL_Quit();
//retourne exit_success qui veut dire que le programme s'est bien terminé
return EXIT_SUCCESS;
}
Liens utiles
modifierSite officiel de SDL
OpenClassrooms
modifierLe site contient d'excellents tutoriels qui permettent d'apprendre à utiliser le langage C et SDL.