Forum Clubic

Opengl et zzerodivide

Bonjour,

Je viens de changer de PC pour un pc plus performant. Toute contente de ma nouvelle machine je reprend le projet sur lequel je travaillais avant le changement et la surprise mon programme ne marche plus!

J’ai trouver une des lignes où il y a le problème il s’agit d’une instruction openGl :

“glPopAttrib();”

lorsque je passe par cette instruction mon programme me met l’erreur “Application.exe raised exception class EZeroDivide with message ‘Floating point division by zero’ process stopped”

ayant déjà vu ce problème une fois lorsque j’ai voulu installer mon application sur une autre machine ( problème que j’avais résolu en téléchargement les dernier drivers de la carte graphique), j’ai tenter de réinstaller les drivers de ma carte graphique mais sans succès.

lorsque je lance mon application directement sans passé par mon IDE, le programme m’ouvre une multitude de fenetre EZeroDivide et fini par m’ouvrir une dernière fenetre : " Accès violation at address 64D6A082 in module atioglxx.dll. Write of address 042E0000." avant que le programme ne passe en “Ne repond pas”

Que puis je faire pour ne plus avoir ce problème?

Plutôt bizarre. Tu es sûre que ta pile d’attributs est bien remplie ?

Et truc super con: si, dans une machine virtuelle, tu teste ton programme sous Linux ? ça plante aussi ?

Bonjour,
je reviens vers vous pour le même soucis.
Le morceau de code que j’avais implémenté à l’époque pour résoudre mon problème ne m’a finalement plus ramener de problème qu’autre chose.

Donc je reviens vers vous avec le morceau de code un peu plus complet. Je tiens a préciser que mon problème ne semble apparaître que sur MON PC. En effet j’ai tester mon programme sur 3 autre PC et il n’y a que sur le mien que j’ai le problème.

Voici mon morceau de code

glPushMatrix();
glTranslated(0.0f, -0.01f, 0.0f);
glPushAttrib(GL_LINE_BIT);

    // nouvel objet préférences dont on va se servir pour la couleur des axes
    BPM2D_PreferencesValues *prefs = BPM2D_Interface->GetPref();

    glLineWidth(AxisLineWidth);
    glBegin(GL_LINES);
            glColor3f (prefs->ColorXAxis.x, prefs->ColorXAxis.y, prefs->ColorXAxis.z);
            glVertex3f(0.0f, 1.0f, 0.0f);
            glVertex3f(AxisSize, 1.0f, 0.0f);

            glColor3f (prefs->ColorZAxis.x, prefs->ColorZAxis.y, prefs->ColorZAxis.z);
            glVertex3f(0.0f, 1.0f, 0.0f);
            glVertex3f(0.0f, 1.0f, AxisSize);
    glEnd();


    glPopAttrib();



    glPopMatrix();

et voici ma config :
Carte graphique : club 3d Radeon HD 5500 Serie
Carte mère : MSI B75MA-E33
Processeur : Intel COre I7 2600k

Essaie de vérifier la valeur de GL_ATTRIB_STACK_DEPTH avant d’appeler glPopAttrib ?

J’ai complètement formaté mon pc avant de voir ta réponse.
Le formatage à résolu mon problème. J’ai mis des drivers antérieurs à ceux que j’avais et à priori ça fonctionne.

Comme le problème n’est plus là je ne peut pas faire la manipulation proposé.

Merci quand même.