À l'aide de la souris, la molette de défilement en SURABONDANCE
Je veux utiliser la souris, la molette de défilement dans mon OpenGL GLUT programme pour zoomer dans et hors de la scène? Comment dois-je faire?
Vous devez vous connecter pour publier un commentaire.
Freeglut de glutMouseWheelFunc de rappel est dépendante de la version et pas fiable à X. l'Utilisation standard de la fonction de la souris et de test pour les boutons 3 et 4.
La OpenGlut notes sur glutMouseWheelFunc état:
En utilisant la norme SURABONDANCE de la souris reporting:
Que l'OP dit, c'est "simple". Il était tout à fait inacceptable.
Noter que le vénérable Nate Robin GLUT bibliothèque ne prend pas en charge la molette de défilement. Mais, plus tard, les implémentations de la SURSATURATION comme FreeGLUT faire.
À l'aide de la molette de défilement dans FreeGLUT est mort simple. Voici comment:
Déclarer une fonction de callback qui est appelée à chaque fois que la molette de défilement. C'est le prototype:
Enregistrer le rappel avec la (Libre)fonction GLUT glutMouseWheelFunc().
Définir la fonction de rappel. Le deuxième paramètre donne la direction du défilement. Des valeurs de +1 est de l'avant, -1 est en arrière.
Que c'est!
#include <GL/freeglut.h>
de sorte que le code compile, glutMouseWheelFunc ne semble pas être appelé (testé sur Ubuntu 10.04 x86_64, qui est livré freeglut 2.6.0). La solution est d'utiliser leglutMouseFunc
de rappel et de vérifierbutton == 3
pour la roue, etbutton == 4
pour la roue vers le bas.observer les cas 3 et 4, dans l'instruction switch ci-dessous dans la clic de souris rappel
...