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 :

Evenement Clavier et souris Opengl


Sujet :

wxWidgets

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Suryavarman
    Homme Profil pro
    Développeur 3D
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur 3D
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Par défaut Evenement Clavier et souris Opengl
    J'utilise les événements claviers et de souris de wxwidget . Seul problème ils sont lents, l'animation sacade dure. Et j'ai pas trops envie de passer par une idle fonction (d'ailleur j'en veus pas dans mon programme, normale on peut avoir une centaine de fenètres opengl sans que ça rame du moment qu'on met pas d'idle fonction, sauf si je peus l'activer ou la désactiver dès que je perd le focus de la fenètre courante).

    Donc ma première question: Esque c'est calqué sur les événements windows donc très lents et donc le refresh est appelé à des intervals trops long.

    Deuxième question: esque lancer un thread qui execute le onpaint et avance l'objet en attendant le prochain appel du keyevent est possible.

    Troisimème question: est il possible de forcer à utiliser "les événements claviers opengl" (enfin que dès qui peut il test le keyevent et non tout les intervals t ).

    EDIT:
    A oui j'oubliais pourquoi l'événement WXK_SPACE marche pas (quand j'appui sur la barre d'espace , ca fait le bruit de la touche qui faut pas appuyer) alors que si je met un || event.GetKeyCode() == WXK_SHIFT par exemple ca marche.

    EDIT:
    A la place de WXK_SPACE j'ai mis l'entier correspondant (32) ca bouge mais j'ai encore le bruit.

  2. #2
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    Deuxième question: esque lancer un thread qui execute le onpaint et avance l'objet en attendant le prochain appel du keyevent est possible.
    Attention, seul le thread qui a crée la fenêtre peut la redessiner, par conséquent, utiliser un thread qui va déssiner ne fonctionnera pas. Tu peux en revanche, utiliser ce thread pour demander un refresh mais attention à ne pas demander trop de refresh car dans ce cas tu feras planter le programme.

    Troisimème question: est il possible de forcer à utiliser "les événements claviers opengl" (enfin que dès qui peut il test le keyevent et non tout les intervals t ).
    Je n'ai pas bien compris la question alors excuse moi si ma réponse est incorrecte. Ce que j'ai compris, c'est que tu veux simuler un appui sur une touche ? Si c'est le cas, c'est tout à fait possible. (quelque chose du genre GetEventHandler()->ProcessEvent( ... ) )

    Pour la première question, je ne peux y répondre, je n'utilise pas le port de wxwidgets pour windows, je ne sais pas comment il fonctionne ( je ne me suis d'ailleurs pas pencher sur la question pour les ports que j'utilise ...)

  3. #3
    Membre éclairé Avatar de Suryavarman
    Homme Profil pro
    Développeur 3D
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur 3D
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Par défaut
    Merci pour cette réponse rapide je vais essayer de trouver une solution éléguante, de plus ce problème est inhérent à la 3D dès qu'on utilise plus la glut

    EDIT:
    Pour la barre d'espace , c'est parceque j'avais activé la Bell (wxBell() ) dans le EVT_KEY_CHAR :p

    Sinon pour definir lesTimeSamp des event suffit de faire wxEvent::SetTimestamp. Je m'appret à l'essayer .

  4. #4
    Membre éclairé Avatar de Suryavarman
    Homme Profil pro
    Développeur 3D
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur 3D
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Par défaut
    J'aimerais que à la construction de mon canvas, j'initialise le SetTimestamp
    Donc je fais this->GetEventHandler-> et apres je fait quoi ? je sais pas si je connais l'adresse de mes event.
    Alors me suis dit je vais d'abord tester dans les fonction OnMouse , Onkeychar etc.
    Dans ces fonctions j'ai alors fait event.SetTimestamp(event.GetTimestamp()/2);
    pour ne pas avoir une valeur trop extrême.
    Je vérifie alors en debug que l'affectaction fonctionne en faisant un event.GetTimestamp() juste après . Ce qui se révèle être vrais.
    Donc je me suis dis que je devrais vérifier au deuxième appel si la valeur est restée la même. Ce qui se révèle faux, la valeur du Timestamp est redevenu à celle par défaut.
    Ma question est alors:
    Comment je fais pour accéder aux events du canvas dans le constructeur du Canvas et pourvoir en changer les valeurs selon l'event (que ça soit mouse ou autre).

Discussions similaires

  1. Evenements clavier et souris simultanément
    Par Peps0u dans le forum Langage
    Réponses: 6
    Dernier message: 07/12/2010, 13h32
  2. Bloquer les evenements clavier et souris
    Par Ignat1us dans le forum EDI et Outils pour Java
    Réponses: 1
    Dernier message: 28/04/2009, 09h01
  3. [GEF] Evenements liés à la souris/clavier
    Par Garak dans le forum Eclipse Java
    Réponses: 11
    Dernier message: 18/09/2006, 17h35
  4. Enregistrement des evenements CLAVIER/SOURIS
    Par sam.fet dans le forum Linux
    Réponses: 3
    Dernier message: 17/08/2006, 12h23
  5. Ecouter les evenements clavier et souris
    Par init dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 24/11/2004, 20h02

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