Bonjour,
Petit nouveau en C++, je cherche à charger des images à l'aide de la fonction suivante (inspirée d'un tutorial trouvé sur ce site) :
Ma seule modification importante est d'avoir remplacé le nom de fichier donné à IMG_load() par un "char*" plutôt qu'une "string" (mais dans la doc officielle l'argument est indiqué comme "char*").
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 void Sprite::modImage(const char* image) { //Surface tampon qui nous servira pour charger l'image SDL_Surface* loadedImage = NULL; loadedImage = IMG_Load(image); //Si le chargement se passe bien if( loadedImage != NULL ) { //Création de l'image optimisée _image = SDL_DisplayFormat( loadedImage ); //Si l'image optimisée créée est bonne if( _image != NULL ) { Uint32 colorkey = SDL_MapRGB( _image->format, 0, 0, 0xff ); //On met tous les pixels de couleur R 0, G 0, B 0xFF transparent SDL_SetColorKey( _image, SDL_RLEACCEL | SDL_SRCCOLORKEY, colorkey ); } //Libération de l'ancienne image SDL_FreeSurface( loadedImage ); } }
Ce code fonctionne très bien sous Ubuntu, compilé avec Code::Blocks mais sous Windows et Visual C++ Express 9 le pointeur "loadedImage" reste vide malgré l'assignation avec IMG_load()...
Quelqu'un saurait-il d'où vient le problème?
Je précise évidemment que les images que je souhaite afficher se trouvent dans le même dossier que mon ".exe" et qu'elles ont le même nom que dans mon code...
Partager