Petits probleme d'un debut de projet SDL

Petits probleme d'un debut de projet SDL - C++ - Programmation

Marsh Posté le 05-09-2006 à 20:21:18    

Bonsoir alors voila j'ai un petit probleme, c'est que je n'arrive pas a afficher mon image avec la SDL_Image, bilblihotheque bien installe, et l'image est bien dans mon dossier voila le petit code:

Code :
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <SDL/SDL.h>
  4. #include <SDL/SDL_image.h>
  5. int main(int argc, char *argv[])
  6. {
  7.     SDL_Surface *ecran = NULL,  *Backscreen = NULL;
  8.     SDL_Event event;
  9.     int Marche = 1;
  10.     SDL_Init(SDL_INIT_VIDEO);
  11.     ecran = SDL_SetVideoMode( 0, 0, 32, SDL_HWSURFACE|SDL_FULLSCREEN);
  12.     Backscreen = IMG_Load("Backscreen.jpg" );
  13.     SDL_BlitSurface(Backscreen, NULL, ecran, NULL);
  14.     while (Marche)
  15.     {
  16.         SDL_WaitEvent(&event);
  17.         switch (event.key.keysym.sym)
  18. {
  19.     case SDLK_ESCAPE:
  20.         Marche = 0;
  21.         break;
  22. }
  23.     }
  24.     SDL_Quit();
  25.     return EXIT_SUCCESS;
  26. }


 
 et mon erreur : .objs\main.o:main.cpp:(.text+0x56): undefined reference to `IMG_Load'
collect2: ld returned 1 exit status
 
Merci desole je suis un noob ^^.
 
Aussi lorsque j'utilise SDL_LoadBMP... ca marche mais je ne trouve pas la fonction pour étiré l'image j'ai regarde dans la doc et j'ai pensé a SDL_SetClipRect mais l'image ne s'étire pas donc je trouve pas ... je vous remercie.


Message édité par kirua_sama le 05-09-2006 à 20:39:17
Reply

Marsh Posté le 05-09-2006 à 20:21:18   

Reply

Marsh Posté le 05-09-2006 à 22:09:09    

il te faut sdl_image en plus de sdl


---------------
Töp of the plöp
Reply

Marsh Posté le 05-09-2006 à 22:09:30    

Reply

Marsh Posté le 06-09-2006 à 00:07:02    

Je l'ai deja et deja installer comme il le faut aussi il me semble.

Reply

Marsh Posté le 06-09-2006 à 00:12:30    

et tu l'as liée statiquement à ton projet ?


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 06-09-2006 à 09:28:28    

kirua_sama a écrit :

Je l'ai deja et deja installer comme il le faut aussi il me semble.


ah oui ok j'avais lu trop vite;
 
tu utilises quel compilateur ?
Tu as configuré sdl/sdl_image de quelle manière ?
 
Visiblement c'est ça qui foire.


---------------
Töp of the plöp
Reply

Marsh Posté le 06-09-2006 à 19:06:00    

A oui excusee moii, en fait j'ai oublier de l'ajoute dans le linker comme la SDL l'etais automatiquement. Sinon avec la SDL on est toujours oblige de travailler avec des coordonnées ?? ( Peux pas définir des bloc virtuelle ? pour travailler en FULL quelque soit la résolution .)

Reply

Marsh Posté le 06-09-2006 à 19:44:09    

'faut voir dans la doc ...


---------------
Töp of the plöp
Reply

Marsh Posté le 06-09-2006 à 20:01:06    

Oki merci je l'ai lu... mais bon. Enfin merci a bientot j'espere.

Reply

Marsh Posté le 06-09-2006 à 20:36:04    

Sinon apres avoir lu la Doc SDL et SDL_Image je crois bien qu'il n'existe aucune fonction pour agrandir ou reduire une image a la resolution de l'ecran tu connais pas une librairies légère ou deja existante ( windows.h... ) qui gere ca ?

Reply

Marsh Posté le 06-09-2006 à 20:36:04   

Reply

Marsh Posté le 06-09-2006 à 20:41:30    

logiquement tu as implémenté une fonction qui initialisait une sdlsurface soit dans une fenetre soit en fullscreen; tu peux toujours développer une toolbox ou autre pour redimensionner tes surface à celle désirées non ?


---------------
Töp of the plöp
Reply

Marsh Posté le 06-09-2006 à 21:05:02    

oui je peux redimensionner la surface a blitter mais l'image gardera quoi qu'il arrive la meme taille... donc si il y a un module qui permettrai les redimensionnement( rotation etc... ) de l'image ce serai cool.

Reply

Marsh Posté le 08-09-2006 à 08:50:43    

Sauf erreur si tu fait tous tes calculs pour l'affichage dans une fenêtre à résolution fixe et qu'ensuite tu active le fullscreen tout sera automatiquement redimensionné (avec le risque d'avoir des effets bizarres suivant ce que tu fais). En tout cas çA marchait comme ça quand j'ai utilisé la SDL (bon c'était en Ada donc avec AdaSDL mais ça devrait pas être bien différent)

Reply

Marsh Posté le 08-09-2006 à 20:19:21    

Non desole ca ne marche pas, ca ne genere pas d'erreur mais ca me fait des beug d'affichage "ecran tout noir" moitier de mon texte qui s'affiche ... rien que l'on peut exploite. J'ai chercher sur google et je trouve rien sur ce genre de fonction.

Reply

Marsh Posté le 08-09-2006 à 21:18:15    

http://www.libsdl.org/intro.en/usingvideo.html

Tip #1:
If you are loading an image to be displayed many times, you can improve blitting speed by convert it to the format of the screen. The function SDL_DisplayFormat() does this conversion for you.

c'est bon ça ?

Reply

Marsh Posté le 08-09-2006 à 22:43:09    

Je pense d'apres la doc que c'est bien comme ca que ca s'utilise non ??
Résultat, aucun changement.
 

Code :
  1. SDL_Init(SDL_INIT_VIDEO);
  2.     TTF_Init();
  3.     ecran = SDL_SetVideoMode( 0, 0, 32, SDL_HWSURFACE|SDL_FULLSCREEN);
  4.     SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 0, 255));
  5.     Backscreen = IMG_Load("Backscreen.bmp" );
  6.     SDL_DisplayFormat(Backscreen);
  7.     SDL_BlitSurface(Backscreen, NULL, ecran, &PositionBackscreen);
  8.     Fonte = TTF_OpenFont("verdana.ttf", 25);
  9.     Text_Quitter = TTF_RenderText_Blended(Fonte, "Quitter", Rouge);
  10.     SDL_BlitSurface(Text_Quitter, NULL, ecran, &PositionQuitter);
  11.     SDL_Flip(ecran);

Reply

Marsh Posté le 09-09-2006 à 16:54:13    

c'est moi ou ???

Reply

Marsh Posté le 10-09-2006 à 21:01:39    

Up ( je trouve aucunement comment agrandir une image en fonction de la resolution de la fenetre... )

Reply

Marsh Posté le 11-09-2006 à 08:10:56    

Citation :

  1.
      SDL_Init(SDL_INIT_VIDEO);
   2.
         TTF_Init();
 5.
         Backscreen = IMG_Load("Backscreen.bmp" );
   6.
         SDL_DisplayFormat(Backscreen);
   7.
   3.
         ecran = SDL_SetVideoMode( 0, 0, 32, SDL_HWSURFACE|SDL_FULLSCREEN);
   4.
         SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 0, 255));
 
   7.
       
   8.
         SDL_BlitSurface(Backscreen, NULL, ecran, &PositionBackscreen);
   9.
       
  10.
       
  11.
         Fonte = TTF_OpenFont("verdana.ttf", 25);
  12.
         Text_Quitter = TTF_RenderText_Blended(Fonte, "Quitter", Rouge);
  13.
       
  14.
       
  15.
       
  16.
         SDL_BlitSurface(Text_Quitter, NULL, ecran, &PositionQuitter);
  17.
         SDL_Flip(ecran);


(
 
Ca ca revient au meme ... ) et on ne peux pas blitter avant l'initialisation ...


Message édité par kirua_sama le 11-09-2006 à 08:11:48
Reply

Marsh Posté le 20-09-2006 à 21:03:44    

up...

Reply

Marsh Posté le 21-09-2006 à 15:19:57    

Ce vikend je vais en faire un peu (ça fait longtemps que j'ai pas fait de C, ça me manque, et j'ai tellement entendu parler de SDL que je veux voir ce que ça donne concrètement)
 
Je te fais part de mes "trouvailles" bientôt donc :hello:

Reply

Marsh Posté le 21-09-2006 à 19:23:54    

merci.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed