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 :

Fermeture d'un programme !


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut Fermeture d'un programme !
    Bonjour !


    Je viens de commencer l'étude d'OpenGL avec le livre OpenGL 1.2 - Guide officiel (je sais qu'il existe des version plus récente mais c'est le seul book dont je dispose) mais lorsque je lance mon programme et que je veut le fermer, le processus ne se termine pas, mais la fenêtre elle, elle se ferme !

    Voici le code en question qui est tout simple:
    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
    69
    70
    71
    72
    73
    74
    75
    76
     
    #include <GL/glut.h>
    #include <stdlib.h>
     
     
    static void init (void)
    {
       /*
        * Couleur de vidage.
        */
       glClearColor (0.0, 0.0, 0.0, 0.0);
     
     
       /*
        * Initialise les valeurs de point de vue.
        */
       glMatrixMode (GL_PROJECTION);
       glLoadIdentity ();
       glOrtho (0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
    }
     
     
    static void display (void)
    {
       /*
        * Vidage de la fenetre.
        */
       glClear (GL_COLOR_BUFFER_BIT);
     
     
       /*
        * Dessins de la scene.
        */
       glColor3f (1.0, 1.0, 1.0);
       glBegin (GL_POLYGON);
          glVertex3f (0.25, 0.25, 0.0);
          glVertex3f (0.75, 0.25, 0.0);
          glVertex3f (0.75, 0.75, 0.0);
          glVertex3f (0.25, 0.75, 0.0);
       glEnd ();
     
     
       /*
        * Traitement des routines OpenGL du tampon.
        */
       glFlush ();
    }
     
     
    int main (int argc, char ** argv)
    {
       /*
        * Creation d'une fenetre OpenGL.
        */
       glutInit (& argc, argv);
       glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
       glutInitWindowSize (250, 250);
       glutInitWindowPosition (100, 100);
       glutCreateWindow ("C OpenGL Application");
     
     
       /*
        * Initialisation de la scene.
        */
       init ();
     
     
       /*
        * Affichage et lancement de la boucle OpenGL.
        */
       glutDisplayFunc (display);
       glutMainLoop ();
     
     
       return EXIT_SUCCESS;
    }
    D'après le book, rien ne manque mais comme dit, peut-être que la dernière version d'OpenGL il faut passer par une fonction de fermeture spécialisée .... j'en sais rien ! Si vous pouviez m'aider SVP !

    Le code est compilé sous Windows avec Code::Blocks !

    Merci
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  2. #2
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par Franck.H
    D'après le book, rien ne manque mais comme dit, peut-être que la dernière version d'OpenGL il faut passer par une fonction de fermeture spécialisée .... j'en sais rien ! Si vous pouviez m'aider SVP !
    Non c'est un problème de Code::Blocks à mon avis.

    Tente de lancer le programme à partir d'une invite de commande et tu n'auras probablement pas ce problème.

    Sous linux, ton code fonctionne parfaitement et le programme se termine très bien.

    Jc

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Non en fait cela ne fonctionne pas mais je sais que j'utilise une ancienne version de Glut32 et sur le site d'après lequel j'ai installé Glut32, il s'avère que c'est un défaut qui n'est pas encore corrigé dans cette version.

    Pour essayé de corriger ce problème, j'ai téléchargé en dev-pack la version 3.7.6 puis j'ai mis libglut32.a dans le répertoire lib de Code::Blocks mais maintenant c'est l'édition de liens qui foire:

    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
     
    Project   : C OpenGL Application
    Compiler  : GNU GCC Compiler (called directly)
    Directory : C:\Documents and Settings\Franck\Bureau\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    In file included from main.c:1:
    C:/Program Files/CodeBlocks/include/GL/glut.h:43: warning: ignoring #pragma comment 
    C:/Program Files/CodeBlocks/include/GL/glut.h:51: warning: ignoring #pragma comment 
    C:/Program Files/CodeBlocks/include/GL/glut.h:52: warning: ignoring #pragma comment 
    C:/Program Files/CodeBlocks/include/GL/glut.h:53: warning: ignoring #pragma comment 
    C:/Program Files/CodeBlocks/include/GL/glut.h:54: warning: ignoring #pragma comment 
    C:/Program Files/CodeBlocks/include/GL/glut.h:55: warning: ignoring #pragma comment 
    C:/Program Files/CodeBlocks/include/GL/glut.h:56: warning: ignoring #pragma comment 
    C:/Program Files/CodeBlocks/include/GL/glut.h:57: warning: ignoring #pragma comment 
    C:/Program Files/CodeBlocks/include/GL/glut.h:65: warning: ignoring #pragma warning 
    C:/Program Files/CodeBlocks/include/GL/glut.h:66: warning: ignoring #pragma warning 
    Linking executable: C-OpenGL.exe
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_event.o):glut_event.c:(.text+0x319): undefined reference to `glFinish@0'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_event.o):glut_event.c:(.text+0x374): undefined reference to `wglSwapBuffers@4'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_event.o):glut_event.c:(.text+0x3dc): undefined reference to `wglSwapBuffers@4'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_win.o):glut_win.c:(.text+0x18f): undefined reference to `wglGetCurrentContext@0'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_win.o):glut_win.c:(.text+0x196): undefined reference to `wglGetCurrentDC@0'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_win.o):glut_win.c:(.text+0x1b6): undefined reference to `wglMakeCurrent@8'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_win.o):glut_win.c:(.text+0x1d5): undefined reference to `glViewport@16'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_win.o):glut_win.c:(.text+0x1f7): undefined reference to `wglMakeCurrent@8'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_win.o):glut_win.c:(.text+0x216): undefined reference to `glViewport@16'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_win.o):glut_win.c:(.text+0x21e): undefined reference to `wglGetCurrentContext@0'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_win.o):glut_win.c:(.text+0x225): undefined reference to `wglGetCurrentDC@0'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_win.o):glut_win.c:(.text+0x241): undefined reference to `wglMakeCurrent@8'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_win.o):glut_win.c:(.text+0x843): undefined reference to `wglGetCurrentContext@0'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_win.o):glut_win.c:(.text+0x84a): undefined reference to `wglGetCurrentDC@0'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_win.o):glut_win.c:(.text+0x866): undefined reference to `wglMakeCurrent@8'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_win.o):glut_win.c:(.text+0x897): undefined reference to `glDrawBuffer@4'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_win.o):glut_win.c:(.text+0x8a6): undefined reference to `glReadBuffer@4'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_win.o):glut_win.c:(.text+0xaa1): undefined reference to `wglDeleteContext@4'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_win.o):glut_win.c:(.text+0xb61): undefined reference to `wglMakeCurrent@8'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_win.o):glut_win.c:(.text+0xbd2): undefined reference to `wglGetCurrentContext@0'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_win.o):glut_win.c:(.text+0xbd9): undefined reference to `wglGetCurrentDC@0'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_win.o):glut_win.c:(.text+0xbf5): undefined reference to `wglMakeCurrent@8'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_win.o):glut_win.c:(.text+0xcb4): undefined reference to `wglGetCurrentContext@0'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_win.o):glut_win.c:(.text+0xcbb): undefined reference to `wglGetCurrentDC@0'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_win.o):glut_win.c:(.text+0xcd7): undefined reference to `wglMakeCurrent@8'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_mesa.o):glut_mesa.c:(.text+0x80): undefined reference to `glGetString@4'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_mesa.o):glut_mesa.c:(.text+0x91): undefined reference to `glGetString@4'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_util.o):glut_util.c:(.text+0x281): undefined reference to `glGetError@0'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_util.o):glut_util.c:(.text+0x28d): undefined reference to `gluErrorString@4'
    C:\Program Files\CodeBlocks\lib/libglut32.a(win32_glx.o):win32_glx.c:(.text+0x30d): undefined reference to `wglCreateContext@4'
    C:\Program Files\CodeBlocks\lib/libglut32.a(glut_swap.o):glut_swap.c:(.text+0x71): undefined reference to `wglSwapBuffers@4'
    collect2: ld returned 1 exit status
    Process terminated with status 1 (0 minutes, 0 seconds)
    0 errors, 10 warnings
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  4. #4
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Es-tu sûr de lier les bibliothèques glu et GL?

    Jc

  5. #5
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par fearyourself
    Es-tu sûr de lier les bibliothèques glu et GL?

    Jc
    Ca franchement c'est une question qu'il faudrais éviter avec moi ... biensur que oui:
    • opengl32
    • glu32
    • glut32
    • user32
    • gdi32
    • winmm
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  6. #6
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par Franck.H
    Ca franchement c'est une question qu'il faudrais éviter avec moi ... biensur que oui:
    • opengl32
    • glu32
    • glut32
    • user32
    • gdi32
    • winmm
    On ne sait jamais

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lancer du code à la fermeture d'un programme
    Par goldorax113 dans le forum Langage
    Réponses: 2
    Dernier message: 31/12/2006, 17h45
  2. Fermeture d'un programme
    Par julio02200 dans le forum Access
    Réponses: 1
    Dernier message: 15/06/2006, 11h20
  3. Souci de fermeture de mon programme à la fermeture de Window
    Par Foromus dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 01/03/2006, 16h01
  4. interdire la fermeture d'un programme
    Par jeannot27 dans le forum C++Builder
    Réponses: 3
    Dernier message: 28/10/2005, 11h18
  5. Libérer les ressources lors de la fermeture d'un programme
    Par Heliopraetor dans le forum DirectX
    Réponses: 10
    Dernier message: 14/09/2004, 19h15

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