Bonjour tout le monde et merci d'avance de lire ce post,
vous trouverez un message similaire en Anglais posté sur Stack Overflow en suitvant ce lien
Je travaille sur un programme offrant une interface de visulatisation pour des molécules, systèmes atomiques ...
J'ai 3 versions différentes du programme:

(a) GTK2 + GtkGlext : fonctionne parfaitement !
(b) GTK3 + X11 : fonctionne bien !
(c) GTK3 + GtkGLArea : ne fonctionne pas :-(

Je travaille toujours sur (c), j'ai appris que le widget GtkGLArea est plutôt pointilleux sur les instructions OpenGL,
mais un problème est apparu alors que j'essaye de trouver l'origine d'une différence de comportement entre (a) et (b).
Le rendu OpenGL était en effet sensiblement plus lent pour (b) que pour (a), tout du moins c'est ce que je croyais.
Si vous lisez ce lien vous verrez que j'ai eu de l'aide et ai réussi à trouver que les signaux émis par mon Widget n'étaient
pas gérés de la même façon entre GTK+2 (a) et GTK+3 (b) et même (c), même si dans ce cas je n'ai qu'un écran noir
mais ceci est un autre problème. Voici comment j'ai préparé mes widgets et les signaux correspondant (je me limite aux
instructions GTK+):



En ulisant l'outil ApiTrance, j'ai remarqué que chaque image OpenGL étaient rendue une seule fois dans le cas (a) alors qu'elle l'était 5 fois dans les cas (b) et (c).
Après quoi en ajoutant un simple compteur dans la CallBack correspondant au signal, j'ai pu confirmer que pour chaque "expose/draw/render" le signal
était émis (et donc la "drawing-area" dessinée autant de fois, pour la même image):

  • (a) 1 seule fois
  • (b) 5 fois
  • (c) 5 fois


(a) étant GTK+2, (b) et (c) étant GTK+3 ... merci d'avance pour vos lumières pour corriger cela ou comprendre pourquoi le signal GTK+3 est émis 5 fois !

S.