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

wxWidgets Discussion :

Récupération des coordonnées de souris avec wxWidget et OpenGL


Sujet :

wxWidgets

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 65
    Points : 36
    Points
    36
    Par défaut Récupération des coordonnées de souris avec wxWidget et OpenGL
    Bonjour.
    Je ne sais pas trop si je dois poster ça ici (dans wxwidget) ou dans openGL. En fait je devrais le savoir grace à votre réponse .

    J'ai une fenêtre openGL dans mon application wxWidget.
    Avant d'avoir cette fenêtre openGL, aucun pb pour récupérer mes Xmouse et Ymouse.
    Depuis que j'ai cette fenêtre, wxWidget ne déclenche plus l'évenement "OnMouse" (Je pense que c'est parce que ma fenêtre openGl recouvre totalement ma MainFrame wxWidget).

    Mon objectif étant de récupérer les coordonnées souris pour travailler sur mon univers openGL, je me demande si c'est wxWidget qui doit récuperer ces infos, ou si c'est à GLUT de le faire.
    - Si c'est à wxWidget, avez vous une idée de pourquoi ça ne marche plus ?
    - Si c'est à Glut, comment détecter l'évenement ?

    PS : je ne m'intéresse pas aux techniques de picking, mais bien de détecter un x-mouse et un y-mouse

    Merci beaucoup

    Martin

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 65
    Points : 36
    Points
    36
    Par défaut
    Bon ça n'a pas l'air d'inspirer grand monde ce sujet !

    Pas grave, j'ai fini par trouver un ptit tuto, pour ceux qui sont intéressés.
    Gérer l'évenementiel avec Glut :
    http://www.linuxfocus.org/Francais/J...article16.html
    Et en ce qui concerne l'évenement souris :
    http://www.opengl.org/resources/libr...c3/node50.html

    Voilà, seulement un problème ne venant jamais seul, peut être celui-là vous inspirera plus:
    Lorsque j'associe ma fonction mouseEvent(int, int, int, int) à la fonction Glut glutMouseFunc (ce qui donne : glutMouseFunc(mouseEvent) ), voilà ce qui ce passe :
    'glutMouseFunc' : impossible de convertir le paramètre 1 de 'void (int,int,int,int)' en 'void (__cdecl *)(int,int,int,int)'

    Cela inspire-t-il quelqu'un ?

    Martin

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 65
    Points : 36
    Points
    36
    Par défaut
    Vive les questions réponses tout seul !

    Bon apparemment, ça vient du fait que je mette une fonction membre d'une classe dans glutMouseFunc(...) : il n'aime pas ça.
    Je suis bien avancé, maintenant que j'ai l'explication, il me manque la résolution.
    En fait je peux mettre une fonction globale ou une méthode statique, mais aucune des deux n'aura d'information sur les propriétés de l'objet qui doit interpréter les coordonées.....

  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
    Mais pourquoi donc utiliser GLUT si tu as déjà wxWidgets pour le fenêtrage ?

    Pour le callback :
    http://c.developpez.com/faq/cpp/?pag...onction_membre

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 65
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par Laurent Gomila
    Mais pourquoi donc utiliser GLUT si tu as déjà wxWidgets pour le fenêtrage ?
    GLUT?
    Pour le dessin : parce que j'ai plein plein plein plein de petits objets à dessiner de type polygones et qu'avec un wxDC, ça raaaaame,
    Pour choper les xy_mouse : parce que depuis que j'ai ma fenètre openGL dans mon interface wxWidget, cette dernière ne détecte plus l'évenement on mouse move.

    Merci pour le lien vers la FAQ, mais j'avais déjà vu l'article. Le problème, c'est que ma fonction OnMouseMove doit bosser sur une instance qui ne peut ni être définie en global ni être static.

    Je pense que je vais revenir à l'affichage par wxDC, car me pb de coords me parait difficile à régler. Et tant pis pour les ralentissements...

    Martin

  6. #6
    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
    C'est OpenGL que tu utilises pour l'affichage, GLUT ce n'est qu'une couche pour abstraire le fenêtrage et la gestion d'évènement (ce que tu as déjà avec wxWidgets). Donc oublie GLUT et concentre toi sur OpenGL, d'autant plus que wxWidgets propose un composant spécialement prévu pour contenir une vue OpenGL (wxGLCanvas si mes souvenirs sont bons -- voir sur ce forum pour plus de détails).

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 65
    Points : 36
    Points
    36
    Par défaut
    En fait, j'utilise déjà wxGLCanvas ! Mais depuis que j'ai ajouté myGLCanvas, l'évenement MouseMove n'est plus détecté. C'est pour cela que j'ai tenté avec glut.

    Ceci dit, une question me taraude l'esprit. Voici mon architecture GUI
    myAPP => myFrame => myGLCanvas
    myFrame gère tous les évenements, y comprit le MouseMove en question.

    Depuis que j'ai ajouté myGLCanvas, est-ce à lui de gérer le MouseMove (vu qu'il est situé 'devant' myFrame), ou est-ce toujours à myFrame de s'en occuper ? Car si ce n'est plus à myFrame de le faire, j'ai comprit d'où viens mon erreur et je suis le plus heureux des codeurs.

    Bon je vais bouffer et je teste.

    Martin

  8. #8
    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
    Depuis que j'ai ajouté myGLCanvas, est-ce à lui de gérer le MouseMove (vu qu'il est situé 'devant' myFrame), ou est-ce toujours à myFrame de s'en occuper ?
    C'est bien possible, en tout cas tu peux toujours essayer.

  9. #9
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 65
    Points : 36
    Points
    36
    Par défaut
    Je n'ai qu'une chose a dire : woo-hoo.
    Ca marche.
    Comme dirait Droopy : "Je suis content"

    En tout cas, merci de m'avoir aiguillé vers la solution. C'était bien une histoire d'évenement pas au bon endroit.

    Martin

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

Discussions similaires

  1. Récupération des coordonnées de la souris sous firefox
    Par mounim_taoufik dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 27/07/2011, 14h39
  2. Réponses: 0
    Dernier message: 12/02/2009, 22h23
  3. Réponses: 1
    Dernier message: 27/10/2008, 07h28
  4. Récupération des coordonnées de la souris
    Par kabil.cpp dans le forum MFC
    Réponses: 11
    Dernier message: 23/05/2008, 06h43
  5. Réponses: 2
    Dernier message: 15/06/2007, 10h08

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