IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ Discussion :

Problème d'affichage avec OpenGL


Sujet :

GTK+

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 13
    Points : 12
    Points
    12
    Par défaut Problème d'affichage avec OpenGL
    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 :
    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
    }
    on_3Dview_render est le nom du signal render associé à l'objet GtkGLArea posé sur ma fenêtre principal dans Glade,

    Si quelqu'un à une idée, Merci d'avance !

    Voici ce que cela donne : Nom : GtkGLArea_test.png
Affichages : 383
Taille : 10,0 Ko

  2. #2
    Nouveau Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Salut,

    J'ai le même problème que toi. Rien ne s'affiche or mis le changement de couleur du glClear. Dans les exemples que j'ai pu trouver (notamment celui-ci: https://github.com/aklomp/gtk3-opengl.git), ce sont des Shader qui sont utilisés. Peut-être que les GtkGLArea ne sont pas fait pour accepter des instruction openGL. Je trouve ça étrange mais bon ... Je vais essayer GtkGLExt.

    Bon courage,

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    Merci pour cette information ghuiem, effectivement les shaders ont l'air d'être plus appropriés depuis la version 3 d'OpenGL mais au point de bloquer l'usage de fonctions plus anciennes c'est surprenant mais c'est une piste à explorer,

    Si tu trouves quelque chose je suis preneur ! De mon côté également bien sûr.

    A+

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    Ça semble se confirmer :

    The OpenGL support inside GTK+ requires core GL profiles, and thus it won’t work with the fixed pipeline API that was common until OpenGL 3.2 and later versions. this means that you won’t be able to use API like glRotatef(), or glBegin()/glEnd() pairs, or any of that stuff

    Lu ici : https://www.bassi.io/articles/2015/0...engl-with-gtk/

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 13
    Points : 12
    Points
    12
    Par défaut C'est moche mais ça fonctionne !!!
    Je confirme qu'il faut oublier tout ce qui est encadré entre glBegin() et glEnd() comme par exemple GL_TRIANGLES, bref passer dans le nouveau "monde" d'OpenGL 3, 4

    Voici mon superbe "OpenGL hello world" ! Réalisé en suivant cet exemple : http://www.opengl-tutorial.org/fr/be...irst-triangle/

    Nom : MonTriangle.png
Affichages : 317
Taille : 13,7 Ko

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 13
    Points : 12
    Points
    12
    Par défaut Des news : ça suit son cours, doucement mais surement..
    Avec en prime une option d'orientation 3D de l'objet par un smartphone. Les inclinaisons sont transmises en socket UDP avec l'app Android HyperIMU : effet garantie !

    Prochaine étape : point de vue caméra et zoom à l'aide de la souris.

    Nom : 2020-01-19_18-51-51.jpg
Affichages : 250
Taille : 99,8 Ko

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2D/3D] [OpenGL] Problème d'affichage avec VBO
    Par _Adri dans le forum Qt
    Réponses: 1
    Dernier message: 13/01/2015, 20h10
  2. [Graphics View] Problème d'affichage avec OpenGL
    Par elwess dans le forum Qt
    Réponses: 4
    Dernier message: 20/02/2012, 09h48
  3. problème d'affichage avec printf
    Par sorari dans le forum C++
    Réponses: 12
    Dernier message: 08/03/2005, 18h30
  4. Réponses: 6
    Dernier message: 19/10/2004, 13h46
  5. Problème d'affichage avec trace
    Par WriteLN dans le forum Flash
    Réponses: 10
    Dernier message: 22/10/2003, 16h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo