Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème d'affichage simple sur un code SDL/OpenGL

Sujet résolu
    19 février 2018 à 9:14:51

    Bonjour,

    J'essaie de me remettre à OpenGL  après des années sans y toucher et j'utilise maintenant une compilation manuelle sous ubuntu. J'ai cherché à afficher un simple triangle, mais à l'exécution j'obtiens simplement un écran blanc avec le code ci-dessous :

    #include <stdlib.h>
    #include <iostream>
    #include <stdio.h>
    #include <SDL2/SDL.h>
    #include <GL/gl.h>
    #include <GL/glu.h>
     
    #define SCREEN_WIDTH 640
    #define SCREEN_HEIGHT 480
     
    void pause();
     
    using namespace  std;
     
    int main(int argc, char *argv[])
     
    {
     
        SDL_Init(SDL_INIT_VIDEO); // Initialisation de la SDL
     
      
        SDL_Window* window = NULL;
     
        if( SDL_Init( SDL_INIT_VIDEO ) < 0 )
        {
                printf( "SDL could not initialize! SDL_Error: %s\n", SDL_GetError() );
        }
        else
        {
                window = SDL_CreateWindow( "Mon premier programme openGL", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_OPENGL);
                if( window == NULL )
                {
                        printf( "Window could not be created! SDL_Error: %s\n", SDL_GetError() );
                }
                else
                {
                         
                        bool continuer =true;
                        SDL_Event event;
     
                        while(continuer){
                          glClear(GL_COLOR_BUFFER_BIT);
              
                          glBegin(GL_TRIANGLES);
                            glColor3ub(255,0,0);    glVertex2d(-.75,-.75);
                            glColor3ub(0,255,0);    glVertex2d(0,.75);
                            glColor3ub(0,0,255);    glVertex2d(.75,-.75);
                          glEnd();
     
                          glFlush();
                          SDL_GL_SwapWindow(window);
     
                          SDL_WaitEvent(&event);
     
                          switch(event.type)
                          {
                            case SDL_QUIT:
                              continuer = false;
                          }
                        }
                }
        }
     
        SDL_DestroyWindow( window );
        SDL_Quit();
     
        return EXIT_SUCCESS;
     
    }

    que je compile comme suit :

    g++  main.cpp  -w  -lSDL2 -lGL -lGLU -o Programme

    Quelqu'un aurait-il une idée de ce que je fais incorrectement ?

    Merci d'avance !




    • Partager sur Facebook
    • Partager sur Twitter
      19 février 2018 à 16:13:33

      Bonjour,

      Vous n'avez pas créé le ontext?

      https://gist.github.com/sergnechaev/8a808e237287cf77fd68

      -
      Edité par breizhbugs 19 février 2018 à 16:15:34

      • Partager sur Facebook
      • Partager sur Twitter
      ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
        19 février 2018 à 16:44:21

        Merci breizhbugs, Ceci règle mon problème, même si je ne comprends pas pourquoi. Il semble que le framework a pas mal évolué depuis l'époque où je travaillais avec. Je vais me pencher dessus. Merci encore de ton aide.

        -
        Edité par olivierodd 19 février 2018 à 16:45:14

        • Partager sur Facebook
        • Partager sur Twitter
          19 février 2018 à 17:03:55

          Opengl a changé aussi, les glvertex et compagnie c'est du passé! Toruve toi un tuto "récent" (>= opengl 3.3) pour apprendre les shaders et cie.
          • Partager sur Facebook
          • Partager sur Twitter
          ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **

          Problème d'affichage simple sur un code SDL/OpenGL

          × 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