Accueil > Forum > > > > OpenGL et Glut: saisie clavier
OpenGL et Glut: saisie clavier
lundi 25 avril 2005 à 23:19:07 |
OpenGL et Glut: saisie clavier

bluelambda
|
Salut à tous !
Voilà j'ai fait un petit programme qui utilise OpenGL avec GLUT.
C'est un programme très basique, avec juste une fonction d'affichage
opengl qui affiche quelques lignes, une fonction main, et une fonction
clavier définie par glutKeyboardFunc qui attend qu'on appuie sur ECHAP
pour quitter.
A un certain moment dans le programme, je lance une fonction. Peu importe où, ce n'est pas le prolème.
J'aimerai bien ajouter dans cette fonction un moment où elle demande à
l'utilisateur d'appuyer sur une touche, et tant qu'il ne le fait pas la
fonction attend.
En gros je voudrais faire pareil qu'avec un programme console quand on
utilise getch(), sauf que là je suis en OpenGL, et je recherche une
alternative à getch().
Je ne peux pas utiliser la fonction clavier définie par
glutKeyboardFunc, car celle-ci ne peut être activée uniquement si je
suis hors de la fonction. De plus elle ne peut être activée que par
Glut lui même car c'est lui qui lui transmet la touche pressée par
l'utilisateur. Alors que moi ce que je veux c'est récupérer la touche
pressée sans passer par la fonction clavier.
Donc, quelqu'un pourrait m'aider en m'expliquant comment demander une
saisie clavier à l'utilisateur au coeur d'une fonction en utilisant
GLUT ?
|
|
lundi 25 avril 2005 à 23:50:25 |
Re : OpenGL et Glut: saisie clavier

luhtor
|
Le problème, c'est quoique tu fasses, glut va mémoriser la touche
pressée, car tu peux pas l'interrompre (enfin il me semble) autrement
que par un appel a exit(). Tes sur que il n'y a pas un autre moyen de
faire ce que tu veux ? Tu peux préciser ?
|
|
mardi 26 avril 2005 à 00:02:53 |
Re : OpenGL et Glut: saisie clavier

bluelambda
|
Je vais expliquer par un exemple ;)
Imaginons que mon programme se lance normalement, la fonction d'affichage est exécutée et tout et tout, bref normal quoi.
A la fin de la fonction d'affichage, une fois que tout a été affiché
sur la scène, j'appelle une fonction appelée par exemple fonction_test.
Cette fonction va s'exécuter, et à un certain moment de son exécution,
l'utilisateur doit presser une touche pour que la fonction_test
poursuive son exécution.
Je ne sais pas comment faire cela. Comment récupérer des saisies clavier au milieu d'une fonction en cours d'exécution ?
Le top serait un truc un peu comme getch(), ou quelque chose comme ça.
Voici un petit shéma :
Fonction Affichage de Glut
affichage de la scène
lancement de fonction_test
Fin Fonction Affichage
fonction_test
actions diverses
question posée à l'utilisateur
attente d'une saisie clavier (<= le point qui nous intéresse)
actions diverses
fin fonction_test
Je ne peux pas me servir de la fonction clavier de Glut, car elle n'est
accessible que quand le programme est au repos (c'est à dire quand je
ne suis dans aucune fonction). Dans mon cas je suis dans la
fonction_test, en plein milieu, et tant que je n'en sors pas, la
fonction clavier de Glut ne peut être appelée.
J'ai été plus clair ou pas ? :P
|
|
mardi 26 avril 2005 à 10:57:24 |
Re : OpenGL et Glut: saisie clavier

luhtor
|
Mais ta question posée a l'utilisateur, c'est affiché dans la fenetre openGL ? ou dans la console ?
"et tant que je n'en sors pas, la
fonction clavier de Glut ne peut être appelée." Faudrait tester.
Mais sinon je sais pas comment faire ca, jamais eu besoin. Mais j'ai du
mal a comprendre quand meme car, la question faut bien qu'elle
s'affiche dans la fenetre OpenGL donc faut qu'il appelle la fonction
d'affichage.
|
|
mardi 26 avril 2005 à 12:42:38 |
Re : OpenGL et Glut: saisie clavier

