activation du shader

activation du shader

par Julius Emile Girardin,
Number of replies: 2

Bonjour,

 je suis en train de faire l'exercice P10, mais le programme s'arrête toujours avant d'avoir affiché quoi que ce soit. En executant, lors de l'appel à la methode dessineCube() avec l'argument par défaut, la console affiche: 

QOpenGLShaderProgram::uniformLocation(vue_modele): shader program is not linked

J'ai donc vérifié si toutes les fonctions dont je pense qu'elles ont été appelées ont bien été appelée. J'ai trouvé que la methode VueOpenGL::init() est bien appelée et est executée jusqu'à la fin et les methodes dessine de nos objets Dessinables sont bien appelés dans le bon ordre. 

De plus le débogueur dit qu'il y a une segmentation fault, et que la valeur de matrice_vue est l'identité, même après l'appel à initializePosition() qui est censé ajuster cette matrice. Et quand j'essaie de voir la valeur de prog (shader), qtc me dit: "The GDB process terminated." et le débogueur se ferme.

Je ne comprends pas d'où vient cette erreur, car je n'ai pas modifié les methodes en rapport direct avec le shader.

Une autre petite chose: le compilateur m'avertit parfois que l'utilisation de restart() est déconseillée, est-ce un problème?

Merci d'avance et bonne semaine.

Julius Girardin



In reply to Julius Emile Girardin

Re: activation du shader

par Deleted user,

Salut, je te redirige tout d'abord vers cette discussion qui pourra probablement aider: https://moodlearchive.epfl.ch/2019-2020/mod/forum/discuss.php?d=32328

Fais aussi attention à ne pas avoir instancié plusieurs VueOpenGL par mégarde (tu pourrais avoir activé une des vues, mais pas l'autre, d'où l'erreur). Tu peux tenter d'afficher la valeur de "this" pour le vérifier.

Sinon, compiles-tu ton code avec des flags inhabituels? Si tu utilises le flag -O3, essaye plutôt avec -O2.

Pour 'restart', je n'en sais pas plus que toi.