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

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 10
    Points : 7
    Points
    7

    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 :
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    // 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 : 23
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
    Futur Membre du Club
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 10
    Points : 7
    Points
    7

    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
    Futur Membre du Club
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 10
    Points : 7
    Points
    7

    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/

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, 21h10
  2. [Graphics View] Problème d'affichage avec OpenGL
    Par elwess dans le forum Qt
    Réponses: 4
    Dernier message: 20/02/2012, 10h48
  3. problème d'affichage avec printf
    Par sorari dans le forum C++
    Réponses: 12
    Dernier message: 08/03/2005, 19h30
  4. Réponses: 6
    Dernier message: 19/10/2004, 14h46
  5. Problème d'affichage avec trace
    Par WriteLN dans le forum Flash
    Réponses: 10
    Dernier message: 22/10/2003, 17h59

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