[SDL] Comment inclure les BMP dans l'exécutable ? [Résolu]

Signaler
Messages postés
4
Date d'inscription
mercredi 4 décembre 2002
Statut
Membre
Dernière intervention
8 avril 2007
-
Messages postés
1
Date d'inscription
vendredi 10 avril 2009
Statut
Membre
Dernière intervention
1 février 2010
-
Bonjour,

Je travail sur un petit projet en SDL (le classique Snake) et le petit jeu fonctionne correctement.
Cependant, il est nécessaire que l'éxecutable soit placé dans une arborescence bien particulière par rapport aux BMP utilisés pour que les images se chargent correctement. Voila pourquoi dans un soucis de portabilité, j'aimerai pouvoir inclure les BMP directement dans l'éxecutable pour n'avoir au final qu'un seul et unique fichier nécessaire au bon fonctionnement de l'application.

D'avance merci

6 réponses

Messages postés
4
Date d'inscription
mercredi 4 décembre 2002
Statut
Membre
Dernière intervention
8 avril 2007

J'ai trouvé solution sur un autre forum.
Elle réside dans les fonctions SDL_RWops et IMG_Load_RW.
Merci à http://www.developpez.net/
++
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
suffit de les mettre en ressources
Messages postés
4
Date d'inscription
mercredi 4 décembre 2002
Statut
Membre
Dernière intervention
8 avril 2007

J'ai fait des recherches de ce coté là, mais je ne suis pas arrivé à mes fins.
Voila ce que j'ai fait jusque là:

[fichier ressources.rc]
// Icône du projet
ICONE_PROJET ICON "monprojet.ico"


// Bitmaps
IMAGE_BACKGROUND BITMAP "images\\background.bmp"

Celui là semble correcte, car à la compilation le taille de l'exe augmente (et l'icone est utilisée).
Après, c'est pour l'utilisation que j'ai un problème... je ne voie pas du tout comment faire !
J'ai vu dans certains projets un ressources.h, j'ai donc fait cela:

[fichier ressources.h]
#ifndef RESSOURCES_H
#define RESSOURCES_H




 #define IMAGE_BACKGROUND 1




#endif

Mais je ne suis pas plus avancé. Je ne voie pas comment accèder à mes ressources dans mon projet.
Avec les foncions SDL, je charge les images avec leur chemin "images/monimage.bmp" par exemple.
Comment substituer avec l'image en ressource ?
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
Tu utilises LoadResource et ses dérivées LoadIcon, LoadBitmap...
Messages postés
4
Date d'inscription
mercredi 4 décembre 2002
Statut
Membre
Dernière intervention
8 avril 2007

Malgré mes rechercher et ma bonne volontée je n'arrive toujours pas à voir comment proceder...
Mon projet utilise la librairie standard SDL.
Voila le code de la fonction me permettant de charger une image:

SDL_Surface *charger_image(char *filename) {


    //L'image qui est chargé
    SDL_Surface* loadedImage = NULL;


    //L'image optimisée que nous allons utiliser
    SDL_Surface* optimizedImage = NULL;


    //Chargement de l'image
    loadedImage = IMG_Load(filename); // <---------------- LIGNE A SUBSTITUER


    //Si l'image est bien chagée
    if(loadedImage != NULL)
    {
        //Création de l'image optimisée
        optimizedImage = SDL_DisplayFormat( loadedImage );


        //Libération de l'ancienne image
        SDL_FreeSurface( loadedImage );
    }


    //On retourne l'image otpimisée
    return optimizedImage;
}

Du coup le problème vient de la conversion du BMP ressource en SDL_Surface.
Messages postés
1
Date d'inscription
vendredi 10 avril 2009
Statut
Membre
Dernière intervention
1 février 2010

salut tout le monde
fabhacker ton lien ne marche plus
est-ce-que tu peux nous expliquer comment sans donner de liens
merci