bluelambda
|
J'ai donné cet exemple pour simplifier. La fonction en question est assez complexe, et elle ne demande rien à l'utilisateur, mais ne dois pas se poursuivre tant que celui-ci n'appuie pas sur une touche définie.
|
|
mardi 26 avril 2005 à 19:37:47 |
Re : OpenGL et Glut: saisie clavier

bluelambda
|
Je vois que c'est pas clair :P
Bon en gros comment puis-je récupérer des saisies clavier sans avoir à
passer par la fonction clavier définie par GlutKeyboardFunc ? J'aimerai
faire un peu comme avec la fonction getch (on l'appelle, et elle met le
résultat dans une variable) sauf que là je suis pas en mode console.
|
|
mercredi 27 avril 2005 à 21:31:58 |
Re : OpenGL et Glut: saisie clavier

KeniiyK
|
Avec un thread ca pourrai marcher :
Voici un petit shéma : static bool ok=false;
Fonction Affichage de Glut affichage de la scène Thread (lancement de fonction_test) // une seule fois !!!!!! Fin Fonction Affichage
fonction_test actions diverses question posée à l'utilisateur attente d'une saisie clavier (<= le point qui nous intéresse) -> if ( ok ) actions diverses fin fonction_test
fonction keyboard de glut ... case KEY : ok=true; ..... fin fonction keyboard;
KeniiyK
|
|
Cette discussion est classée dans : fonction, programme, opengl, clavier, glut
Répondre à ce message
Sujets en rapport avec ce message
Mélanger OpenGL et Glut [ par tintin72 ]
SalutJ'aimerai me servir des fonctions d'entrée clavier/souris proposées par Glut, mais j'ai vu que Glut s'initialise avec une fonction main façon C.i
[Opengl][Glut][Dev- C++ 4.9.9.2] Comment fermer un programme correctement ? [ par whikie ]
Bonjour a tous,La question est celle ci : comment je peux faire pour fermer mon programme correctement si je veux faire un programme completement port
Probleme souris et clavier avec opengl et glut [ par Mick7 ]
Salut, bon voila en faite c'est juste un probleme de fluidité quand j'essaye de tourner ou marcher tout va bien ca marche nickel mais si j'essaye de f
Problème avec mon compilateur et OpenGL [ par deguelatore ]
Bonjour a tous est voila mon problème: Je programme sous DEV C++. Au début de mon programme, j'inclus GLUT. # include ..
Thread [ par llb91 ]
Bonjour,Je recherche une solution à mon probléme que je vais essayer de décrire ci dessous. j'ai fait un programme "A" qui doit à un moment donné lanc
Probleme application OpenGL/GLUT [ par zaraki21 ]
Bonjour,actuellement en stage, je développe une application C++ utilisant OpenGL et GLUT. Mon programme lit des données à partir d' un fichier et génè
compilation d'un programme C++ qui utilise glut avec Intel fortran [ par oswa ]
Bonjour, Je fais un programmme C++ qui utilise la lib glut, et lorsque je le compile avec Intel Fortran ( j'ai mis les fichiers de opengl dans le repe
CreateProcessWithLogonW [ par Rankin ]
Salut à tous, J'ai créé un programme qui doit exécuter des commandes sous un compte admin. J'ai prévu le cas où un utilisateur simple exécute mon app
problem avec opengl [ par oswa ]
bonjour, j'ai un programme c++ sur windows qui utilise opengl et il est compilé par visual studio, ce programme permet de dessiner une piéce mécaniqu
selection avec un rectangle elastique en opengl [ par oswa ]
bonjour, j'ai un programme c++ qui utilise opengl, ce programme permet de dessiner une piéce mécanique maillé, dans mon programme j'ai réussi à selec
Livres en rapport
|
Derniers Blogs
[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|