Partage
  • Partager sur Facebook
  • Partager sur Twitter

[openGL]mon code plante

réalisation d'une fonction de création de segment

Sujet résolu
    14 mai 2006 à 17:00:44

    Bonjour et merci de vous ineterressé a mon problème je suis en train de réaiser une fonction qui a pour but de peindre mur ou sol. elle prend en compte un seul paramètre : le type qui a pour but de savoir la texture à appliquer.Les coordonnés sont dans la var coordonnee sous forme de tableau 2D maintenantplace au code ^^
    #include <SDL/SDL.h>
    #include <GL/gl.h>
    #include <GL/glu.h>
    #include <cstdlib>
    #include "sdlglutils.h"
    #include "dessiner.cpp"
    int coordonnee[4][3]={0};
    int SegmentPainteur(int tipe);
    GLuint texture;
    int main(int argc, char *argv[])
    {
        SDL_Event event;

        SDL_Init(SDL_INIT_VIDEO);
        atexit(SDL_Quit);
        SDL_WM_SetCaption("SDL GL Application", NULL);
        SDL_SetVideoMode(640, 480, 32, SDL_OPENGL);


        glMatrixMode( GL_PROJECTION );
        glLoadIdentity();
        gluPerspective(70,(double)640/480,1,1000);
        glEnable(GL_DEPTH_TEST);
    glEnable(GL_TEXTURE_2D);

    int  tipe=0;
    //definition des coordonnées et des types
    tipe=1;
    coordonnee[0][0]=-4;coordonnee[0][1]=-10;coordonnee[0][2]=-1;
    coordonnee[1][0]=4;coordonnee[1][1]=-10;coordonnee[1][2]=-1;
    coordonnee[2][0]=4;coordonnee[2][1]=5;coordonnee[2][2]=-1;
    coordonnee[3][0]=-4;coordonnee[3][1]=5;coordonnee[3][2]=-1;
    SegmentPainteur(tipe);
          glEnable(GL_DEPTH_TEST);
        glEnable(GL_TEXTURE_2D);


        for (;;)
        {

            while (SDL_WaitEvent(&event))
            {

                switch(event.type)
                {
                    case SDL_QUIT:
                    exit(0);
                    break;

            }

           }







        SegmentPainteur(tipe);
        return 0;
    }
    }


    int SegmentPainteur(int tipe)
    {
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) ;


        glMatrixMode( GL_MODELVIEW );
        glLoadIdentity( );




        /*********************************************
        **********************************************
        Définition des types
        **********************************************
        *********************************************/

        switch (tipe){
            case 0:
            glColor3ub(255, 0, 0);
            break;
            case 1:
            texture = loadTexture("stainedglass05.jpg");//type 1 : vitre
            break;
            case 2:
             texture = loadTexture("parquet.jpg");//type 2 : parquet
            break;
            case 3:
             texture = loadTexture("mur1.jpg");//type 3 : mur donald
            break;
        }
            /*********************************************
        **********************************************
        Fin Définition des types
        **********************************************
        *********************************************/

    gluLookAt(1,1,1,0,0,0,0,0,1);
    glColor3ub(255, 0, 0);
    glBindTexture(GL_TEXTURE_2D, texture);
     glBegin(GL_QUADS);

        glTexCoord2d(0,1);  glVertex3d(coordonnee[0][0],coordonnee[0][1],coordonnee[0][2]);//1
        glTexCoord2d(0,0); glVertex3d(coordonnee[1][0],coordonnee[1][1],coordonnee[1][2]);//2
        glTexCoord2d(1,0); glVertex3d(coordonnee[2][0],coordonnee[2][1],coordonnee[2][2]);//3
        glTexCoord2d(1,1); glVertex3d(coordonnee[3][0],coordonnee[3][1],coordonnee[3][2]);//4
        glEnd;
        glFlush();
        SDL_GL_SwapBuffers();
        return(1);
    }
    je précise le problème ca n'affiche ren a l'écran !
    • Partager sur Facebook
    • Partager sur Twitter
      14 mai 2006 à 17:14:22

      erf bien joué ca marche merci bcp kayl au passage
      ils sont trop bien tes cours ^^ je te félicite c'est tres bien j'attend la suite avec impatience ^^
      • Partager sur Facebook
      • Partager sur Twitter

      [openGL]mon code plante

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown