Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1724 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [glut] gestion du clavier, printf des touches

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[glut] gestion du clavier, printf des touches

n°931591
kaloskagat​os
Posté le 24-12-2004 à 19:18:50  profilanswer
 

:hello:
 
j'essaie de me familiariser avec glut mais je n'arrive pas à afficher les touches que j'enfonce. Est-ce que quelqu'un peut compiler ça et me dire si ça marche pour lui? (je suis sous windows mais c'est pour linux à terme). C'est un fichier de tutorial que je modifie pour tester.
 
 

Code :
  1. #include <gl/glut.h>
  2. #include <stdio.h>
  3. #define WIDTH 640
  4. #define HEIGHT 480
  5. void Display();
  6. void Reshape(int,int);
  7. void Init();
  8. void Clavier( unsigned char key, int x, int y );
  9. ////////////////////////////////////////////////////////////////////////////
  10. int main( int argc, char *argv[ ])
  11. {
  12. glutInit(&argc,argv);
  13. glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE | GLUT_DEPTH);
  14.     glutInitWindowSize(WIDTH,HEIGHT);
  15. glutInitWindowPosition(50,50);
  16. glutCreateWindow("Scène 3D" );
  17. Init();
  18. glutDisplayFunc(Display);
  19. glutReshapeFunc(Reshape);
  20. glutKeyboardFunc (Clavier);
  21. glutMainLoop();
  22. return 0;
  23. }
  24. void Init()
  25. {
  26. glEnable(GL_DEPTH_TEST);
  27. }
  28. void Display()
  29. {
  30. glClearColor(0,0,0,0); // selectionne la couleur noire (qui est celle par défaut)
  31. glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  32. glMatrixMode(GL_MODELVIEW);
  33. glLoadIdentity();
  34. gluLookAt(4,3,3,0,0,0,0,1,0);
  35. glBegin(GL_QUADS);
  36. glColor3d(1,0,0);
  37. glVertex3i(1,1,1);
  38. glVertex3i(1,-1,1);
  39. glVertex3i(-1,-1,1);
  40. glVertex3i(-1,1,1);
  41. glColor3d(0,1,0);
  42. glVertex3i(1,1,-1);
  43. glVertex3i(1,-1,-1);
  44. glVertex3i(-1,-1,-1);
  45. glVertex3i(-1,1,-1);
  46. glColor3d(0,0,1);
  47. glVertex3i(1,1,1);
  48. glVertex3i(1,-1,1);
  49. glVertex3i(1,-1,-1);
  50. glVertex3i(1,1,-1);
  51. glColor3d(0,1,1);
  52. glVertex3i(-1,1,1);
  53. glVertex3i(-1,-1,1);
  54. glVertex3i(-1,-1,-1);
  55. glVertex3i(-1,1,-1);
  56. glColor3d(1,1,0);
  57. glVertex3i(-1,1,-1);
  58. glVertex3i(-1,1,1);
  59. glVertex3i(1,1,1);
  60. glVertex3i(1,1,-1);
  61. glColor3d(1,0,1);
  62. glVertex3i(-1,-1,-1);
  63. glVertex3i(-1,-1,1);
  64. glVertex3i(1,-1,1);
  65. glVertex3i(1,-1,-1);
  66. glEnd();
  67. glFlush();
  68. }
  69. void Reshape(int w, int h)
  70. {
  71. glViewport(0,0,w,h);
  72. glMatrixMode(GL_PROJECTION); // Choisit la matrice de projection
  73. glLoadIdentity();
  74. gluPerspective(45.0,(float) w/h,1.,10.);
  75. printf("reshape\n" );
  76. }
  77. void Clavier( unsigned char key, int x, int y )
  78. {
  79.      printf("touche %c (ASCII:%d)\n",key,key);
  80. }

mood
Publicité
Posté le 24-12-2004 à 19:18:50  profilanswer
 

n°931597
Exo 7
Posté le 24-12-2004 à 19:41:11  profilanswer
 

essaye avec

Code :
  1. glutKeyboardFunc (&Clavier)

n°931600
kaloskagat​os
Posté le 24-12-2004 à 19:51:15  profilanswer
 

ok personne ne crie windows cai le mal ou des trucs comme ça mais en fait je viens de me rendre compte que quand je lance l'exe mon prog se lance dans une fenêtre mais la console reprend la main... Donc je me retrouve avec une nouvelle invite de ligne de commande, je vois pas comment un printf pourrait marcher avec ça...
 
 
 
 
ps: pour le & ça passe à la compil mais je dirais que le nom d'une fonction c'est déjà son adresse donc pas la pein de rajouter &

n°931610
Emmanuel D​elahaye
C is a sharp tool
Posté le 24-12-2004 à 21:30:01  profilanswer
 

kaloskagatos a écrit :

pour le & ça passe à la compil mais je dirais que le nom d'une fonction c'est déjà son adresse donc pas la pein de rajouter &


Exact.


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°931878
c0wb0y
:d
Posté le 25-12-2004 à 22:18:23  profilanswer
 

essaye un fflush() apres ton printf (il me semble que c'est ce que j'avais fait en TP, mais sous linux )

n°931881
Emmanuel D​elahaye
C is a sharp tool
Posté le 25-12-2004 à 22:22:57  profilanswer
 

c0wb0y a écrit :

essaye un fflush() apres ton printf (il me semble que c'est ce que j'avais fait en TP, mais sous linux )


Ca n'a un impact que si la ligne est incomplète (pas de '\n' final) ce qui semble ne pas être le cas ici...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°931885
kaloskagat​os
Posté le 25-12-2004 à 22:37:32  profilanswer
 

oui ça ne change rien :/ Je ne sais pas pourquoi ma console reprend la main dès que je lance l'exe. Je me retrouve avec une invite à la C:\ alors que normalement ça ne se produit que lorsque le programme se finit naturellement ou avec un CtrlC. J'ai compilé avec devc++, je vais essayer avec gcc à la main


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [glut] gestion du clavier, printf des touches

 

Sujets relatifs
Gestion de fichiersj'y comprend rien du tout (texturing opengl glut)
outil de gestion elcetronique de docgestion des lumieres en opengl avec glut
[vbs]Gestion des erreurs et fichier log...recherche un script PHP style groupware --> gestion de points membres
[ASPX][C#] Gérer des données sur une page, gestion des eventgestion touche directionnelle
Identification des touches. 
Plus de sujets relatifs à : [glut] gestion du clavier, printf des touches


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR