Bonjour à tous,
Avant de me lancer dans la lecture de tutos, de livres, etc. traitant du sujet, je voulais d'abord m'assurer de pouvoir faire un "hello world" dans mon environnement favori GTK+
mais je bute sur un problème, quelqu'un peut-il m'aider ?
Je précise que je développe en win32 avec les paquets MSYS2, que j'utilise Glade 3.22 et que tout naturellement j'ai cherché à faire ce qui est indiqué ici :
https://developer.gnome.org/gtk3/stable/GtkGLArea.html
Bien sûr mes directives de compilation contiennent epoxy d'ailleurs je n'ai aucun problème de génération de l'exécutable qui fonctionne bien à ceci prêt :
J'arrive à changer la couleur de fond en modifiant les paramètres de glClearColor(), mais le simple triangle que je cherche à afficher n'apparait pas ;(((
Voici le code contenu dans ma fonction render :
on_3Dview_render est le nom du signal render associé à l'objet GtkGLArea posé sur ma fenêtre principal dans Glade,
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 // Rendu 3D G_MODULE_EXPORT void on_3Dview_render(GtkWidget* pWidget, gpointer pData) { // inside this function it's safe to use GL; the given // #GdkGLContext has been made current to the drawable // surface used by the #GtkGLArea and the viewport has // already been set to be the size of the allocation // we can start by clearing the buffer glClearColor(0.4, 0.4, 0.4, 0.4); glClear(GL_COLOR_BUFFER_BIT); // draw your object glColor3f(1.0, 1.0, 1.0); glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); glBegin(GL_TRIANGLES); glVertex3f(-0.7, 0.7, 0); glVertex3f(0.7, 0.7, 0); glVertex3f(0, -1, 0); glEnd(); glFlush(); // we completed our drawing; the draw commands will be // flushed at the end of the signal emission chain, and // the buffers will be drawn on the window }
Si quelqu'un à une idée, Merci d'avance !
Voici ce que cela donne :
Partager