IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenGL Discussion :

Soucis OpenGL en langage C


Sujet :

OpenGL

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 16
    Points : 11
    Points
    11
    Par défaut Soucis OpenGL en langage C
    Bonsoir, je tente de me mettre vite fait a l'openGL (en ayant marre de la libX) et suivant un certain tuto j'ai code un programme simple.

    Il sagit d'ouvrir une fenetre, et d'afficher un polygone avec des couleures varies et dans differents modes d'affichage (avec un key hook).

    Le soucis: lors de l'execution la fenetre est transparente (et ne gere pas l'expose, c'est un detail (et c'est normal) mais tres moche).

    Voici le code (Cela peu sembler evident aux habitues de l'OpenGL et de glut, merci d'avance pour votre attention):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    #include <stdlib.h>
    #include <GL/glut.h>
     
    #define ESC     27
     
    #define X_POS 142
    #define Y_POS 142
    #define WIDTH 640
    #define HEIGHT 480
     
    #define POINT_SIZE 2.0
     
    int             nWindowID;
     
    void    handle_key(unsigned char key, int x, int y)
    {
      switch (key) {
                case 'p':
                        glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
                        glutPostRedisplay();
                        break;
                case 'f':
                        glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
                        glutPostRedisplay();
                        break;
                case 's':
                        glPolygonMode(GL_FRONT_AND_BACK, GL_POINTS);
                        glutPostRedisplay();
                        break;
                case ESC:
                        glutDestroyWindow(nWindowID);
                        exit(EXIT_SUCCESS);
                default:
                        break;
      }
    }
     
    void    display(void)
    {
      glClear(GL_COLOR_BUFFER_BIT);
      glBegin(GL_POLYGON);
      glColor3f(1.0, 0.0, 0.0);
      glVertex2f(-0.5, -0.5);
      glColor3f(0.0, 1.0, 0.0);
      glVertex2f(0.5, -0.5);
      glColor3f(0, 0, 1); 
      glVertex2f(0.5, 0.5);
      glColor3f(1.0, 1.0, 1.0);
      glVertex2f(-0.5, 0.5);
      glEnd();
      glFlush();
    }
     
    int     main(int argc, char *argv[])
    {
      glutInit(&argc, argv);
      glutInitDisplayMode(GLUT_RGB);
      glutInitWindowSize(WIDTH, HEIGHT);
      glutInitWindowPosition(X_POS, Y_POS);
      nWindowID = glutCreateWindow("OpenGL is good ?");
      glClearColor(0.0, 0.0, 0.0, 0.0);
      glPointSize(POINT_SIZE);
      glutDisplayFunc(display);
      glutKeyboardFunc(handle_key);
      glutMainLoop();
      return (EXIT_SUCCESS);
    }
    J'ai arrange le code en le postant pour le rendre plus presentable.
    Ca devrait compiler, pour linker la lib: -L/path_to_libdir/ -lglut

    Merci a tous.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    J'ai compilé , et le code marche.
    Soit je n'ai pas compris le problème, soit le problème ne viens pas du code.
    Ton code m'affiche une fenetre , fond noir , avec un rectangle coloré.
    Par contre la touche 's' ne provoque aucun changement , et ça je ne comprends pas pourquoi.
    Donc si tu pouvais expliciter le problème , ou alors ça vient de ta librairie de glut :s
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Ala lumiere de ce que tu viens de me dire je pense que la libglut doit avoir un petit soucis, je vais en toucher deux mots aux admins.

    Mon probleme etait qu'au lieu d'avoir un carre colore sur fond noir, j'avais une fenetre transparente (genre de la veritable transparence) : le fond etait l'image de derriere, et le tout sans rafraichissement.

    Merci LittleWhite .

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    Euh , je ne sais pas trop, si c'est vraiment un problème avec glut , ou avec le programme, car j'ai fait un programme cette après midi , et finalement j'ai un problème similaire ( une fois sur deux ... mais presque sur que c'est mon programme ).

    Habituellement ( chose qui faut pas faire ) , je m'étais la fonction d'affichage dans un glutIdleFunc() ( bon , c'est pas très bien , mais jusqu'à présent , j'avais pas le problème cité ici )
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Mouais, je vais atendre un autre avis, ca m'etonne que cela vienne du code etant donne qu'il vient d'un tuto de ce forum (a moitie), je l'ai tourne dans differents sens mais toujours le meme soucis.

    A verifier.

    D'autres avis ?

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 376
    Points : 4 928
    Points
    4 928
    Par défaut
    GL_POINT, pas de 'S' à la fin

    sinon aucun autre problème chez moi

  7. #7
    Membre régulier Avatar de lXT95l
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 106
    Points : 116
    Points
    116
    Par défaut
    Aucun probleme chez moi non plus.

    Peut etre le probleme viendrait il d'ailleurs ? un vista avec de mauvais drivers ?
    #opengl@irc.epiknet.net

Discussions similaires

  1. Solaris 8 et soucis OpenGL
    Par FirstPost dans le forum Solaris
    Réponses: 0
    Dernier message: 08/11/2012, 11h35
  2. Petit soucis ouverture OpenGl
    Par xtremax3 dans le forum OpenGL
    Réponses: 1
    Dernier message: 04/03/2005, 15h10
  3. Opengl shading langage
    Par charly dans le forum OpenGL
    Réponses: 6
    Dernier message: 07/06/2004, 09h54
  4. Réponses: 6
    Dernier message: 21/01/2004, 14h25
  5. [langage] ptit souci de syntaxe
    Par marouanitos dans le forum Langage
    Réponses: 2
    Dernier message: 26/09/2003, 11h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo