Segmentation fault dans la méthode GLSphere::draw

Segmentation fault dans la méthode GLSphere::draw

by Nelson Glardon -
Number of replies: 8

Bonjour,

Nous voulons dessiner des sphères dans notre projet. Pour ce faire, nous avons copié la classe glsphere de l'exercice 6 du tutoriel. Lors de l'appelle à la méthode GLSphere::draw, le programme s'arrête et le débugger dit qu'un segmentation fault s'est produit :

 

Le segmentation fault se passe dans le troisième appel à glDrawElements (avec GL_TRIANGLE_FAN) :


Le code est pourtant identique à celui de celui de l'exercice 6 du tutoriel, qui ne pose pas de problème.

Auriez-vous une piste pour débugger ?

Merci d'avance

In reply to Nelson Glardon

Re: Segmentation fault dans la méthode GLSphere::draw

by Josué Antoine Maechling -

Vous avez trouvé la ligne en faisant des cout avant et après la ligne ou avec le débugger ?

Si c'est la 2eme option, essayez de faire des cout avant et après (la ligne) juste pour confirmer

In reply to Josué Antoine Maechling

Re: Segmentation fault dans la méthode GLSphere::draw

by Nelson Glardon -

J'ai trouvé la ligne uniquement avec le débugger, et en mettant les cout, je vois que les cout qui sont avant l'appel à la fonction draw sont bien exécutés, par contre ceux qui sont dans la fonction draw (même au tout début) ne sont pas exécutés.

In reply to Nelson Glardon

Re: Segmentation fault dans la méthode GLSphere::draw

by Josué Antoine Maechling -

Je suis pas expert de qt ou opengl mais c'est peut-être lié à la manière dont tu appelles la fonction. Les paramètres donnés peut-être ?

De base le seul endroit il me semble où draw est appelée c'est dans vueopengl dans :

void VueOpenGL::dessineSphere (QMatrix4x4 const& point_de_vue,
                               double rouge, double vert, double bleu)
{
  prog.setUniformValue("vue_modele", matrice_vue * point_de_vue);
  prog.setAttributeValue(CouleurId, rouge, vert, bleu);  // met la couleur
  sphere.draw(prog, SommetId);                           // dessine la sphère
}
In reply to Josué Antoine Maechling

Re: Segmentation fault dans la méthode GLSphere::draw

by Nelson Glardon -

Effectivement, et j'ai exactement ce code.

In reply to Nelson Glardon

Re: Segmentation fault dans la méthode GLSphere::draw

by Josué Antoine Maechling -

Donc tu ne fais pas appel à draw ailleurs ? uniquement dans cette fonction ?

Tu peux toujours m'envoyer ton code du projet par mail ( josue.maechling@epfl.ch ) , mais je garantis pas de trouver... il faudra qqun connaissant mieux le sujet.

In reply to Josué Antoine Maechling

Re: Segmentation fault dans la méthode GLSphere::draw

by Nelson Glardon -
Non, je ne fais pas appel à la fonction draw ailleurs
In reply to Nelson Glardon

Re: Segmentation fault dans la méthode GLSphere::draw

by Nelson Glardon -

Bonjour,

J'ai trouvé le problème :

Je ne faisait pas appel à la fonction GLSphere::initialize() dans la fonction VueOpenGL::initializePosition(), le segmentation fault venait donc de là.