我正在尝试在我的 OpenGL 应用程序中使用 GLUT (freeglut),并且我需要为鼠标滚轮事件注册一些回调。我设法挖掘出一个相当无证的功能:
但是这个函数的手册页和 API 条目都陈述了同样的事情:
注意:由于缺乏关于鼠标的信息,目前无法在 X 上正确实现。使用此功能会限制应用程序的可移植性。(此功能在 X 上确实有效,只是不可靠。)我们鼓励您使用标准的、可靠的鼠标按钮报告,而不是滚轮事件。
很公平,但是我如何使用这个标准的、可靠的鼠标报告呢?我怎么知道哪个是标准?我是否只使用 glutMouseFunc() 并分别使用 4 和 5 之类的按钮值作为向上和向下滚动值,例如 1、2 和 3 是否是左、中和右按钮?这是可靠的方法吗?
额外的问题:似乎“xev”工具为我的按钮报告了不同的值。我的鼠标按钮用 xev 从 1 到 5 编号,但 glut 报告的按钮从 0 到 4,即一个减一。这很常见吗?