Aller au contenu

SDL

Leçons de niveau 15
Une page de Wikiversité, la communauté pédagogique libre.


Interwikis

Sur les autres projets Wikimedia :


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

[modifier | modifier le wikicode]
#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;
}

Site officiel de SDL

OpenClassrooms

[modifier | modifier le wikicode]

Le site contient d'excellents tutoriels qui permettent d'apprendre à utiliser le langage C et SDL.