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

OpenGL Discussion :

[Débutant] Mon premier programme: rien ne va...


Sujet :

OpenGL

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2004
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 63
    Points : 34
    Points
    34
    Par défaut [Débutant] Mon premier programme: rien ne va...
    Bonjour,

    - J'utilise wxWidgets pour l'interface graphique et wxGLCanvas pour afficher de l'opengl.
    - Je n'y connait strictement rien en opengl mais je trouve bizzard que mon programme n'affiche rien... Où est le problème ? Dans l'implémentation de l'opengl dans wxWidgets ou alors c'est mon code source opengl qui n'est pas bon ?

    ogl.cpp:
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    #include "ogl.h"
    #include <wx/wx.h>
    using namespace std;
     
    MyFrame_main::MyFrame_main()
      : wxFrame(NULL, -1, "ogl", wxPoint(-1, -1), wxSize(700, 700), wxDEFAULT_FRAME_STYLE)
    {
      glt = new wxGLCanvas(this, -1, wxPoint(20, 20), wxSize(690, 690), wxSUNKEN_BORDER);
      glt->SetCurrent();
      glClearColor(0.0, 0.0, 0.0, 0.0);
      glClear(GL_COLOR_BUFFER_BIT);
      glColor3f(1.0, 1.0, 1.0);
      glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
     
      glBegin(GL_POLYGON);
      glVertex3f(0.25, 0.25, 0.0);
      glVertex3f(0.75, 0.25, 0.0);
      glVertex3f(0.75, 0.75, 0.0);
      glVertex3f(0.25, 0.75, 0.0);
      glEnd();
      glFlush();
     
      glt->SwapBuffers();
      wxLayout();
    }
     
    void MyFrame_main::wxLayout()
    {
      wxSizer *siz_367 = new wxBoxSizer(wxVERTICAL);
     
      siz_367->Add(glt, 0, wxALL, 5);
      SetSizer(siz_367);
      SetAutoLayout(true);
      Layout();
    }
     
    IMPLEMENT_APP(Ini);
    bool Ini::OnInit()
    {
      MyFrame_main *frame = new MyFrame_main();
      frame->Show(TRUE);
      return true;
    }
    ogl.h:
    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
    #include <wx/wx.h>
    #include <wx/glcanvas.h>
     
    class Ini: public wxApp
    {
      public:
        virtual bool OnInit();
    };
     
    class MyFrame_main: public wxFrame
    {
      public:
        MyFrame_main();
        void wxLayout();
        wxGLCanvas *glt;
     
    };
     
    DECLARE_APP(Ini);
    Merci d'avance...

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Si tu ne connais rien en OpenGL, commence par lire des tutos à ce sujet pour savoir comment initialiser la lib et autres.

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2004
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 63
    Points : 34
    Points
    34
    Par défaut
    Ok mais j'aimerais savoir faire fonctionner un code opengl simple avant de lire des tuto...

    http://wiki.wxwidgets.org/wiki.pl?WxGLCanvas ==> j'ai compilé le premier code source de la page....

    La compilation fonctionne parfaitement. Quand j'éxécute le programme, je voit un carré blanc sur fond noir...
    Mais quand je rétreci la fenêtre et puis que je l'agrandi, je ne voi plus le carré blanc ni le fond noir, est-ce normal ?

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Je ne suis pas un pro de Wx, mais il me semble normal que si tu places le rendu OpenGL dans le constructeur de ta classe, ton affichage ne soit plus jamais rafraîchit par la suite. Y aurait pas plutôt une fonction du genre OnIdle() par hasard ?

  5. #5
    Membre actif Avatar de SKone
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 333
    Points : 250
    Points
    250
    Par défaut
    En effet regarde :

    http://wxdsgn.sourceforge.net/tutorial/wxopengl.html

    Et lui marche j'ai testé ...

  6. #6
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2004
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 63
    Points : 34
    Points
    34
    Par défaut
    L'opengl doit être rafraichi en permanence ?

    OnIdle() ==> En effet cette fonction exsite mais je ne comprend pas bien à quoi elle peut servir et que doit-je mettre dedans ? (Je suis pas super fort en anglais): http://www.freiburg.linux.de/~wxxt/wxHTML/wxwin31.htm#wxapponidle

  7. #7
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    L'opengl doit être rafraichi en permanence ?
    Sans parler d'OpenGL, de manière générale avec les interfaces graphiques, il faut bien entendu tout redessiner lors d'un redimensionnement ou tout autre évènement provoquant un rafraîchissement.

    Concernant maintenant OpenGL, c'est du temps réel et si tu as une scène qui bouge il faudra même réactualiser l'affichage x fois par seconde.

    OnIdle() ==> En effet cette fonction exsite mais je ne comprend pas bien à quoi elle peut servir et que doit-je mettre dedans ? (Je suis pas super fort en anglais)
    Habituellement, les fonctions de ce type sont appelées lorsque le contrôle ne fait rien de spécial. C'est donc là qu'il faut mettre le code qui doit s'executer en temps réel.

  8. #8
    Membre actif Avatar de SKone
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 333
    Points : 250
    Points
    250
    Par défaut
    Tu dois faire ta class CMyCanvas qui derive de wxGLCanvas lit le fichier que je t'es passé il est en français et dans la source que je t'es passé la fonction OnIdle() est vide ...

  9. #9
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2004
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 63
    Points : 34
    Points
    34
    Par défaut
    Merci de vos réponses, je vais voir ce que je peux faire avec toutes ses info et puis je vous redirer quoi.

  10. #10
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par vincent0
    La compilation fonctionne parfaitement. Quand j'éxécute le programme, je voit un carré blanc sur fond noir...
    Mais quand je rétreci la fenêtre et puis que je l'agrandi, je ne voi plus le carré blanc ni le fond noir, est-ce normal ?
    Cette phrase change tout !
    Ca montre qu'il y a quelque chose qui s'affiche mais en revanche que ce n'est pas réactualisé !

  11. #11
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2004
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 63
    Points : 34
    Points
    34
    Par défaut
    C'est bon j'y suis arrivé, merci...je vais enfin pouvoir apprendre l'opengl

    SKone -> Tu m'a jamais passé de fichier en français !!!!! ???

Discussions similaires

  1. Débutant mon premier programme
    Par riquet90 dans le forum NetBeans
    Réponses: 3
    Dernier message: 17/03/2011, 12h43
  2. [Noob] Mon premier programme : rien compris
    Par uNd3r² dans le forum Dev-C++
    Réponses: 5
    Dernier message: 19/12/2006, 21h23
  3. mon premier programme j2me
    Par adilo dans le forum Java ME
    Réponses: 1
    Dernier message: 14/09/2006, 08h43
  4. [JDOM] Mon premier programme java-xml
    Par adilo dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 12/07/2006, 13h12
  5. [Language] Aide sur mon premier programme Java?
    Par hash2zo dans le forum Langage
    Réponses: 15
    Dernier message: 27/09/2005, 19h26

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