main.c (1452B)
1 #include <stdlib.h> 2 #include <stdio.h> 3 #include <SDL/SDL.h> 4 #include "erreurs.h" 5 6 #define PROFONDEUR 24 7 8 typedef enum { 9 TRUE = (0==0), 10 FALSE = (0==1) 11 } bool; 12 13 // Variable globale boucle. 14 bool boucle = TRUE; 15 16 SDL_Surface* init() { 17 if (SDL_Init(SDL_INIT_VIDEO) != 0) { 18 die("Erreur lors de l'initialisation de SDL :"); 19 } 20 21 SDL_Surface* fenetre; 22 fenetre = SDL_SetVideoMode(640, 480, PROFONDEUR, SDL_HWSURFACE); 23 if (fenetre == NULL) { 24 die("Erreur lors de la crĂ©ation de la fenĂȘtre."); 25 } 26 SDL_WM_SetCaption("Lew", NULL); 27 SDL_WM_SetIcon(SDL_LoadBMP("icone.bmp"), NULL); 28 29 SDL_FillRect(fenetre, NULL, SDL_MapRGB(fenetre->format, 0, 0, 0)); 30 SDL_Flip(fenetre); 31 32 return fenetre; 33 } 34 35 void quit() { 36 SDL_Quit(); 37 exit(EXIT_SUCCESS); 38 } 39 40 void clavier(SDL_Event* ev) { 41 switch (ev->key.keysym.sym) { 42 case SDLK_ESCAPE: 43 case SDLK_q: 44 boucle = FALSE; 45 break; 46 } 47 } 48 49 int main(int argc, char** argv) { 50 SDL_Surface* fenetre = init(); 51 52 SDL_Surface* bloc = SDL_CreateRGBSurface(SDL_HWSURFACE, 11, 11, PROFONDEUR, 0, 0, 0, 0); 53 SDL_FillRect(bloc, NULL, SDL_MapRGB(fenetre->format, 255, 255, 255)); 54 SDL_Rect position = {0,0}; 55 56 SDL_BlitSurface(bloc, NULL, fenetre, &position); 57 SDL_Flip(fenetre); 58 59 SDL_Event evenement; 60 while (boucle) { 61 SDL_WaitEvent(&evenement); 62 switch (evenement.type) { 63 case SDL_QUIT: 64 boucle = FALSE; 65 break; 66 case SDL_KEYDOWN: 67 clavier(&evenement); 68 break; 69 } 70 } 71 72 SDL_FreeSurface(bloc); 73 74 quit(); 75 }