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

C Discussion :

GUI en complement d'OpenGL


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 217
    Par défaut GUI en complement d'OpenGL
    Bonjour.
    Je voudrai savoir quelque chose : si on utilise l'API Windows, peut-on utiliser en même temps la librairie graphique OpenGL?
    Existe-t-il une librairie compatible avec OpenGL plus pratique que l'API Windows qui permette de gérer des fenêtres style Windows?
    J'ai vu qu'il existe GLUT qui est assez simple, mais je crois que cette librairies ne permet pas d'avoir de controls comme des menus ou des bouttons.

  2. #2
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    effectivement, GLUT contrôle la fenêtre, mais tu ne pourras pas utiliser de boutons.
    Pour cela, tu peux utiliser MUI, GLUI, GTK, QT, ...
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 217
    Par défaut
    Pardon d'insister, mais je débarque un peu en matière de librairies.

    Comment font-elles pour utiliser l'API Windows à plus bas niveau (car je suppose que c'est obligatoire, par exemple l'initialisation de n'importe quelle librairie graphique comporte un appel à CreateWindow sous Windows) ? Surtout au niveau des évenements, que proposent-elles au programmeur pour les gérer ?
    J'ai essayé la SDL il y a peu de temps. Son utilisation necessite uniquement une boucle d'évenement, mais pas besoin de callback, comme on en a l'habitude avec l'API Windows. Ca parait un peu trop simple, non?
    Les messages envoyés (techniquement "non-queued messages") par exemple ne peuvent pas être traités par autre chose qu'une callback appellée par GetMessage() normalement :


    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
    while (GetMessage(&msg, NULL, 0, 0)) // appelle la calback pour un message envoyé et retourne pour nue message posté
    {
        TranslateMessage(&msg); // messages postés...
        DispatchMessage(&msg); // ...gérés entièrement par le programmeur
    }
     
    // La callback
    LRESULT CALLBACK MainWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
    {
        switch (uMsg)
        {
            case WM_CREATE:
                return 0;
     
            case WM_DESTROY:
                PostQuitMessage(0);
                return 0;
     
            default:
                return DefWindowProc(hwnd, uMsg, wParam, lParam);
        }
    }
    Je suppose que dans le cas de la SDL les messages envoyés sont gérés automatiquement par la SDL (une callback bien cachée??), et au besoin génèrent des messages postés, qui eux seront traités par la boucle d'évenement écrite par le programmeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    while (continuer)
    {
        SDL_WaitEvent(&event); // comment sont gérés les messsages envoyés ?
     
        // SDL_WaitEvent ne peut que renvoyer des messages postés
        switch(event.type) 
        {
            case SDL_QUIT:
                continuer = 0;
                break;
        }
    }
     
    // Pas de callback

  4. #4
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Citation Envoyé par _Michel
    Comment font-elles pour utiliser l'API Windows à plus bas niveau
    L'un des intérêts des bibliothèques de haut niveau (éventuellement portables) c'est justement de cacher ces détails au programmeur. Si tu veux utiliser SDL, apprends SDL (il y a de bons tutos si tu cherches bien ...), pas l'API Windows. Sinon, rien ne t'empêche non plus d'utiliser directement l'API Windows (et dans ce cas, t'as du code spécifique à Windows).

    Citation Envoyé par _Michel
    Je suppose que dans le cas de la SDL les messages envoyés sont gérés automatiquement par la SDL (une callback bien cachée??)
    Evidemment, comme le ferait (le fait) n'importe n'importe quelle bibliothèque qui encapsule l'API Windows. J'en ai fais une, en C++, si ça peut t'intéresser (http://www.developpez.net/forums/sho...d.php?t=439847). C'est une démo de la bibliothèque que j'utilise actuellement dans tous mes développements professionnels, et peut-être dans mes prochains tutoriels.

    Et enfin, si tu veux utiliser OpenGL avec l'API Windows, je te conseille le tutoriel d'Antoche qui est certes loin de la perfection mais qui a le mérite d'être assez clair (et plutôt sympa ). Sinon http://nehe.gamedev.net/ (en anglais ...).

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 217
    Par défaut
    Ok, merci. Je suis moins dans le brouillard.

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

Discussions similaires

  1. GUI OpenGL Maison
    Par jockyboss777 dans le forum OpenGL
    Réponses: 12
    Dernier message: 01/09/2009, 13h02
  2. GUI sur fenetre OpenGL
    Par GlouglouLeDindon dans le forum OpenGL
    Réponses: 9
    Dernier message: 21/11/2008, 12h32
  3. GUI (API) OpenGL Xplateforme ?
    Par ttone dans le forum Apple
    Réponses: 6
    Dernier message: 25/10/2008, 12h01
  4. GUI : Graphical user interface sous OpenGL
    Par Nyarlathotep dans le forum OpenGL
    Réponses: 3
    Dernier message: 29/09/2008, 13h01
  5. Overlapping OpenGL dans environnement GUI bureau
    Par ttone dans le forum OpenGL
    Réponses: 0
    Dernier message: 26/09/2008, 01h11

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