3.1 Créer une SDL_Surface*

Comment créer une autre SDL_Surface* que ecran ?

On utilise la fonction SDL_CreateRGBSurface, exemple :

1
2
SDL_Surface* surf = NULL;
surf = SDL_CreateRGBSurface(SDL_HWSURFACE, 220, 180, 32, 0, 0, 0, 0);

Vous reconnaissez :

  • le type de surface : SDL_HWSURFACE
  • la longueur : 220
  • la hauteur : 180
  • le nombre de bits par pixel : 32

Pour l'instant on ne s'occupe pas des 4 derniers paramètres.

ATTENTION AUX FUITES DE MÉMOIRE : on à créer une nouvelle SDL_Surface* donc il faut penser à la dégommer à la fin du programme, juste avant SDL_Quit() avec SDL_FreeSurface(surf).

Mais on à pas effacé la SDL_Surface* ecran, il faudrait peut être y penser ?

Non, pour ecran ce n'est pas la peine car il a été alloué par SDL_SetVideoMode et sera détruit par SDL_Quit().

Comment on fait pour récupérer la taille d'une SDL_Surface* ?

Par exemple, avec une SDL_Surface* image on fait image->w pour la longueur (width) et image->h pour la hauteur (heigth).