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

Résolu
FabHacker Messages postés 4 Date d'inscription mercredi 4 décembre 2002 Statut Membre Dernière intervention 8 avril 2007 - 4 avril 2007 à 23:02
cs_manidan Messages postés 1 Date d'inscription vendredi 10 avril 2009 Statut Membre Dernière intervention 1 février 2010 - 1 févr. 2010 à 08:04
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

FabHacker Messages postés 4 Date d'inscription mercredi 4 décembre 2002 Statut Membre Dernière intervention 8 avril 2007
8 avril 2007 à 21:29
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/
++
3
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
5 avril 2007 à 17:24
suffit de les mettre en ressources
0
FabHacker Messages postés 4 Date d'inscription mercredi 4 décembre 2002 Statut Membre Dernière intervention 8 avril 2007
5 avril 2007 à 19:01
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 ?
0
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
5 avril 2007 à 20:01
Tu utilises LoadResource et ses dérivées LoadIcon, LoadBitmap...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
FabHacker Messages postés 4 Date d'inscription mercredi 4 décembre 2002 Statut Membre Dernière intervention 8 avril 2007
5 avril 2007 à 20:17
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.
0
cs_manidan Messages postés 1 Date d'inscription vendredi 10 avril 2009 Statut Membre Dernière intervention 1 février 2010
1 févr. 2010 à 08:04
salut tout le monde
fabhacker ton lien ne marche plus
est-ce-que tu peux nous expliquer comment sans donner de liens
merci
0
Rejoignez-nous