Message d'erreur avec SL

Résolu
cs_Maximi Messages postés 2 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 22 mars 2008 - 22 mars 2008 à 13:07
cs_Maximi Messages postés 2 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 22 mars 2008 - 22 mars 2008 à 13:28
Bonjour je débute avec C++ et SDL, je travaille avec VC++ 6.
J'ai fait un tout petit programme et mon problème, est le suivant :
je compile le code et ce message d'erreur s'affiche : warning C4244: '=' : conversion from 'unsigned __int32' to 'unsigned __int16', possible loss of data
Je recompile et là plus de problèmes.

Voici le code source et la ligne qui pose problème est en rouge :

#include "SDL.h"
#include "SDL_image.h"

int main( int argc, char* argv[] )
{
    SDL_Surface    *ecran=NULL;
    SDL_Surface *buffer=NULL, *sprite=NULL;
    SDL_Rect position;
    Uint16 couleur_fond;
   
    SDL_Init(SDL_INIT_VIDEO);
    if (SDL_Init(SDL_INIT_VIDEO) == -1)
       exit(EXIT_FAILURE);

    ecran = SDL_SetVideoMode(800,600,16,SDL_HWSURFACE);
    couleur_fond = SDL_MapRGB(ecran->format,0,0,0);
    sprite = IMG_Load("vaisseau.png");
    SDL_FillRect(ecran,NULL,couleur_fond);
    position.x = 400;
    position.y = 500;
    SDL_SetColorKey(sprite, SDL_SRCCOLORKEY, SDL_MapRGB(sprite->format, 255, 255, 255));

    SDL_BlitSurface(sprite,NULL,ecran, &position);

    SDL_Flip(ecran);

    SDL_Quit();
    return 0;
}

Je ne comprend pas car à aucun moment je n'ai définis de variable 32 bits....

2 réponses

cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 2
22 mars 2008 à 13:23
Bonjour,

SDL_MapRGB() retourne un 32 bits qui est forcé dans un 16 bits d'où perte (possible) de données !

<code class="FUNCDEF">Uint32 SDL_MapRGB
(SDL_PixelFormat *fmt, Uint8 r, Uint8 g, Uint8 b);</code>
et
Uint16 couleur_fond;
 

Jean-François
3
cs_Maximi Messages postés 2 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 22 mars 2008
22 mars 2008 à 13:28
Merci beaucoup pour ta réponse rapide !
J'aime pas trop les erreurs quand je compile mais visiblement là j'ai pas le choix...
0
Rejoignez-nous