Sdl et glut

cs_khayyam Messages postés 51 Date d'inscription lundi 7 juin 2004 Statut Membre Dernière intervention 15 juillet 2005 - 31 juil. 2004 à 18:45
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 - 2 août 2004 à 13:07
salut à tous,

je me lance dans sdl et je souhaite intégrer la 3d grâce à la glut

alors j'ai initialisé la sdl correctement (init ... setvideomode... boucle de gestion d'évènements), mais mon écran reste désespérément vide.

ma fonction d'affichage est toute basique, j'en suis aux tests alors je fais juste afficher un bête polygone définit avec glut - glBegin ... vertex .... color ... end

j'ai inclu SDL.h et glut.h pour avoir les protos des fonctions, j'ai linké ce qu'il faut pour faire marcher sdl + glut (je n'ai rien fait d'autre), la compilation se passe bien mais rien ne se passe, c'est sûr, j'ai oublié qqch

quelqu'un pourrait-il m'aider ?
c'est surement pas grand chose à rajouter.

4 réponses

cs_AmK Messages postés 368 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 27 janvier 2010 1
1 août 2004 à 01:22
euh première question : pourquoi ne pas coder tout avec glut ??

sinon si tu pouvais mettre des sources dans un zip ça serait bcp mieux , et ça aiderait pour la résolution du pb !
0
cs_khayyam Messages postés 51 Date d'inscription lundi 7 juin 2004 Statut Membre Dernière intervention 15 juillet 2005
1 août 2004 à 11:00
pkoi pas tout coder direct avec glut ?

pour passer à la vitese supérieure, pour avoir une meilleure gestion de l'environnement opengl, pour pouvoir intégrer plusieurs librairies graphiques en même temps.

pour ce qui est de la source, c'est vraiment le tout début, ya pas grand chose:

int main (int argc, char **argv)
{
   FILE *fichier_log=fopen("sdl.log", "w");
   
   if (SDL_Init (SDL_INIT_VIDEO) < 0) 
   {
      fprintf (fichier_log, "%s\n",SDL_GetError ());
      return 1;
   }
   atexit (SDL_Quit); // Pour quitter proprement

   screen = SDL_SetVideoMode (640, 480, 16, SDL_HWSURFACE | SDL_DOUBLEBUF);
   if (screen == NULL) 
   {
      fprintf (fichier_log, "%s\n", SDL_GetError ());
      return 2;
   }
   SDL_EnableUNICODE(1);

   fprintf(fichier_log, "Initialisation de SDL terminée\n");

   SDL_Event event; // Fermer la fenêtre proprement
   int end=0;
   while (!end)
   {
      if (SDL_PollEvent (&event) && event.type==SDL_QUIT)   // on ferme !!
             end=1;
  
      switch(event.type)   
        {            
            case SDL_KEYDOWN:     // touche appuyée
                switch(event.key.keysym.sym)
                    {// machin
                    }
                break;
            default:
                break;              
        }    
      
      affichage(); 
   }
   fclose(fichier_log);
   return 0;
}
avec la fonction d'affichage :

void affichage()
{
   SDL_FillRect(screen, NULL, 0);

   glBegin(GL_POLYGON);
     glColor3f(1.0,0.0,0.0);
     glVertex2f(0,0);
     glColor3f(0.0,1.0,0.0);
     glVertex2f(.5,0);
     glColor3f(0.0,0.0,1.0);
     glVertex2f(.5,.5);
     glColor3f(1.0,1.0,1.0);
     glVertex2f(0,.5);
   glEnd();
   
   SDL_Flip(screen);
}


mes includes sont
#include <SDL/SDL.h>
#include <stdio.h>
#include <GL/glut.h>

la compilation se passe sans encombre (donc le linkage est ok)
0
cs_khayyam Messages postés 51 Date d'inscription lundi 7 juin 2004 Statut Membre Dernière intervention 15 juillet 2005
1 août 2004 à 11:01
ah, j'ai oublié, en globale j'ai SDL_Surface *screen=NULL;
0
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
2 août 2004 à 13:07
C'est normal que rien ne s'affiche, ta fenêtre SDL n'est pas initialisée pour utiliser OpenGL; et quand tu dis "pour pouvoir intégrer plusieurs librairies graphiques en même temps." ce n'est pas possible à cause justement de ça : pour dessiner, soit tu choisis d'utiliser OpenGL, soit tu choisis SDL, mais pas les 2.

Pour corriger ton pb, regarde ici : http://www.programmationworld.com/site/Cours.asp?Action=cours&Numero=38
et va voir dans "SDL et la 3D".

Bonne prog
++

Patience et longueur de temps font plus que force ni que rage....
0
Rejoignez-nous