Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1585 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Petit problème en SDL ...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Petit problème en SDL ...

n°1314690
kamykaze
Posté le 27-02-2006 à 18:46:24  profilanswer
 

Salut à tous  :)  
 
J'ai un petit problème, rien de bien méchant je pense mais ca me fait galérer depuis une bonne demi heure et je commence à en avoir marre.
 
Si j'ai bien localisé le problème, ca vient de ces quelques lignes :
 

Code :
  1. SDL_Surface* temp;
  2. temp=SDL_LoadBMP("img/road_1A.bmp" );
  3. SDL_BlitSurface(temp,NULL,road,NULL);
  4. return road;


 
Et là quand j'affiche road j'ai rien  :??:  
Alors que si je change ces lignes en  
 

Code :
  1. road=SDL_LoadBMP("img/road_1A.bmp" );
  2. return road;


 
Ca marche très bien ...    :??:  
 
Si quelqu'un sait pourquoi ...

mood
Publicité
Posté le 27-02-2006 à 18:46:24  profilanswer
 

n°1314843
Evadream -​jbd-
Posté le 27-02-2006 à 21:47:04  profilanswer
 

Dans ton premier exemple, tu dois allouer road via un SDL_CreateRGBSurface par exemple pour que la surface puisse accueillir  les données de ton blit.  
 
Tu aurais pu voir cette erreur en vérifiant systématiquement le code de retour des fonctions !
 

Code :
  1. if ( !temp ) { std::cout << SDL_GetError() << '\n' ; // .... }
  2. if ( SDL_BlitSurface(temp,NULL,road,NULL) < 0 ) { std::cout << SDL_GetError() << '\n' ; // .... }

n°1315280
kamykaze
Posté le 28-02-2006 à 13:36:40  profilanswer
 

Merci Evadream  :)  
 
Je débute en C++/SDL, alors j'essaye de différentes façons quand ca marche pas mais là je pensais qu'une surface classique suffisait, comme quand j'envoie tout vers ma surface définitive avant de l'afficher, ca marche maintenant, merci beaucoup  :D

n°1315299
Evadream -​jbd-
Posté le 28-02-2006 à 13:58:44  profilanswer
 

:) Lorsque tu déclares une SDL_Surface comme ça  

Code :
  1. SDL_Surface* temp ;

 
 
Tu ne fais que déclarer un pointeur vers une SDL_Surface. Physiquement, il n'y a pas de surface en mémoire. Ce n'est pas une surface "classique", mais un pointeur vers une SDL_Surface qui pointe pour l'instant vers rien du tout. Il faut le faire pointer vers quelque chose de valide, via SDL_LoadBMP par exemple, ou bien SDL_CreateRGBSurface.
 
Bon courage pour la suite !

n°1315311
kamykaze
Posté le 28-02-2006 à 14:08:09  profilanswer
 

Merci pour tes explications, je pense que je devrais m'en sortir ^^
A++


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Petit problème en SDL ...

 

Sujets relatifs
Problème avec MS-DOS et mon raccourci reseauProblème de date
[Rayzolu] Problème de linkage à la compilationProbleme avec header
Probléme d'acquisition d'image.Problème de requete
Problème avec memory_limit de PHP.iniProblème lors de l'éxécution de rquête dans un formulaire
Problème de fromulaire et de boutonsProblème de n° d'index des feuilles Excel créées en VBA
Plus de sujets relatifs à : Petit problème en SDL ...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR